2005-05-11 Ross Burton <ross@burtonini.com>
[platform/upstream/dbus.git] / ChangeLog
1 2005-05-11  Ross Burton  <ross@burtonini.com>
2
3         * glib/dbus-glib-tool.c: Add --prefix argument.
4         * glib/dbus-binding-tool-glib.h: Add prefix argument.
5         * glib/dbus-binding-tool-glib.c (compute_marshaller_name):
6         Add prefix argument.
7         (generate_glue): Pass prefix argument down.
8         (dbus_binding_tool_output_glib_server): Pass prefix to
9         glib-genmarshal.
10         
11 2005-05-11  Colin Walters  <walters@verbum.org>
12
13         * tools/dbus-send.c (append_array): New function.
14         (append_arg): Broken out from main.
15         (main): Add cheesy hack to send arrays and variants.
16         (usage): Update.
17         * tools/dbus-print-message.c (print_iter): Broken out
18         from main.
19
20 2005-05-11  Colin Walters  <walters@verbum.org>
21
22         * dbus/dbus-signature.c (dbus_signature_iter_get_signature):
23         New function, returns signature string for signature iter.
24         * dbus/dbus-signature.h: Prototype it.
25         * dbus/dbus-message.c (dbus_message_iter_get_signature):
26         New function, returns signature string for message iter.
27         (dbus_message_iter_get_array_len): New function, returns
28         length of array.
29         (dbus_message_iter_get_fixed_array): Fix assertion; this
30         function should be used when the iter is pointing to the
31         contents of an array
32         * dbus/dbus-message.h: Prototypes.
33         * dbus/dbus-marshal-recursive.c (_dbus_type_reader_get_array_length):
34         New function; returns length of an array.
35         * dbus/dbus-marshal-recursive.h: Prototype it.
36         
37 2005-05-11  Colin Walters  <walters@verbum.org>
38
39         * dbus/dbus-sysdeps-util.c <!HAVE_POSIX_GETPWNAM_R>: Fix
40         compilation error.
41         
42 2005-05-08  Havoc Pennington  <hp@redhat.com>
43
44         * dbus/dbus-sysdeps-util.c (_dbus_become_daemon): write the
45         daemon's pid, not the parent's pid, to the file descriptor.
46         Reported by Taj Morton.
47
48 2005-05-05  Havoc Pennington  <hp@redhat.com>
49
50         * configure.in (LT_*): add notes on how the libtool versioning
51         works to save thinking. Increment soname to indicate protocol
52         breakage (though really the library interface hasn't changed I
53         guess)
54
55         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
56         verify the GUID received from server matches what we were
57         expecting, if we had an expectation
58
59         * dbus/dbus-auth.c (send_ok): send GUID along with the OK command
60         (_dbus_auth_get_guid_from_server): new function
61         (send_begin): parse the OK args
62
63         * doc/dbus-specification.xml: add GUID to the auth protocol
64
65 2005-05-05  John (J5) Palmieri  <johnp@redhat.com>
66
67         * Fix my name in previous changelog ;)
68
69         * python/proxies.py (ProxyObject.__getattr__): add further patch
70         from Anthony Baxter to throw an AttributeError when python 
71         __special__ functions are called instead of marshling them over 
72         the bus (Bug#1685 comment 3).
73
74 2005-05-04  John (J5) Palmieri  <johnp@redhat.com>
75
76         * python/Makefile.am: changed to use pyexecdir for the binding
77         shared libraries (Bug#2494)
78
79         * python/exceptions.py: bring exceptions over from the bindings
80         so they can be used in applications (Bug#2036)
81         Make all exceptions derive from DBusException
82
83         * python/_dbus.py, python/proxies.py: implement __repr__ in a couple
84         of classes so that print obj doesn't throw an exception (Bug #1685)
85
86 2005-05-03  Ross Burton  <ross@burtonini.com>
87
88         * glib/dbus-gobject.c (dbus_g_connection_register_g_object):
89         Return if we get an error during registration.  Set up a
90         weak reference on object to unregister if object is destroyed.
91         (unregister_gobject): New function.
92         
93 2005-05-01  John (J5) Palmieri  <johnp@redhat.com>
94
95         * python/dbus_bindings.pyx.in: 
96         - added new type classes for hinting to the marashaler what type 
97         to send over the wire
98         - added int16 and uint16 marshalers
99         - Fixed a bug in the type constants that caused int32 to go out
100         as uint16 over the wire
101         * python/dbus.py: split up into different files and renamed _dbus.py
102         * python/__init__.py, python/_util.py, python/decorators.py, 
103         python/exceptions.py, python/proxies.py, python/services.py,
104         python/types.py: new files split off from dbus.py
105         * python/Makefile.am: Add new files, remove dbus.py and 
106         install all python files to <python module dir>/dbus
107         * python/examples/*: Added #!/usr/bin/env python to the top of
108         every example.  Patch provided by Tatavarty Kalyan
109
110 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
111
112         * NEWS: Update to 0.33
113
114 2005-04-25  John (J5) Palmieri  <johnp@redhat.com>
115
116         * python/dbus_bindings.pyx.in (send_with_reply_handlers): New send
117         method for doing async calls
118         (_pending_call_notification): New C function for handling pendning call
119         callbacks
120         (set_notify): New method for setting pending call notification
121         
122         * python/dbus.py: new version tuple "version" is set at (0, 40, 0)
123         Async capabilities added to remote method calls
124         (Sender): class removed
125         (RemoteService): class removed
126         (ObjectTree): class removed for now
127         (RemoteObject): Renamed to ProxyObject
128         (RemoteMethod): Renamed to ProxyMethod
129         (method): Decorator added for decorating python methods as dbus methods
130         (signal): Decorator added for decorating python methods as signal emitters
131         (ObjectType): Metaclass added for generating introspection data and the
132         method callback vtable
133         (Interface): Wrapper class added to wrap objects in a dbus interface
134         (Object): Uses ObjectType as its metaclass and exports Introspect
135         of the org.freedesktop.DBus.Introspectable interface
136         (ValidationException, UnknownMethodException): new exceptions
137
138         * python/examples/*: Modified to fit with the new bindings
139
140 2005-04-23  Havoc Pennington  <hp@redhat.com>
141
142         * dbus/dbus-message.c (dbus_message_append_args): fix doc comment,
143         reported by Tony Houghton
144
145         * test/test-service.c (main): test
146         dbus_connection_get_object_path_data()
147
148         * dbus/dbus-object-tree.c (find_handler): be sure we always init
149         the exact_match
150         (_dbus_object_tree_get_user_data_unlocked): new function used by
151         dbus_connection_get_object_path_data()
152         (do_register): add assertion test for get_user_data_unlocked
153         (object_tree_test_iteration): more tests
154
155         * dbus/dbus-connection.c (dbus_connection_get_object_path_data):
156         new function from Dan Reed to let you get the user data from 
157         dbus_connection_register_object_path()
158
159 2005-04-23  John (J5) Palmieri  <johnp@redhat.com>
160
161         * dbus/dbus-marshal-recursive-util.c: Fixed buffer overflow
162         in numerous places that did not account for the NULL terminator
163         (signature_from_seed): changed the manual string copy loop to 
164         just use strcpy instead
165         make check should now pass
166
167 2005-04-19  John (J5) Palmieri  <johnp@redhat.com>
168
169         * dbus/dbus-marshal-header.c (_dbus_header_create): Fix assert
170         so that it allows messages that are not signals to pass in 
171         NULL as the interface.
172
173 2005-04-18  David Zeuthen  <davidz@redhat.com>
174
175         * glib/dbus-gmain.c (io_handler_destroy_source): 
176         (timeout_handler_destroy_source, connection_setup_free): 
177         Also unref the source to avoid memory leaks.
178
179 2005-04-13  David Zeuthen  <davidz@redhat.com>
180
181         * bus/config-parser.c (bus_config_parser_new): Bump this to a
182         more reasonable, yet still totally arbitrary, value :-). 
183
184 2005-04-13  David Zeuthen  <davidz@redhat.com>
185
186         * doc/TODO: Added an "important for 1.0" item about selinux
187         allow/deny messages
188
189 2005-04-13  David Zeuthen  <davidz@redhat.com>
190
191         * bus/selinux.c: Add c-file-style to top of file
192         (log_audit_callback): Don't free the data here anymore
193         (bus_selinux_check): Don't take spid and tpid since appending
194         that to auxdata may OOM.
195         (bus_selinux_allows_acquire_service): Handle OOM and signal back
196         to the caller if we are OOM by taking an error object.
197         (bus_selinux_allows_send): -do-
198
199         * bus/selinux.h: Fix prototypes for bus_selinux_allows_acquire_service
200         and bus_selinux_allows_send
201
202         * bus/bus.c (bus_context_check_security_policy): Pass error and
203         pass on OOM thrown by bus_selinux_allows_send()
204
205         * bus/services.c (bus_registry_acquire_service): Pass error and
206         pass on OOM thrown by bus_selinux_allows_acquire_service()
207
208 2005-04-13  Havoc Pennington  <hp@redhat.com>
209
210         * glib/dbus-gmain.c (message_queue_dispatch): only dispatch one
211         message at a time to avoid monopolizing the main loop, bug 
212         #2953 from Benjamin Otte
213
214 2005-04-09  Havoc Pennington  <hp@redhat.com>
215
216         * dbus/dbus-string.c (copy): change a memcpy to memmove due to
217         possible overlap, fix from Daniel Reed
218         (fixup_alignment): fix signedness warnings
219         (_dbus_string_append_unichar): ditto
220
221 2005-04-09  Havoc Pennington  <hp@redhat.com>
222
223         * dbus/dbus-message-util.c (_dbus_message_test): fix signedness warning
224
225         * glib/dbus-glib-tool.c (main): fix warning
226
227         * glib/dbus-binding-tool-glib.c (generate_glue): fix warning
228
229         * dbus/dbus-connection.c (dbus_connection_read_write_dispatch):
230         add a new function that can be used in simple applications that
231         don't have a main loop and are willing to block
232
233 2005-04-05  David Zeuthen  <davidz@redhat.com>
234
235         Fix https://bugs.freedesktop.org/show_bug.cgi?id=2889
236
237         * glib/dbus-gmain.c:
238         (io_handler_destroy_source): Remove from list of IO handlers
239         of the ConnectionSetup object
240         (timeout_handler_destroy_source): -do- for timeout handlers
241         (io_handler_source_finalized): Don't remove from list since
242         we now do that in io_handler_destroy_source(). Renamed from
243         io_handler_source_destroyed
244         (timeout_handler_source_destroyed): -do- for timeout handlers
245         (connection_setup_free): It is now safe to iterate over all
246         IO and timeout handlers as the _destroy_source removes them
247         from the list synchronously
248
249 2005-03-30  Havoc Pennington  <hp@redhat.com>
250
251         * configure.in: change check to gtk 2.4
252
253         * tools/dbus-viewer.c (name_combo_changed_callback): remove
254         gtk_combo_box_get_active_text() usage to decrement GTK requirement
255         to 2.4
256
257 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
258
259         * News: Update 0.32
260
261         * HACKING: Fixed realease instructions.  configure.in should be updated to
262           the next release by the person who made the last release.
263
264 2005-03-29  John (J5) Palmieri  <johnp@redhat.com>
265
266         * python/lvalue_cast_post_process.py - removed.  Patch has been
267           submitted to Pyrex maintainers that fixes gcc4.0 errors
268
269         * python/Makefile.am: removed refrences to lvalue_cast_post_process.py
270
271 2005-03-24  Daniel Reed  <n@ml.org>
272
273         * tools/Makefile.am: Make print-introspect and
274         dbus-bus-introspect.xml building conditional on HAVE_GLIB.
275
276 2005-03-22  John (J5) Palmieri  <johnp@redhat.com>
277
278         * tools/Makefile.am: Patch by Colin Walters that fixes distcheck
279
280         * dbus/dbus-userdb.c, dbus/dbus-userdb-util.c: Add patch we have 
281           had in Red Hat packages for a while but for some reason never 
282           got merged upstream
283           (_dbus_is_a_number): New checks if a string
284           can be converted to a number and does the conversion if it can
285           (_dbus_user_database_lookup): Add check to see if the given username
286           is a udi.  This allows udi's to be used instead of usernames in the
287           config file.
288           (_dbus_user_database_lookup_group): Add check to see if the given groupname
289           is a gdi.  This allows gdi's to be used instead of groupnames in the
290           config file.
291
292 2005-03-21  John (J5) Palmieri  <johnp@redhat.com>
293
294         * python/lvalue_cast_post_process.py - added post processor to fix Pyrex
295           code so that it compiles with gcc4.0
296
297         * python/Makefile.am: Added lvalue_cast_post_process.py to EXTRA_DIST
298           run dbus_bindings.c through lvalue_cast_post_process.py and copy the
299           results back to dbus_binding.c
300
301 2005-03-20  Colin Walters  <walters@verbum.org>
302
303         Patch suggested by Inguva Rajasekhar <ringuva@novell.com>.
304
305         * configure.in: Require GTK+ 2.6.
306         
307 2005-03-20  Colin Walters  <walters@verbum.org>
308
309         * Makefile.am (SUBDIRS, DIST_SUBDIRS): Build tools before test.
310
311 2005-03-17  Tom Parker  <palfrey@tevp.net>
312
313         * dbus/dbus-userdb.c (_dbus_user_database_lookup): Don't
314         print DBUS_UID_UNSET; instead print passed username.  Also
315         be sure to actually use gid looked up in cache.
316         
317         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group): Ditto
318         for DBUS_GID_UNSET and groupname.
319
320 2005-03-17  Colin Walters  <walters@verbum.org>
321
322         * bus/print-introspect.c: Move to tools/.
323         * bus/run-with-tmp-session-bus.sh: Ditto.
324         
325         * glib/Makefile.am (dbus-glib-bindings.h): Move
326         generation to tools/Makefile.am.
327
328         * test/glib/run-test.sh: Update to handle move
329         of run-with-tmp-session-bus.sh.
330
331         * test/glib/test-service-glib.c: Update to handle
332         move of dbus-glib-bindings.h.
333
334         * tools/print-introspect.c: Moved here
335         from bus/, and ported to GLib bindings.
336
337         * tools/run-with-tmp-session-bus.sh: Moved here
338         from bus/.
339
340         * tools/Makefile.am: Generate dbus-glib-bindings.h
341         and dbus-bus-introspect.xml here.
342
343         * tools/.cvsignore, glib/.cvsignore, bus/.cvsignore:
344         Update.
345
346 2005-03-17  Colin Walters  <walters@verbum.org>
347
348         * bus/driver.c (write_args_for_direction): Use
349         _dbus_string_get_const_data to retrieve string;
350         _dbus_string_get_const_data_len doesn't actually return
351         a NULL-terminated substring.
352
353         * test/glib/test-service-glib.c: Include dbus-glib-bindings.h.
354         (main): Change to use org_freedesktop_DBus_request_name
355         instead of using g_proxy_begin_call/end_call.
356
357 2005-03-15  Joe Shaw  <joeshaw@novell.com>
358
359         * mono/ProxyBuilder.cs (BuildFinalizer): Fix some invalid IL when
360         generating the finalizer.  Fixes from Ben Maurer.
361
362 2005-03-12  Joe Shaw  <joeshaw@novell.com>
363
364         * mono/BusDriver.cs: Update method names: ListServices
365         becomes ListNames; GetOwner becomes GetNameOwner.
366
367         * mono/ProxyBuilder.cs (BuildFinalizer): Need to load arg 0
368         onto the eval stack when removing the delegate.
369
370 2005-03-12  Joe Shaw  <joeshaw@novell.com>
371
372         * mono/dbus-sharp.dll.config.in: Don't hardcode 0 for
373         LT_CURRENT.  Set it to the autoconf variable.
374                                                                                 
375         * mono/ProxyBuilder.cs: Add a finalizer to the generated proxy
376         classes that disconnects the signal handler delegate from the
377         service object.  Fixes a big leak of proxy objects on the
378         client side of things.  Patch from Ben Maurer
379         <bmaurer@ximian.com>
380
381 2005-03-12  Colin Walters  <walters@verbum.org>
382
383         * bus/driver.c (write_args_for_direction): New function,
384         parses a type signature into arguments and outputs to
385         XML.
386         (bus_driver_handle_introspect): Use it instead of
387         hardcoding XML for certain signatures.
388         
389         * bus/Makefile.am (dbus-bus-introspect.xml): Add
390         dependency on dbus-daemon.
391
392         * glib/dbus-glib-tool.c (main): Parse ignore_unsupported
393         argument, pass it to dbus_binding_tool_output_glib_client.
394
395         * glib/dbus-binding-tool-glib.c
396         (generate_client_glue): Protect against multiple inclusion.
397         (dbus_binding_tool_output_glib_client): Add
398         G_BEGIN_DECLS/G_END_DECLS.
399
400         * glib/dbus-binding-tool-glib.c (compute_client_method_name):
401         Change to just take iface prefix directly.
402         (write_formal_parameters): Clarify error message.
403         (check_supported_parameters): New function; checks to see type
404         signatures of method parameters are supported.
405         (generate_client_glue): Handle ignore_unsupported flag.
406         (dbus_binding_tool_output_glib_client): Handle ignore_unsupported
407         parameter.
408
409         * glib/Makefile.am (dbus-glib-bindings.h): Pass
410         --ignore-unsupported by default until glib bindings
411         support arrays.
412
413 2005-03-11  Colin Walters  <walters@verbum.org>
414
415         * glib/Makefile.am: Generate dbus-glib-bindings.h and
416         install it.
417
418         * bus/print-introspect.c: New file; prints introspection
419         data for a given name and object path.
420
421         * bus/run-with-tmp-session-bus.sh: New file, refactored
422         from test/glib/run-test.sh.  Creates a temporary session
423         bus and runs another program.
424
425         * test/glib/run-test.sh: Refactor to invoke
426         run-with-tmp-session-bus.sh.
427
428         * bus/driver.c (bus_driver_handle_introspect): Fix to print new
429         introspection format.  Also change to use DBUS_TYPE_x_AS_STRING
430         macros instead of hardcoding.
431
432         * glib/.cvsignore, bus/.cvsignore, test/glib/.cvsignore: Update.
433
434 2005-03-11  Joe Shaw  <joeshaw@novell.com>
435
436         * dbus/dbus-connection.c (dbus_connection_send_with_reply): Remove
437         this unref; it doesn't match up evenly in some codepaths.
438         (_dbus_connection_block_pending_call): Unref at every exitpoint;
439         this evenly matches with the ref near the top of this function.
440
441 2005-03-09  Joe Shaw  <joeshaw@novell.com>
442
443         * dbus/dbus-object-tree.c
444         (_dbus_object_tree_unregister_and_unlock): If checks are enabled
445         and we try to unregister a path that's not registered, still go
446         through the process of unlocking and don't just return.
447
448 2005-03-09  Colin Walters  <walters@verbum.org>
449
450         * glib/dbus-gproxy.c (dbus_g_proxy_invoke): New method; calls
451         to this are generated for client-side wrappers.  Invokes a
452         D-BUS method and returns reply values.  
453
454         * glib/dbus-binding-tool-glib.c (write_args_sig_for_direction): New
455         function; writes signature string for argument direction.
456         (write_args_for_direction): Change to pass input values directly
457         instead of via address, and fix indentation.
458         (generate_client_glue): Change to invoke dbus_g_proxy_invoke.  Also
459         make generated wrappers inlineable.
460
461         * dbus/dbus-message.c (dbus_message_iter_get_fixed_array): Add
462         note about using dbus_type_is_fixed.
463
464         * dbus/dbus-marshal-basic.c (_dbus_type_is_fixed): Moved to
465         dbus/dbus-signature.c as dbus_type_is_fixed.
466
467         All callers updated.
468
469         * dbus/dbus-signature.c (dbus_type_is_fixed): Moved here
470         from dbus/dbus-marshal-basic.c:_dbus_type_is_fixed.
471
472         * dbus/dbus-signature.h: Prototype.
473
474         * glib/dbus-binding-tool-glib.c (compute_marshaller_name): Fix
475         error printf code.
476
477         * test/glib/test-dbus-glib.c (main): Be sure to clear error as
478         appropriate instead of just freeing it.
479         (main): Free returned strings using g_free.
480
481         * test/glib/Makefile.am (test-service-glib-glue.h)
482         (test-service-glib-bindings.h): Add dependency on dbus-binding-tool.
483
484         * glib/dbus-gvalue.c (MAP_BASIC): Refactored from MAP_BASIC_INIT;
485         simply maps a simple D-BUS type to GType.
486         (dbus_dbus_type_to_gtype): Function which maps D-BUS type to
487         GType.
488         (dbus_gvalue_init): Just invoke dbus_dbus_type_to_gtype and
489         initialize the value with it.
490         (dbus_gvalue_binding_type_from_type): Unused, delete.
491         (dbus_gvalue_demarshal): Switch to hardcoding demarshalling for
492         various types instead of unmarshalling to value data directly.
493         Remove can_convert boolean.
494         (dbus_gvalue_marshal): Remove duplicate initialization; switch to
495         returning directly instead of using can_convert boolean.
496         (dbus_gvalue_store): New function; not related to D-BUS per-se.
497         Stores a GValue in a pointer to a value of its corresponding C
498         type.
499
500         * glib/dbus-gvalue.h: Remove dbus_gvalue_binding_type_from_type,
501         add dbus_gvalue_store.
502
503 2005-03-08  Joe Shaw  <joeshaw@novell.com>
504
505         Fix a bunch of lifecycle and memory management problems
506         in the mono bindings.
507
508         * mono/Arguments.cs (Arguments): Implement IDisposable
509
510         * mono/Bus.cs (Bus): Don't allow public instantiation.  This is
511         strictly a static class.
512
513         * mono/Connection.cs: Move the DBusObjectPathVTable and associated
514         delegates into this file.
515         (Connection): Implement IDisposable.
516         (Dispose): Disconnect the connection and set the raw connection
517         pointer to IntPtr.Zero.
518         (~Connection): Call Dispose().
519         (RegisterObjectPath): Added.  Manages the registration of object
520         paths so we can cleanly disconnect them at dispose/finalize time.
521         (UnregisterObjectPath): Ditto.
522         (set_RawConnection): Unregister all of the object paths when
523         changing the underlying DBusConnection.  Add them back onto the
524         new connection, if any.
525
526         * mono/Handler.cs: Don't implement IDisposable; it doesn't use any
527         more unmanaged resources anymore, so it's not necessary.  Move all
528         the DBusObjectPathVTable stuff out of here.
529         (Handler): Save references to our delegates so that they don't get
530         finalized.  Call Connection.RegisterObjectPath() instead of
531         dbus_connection_register_object_path() directly.
532         (Message_Called): Dispose the message after we're finished with
533         it.
534
535         * mono/Message.cs (Message): Implement IDisposable.
536         (Dispose): Dispose the Arguments, and set the RawMessage to
537         IntPtr.Zero.
538         (SendWithReplyAndBlock): We own the ref to the reply that comes
539         back from dbus_connection_send_with_reply_and_block() so add a
540         comment about that and unref it after we've constructed a managed
541         MethodReturn class around it.  Fixes a big, big leak.
542
543         * mono/ProxyBuilder.cs: Reflect into Message to get the Dispose
544         method.
545         (BuildSignalHandler): After we've sent the Signal message, dispose
546         of it.
547         (BuildMethod): Dispose of the method call and reply messages after
548         we've sent the message and extracted the data we want from the
549         reply.
550
551         * mono/Service.cs (UnregisterObject): Don't call handler.Dispose()
552         anymore.
553         (Service_FilterCalled): Dispose of the message after we're
554         finished with it.
555
556 2005-03-08  Joe Shaw  <joeshaw@novell.com>
557
558         * dbus/dbus-connection.c (dbus_connection_send_with_reply):
559         After we attach our pending call to the connection, unref
560         it.  Fixes a leak.
561  
562         * mono/Connection.cs (set_RawConnection): Disconnect our
563         filter and match callbacks from the old connection and
564         reconnect them to the new connection, if any.
565
566         * mono/DBusType/Array.cs: "Code" is a static member, so
567         don't use "this" to refer to it.  Fix for stricter checking
568         in Mono 1.1.4.
569  
570         * mono/DBusType/ObjectPath.cs (Append): Don't leak the
571         object path that we pass into unmanaged code.
572  
573         * mono/DBusType/String.cs (Append): Don't leak the string
574         that we pass into unmanged code.
575
576 2005-03-07  John (J5) Palmieri  <johnp@redhat.com>
577         * NEWS: Update for 0.31
578
579         * configure.in: Release 0.31
580         add LT_CURRENT, LT_REVISION, LT_AGE for easy soname bumping
581
582         * qt/Makefile.am: fixed build
583
584         * dbus/Makefile.am: soname bump for libdbus
585
586         * glib/Makefile.am: soname bump for libdbus-glib
587
588 2005-03-05  Havoc Pennington  <hp@redhat.com>
589
590         * dbus/dbus-sysdeps.c:
591         (pseudorandom_generate_random_bytes_buffer): fix to have no return
592         value
593         (_dbus_generate_random_bytes_buffer): fix return value
594
595         * dbus/dbus-sysdeps-util.c: s/GETPWNAME/GETPWNAM/ so configure
596         checks actually work, from Tom Parker <fdo@tevp.net>
597
598 2005-03-01  Colin Walters  <walters@verbum.org>
599
600         * test/glib/test-dbus-glib.c (lose, lose_gerror): Utility
601         functions copied from dbus-glib-tool.c.
602         (main): Convert lots of error code to use them.
603         Also add some testing for introspection bits.
604
605 2005-03-01  Colin Walters  <walters@verbum.org>
606         
607         * doc/TODO: Remove introspection signature TODO.
608
609 2005-02-27  Colin Walters  <walters@verbum.org>
610
611         * glib/dbus-gidl.c (property_info_get_type, arg_info_get_type):
612         Change return value to const char * instead of int so we can do
613         full signatures.
614         (struct PropertyInfo, struct ArgInfo): Store char *.
615         (property_info_new, arg_info_new): Update parameters, strdup.
616         (property_info_unref, arg_info_unref): Free.
617
618         * glib/dbus-gidl.h: Update prototypes.
619
620         * glib/dbus-gparser.c (basic_type_from_string): Delete.
621         (validate_signature): New function, just validates signature and
622         sets GError.
623         (parse_property, parse_arg): Invoke validate_signature.  Store
624         signature instead of just type code.
625
626         * glib/dbus-gvalue.c (base_type_from_signature): New utility
627         function to return a primary type for a signature, dropping
628         information about types in container types.
629         (dbus_gvalue_genmarshal_name_from_type)
630         (dbus_gvalue_binding_type_from_type)
631         (dbus_gvalue_ctype_from_type): Update to take full signature
632          instead of type code.
633         (dbus_gtype_to_dbus_type): Moved here from glib/dbus-gobject.c.
634
635         * glib/dbus-gvalue.h: Update prototypes for above.
636
637         * glib/dbus-gobject.c (gtype_to_dbus_type): Moved to
638         glib/dbus-gvalue.c as dbus_gtype_to_dbus_type.
639         (introspect_properties, introspect_signals, write_interface):
640         Update to handle signatures, and remove usage of
641         _dbus_gutils_type_to_string.
642         (handle_introspect): Print out type codes instead of e.g. "string"
643         in hardcoded introspection XML; also use x_AS_STRING constants
644         instead of hardcoding in string.
645
646         * glib/dbus-glib-tool.c (pretty_print): Handle signature change
647         to string.  Remove usage of _dbus_gutils_type_to_string.
648
649         * glib/dbus-gutils.c (_dbus_gutils_type_to_string): Delete.
650
651         * glib/dbus-gutils.h (_dbus_gutils_type_to_string): Update for
652         deletion.
653         
654         * glib/dbus-binding-tool-glib.c (compute_marshaller)
655         (compute_marshaller_name, generate_glue): Handle signature change
656         to string.
657         (write_formal_parameters, write_args_for_direction): Ditto, and
658         remove FIXME.
659
660         * tools/dbus-tree-view.c (type_to_string): Delete.
661         (info_set_func_text): Update to print full signatures.
662
663         * test/glib/test-service-glib.xml: Change types to new
664         introspection format.
665
666 2005-02-26  Havoc Pennington  <hp@redhat.com>
667
668         * doc/TODO: remove the "guid" item
669
670         * test/glib/test-profile.c (no_bus_thread_func): use open_private
671         (with_bus_thread_func): use open_private
672
673         * dbus/dbus-connection.c (dbus_connection_open_private): new
674         function that works like the old dbus_connection_open()
675         (dbus_connection_open): now returns an existing connection if
676         possible
677
678         * dbus/dbus-server-unix.c (handle_new_client_fd_and_unlock): pass
679         through the GUID to the transport
680
681         * dbus/dbus-server.c (_dbus_server_init_base): keep around the
682         GUID in hex-encoded form.
683
684         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
685         pass GUID argument in to the transport
686
687         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): add
688         guid argument
689
690         * dbus/dbus-transport.c (_dbus_transport_init_base): add guid argument
691
692         * dbus/dbus-auth.c (_dbus_auth_server_new): add guid argument
693
694 2005-02-25  Havoc Pennington  <hp@redhat.com>
695
696         * doc/dbus-specification.xml: document the GUID thing
697
698         * dbus/dbus-server.c (_dbus_server_init_base): initialize a
699         globally unique ID for the server, and put a "guid=hexencoded"
700         field in the address
701
702         * dbus/dbus-bus.c: fix missing #include of dbus-threads-internal.h
703
704         * dbus/dbus-message.c: ditto
705
706         * dbus/dbus-dataslot.c: ditto
707
708         * dbus/dbus-list.c: ditto
709
710         * dbus/dbus-internals.h: wait, just include
711         dbus-threads-internal.h here
712         
713         * dbus/dbus-string.c (_dbus_string_copy_to_buffer): move back for
714         use in main library
715
716         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes_buffer): new function
717
718 2005-02-24  Colin Walters  <walters@verbum.org>
719
720         * test/glib/Makefile.am (EXTRA_DIST): Add test-service-glib.xml
721
722 2005-02-24  John (J5) Palmieir  <johnp@redhat.com>
723
724         * glib/Makefile.am: added dbus-gobject.h to sources list
725         so distcheck doesn't fail
726         
727 2005-02-24  Havoc Pennington  <hp@redhat.com>
728
729         * dbus/dbus-server.c, dbus/dbus-server-unix.c: change semantics so
730         you must disconnect before unref, since locking and other things
731         are screwed up otherwise. Fix assorted other locking stuff.
732
733         * dbus/dbus-signature.c (dbus_signature_iter_get_element_type):
734         fix compilation
735
736         * dbus/dbus-threads-internal.h: move the mutex/condvar wrappers
737         into a private header and don't export from the library
738
739         * throughout - call _dbus_thread_stuff vs. dbus_thread_stuff
740
741 2005-02-24  Colin Walters  <walters@verbum.org>
742         
743         * dbus/dbus-signature.c: New file; implements various functions
744         related to type signatures.  Includes an interator for parsing,
745         validation functions.
746         (dbus_type_is_basic): Moved here from
747         dbus-marshal-basic.c:_dbus_type_is_basic.
748         (dbus_type_is_container): Moved here from
749         dbus-marshal-basic.c:_dbus_type_is_container.
750
751         All callers of _dbus_type_is_container and _dbus_type_is_basic
752         updated, and include dbus-signature.h.
753
754         * dbus/dbus-signature.h: New file; prototypes for the above.
755
756         * dbus/Makefile.am (DBUS_LIB_SOURCES): Add dbus-signature.c,
757         dbus-signature.h.
758
759         * dbus/dbus-marshal-basic.c (map_type_char_to_type): New utility
760         function factored out of _dbus_first_type_in_signature.
761         (_dbus_first_type_in_signature_c_str): New function; returns first
762         type code for a type signature character.
763
764         * dbus/dbus-marshal-basic.h: Prototype _dbus_first_type_in_signature_c_str,
765         handle function moves.
766
767         * dbus/dbus-marshal-recursive.h: Export _dbus_type_signature_next.
768
769         * dbus/dbus-marshal-recursive.c (_dbus_type_signature_next): New
770         function; skips to next complete type in type signature.
771         Implemented using previous skip_one_complete_type.  Now
772         skip_one_complete_type just delegates to
773         _dbus_type_signature_next.
774
775         * dbus/dbus-marshal-basic.c (_dbus_type_is_basic): Moved
776         to dbus-signature.c
777         (_dbus_type_is_container): Ditto.
778
779         * doc/dbus-specification.xml: Update introspection sample to
780         use real type signatures.
781
782         * dbus/dbus-test.h: Prototype signature test.
783
784         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Run
785         signature tests.
786
787         * dbus/dbus-protocol.h (DBUS_ERROR_INVALID_SIGNATURE): New error.
788
789 2005-02-23  John (J5) Palmieri  <johnp@redhat.com>
790
791         * python/dbus_bindings.pyx.in (PendingCall::get_reply):
792         s/dbus_pending_call_get_reply/dbus_pending_call_steal_reply
793
794 2005-02-21  Colin Walters  <walters@verbum.org>
795
796         * dbus/dbus-test-main.c (main): Take optional specific test
797         argument.
798
799         * dbus/dbus-test.c (run_test): New function, runs a test function
800         with no data directory.
801         (run_data_test): Like above, but takes data directory.
802         (dbus_internal_do_not_use_run_tests): Take
803         specific test argument.  Replace lots of cut n' paste code
804         with run_test and run_data_test.
805
806         * dbus/dbus-test.h: Update prototype for
807         dbus_internal_do_not_use_run_tests.
808
809 2005-02-20  Havoc Pennington  <hp@redhat.com>
810
811         Fix bugs reported by Daniel P. Berrange
812         
813         * dbus/dbus-server.c (_dbus_server_unref_unlocked): new function
814         (protected_change_watch): new function
815         (_dbus_server_toggle_watch, _dbus_server_remove_watch)
816         (_dbus_server_add_watch): change to work like the
817         dbus-connection.c equivalents; like those, probably kind of
818         busted, but should at least mostly work for now
819         (dbus_server_disconnect): drop the lock if we were already
820         disconnected, patch from Daniel P. Berrange
821
822         * dbus/dbus-server.c (_dbus_server_toggle_timeout) 
823         (_dbus_server_remove_timeout, _dbus_server_add_timeout): all the
824         same stuff
825
826         * doc/TODO: todo about unscrewing this mess
827
828 2005-02-19  Colin Walters  <walters@verbum.org>
829
830         * glib/dbus-binding-tool-glib.c
831         (dbus_binding_tool_output_glib_server): Fix iochannel refcounting.
832
833         * glib/dbus-glib-tool.c: Include dbus-glib-tool.h, as well
834         as errno.h and sys/stat.h.
835         (lose): New function, prints error with
836         newline and exits.
837         (lose_gerror): Similar, but takes GError for message.
838         (main): Add --output argument to specify output file to write to,
839         instead of always printing to stdout.  In this mode, determine
840         timestamps on source files to see whether any are newer than the
841         target file.  If not, exit.  Also convert a number of error
842         messages to use lose (since it's shorter), and switch to using
843         g_io_channel_shutdown.
844
845 2005-02-19  Havoc Pennington  <hp@redhat.com>
846
847         * glib/dbus-gobject.c
848         (_dbus_glib_marshal_dbus_message_to_gvalue_array): add docs
849
850         * glib/dbus-glib.c: fix doxygen warnings
851
852         * glib/dbus-gparser.c (parse_annotation): error if an annotation
853         is found on an <arg>
854
855 2005-02-17  Colin Walters  <walters@verbum.org>
856
857         * glib/dbus-gobject.h: Don't export
858         _dbus_glib_marshal_dbus_message_to_gvalue_array.
859         
860         * glib/dbus-gobject.c (_dbus_glib_marshal_dbus_message_to_gvalue_array): Do rename.
861         (invoke_object_method): Handle it.
862
863         * glib/dbus-gproxy.c (marshal_dbus_message_to_g_marshaller):
864         Handle rename.
865         
866 2005-02-17  Colin Walters  <walters@verbum.org>
867
868         * bus/.cvsignore, doc/.cvsignore
869         * test/data/valid-service-files/.cvsignore, test/glib/.cvsignore:
870         Update.
871
872 2005-02-17  Colin Walters  <walters@verbum.org>
873         
874         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_DBUS):
875         Rename to DBUS_SERVICE_DBUS.
876         (DBUS_PATH_ORG_FREEDESKTOP_DBUS): Rename to DBUS_PATH_DBUS.
877         (DBUS_PATH_ORG_FREEDESKTOP_LOCAL): Rename to DBUS_PATH_LOCAL.
878         Change the value from "org.freedesktop.Local"
879         to "org.freedesktop.DBus.Local".
880         (DBUS_INTERFACE_ORG_FREEDESKTOP_DBUS): Rename to DBUS_INTERFACE_DBUS.
881         (DBUS_INTERFACE_ORG_FREEDESKTOP_INTROSPECTABLE): Rename to
882         DBUS_INTERFACE_INTROSPECTABLE.
883         Change the value from "org.freedesktop.Introspectable"
884         to "org.freedesktop.DBus.Introspectable".
885         (DBUS_INTERFACE_ORG_FREEDESKTOP_PROPERTIES): Rename to
886         DBUS_INTERFACE_PROPERTIES.
887         Change the value from "org.freedesktop.Properties"
888         to "org.freedesktop.DBus.Properties".
889         (DBUS_INTERFACE_ORG_FREEDESKTOP_PEER): Rename to
890         DBUS_INTERFACE_PEER.
891         Change the value from "org.freedesktop.Peer"
892         to "org.freedesktop.DBus.Peer".
893         (DBUS_INTERFACE_ORG_FREEDESKTOP_LOCAL): 
894         DBUS_INTERFACE_LOCAL.
895         Change the value from "org.freedesktop.Local"
896         to "org.freedesktop.DBus.Local".
897
898         All other users of those constants have been changed.
899
900         * bus/driver.c (bus_driver_handle_introspect): Use constants.
901
902         * glib/dbus-gobject.c (handle_introspect): Use constants.
903
904         * doc/dbus-faq.xml, doc/dbus-specification.xml: Update for rename.
905
906 2005-02-17  Colin Walters  <walters@verbum.org>
907
908         * glib/dbus-gparser.c (struct Parser): Add in_annotation boolean.
909         (parse_node, parse_interface, parse_method, parse_signal)
910         (parse_property, parse_annotation): Lose if we're currently in an
911         annotation.
912         (parse_annotation): New function.
913         (parser_start_element, parser_end_element): Handle annotation.
914         (parse_method, parse_interface): Remove support for c_name attribute,
915         switch to annotations.
916
917         * glib/dbus-gidl.h (interface_info_get_binding_names)
918         (method_info_get_binding_names)
919         (interface_info_get_binding_name, method_info_get_binding_name)
920         (interface_info_set_binding_name, method_info_set_binding_name):
921         Remove.
922         (interface_info_get_annotations, method_info_get_annotations)
923         (interface_info_get_annotation, method_info_get_annotation)
924         (interface_info_add_annotation, method_info_add_annotation):
925         Prototype.
926
927         * glib/dbus-gidl.c (struct InterfaceInfo): Substitute "annotations"
928         for "bindings".
929         (struct MethodInfo): Ditto.
930         Straightfoward conversion of binding methods into annotation methods
931         as prototyped.
932
933         * glib/dbus-glib-tool.c (pretty_print): Print annotations.
934
935         * glib/dbus-binding-tool-glib.h (DBUS_GLIB_ANNOTATION_C_SYMBOL): Define.
936
937         * glib/dbus-binding-tool-glib.c (gather_marshallers, generate_glue):
938         Use new annotation API.
939
940         * doc/introspect.dtd: Fix a number of DTD syntax errors.  Add
941         annotation element.
942         
943         * doc/dbus-specification.xml: Discuss introspection annotations,
944         include list of well-known annotations.
945
946         * test/glib/test-service-glib.xml: Make validate against new DTD.
947
948 2005-02-17  Colin Walters  <walters@verbum.org>
949
950         This patch is based on initial work from
951         Paul Kuliniewicz <kuliniew@purdue.edu>.
952
953         * glib/dbus-gvalue.c (dbus_gvalue_init): New function; move
954         initialization of GValue from dbus type to here.
955         (dbus_gvalue_genmarshal_name_from_type): New function; generates a string
956         for the "glib-genmarshal" program from a DBus type.
957         (dbus_gvalue_binding_type_from_type): New function; turns a DBus type
958         into the C name for it we use in the glib bindings.
959         (dbus_gvalue_ctype_from_type): New function; maps a DBus type into a
960         glib C type (not GValue).
961         (dbus_gvalue_demarshal): invoke dbus_gvalue_init.
962
963         * glib/dbus-gutils.c (_dbus_gutils_wincaps_to_uscore): Moved here
964         from dbus-gobject.c.
965
966         * glib/dbus-gutils.h: Prototype it.
967
968         * glib/dbus-gproxy.c: Include new dbus-gobject.h.
969         (marshal_dbus_message_to_g_marshaller): Use new shared function
970         dbus_glib_marshal_dbus_message_to_gvalue_array.
971
972         * glib/dbus-gparser.c (parse_interface, parse_method): Handle c_name attribute.
973         Will be changed once we have annotations.
974
975         * glib/dbus-gobject.c: Change info_hash_mutex from GStaticMutex to
976         GStaticRWLock.  Callers updated.
977         (wincaps_to_uscore): Move to dbus-gutils.c.  Callers updated.
978         (string_table_next): New function for iterating over zero-terminated
979         string value array.
980         (string_table_lookup): New function; retrieves specific entry in
981         array.
982         (get_method_data): New function; look up method data in object data chunk.
983         (object_error_domain_prefix_from_object_info)
984         (object_error_code_from_object_info): New functions, but not implemented yet.
985         (method_interface_from_object_info): New function; retrieve interface name.
986         (method_name_from_object_info): New function; retrieve method name.
987         (method_arg_info_from_object_info): New function; retrieve argument data.
988         (arg_iterate): New function; iterates over serialized argument data.
989         (method_dir_signature_from_object_info): New function; returns a
990         GString holding type signature for arguments for just one
991         direction (input or output).
992         (method_input_signature_from_object_info)
993         (method_output_signature_from_object_info): New functions.
994         (dbus_glib_marshal_dbus_message_to_gvalue_array): New shared function;
995         converts dbus message arguments into a GValue array.  Used for both
996         signal handling and method invocation.
997         (struct DBusGlibWriteIterfaceData): New utility structure.
998         (write_interface): New function; generate introspection XML for
999         an interface.
1000         (introspect_interfaces): New function; gathers all interface->methods,
1001         generates introspection XML for them.
1002         (handle_introspect): Invoke introspect_interfaces.
1003         (get_object_property): Be sure to zero-initalize stack-allocated GValue.
1004         (lookup_object_and_method): New function; examines an incoming message
1005         and attempts to match it up (via interface, method name, and argument
1006         signature) with a known object and method.
1007         (gerror_domaincode_to_dbus_error_name): New function; converts a
1008         GError domain and code into a DBus error name.  Needs GError data
1009         added to object introspection to work well.
1010         (gerror_to_dbus_error_message): Creates a DBusMessage error return from
1011         GError.
1012         (invoke_object_method): New function to invoke an object method
1013         looked up via lookup_object_and_method.  Parses the incoming
1014         message, turns it into a GValue array, then invokes the marshaller
1015         specified in the DBusGMethodInfo.  Creates a new message with
1016         either return values or error message as appropriate.
1017         (gobject_message_function): Invoke lookup_object_and_method and
1018         invoke_object_method.
1019
1020         * glib/dbus-glib-tool.c: Include dbus-binding-tool-glib.h.
1021         (enum DBusBindingOutputMode): New enum for binding output modes.
1022         (pretty_print): Print binding names.
1023         (dbus_binding_tool_error_quark): GError bits.
1024         (version): Fix typo.
1025         (main): Create GIOChannel for output.  Parse new --mode argument,
1026         possible values are "pretty-print", "glib-server", "glib-client".
1027         Use mode to invoke appropriate function.
1028         
1029         * glib/dbus-gobject.h: Prototype dbus_glib_marshal_dbus_message_to_gvalue_array.
1030
1031         * glib/dbus-glib-tool.h: New header, just includes GError bits
1032         for now.
1033
1034         * glib/dbus-gidl.c (struct InterfaceInfo): Add bindings hashtable;
1035         maps binding style to name.
1036         (struct MethodInfo): Ditto.
1037         (get_hash_keys, get_hash_key): Utility function, returns keys for
1038         a GHashTable.
1039         (interface_info_new, method_info_new): Initialize bindings.
1040         (interface_info_unref, method_info_unref): Destroy bindings.
1041         (method_info_get_binding_names, method_info_get_binding_name)
1042         (interface_info_get_binding_names, interface_info_get_binding_name):
1043         Functions for retrieving binding names.
1044         (method_info_set_binding_name, interface_info_set_binding_name):
1045         Functions for setting binding names.
1046
1047         * glib/dbus-binding-tool-glib.h: New file, has prototypes
1048         for glib binding generation.
1049
1050         * glib/dbus-binding-tool-glib.c: New file, implements server-side
1051         and client-side glib glue generation.
1052
1053         * glib/Makefile.am (dbus_binding_tool_SOURCES): Add
1054         dbus-binding-tool-glib.c, dbus-binding-tool-glib.h,
1055         dbus-glib-tool.h.
1056
1057         * dbus/dbus-glib.h (struct DBusGMethodMarshaller): Remove in favor
1058         of using GClosureMarshal directly.
1059         (struct DBusGObjectInfo): Add n_infos member.
1060
1061         * test/glib/test-service-glib.xml: New file; contains introspection data
1062         for MyTestObject used in test-service-glib.c.
1063
1064         * test/glib/test-service-glib.c (enum MyObjectError): New GError enum.
1065         (my_object_do_nothing, my_object_increment, my_object_throw_error)
1066         (my_object_uppercase, my_object_many_args): New test methods.
1067         (main): Use dbus_g_object_class_install_info to include generated object
1068         info.
1069
1070         * test/glib/Makefile.am: Generate server-side glue for test-service-glib.c,
1071         as well as client-side bindings.
1072
1073         * test/glib/test-dbus-glib.c: Include test-service-glib-bindings.h.
1074         (main): Activate TestSuiteGLibService; test invoke a bunch of its methods
1075         using both the dbus_gproxy stuff directly as well as the generated bindings.
1076
1077 2005-02-15  Havoc Pennington  <hp@redhat.com>
1078
1079         * dbus/dbus-connection.c (dbus_connection_dispatch): always
1080         complete a pending call, don't run filters first.
1081
1082         * glib/dbus-gproxy.c (dbus_g_proxy_end_call): change to use
1083         dbus_pending_call_steal_reply
1084
1085         * dbus/dbus-pending-call.c (dbus_pending_call_block): just call
1086         _dbus_connection_block_pending_call
1087         (dbus_pending_call_get_reply): change to steal_reply and return a
1088         ref
1089
1090         * dbus/dbus-connection.c
1091         (dbus_connection_send_with_reply_and_block): port to work in terms
1092         of DBusPendingCall
1093         (_dbus_connection_block_pending_call): replace block_for_reply
1094         with this
1095
1096 2005-02-14  Havoc Pennington  <hp@redhat.com>
1097
1098         * dbus/dbus-userdb-util.c (_dbus_user_database_lookup_group):
1099         properly handle looking up group information by name; fix 
1100         from j@bootlab.org
1101
1102 2005-02-13  Havoc Pennington  <hp@redhat.com>
1103
1104         * dbus/dbus-connection.c (dbus_connection_return_message) 
1105         (dbus_connection_borrow_message): hold dispatch lock while message
1106         is outstanding
1107         (_dbus_connection_block_for_reply): hold dispatch lock while we
1108         block for the reply, so nobody steals our reply
1109         (dbus_connection_pop_message): hold the dispatch lock while we
1110         pluck the message
1111
1112 2005-02-13  Havoc Pennington  <hp@redhat.com>
1113
1114         * dbus/dbus-connection.c (_dbus_connection_acquire_dispatch)
1115         (_dbus_connection_release_dispatch)
1116         (_dbus_connection_acquire_io_path)
1117         (_dbus_connection_release_io_path): make the mutex and condvar
1118         control access to the "acquired" flag. Drop the connection lock
1119         while waiting on the condvar. Hopefully these are baby steps in
1120         roughly the right direction.
1121
1122 2005-02-13  Havoc Pennington  <hp@redhat.com>
1123
1124         * dbus/dbus-connection.c: use separate mutexes for the condition
1125         variables; this is some kind of baseline for sanity, but the
1126         condition variables still aren't used correctly afaict
1127
1128 2005-02-13  Havoc Pennington  <hp@redhat.com>
1129
1130         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
1131         fix a double-unlock
1132
1133         * dbus/dbus-connection.c
1134         (_dbus_connection_detach_pending_call_unlocked): add this
1135
1136         Initial semi-correct pass through to fix thread locking; there are
1137         still some issues with the condition variable paths I'm pretty
1138         sure
1139         
1140         * dbus/dbus-server.c: add a mutex on DBusServer and appropriate
1141         lock/unlock calls
1142
1143         * dbus/dbus-connection.c (_dbus_connection_do_iteration_unlocked):
1144         rename to add _unlocked
1145         (struct DBusConnection): move "dispatch_acquired" and
1146         "io_path_acquired" to use only one bit each.
1147         (CONNECTION_LOCK, CONNECTION_UNLOCK): add checks with !DBUS_DISABLE_CHECKS
1148         (dbus_connection_set_watch_functions): hacky fix to reentrancy
1149         (_dbus_connection_add_watch, _dbus_connection_remove_watch) 
1150         (_dbus_connection_toggle_watch, _dbus_connection_add_timeout) 
1151         (_dbus_connection_remove_timeout) 
1152         (_dbus_connection_toggle_timeout): drop lock when calling out to
1153         user functions; done in a hacky/bad way.
1154         (_dbus_connection_send_and_unlock): add a missing unlock
1155         (_dbus_connection_block_for_reply): add a missing unlock
1156
1157         * dbus/dbus-transport.c (_dbus_transport_get_is_authenticated):
1158         drop lock in a hacky probably unsafe way to call out to user
1159         function
1160
1161 2005-02-12  Havoc Pennington  <hp@redhat.com>
1162
1163         * tools/dbus-tree-view.c (info_set_func_text): display more
1164         details on args
1165
1166         * bus/driver.c (bus_driver_handle_list_services): list the bus
1167         driver
1168
1169         * glib/dbus-gparser.c (parse_arg): generate an arg name if none is supplied
1170
1171         * glib/dbus-gidl.c (signal_info_get_n_args): new function
1172         (method_info_get_n_args): new function
1173
1174 2005-02-12  Havoc Pennington  <hp@redhat.com>
1175
1176         * bus/driver.c (bus_driver_handle_introspect): add introspection
1177         for bus driver
1178
1179 2005-02-12  Havoc Pennington  <hp@redhat.com>
1180
1181         * bus/driver.c: put the signature of each bus driver method in the
1182         table of handlers and check it on incoming calls; this isn't
1183         really useful, but going to add introspect support in a minute.
1184
1185 2005-02-11  Joe Shaw  <joeshaw@novell.com>
1186
1187         * mono/Connection.cs: The unpredictability of finalizers in mono
1188         prevents us from deterministically disconnecting the filters from
1189         the Service class's finalizer, so move tracking of filters and
1190         matches here.  Add API for that.
1191
1192         * mono/Service.cs: Remove the code, add code which calls the
1193         methods now on the Connection class.
1194
1195 2005-02-11  John (J5) Palmieri  <johnp@redhat.com>
1196
1197         * python/dbus.py (class Sender): added to support dbus signals better
1198         (Bus::add_signal_receiver): added expand_args parameter which defaults
1199         to True.  When expand args is True the signal handler will pass the 
1200         message arguments as parameters to the signal handler.  If False
1201         revert to previous behavior where the signal handler must get the
1202         argument list from the message.  This is to help port applications
1203         like HAL that have a tendancy to send variable length argument lists.
1204         self._match_rule_to_receivers is now a dict of dicts.
1205         (Bus::remove_signal_receiver): pop handler off the dict intead of 
1206         removing it from a list
1207         (Bus::_signal_func): change signal handlers so that interface,
1208         signal_name, service, path and message are packed into a Sender
1209         object and that is passed to the handler.  If expand_args is True
1210         extract the args list from the message and append it to the parameter
1211         list
1212         
1213         * python/dbus_bindings.pyx.in (class Signature): added to support 
1214         signiature types
1215         (MessageIter::__init__): changed iteration limit to match D-BUS
1216         (MessageIter::get*): added INT16, UINT16, SIGNATURE, DICT_ENTRY, 
1217         STRUCT and VARIENT type support
1218         (MessageIter::python_value_to_dbus_sig): made recursive to support
1219         recursive types
1220         (MessageIter::append*): added Signature, dict, tuple 
1221         support
1222
1223         * python/examples/example-client.py: added examples of getting tuples
1224         and dicts
1225
1226         * python/examples/example-service.py: added examples of sending tuples
1227         and dicts
1228
1229         * python/examples/example-signal-recipient.py: Fixed to handle new
1230         signal callback format
1231
1232 2005-02-10  Havoc Pennington  <hp@redhat.com>
1233
1234         * test/glib/test-dbus-glib.c (main): fix so this test doesn't fail
1235         (call dbus_g_proxy_add_signal)
1236
1237         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
1238         escape the hostname
1239         (_dbus_server_new_for_domain_socket): escape the path
1240
1241         * dbus/dbus-address.c (dbus_address_escape_value): new
1242         (dbus_address_unescape_value): new
1243         (dbus_parse_address): unescape values
1244
1245         * dbus/dbus-string.c (_dbus_string_append_byte_as_hex): new function
1246
1247         * doc/dbus-specification.xml: explain how to escape values in
1248         addresses
1249
1250 2005-02-10  Havoc Pennington  <hp@redhat.com>
1251
1252         * dbus/dbus-message-factory.c (generate_special): modify test to
1253         avoid using a non-basic dict key
1254
1255         * dbus/dbus-marshal-validate-util.c: add test for the below
1256
1257         * doc/dbus-specification.xml: require that dict keys are a basic
1258         type
1259
1260         * dbus/dbus-marshal-validate.c
1261         (_dbus_validate_signature_with_reason): require that dict key is a
1262         basic type
1263
1264 2005-02-10  Havoc Pennington  <hp@redhat.com>
1265
1266         * dbus/dbus-object-tree.c (handle_default_introspect_and_unlock):
1267         change to be _and_unlock instead of _unlocked
1268
1269         * dbus/dbus-connection.c
1270         (_dbus_connection_send_preallocated_unlocked_no_update): rename to
1271         have no_update so we can find this bug quickly in future
1272
1273 2005-02-10  Havoc Pennington  <hp@redhat.com>
1274
1275         * dbus/dbus-message-util.c (verify_test_message): tests for string
1276         array
1277
1278         * dbus/dbus-message.c (dbus_message_append_args_valist): add
1279         support for arrays of string/signature/path
1280
1281 2005-02-10  Joe Shaw  <joeshaw@novell.com>
1282
1283         * dbus/dbus-connection.c
1284         (_dbus_connection_queue_received_message_link,
1285         _dbus_connection_message_sent): Add the path to
1286         the verbose output.
1287         (_dbus_connection_send_preallocated_and_unlock): Added.  Calls
1288         _dbus_connection_send_preallocated_unlocked(), updated the
1289         dispatch status, and unlocks.  Fixes a bug where certain
1290         situations (like a broken pipe) could cause a Disconnect message
1291         to not be sent, tricking the bus into thinking a service was still
1292         there when the process had quit.
1293         (_dbus_connection_send_preallocated): Call
1294         _dbus_connection_send_preallocated_and_unlock().
1295         (_dbus_connection_send_and_unlock): Added.  Calls
1296         _dbus_connection_send_preallocated_and_unlock().
1297         (dbus_connection_send): Call _dbus_connection_send_and_unlock().
1298         (dbus_connection_send_with_reply): Update the dispatch status and
1299         unlock.
1300
1301         * mono/Service.cs (~Service): Added.  Removes the filter so that
1302         we don't get unmanaged code calling back into a GCed delegate.
1303         (RemoveFilter); Added.
1304
1305 2005-02-09  John (J5) Palmieri  <johnp@redhat.com>
1306
1307         * dbus/dbus-message.c (dbus_message_iter_open_container):
1308         - Removed check for iterator type being an array because
1309         get_arg_type does not work with writer iterators
1310         - Pass NULL to _dbus_type_writer_recurse if signiture is NULL
1311
1312 2005-02-07  Havoc Pennington  <hp@redhat.com>
1313
1314         * doc/dbus-specification.xml: some more language cleanups; add
1315         stuff about how to deal with invalid protocol and extension
1316         points; add _ to allowed chars in auth commands; add EXTENSION_
1317         auth command prefix
1318
1319 2005-02-06  Havoc Pennington  <hp@redhat.com>
1320
1321         * s/expected/required/ in a couple places for clarity
1322
1323 2005-02-07  Colin Walters  <walters@verbum.org>
1324
1325         * bus/selinux.c (bus_selinux_allows_send): Handle NULL for
1326         sender or proposed_recipient.
1327
1328 2005-02-06  Havoc Pennington  <hp@redhat.com>
1329
1330         * dbus/dbus-message-factory.c (generate_special): more tests
1331
1332         * dbus/dbus-marshal-validate.c (validate_body_helper): detect
1333         array length that exceeds the maximum
1334
1335 2005-02-05  Havoc Pennington  <hp@redhat.com>
1336
1337         * dbus/dbus-message-factory.c (generate_special): more test cases,
1338         increasing coverage
1339
1340         * dbus/dbus-marshal-validate.c (validate_body_helper): return the
1341         reason why a signature was invalid
1342
1343         * dbus/dbus-marshal-header.c (load_and_validate_field): fix to
1344         skip the length of the string before we look at it in validation
1345
1346         * dbus/dbus-string-util.c (_dbus_string_test): add tests for
1347         equal_substring
1348
1349         * dbus/dbus-message.c (_dbus_message_loader_new): default
1350         max_message_length to DBUS_MAXIMUM_MESSAGE_LENGTH
1351
1352 2005-02-05  Havoc Pennington  <hp@redhat.com>
1353
1354         * dbus/dbus-marshal-validate.c (validate_body_helper): fix crash
1355         if the signature of a variant was empty
1356         (_dbus_validate_signature_with_reason): catch "(a)" (array inside
1357         struct with no element type)
1358
1359         * dbus/dbus-message-factory.c (generate_uint32_changed): add more
1360         mangled messages to break things
1361
1362 2005-02-04  Havoc Pennington  <hp@redhat.com>
1363
1364         * glib/dbus-gproxy.c (dbus_g_proxy_disconnect_signal): use
1365         g_quark_try_string() so it actually can return 0
1366         (dbus_g_proxy_connect_signal): ditto
1367
1368 2005-02-04  Havoc Pennington  <hp@redhat.com>
1369
1370         * glib/dbus-gproxy.c (dbus_g_proxy_emit_remote_signal): fix a
1371         bogus warning
1372         (tristring_from_message): assert cleanly on null path/interface
1373         (should not be possible though I decided later)
1374         (dbus_g_proxy_dispose): move proxy manager unregistration here
1375         (DBUS_G_PROXY_DESTROYED): add this macro, and use it in a bunch of
1376         g_return_if_fail() checks
1377
1378 2005-02-04  Havoc Pennington  <hp@redhat.com>
1379
1380         * doc/Makefile.am (EXTRA_DIST): add DTDs to makefile
1381
1382         * doc/introspect.dtd: add introspect.dtd from David A. Wheeler
1383         (with some minor changes)
1384
1385         * doc/dbus-specification.xml: add deprecated attribute to
1386         introspection format
1387
1388 2005-01-31  Havoc Pennington  <hp@redhat.com>
1389
1390         * glib/dbus-gproxy.c: rewrite how signals work again, this time I
1391         think it's sort of right
1392
1393 2005-01-30  Havoc Pennington  <hp@redhat.com>
1394
1395         * tools/dbus-viewer.c: kind of half-ass hook up the option menu.
1396
1397 2005-01-30  Havoc Pennington  <hp@redhat.com>
1398
1399         * tools/dbus-names-model.c: dynamically watch NameOwnerChanged
1400
1401         * autogen.sh: change to autotools 1.9
1402
1403         * glib/dbus-gproxy.c: completely change how signals work
1404         (dbus_g_proxy_add_signal): new function to specify signature of a
1405         signal
1406         (dbus_g_proxy_emit_received): marshal the dbus message to GValues,
1407         and g_warning if the incoming message has the wrong signature.
1408
1409 2005-01-30  Havoc Pennington  <hp@redhat.com>
1410
1411         * tools/dbus-names-model.c (have_names_notify): fix this
1412
1413         * dbus/dbus-message.c (_dbus_message_iter_get_args_valist): clean
1414         up the string array handling a bit 
1415
1416 2005-01-30  Havoc Pennington  <hp@redhat.com>
1417
1418         * glib/dbus-glib.c (dbus_g_pending_call_set_notify): new function
1419         (dbus_g_pending_call_cancel): new function
1420
1421         * dbus/dbus-glib.h: move GType decls for connection/message here;
1422         * dbus/dbus-glib.c: move all the g_type and ref/unref stuff in
1423         here, just kind of rationalizing how we handle all that
1424
1425         * tools/dbus-names-model.c: new file for a tree model listing the
1426         services on a bus
1427
1428         * tools/dbus-tree-view.c (model_new): use proper typing on the
1429         model rows
1430
1431 2005-01-30  Havoc Pennington  <hp@redhat.com>
1432
1433         * glib/dbus-gmain.c: add a custom GSource back that just checks
1434         whether the message queue has anything in it; otherwise, there are 
1435         cases where we won't see messages in the queue since there was no 
1436         IO visible to the glib main loop
1437
1438         * dbus/dbus-connection-internal.h (_DBUS_DEFAULT_TIMEOUT_VALUE):
1439         increase default message timeout to 25 seconds
1440
1441 2005-01-30  Havoc Pennington  <hp@redhat.com>
1442
1443         * test/glib/test-profile.c (no_bus_stop_server): remove the
1444         warning about the g_warning that I just fixed
1445
1446         * glib/dbus-gmain.c: rewrite the main loop stuff to avoid the
1447         custom source, seems to be a lot easier to understand and work
1448         better.
1449
1450 2005-01-30  Havoc Pennington  <hp@redhat.com>
1451
1452         I think this main loop thing is conceptually broken, but here are 
1453         some band aids. I'll maybe rewrite it in a minute.
1454         
1455         * glib/dbus-gmain.c (add_timeout): timeout stuff doesn't use the
1456         custom GSource, so don't pass it in; confusing
1457         (gsource_server_finalize, gsource_connection_finalize): add
1458         finalize handlers that remove all the watches.  
1459
1460 2005-01-30  Havoc Pennington  <hp@redhat.com>
1461
1462         * glib/dbus-gobject.c (introspect_properties): fix the XML
1463         generated
1464
1465         * dbus/dbus-message.c (dbus_message_unref): add an in_cache flag
1466         which effectively detects the use of freed messages
1467
1468         * glib/dbus-gobject.c (handle_introspect): modify and return the
1469         reply message instead of the incoming message
1470
1471         * dbus/dbus-object-tree.c (handle_default_introspect_unlocked):
1472         gee, maybe it should SEND THE XML instead of just making a string
1473         and freeing it again ;-)
1474
1475         * tools/dbus-print-message.c (print_message): improve printing of
1476         messages
1477
1478         * configure.in: add debug-glib.service to the output
1479
1480 2005-01-30  Havoc Pennington  <hp@redhat.com>
1481
1482         dbus-viewer introspected and displayed the bus driver
1483         
1484         * dbus/dbus-object-tree.c 
1485         (object_tree_test_iteration): add tests for a handler registered on "/"
1486
1487         * dbus/dbus-object-tree.c
1488         (_dbus_decompose_path): fix to handle path "/" properly
1489         (run_decompose_tests): add tests for path decomposition
1490         
1491         * glib/dbus-gutils.c (_dbus_gutils_split_path): fix to handle "/"
1492         properly
1493
1494         * glib/dbus-gobject.c (handle_introspect): fix quotes
1495
1496         * test/glib/run-test.sh: support launching the bus, then running
1497         dbus-viewer
1498
1499         * test/glib/test-service-glib.c (main): put in a trivial gobject
1500         subclass and register it on the connection
1501
1502         * bus/driver.c (bus_driver_handle_introspect): implement
1503         introspection of the bus driver service
1504
1505         * dbus/dbus-protocol.h: add #defines for the XML namespace,
1506         identifiers, doctype decl
1507
1508         * bus/driver.c (bus_driver_handle_get_service_owner): handle
1509         attempts to get owner of DBUS_SERVICE_ORG_FREEDESKTOP_DBUS by 
1510         returning the service unchanged.
1511         (bus_driver_handle_message): remove old check for reply_serial in
1512         method calls, now the message type deals with that
1513         (bus_driver_handle_message): handle NULL interface
1514
1515         * glib/dbus-gproxy.c (dbus_g_proxy_get_bus_name): new function
1516
1517         * glib/dbus-gloader-expat.c (description_load_from_string): allow
1518         -1 for len
1519
1520         * tools/dbus-viewer.c: add support for introspecting a service on
1521         a bus
1522
1523         * glib/dbus-gproxy.c (dbus_g_pending_call_ref): add
1524         (dbus_g_pending_call_unref): add
1525
1526 2005-01-29  Havoc Pennington  <hp@redhat.com>
1527
1528         * tools/dbus-tree-view.c: add support for displaying properties.
1529         (run dbus-viewer with an introspect xml file as arg, then resize
1530         the window so the tree elements show up, not sure what that is)
1531
1532         * glib/dbus-gobject.c (handle_introspect): return
1533         org.freedesktop.Properties and org.freedesktop.Introspectable
1534         interfaces when we are introspected.
1535
1536         * doc/dbus-specification.xml: allow empty interface name when 
1537         Get/Set a property
1538
1539 2005-01-29  Havoc Pennington  <hp@redhat.com>
1540
1541         * glib/Makefile.am: rename dbus-glib-tool to dbus-binding-tool;
1542         though it uses glib, it could be extended for any binding in
1543         principle
1544
1545         * glib/dbus-gobject.c (gobject_message_function): change to the
1546         new way properties work
1547
1548         * dbus/dbus-protocol.h: add the new interfaces
1549
1550         * doc/dbus-specification.xml: document the introspection format,
1551         Introspectable interface, and add an org.freedesktop.Properties
1552         interface.
1553
1554         * glib/dbus-gparser.c: add support for a <property> element
1555
1556         * glib/dbus-gidl.c: add PropertyInfo
1557
1558         * glib/dbus-gobject.c (handle_introspect): put the outermost
1559         <node> outside the signal and property descriptions.
1560         (introspect_properties): export properties as <property> rather
1561         than as method calls
1562
1563 2005-01-28  Havoc Pennington  <hp@redhat.com>
1564
1565         * doc/TODO, doc/dbus-specification.xml: spec and TODO tweaks
1566         related to authentication protocol
1567
1568 2005-01-28  John (J5) Palmieri  <johnp@redhat.com>
1569
1570         * python/dbus_bindings.pyx.in: Updated to handle new D-BUS type system
1571                 - BUS_ACTIVATION -> BUS_STARTER
1572                 - DBUS_BUS_ACTIVATION -> DBUS_BUS_STARTER
1573                 - class MessageIter (__init__): Added recursion checking 
1574                 so we throw a nice error instead of just disconnecting from the
1575                 bus.
1576                 (get): Added arg_type parameter for recursion.
1577                 Removed the nil type
1578                 Added signiture type placeholder (not implemented)
1579                 Added struct type placeholder (not implemented)
1580                 Added varient type placeholder (not implemented)
1581                 Commented out dict type for now     
1582                 (get_element_type): renamed from get_array_type
1583                 (get_*): changed to use the dbus_message_iter_get_basic API
1584                 (get_*_array): removed in favor of recursive get_array method
1585                 (get_array): new recursive method which calls get to marshal
1586                 the elements of the array
1587                 (value_to_dbus_sig): New method returns the corrasponding
1588                 dbus signiture to a python value
1589                 (append): Comment out dict handling for now
1590                 Handle lists with the new recursive API
1591                 Comment out None handling for now
1592                 (append_nil): removed
1593                 (append_*): changed to use dbus_message_iter_append_basic API
1594                 (append_*_array): removed in favor of recursive append_array 
1595                 method
1596                 (__str__): Make it easier to print out recursive iterators
1597                 for debugging
1598                 - class Message (__str__): moved type inspection to the
1599                 MessageIter class' __str__ method
1600                 (get_iter): Added an append parameter wich defaults to False
1601                 If True use the new API's to create an append iterator
1602
1603         * python/dbus.py: Update to use new bindings API
1604                 - TYPE_ACTIVATION -> TYPE_STARTER
1605                 - class Bus (_get_match_rule): GetServiceOwner -> GetNameOwner
1606                 - class ActivationBus -> class StarterBus
1607                 - class RemoteObject (__call__): get an append iterator
1608                 - (_dispatch_dbus_method_call): get an append iterator
1609                 - class Object (emit_signal): get an append iterator
1610
1611         * python/examples/: Fixed up the examples to work with the new API
1612                 
1613 2005-01-28  Joe Shaw  <joeshaw@novell.com>
1614
1615         * configure.in: Bump version up to 0.30.
1616
1617         * HACKING: Add a release item to bump the version number up after 
1618         a release.
1619
1620 2005-01-28  Havoc Pennington  <hp@redhat.com>
1621
1622         * doc/dbus-specification.xml: update to describe 16-bit types and
1623         dict entries
1624
1625         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint16): fix broken
1626         assertion
1627
1628         * dbus/dbus-protocol.h (DBUS_TYPE_DICT_ENTRY): add DICT_ENTRY as a
1629         type
1630
1631         * dbus/dbus-marshal-recursive.c: implement
1632
1633 2005-01-27  Havoc Pennington  <hp@redhat.com>
1634
1635         * dbus/dbus-arch-deps.h.in: add 16/32-bit types
1636
1637         * configure.in: find the right type for 16 and 32 bit ints as well
1638         as 64
1639
1640         * dbus/dbus-protocol.h (DBUS_TYPE_INT16, DBUS_TYPE_UINT16): add
1641         the 16-bit types so people don't have to stuff them in 32-bit or
1642         byte arrays.
1643
1644 2005-01-27  Havoc Pennington  <hp@redhat.com>
1645
1646         * dbus/dbus-message.c: byteswap the message if you init an
1647         iterator to read/write from it
1648         
1649         * dbus/dbus-marshal-byteswap.c: new file implementing 
1650         _dbus_marshal_byteswap()
1651
1652         * dbus/dbus-marshal-basic.c: add _dbus_swap_array()
1653
1654 2005-01-26  Havoc Pennington  <hp@redhat.com>
1655         
1656         * dbus/dbus-marshal-validate-util.c: break this out (and fix
1657         build, apparently - nobody noticed?)
1658         
1659 2005-01-26  Havoc Pennington  <hp@redhat.com>
1660
1661         * dbus/dbus-marshal-recursive.h: remove todo comment
1662
1663 2005-01-25  Joe Shaw  <joeshaw@novell.com>
1664
1665         * Land the mono binding changes to conform to the new APIs.
1666
1667         * mono/Makefile.am: Remove Custom.cs, DBusType/Custom.cs,
1668         DBusType/Dict.cs, and DBusType/Nil.cs from the build.
1669
1670         * mono/Arguments.cs (GetCodeAsString): Added.  Returns the dbus
1671         type code as a string.
1672         (InitAppending): Rename dbus_message_append_iter_init() to
1673         dbus_message_iter_init_append().
1674
1675         * mono/BusDriver.cs: Rename ServiceEventHandler to
1676         NameOwnerChangedHandler.  Rename GetServiceOwner to GetOwner.
1677         Rename ServiceOwnerChanged to NameOwnerChanged.
1678
1679         * mono/Connection.cs: Rename BaseService to UniqueName, and the
1680         underlying C call.
1681
1682         * mono/Custom.cs: Removed.  The CUSTOM type has been removed.
1683
1684         * mono/Service.cs: Rename Exists to HasOwner, internally rename
1685         dbus_bus_acquire_service() to dbus_bus_request_name().
1686
1687         * mono/DBusType/Array.cs (ctor): Use Type.GetElementType() instead
1688         of Type.UnderlyingSystemType to get the correct element type for
1689         the array.
1690         (ctor): Update code for new APIs: use dbus_message_iter_recurse(),
1691         dbus_message_get_{element|arg}_type() instead of
1692         dbus_message_iter_init_array_iterator().
1693         (Append): Replace dbus_message_iter_append_array() with
1694         dbus_message_iter_open_container() and
1695         dbus_message_iter_close_container().
1696
1697         * mono/DBusType/Custom.cs, mono/DBusType/Nil.cs: Removed.  These
1698         types have been removed.
1699         
1700         * mono/DBusType/*.cs: Replace calls of
1701         dbus_message_iter_get_[type]() to dbus_message_iter_get_basic(),
1702         but specify the type in the DllImport extern declaration.  Ditto
1703         for dbus_message_iter_append_[type]() ->
1704         dbus_message_iter_append_basic().
1705
1706         * mono/example/BusListener.cs: Update for ServiceEventHandler ->
1707         NameOwnerChangedHandler.
1708
1709 2005-01-25  John (J5) Palmieri  <johnp@redhat.com>
1710
1711         * python/dbus_bindings.pyx.in: Rename of methods and bindings
1712                 - get_base_service -> get_unique_name
1713                 - bus_get_base_service -> bus_get_unique_name
1714                 - dbus_bus_get_base_service -> dbus_bus_get_unique_name
1715                 - ACTIVATION_REPLY_ACTIVATED -> DBUS_START_REPLY_SUCCESS 
1716                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> DBUS_START_REPLY_ALREADY_RUNNING
1717                 - bus_activate_service -> bus_start_service_by_name
1718                 - dbus_bus_activate_service -> dbus_bus_start_service_by_name
1719                 - bus_acquire_service -> bus_request_name
1720                 - dbus_bus_acquire_service -> dbus_bus_request_name
1721                 - bus_service_exists -> bus_name_has_owner
1722                 - dbus_bus_service_exists -> dbus_bus_name_has_owner
1723
1724         * python/dbus.py: Rename of methods
1725                 - activate_service -> start_service_by_name
1726                 - bus_acquire_service -> bus_request_name
1727                 - ACTIVATION_REPLY_ACTIVATED -> START_REPLY_SUCCESS 
1728                 - ACTIVATION_REPLY_ALREADY_ACTIVE -> START_REPLY_ALREADY_RUNNING
1729
1730         
1731 2005-01-24  Joe Shaw  <joeshaw@novell.com>
1732
1733         * dbus/dbus-connection.c (dbus_connection_dispatch): Print out the
1734         signature for the method that can't be found.
1735
1736         * dbus/dbus-message.c (dbus_message_iter_init): To check to see if
1737         the message has any arguments, we need to call
1738         _dbus_type_reader_get_current_type(), not
1739         _dbus_type_reader_has_next().
1740
1741 2005-01-24  Havoc Pennington  <hp@redhat.com>
1742
1743         * dbus/dbus-message-factory.c: more testing of message validation
1744
1745         * dbus/dbus-protocol.h (DBUS_MINIMUM_HEADER_SIZE): move to this
1746         header
1747
1748 2005-01-23  Havoc Pennington  <hp@redhat.com>
1749
1750         * dbus/dbus-message-factory.c, dbus/dbus-message-util.c: 
1751         get this all working, not many tests in the framework yet though
1752
1753 2005-01-22  Havoc Pennington  <hp@redhat.com>
1754
1755         * doc/dbus-faq.xml, doc/dbus-tutorial: add a FAQ and update
1756         tutorial, based on work from David Wheeler.
1757
1758 2005-01-21  Havoc Pennington  <hp@redhat.com>
1759
1760         * dbus/dbus-bus.c: add more return_if_fail checks
1761
1762         * dbus/dbus-message.c (load_message): have the "no validation"
1763         mode (have to edit the code to toggle the mode for now though)
1764
1765         * dbus/dbus-marshal-header.c (_dbus_header_load): have a mode that
1766         skips all validation; I want to use this at least for benchmark
1767         baseline, I'm not sure if it should be a publicly-available switch.
1768
1769 2005-01-21  Havoc Pennington  <hp@redhat.com>
1770
1771         * glib/dbus-gmain.c: don't put the GLib bindings in the same
1772         toplevel doxygen group as the low-level API stuff
1773
1774         * dbus/dbus.h: note that libdbus is the low-level API
1775
1776 2005-01-20  Havoc Pennington  <hp@redhat.com>
1777
1778         * update-dbus-docs.sh: script to update docs on the web site, only
1779         works for me though. neener.
1780
1781 2005-01-20  Havoc Pennington  <hp@redhat.com>
1782
1783         * dbus/dbus-sysdeps.c (_dbus_poll): amazingly, trying to compile
1784         code can reveal bugs in it
1785
1786 2005-01-20  Havoc Pennington  <hp@redhat.com>
1787
1788         * dbus/dbus-sysdeps.c (_dbus_poll): fix several bugs in the
1789         select() version, patches from Tor Lillqvist
1790
1791 2005-01-20  Havoc Pennington  <hp@redhat.com>
1792
1793         * doc/dbus-tutorial.xml: replace > with &gt;
1794
1795         * bus/services.c (bus_registry_acquire_service): validate the name
1796         and return a better error if it's no good.
1797
1798         * doc/dbus-specification.xml: note NO_AUTO_START change
1799
1800         * dbus/dbus-protocol.h (DBUS_HEADER_FLAG_NO_AUTO_START): change
1801         from AUTO_START, we're toggling the default
1802
1803         * bus/dispatch.c: adapt the tests to change of auto-start default
1804
1805 2005-01-18  Havoc Pennington  <hp@redhat.com>
1806
1807         * rename dbus-daemon-1 to dbus-daemon throughout
1808
1809 2005-01-18  Havoc Pennington  <hp@redhat.com>
1810
1811         * Throughout, grand renaming to strip out the use of "service",
1812         just say "name" instead (or "bus name" when ambiguous).  Did not
1813         change the internal code of the message bus itself, only the
1814         programmer-facing API and messages.
1815         
1816         * doc/dbus-specification.xml: further update the message bus section
1817         
1818         * bus/config-parser.c (all_are_equiv): fix bug using freed string
1819         in error case
1820
1821 2005-01-17  Havoc Pennington  <hp@redhat.com>
1822
1823         * dbus/dbus-types.h: remove 16-bit types since we don't use them
1824         ever
1825
1826         * dbus/dbus-marshal-validate.c (_dbus_validate_path): disallow any
1827         "invalid name character" not only non-ASCII
1828
1829         * doc/dbus-specification.xml: further update spec, message bus 
1830         parts are still out-of-date but the marshaling etc. stuff is now
1831         accurate-ish
1832
1833 2005-01-17  Havoc Pennington  <hp@redhat.com>
1834
1835         * doc/dbus-specification.xml: partially update spec
1836
1837 2005-01-17  Havoc Pennington  <hp@redhat.com>
1838
1839         * Throughout, align variant bodies according to the contained
1840         type, rather than always to 8. Should save a fair bit of space in
1841         message headers.
1842         
1843         * dbus/dbus-marshal-validate.c (_dbus_validate_body_with_reason):
1844         fix handling of case where p == end
1845
1846         * doc/TODO: remove the dbus_bool_t item and variant alignment items
1847
1848 2005-01-17  Havoc Pennington  <hp@redhat.com>
1849
1850         * dbus/dbus-types.h: hardcode dbus_bool_t to 32 bits
1851
1852         * Throughout: modify DBUS_TYPE_BOOLEAN to be a 32-bit type instead
1853         of an 8-bit type. Now dbus_bool_t is the type to use whenever you 
1854         are marshaling/unmarshaling a boolean.
1855
1856 2005-01-16  Havoc Pennington  <hp@redhat.com>
1857
1858         This is about it on what can be disabled/deleted from libdbus
1859         easily, back below 150K anyhow. Deeper cuts are more work than 
1860         just turning the code off as I've done here.
1861         
1862         * dbus/dbus-marshal-basic.c (_dbus_pack_int32): we don't need the
1863         signed int convenience funcs
1864
1865         * dbus/dbus-internals.c (_dbus_verbose_real): omit when not in
1866         verbose mode
1867
1868         * dbus/dbus-string-util.c, dbus/dbus-string.c: more breaking
1869         things out of libdbus
1870
1871         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-util.c: same
1872         
1873         * dbus/dbus-hash.c: purge the TWO_STRINGS crap (well, make it
1874         tests-enabled-only, though it should probably be deleted)
1875
1876         * dbus/dbus-message-util.c: same stuff
1877
1878         * dbus/dbus-auth-util.c: same stuff
1879
1880 2005-01-16  Havoc Pennington  <hp@redhat.com>
1881
1882         * dbus/dbus-userdb-util.c: split out part of dbus-userdb.c
1883
1884         * dbus/dbus-sysdeps.c (_dbus_uid_from_string): move here to pave
1885         way for stripping down dbus-userdb.c stuff included in libdbus.
1886         Rename _dbus_parse_uid for consistency.
1887
1888 2005-01-16  Havoc Pennington  <hp@redhat.com>
1889
1890         * dbus/dbus-internals.c (_dbus_real_assert): print the function
1891         name the assertion failed in
1892
1893         * dbus/dbus-internals.h (_dbus_return_if_fail) 
1894         (_dbus_return_val_if_fail): assert that the name of the function
1895         containing the check doesn't start with '_', since we only want to 
1896         use checks on public functions
1897         
1898         * dbus/dbus-connection.c (_dbus_connection_ref_unlocked): change
1899         checks to assertions
1900
1901         * dbus/dbus-marshal-header.c (_dbus_header_set_field_basic):
1902         change checks to asserts for private function
1903
1904         * dbus/dbus-message.c (_dbus_message_set_serial): checks
1905         to asserts for private function
1906
1907         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): remove
1908         broken assertion that was breaking make check
1909         (_dbus_type_reader_array_is_empty): remove this rather than fix
1910         it, was only used in assertions
1911
1912 2005-01-16  Havoc Pennington  <hp@redhat.com>
1913
1914         * test/unused-code-gc.py: hacky script to find code that's used
1915         only by the bus (not libdbus) or used only by tests or not used at
1916         all. It has some false alarms, but looks like we can clean up a
1917         lot of size from libdbus.
1918
1919         * dbus/dbus-sysdeps.c, dbus/dbus-sysdeps-utils.c,
1920         dbus/Makefile.am: initially move 10K of binary size out of libdbus
1921         
1922 2005-01-16  Havoc Pennington  <hp@redhat.com>
1923
1924         * Add and fix docs according to Doxygen warnings throughout
1925         source.
1926         
1927         * dbus/dbus-marshal-recursive.c
1928         (_dbus_type_reader_array_is_empty): change this to just call
1929         array_reader_get_array_len() and make it static
1930
1931         * dbus/dbus-message.c (dbus_message_iter_get_element_type): rename
1932         from get_array_type
1933         (dbus_message_iter_init_append): rename from append_iter_init
1934
1935         * dbus/dbus-marshal-recursive.c
1936         (_dbus_type_reader_get_element_type): rename from
1937         _dbus_type_reader_get_array_type
1938
1939 2005-01-15  Havoc Pennington  <hp@redhat.com>
1940
1941         * test/glib/test-profile.c (with_bus_server_filter): fix crash
1942
1943         * dbus/dbus-marshal-basic.c (_dbus_unpack_uint32): inline as macro
1944         when DBUS_DISABLE_ASSERT
1945         (_dbus_marshal_set_basic): be sure we align for the string length
1946
1947         * dbus/dbus-marshal-recursive.c (skip_one_complete_type): make
1948         this look faster
1949
1950         * dbus/dbus-string.c (_dbus_string_get_const_data_len): add an
1951         inline macro version
1952         (_dbus_string_set_byte): provide inline macro version
1953
1954 2005-01-15  Havoc Pennington  <hp@redhat.com>
1955
1956         * Land the new message args API and type system.
1957
1958         This patch is huge, but the public API change is not 
1959         really large. The set of D-BUS types has changed somewhat, 
1960         and the arg "getters" are more geared toward language bindings;
1961         they don't make a copy, etc.
1962
1963         There are also some known issues. See these emails for details
1964         on this huge patch:
1965         http://lists.freedesktop.org/archives/dbus/2004-December/001836.html
1966         http://lists.freedesktop.org/archives/dbus/2005-January/001922.html
1967         
1968         * dbus/dbus-marshal-*: all the new stuff
1969
1970         * dbus/dbus-message.c: basically rewritten
1971
1972         * dbus/dbus-memory.c (check_guards): with "guards" enabled, init
1973         freed blocks to be all non-nul bytes so using freed memory is less
1974         likely to work right
1975
1976         * dbus/dbus-internals.c (_dbus_test_oom_handling): add
1977         DBUS_FAIL_MALLOC=N environment variable, so you can do
1978         DBUS_FAIL_MALLOC=0 to skip the out-of-memory checking, or
1979         DBUS_FAIL_MALLOC=10 to make it really, really, really slow and
1980         thorough.
1981
1982         * qt/message.cpp: port to the new message args API
1983         (operator<<): use str.utf8() rather than str.unicode()
1984         (pretty sure this is right from the Qt docs?)
1985
1986         * glib/dbus-gvalue.c: port to the new message args API
1987
1988         * bus/dispatch.c, bus/driver.c: port to the new message args API
1989
1990         * dbus/dbus-string.c (_dbus_string_init_const_len): initialize the
1991         "locked" flag to TRUE and align_offset to 0; I guess we never
1992         looked at these anyhow, but seems cleaner.
1993
1994         * dbus/dbus-string.h (_DBUS_STRING_ALLOCATION_PADDING):
1995         move allocation padding macro to this header; use it to implement
1996         (_DBUS_STRING_STATIC): ability to declare a static string.
1997
1998         * dbus/dbus-message.c (_dbus_message_has_type_interface_member):
1999         change to return TRUE if the interface is not set.
2000
2001         * dbus/dbus-string.[hc]: move the D-BUS specific validation stuff
2002         to dbus-marshal-validate.[hc]
2003
2004         * dbus/dbus-marshal-basic.c (_dbus_type_to_string): move here from
2005         dbus-internals.c
2006
2007         * dbus/Makefile.am: cut over from dbus-marshal.[hc]
2008         to dbus-marshal-*.[hc]
2009
2010         * dbus/dbus-object-tree.c (_dbus_decompose_path): move this
2011         function here from dbus-marshal.c
2012
2013 2005-01-12  Joe Shaw  <joeshaw@novell.com>
2014
2015         * NEWS: Update for 0.23.
2016
2017         * configure.in: Release 0.23.
2018
2019 2005-01-12  Joe Shaw  <joeshaw@novell.com>
2020
2021         * mono/Makefile.am, mono/example/Makefile.am: Always build the 
2022         dbus DLL with --debug.  Clean up after the .mdb files this leaves
2023         behind.
2024
2025         * mono/doc/Makefile.am: Need to uninstall the docs on "make
2026         uninstall"
2027
2028         * mono/Arguments.cs (GetDBusTypeConstructor): If the type
2029         is an enum, get the enum's underlying type.  Another mono
2030         1.1.3 fix.
2031
2032 2005-01-11  Joe Shaw  <joeshaw@novell.com>
2033
2034         Patch from Sjoerd Simons <sjoerd@luon.net>
2035
2036         * mono/Makefile.am, mono/example/Makefile.am: Don't redefine
2037         DESTDIR.  It breaks stuff.
2038
2039 2005-01-11  Joe Shaw  <joeshaw@novell.com>
2040
2041         Patch from Tambet Ingo <tambet@ximian.com>
2042
2043         * mono/DBusType/Array.cs (Get): Get the underlying element type by
2044         calling type.GetElementType().  The code previously depended on
2045         broken Mono behavior, which was fixed in Mono 1.1.3.
2046
2047         * mono/DBusType/Dict.cs (constructor): Fix the parameters for
2048         Activator.CreateInstance() so that the class's constructor is
2049         called with the right parameters.
2050
2051 2005-01-11  Joe Shaw  <joeshaw@novell.com>
2052
2053         Patch from Timo Teräs <ext-timo.teras@nokia.com>
2054
2055         * dbus/dbus-connection.c
2056         (_dbus_connection_queue_received_message_link): Call
2057         _dbus_connection_remove_timeout() instead of the _locked()
2058         variant, since it's always called from
2059         _dbus_connection_handle_watch(), which handles the locking.
2060         Removed the _locked() variant since it's no longer used.
2061
2062 2005-01-03  Havoc Pennington  <hp@redhat.com>
2063
2064         * dbus/dbus-internals.h: I'm an idiot, _dbus_assert certainly can
2065         return
2066         
2067 2004-12-26  Havoc Pennington  <hp@redhat.com>
2068
2069         * dbus/dbus-internals.h: add _DBUS_GNUC_NORETURN to _dbus_assert
2070
2071 2005-01-03  Havoc Pennington  <hp@redhat.com>
2072
2073         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): fix using == on
2074         floating point
2075
2076         * dbus/dbus-string.c (_dbus_string_insert_alignment): new function
2077
2078 2005-01-02  Havoc Pennington  <hp@redhat.com>
2079
2080         * dbus/dbus-internals.h (_DBUS_ALIGN_OFFSET): new macro
2081
2082 2005-01-01  Havoc Pennington  <hp@redhat.com>
2083
2084         * configure.in: add -Wfloat-equal
2085
2086 2005-01-01  Havoc Pennington  <hp@redhat.com>
2087
2088         * dbus/dbus-sysdeps.h: add _DBUS_DOUBLES_BITWISE_EQUAL macro, 
2089         for a variety of reasons '==' doesn't do this.
2090
2091 2004-12-31  Havoc Pennington  <hp@redhat.com>
2092
2093         * dbus/dbus-string.c (_dbus_string_equal_substrings): new function
2094         I keep wishing I had
2095
2096 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
2097
2098         * python/dbus.py: s/ACTIVATION_REPLY_ACTIVE/ACTIVATION_REPLY_ACTIVATED
2099
2100 2004-12-30  John (J5) Palmieri  <johnp@redhat.com>
2101
2102         * python/dbus_bindings.pyx.in: Change DBUS_ACTIVATION_REPLY_ACTIVATED
2103         and DBUS_ACTIVATION_REPLY_ALREADY_ACTIVE to match the values in
2104         dbus-protocol.h.  Because they are defines and not enums they are not
2105         autogenerated.
2106
2107 2004-12-26  John (J5) Palmieri  <johnp@redhat.com>
2108
2109         * python/dbus_bindings.pyx.in (bus_activate_service): Bind
2110         dbus_bus_activate_service
2111
2112         * python/dbus.py (Bus.activate_service): activate a service on the
2113         bus.
2114
2115 2004-12-24  Havoc Pennington  <hp@redhat.com>
2116
2117         * test/decode-gcov.c: change to use .gcno and .gcda files, but the
2118         file format has also changed and I haven't adapted to that yet
2119         
2120         * Makefile.am: load .gcno files from latest gcc
2121
2122 2004-12-23  John (J5) Palmieri  <johnp@redhat.com>
2123         * Patch from Rob Taylor <robtaylor@fastmail.fm>
2124
2125         * python/dbus_bindings.pyx.in (bus_get_unix_user): New
2126         lowlevel binding
2127
2128         * python/dbus.py (get_unix_user): Added binding to 
2129         call dbus_bindings.bus_get_unix_user
2130
2131         * python/extract.py: Modified the proto_pat regex to
2132         handle unsigned long
2133
2134 2004-12-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2135
2136         * dbus/make-dbus-glib-error-enum.sh: omit the function keyword for
2137         better POSIX compliance.
2138
2139 2004-12-19  Havoc Pennington  <hp@redhat.com>
2140
2141         * dbus/dbus-string.c (_dbus_string_insert_4_aligned) 
2142         (_dbus_string_insert_8_aligned): new functions
2143
2144         * dbus/dbus-string.c (_dbus_string_alloc_space): new function
2145
2146 2004-12-18  Havoc Pennington  <hp@redhat.com>
2147
2148         * dbus/dbus-string.c (_dbus_string_validate_ascii): use ISASCII
2149         macro
2150
2151         * dbus/dbus-message.c: fix a comment, and add a still-unused
2152         not-implemented function
2153
2154         * dbus/dbus-marshal.h: fix comment
2155
2156         * dbus/dbus-internals.h (_DBUS_ISASCII): new macro
2157
2158 2004-12-17  Joe Shaw  <joeshaw@novell.com>
2159
2160         * mono/DBusType/Byte.cs, mono/DBusType/Int32.cs,
2161         mono/DBusType/Int64.cs, mono/DBusType/UInt32.cs,
2162         mono/DBusType/UInt64.cs: Use Enum.GetUnderlyingType() instead of
2163         Type.UnderlyingSystemType to get the actual system type
2164         underneath.  This code previously depended on the broken Mono
2165         behavior, which was fixed in 1.1.3.
2166
2167 2004-11-27  Havoc Pennington  <hp@redhat.com>
2168
2169         * dbus/dbus-string.h (_dbus_string_get_byte): inline when asserts
2170         are disabled
2171         (_dbus_string_get_const_data): inline when asserts are disabled
2172
2173         * dbus/dbus-message.c: record the _dbus_current_generation of
2174         creation so we can complain if dbus_shutdown() is used improperly.
2175         Do this only if checks are enabled.
2176
2177         * dbus/dbus-connection.c: ditto
2178         
2179 2004-11-26  Havoc Pennington  <hp@redhat.com>
2180
2181         * test/glib/test-profile.c: add with_bus mode to profile echoes
2182         that go through the bus.
2183
2184         * test/glib/run-test.sh: add ability to run test-profile
2185
2186         * bus/dbus-daemon-1.1.in: fix to say that SIGHUP causes partial
2187         config file reload.
2188
2189 2004-11-26  Havoc Pennington  <hp@redhat.com>
2190
2191         * test/glib/test-profile.c: clean up how the fake_malloc_overhead
2192         thing was implemented
2193
2194 2004-11-26  Havoc Pennington  <hp@redhat.com>
2195
2196         * test/glib/test-profile.c: tweak a bit, add support for some
2197         made-up minimal malloc overhead with plain sockets, since in 
2198         real life some sort of buffers are unavoidable thus we could 
2199         count them in the theoretical best case
2200
2201 2004-11-26  Havoc Pennington  <hp@redhat.com>
2202
2203         * dbus/dbus-message.c (dbus_message_cache_or_finalize): fix bug
2204         where I was trying to cache one too many messages
2205
2206 2004-11-26  Havoc Pennington  <hp@redhat.com>
2207
2208         * dbus/dbus-message.c: reimplement message cache as an array which 
2209         makes the cache about twice as fast and saves maybe 1.5% overall
2210
2211 2004-11-26  Havoc Pennington  <hp@redhat.com>
2212
2213         * dbus/dbus-threads.c (init_global_locks): forgot to put the
2214         message cache lock here
2215
2216 2004-11-26  Havoc Pennington  <hp@redhat.com>
2217
2218         * dbus/dbus-message.c (struct DBusMessage): put the locked bit and
2219         the "char byte_order" next to each other to save 4 bytes
2220         (dbus_message_new_empty_header): reduce preallocation, since the
2221         message cache should achieve a similar effect
2222         (dbus_message_cache_or_finalize, dbus_message_get_cached): add a
2223         message cache that keeps a few DBusMessage around in a pool,
2224         another 8% speedup or so.
2225
2226         * dbus/dbus-dataslot.c (_dbus_data_slot_list_clear): new function
2227
2228 2004-11-25  Havoc Pennington  <hp@redhat.com>
2229
2230         * dbus/dbus-transport-unix.c (unix_do_iteration): if we're going
2231         to write, without reading or blocking, try it before the poll()
2232         and skip the poll() if nothing remains to write. This is about a
2233         3% speedup in the echo client/server
2234
2235 2004-11-25  Havoc Pennington  <hp@redhat.com>
2236
2237         The primary change here is to always write() once before adding
2238         the write watch, which gives us about a 10% performance increase.
2239         
2240         * dbus/dbus-transport-unix.c: a number of modifications to cope
2241         with removing messages_pending
2242         (check_write_watch): properly handle
2243         DBUS_AUTH_STATE_WAITING_FOR_MEMORY; adapt to removal of
2244         messages_pending stuff
2245         (check_read_watch): properly handle WAITING_FOR_MEMORY and
2246         AUTHENTICATED cases
2247         (unix_handle_watch): after writing, see if the write watch can be
2248         removed
2249         (unix_do_iteration): assert that write_watch/read_watch are
2250         non-NULL rather than testing that they aren't, since they 
2251         aren't allowed to be NULL. check_write_watch() at the end so 
2252         we add the watch if we did not finish writing (e.g. got EAGAIN)
2253
2254         * dbus/dbus-transport-protected.h: remove messages_pending call,
2255         since it resulted in too much inefficient watch adding/removing; 
2256         instead we now require that the transport user does an iteration 
2257         after queueing outgoing messages, and after trying the first
2258         write() we add a write watch if we got EAGAIN or exceeded our 
2259         max bytes to write per iteration setting
2260
2261         * dbus/dbus-string.c (_dbus_string_validate_signature): add this
2262         function
2263
2264         * dbus/dbus-server-unix.c (unix_finalize): the socket name was
2265         freed and then accessed, valgrind flagged this bug, fix it
2266
2267         * dbus/dbus-message.c: fix several bugs where HEADER_FIELD_LAST was taken
2268         as the last valid field plus 1, where really it is equal to the
2269         last valid field. Corrects some message corruption issues.
2270
2271         * dbus/dbus-mainloop.c: verbosity changes
2272
2273         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): handle OOM
2274         instead of aborting in one of the test codepaths
2275
2276         * dbus/dbus-internals.c (_dbus_verbose_real): fix a bug that
2277         caused not printing the pid ever again if a verbose was missing
2278         the newline at the end
2279         (_dbus_header_field_to_string): add HEADER_FIELD_SIGNATURE
2280
2281         * dbus/dbus-connection.c: verbosity changes; 
2282         (dbus_connection_has_messages_to_send): new function
2283         (_dbus_connection_message_sent): no longer call transport->messages_pending
2284         (_dbus_connection_send_preallocated_unlocked): do one iteration to
2285         try to write() immediately, so we can avoid the write watch. This
2286         is the core purpose of this patchset
2287         (_dbus_connection_get_dispatch_status_unlocked): if disconnected,
2288         dump the outgoing message queue, so nobody will get confused
2289         trying to send them or thinking stuff is pending to be sent
2290
2291         * bus/test.c: verbosity changes
2292
2293         * bus/driver.c: verbosity/assertion changes
2294
2295         * bus/dispatch.c: a bunch of little tweaks to get it working again
2296         because this patchset changes when/where you need to block.
2297
2298 2004-11-23  Havoc Pennington  <hp@redhat.com>
2299
2300         * test/glib/test-profile.c: modify to accept a plain_sockets
2301         argument in which case it will bench plain sockets instead of
2302         libdbus, for comparison purposes.
2303
2304 2004-11-22  Havoc Pennington  <hp@redhat.com>
2305
2306         * test/glib/test-profile.c (N_CLIENT_THREADS): run multiple
2307         threads for more time, so sysprof can get a grip on it.
2308
2309         * dbus/dbus-string.c (_dbus_string_validate_utf8): remove
2310         pointless variable
2311
2312 2004-11-13  Havoc Pennington  <hp@redhat.com>
2313
2314         * test/glib/test-profile.c: fix this thing up a bit
2315
2316         * dbus/dbus-message.c (dbus_message_new_empty_header): increase
2317         preallocation sizes by a fair bit; not sure if this will be an
2318         overall performance win or not, but it does reduce reallocs.
2319
2320         * dbus/dbus-string.c (set_length, reallocate_for_length): ignore
2321         the test hack that forced constant realloc if asserts are
2322         disabled, so we can profile sanely. Sprinkle in some
2323         _DBUS_UNLIKELY() which are probably pointless, but before I
2324         noticed the real performance problem I put them in.
2325         (_dbus_string_validate_utf8): micro-optimize this thing a little
2326         bit, though callgrind says it didn't help; then special-case
2327         ascii, which did help a lot; then be sure we detect nul bytes as
2328         invalid, which is a bugfix.
2329         (align_length_then_lengthen): add some more _DBUS_UNLIKELY
2330         superstition; use memset to nul the padding instead of a manual
2331         loop.
2332         (_dbus_string_get_length): inline this as a
2333         macro; it showed up in the profile because it's used for loop
2334         tests and so forth
2335
2336 2004-11-10  Colin Walters  <walters@verbum.org>
2337
2338         * dbus/dbus-spawn.c (check_babysit_events): Handle EINTR,
2339         for extra paranoia.
2340
2341 2004-11-09  Colin Walters  <walters@verbum.org>
2342
2343         * dbus/dbus-string.c (_dbus_string_get_length): New
2344         function, writes DBusString to C buffer.
2345
2346         * dbus/dbus-string.h: Prototype it.
2347
2348         * dbus/dbus-message.c (dbus_message_type_to_string): New
2349         function, converts message type into C string.
2350
2351         * dbus/dbus-message.h: Prototype it.
2352
2353         * bus/selinux.c (bus_selinux_check): Take source pid,
2354         target pid, and audit data.  Pass audit data to
2355         avc_has_perm.
2356         (log_audit_callback): New function, appends extra
2357         audit information.
2358         (bus_selinux_allows_acquire_service): Also take
2359         service name, add it to audit data.
2360         (bus_selinux_allows_send): Also take message
2361         type, interface, method member, error name,
2362         and destination, and add them to audit data.
2363         (log_cb): Initialize func_audit.
2364         
2365         * bus/selinux.h (bus_selinux_allows_acquire_service)
2366         (bus_selinux_allows_send): Update prototypes 
2367
2368         * bus/services.c (bus_registry_acquire_service): Pass
2369         service name to bus_selinux_allows_acquire_service.
2370
2371         * bus/bus.c (bus_context_check_security_policy): Pass
2372         additional audit data.  Move assignment of dest
2373         to its own line.
2374
2375 2004-11-07  Colin Walters  <walters@verbum.org>
2376
2377         * dbus/dbus-transport-unix.c (do_authentication): Always
2378         initialize auth_completed.
2379         
2380 2004-11-07  Colin Walters  <walters@verbum.org>
2381
2382         * bus/bus.c (load_config): Break into three
2383         separate functions: process_config_first_time_only,
2384         process_config_every_time, and process_config_postinit.
2385         (process_config_every_time): Move call of
2386         bus_registry_set_service_context_table into
2387         process_config_postinit.
2388         (process_config_postinit): New function, does
2389         any processing that needs to happen late
2390         in initialization (and also on reload).
2391         (bus_context_new): Instead of calling load_config,
2392         open config parser here and call process_config_first_time_only
2393         and process_config_every_time directly.  Later, after
2394         we have forked but before changing UID,
2395         invoke bus_selinux_full_init, and then call
2396         process_config_postinit.
2397         (bus_context_reload_config): As in bus_context_new,
2398         load parse file inside here, and call process_config_every_time
2399         and process_config_postinit.
2400
2401         * bus/services.h, bus/services.c
2402         (bus_registry_set_service_context_table): Rename
2403         from bus_registry_set_sid_table.  Take string hash from config
2404         parser, and convert them here into SIDs.
2405
2406         * bus/config-parser.c (struct BusConfigParser): Have
2407         config parser only store a mapping of service->context
2408         string.
2409         (merge_service_context_hash): New function.
2410         (merge_included): Merge context string hashes instead
2411         of using bus_selinux_id_table_union.
2412         (bus_config_parser_new): Don't use bus_selinux_id_table_new;
2413         simply create a new string hash.
2414         (bus_config_parser_unref): Unref it.
2415         (start_selinux_child): Simply insert strings into hash,
2416         don't call bus_selinux_id_table_copy_over.
2417
2418         * bus/selinux.h, bus/selinux.c (bus_selinux_id_table_union)
2419         (bus_selinux_id_table_copy_over): Delete.
2420
2421 2004-11-03  Colin Walters  <walters@verbum.org>
2422
2423         * bus/selinux.c (bus_selinux_pre_init): Kill some unused
2424         variables.
2425         
2426 2004-11-03  Colin Walters  <walters@verbum.org>
2427
2428         * bus/test-main.c (test_pre_hook): Fix test logic,
2429         thanks Joerg Barfurth <Joerg.Barfurth@Sun.COM>.
2430
2431 2004-11-02  Colin Walters  <walters@redhat.com>
2432
2433         * bus/selinux.c (bus_selinux_init): Split into two functions,
2434         bus_selinux_pre_init and bus_selinux_post_init.
2435         (bus_selinux_pre_init): Just determine whether SELinux is
2436         enabled.
2437         (bus_selinux_post_init): Do everything else.
2438
2439         * bus/main.c (main): Call bus_selinux_pre_init before parsing
2440         config file, and bus_selinux_post_init after.  This ensures that
2441         we don't lose the policyreload notification thread that
2442         bus_selinux_init created before forking previously.
2443         
2444         * bus/test-main.c (test_pre_hook): Update for split.
2445
2446 2004-10-31  Owen Fraser-Green  <owen@discobabe.net>
2447
2448         Patch from Johan Fischer <linux@fischaz.com>
2449         
2450         * mono/doc/Makefile.am (install-data-local): Added directory
2451         install for DESTDIR
2452
2453 2004-10-29  Colin Walters  <walters@redhat.com>
2454
2455         * dbus/dbus-sysdeps.h (_dbus_become_daemon): Also take
2456         parameter for fd to write pid to.       
2457
2458         * dbus/dbus-sysdeps.c (_dbus_become_daemon): Implement it.
2459         
2460         * bus/bus.c (bus_context_new): Pass print_pid_fd
2461         to _dbus_become_daemon (bug #1720)
2462
2463 2004-10-29  Colin Walters  <walters@redhat.com>
2464
2465         Patch from Ed Catmur <ed@catmur.co.uk>
2466
2467         * mono/doc/Makefile.am (install-data-local): Handle
2468         DESTDIR.
2469
2470 2004-10-29  Colin Walters  <walters@redhat.com>
2471
2472         * bus/.cvsignore, qt/.cvsignore: Update.
2473
2474 2004-10-29  Colin Walters  <walters@redhat.com>
2475
2476         Patch from Kristof Vansant <de_lupus@pandora.be>
2477
2478         * configure.in: Detect Slackware.
2479         * bus/Makefile.am (SCRIPT_IN_FILES): Add rc.messagebus.in.
2480         * bus/rc.messagebus.in: New file.
2481
2482 2004-10-29  Colin Walters  <walters@redhat.com>
2483
2484         * tools/dbus-monitor.c (filter_func): Return
2485         DBUS_HANDLER_RESULT_HANDLED in filter function
2486         for now.  See:
2487         http://freedesktop.org/pipermail/dbus/2004-August/001433.html
2488
2489 2004-10-29  Colin Walters  <walters@redhat.com>
2490
2491         Patch from Matthew Rickard <mjricka@epoch.ncsc.mil>
2492
2493         * bus/services.c (bus_registry_acquire_service): 
2494         Correctly retrieve service name from DBusString
2495         for printing.
2496
2497 2004-10-29  Colin Walters  <walters@redhat.com>
2498
2499         * dbus/dbus-glib.h: Update documentation to not
2500         refer to internal APIs.
2501
2502 2004-10-27  Joe Shaw  <joeshaw@novell.com>
2503
2504         * mono/Arguments.cs (GetDBusTypeConstructor):
2505         type.UnderlyingSystemType will return "System.Byte" if you do it
2506         on "byte[]", which is not what we want.  So check the type.IsArray
2507         property and use System.Array instead.
2508
2509 2004-10-25  John (J5) Palmieri  <johnp@redhat.com>
2510
2511         * dbus/dbus-sysdeps.c (fill_user_info): On errors do not free
2512         the DBusUserInfo structure since this is passed into the function.
2513         This would cause a double free when the function that allocated
2514         the structure would try to free it when an error occured.
2515
2516         * (bus/session.conf.in, bus/Makefile.am, dbus/configure.in):
2517         use /usr/share/dbus-1/services instead of /usr/lib/dbus-1.0/services
2518         for service activation to avoid 32bit/64bit parallel install issues
2519
2520 2004-10-21  Colin Walters  <walters@verbum.org>
2521
2522         * AUTHORS: Fix my email address, the @gnu.org one
2523         has been bouncing for some time.  Also add J5.
2524         
2525 2004-10-21  Colin Walters  <walters@verbum.org>
2526
2527         * dbus/dbus-transport-unix.c (do_authentication): Return
2528         authentication status to callers.
2529         (unix_handle_watch): If we completed authentication this round,
2530         don't do another read.  Instead wait until the next iteration,
2531         after we've read any pending data in the auth buffer.
2532         (unix_do_iteration): Ditto.
2533         (unix_handle_watch): Updated for new do_authentication prototype.
2534
2535 2004-10-18  Colin Walters  <walters@verbum.org>
2536
2537         * bus/selinux.c (bus_selinux_enabled): Handle
2538         --disable-selinux case.
2539         
2540 2004-10-18  Colin Walters  <walters@verbum.org>
2541
2542         * bus/selinux.h: Add bus_selinux_enabled.
2543         
2544         * bus/selinux.c (bus_selinux_enabled): Implement it.
2545         
2546         * bus/config-parser.c (struct include): Add
2547         if_selinux_enabled member.
2548         (start_busconfig_child): Parse if_selinux_enabled
2549         attribute for include.
2550         (bus_config_parser_content): Handle it.
2551
2552         * bus/session.conf.in, bus/system.conf.in: Add
2553         inclusion of context mapping to default config files;
2554         conditional on SELinux being enabled.
2555         
2556         * doc/busconfig.dtd: Add to if_selinux_enabled to default DTD.
2557         
2558         * test/data/invalid-config-files/badselinux-1.conf, 
2559         test/data/invalid-config-files/badselinux-2.conf:
2560         Test files for bad syntax.
2561         
2562 2004-10-17  Colin Walters  <walters@verbum.org>
2563
2564         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug, check_guards)
2565         (dbus_malloc, dbus_malloc0, dbus_realloc): Fix up printf
2566         format specifier mismatches.
2567
2568 2004-10-07  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2569
2570         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): fix an incorrect
2571         format string.
2572
2573         * glib/dbus-dbus-gmain.c (dbus_g_bus_get): do not mangle NULL
2574         pointer (bug #1540, Leonardo Boiko).
2575
2576 2004-09-28  Jon Trowbridge  <trow@ximian.com>
2577
2578         * mono/BusDriver.cs: Changed BusDriver struct to remove
2579         the ServiceCreated and ServiceDeleted events and replace them
2580         with the new ServiceOwnerChanged event.
2581
2582         * mono/example/BusListener.cs: Added a new example program,
2583         which listens for and reports any ServiceOwnerChanged events
2584         on the bus driver.
2585
2586         * mono/example/Makefile.am (DESTDIR): Build changes for the
2587         new BusListener.cs example.
2588
2589 2004-09-27  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2590
2591         * bus/signals.c (bus_match_rule_parse): validate the components of
2592         match rules (bug #1439).
2593
2594         * dbus/dbus-bus.c (dbus_bus_add_match): add a missing OOM test.
2595
2596 2004-09-24  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2597
2598         * doc/dbus-specification.xml: document ServiceOwnerChanged
2599         signal.
2600         
2601         * bus/driver.c, bus/driver.h, bus/services.c: Use
2602         ServiceOwnerChanged signal instead of ServiceCreated and
2603         ServiceDeleted.
2604         
2605         * bus/dispatch.c: update testcase for the new signal.
2606
2607 2004-09-20  Jon Trowbridge  <trow@ximian.com>
2608
2609         Patch from Nat Friedman <nat@novell.com>
2610
2611         * mono/Makefile.am: A number of small build fixes to allow "make
2612         distcheck" to succeed.
2613
2614         * mono/example/Makefile.am: "make distcheck" fixes.
2615
2616         * mono/AssemblyInfo.cs.in: When signing the assembly, look for the
2617         key in @srcdir@.
2618
2619         * test/Makefile.am: "make distcheck" fixes.
2620
2621 2004-09-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2622
2623         * dbus/dbus-sysdeps.c (_dbus_user_at_console): fix memleak in OOM.
2624
2625         * doc/busconfig.dtd: update the DTD for the at_console attribute.
2626
2627         * bus/driver.c (bus_driver_handle_hello): correctly handle Hello
2628         messages after the first one (bug #1389).
2629         
2630         * bus/dispatch.c (check_double_hello_message): add a test case for
2631         the double hello message bug.
2632         (check_existent_service_activation): fix check of spawning error.
2633         
2634 2004-09-16  David Zeuthen  <david@fubar.dk>
2635
2636         * python/dbus_bindings.pyx.in: Add support for int64 and uint64
2637
2638 2004-09-12  David Zeuthen  <david@fubar.dk>
2639
2640         Patch from Kay Sievers <kay.sievers@vrfy.org>
2641
2642         * bus/bus.c (bus_context_new):
2643         * bus/bus.h:
2644         * bus/main.c (usage)
2645         (main):
2646         Add commandline option --nofork to override configuration file
2647         setting.
2648
2649 2004-09-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2650
2651         * dbus/dbus-*.h: remove the ; after DBUS_(BEGIN|END)_DECLS. Some C
2652         compilers don't like it (bug #974).
2653
2654 2004-09-04  Harald Fernengel  <harry@kdevelop.org>
2655
2656         * qt/connection.*: Applied patch by Jérôme Lodewyck
2657         <lodewyck@clipper.ens.fr> to integrate an existing
2658         connection into the Qt eventloop
2659
2660 2004-08-30  Jon Trowbridge  <trow@ximian.com>
2661
2662         * mono/BusDriver.cs: Added.  This is a class for interacting with
2663         the org.freedesktop.DBus service.
2664
2665         * mono/Message.cs: Added a mechanism to expose the message that is
2666         currently being dispatched via the static Message.Current
2667         property.  Added Message.Sender and Message.Destination
2668         properties.
2669
2670         * mono/Handler.cs: Expose the dispatched message via
2671         Message.Current when handling method calls.
2672
2673         * mono/Service.cs: Expose the dispatched message via
2674         Message.Current when handling signal emissions.
2675         
2676         * mono/Connection.cs: Bind dbus_bus_get_base_service via the
2677         Connection.BaseService property.
2678
2679 2004-08-28  Havoc Pennington  <hp@redhat.com>
2680
2681         * dbus/dbus-userdb.c (_dbus_is_console_user): remove unused variable
2682
2683         More fixes from Steve Grubb
2684         
2685         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix fd leak
2686         (_dbus_listen_tcp_socket): fix fd leak
2687
2688         * dbus/dbus-spawn.c (read_pid, read_ints): move the "again:" for
2689         EINTR to a bit lower in the code
2690
2691 2004-08-26  Jon Trowbridge  <trow@ximian.com>
2692
2693         * bus/driver.c (bus_driver_handle_service_exists): Respond with
2694         TRUE if we are inquiring about the existence of the built-in
2695         org.freedesktop.DBus service.
2696
2697 2004-08-25  John Palmieri  <johnp@redhat.com>
2698         * bus/config-parser.c:
2699         (struct PolicyType): Add POLICY_CONSOLE
2700         (struct Element.d.policy): s/gid_or_uid/gid_uid_or_at_console
2701         (start_busconfig_child): Sets up console element when
2702         <policy at_console=""> is encountered in a policy file
2703         (append_rule_from_element): Convert console elements to console
2704         rules.
2705
2706         * bus/policy.c: 
2707         (bus_policy_create_client_policy): Add console rules to the client
2708         policy based on if the client is at the console
2709         (bus_policy_append_console_rule): New function for adding a
2710         console rule to a policy
2711         (bus_policy_merge): Handle console rule merging
2712
2713         * dbus/dbus-sysdeps.h: Added the DBUS_CONSOLE_DIR constant
2714         where we check for console user files
2715         
2716         * dbus/dbus-sysdeps.c:
2717         (_dbus_file_exists): New function which checks if the given
2718         file exists
2719         (_dbus_user_at_console): New function which does the system
2720         specific process of checking if the user is at the console
2721
2722         * dbus/dbus-userdb.c:
2723         (_dbus_is_console_user): New function converts a UID to user name
2724         and then calls the system specific _dbus_user_at_console to 
2725         see if the user is at the console and therefor a console user
2726
2727 2004-08-25  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2728
2729         * bus/config-parser.c (set_limit):
2730         * bus/dbus-daemon-1.1.in:
2731         * test/data/valid-config-files/many-rules.conf: set the
2732         max_match_rules_per_connection limt from the config file. 
2733
2734         * doc/busconfig.dtd: update the DTD.
2735
2736         * bus/driver.c: remove some unused variables.
2737
2738 2004-08-24  Mikael Hallendal  <micke@imendio.com>
2739
2740         * dbus/dbus-glib-lowlevel.h: Removed dbus_bus_get_with_g_main since 
2741         it's been replaced by dbus_g_bus_get
2742
2743 2004-08-23  Colin Walters  <walters@redhat.com>
2744
2745         Updated SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
2746
2747         * bus/selinux.h: Prototype bus_selinux_get_policy_root.
2748
2749         * bus/selinux.c: Create a thread for policy reload notification.
2750         (bus_selinux_get_policy_root): Implement.
2751
2752         * bus/config-parser.c (start_busconfig_child)
2753         (bus_config_parser_content): Support SELinux-root relative
2754         inclusion.
2755
2756         * configure.in <HAVE_SELINUX>: Add -lpthread.
2757         
2758         * bus/test-main.c (test_pre_hook, test_post_hook): New.
2759         (test_post_hook): Move memory checking into here.
2760         (test_pre_hook, test_post_hook): Move SELinux checks in
2761         here, but conditional on a DBUS_TEST_SELINUX environment
2762         variable.  Unfortunately we can't run the SELinux checks
2763         as a normal user, since they won't have any permissions
2764         for /selinux.  So this will have to be tested manually
2765         for now, until we have virtualization for most of
2766         libselinux.
2767         
2768 2004-08-23  Havoc Pennington  <hp@redhat.com>
2769
2770         * dbus/dbus-sysdeps.c (_dbus_change_identity): add setgroups() to
2771         drop supplementary groups, suggested by Steve Grubb
2772
2773 2004-08-20  Colin Walters  <walters@redhat.com>
2774
2775         * bus/config-parser.c (start_busconfig_child): Remove some unused
2776         variables.
2777         
2778         * bus/selinux.c (bus_selinux_id_table_insert): Avoid compiler
2779         warning.
2780
2781 2004-08-17  Joe Shaw  <joeshaw@novell.com>
2782
2783         * configure.in: If --enable-mono is passed in, if we can't find
2784         mono error out.
2785
2786         * mono/Makefile.am: Use /gacutil to install assemblies into the
2787         GAC and not /root.
2788
2789 2004-08-12  Havoc Pennington  <hp@redhat.com>
2790
2791         * NEWS: update for 0.22
2792
2793         * configure.in: release 0.22
2794
2795 2004-08-11  Colin Walters  <walters@redhat.com>
2796
2797         * tools/dbus-send.c (main, usage): Add --reply-timeout
2798         argument.
2799
2800 2004-08-10  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2801
2802         * bus/bus.c (process_config_first_time_only): get rid of an unused
2803         DBusError that was causing a memoy leak (bug #989).
2804
2805         * dbus/dbus-keyring.c, dbus/dbus-message.c:
2806         fix compilation on Solaris/Forte C (bug #974)
2807
2808         * bus/main.c (main): plug two minuscule memleaks.
2809
2810 2004-08-10  Havoc Pennington  <hp@redhat.com>
2811
2812         * doc/dbus-tutorial.xml: add some more info on GLib bindings
2813
2814 2004-08-09  Havoc Pennington  <hp@redhat.com>
2815
2816         * COPYING: switch to Academic Free License version 2.1 instead of
2817         2.0, to resolve complaints about patent termination clause.
2818
2819 2004-07-31  John (J5) Palmieri  <johnp@redhat.com>
2820
2821         * README: added documentation for the --enable-python 
2822         configure switch.
2823
2824 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2825
2826         * bus/config-parser.c (bus_config_parser_new): fix an invalid
2827         _unref in the SELinux support.
2828
2829         * doc/busconfig.dtd: update DTD for SELinux support.
2830
2831         * bus/config-loader-libxml.c: fix error handler and parser
2832         initialisation/cleanup. OOM test now works with libxml2 HEAD.
2833
2834         * configure.in: remove the warning about libxml2.
2835
2836         * dbus/dbus-bus.c: silence doxygen warning.
2837
2838 2004-07-31  Colin Walters  <walters@redhat.com>
2839
2840         * configure.in: Move #error in SELinux check to its own line.
2841
2842 2004-07-31  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2843
2844         * dbus/dbus-internals.h (_DBUS_SET_OOM):
2845         * bus/utils.h (BUS_SET_OOM): use dbus_error_set_const instead of
2846         dbus_error_set.
2847
2848         * bus/dispatch.c (check_send_exit_to_service): fix the test case,
2849         broken by the change in the _SET_OOM macros.
2850
2851 2004-07-31  Colin Walters  <walters@redhat.com>
2852
2853         * bus/selinux.c <HAVE_SELINUX>: Include utils.h to get
2854         BUS_SET_OOM.
2855
2856 2004-07-31  Colin Walters  <walters@redhat.com>
2857
2858         * configure.in: Use AC_TRY_COMPILE instead of AC_EGREP_HEADER
2859         to correctly detect DBUS__ACQUIRE_SVC.  Also add an
2860         AC_MSG_CHECKING.
2861
2862 2004-07-24  Havoc Pennington  <hp@redhat.com>
2863
2864         SELinux support from Matthew Rickard <mjricka@epoch.ncsc.mil>
2865
2866         * bus/selinux.c, bus/selinux.h: new file encapsulating selinux
2867         functionality
2868
2869         * configure.in: add --enable-selinux
2870         
2871         * bus/policy.c (bus_policy_merge): add FIXME to a comment
2872
2873         * bus/main.c (main): initialize and shut down selinux
2874
2875         * bus/connection.c: store SELinux ID on each connection, to avoid 
2876         repeated getting of the string context and converting it into 
2877         an ID
2878
2879         * bus/bus.c (bus_context_get_policy): new accessor, though it
2880         isn't used
2881         (bus_context_check_security_policy): check whether the security
2882         context of sender connection can send to the security context of
2883         recipient connection
2884
2885         * bus/config-parser.c: add parsing for <selinux> and <associate>
2886         
2887         * dbus/dbus-transport.c (_dbus_transport_get_unix_fd): to
2888         implement dbus_connection_get_unix_fd()
2889
2890         * dbus/dbus-connection.c (dbus_connection_get_unix_fd): new
2891         function, used by the selinux stuff
2892         
2893 2004-07-29  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2894
2895         * bus/config-loader-libxml.c: complete the implementation of
2896         libxml backend for config file loader. Doesn't work with full OOM
2897         test yet. 
2898         
2899         * configure.in: change error when selecting libxml into a warning.
2900         
2901         * test/data/invalid-config-files: add two non-well-formed XML
2902         files. 
2903         
2904         * glib/Makefile.am: libdbus_gtool always uses expat, not libxml.
2905         
2906         * dbus/dbus-transport-unix.c (unix_handle_watch): do not
2907         disconnect in case of DBUS_WATCH_HANGUP, several do_reading() may
2908         be necessary to read all the buffer. (bug #894)
2909
2910         * bus/activation.c (bus_activation_activate_service): fix a
2911         potential assertion failure (bug #896). Small optimization in the
2912         case of auto-activation messages.
2913
2914         * dbus/dbus-message.c (verify_test_message, _dbus_message_test):
2915         add test case for byte-through-vararg bug (#901). patch by Kimmo
2916         Hämäläinen. 
2917
2918 2004-07-28  Anders Carlsson  <andersca@gnome.org>
2919
2920         * python/dbus.py:
2921         * python/dbus_bindings.pyx.in:
2922         Add dbus.init_gthreads (), allow emit_signal to pass
2923         arguments to the signal.
2924         
2925 2004-07-24  Havoc Pennington  <hp@redhat.com>
2926
2927         * AUTHORS: add some people, not really comprehensively, let me
2928         know if I missed you
2929
2930 2004-07-24  Havoc Pennington  <hp@redhat.com>
2931
2932         * Makefile.am (DIST_SUBDIRS): add DIST_SUBDIRS, problem solved by
2933         Owen
2934
2935         * test/Makefile.am (DIST_SUBDIRS): here also
2936
2937 2004-07-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2938
2939         * dbus/dbus-sysdeps.c (fill_user_info): fix inexistent label name,
2940         breaking build on Solaris, reported by Farhad Saberi on the ML.
2941
2942         * dbus/dbus-message.c (dbus_message_append_args_valist): fix the
2943         va_arg invocation to account for integer promotion in the case of
2944         DBUS_TYPE_BYTE (unsigned char is promoted to int). (bug #901)
2945
2946         * bus/services.c (bus_service_remove_owner): fix bug #902, use
2947         _dbus_list_get_first_link, not _dbus_list_get_first.
2948
2949         * dbus/dbus-bus.c (dbus_bus_service_exists): plug a memory leak.
2950
2951         * dbus/dbus-object-tree.c (free_subtree_recurse): always null
2952         handler functions so that the asserts in _dbus_object_subtree_unref
2953         do not fail.
2954
2955         * dbus/dbus-transport-unix.c (do_reading):
2956         _dbus_transport_queue_messages return value is of type
2957         dbus_bool_t, not DBusDispatchStatus.
2958         
2959 2004-07-19  David Zeuthen  <david@fubar.dk>
2960
2961         * dbus/dbus-protocol.h: Add DBUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
2962
2963         * bus/dispatch.c:
2964         (check_get_connection_unix_user): Debug says GetProperty; but the
2965         method is called GetConnectionUnixUser
2966         (check_get_connection_unix_process_id): New function
2967         (bus_dispatch_test): Actually call check_get_connection_unix_user();
2968         also call check_get_connection_unix_process_id()
2969         
2970         * bus/driver.c:
2971         (bus_driver_handle_get_connection_unix_process_id): New function,
2972         handles GetConnectionUnixProcessID on the org.freedesktop.DBus
2973         interface
2974         
2975         * dbus/dbus-auth.c:
2976         (handle_server_data_external_mech): Set pid from the credentials
2977         obtained from the socket
2978         
2979         * dbus/dbus-connection.c:
2980         (dbus_connection_get_unix_process_id): New function
2981         
2982         * dbus/dbus-connection.h: 
2983         Add prototype for dbus_connection_get_unix_process_id
2984         
2985         * dbus/dbus-transport.c:
2986         (_dbus_transport_get_unix_process_id): New function
2987         
2988         * dbus/dbus-transport.h:
2989         Add prototype for _dbus_transport_get_unix_process_id
2990         
2991 2004-07-19  Olivier Andrieu  <oliv__a@users.sourceforge.net>
2992
2993         * dbus/dbus-message.c: Message counter fix, patch by Christian
2994         Hammond <chipx86@gnupdate.org>
2995
2996 2004-07-18  Seth Nickell  <seth@gnome.org>
2997
2998         * python/dbus.py:
2999         * python/dbus_bindings.pyx.in:
3000         * python/tests/test-client.py:
3001
3002         Add dbus.ByteArray and dbus_bindings.ByteArray
3003         types so that byte streams can be passed back.
3004
3005         Give jdahlin the heaps of credit that are so
3006         rightfully his.
3007         
3008 2004-07-12  Seth Nickell  <seth@gnome.org>
3009
3010         * python/dbus.py:
3011
3012         Add message argument to the default object_method_handler
3013         function.
3014         
3015         * python/dbus_bindings.pyx.in:
3016
3017         Automatically return NIL when passed an empty list
3018         (we can't pass back a list since lists are typed
3019         and we don't have any idea what type the the client
3020         intended the list to be... :-( )
3021         
3022 2004-07-10  Seth Nickell  <seth@gnome.org>
3023
3024         * python/examples/Makefile.am:
3025
3026         Fix distcheck breakage caused by new examples.
3027
3028 2004-07-10  Seth Nickell  <seth@gnome.org>
3029
3030         * python/dbus.py:
3031
3032         Add "message" argument to service-side dbus.Object
3033         methods. This will break existing services written
3034         using the python bindings, but will allow extraction
3035         of all the message information (e.g. who its from).
3036
3037         Add improved "object oriented" signal handling/emission.
3038         
3039         * python/examples/example-service.py:
3040
3041         Nix this example.
3042         
3043         * python/examples/example-signal-emitter.py:
3044         * python/examples/example-signal-recipient.py:
3045
3046         Two new examples that show how to emit and receive
3047         signals using the new APIs.
3048         
3049         * python/examples/example-signals.py:
3050         * python/examples/gconf-proxy-service.py:
3051         * python/examples/gconf-proxy-service2.py:
3052
3053         Add "message" argument to service methods.
3054
3055 2004-06-28  Kay Sievers <kay.sievers@vrfy.org>
3056
3057         * bus/driver.c (bus_driver_handle_get_connection_unix_user)
3058         * dbus/bus.c (dbus_bus_get_unix_user)
3059         * doc/dbus-specification.xml: implement GetConnectionUnixUser
3060         method of org.freedesktop.DBus interface.
3061
3062         * bus/dispatch.c: test case
3063
3064 2004-06-23  John (J5) Palmieri  <johnp@redhat.com>
3065
3066         * python/Makefile.am: switched include directory from glib/ to dbus/
3067         since dbus-glib.h moved
3068  
3069 2004-06-22  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3070
3071         * configure.in: prevent building the gcj stuff and libxml loader
3072         since they are broken.
3073
3074 2004-06-20  Havoc Pennington  <hp@redhat.com>
3075
3076         * dbus/dbus-glib-error-enum.h: autogenerate the GError enum 
3077         codes from the dbus error names
3078         
3079         * glib/dbus-glib.h: move to subdir dbus/ since it's included 
3080         as dbus/dbus-glib.h and that breakage is now visible due to 
3081         including dbus/dbus-glib.h in dbus-glib-lowlevel.h
3082         
3083         * glib/dbus-glib.h: s/gproxy/g_proxy/
3084
3085         * dbus/dbus-shared.h: new header to hold stuff shared with
3086         binding APIs
3087         
3088         * dbus/dbus-protocol.h (DBUS_ERROR_*): move errors here rather
3089         than dbus-errors.h
3090
3091         * glib/dbus-glib.h (dbus_set_g_error): move to
3092         dbus-glib-lowlevel.h
3093
3094         * glib/dbus-glib.h: remove dbus/dbus.h from here; change a bunch
3095         of stuff to enable this
3096
3097         * dbus/dbus-glib-lowlevel.h: put dbus/dbus.h here
3098
3099         * a bunch of other changes with the same basic "separate glib 
3100         bindings from dbus.h" theme
3101         
3102 2004-06-10  Owen Fraser-Green  <owen@discobabe.net>
3103
3104         * dbus-sharp.pc.in: Removed glib-sharp inclusion in Libs.
3105
3106         * python/examples/Makefile.am: Fixed typo in EXTRA_DIST.
3107
3108 2004-06-09  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3109
3110         * bus/driver.c, dbus/dbus-bus.c: use BOOLEAN instead of UINT32 for
3111         the reply value of the ServiceExists message.
3112
3113 2004-06-07  John (J5) Palmieri  <johnp@redhat.com>
3114
3115         * python/dbus_bindings.pyx.in: No longer need to parse path
3116         elements and pass them as arrays of strings.  The C API now
3117         accepts plain path strings.
3118         (_build_parsed_path): removed 
3119
3120 2004-06-07  Havoc Pennington  <hp@redhat.com>
3121
3122         * doc/TODO: remove auto-activation item since it's done; sort
3123         items by importance/milestone
3124
3125 2004-06-07  Havoc Pennington  <hp@redhat.com>
3126
3127         * dbus/dbus-message-builder.c (_dbus_message_data_load): append
3128         random signature when using REQUIRED_FIELDS (this hack won't work
3129         in the long term)
3130
3131         * dbus/dbus-message.c: change the signature to be a header field,
3132         instead of message->signature special-case string. Incremental
3133         step forward. Then we can fix up code to send the signature in the
3134         message, then fix up code to validate said signature, then fix up
3135         code to not put the typecodes inline, etc.
3136         (load_one_message): don't make up the signature after the fact
3137         (decode_header_data): require signature field for the known
3138         message types
3139
3140         * dbus/dbus-marshal.c (_dbus_marshal_string_len): new
3141
3142         * dbus/dbus-protocol.h: add DBUS_HEADER_FIELD_SIGNATURE
3143
3144 2004-06-07  Owen Fraser-Green  <owen@discobabe.net>
3145
3146         * mono/DBusType/ObjectPath.cs: Renamed PathName argument to Path
3147
3148         * mono/Handler.cs: Updated to follow new path argument for
3149         (un-)registering objects.
3150
3151         * mono/example/Makefile.am:
3152         * mono/Makefile.am:
3153         * configure.in: Bumped required version for mono and use new -pkg
3154         syntax for deps
3155
3156 2004-06-05  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3157
3158         * dbus/dbus-connection.h, dbus/dbus-connection.c: have object path
3159         registration functions take the path argument as char* instead of
3160         char**.
3161
3162         * dbus/dbus-marshal.h, dbus/dbus-marshal.c (_dbus_decompose_path):
3163         split off the path decompostion part of
3164         _dbus_demarshal_object_path. Some misc. fixes to silence compiler
3165         warnings. 
3166
3167         * glib/dbus-gobject.c, test/test-service.c: update accordingly.
3168         
3169 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
3170  
3171         * dbus/dbus-auth.c: Rewrite auth protocol handling to use a state
3172         machine approach.  A state is implemented as a function that
3173         handles incoming events as specified for that state.
3174         
3175         * doc/dbus-specification.xml: Update auth protocol state machine
3176         specification to match implementation.  Remove some leftover
3177         base64 examples.
3178
3179 2004-06-02  Kristian Høgsberg  <krh@redhat.com>
3180
3181         * glib/dbus-gproxy.c, glib/dbus-gmain.c, dbus/dbus-string.c,
3182         dbus/dbus-object-tree.c, dbus/dbus-message.c: add comments to
3183         quiet doxygen.
3184
3185         * Doxyfile.in: remove deprecated options.
3186
3187         * dbus/dbus-message-handler.c, dbus/dbus-message-handler.h,
3188         glib/test-thread.h, glib/test-thread-client.c,
3189         glib/test-thread-server.c, glib/test-profile.c,
3190         glib/test-dbus-glib.c: remove these unused files.
3191
3192 2004-06-01  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3193
3194         * dbus/dbus-object-tree.c
3195         (_dbus_object_tree_dispatch_and_unlock): fix dispatch for
3196         non-fallback handlers (bug #684).
3197         (_dbus_object_subtree_new): initialize invoke_as_fallback field.
3198         (find_subtree_recurse): report wether the returned subtree is an
3199         exact match or a "fallback" match higher up in the tree.
3200         (object_tree_test_iteration): update test case.
3201
3202 2004-06-01  Seth Nickell  <seth@gnome.org>
3203
3204         * python/dbus_bindings.pyx.in:
3205         * python/tests/test-client.py:
3206
3207         Round off basic type support. Add dicts (yay!), and 
3208         remaining array types.
3209
3210         Make MessageIter more general so it works for dicts too.
3211
3212         Mark all loop variables as C integers.
3213         
3214 2004-05-31  Havoc Pennington  <hp@redhat.com>
3215
3216         * glib/dbus-gidl.c (method_info_add_arg): keep args sorted with
3217         "in" before "out"
3218
3219         * glib/dbus-gobject.c (dbus_type_to_string): move to dbus-gutils.c
3220
3221         * glib/dbus-glib-tool.c (main): set up to have a --self-test
3222         option that runs the tests, and start filling in some code
3223         including for starters just dumping the interfaces to stdout
3224
3225         * glib/Makefile.am (INCLUDES): define DBUS_LOCALEDIR
3226
3227         * test/data/valid-introspection-files/lots-of-types.xml: test of
3228         an example introspection file
3229
3230         * glib/dbus-gparser.c (parser_check_doctype): doctype should be
3231         "node" (I think...)
3232
3233 2004-05-31  Seth Nickell  <seth@gnome.org>
3234
3235         * python/dbus_bindings.pyx.in:
3236         * python/tests/test-client.py:
3237
3238         Test Suite: 1
3239         Python Bindings: 0
3240
3241         Fix string array memory trashing bug... oops...
3242
3243 2004-05-30  Seth Nickell  <seth@gnome.org>
3244
3245         * python/dbus.py:
3246
3247         Add a nicer-but-less-flexible alternate API for handling 
3248         calls to virtual objects in dbus.ObjectTree.
3249
3250         Screw up the argument order to the dbus.Object constructor
3251         for consistency with dbus.ObjectTree (and to make dbus_methods
3252         optional for future extension)
3253         
3254         * python/examples/Makefile.am:
3255         * python/examples/gconf-proxy-service.py:
3256         * python/examples/gconf-proxy-service2.py:
3257
3258         Alternate implementation of gconf-proxy-service using the
3259         nicer dbus.ObjectTree API.
3260         
3261         * python/examples/example-service.py:
3262         * python/tests/test-server.py
3263
3264         Reverse the argument order to deal with dbus.Object constructor
3265         changes.
3266         
3267 2004-05-30  Seth Nickell  <seth@gnome.org>
3268
3269         * python/examples/example-client.py:
3270         * python/examples/example-service.py:
3271
3272         Take it back. Lists seem to work but they're broken
3273         in the test suite. Make the base examples use
3274         lists (works fine).
3275
3276 2004-05-30  Seth Nickell  <seth@gnome.org>
3277
3278         * python/dbus_bindings.pyx.in:
3279         * python/tests/test-client.py:
3280
3281         Add some more tests and fix errors that crop up.
3282         Unfortunately, currently it seems like marshalling
3283         and unmarshalling of lists is completely broken :-(
3284
3285 2004-05-30  Seth Nickell  <seth@gnome.org>
3286
3287         * python/dbus_bindings.pyx.in:
3288
3289         Add support for ObjectPath type.
3290
3291         * python/dbus.py:
3292
3293         Refactor message handling code to a common function.
3294         
3295         * python/tests/test-client.py:
3296         * python/tests/test-server.py:
3297
3298         Add tests that check to make sure values of all types
3299         can be echoed from a service w/o mangling.
3300         
3301 2004-05-29  Seth Nickell  <seth@gnome.org>
3302
3303         * python/dbus.py:
3304
3305         Add ObjectTree class which allows implementation
3306         of trees of "virtual" objects. Basically the python
3307         wrapper for "register_fallback".
3308         
3309         * python/examples/Makefile.am
3310         * python/examples/gconf-proxy-client.py:
3311         * python/examples/gconf-proxy-service.py:
3312
3313         Implement a simple GConf proxy service that supports
3314         get/set on string and int GConf keys using the ObjectTree.
3315         
3316 2004-05-29  Seth Nickell  <seth@gnome.org>
3317
3318         * python/dbus.py:
3319         * python/examples/example-client.py:
3320         * python/examples/example-service.py:
3321         * python/examples/list-system-services.py:
3322
3323         Add SessionBus, SystemBus and ActivationBus classes
3324         so you don't need to know the special little BUS_TYPE
3325         flag.
3326         
3327 2004-05-29  Havoc Pennington  <hp@redhat.com>
3328
3329         * bus/config-parser.c (process_test_valid_subdir): temporarily
3330         stop testing config parser OOM handling, since expat has issues
3331         http://freedesktop.org/pipermail/dbus/2004-May/001153.html
3332
3333         * bus/dbus-daemon-1.1.in: change requested_reply to
3334         send_requested_reply/receive_requested_reply so we can send the
3335         replies, not just receive them.
3336
3337         * bus/config-parser.c: parse the new
3338         send_requested_reply/receive_requested_reply
3339
3340         * bus/policy.c (bus_client_policy_check_can_send): add
3341         requested_reply argument and use it
3342
3343         * bus/bus.c (bus_context_check_security_policy): pass through
3344         requested_reply status to message send check
3345
3346         * bus/system.conf.in: adapt to requested_reply change
3347         
3348 2004-05-28  Havoc Pennington  <hp@redhat.com>
3349
3350         * test/glib/test-service-glib.c (main): remove unused variable
3351
3352         * glib/dbus-gidl.c (base_info_ref): fix a silly compiler warning
3353
3354         * dbus/dbus-auth.h (enum): remove AUTHENTICATED_WITH_UNUSED_BYTES
3355         from the enum, no longer in use.
3356
3357         * dbus/dbus-sysdeps.h: include config.h so DBUS_VA_COPY actually
3358         works right.
3359
3360         * dbus/dbus-message.c: add various _dbus_return_val_if_fail for
3361         whether error_name passed in is a valid error name.
3362
3363 2004-05-28  John (J5) Palmieri  <johnp@redhat.com>
3364
3365         * dbus/dbus-message.c (dbus_message_get_args): Added support for
3366         OBJECT_PATH and OBJECT_PATH_ARRAY
3367
3368 2004-05-28  Seth Nickell  <seth@gnome.org>
3369
3370         * python/examples/Makefile.am:
3371
3372         Forget to add Makefile.am. Do not pass go.
3373
3374 2004-05-28  Michael Meeks  <michael@ximian.com>
3375
3376         * glib/dbus-gvalue.c (dbus_gvalue_marshal, dbus_gvalue_demarshal): 
3377         fix no int64 case.
3378
3379         * dbus/dbus-string.c (_dbus_string_parse_basic_type): impl.
3380
3381         * dbus/dbus-message.c (_dbus_message_iter_get_basic_type),
3382         (_dbus_message_iter_get_basic_type_array): impl.
3383         drastically simplify ~all relevant _get methods to use these.
3384         (_dbus_message_iter_append_basic_array),
3385         (dbus_message_iter_append_basic): impl
3386         drastically simplify ~all relevant _append methods to use these.
3387
3388         * dbus/dbus-message-builder.c (parse_basic_type) 
3389         (parse_basic_array, lookup_basic_type): impl.
3390         (_dbus_message_data_load): prune scads of duplicate /
3391         cut & paste coding.
3392
3393         * dbus/dbus-marshal.c (_dbus_demarshal_basic_type_array) 
3394         (_dbus_demarshal_basic_type): implement,
3395         (demarshal_and_validate_len/arg): beef up debug.
3396         (_dbus_marshal_basic_type, _dbus_marshal_basic_type_array): impl.
3397
3398 2004-05-27  Seth Nickell  <seth@gnome.org>
3399
3400         * configure.in:
3401         * python/Makefile.am:
3402
3403         Include the example python apps in the tarball.
3404         
3405         * python/examples/list-system-services.py
3406
3407         Add a python new example that fetches the list of services
3408         from the system bus.
3409         
3410 2004-05-27  Seth Nickell  <seth@gnome.org>
3411
3412         * python/dbus.py:
3413         * python/dbus_bindings.pyx.in:
3414
3415         Fix failure to notify that a signal was not handled,
3416         resulted in hung functions.
3417         
3418 2004-05-25  Colin Walters  <walters@redhat.com>
3419
3420         * tools/dbus-monitor.c (main): Monitor all types of messages.
3421
3422 2004-05-23  Owen Fraser-Green  <owen@discobabe.net>
3423
3424         * mono/Handler.cs, mono/Service.cs: Added UnregisterObject method
3425         which unregisters the object path and disposes the handler.
3426
3427 2004-05-23  Kristian Høgsberg  <krh@redhat.com>
3428  
3429         Patch from Timo Teräs <ext-timo.teras@nokia.com> (#614):
3430          
3431         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): Swap
3432         operands to && so we call dbus_message_iter_next () for the last
3433         argument also.
3434
3435 2004-05-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3436
3437         * dbus/dbus-object-tree.c
3438         (_dbus_object_tree_list_registered_unlock, lookup_subtree): return
3439         children even if the requested path isn't registered.
3440         (object_tree_test_iteration): test object_tree_list_registered.
3441
3442         * configure.in: undefine HAVE_ABSTRACT_SOCKETS instead of defining
3443         it to 0.
3444         
3445 2004-05-20  Kristian Høgsberg  <krh@redhat.com>
3446
3447         * doc/TODO: Remove resolved items.
3448
3449         * bus/expirelist.h (struct BusExpireList): remove unused n_items
3450         field.
3451         
3452         * bus/connection.c (bus_connections_expect_reply): Enforce the
3453         per-connection limit on pending replies.
3454         
3455         Patch from Jon Trowbridge <trow@ximian.com>:
3456  
3457         * bus/main.c (setup_reload_pipe): Added.  Creates a pipe and sets
3458         up a watch that triggers a config reload when one end of the pipe
3459         becomes readable.
3460         (signal_handler): Instead of doing the config reload in our SIGHUP
3461         handler, just write to the reload pipe and let the associated
3462         watch handle the reload when control returns to the main loop.
3463  
3464         * bus/driver.c (bus_driver_handle_reload_config): Added.
3465         Implements a ReloadConfig method for requesting a configuration
3466         file reload via the bus driver.
3467  
3468 2004-05-19  Owen Fraser-Green  <owen@discobabe.net>
3469
3470         * HACKING: Updated release instructions concerning the wiki page.
3471
3472 2004-05-18  Kristian Høgsberg  <krh@redhat.com>
3473
3474         * dbus/dbus-auth.c (client_try_next_mechanism): Remove logic to
3475         filter against auth->allowed_mechs; we only add allowed mechs in
3476         record_mechanisms().
3477  
3478         * dbus/dbus-auth-script.c (_dbus_auth_script_run): Add an
3479         ALLOWED_MECHS to auth-script format so we can set the list of
3480         allowed mechanisms.
3481  
3482         * data/auth/client-out-of-mechanisms.auth-script: New test to
3483         check client disconnects when it is out of mechanisms to try.
3484  
3485         * dbus/dbus-auth.c (process_command): Remove check for lines
3486         longer that 1 MB; we only buffer up maximum 16 kB.
3487  
3488         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
3489         dbus/dbus-auth-script.c, dbus/dbus-auth.c, dbus/dbus-auth.h:
3490         Remove auth state AUTHENTICATED_WITH_UNUSED_BYTES, instead always
3491         assume there might be unused bytes.
3492  
3493         * dbus/dbus-auth.c (_dbus_auth_do_work): Remove check for
3494         client-out-of-mechs, it is handled in process_reject(). Move check
3495         for max failures to send_rejected(), as it's a server-only thing.
3496
3497         * dbus/dbus-auth.c: Factor out protocol reply code into functions
3498         send_auth(), send_data(), send_rejected(), send_error(),
3499         send_ok(), send_begin() and send_cancel().
3500
3501 2004-05-17  Kristian Høgsberg  <krh@redhat.com>
3502
3503         Remove base64 encoding, replace with hex encoding. Original patch
3504         from trow@ximian.com, added error handling.
3505
3506         * dbus/dbus-string.c (_dbus_string_base64_encode)
3507         (_dbus_string_base64_decode): Remove.
3508         (_dbus_string_hex_decode): Add end_return argument so we can
3509         distinguish between OOM and invalid hex encoding.
3510         (_dbus_string_test): Remove base64 tests and add test case for
3511         invalid hex.
3512
3513         * dbus/dbus-keyring.c, dbus/dbus-auth-script.c, dbus/dbus-auth.c:
3514         Replace base64 with hex.
3515
3516         * test/data/auth/invalid-hex-encoding.auth-script: New test case
3517         for invalid hex encoded data in auth protocol.
3518
3519 2004-05-17  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3520
3521         * dbus/dbus-connection.c (check_for_reply_unlocked): plug a memory
3522         leak.
3523
3524 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
3525
3526         * mono/dbus-sharp.dll.config.in: Added for GAC
3527         * mono/dbus-sharp.snk: Added for GAC
3528         * mono/Assembly.cs.in: Added for GAC
3529         * mono/Makefile.am: Changes for GAC installation        
3530         * configure.in: Added refs for dbus-sharp.dll.config.in and
3531         Assembly.cs.in. More fixes for mono testing
3532         * mono/example/Makefile.am: Changed var to CSC
3533         * Makefile.am: Changed flag name to DBUS_USE_CSC
3534
3535 2004-05-15  Owen Fraser-Green  <owen@discobabe.net>
3536
3537         * mono/Makefile.am: Added SUBDIRS for docs. Changed SUBDIRS order
3538         * mono/doc/*: Added documentation framework
3539         * configure.in: Added monodoc check
3540         * README: Added description of mono configure flags
3541
3542 2004-05-11  John (J5) Palmieri  <johnp@redhat.com>:
3543
3544         * doc/dbus-specification.xml: Added a "Required" column to the 
3545         header fields table and changed the "zero or more" verbage in
3546         the above paragraph to read "The header must contain the required 
3547         named header fields and zero or more of the optional named header 
3548         fields".
3549         * test/data/invalid-messages/*.message: Added the required PATH 
3550         named header field to the tests so that they don't fail on 
3551         'Missing path field'
3552
3553 2004-05-07  John (J5) Palmieri  <johnp@redhat.com>
3554
3555         * python/dbus-bindings.pyx.in: Stopped the bindings from trashing
3556         the stack by implicitly defining variable and parameter types and
3557         removing the hack of defining C pointers as python objects and later
3558         casting them.
3559
3560 2004-05-02  Owen Fraser-Green  <owen@discobabe.net>
3561
3562         * mono/Makefile.am: Removed test-dbus-sharp.exe from all target
3563
3564 2004-05-01  Owen Fraser-Green  <owen@discobabe.net>
3565
3566         * mono/DBusType/Dict.cs: Handle empty dicts
3567         * mono/DBusType/Array.cs: Handle empty arrays
3568         * mono/Arguments.cs: Handle empty arguments
3569
3570 2004-04-30  Owen Fraser-Green  <owen@discobabe.net>
3571
3572         * dbus-sharp.pc.in: Modified to include include Libs and Requires
3573         field
3574
3575 2004-04-25  Kristian Høgsberg  <krh@redhat.com>
3576
3577         * test/data/valid-messages/standard-*.message: Update message
3578         test scripts to new header field names.
3579
3580 2004-04-22  John (J5) Palmieri  <johnp@redhat.com>
3581
3582         * test/break-loader.c (randomly_do_n_things): tracked down buffer
3583         overflow to times_we_did_each_thing array which would chop off the
3584         first character of the failure_dir string. Increased the size of
3585         the array to 7 to reflect the number of random mutation functions
3586         we have.
3587
3588 2004-04-21  Kristian Høgsberg  <krh@redhat.com>
3589
3590         * dbus/dbus-server-unix.c (unix_finalize): Don't unref
3591         unix_server->watch here, it is unreffed in disconnect.
3592         (_dbus_server_new_for_tcp_socket): convert NULL host to
3593         "localhost" here so we don't append NULL to address.
3594         
3595         * dbus/dbus-server.c (_dbus_server_test): Add test case for
3596         various addresses, including tcp with no explicit host.
3597
3598 2004-04-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3599
3600         * dbus/dbus-message.c (decode_header_data, decode_string_field):
3601         fix incorrect setting of .name_offset in the HeaderField (it was
3602         off by two bytes, positioned right after the name and typecode)
3603
3604         * bus/bus.c (bus_context_new, bus_context_unref): test before
3605         calling dbus_server_free_data_slot and _dbus_user_database_unref
3606         in case of an error.
3607
3608         * tools/Makefile.am: add $(DBUS_GLIB_TOOL_LIBS), xml libs needed
3609         by libdbus-gtool.
3610
3611 2004-04-19  Kristian Høgsberg  <krh@redhat.com>
3612
3613         * dbus/dbus-transport-unix.c (unix_do_iteration): Rewrite to use
3614         _dbus_poll() instead of select().
3615
3616 2004-04-15  Jon Trowbridge  <trow@ximian.com>
3617
3618         * bus/main.c (signal_handler): Reload the configuration files
3619         on SIGHUP.
3620         (main): Set up our SIGHUP handler.
3621
3622         * bus/bus.c (struct BusContext): Store the config file, user and
3623         fork flag in the BusContext.
3624         (process_config_first_time_only): Added.  Contains the code
3625         (previously in bus_context_new) for setting up the BusContext from
3626         the BusConfigParser that should only be run the first time the
3627         config files are read.
3628         (process_config_every_time): Added.  Contains the code (previously
3629         in bus_context_new) for setting up the BusContext from the
3630         BusConfigParser that should be run every time the config files are
3631         read.
3632         (load_config): Added.  Builds a BusConfigParser from the config
3633         files and passes the resulting structure off to
3634         process_config_first_time_only (assuming this is the first time)
3635         and process_config_every_time.
3636         (bus_context_new): All of the config-related code has been moved
3637         to process_config_first_time_only and process_config_every_time.
3638         Now this function just does the non-config-related initializations
3639         and calls load_config.
3640         (bus_context_reload_config): Added.
3641
3642 2004-04-15  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3643
3644         * bus/driver.c (bus_driver_handle_get_service_owner):
3645         implement a GetServiceOwner method.
3646         * doc/dbus-specification.xml: document it.
3647         * dbus/dbus-errors.h: add a 'ServiceHasNoOwner' error.
3648         
3649         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service_owner):
3650         implement, using the bus GetServiceOwner method.
3651
3652         * test/glib/test-dbus-glib.c:
3653         use dbus_gproxy_new_for_service_owner so that we can receive the
3654         signal. 
3655
3656 2004-04-15  John (J5) Palmieri  <johnp@redhat.com>
3657
3658         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
3659         dbus/dbus-message.c, dbus/dbus-protocol.h
3660         (DBUS_HEADER_FIELD_SERVICE): renamed DBUS_HEADER_FIELD_DESTINATION
3661
3662         * dbus/dbus-internals.c, dbus/dbus-message-builder.c,
3663         dbus/dbus-message.c, dbus/dbus-protocol.h
3664         (DBUS_HEADER_FIELD_SENDER_SERVICE): renamed DBUS_HEADER_FIELD_SENDER
3665
3666         * dbus/dbus-internals.c (_dbus_header_field_to_string):
3667         DBUS_HEADER_FIELD_DESTINATION resolves to "destination"
3668         DBUS_HEADER_FIELD_SENDER resolves to "sender"
3669
3670         * doc/dbus-specification.xml (Header Fields Table):
3671         s/SERVICE/DESTINATION
3672         s/SENDER_SERVICE/SENDER
3673
3674
3675 2004-04-14  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3676
3677         * test/glib/test-dbus-glib.c (timed_exit): fail the test after
3678         a few seconds.
3679
3680 2004-04-13  Michael Meeks  <michael@ximian.com>
3681
3682         * glib/dbus-gobject.c (handle_introspect): split out
3683         (introspect_properties): this.
3684         (handle_introspect): implement this.
3685
3686         * test/glib/Makefile.am: use the absolute path so the bus
3687         daemon's chdir ("/") doesn't kill us dead.
3688
3689         * configure.in: subst ABSOLUTE_TOP_BUILDDIR
3690
3691 2004-04-12  Jon Trowbridge  <trow@ximian.com>
3692
3693         * bus/config-parser.c (struct BusConfigParser): Added
3694         included_files field.
3695         (seen_include): Added.  Checks whether or not a file has already
3696         been included by any parent BusConfigParser.
3697         (bus_config_parser_new): Copy the parent's included_files.
3698         (include_file): Track which files have been included, and fail on
3699         circular inclusions.
3700         (process_test_valid_subdir): Changed printf to report if we are
3701         testing valid or invalid conf files.
3702         (all_are_equiv): Changed printf to be a bit clearer about
3703         what we are actually doing.
3704         (bus_config_parser_test): Test invalid configuration files.
3705
3706 2004-04-09  Jon Trowbridge  <trow@ximian.com>
3707
3708         * bus/config-parser.c (bus_config_parser_new): Added a 'parent'
3709         argument.  If non-null, the newly-constructed BusConfigParser will
3710         be initialized with the parent's BusLimits instead of the default
3711         values.
3712         (include_file): When including a config file, pass in
3713         the current parser as the parent and then copy the BusLimits
3714         from the included BusConfigParser pack to the current parser.
3715         (process_test_valid_subdir): Renamed from process_test_subdir.
3716         (process_test_equiv_subdir): Added.  Walks through a directory,
3717         descending into each subdirectory and loading the config files
3718         it finds there.  If any subdirectory contains two config files
3719         that don't produce identical BusConfigParser structs, fail.
3720         For now, the BusConfigParser's BusPolicies are not compared.
3721         (bus_config_parser_test): Call both process_test_valid_subdir and
3722         process_test_equiv_subdir.
3723
3724         * bus/config-loader-libxml.c (bus_config_load): Take a parent
3725         argument and pass it along to the call to bus_config_parser_new.
3726         Also made a few small changes to allow this code to compile.
3727
3728         * bus/config-loader-expat.c (bus_config_load): Take a parent
3729         argument and pass it along to the call to bus_config_parser_new.
3730
3731         * bus/bus.c (bus_context_new): Load the config file
3732         with a NULL parent argument.
3733
3734 2004-03-29  Michael Meeks  <michael@ximian.com>
3735
3736         * glib/dbus-gobject.c (introspect_properties): split
3737         out, fix mangled 'while' flow control.
3738         (introspect_signals): implement.
3739         (handle_introspect): update.
3740
3741 2004-03-29  Michael Meeks  <michael@ximian.com>
3742
3743         * glib/dbus-gobject.c (set_object_property): split out / 
3744         re-work, use the property type, and not the message type(!)
3745         (get_object_property): ditto.
3746
3747         * glib/dbus-gvalue.c (dbus_gvalue_demarshal),
3748         (dbus_gvalue_marshal): make this code re-usable, needed
3749         for signals too, also on both proxy and server side.
3750         Re-write for more efficiency / readability.
3751
3752 2004-03-29  Michael Meeks  <michael@ximian.com>
3753
3754         * dbus/dbus-message.c
3755         (dbus_message_new_error_printf): impl.
3756
3757         * dbus/dbus-connection.c
3758         (dbus_connection_unregister_object_path): fix warning.
3759
3760         * configure.in: fix no-mono-installed situation.
3761
3762 2004-03-27  Havoc Pennington  <hp@redhat.com>
3763
3764         Patch from Timo Teräs:
3765         
3766         * tools/dbus-send.c (main): if --print-reply, assume type is
3767         method call; support boolean type args
3768         
3769         * dbus/dbus-connection.c (dbus_connection_send_with_reply): fix a
3770         bunch of memleak and logic bugs
3771         
3772 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
3773
3774         * mono/Arguments.cs:
3775         * mono/Introspector.cs:
3776         * mono/Handler.cs:
3777         * mono/InterfaceProxy.cs:
3778         * mono/Message.cs
3779         * mono/ProxyBuilder.cs:
3780         * mono/Service.cs:
3781         Added InterfaceProxy class to avoid building proxies for every
3782         object.
3783
3784         * dbus-message.h:
3785         * dbus-message.c (dbus_message_append_args_valist)
3786         (dbus_message_iter_get_object_path)
3787         (dbus_message_iter_get_object_path_array)
3788         (dbus_message_iter_append_object_path)
3789         (dbus_message_iter_append_object_path_array):
3790         Added object_path iter functions to handle OBJECT_PATH arguments
3791         
3792 2004-03-23  Owen Fraser-Green  <owen@discobabe.net>
3793
3794         First checkin of mono bindings.
3795         * configure.in:
3796         * Makefile.am:
3797         Build stuff for the bindings
3798         * dbus-sharp.pc.in: Added for pkgconfig
3799         
3800 2004-03-21  Havoc Pennington  <hp@redhat.com>
3801
3802         * test/test-service.c (main): remove debug spew
3803
3804 2004-03-21  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3805
3806         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): accept empty
3807         arrays
3808
3809         * dbus/dbus-message.h, bus/dbus-message.c (dbus_message_iter_init)
3810         (dbus_message_iter_init_array_iterator)
3811         (dbus_message_iter_init_dict_iterator): return a dbus_bool_t to
3812         indicate whether the iterator is empty
3813
3814         * dbus/dbus-pending-call.c, dbus/dbus-server.c: silence compiler
3815         warnings
3816
3817 2004-03-19  Havoc Pennington  <hp@redhat.com>
3818
3819         * NEWS: 0.21 updates
3820
3821         * configure.in: 0.21
3822
3823         * doc/Makefile.am: add all XMLTO usage to DBUS_XML_DOCS_ENABLED
3824         
3825         * python/Makefile.am: change to avoid dist of dbus_bindings.c so
3826         you don't need pyrex to make dist
3827
3828         * qt/Makefile.am (libdbus_qt_1_la_SOURCES): add integrator.h to
3829         sources; run moc
3830         
3831 2004-03-18  Richard Hult  <richard@imendio.com>
3832
3833         * dbus/dbus-message.c (dbus_message_get_auto_activation) 
3834         (dbus_message_set_auto_activation): Add doxygen docs.
3835
3836 2004-03-16  Richard Hult  <richard@imendio.com>
3837
3838         * bus/activation.c: (bus_activation_service_created),
3839         (bus_activation_send_pending_auto_activation_messages),
3840         (bus_activation_activate_service):
3841         * bus/activation.h:
3842         * bus/dispatch.c: (bus_dispatch),
3843         (check_nonexistent_service_auto_activation),
3844         (check_service_auto_activated),
3845         (check_segfault_service_auto_activation),
3846         (check_existent_service_auto_activation), (bus_dispatch_test):
3847         * bus/driver.c: (bus_driver_handle_activate_service):
3848         * bus/services.c: (bus_registry_acquire_service):
3849         * dbus/dbus-message.c: (dbus_message_set_auto_activation),
3850         (dbus_message_get_auto_activation):
3851         * dbus/dbus-message.h:
3852         * dbus/dbus-protocol.h: Implement auto-activation.
3853         
3854         * doc/dbus-specification.xml: Add auto-activation to the spec.
3855
3856 2004-03-12  Olivier Andrieu  <oliv__a@users.sourceforge.net>
3857
3858         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos):
3859         fix a bug with CUSTOM types.
3860
3861         * dbus/dbus-message.c (message_iter_test, _dbus_message_test): add
3862         a unit test for this bug (used to fail).
3863
3864 2004-03-12  Mikael Hallendal  <micke@imendio.com>
3865
3866         * bus/activation.c:
3867         (babysitter_watch_callback): notify all pending activations waiting for
3868           the same exec that the activation failed.
3869         (bus_activation_activate_service): shortcut the activation if we 
3870           already waiting for the same executable to start up.
3871
3872 2004-03-12  Mikael Hallendal  <micke@imendio.com>
3873
3874         * bus/activation.c: 
3875         - Added service file reloading. 
3876           Each service files directory is kept in an hash table in 
3877           BusActivation and each BusActivationEntry knows what .service-file it
3878           was read from. So when you try to activate a service the bus will 
3879           check if it's been updated, removed or if new .service-files has 
3880           been installed.
3881         - Test code at the bottom for the service file reloading.
3882         * bus/test-main.c: (main):
3883         * bus/test.h:
3884         - added service reloading test.
3885         * dbus/dbus-sysdeps.c: 
3886         * dbus/dbus-sysdeps.h: (_dbus_delete_directory): Added.
3887
3888 2004-03-08  Michael Meeks  <michael@ximian.com>
3889
3890         * dbus/dbus-connection.c (_dbus_connection_block_for_reply): 
3891         bail immediately if disconnected, to avoid busy loop.
3892
3893         * dbus/dbus-message.c (dbus_message_iter_get_args_valist):
3894         cleanup cut/paste/inefficiency.
3895
3896 2004-03-01  David Zeuthen  <david@fubar.dk>
3897
3898         * dbus/dbus-string.c (_dbus_string_append_printf_valist): Fix a
3899         bug where args were used twice. This bug resulted in a segfault
3900         on a Debian/PPC system when starting the messagebus daemon. Include
3901         dbus-sysdeps.h for DBUS_VA_COPY
3902
3903         * dbus/dbus-sysdeps.h: Define DBUS_VA_COPY if neccessary. From GLib
3904
3905         * configure.in: Check for va_copy; define DBUS_VA_COPY to the
3906         appropriate va_copy implementation. From GLib
3907         
3908 2004-02-24  Joe Shaw  <joe@ximian.com>
3909
3910         * bus/services.c (bus_registry_acquire_service): We need to pass
3911         in the service name to dbus_set_error() to prevent a crash.
3912
3913 2003-12-26  Anders Carlsson  <andersca@gnome.org>
3914
3915         * AUTHORS: Reveal my True identity.
3916
3917 2003-12-17  Mikael Hallendal  <micke@imendio.com>
3918
3919         * dbus/dbus-message.c: (dbus_message_append_args_valist): 
3920         - Added case for DBUS_TYPE_BYTE, patch from Johan Hedberg.
3921
3922 2003-12-13  Mikael Hallendal  <micke@imendio.com>
3923
3924         * doc/TODO: Added not about better error check of configuration files.
3925
3926 2003-12-02  Richard Hult  <richard@imendio.com>
3927
3928         * Update AFL version to 2.0 throughout the source files to reflect
3929         the update that was done a while ago.
3930
3931 2003-12-02  Richard Hult  <richard@imendio.com>
3932
3933         * dbus/dbus-message.c (dbus_message_iter_append_dict): Set
3934         wrote_dict_key to FALSE on the iter that the dict is appended to,
3935         just like when appending other types. Fixes a bug where a dict
3936         couldn't be put inside a dict.
3937         (dbus_message_iter_append_dict_key): Fix typo in warning message.
3938         (message_iter_test, _dbus_message_test): Add test case for dict
3939         inside dict.
3940
3941 2003-12-01  David Zeuthen  <david@fubar.dk>
3942
3943         * python/dbus.py: Add the actual message when calling the reciever
3944         of a signal such that parameters can be inspected. Add the method
3945         remove_signal_receiver
3946         
3947 2003-11-26  Mikael Hallendal  <micke@imendio.com>
3948
3949         * bus/*.[ch]:
3950         * dbus/*.[ch]:
3951         * glib/*.[ch]: Made ref functions return the pointer
3952
3953 2003-11-25  Zack Rusin  <zack@kde.org>
3954
3955         * qt/integrator.h, qt/integrator.cpp: Adding handling of DBusServer,
3956
3957         * qt/server.h, qt/server.cpp, qt/Makefile.am: Adding DBusServer 
3958         wrappers,
3959
3960         * qt/connection.h, qt/connection.cpp: Adjusting to changes in 
3961         the Integrator and to better fit with the server,
3962
3963 2003-11-24  Zack Rusin  <zack@kde.org>
3964
3965         * qt/connection.h, qt/connection.cpp: removing initDbus method since
3966         the integrator handles it now
3967
3968         * qt/integrator.h, qt/integrator.cpp: reworking handling of timeouts,
3969         since QTimer wasn't really meant to be used the way DBusTimeout is
3970
3971 2003-11-24  Zack Rusin  <zack@kde.org>
3972
3973         * qt/integrator.h, qt/integrator.cpp, Makefile.am: Adding 
3974         Integrator class which integrates D-BUS with the Qt event loop,
3975
3976         * qt/connection.h, qt/connection.cpp: Move all the code which
3977         was dealing with D-BUS integration to the Integrator class,
3978         and start using Integrator,
3979
3980 2003-11-23  Zack Rusin  <zack@kde.org>
3981
3982         * qt/connection.h, qt/connection.cpp: Adding the DBusConnection 
3983         wrapper
3984
3985         * qt/message.h, qt/message.cpp: updating to the current D-BUS api,
3986         switching namespaces to DBusQt, reworking the class,
3987
3988         * Makefile.cvs: switching dependencies so that it matches KDE 
3989         schematics,
3990         
3991         * qt/Makefile.am: adding connection.{h,cpp} and message.{h,cpp} to 
3992         the library
3993
3994 2003-11-19  Havoc Pennington  <hp@redhat.com>
3995
3996         * NEWS: update
3997
3998         * configure.in: bump version to 0.20
3999
4000         * configure.in (have_qt): add yet another place to look for qt
4001         (someone hand trolltech a .pc file...)
4002
4003 2003-11-01  Havoc Pennington  <hp@redhat.com>
4004
4005         * doc/dbus-specification.xml: add state machine docs on the auth
4006         protocol; just a first draft, I'm sure it's wrong.      
4007
4008 2003-10-28  David Zeuthen  <david@fubar.dk>
4009
4010         * python/dbus_bindings.pyx.in: add get_dict to handle dictionaries
4011         return types. Fixup TYPE_* to reflect changes in dbus/dbus-protocol.h
4012         
4013 2003-10-28  Havoc Pennington  <hp@redhat.com>
4014
4015         * dbus/dbus-message.c (get_next_field): delete unused function
4016
4017 2003-10-28  Havoc Pennington  <hp@redhat.com>
4018
4019         * bus/expirelist.c (do_expiration_with_current_time): detect
4020         failure of the expire_func due to OOM
4021
4022         * bus/connection.c (bus_pending_reply_expired): return FALSE on OOM
4023
4024         * bus/dispatch.c (check_send_exit_to_service): fix to handle the
4025         NoReply error that's now created by the bus when the service exits
4026
4027 2003-10-28  Havoc Pennington  <hp@redhat.com>
4028
4029         * dbus/dbus-message.c (_dbus_message_test): enable and fix the
4030         tests for set_path, set_interface, set_member, etc.
4031
4032         * dbus/dbus-string.c (_dbus_string_insert_bytes): allow 0 bytes
4033
4034         * dbus/dbus-message.c (set_string_field): always just delete and
4035         re-append the field; accept NULL for deletion
4036         (re_align_fields_recurse): reimplement
4037         
4038 2003-10-26  Havoc Pennington  <hp@redhat.com>
4039
4040         * dbus/dbus-connection.c: fix docs to properly describe the
4041         disconnected message
4042         (_dbus_connection_notify_disconnected): remove this function; 
4043         we can't synchronously add the disconnected message, we have to 
4044         do it after we've queued any remaining real messages
4045         (_dbus_connection_get_dispatch_status_unlocked): queue the
4046         disconnect message only if the transport has finished queueing all
4047         its real messages and is disconnected.
4048         (dbus_connection_disconnect): update the dispatch status here
4049
4050 2003-10-22  Havoc Pennington  <hp@redhat.com>
4051
4052         * bus/bus.c (bus_context_check_security_policy): fix up assertion
4053
4054         * bus/connection.c (bus_transaction_send_from_driver): set the
4055         destination to the connection's base service
4056
4057 2003-10-20  Havoc Pennington  <hp@redhat.com>
4058
4059         hmm, make check is currently not passing.
4060         
4061         * doc/dbus-specification.xml: add requirement that custom type
4062         names follow the same rules as interface names.
4063
4064         * dbus/dbus-protocol.h: change some of the byte codes, to avoid
4065         duplication and allow 'c' to be 'custom'; dict is now 'm' for
4066         'map'
4067
4068         * doc/dbus-specification.xml: update type codes to match
4069         dbus-protocol.h, using the ASCII byte values. Rename type NAMED to
4070         CUSTOM. Add type OBJECT_PATH to the spec.
4071
4072 2003-10-17  Havoc Pennington  <hp@redhat.com>
4073
4074         * bus/driver.c (create_unique_client_name): use "." as separator
4075         in base service names instead of '-'
4076
4077         * dbus/dbus-string.c (_dbus_string_get_byte): allow getting nul
4078         byte at the end of the string
4079
4080         * dbus/dbus-internals.h (_DBUS_LIKELY, _DBUS_UNLIKELY): add
4081         optimization macros since string validation seems to be a slow
4082         point.
4083         
4084         * doc/dbus-specification.xml: restrict valid
4085         service/interface/member/error names. Add test suite code for the
4086         name validation.
4087
4088         * dbus/dbus-string.c: limit service/interface/member/error names 
4089         to [0-9][A-Z][a-z]_
4090
4091         * dbus/dbus-connection.c (dbus_connection_dispatch): add missing
4092         format arg to verbose spew
4093
4094         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): if not out of
4095         memory, return instead of g_error
4096
4097         * test/test-service.c (path_message_func): support emitting a
4098         signal on request
4099
4100         * dbus/dbus-bus.c (init_connections_unlocked): only fill in
4101         activation bus type if DBUS_BUS_ACTIVATION was set; default to
4102         assuming the activation bus was the session bus so that services
4103         started manually will still register.
4104         (init_connections_unlocked): fix so that in OOM situation we get
4105         the same semantics when retrying the function
4106         
4107         * test/test-service.c (main): change to use path registration, to
4108         test those codepaths; register with DBUS_BUS_ACTIVATION rather
4109         than DBUS_BUS_SESSION
4110
4111 2003-10-16  Havoc Pennington  <hp@redhat.com>
4112
4113         * glib/dbus-gtest-main.c: bracket with #ifdef DBUS_BUILD_TESTS
4114
4115         * Makefile.am (GCOV_DIRS): remove "test", we don't care about test
4116         coverage of the tests
4117         (coverage-report.txt): don't move the .da and .bbg files around
4118
4119 2003-10-16  Havoc Pennington  <hp@redhat.com>
4120
4121         * bus/bus.c (struct BusContext): remove struct field I didn't mean
4122         to put there
4123
4124 2003-10-16  Havoc Pennington  <hp@redhat.com>
4125
4126         * bus/connection.c (bus_pending_reply_expired): either cancel or
4127         execute, not both
4128         (bus_connections_check_reply): use unlink, not remove_link, as we
4129         don't want to free the link; fixes double free mess
4130
4131         * dbus/dbus-pending-call.c (dbus_pending_call_block): fix in case
4132         where no reply was received
4133
4134         * dbus/dbus-connection.c (_dbus_pending_call_complete_and_unlock):
4135         fix a refcount leak
4136
4137         * bus/signals.c (match_rule_matches): add special cases for the
4138         bus driver, so you can match on sender/destination for it.
4139
4140         * dbus/dbus-sysdeps.c (_dbus_abort): print backtrace if
4141         DBUS_PRINT_BACKTRACE is set
4142
4143         * dbus/dbus-internals.c: add pid to assertion failure messages
4144
4145         * dbus/dbus-connection.c: add message type code to the debug spew
4146
4147         * glib/dbus-gproxy.c (gproxy_get_match_rule): match rules want
4148         sender=foo not service=foo
4149
4150         * dbus/dbus-bus.c (dbus_bus_get): if the activation bus is the
4151         session bus but DBUS_SESSION_BUS_ADDRESS isn't set, use 
4152         DBUS_ACTIVATION_ADDRESS instead
4153
4154         * bus/activation.c: set DBUS_SESSION_BUS_ADDRESS,
4155         DBUS_SYSTEM_BUS_ADDRESS if appropriate
4156
4157         * bus/bus.c (bus_context_new): handle OOM copying bus type into
4158         context struct
4159
4160         * dbus/dbus-message.c (dbus_message_iter_get_object_path): new function
4161         (dbus_message_iter_get_object_path_array): new function (half
4162         finished, disabled for the moment)
4163         
4164         * glib/dbus-gproxy.c (dbus_gproxy_end_call): properly handle
4165         DBUS_MESSAGE_TYPE_ERROR
4166
4167         * tools/dbus-launch.c (babysit): support DBUS_DEBUG_OUTPUT to
4168         avoid redirecting stderr to /dev/null
4169         (babysit): close stdin if not doing the "exit_with_session" thing
4170
4171         * dbus/dbus-sysdeps.c (_dbus_become_daemon): delete some leftover
4172         debug code; change DBUS_DEBUG_OUTPUT to only enable stderr, not
4173         stdout/stdin, so things don't get confused
4174         
4175         * bus/system.conf.in: fix to allow replies, I modified .conf
4176         instead of .conf.in again.
4177
4178 2003-10-14  David Zeuthen  <david@fubar.dk>
4179
4180         * python/dbus_bindings.pyx.in (MessageIter.get): fixed typo in
4181         argtype to arg_type when raising unknown arg type exception.
4182         Changed type list to reflect the changes in dbus-protocol.h so 
4183         the bindings actually work.
4184
4185 2003-10-14  Havoc Pennington  <hp@redhat.com>
4186
4187         * test/decode-gcov.c: support gcc 3.3 also, though gcc 3.3 seems
4188         to have a bug keeping it from outputting the .da files sometimes
4189         (string_get_string): don't append garbage nul bytes to the string.
4190
4191 2003-10-15  Seth Nickell  <seth@gnome.org>
4192
4193         * python/Makefile.am:
4194
4195         Include dbus_h_wrapper.h in the dist tarball.
4196
4197 2003-10-14  Havoc Pennington  <hp@redhat.com>
4198
4199         * bus/bus.c (bus_context_check_security_policy): revamp this to
4200         work more sanely with new policy-based requested reply setup
4201
4202         * bus/connection.c (bus_transaction_send_from_driver): set bus
4203         driver messages as no reply
4204
4205         * bus/policy.c (bus_client_policy_check_can_receive): handle a
4206         requested_reply attribute on allow/deny rules
4207
4208         * bus/system.conf: add <allow requested_reply="true"/>
4209
4210         * bus/driver.c (bus_driver_handle_message): fix check for replies
4211         sent to the bus driver, which was backward. How did this ever work
4212         at all though? I think I'm missing something.
4213
4214         * dbus/dbus-message.c (decode_header_data): require error and
4215         method return messages to have a reply serial field to be valid
4216         (_dbus_message_loader_queue_messages): break up this function;
4217         validate that reply serial and plain serial are nonzero; 
4218         clean up the OOM/error handling.
4219         (get_uint_field): don't return -1 from this
4220         (dbus_message_create_header): fix signed/unsigned bug
4221
4222         * bus/connection.c (bus_connections_expect_reply): save serial of
4223         the incoming message, not reply serial
4224
4225 2003-10-14  Havoc Pennington  <hp@redhat.com>
4226
4227         * bus/connection.c: implement pending reply tracking using
4228         BusExpireList
4229
4230         * bus/bus.c (bus_context_check_security_policy): verify that a
4231         reply is pending in order to allow a reply to be sent. Deny 
4232         messages of unknown type.
4233
4234         * bus/dbus-daemon-1.1.in: update to mention new resource limits
4235
4236         * bus/bus.c (bus_context_get_max_replies_per_connection): new
4237         (bus_context_get_reply_timeout): new
4238
4239 2003-10-13  Seth Nickell  <seth@gnome.org>
4240
4241         * python/Makefile.am:
4242
4243         Pass "make distcheck": remove a couple files from DIST_FILES
4244         that weren't included in the final version.
4245
4246 2003-10-12  Havoc Pennington  <hp@pobox.com>
4247
4248         Added test code that 1) starts an actual bus daemon and 2) uses
4249         DBusGProxy; fixed bugs that were revealed by the test. Lots 
4250         more testing possible, but this is the basic framework.
4251         
4252         * glib/dbus-gproxy.c (dbus_gproxy_manager_unregister): remove
4253         empty proxy lists from the proxy list hash
4254
4255         * dbus/dbus-message.c (dbus_message_iter_get_args_valist): add a
4256         couple of return_if_fail checks
4257
4258         * dbus/dbus-pending-call.c (_dbus_pending_call_new): use dbus_new0
4259         to allocate, so everything is cleared to NULL as it should be.
4260
4261         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): pass
4262         source as data to dbus_connection_set_timeout_functions() as the 
4263         timeout functions expected
4264
4265         * test/glib/run-test.sh: add a little script to start up a message
4266         bus and run tests using it
4267
4268         * tools/dbus-launch.1: updates
4269
4270         * tools/dbus-launch.c (main): add --config-file option
4271
4272         * tools/dbus-launch.c (main): remove confusing else if (runprog)
4273         that could never be reached.
4274
4275         * dbus/dbus-message.c (dbus_message_new_method_return) 
4276         (dbus_message_new_error, dbus_message_new_signal): set the
4277         no-reply-expected flag on all these. Redundant, but may
4278         as well be consistent.
4279
4280 2003-10-11  Havoc Pennington  <hp@pobox.com>
4281
4282         * test/decode-gcov.c (function_solve_graph): make broken block
4283         graph a nonfatal error since it seems to be broken. Need to debug
4284         this.
4285
4286         * dbus/dbus-marshal.c (_dbus_type_is_valid): new function since we
4287         can't just check type > INVALID < LAST anymore
4288
4289         * dbus/dbus-message.c (dbus_message_get_signature): new function
4290         (dbus_message_has_signature): new function
4291         (struct DBusMessage): add signature field (right now it isn't sent
4292         over the wire, just generated on the fly)
4293         (dbus_message_copy): copy the signature, and init strings to
4294         proper length to avoid some reallocs
4295         (dbus_message_iter_init_array_iterator): return void, since it
4296         can't fail
4297         (dbus_message_iter_init_dict_iterator): return void since it can't fail
4298         (_dbus_message_loader_queue_messages): add silly temporary hack to
4299         fill in message->signature on load
4300
4301         * dbus/dbus-protocol.h: change DBUS_TYPE_* values to be ASCII
4302         characters, so they are relatively human-readable.
4303
4304 2003-10-11  Havoc Pennington  <hp@pobox.com>
4305
4306         * dbus/dbus-message.c (_dbus_message_test): add more test
4307         coverage, but #if 0 for now since they uncover a bug 
4308         not fixed yet; I think in re_align_field_recurse()
4309         (re_align_field_recurse): add FIXME about broken assertion
4310
4311         * dbus/dbus-sysdeps.c (_dbus_sysdeps_test): add more test coverage
4312
4313         * bus/connection.c: share a couple code bits with expirelist.c
4314
4315         * bus/expirelist.h, bus/expirelist.c: implement a generic
4316         expire-items-after-N-seconds facility, was going to share between
4317         expiring connections and replies, decided not to use for expiring
4318         connections for now.
4319
4320         * COPYING: include AFL 2.0 (still need to change all the file headers)
4321
4322 2003-10-09  Havoc Pennington  <hp@redhat.com>
4323
4324         * configure.in: define DBUS_HAVE_GCC33_GCOV if we have
4325         gcc 3.3. Not that we do anything about it yet.
4326
4327         * bus/signals.c (bus_match_rule_parse): impose max length on the
4328         match rule text
4329
4330         * dbus/dbus-protocol.h: add DBUS_MAXIMUM_MATCH_RULE_LENGTH
4331
4332 2003-10-09  Havoc Pennington  <hp@redhat.com>
4333
4334         Make matching rules theoretically work (add parser).
4335         
4336         * bus/bus.c (bus_context_check_security_policy): fix up to handle
4337         the case where destination is explicitly specified as bus driver
4338         and someone else is eavesdropping.
4339         
4340         * bus/policy.c (bus_client_policy_check_can_receive): fix up
4341         definition of eavesdropping and assertion
4342
4343         * tools/dbus-send.c (main): use dbus_message_type_from_string
4344
4345         * bus/signals.c (bus_match_rule_parse): implement
4346
4347         * dbus/dbus-message.c (dbus_message_type_from_string): new
4348
4349         * dbus/dbus-errors.h (DBUS_ERROR_MATCH_RULE_INVALID): add
4350
4351 2003-10-02  Havoc Pennington  <hp@pobox.com>
4352
4353         * glib/dbus-gproxy.c (dbus_gproxy_call_no_reply): rename from
4354         dbus_gproxy_oneway_call
4355
4356         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main) 
4357         (dbus_server_setup_with_g_main): fix to allow calling them more
4358         than once on the same args
4359         (dbus_bus_get_with_g_main): new function
4360
4361 2003-10-02  Havoc Pennington  <hp@redhat.com>
4362
4363         * doc/dbus-tutorial.xml: write some stuff
4364
4365 2003-09-29  Havoc Pennington  <hp@pobox.com>
4366
4367         * configure.in: split checks for Doxygen from XML docs, check for
4368         xmlto
4369
4370         * doc/Makefile.am: XML-ify all the docs, and add a blank
4371         dbus-tutorial.xml
4372
4373 2003-09-29  Havoc Pennington  <hp@pobox.com>
4374
4375         * Merge dbus-object-names branch. To see the entire patch 
4376         do cvs diff -r DBUS_OBJECT_NAMES_BRANCHPOINT -r dbus-object-names,
4377         it's huuuuge though.
4378         To revert, I tagged DBUS_BEFORE_OBJECT_NAMES_MERGE.
4379         
4380 2003-09-28  Havoc Pennington  <hp@pobox.com>
4381
4382         * HACKING: update to reflect new server
4383
4384 2003-09-26  Seth Nickell  <seth@gnome.org>
4385
4386         * python/dbus.py:
4387         * python/examples/example-signals.py:
4388
4389         Start implementing some notions of signals. The API
4390         is really terrible, but they sort of work (with the
4391         exception of being able to filter by service, and to
4392         transmit signals *as* a particular service). Need to
4393         figure out how to make messages come from the service
4394         we registered :-(
4395         
4396         * python/dbus_bindings.pyx.in:
4397
4398         Removed duplicate message_handler callbacks.
4399         
4400 2003-09-25  Havoc Pennington  <hp@redhat.com>
4401
4402         * bus/session.conf.in: fix my mess
4403
4404 2003-09-25  Havoc Pennington  <hp@pobox.com>
4405
4406         * bus/session.conf.in: fix security policy, reported by Seth Nickell
4407
4408 2003-09-25  Seth Nickell  <seth@gnome.org>
4409
4410         * python/examples/example-service.py:
4411
4412         Johan notices complete wrong code in example-service, but
4413         completely wrong in a way that works exactly the same (!).
4414         Johan is confused, how could this possibly work? Example
4415         code fails to serve purpose of making things clear.
4416         Seth fixes.
4417
4418 2003-09-25  Mark McLoughlin  <mark@skynet.ie>
4419
4420         * doc/dbus-specification.sgml: don't require header fields
4421         to be 4-byte aligned and specify that fields should be
4422         distinguished from padding by the fact that zero is not
4423         a valid field name.
4424         
4425         * doc/TODO: remove re-alignment item and add item to doc
4426         the OBJECT_PATH type.
4427         
4428         * dbus/dbus-message.c:
4429         (HeaderField): rename the original member to value_offset
4430         and introduce a name_offset member to keep track of where
4431         the field actually begins.
4432         (adjust_field_offsets): remove.
4433         (append_int_field), (append_uint_field),
4434         (append_string_field): don't align the start of the header
4435         field to a 4-byte boundary.
4436         (get_next_field): impl finding the next marhsalled field
4437         after a given field.
4438         (re_align_field_recurse): impl re-aligning a number of
4439         already marshalled fields.
4440         (delete_field): impl deleting a field of any type and
4441         re-aligning any following fields.
4442         (delete_int_or_uint_field), (delete_string_field): remove.
4443         (set_int_field), (set_uint_field): no need to re-check
4444         that we have the correct type for the field.
4445         (set_string_field): ditto and impl re-aligning any
4446         following fields.
4447         (decode_header_data): update to take into account that
4448         the fields aren't 4-byte aligned any more and the new
4449         way to distinguish padding from header fields. Also,
4450         don't exit when there is too much header padding.
4451         (process_test_subdir): print the directory.
4452         (_dbus_message_test): add test to make sure a following
4453         field is re-aligned correctly after field deletion.
4454         
4455         * dbus/dbus-string.[ch]:
4456         (_dbus_string_insert_bytes): rename from insert_byte and
4457         allow the insert of multiple bytes.
4458         (_dbus_string_test): test inserting multiple bytes.
4459
4460         * dbus/dbus-marshal.c: (_dbus_marshal_set_string): add
4461         warning note to docs about having to re-align any
4462         marshalled values following the string.
4463         
4464         * dbus/dbus-message-builder.c:
4465         (append_string_field), (_dbus_message_data_load):
4466         don't align the header field.
4467         
4468         * dbus/dbus-auth.c: (process_test_subdir): print the
4469         directory.
4470         
4471         * test/break-loader.c: (randomly_add_one_byte): upd. for
4472         insert_byte change.
4473         
4474         * test/data/invalid-messages/bad-header-field-alignment.message:
4475         new test case.
4476         
4477         * test/data/valid-messages/unknown-header-field.message: shove
4478         a dict in the unknown field.
4479
4480 2003-09-25  Seth Nickell  <seth@gnome.org>
4481
4482         * python/dbus.py:
4483         * python/dbus_bindings.pyx.in:
4484
4485         Handle return values.
4486         
4487         * python/examples/example-client.py:
4488         * python/examples/example-service.py:
4489
4490         Pass back return values from the service to the client.
4491         
4492 2003-09-24  Seth Nickell  <seth@gnome.org>
4493
4494         * python/dbus.py:
4495
4496         Connect Object methods (when you are sharing an object) up... pass
4497         in a list of methods to be shared. Sharing all the methods just
4498         worked out too weird. You can now create nice Services over the
4499         DBus in Python. :-)
4500         
4501         * python/dbus_bindings.pyx.in:
4502
4503         Keep references to user_data tuples passed into C functions so 
4504         Python doesn't garbage collect on us.
4505
4506         Implement MethodReturn and Error subclasses of Message for creating
4507         DBusMessage's of those types.
4508         
4509         * python/examples/example-client.py:
4510         * python/examples/example-service.py:
4511
4512         Simple example code showing both how create DBus services and objects,
4513         and how to use them.
4514
4515 2003-09-23  Havoc Pennington  <hp@pobox.com>
4516
4517         * glib/dbus-gproxy.c (dbus_gproxy_manager_filter): implement
4518
4519 2003-09-23  Havoc Pennington  <hp@redhat.com>
4520
4521         * glib/dbus-gproxy.c (dbus_gproxy_connect_signal): implement
4522         (dbus_gproxy_disconnect_signal): implement
4523         (dbus_gproxy_manager_remove_signal_match): implement
4524         (dbus_gproxy_manager_add_signal_match): implement
4525         (dbus_gproxy_oneway_call): implement
4526
4527 2003-09-23  Havoc Pennington  <hp@pobox.com>
4528
4529         * glib/dbus-gproxy.c (struct DBusGProxy): convert to a GObject
4530         subclass. This means dropping the transparent thread safety of the
4531         proxy; you now need a separate proxy per-thread, or your own
4532         locking on the proxy. Probably right anyway.
4533         (dbus_gproxy_ref, dbus_gproxy_unref): nuke, just use g_object_ref
4534
4535 2003-09-22  Havoc Pennington  <hp@redhat.com>
4536
4537         * glib/dbus-gproxy.c (dbus_gproxy_manager_get): implement
4538
4539 2003-09-21  Seth Nickell  <seth@gnome.org>
4540
4541         First checkin of the Python bindings.
4542         
4543         * python/.cvsignore:
4544         * python/Makefile.am:
4545         * python/dbus_bindings.pyx.in:
4546         * python/dbus_h_wrapper.h:
4547
4548         Pieces for Pyrex to operate on, building a dbus_bindings.so
4549         python module for low-level access to the DBus APIs.
4550         
4551         * python/dbus.py:
4552
4553         High-level Python module for accessing DBus objects.
4554
4555         * configure.in:
4556         * Makefile.am:
4557
4558         Build stuff for the python bindings.
4559
4560         * acinclude.m4:
4561
4562         Extra macro needed for finding the Python C header files.
4563
4564 2003-09-21  Havoc Pennington  <hp@pobox.com>
4565
4566         * glib/dbus-gproxy.c (dbus_gproxy_manager_new): start
4567         implementing the proxy manager, didn't get very far.
4568
4569         * dbus/dbus-bus.c (dbus_bus_add_match): new
4570         (dbus_bus_remove_match): new
4571
4572         * glib/dbus-gproxy.c (dbus_gproxy_new_for_service): add a
4573         path_name argument; adjust the other not-yet-implemented 
4574         gproxy constructors to be what I think they should be.
4575
4576 2003-09-21  Havoc Pennington  <hp@pobox.com>
4577
4578         * dbus/dbus-bus.c (dbus_bus_get): set exit_on_disconnect to TRUE
4579         by default for message bus connections.
4580
4581         * dbus/dbus-connection.c (dbus_connection_dispatch): exit if
4582         exit_on_disconnect flag is set and we process the disconnected
4583         signal.
4584         (dbus_connection_set_exit_on_disconnect): new function
4585
4586 2003-09-21  Havoc Pennington  <hp@pobox.com>
4587
4588         Get matching rules mostly working in the bus; only actually
4589         parsing the rule text remains. However, the client side of
4590         "signal connections" hasn't been started, this patch is only the
4591         bus side.
4592         
4593         * dbus/dispatch.c: fix for the matching rules changes
4594         
4595         * bus/driver.c (bus_driver_handle_remove_match)
4596         (bus_driver_handle_add_match): send an ack reply from these
4597         method calls
4598
4599         * glib/dbus-gproxy.c (dbus_gproxy_begin_call): fix order of
4600         arguments, reported by Seth Nickell
4601
4602         * bus/config-parser.c (append_rule_from_element): support
4603         eavesdrop=true|false attribute on policies so match rules 
4604         can be prevented from snooping on the system bus.
4605
4606         * bus/dbus-daemon-1.1.in: consistently use terminology "sender"
4607         and "destination" in attribute names; fix some docs bugs; 
4608         add eavesdrop=true|false attribute
4609
4610         * bus/driver.c (bus_driver_handle_add_match)
4611         (bus_driver_handle_remove_match): handle AddMatch, RemoveMatch
4612         messages
4613
4614         * dbus/dbus-protocol.h (DBUS_SERVICE_ORG_FREEDESKTOP_BROADCAST): get
4615         rid of broadcast service concept, signals are just always broadcast
4616
4617         * bus/signals.c, bus/dispatch.c, bus/connection.c, bus/bus.c:
4618         mostly implement matching rules stuff (currently only exposed as signal
4619         connections)
4620
4621 2003-09-21  Mark McLoughlin  <mark@skynet.ie>
4622
4623         * doc/dbus-specification.sgml: Change the header field name
4624         to be an enum and update the rest of the spec to reference
4625         the fields using the conventinal name.
4626
4627         * dbus/dbus-protocol.h: update to reflect the spec.
4628
4629         * doc/TODO: add item to remove the 4 byte alignment requirement.
4630         
4631         * dbus/dbus-message.c: Remove the code to generalise the
4632         header/body length and serial number header fields as named
4633         header fields so we can reference field names using the 
4634         protocol values.
4635         (append_int_field), (append_uint_field), (append_string_field):
4636         Append the field name as a byte rather than four chars.
4637         (delete_int_or_uint_field), (delete_string_field): reflect the
4638         fact that the field name and typecode now occupy 4 bytes instead
4639         of 8.
4640         (decode_string_field), (decode_header_data): update to reflect
4641         protocol changes and move the field specific encoding from
4642         decode_string_field() back into decode_header_data().
4643         
4644         * dbus/dbus-internals.[ch]: (_dbus_header_field_to_string):
4645         Add utility to aid debugging.
4646         
4647         * dbus/dbus-message-builder.c:
4648         (append_string_field), (_dbus_message_data_load): Update to
4649         reflect protocol changes; Change the FIELD_NAME directive
4650         to HEADER_FIELD and allow it to take the field's conventional
4651         name rather than the actual value.
4652         
4653         * test/data/*/*.message: Update to use HEADER_FIELD instead
4654         of FIELD_NAME; Always align the header on an 8 byte boundary
4655         *before* updating the header length.
4656
4657 2003-09-15  Havoc Pennington  <hp@pobox.com>
4658
4659         * dbus/dbus-pending-call.c: add the get/set object data
4660         boilerplate as for DBusConnection, etc. Use generic object data
4661         for the notify callback.
4662
4663         * glib/dbus-gparser.c (parse_node): parse child nodes
4664
4665         * tools/dbus-viewer.c: more hacking on the dbus-viewer
4666         
4667         * glib/dbus-gutils.c (_dbus_gutils_split_path): add a file to
4668         contain functions shared between the convenience lib and the
4669         installed lib
4670
4671         * glib/Makefile.am (libdbus_glib_1_la_LDFLAGS): add
4672         -export-symbols-regex to the GLib library
4673
4674         * dbus/dbus-object-tree.c (_dbus_object_tree_dispatch_and_unlock):
4675         fix the locking in here, and add a default handler for
4676         Introspect() that just returns sub-nodes.
4677
4678 2003-09-14  Havoc Pennington  <hp@pobox.com>
4679
4680         * glib/dbus-gthread.c (dbus_g_thread_init): rename to make g_foo
4681         rather than gfoo consistent
4682
4683         * glib/dbus-gproxy.h: delete for now, move contents to
4684         dbus-glib.h, because the include files don't work right since we
4685         aren't in the dbus/ subdir.
4686         
4687         * glib/dbus-gproxy.c (dbus_gproxy_send): finish implementing
4688         (dbus_gproxy_end_call): finish
4689         (dbus_gproxy_begin_call): finish
4690
4691         * glib/dbus-gmain.c (dbus_set_g_error): new
4692
4693         * glib/dbus-gobject.c (handle_introspect): include information
4694         about child nodes in the introspection
4695
4696         * dbus/dbus-connection.c (dbus_connection_list_registered): new
4697         function to help in implementation of introspection
4698
4699         * dbus/dbus-object-tree.c
4700         (_dbus_object_tree_list_registered_and_unlock): new function
4701
4702 2003-09-12  Havoc Pennington  <hp@pobox.com>
4703
4704         * glib/dbus-gidl.h: add common base class for all the foo_info
4705         types
4706
4707         * tools/dbus-viewer.c: add GTK-based introspection UI thingy
4708         similar to kdcop
4709
4710         * test/Makefile.am: try test srcdir -ef . in addition to test
4711         srcdir = ., one of them should work (yeah lame)
4712         
4713         * glib/Makefile.am: build the "idl" parser stuff as a convenience
4714         library
4715         
4716         * glib/dbus-gparser.h: make description_load routines return
4717         NodeInfo* not Parser*
4718
4719         * Makefile.am (SUBDIRS): build test dir after all library dirs
4720
4721         * configure.in: add GTK+ detection
4722
4723 2003-09-07  Havoc Pennington  <hp@pobox.com>
4724
4725         * Make Doxygen contented.
4726
4727 2003-09-07  Havoc Pennington  <hp@pobox.com>
4728
4729         * doc/dbus-specification.sgml: more updates
4730
4731 2003-09-06  Havoc Pennington  <hp@pobox.com>
4732
4733         * doc/dbus-specification.sgml: partial updates
4734
4735         * bus/dbus-daemon-1.1.in: fix the config file docs for the
4736         zillionth time; hopefully I edited the right file this time.
4737
4738         * bus/config-parser.c (append_rule_from_element): support
4739         send_type, send_path, receive_type, receive_path
4740
4741         * bus/policy.c: add message type and path to the list of things
4742         that can be "firewalled"
4743
4744 2003-09-06  Havoc Pennington  <hp@pobox.com>
4745
4746         * dbus/dbus-connection.c (dbus_connection_register_fallback): add this
4747         (dbus_connection_register_object_path): make this not handle
4748         messages to paths below the given path
4749
4750 2003-09-03  Havoc Pennington  <hp@pobox.com>
4751
4752         * test/glib/Makefile.am: add this with random glib-linked test
4753         programs
4754
4755         * glib/Makefile.am: remove the random test programs from here,
4756         leave only the unit tests
4757
4758         * glib/dbus-gobject.c (_dbus_gobject_test): add test for 
4759         uscore/javacaps conversion, and fix     
4760         (get_object_property, set_object_property): change to .NET
4761         convention for mapping props to methods, set_FooBar/get_FooBar, 
4762         since one language has such a convention we may as well copy it. 
4763         Plus real methods in either getFooBar or get_foo_bar style won't 
4764         collide with this convention.
4765
4766 2003-09-01  Havoc Pennington  <hp@pobox.com>
4767
4768         * glib/dbus-gparser.c: implement
4769
4770         * glib/dbus-gobject.c: start implementing skeletons support
4771
4772         * configure.in: when disabling checks/assert, also define
4773         G_DISABLE_ASSERT and G_DISABLE_CHECKS
4774
4775 2003-09-01  Havoc Pennington  <hp@pobox.com>
4776
4777         * glib/Makefile.am: rearrange a bunch of files and get "make
4778         check" framework set up
4779
4780 2003-08-31  Havoc Pennington  <hp@pobox.com>
4781
4782         * fix build with --disable-tests
4783
4784 2003-08-30  Havoc Pennington  <hp@pobox.com>
4785
4786         * dbus/dbus-connection.c: purge DBusMessageHandler
4787
4788         * dbus/dbus-message-handler.c: remove DBusMessageHandler, just 
4789         use callbacks everywhere
4790
4791 2003-08-30  Havoc Pennington  <hp@pobox.com>
4792
4793         * test/data/valid-config-files/system.d/test.conf: change to 
4794         root for the user so warnings don't get printed
4795
4796         * dbus/dbus-message.c: add dbus_message_get_path,
4797         dbus_message_set_path
4798         
4799         * dbus/dbus-object-tree.c (do_test_dispatch): add test of
4800         dispatching to a path
4801
4802         * dbus/dbus-string.c (_dbus_string_validate_path): add
4803
4804         * dbus/dbus-marshal.c (_dbus_demarshal_object_path): implement
4805         (_dbus_marshal_object_path): implement
4806
4807         * dbus/dbus-protocol.h (DBUS_HEADER_FIELD_PATH): new header field 
4808         to contain the path to the target object
4809         (DBUS_HEADER_FIELD_SENDER_SERVICE): rename
4810         DBUS_HEADER_FIELD_SENDER to explicitly say it's the sender service
4811
4812 2003-08-30  Havoc Pennington  <hp@pobox.com>
4813
4814         * dbus/dbus-object-tree.c: write tests and fix the discovered bugs
4815
4816 2003-08-29  Havoc Pennington  <hp@pobox.com>
4817
4818         * dbus/dbus-object-tree.c: modify to allow overlapping paths to be
4819         registered
4820         (struct DBusObjectSubtree): shrink this
4821         a lot, since we may have a lot of them
4822         (_dbus_object_tree_free_all_unlocked): implement
4823         (_dbus_object_tree_dispatch_and_unlock): implement
4824
4825 2003-08-29  Havoc Pennington  <hp@pobox.com>
4826
4827         * dbus/dbus-internals.h: fix _DBUS_N_GLOBAL_LOCKS
4828
4829 2003-08-28  Havoc Pennington  <hp@pobox.com>
4830
4831         purge DBusObjectID
4832         
4833         * dbus/dbus-connection.c: port to no ObjectID, create a
4834         DBusObjectTree, rename ObjectTree to ObjectPath in public API
4835
4836         * dbus/dbus-connection.h (struct DBusObjectTreeVTable): delete 
4837         everything except UnregisterFunction and MessageFunction
4838         
4839         * dbus/dbus-marshal.c: port away from DBusObjectID, 
4840         add DBUS_TYPE_OBJECT_PATH
4841         
4842         * dbus/dbus-object-registry.[hc], dbus/dbus-object.[hc], 
4843         dbus/dbus-objectid.[hc]: remove these, we are moving to 
4844         path-based object IDs
4845
4846 2003-08-25  Havoc Pennington  <hp@pobox.com>
4847
4848         Just noticed that dbus_message_test is hosed, I wonder when I
4849         broke that. I thought make check was passing earlier...
4850         
4851         * dbus/dbus-object-tree.c: add new "object tree" to match DCOP 
4852         container tree, will replace most of dbus-object-registry
4853
4854         * dbus/dbus-string.c (_dbus_string_append_printf_valist): fix C99
4855         screwup
4856
4857 2003-08-19  Havoc Pennington  <hp@pobox.com>
4858
4859         * dbus/dbus-message.c (decode_string_field): support FIELD_SENDER
4860         (dbus_message_is_error): fix this function
4861
4862         * bus/dbus-daemon-1.1: clarify logic on when <deny>/<allow> rules
4863         match
4864
4865         * bus/policy.c (bus_client_policy_check_can_receive): fix code to
4866         reflect clarified man page
4867         (bus_client_policy_check_can_send): ditto
4868         
4869         * bus/session.conf.in: fixup
4870
4871         * bus/system.conf.in: fixup
4872
4873 2003-08-18  Havoc Pennington  <hp@redhat.com>
4874
4875         * dbus/dbus-hash.c (_dbus_hash_table_insert_two_strings): fix
4876
4877         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
4878         dumb bug created earlier (wrong order of args to
4879         decode_header_data())
4880         
4881         * tools/dbus-send.c: port
4882
4883         * tools/dbus-print-message.c (print_message): port
4884
4885         * test/data/*messages: port all messages over
4886         
4887         * dbus/dbus-message-builder.c: support including 
4888         message type
4889         
4890         * bus/driver.c: port over
4891         
4892         * bus/dispatch.c: port over to new stuff
4893
4894         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
4895         rename disconnect signal to "Disconnected"
4896
4897 2003-08-17  Havoc Pennington  <hp@pobox.com>
4898
4899         This doesn't compile yet, but syncing up so I can hack on it from
4900         work. What are branches for if not broken code? ;-)
4901         
4902         * dbus/dbus-protocol.h: remove DBUS_HEADER_FIELD_NAME, add
4903         DBUS_HEADER_FIELD_INTERFACE, DBUS_HEADER_FIELD_MEMBER,
4904         DBUS_HEADER_FIELD_ERROR_NAME
4905         
4906         * dbus/dbus-hash.c: Introduce DBUS_HASH_TWO_STRINGS as hack to use
4907         for the interface+member pairs
4908         (string_hash): change to use g_str_hash algorithm
4909         (find_direct_function, find_string_function): refactor these to
4910         share most code.
4911         
4912         * dbus/dbus-message.c: port all of this over to support 
4913         interface/member fields instead of name field
4914
4915         * dbus/dbus-object-registry.c: port over
4916         
4917         * dbus/dbus-string.c (_dbus_string_validate_interface): rename
4918         from _dbus_string_validate_name
4919
4920         * bus/dbus-daemon-1.1: change file format for the 
4921         <deny>/<allow> stuff to match new message naming scheme
4922
4923         * bus/policy.c: port over
4924
4925         * bus/config-parser.c: parse new format
4926         
4927 2003-08-16  Havoc Pennington  <hp@pobox.com>
4928
4929         * dbus/dbus-object-registry.c (add_and_remove_objects): remove
4930         broken assertion
4931
4932         * glib/dbus-gproxy.c: some hacking
4933
4934 2003-08-15  Havoc Pennington  <hp@redhat.com>
4935
4936         * dbus/dbus-pending-call.c (dbus_pending_call_block): implement
4937
4938         * dbus/dbus-connection.c
4939         (dbus_connection_send_with_reply_and_block): factor out internals;
4940         change to convert any error replies to DBusError instead of 
4941         returning them as a message
4942
4943 2003-08-15  Havoc Pennington  <hp@pobox.com>
4944
4945         * dbus/dbus-connection.c, 
4946         dbus/dbus-pending-call.c: Finish the pending call stuff
4947
4948 2003-08-14  Havoc Pennington  <hp@redhat.com>
4949
4950         * dbus/dbus-pending-call.c: start on new object that will replace
4951         DBusMessageHandler and ReplyHandlerData for tracking outstanding
4952         replies
4953
4954         * dbus/dbus-gproxy.c: start on proxy object used to communicate
4955         with remote interfaces
4956
4957         * dbus/dbus-gidl.c: do the boring boilerplate in here
4958         
4959 2003-08-12  Havoc Pennington  <hp@pobox.com>
4960
4961         * bus/dispatch.c (bus_dispatch): make this return proper 
4962         DBusHandlerResult to avoid DBUS_ERROR_UNKNOWN_METHOD
4963
4964         * dbus/dbus-errors.c (dbus_set_error): use
4965         _dbus_string_append_printf_valist
4966
4967         * dbus/dbus-string.c (_dbus_string_append_printf_valist)
4968         (_dbus_string_append_printf): new
4969
4970         * dbus/dbus-errors.h (DBUS_ERROR_UNKNOWN_MESSAGE): change to
4971         UNKNOWN_METHOD
4972
4973         * dbus/dbus-connection.c (dbus_connection_dispatch): handle
4974         DBUS_HANDLER_RESULT_NEED_MEMORY; send default error reply if a
4975         message is unhandled.
4976
4977 2003-08-11  Havoc Pennington  <hp@pobox.com>
4978
4979         * bus/test.c (client_disconnect_handler): change to return
4980         HANDLED (would have been REMOVE_MESSAGE)
4981
4982         * dbus/dbus-object.h (enum DBusHandlerResult): rename to
4983         HANDLED/NOT_YET_HANDLED instead of
4984         REMOVE_MESSAGE/ALLOW_MORE_HANDLERS to make it clearer how it 
4985         should be used.
4986
4987 2003-08-10  Havoc Pennington  <hp@pobox.com>
4988
4989         * tools/dbus-send.c (main): add --type argument, for now
4990         supporting only method_call and signal types.
4991
4992         * tools/dbus-print-message.c: print message type
4993
4994         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
4995         init connection->objects
4996
4997         * doc/dbus-specification.sgml: fix sgml
4998
4999         * bus/*.c: port over to object-instance API changes
5000
5001         * test/test-service.c: ditto
5002         
5003         * dbus/dbus-message.c (dbus_message_create_header): allow #NULL
5004         name, we will have to fix up the rest of the code to also handle
5005         this
5006         (dbus_message_new): generic message-creation call
5007         (set_string_field): allow appending name field
5008
5009 2003-08-06  Havoc Pennington  <hp@pobox.com>
5010
5011         * dbus/dbus-object-registry.c: implement signal connection 
5012         and dispatch
5013
5014         * dbus/dbus-connection.c (_dbus_connection_unref_unlocked): new
5015
5016         * dbus/dbus-internals.c (_dbus_memdup): new function
5017
5018 2003-08-02  Havoc Pennington  <hp@pobox.com>
5019
5020         * dbus/dbus-message.c (dbus_message_get_no_reply)
5021         (dbus_message_set_no_reply): add these and remove
5022         set_is_error/get_is_error
5023
5024         * dbus/dbus-protocol.h, doc/dbus-specification.sgml: 
5025         remove the ERROR flag, since there's now an ERROR type
5026
5027 2003-08-01  Havoc Pennington  <hp@pobox.com>
5028
5029         * dbus/dbus-object-registry.c (_dbus_object_registry_handle_and_unlock):
5030         implement
5031
5032         * dbus/dbus-message.c (dbus_message_get_type): new function
5033
5034         * doc/dbus-specification.sgml: add "type" byte to messages
5035
5036 2003-08-01  Havoc Pennington  <hp@pobox.com>
5037
5038         * dbus/dbus-protocol.h (DBUS_MESSAGE_TYPE_*): introduce
5039         a message type enum to distinguish kinds of message
5040         (DBUS_HEADER_FLAG_NO_REPLY_EXPECTED): flag for a message 
5041         that need not be replied to
5042
5043 2003-08-01  Havoc Pennington  <hp@pobox.com>
5044
5045         * dbus/dbus-marshal.c: adapt to DBusObjectID changes
5046         (unpack_8_octets): fix no-64-bit-int bug
5047
5048         * dbus/dbus-object-registry.c (validate_id): validate the 
5049         connection ID bits, not just the instance ID.
5050
5051         * dbus/dbus-connection.c (_dbus_connection_init_id): initialize
5052         the connection-global 33 bits of the object ID
5053
5054         * dbus/dbus-object-registry.c (info_from_entry): fill in 
5055         object ID in the new way
5056
5057         * dbus/dbus-objectid.h: rather than high/low bits, specifically 
5058         define server/client/instance bits.
5059
5060 2003-07-30  Havoc Pennington  <hp@pobox.com>
5061
5062         * dbus/dbus-connection.c (dbus_connection_register_object): fix
5063         build
5064
5065 2003-07-13  Havoc Pennington  <hp@pobox.com>
5066
5067         * dbus/dbus-object.h (struct DBusObjectVTable): add padding
5068         fields to DBusObjectVTable and DBusObjectInfo
5069
5070 2003-07-12  Havoc Pennington  <hp@pobox.com>
5071
5072         * dbus/dbus-object-registry.c: implement unit test,
5073         fix bugs discovered in process
5074
5075         * dbus/dbus-connection.c: remove handler_table and
5076         register_handler(), add DBusObjectRegistry usage
5077
5078         * dbus/dbus-objectid.c (dbus_object_id_is_null)
5079         (dbus_object_id_set_null): new functions
5080
5081 2003-07-08  Havoc Pennington  <hp@pobox.com>
5082
5083         * dbus/dbus-object.c: implement some of this
5084
5085         * dbus/dbus-object-registry.c
5086         (_dbus_object_registry_add_and_unlock): fill in the object_id out
5087         param
5088         (_dbus_object_registry_new): handle OOM
5089
5090 2003-07-08  Havoc Pennington  <hp@pobox.com>
5091
5092         * dbus/dbus-object.h: sketch out an API for registering objects
5093         with a connection, that allows us to use as little as 24 bytes
5094         per object and lets application code represent an object in 
5095         any conceivable way.
5096
5097         * dbus/dbus-object-registry.c: implement the hard bits of the
5098         DBusConnection aspect of object API. Not yet wired up.
5099         
5100 2003-07-06  Havoc Pennington  <hp@pobox.com>
5101
5102         * dbus/dbus-marshal.c (_dbus_marshal_set_object_id): new function
5103         (_dbus_marshal_object_id): new
5104         (_dbus_demarshal_object_id): new
5105         (_dbus_marshal_get_arg_end_pos): support object ID type, and
5106         consolidate identical switch cases. Don't conditionalize handling
5107         of DBUS_TYPE_UINT64, need to handle the type always.
5108         (_dbus_marshal_validate_arg): consolidate identical cases, and
5109         handle DBUS_TYPE_OBJECT_ID
5110
5111         * dbus/dbus-objectid.c: new file with DBusObjectID data type.
5112
5113         * dbus/dbus-protocol.h: add DBUS_TYPE_OBJECT_ID
5114
5115 2003-09-28  Havoc Pennington  <hp@pobox.com>
5116
5117         * real 0.13 release
5118
5119 2003-09-28  Havoc Pennington  <hp@pobox.com>
5120
5121         * doc/Makefile.am (dbus-specification.html): testing a funky hack
5122         to work with Debian db2html
5123
5124 2003-09-28  Havoc Pennington  <hp@pobox.com>
5125
5126         * configure.in: 0.13
5127
5128         * doc/Makefile.am (dbus-test-plan.html): accept nonexistence of
5129         stylesheet-images for benefit of Debian
5130         
5131         Change back to using filesystem-linked sockets for the system
5132         bus, so only root can create the default system bus address.
5133         
5134         * bus/system.conf.in: change to use
5135         DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
5136
5137         * dbus/Makefile.am (INCLUDES): remove DBUS_SYSTEM_BUS_PATH define
5138         from here.
5139
5140         * configure.in: define DBUS_SYSTEM_BUS_DEFAULT_ADDRESS
5141         here, and AC_DEFINE DBUS_SYSTEM_PATH
5142
5143 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
5144
5145         * doc/TODO:
5146         * doc/busconfig.dtd:
5147         Add busconfig DTD.
5148         
5149 2003-08-09  Anders Carlsson  <andersca@codefactory.se>
5150
5151         * doc/dbus-specification.sgml:
5152         Add activation reply values.
5153         
5154 2003-08-05  Havoc Pennington  <hp@redhat.com>
5155
5156         * configure.in: 0.12
5157
5158 2003-08-05  Anders Carlsson  <andersca@codefactory.se>
5159
5160         * glib/dbus-gmain.c: (watch_fd_new), (watch_fd_ref),
5161         (watch_fd_unref), (dbus_gsource_check), (dbus_gsource_dispatch),
5162         (add_watch), (remove_watch), (create_source):
5163         Refcount fds, fixes some reentrancy issues.
5164         
5165 2003-07-30  Havoc Pennington  <hp@redhat.com>
5166
5167         * dbus/dbus-bus.c (init_connections_unlocked): fix default system
5168         bus address to be abstract if we have abstract sockets
5169
5170         * NEWS: update
5171
5172 2003-07-28  Havoc Pennington  <hp@redhat.com>
5173
5174         * bus/messagebus.in: fix to avoid processname/servicename 
5175         confusion, from Michael Kearey
5176         https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=100965
5177         
5178 2003-07-23  Havoc Pennington  <hp@pobox.com>
5179
5180         * dbus/dbus-message.c (dbus_message_iter_get_named): 
5181         fix from Andy Hanton to remove broken "+1"
5182
5183 2003-07-16  Havoc Pennington  <hp@pobox.com>
5184
5185         * tools/dbus-launch.c (babysit): close stdout/stderr in the
5186         babysitter process, as suggested by Thomas Leonard, so 
5187         an "eval `dbus-launch --exit-with-session`" will actually 
5188         return
5189
5190 2003-07-16  Havoc Pennington  <hp@pobox.com>
5191
5192         * configure.in: print out EXPANDED_* variables in the summary at
5193         the end; clean up the code that computes EXPANDED_ variables and
5194         get the ones using exec_prefix right. Should make things work
5195         when you build without --prefix
5196
5197 2003-06-29  Havoc Pennington  <hp@pobox.com>
5198
5199         * mono/Test.cs (class Test): fire up a main loop and run it
5200
5201         * mono/DBus.cs (DBus): don't g_thread_init since it can only be
5202         done once, the app has to do it
5203
5204 2003-06-26  Havoc Pennington  <hp@pobox.com>
5205
5206         * mono/Connection.cs: set up connection with the glib main loop
5207
5208 2003-07-01  Havoc Pennington  <hp@redhat.com>
5209
5210         * doc/dbus-specification.sgml: clarify the format of a type code,
5211         change suggested by Jim Blandy
5212
5213 2003-06-29  Miloslav Trmac  <mitr@volny.cz>
5214
5215         * doc/Makefile.am:
5216         * tools/Makefile.am: Don't assume srcdir == builddir.
5217
5218         * dbus/dbus-memory.c (dbus_realloc): Don't check guards after shrinking
5219         the allocated block.
5220         (_dbus_memory_test): New function.
5221         * dbus/dbus-test.h: Add _dbus_memory_test ().
5222         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): Call it.
5223
5224         * dbus/dbus-message.c (decode_header_data): Use %.4s instead
5225         of %c%c%c%c.
5226         (dbus_message_new): Remove obsolete @todo.
5227
5228         * dbus/dbus-marshal.c (_dbus_marshal_set_int64)
5229         (_dbus_marshal_set_uint64): Fix comment.
5230
5231         * dbus/dbus-message.c (append_int_field, append_uint_field): Don't
5232         hardcode FIELD_REPLY_SERIAL.
5233
5234         * dbus/dbus-mainloop.c (_dbus_loop_remove_watch)
5235         (_dbus_loop_remove_timeout): Cast function pointers to (void *) for %p
5236
5237         * configure.in: Add -D_POSIX_C_SOURCE=199309L -DBSD_SOURCE to CFLAGS
5238         and disable DBUS_USE_ATOMIC_INT_486 when --enable-ansi is used
5239
5240 2003-06-24  Havoc Pennington  <hp@pobox.com>
5241
5242         * mono/*.cs: Use IntPtr.Zero instead of ((IntPtr) 0)
5243
5244 2003-06-23  Anders Carlsson  <andersca@codefactory.se>
5245
5246         * configure.in:
5247         * gcj/.cvsignore:
5248         * gcj/Hello.java:
5249         * gcj/Makefile.am:
5250         * gcj/TestMessage.java: (TestMessage), (TestMessage.main):
5251         * gcj/org/.cvsignore:
5252         * gcj/org/Makefile.am:
5253         * gcj/org/freedesktop/.cvsignore:
5254         * gcj/org/freedesktop/Makefile.am:
5255         * gcj/org/freedesktop/dbus/.cvsignore:
5256         * gcj/org/freedesktop/dbus/Makefile.am:
5257         * gcj/org/freedesktop/dbus/Message.java: (Message),
5258         (Message.Message):
5259         * gcj/org/freedesktop/dbus/natMessage.cc:
5260         Fix the build system.
5261
5262 2003-06-22  Havoc Pennington  <hp@pobox.com>
5263
5264         * mono/Connection.cs: add more bindings
5265
5266         * dbus/dbus-threads.c (dbus_threads_init): allow calling this
5267         more than once.
5268
5269 2003-06-22  Havoc Pennington  <hp@pobox.com>
5270
5271         * mono/Connection.cs, mono/DBus.cs, mono/Error.cs:
5272         Start wrapping more stuff.
5273
5274 2003-06-22  Havoc Pennington  <hp@pobox.com>
5275
5276         * mono/Message.cs: implement Message.Wrap() that ensures we only
5277         have a single C# wrapper per DBusMessage, assuming it works which
5278         it probably doesn't.
5279
5280         * dbus/dbus-message.c (dbus_message_allocate_data_slot): new
5281         (dbus_message_free_data_slot): new
5282         (dbus_message_set_data): new
5283         (dbus_message_get_data): new
5284
5285 2003-06-22  Havoc Pennington  <hp@pobox.com>
5286
5287         * dbus/dbus-dataslot.c (_dbus_data_slot_allocator_unref)
5288         (_dbus_data_slot_allocator_alloc): rework these to keep a
5289         reference count on each slot and automatically manage a global
5290         slot ID variable passed in by address
5291
5292         * bus/bus.c: convert to new dataslot API
5293
5294         * dbus/dbus-bus.c: convert to new dataslot API
5295
5296         * dbus/dbus-connection.c: convert to new dataslot API
5297
5298         * dbus/dbus-server.c: convert to new dataslot API
5299
5300         * glib/dbus-gmain.c: ditto
5301
5302         * bus/test.c: ditto
5303
5304         * bus/connection.c: ditto
5305
5306 2003-06-22  Anders Carlsson  <andersca@codefactory.se>
5307
5308         * configure.in: Add AM_PROG_GCJ and move AM_PROG_LIBTOOL
5309         after the gcj checks so that the correct configuration tags
5310         will be added to libtool.
5311
5312         * dbus-glib-1.pc.in: No need to specify any includes since
5313         dbus-1.pc.in has those.
5314
5315 2003-06-22  Havoc Pennington  <hp@pobox.com>
5316
5317         * mono/*, gcj/*, configure.in, Makefile.am:
5318         Check in makefiles and subdirs for mono and gcj bindings.
5319         Neither binding actually exists, just trying to get through
5320         all the build and other boring bits.
5321
5322 2003-06-21  Philip Blundell  <philb@gnu.org>
5323
5324         * tools/dbus-monitor.1: Updated.
5325
5326         * tools/dbus-send.1: Likewise.
5327
5328 2003-06-20  Anders Carlsson  <andersca@codefactory.se>
5329
5330         * dbus/dbus-transport-unix.c (unix_handle_watch): Check
5331         for hangup and error after checking read so we won't discard
5332         pending data if both hangup and read are set.
5333
5334 2003-06-19  Philip Blundell  <philb@gnu.org>
5335
5336         * tools/dbus-print-message.c (print_message): Handle BOOLEAN.
5337
5338         * tools/dbus-send.c: Accept both --system and --session.
5339
5340         * tools/dbus-monitor.c: Same here.
5341
5342 2003-06-19  Anders Carlsson  <andersca@codefactory.se>
5343
5344         * glib/dbus-glib.h: Fix so that dbus-glib.h can be used
5345         from C++ (Patch by Miloslav Trmac).
5346
5347 2003-06-15  Joe Shaw  <joe@assbarn.com>
5348
5349         * configure.in: Check for socklen_t.
5350
5351         * dbus/dbus-sysdeps.c: Define socklen_t if it's not defined.
5352
5353         * test/test-segfault.c: Add #include <sys/time.h>
5354
5355         * tools/Makefile.am: Add DBUS_X_CFLAGS to the INCLUDES since
5356         dbus-launch needs it.
5357
5358 2003-06-09  Havoc Pennington  <hp@redhat.com>
5359
5360         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): don't use
5361         SUN_LEN, it breaks abstract socket usage
5362
5363         * dbus/dbus-internals.c (_dbus_verbose_real): only print PID at
5364         starts of lines.
5365
5366 2003-06-04  Havoc Pennington  <hp@pobox.com>
5367
5368         * dbus/dbus-server.c (dbus_server_listen): allow abstract sockets
5369         using unix:abstract=/foo, and when listening in a tmpdir
5370         i.e. unix:tmpdir=/tmp, always use abstract sockets if we can.
5371
5372         * dbus/dbus-transport.c (_dbus_transport_open): support
5373         unix:abstract=/foo
5374
5375         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
5376         support abstract sockets
5377
5378         * dbus/dbus-transport-unix.c
5379         (_dbus_transport_new_for_domain_socket): support abstract sockets
5380
5381         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket): add "abstract"
5382         toggle as an argument, implement abstract namespace support
5383         (_dbus_listen_unix_socket): ditto
5384
5385         * configure.in: add --enable-abstract-sockets and implement
5386         a configure check for autodetection of the right value.
5387
5388 2003-06-01  Havoc Pennington  <hp@pobox.com>
5389
5390         * tools/dbus-cleanup-sockets.c: add utility to clean up sockets
5391         in /tmp (though on Linux this will end up being useless,
5392         when we add abstract namespace support)
5393
5394         * configure.in: define DBUS_SESSION_SOCKET_DIR in addition to
5395         subst'ing it
5396
5397 2003-05-28  Colin Walters  <walters@verbum.org>
5398
5399         * tools/dbus-monitor.c (main): Fix silly typo (s/--session/--system/).
5400
5401 2003-05-18  Anders Carlsson  <andersca@codefactory.se>
5402
5403         * dbus/dbus-message.c (dbus_message_new): Remove @todo.
5404
5405 2003-05-17  Colin Walters  <walters@gnu.org>
5406
5407         * tools/dbus-send.c: Don't exit with an error code if --help was
5408         passed.  Default to using the session bus instead of the system
5409         one.
5410
5411         * tools/dbus-launch.c: Ditto.
5412
5413         * tools/dbus-monitor.c: Ditto.
5414
5415         * tools/dbus-send.1: Update with new arguments.
5416
5417         * tools/dbus-launch.c: Emit code to export variables.  New
5418         arguments -s and -c to specify shell syntax, and a bit of code to
5419         autodetect syntax.  Also, allow specifying a program to run.
5420
5421         * tools/dbus-launch.1: Update with new arguments.
5422
5423         * tools/dbus-send.1: Ditto.
5424
5425         * tools/dbus-monitor.1: Ditto.
5426
5427 2003-05-17  Havoc Pennington  <hp@pobox.com>
5428
5429         * bus/config-parser.c (merge_included): merge in policies from
5430         child configuration file.
5431
5432         * bus/policy.c (bus_policy_merge): function to merge two policies
5433         together
5434
5435 2003-05-16  Havoc Pennington  <hp@redhat.com>
5436
5437         * dbus/dbus-connection.c: disable verbose lock spew
5438
5439         * tools/dbus-send.c: add --print-reply command line option
5440
5441         * tools/dbus-print-message.h (print_message): new util function
5442         shared by dbus-send and dbus-monitor
5443
5444         * tools/dbus-monitor.c (handler_func): exit on disconnect
5445
5446         * dbus/dbus-transport-unix.c (do_reading): if the transport is
5447         disconnected, don't try to use the read_watch
5448
5449         * dbus/dbus-watch.c (dbus_watch_get_enabled): assert watch != NULL
5450         so we can find this bug more easily
5451
5452 2003-05-16  Havoc Pennington  <hp@redhat.com>
5453
5454         * bus/policy.c (free_rule_list_func): avoid a crash when passed
5455         NULL as DBusHashTable is annoyingly likely to do.
5456
5457 2003-05-16  Colin Walters  <walters@verbum.org>
5458
5459         * tools/dbus-monitor.c: Add --session argument and usage()
5460         function.
5461
5462         * tools/dbus-monitor.1: Update with new --session arg.
5463
5464         * bus/Makefile.am (install-data-hook): Create
5465         $(libdir)/dbus-1.0/services so that the session bus is happy.
5466
5467 2003-05-15  Havoc Pennington  <hp@redhat.com>
5468
5469         * dbus/dbus-sysdeps.c (_dbus_atomic_dec, _dbus_atomic_inc): work
5470         on non-x86. ifdef's are evil.
5471
5472 2003-05-15  Havoc Pennington  <hp@redhat.com>
5473
5474         * configure.in: 0.11
5475
5476         * NEWS: update
5477
5478         * bus/Makefile.am (initddir): apparently we are supposed to put
5479         init scripts in /etc/rc.d/init.d not /etc/init.d
5480
5481         * bus/Makefile.am: remove the "you must --enable-tests to make
5482         check" as it broke distcheck
5483
5484         * bus/Makefile.am (install-data-hook): create /etc/dbus-1/system.d
5485
5486 2003-05-13  James Willcox  <jwillcox@gnome.org>
5487
5488         * configure.in:
5489         * bus/activation.c: (bus_activation_service_created),
5490         (bus_activation_activate_service):
5491         * bus/driver.c: (bus_driver_send_service_deleted),
5492         (bus_driver_send_service_created), (bus_driver_send_service_lost),
5493         (bus_driver_send_service_acquired),
5494         (bus_driver_send_welcome_message),
5495         (bus_driver_handle_list_services):
5496         * bus/session.conf.in:
5497         * dbus/dbus-bus.c: (dbus_bus_acquire_service),
5498         (dbus_bus_service_exists), (dbus_bus_activate_service):
5499         * dbus/dbus-bus.h:
5500
5501         Add some convenience API which lets you activate a service, and did a
5502         bunch of s/0/DBUS_TYPE_INVALID/ in calls to dbus_message_append_args()
5503         and dbus_message_get_args()
5504
5505 2003-05-11  Havoc Pennington  <hp@pobox.com>
5506
5507         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix to avoid
5508         calling _dbus_marshal_validate_arg() for every byte in a byte
5509         array, etc.
5510
5511         * dbus/dbus-message-handler.c: use atomic reference counting to
5512         reduce number of locks slightly; the global lock in here sucks
5513
5514         * dbus/dbus-connection.c
5515         (_dbus_connection_update_dispatch_status_and_unlock): variant of
5516         update_dispatch_status that can be called with lock held; then use
5517         in a couple places to reduce locking/unlocking
5518         (dbus_connection_send): hold the lock over the whole function
5519         instead of acquiring it twice.
5520
5521         * dbus/dbus-timeout.c (_dbus_timeout_new): handle OOM
5522
5523         * bus/connection.c (bus_connections_setup_connection): fix access
5524         to already-freed memory.
5525
5526         * dbus/dbus-connection.c: keep a little cache of linked list
5527         nodes, to avoid using the global linked list alloc lock in the
5528         normal send-message case. Instead we just use the connection lock
5529         that we already have to take.
5530
5531         * dbus/dbus-list.c (_dbus_list_find_last): new function
5532
5533         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec):
5534         change to use a struct for the atomic type; fix docs,
5535         they return value before increment, not after increment.
5536
5537         * dbus/dbus-string.c (_dbus_string_append_4_aligned)
5538         (_dbus_string_append_8_aligned): new functions to try to
5539         microoptimize this operation.
5540         (reallocate_for_length): break this out of set_length(), to
5541         improve profile info, and also so we can consider inlining the
5542         set_length() part.
5543
5544         * dbus/dbus-message.c (dbus_message_new_empty_header): init data
5545         strings with some preallocation, cuts down on our calls to realloc
5546         a fair bit. Though if we can get the "move entire string to empty
5547         string" optimization below to kick in here, it would be better.
5548
5549         * dbus/dbus-string.c (_dbus_string_move): just call
5550         _dbus_string_move_len
5551         (_dbus_string_move_len): add a special case for moving
5552         an entire string into an empty string; we can just
5553         swap the string data instead of doing any reallocs.
5554         (_dbus_string_init_preallocated): new function
5555
5556 2003-05-11  Havoc Pennington  <hp@pobox.com>
5557
5558         Write a "test-profile" that does echo client-server with threads;
5559         profile reveals lock contention, memcpy/realloc of buffers, and
5560         UTF-8 validation as hot spots. 20% of lock contention eliminated
5561         with dbus_atomic_inc/dec implementation on x86.  Much remaining
5562         contention is global mempool locks for GList and DBusList.
5563
5564         * dbus/dbus-sysdeps.c (_dbus_atomic_inc, _dbus_atomic_dec): add
5565         x86 implementation
5566
5567         * dbus/dbus-connection.c (struct DBusConnection): use
5568         dbus_atomic_t for the reference count
5569
5570         * dbus/dbus-message.c (struct DBusMessage): declare
5571         dbus_atomic_t values as volatile
5572
5573         * configure.in: code to detect ability to use atomic integer
5574         operations in assembly, from GLib patch
5575
5576         * dbus/dbus-internals.c (_dbus_verbose_real): call getpid every
5577         time, tired of it being wrong in threads and forked processes
5578
5579         * glib/test-profile.c: a little program to bounce messages back
5580         and forth between threads and eat CPU
5581
5582         * dbus/dbus-connection.c: add debug spew macros for debugging
5583         thread locks; include config.h at top; fix deadlock in
5584         dbus_connection_flush()
5585
5586 2003-05-08  Havoc Pennington  <hp@pobox.com>
5587
5588         * dbus/dbus-spawn.c: s/_exit/exit/ because it was keeping gcov
5589         data from getting written, and there wasn't a good reason to
5590         use _exit really.
5591
5592         * test/decode-gcov.c (mark_inside_dbus_build_tests): don't count
5593         dbus_verbose lines in test coverage
5594         (main): add list of functions sorted by # of untested blocks
5595         to the coverage report
5596
5597         * dbus/dbus-mempool.c: put some test-only code in DBUS_BUILD_TESTS
5598
5599         * dbus/dbus-marshal.c (_dbus_marshal_test): extend test coverage
5600
5601         * dbus/dbus-message-handler.c (_dbus_message_handler_test):
5602         extend test coverage
5603
5604         * test/data/auth/cancel.auth-script: test canceling an
5605         authentication
5606
5607         * dbus/Makefile.am: remove dbus-server-debug.[hc] for now, as they
5608         aren't used. in CVS history if we end up needing them.
5609
5610 2003-05-04  Havoc Pennington  <hp@pobox.com>
5611
5612         * dbus/dbus-message-handler.c (_dbus_message_handler_test): add
5613         unit test
5614
5615         * dbus/dbus-marshal.c (_dbus_demarshal_string_array): fix this
5616         function, which assumed length was in # of strings, not bytes
5617
5618         * dbus/dbus-message.c (_dbus_message_test): add tests for some
5619         missing coverage
5620
5621         * dbus/dbus-connection.c
5622         (_dbus_connection_queue_received_message): disable function for
5623         now, we are only using it in test mode
5624
5625         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
5626         remove a mistaken FIXME
5627
5628 2003-05-04  Havoc Pennington  <hp@pobox.com>
5629
5630         * dbus/dbus-connection.c (dbus_connection_preallocate_send):
5631         unlock mutex on successful return, patch from Anders Gustafsson
5632
5633 2003-05-04  Havoc Pennington  <hp@pobox.com>
5634
5635         * dbus-glib-1.pc.in (Requires): fix dependencies, from
5636         Anders Gustafsson
5637
5638 2003-05-04  Havoc Pennington  <hp@pobox.com>
5639
5640         * tools/dbus-launch.c: implement
5641
5642         * bus/main.c (main), bus/bus.c (bus_context_new):
5643         implement --print-pid and --fork
5644
5645 2003-05-03  Havoc Pennington  <hp@redhat.com>
5646
5647         * dbus/dbus-address.c (dbus_parse_address): fix bug when a key in
5648         the address had no value, and add to test suite. Fix and
5649         regression test from Miloslav Trmac
5650
5651 2003-05-03  Havoc Pennington  <hp@pobox.com>
5652
5653         * dbus/dbus-watch.c (dbus_watch_handle): warn and return if a
5654         watch is invalid when handled
5655
5656         * tools/Makefile.am, tools/dbus-launch.c, tools/dbus-launch.1: add
5657         dbus-launch utility to launch the bus from a shell script.  Didn't
5658         actually implement dbus-launch yet, it's just a placeholder still.
5659
5660 2003-05-03  Havoc Pennington  <hp@pobox.com>
5661
5662         * bus/Makefile.am, bus/dbus-daemon-1.1.in: man page for the
5663         daemon; also documents daemon config file, so replaces
5664         doc/config-file.txt. Corrected some stuff from config-file.txt in
5665         the process of moving it.
5666
5667 2003-05-03  Havoc Pennington  <hp@pobox.com>
5668
5669         * tools/Makefile.am, tools/dbus-send.1, tools/dbus-monitor.1:
5670         add some man pages
5671
5672 2003-05-03  Colin Walters  <walters@verbum.org>
5673
5674         * dbus/dbus-sysdeps.c (fill_user_info): Test against
5675         DBUS_UID_UNSET to determine whether to do a uid lookup or not.
5676
5677         * Makefile.am: Update to use new .pc versioning scheme.
5678
5679 2003-05-02  Havoc Pennington  <hp@redhat.com>
5680
5681         * bus/system.conf.in: allow send/receive to/from message bus
5682         service
5683
5684 2003-04-30  Havoc Pennington  <hp@redhat.com>
5685
5686         * configure.in: print a note when building with unit tests and
5687         without assertions
5688
5689 2003-04-30  Havoc Pennington  <hp@redhat.com>
5690
5691         * Makefile.am: add a check-local that complains if you didn't
5692         configure with --enable-tests
5693
5694 2003-04-29  Havoc Pennington  <hp@redhat.com>
5695
5696         * glib/dbus-gmain.c: docs cleanups
5697
5698         * dbus/dbus-types.h: add docs on int64 types
5699
5700         * dbus/dbus-memory.c: fix docs to avoid putting private API in
5701         public API docs section
5702
5703 2003-04-29  Havoc Pennington  <hp@redhat.com>
5704
5705         * dbus-1.pc.in, dbus-glib-1.pc.in: rename these from
5706         dbus-1.0.pc.in, dbus-glib-1.0.pc.in. As these change with the
5707         parallel install API version, not with the D-BUS package version.
5708
5709         * HACKING: move some of README over here
5710
5711         * README: updates, and document API/ABI policy
5712
5713         * configure.in: reindentation
5714
5715 2003-04-29  Havoc Pennington  <hp@redhat.com>
5716
5717         * dbus/dbus.h: add "you have to define DBUS_API_SUBJECT_TO_CHANGE
5718         to use this library" to be sure people have the right
5719         expectations.
5720
5721 2003-04-28  Havoc Pennington  <hp@redhat.com>
5722
5723         * configure.in: add --enable-docs which by default is auto yes if
5724         doxygen and db2html found, no otherwise; but can be forced on/off
5725
5726         * doc/Makefile.am: conditionalize whether to build docs on
5727         --enable-docs
5728
5729 2003-04-28  Havoc Pennington  <hp@redhat.com>
5730
5731         * configure.in: 0.10
5732
5733         * NEWS: update
5734
5735         * bus/system.conf.in: add <includedir>system.d</includedir>
5736
5737         * dbus/dbus-userdb.c (_dbus_user_database_lookup): fix bug when
5738         username was provided but not uid
5739
5740         * bus/config-parser.c (struct BusConfigParser): keep track of
5741         whether the parser is toplevel or was included; change some
5742         of the error handling if it's included.
5743
5744 2003-04-27  Havoc Pennington  <hp@pobox.com>
5745
5746         Unbreak my code...
5747
5748         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
5749         report correct status if we finish processing authentication
5750         inside this function.
5751
5752         * bus/activation.c (try_send_activation_failure): use
5753         bus_transaction_send_error_reply
5754
5755         * bus/connection.c (bus_connection_get_groups): return an error
5756         explaining the problem
5757
5758         * bus/bus.c (bus_context_check_security_policy): implement
5759         restriction here that inactive connections can only send the
5760         hello message. Also, allow bus driver to send anything to
5761         any recipient.
5762
5763         * bus/connection.c (bus_connection_complete): create the
5764         BusClientPolicy here instead of on-demand.
5765         (bus_connection_get_policy): don't return an error
5766
5767         * dbus/dbus-message.c (dbus_message_new_error_reply): allow NULL
5768         sender field in message being replied to
5769
5770         * bus/bus.c (bus_context_check_security_policy): fix silly typo
5771         causing it to return FALSE always
5772
5773         * bus/policy.c (bus_client_policy_check_can_send): fix bug where
5774         we checked sender rather than destination
5775
5776 2003-04-25  Havoc Pennington  <hp@redhat.com>
5777
5778         test suite is slightly hosed at the moment, will fix soon
5779
5780         * bus/connection.c (bus_connections_expire_incomplete): fix to
5781         properly disable the timeout when required
5782         (bus_connection_set_name): check whether we can remove incomplete
5783         connections timeout after we complete each connection.
5784
5785         * dbus/dbus-mainloop.c (check_timeout): fix this up a bit,
5786         probably still broken.
5787
5788         * bus/services.c (bus_registry_acquire_service): implement max
5789         number of services owned, and honor allow/deny rules on which
5790         services a connection can own.
5791
5792         * bus/connection.c (bus_connection_get_policy): report errors here
5793
5794         * bus/activation.c: implement limit on number of pending
5795         activations
5796
5797 2003-04-25  Havoc Pennington  <hp@redhat.com>
5798
5799         * dbus/dbus-transport.c (_dbus_transport_get_unix_user): fix bug
5800         where we used >= 0 instead of != DBUS_UID_UNSET.
5801
5802 2003-04-25  Havoc Pennington  <hp@redhat.com>
5803
5804         * glib/dbus-gmain.c (remove_watch): fix for a crash when watches
5805         were toggled without add/remove, fix from Anders Gustafsson
5806
5807 2003-04-24  Havoc Pennington  <hp@redhat.com>
5808
5809         * test/data/valid-config-files/basic.conf: add <limit> tags to
5810         this test
5811
5812         * bus/config-parser.h, bus/config-parser.c, bus/bus.c: Implement
5813         <limit> tag in configuration file.
5814
5815 2003-04-24  Havoc Pennington  <hp@redhat.com>
5816
5817         * bus/dispatch.c: somehow missed some name_is
5818
5819         * dbus/dbus-timeout.c (_dbus_timeout_set_enabled)
5820         (_dbus_timeout_set_interval): new
5821
5822         * bus/connection.c (bus_connections_setup_connection): record time
5823         when each connection is first set up, and expire them after the
5824         auth timeout passes.
5825
5826 2003-04-24  Havoc Pennington  <hp@redhat.com>
5827
5828         * dbus/dbus-message.c (dbus_message_name_is): rename
5829         (dbus_message_service_is): rename
5830         (dbus_message_sender_is): rename
5831         (dbus_message_get_service): rename
5832
5833 2003-04-24  Havoc Pennington  <hp@redhat.com>
5834
5835         * configure.in: add --enable-checks
5836
5837         * dbus/dbus-message.c (dbus_message_new): reverse name/service arguments
5838
5839         * dbus/dbus-connection.c (dbus_connection_preallocate_send): fix
5840         to use thread locks.
5841         (_dbus_connection_handler_destroyed_locked): move some private
5842         functions into proper docs group
5843
5844         * dbus/dbus-internals.h: add _dbus_return_if_fail,
5845         _dbus_return_val_if_fail
5846
5847         Throughout: use dbus_return_if_fail
5848
5849 2003-04-23  James Willcox  <jwillcox@gnome.org>
5850
5851         * glib/dbus-glib.h:
5852         * glib/dbus-gmain.c: (add_timeout), (wakeup_main), (create_source),
5853         (dbus_connection_setup_with_g_main),
5854         (dbus_server_setup_with_g_main):
5855         * glib/test-dbus-glib.c: (main):
5856         * glib/test-thread-client.c: (main):
5857         * glib/test-thread-server.c: (new_connection_callback), (main):
5858         * tools/dbus-monitor.c: (main):
5859
5860         Added a GMainContext argument to dbus_connection_setup_with_g_main()
5861         and dbus_server_setup_with_g_main().
5862
5863 2003-04-20  Havoc Pennington  <hp@pobox.com>
5864
5865         * doc/dbus-specification.sgml: document the restrictions on
5866         message and service names
5867
5868 2003-04-22  Havoc Pennington  <hp@redhat.com>
5869
5870         * dbus/dbus-message.c, dbus/dbus-marshal.c: add 64-bit integer
5871         support, and do some code cleanups to share more code and
5872         speed up array marshal/demarshal.
5873
5874         * dbus-1.0.pc.in (Cflags): put libdir include file in cflags
5875
5876         * configure.in: generate dbus-arch-deps.h
5877
5878         * dbus/dbus-protocol.h (DBUS_TYPE_INT64, DBUS_TYPE_UINT64): add
5879         64-bit typecodes
5880
5881 2003-04-22  Havoc Pennington  <hp@redhat.com>
5882
5883         * test/data/valid-messages/opposite-endian.message: fix test
5884         to use proper type for rply field
5885
5886         * test/data/invalid-messages: add tests for below validation
5887
5888         * dbus/dbus-message.c (decode_header_data): validate field types,
5889         and validate that named fields are valid names
5890         (decode_name_field): consider messages in the
5891         org.freedesktop.Local. namespace to be invalid.
5892
5893         * dbus/dbus-string.c (_dbus_string_validate_name): new
5894
5895 2003-04-19  Havoc Pennington  <hp@pobox.com>
5896
5897         * bus/driver.c (bus_driver_handle_hello): check limits and
5898         return an error if they are exceeded.
5899
5900         * bus/connection.c: maintain separate lists of active and inactive
5901         connections, and a count of each. Maintain count of completed
5902         connections per user. Implement code to check connection limits.
5903
5904         * dbus/dbus-list.c (_dbus_list_unlink): export
5905
5906         * bus/bus.c (bus_context_check_security_policy): enforce a maximum
5907         number of bytes in the message queue for a connection
5908
5909 2003-04-18  Havoc Pennington  <hp@pobox.com>
5910
5911         * dbus/dbus-auth.c (record_mechanisms): memleak fixes
5912
5913         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): fix some
5914         memleaks
5915
5916         * dbus/dbus-keyring.c (add_new_key): fix a memleak, and
5917         on realloc be sure to update the pointer in the keyring
5918
5919         * dbus/dbus-string.c (_dbus_string_zero): compensate for align
5920         offset to avoid writing to unallocated memory
5921
5922         * dbus/dbus-auth.c (process_rejected): return FALSE if we fail to
5923         try the next mechanism, so we properly handle OOM
5924
5925         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): fix double-free
5926         on OOM.
5927         (_dbus_keyring_new): fix OOM bug
5928         (_dbus_keyring_new_homedir): always set error; impose a maximum
5929         number of keys we'll load from the file, mostly to speed up the
5930         test suite and make its OOM checks more useful, but also for
5931         general sanity.
5932
5933         * dbus/dbus-auth.c (process_error_server): reject authentication
5934         if we get an error from the client
5935         (process_cancel): on cancel, send REJECTED, per the spec
5936         (process_error_client): send CANCEL if we get an error from the
5937         server.
5938
5939 2003-04-18  Havoc Pennington  <hp@pobox.com>
5940
5941         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix UMR in verbose
5942         debug spew
5943
5944         * dbus/dbus-auth.c (handle_client_data_cookie_sha1_mech): fix OOM
5945         handling problem
5946
5947         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): only whine
5948         about DBUS_TEST_HOMEDIR once
5949
5950         * bus/Makefile.am (TESTS_ENVIRONMENT): put DBUS_TEST_HOMEDIR in
5951         the environment
5952
5953         * bus/dispatch.c (bus_dispatch_sha1_test): actually load sha1
5954         config file so we test the right thing
5955
5956         Throughout: assorted docs improvements
5957
5958 2003-04-18  Havoc Pennington  <hp@pobox.com>
5959
5960         * glib/dbus-gmain.c: adapt to watch changes
5961
5962         * bus/bus.c, bus/activation.c, etc.: adjust to watch changes
5963
5964         * dbus/dbus-server.h: remove dbus_server_handle_watch
5965
5966         * dbus/dbus-connection.h: remove dbus_connection_handle_watch
5967
5968         * dbus/dbus-watch.c (dbus_watch_handle): change DBusWatch to work
5969         like DBusTimeout, so we don't need dbus_connection_handle_watch
5970         etc.
5971
5972 2003-04-17  Havoc Pennington  <hp@redhat.com>
5973
5974         * dbus/dbus-userdb.c, dbus/dbus-sysdeps.c: redo all the passwd
5975         database usage so it all goes via the DBusUserDatabase cache.
5976
5977 2003-04-17  Havoc Pennington  <hp@redhat.com>
5978
5979         * dbus/dbus-mainloop.c (_dbus_loop_iterate): fix logic so that if
5980         there was an OOM watch we skipped, we always return TRUE so we
5981         iterate again to have a look at it again. Fixes test suite hang.
5982         Code rearrangement also lets us lose some memset and only iterate
5983         over callbacks once.
5984
5985         * bus/driver.c (bus_driver_handle_message): sense of test for
5986         reply was backward
5987
5988 2003-04-16  Havoc Pennington  <hp@pobox.com>
5989
5990         * doc/dbus-specification.sgml: make spec say serials are unsigned
5991
5992         * dbus/dbus-message.h: change message serials to unsigned
5993
5994         * dbus/dbus-connection.c: adapt to message serials being unsigned
5995
5996 2003-04-15  Havoc Pennington  <hp@pobox.com>
5997
5998         * bus/bus.c: create and keep around a shared DBusUserDatabase
5999         object.
6000
6001         * bus/connection.c (bus_connection_get_groups): don't cache
6002         groups for user in the connection object, since user database
6003         object now does that.
6004
6005 2003-04-16  Havoc Pennington  <hp@redhat.com>
6006
6007         * dbus/dbus-message.c (_dbus_message_add_size_counter): keep a
6008         list of size counters
6009         (_dbus_message_loader_putback_message_link): put back a popped link
6010
6011         * dbus/dbus-connection.c
6012         (dbus_connection_set_max_live_messages_size): rename
6013         max_received_size
6014         (dbus_connection_get_outgoing_size): get size of outgoing
6015         queue
6016         (_dbus_connection_set_connection_counter): remove this cruft
6017
6018 2003-04-14  Havoc Pennington  <hp@redhat.com>
6019
6020         * dbus/dbus-userdb.c: user database abstraction, mostly to get
6021         caching, but at some point we might want to be able to use a
6022         different database.
6023
6024         * bus/dispatch.c (bus_dispatch_sha1_test): add a test that uses
6025         SHA1 conf file to test the sha1 auth mechanism, since the regular
6026         test always uses EXTERNAL when available.
6027
6028         * configure.in,
6029         test/data/valid-config-files/debug-allow-all-sha1.conf.in:
6030         add conf file that requires use of sha1 auth
6031
6032 2003-04-13  Havoc Pennington  <hp@pobox.com>
6033
6034         * tools/dbus-send.c, tools/dbus-monitor.c: two utility programs
6035         from Philip Blundell to send messages and monitor them.
6036
6037 2003-04-13  Havoc Pennington  <hp@pobox.com>
6038
6039         * dbus/dbus-mainloop.c: fix some reentrancy issues by refcounting
6040         callbacks
6041
6042         * test/data/valid-config-files/debug-allow-all.conf.in: allow all
6043         users
6044
6045         * dbus/dbus-transport.c (_dbus_transport_get_dispatch_status):
6046         fix to only recover unused bytes if we're already authenticated
6047         (_dbus_transport_get_is_authenticated): fix to still mark us
6048         authenticated if there are unused bytes.
6049
6050         * bus/dispatch.c: implement security policy checking
6051
6052         * bus/connection.c (bus_transaction_send_from_driver): new
6053
6054         * bus/bus.c (bus_context_check_security_policy): new
6055
6056         * bus/dispatch.c (send_service_nonexistent_error): delete this,
6057         now we just set the DBusError and it gets converted to an error
6058         reply.
6059
6060         * bus/connection.c (allow_user_function): enable code using actual
6061         data from the config file
6062
6063         * bus/policy.c (list_allows_user): handle wildcard rules for
6064         user/group connection perms
6065
6066 2003-04-13  Havoc Pennington  <hp@pobox.com>
6067
6068         * bus/config-parser.c: Load up the BusPolicy and BusPolicyRules
6069
6070         * dbus/dbus-sysdeps.c (_dbus_get_user_id): new function
6071
6072         * bus/policy.c (bus_policy_append_mandatory_rule)
6073         (bus_policy_append_default_rule, bus_policy_append_user_rule)
6074         (bus_policy_append_group_rule): new functions
6075
6076 2003-04-12  Havoc Pennington  <hp@pobox.com>
6077
6078         * bus/config-parser.c (bus_config_parser_new): fix a memleak
6079
6080         * dbus/dbus-sysdeps.c: change DBusCredentials to use longs for
6081         the pid/gid/uid, just for paranoia.
6082
6083         * test/break-loader.c (randomly_do_n_things): find a byte
6084         containing a type code, and randomly change it to a different
6085         type code.
6086
6087 2003-04-12  Havoc Pennington  <hp@pobox.com>
6088
6089         * bus/policy.h: change BusPolicy to be the thing from the config
6090         file, and rename old BusPolicy to BusClientPolicy
6091
6092         * bus/bus.c, bus/connection.c, bus/config-parser.c: change to
6093         match change in how policy works
6094
6095         * dbus/dbus-internals.h: mark assert_not_reached as
6096         __attribute((noreturn))__
6097
6098 2003-04-11  Havoc Pennington  <hp@redhat.com>
6099
6100         * doc/dbus-specification.sgml: fix a spot with the wrong name for
6101         the broadcast service. Use boolean return for ServiceExists.
6102
6103 2003-04-11  Havoc Pennington  <hp@redhat.com>
6104
6105         * configure.in: add another directory to look for qt in.
6106
6107 2003-04-11  Havoc Pennington  <hp@redhat.com>
6108
6109         * AUTHORS: add Colin Walters
6110
6111 2003-04-11  Havoc Pennington  <hp@redhat.com>
6112
6113         * NEWS: update
6114
6115         * configure.in: 0.9
6116
6117 2003-04-11  Havoc Pennington  <hp@redhat.com>
6118
6119         * bus/messagebus.in: remove pid file when stopping the
6120         message bus, since the bus won't have privileges to remove it
6121         itself.
6122
6123 2003-04-11  Havoc Pennington  <hp@redhat.com>
6124
6125         * bus/bus.c (bus_context_new): move credentials change after
6126         creating pidfile
6127
6128 2003-04-11  Havoc Pennington  <hp@pobox.com>
6129
6130         * test/decode-gcov.c: add "below average functions" to the
6131         coverage report, and change how some of the code works.
6132
6133         * bus/test-main.c: bracket some stuff in DBUS_BUILD_TESTS so it's
6134         not in the coverage stats.
6135
6136         * test/test-service.c (main): use _dbus_verbose not fprintf in a
6137         couple places so running the test suite doesn't result in megaspam.
6138
6139 2003-04-11  Havoc Pennington  <hp@pobox.com>
6140
6141         * bus/dispatch.c (check_existent_service_activation): accept a no
6142         memory error in a place we didn't before
6143
6144         * bus/test.c (bus_test_run_everything): remove hacky "do it twice
6145         in case the first one failed," since the test suite is less
6146         broken now.
6147
6148 2003-04-10  Havoc Pennington  <hp@pobox.com>
6149
6150         * bus/dispatch.c (check_segfault_service_activation): add test
6151         for launching an executable that just crashes.
6152
6153         * test/test-segfault.c (main): try setting coredumpsize to 0 so we
6154         don't leave a million cores. We'll see how portable this is.
6155
6156 2003-04-10  Havoc Pennington  <hp@pobox.com>
6157
6158         * dbus/dbus-spawn.c (_dbus_spawn_async_with_babysitter): move all
6159         the possible parent failures before we fork, so that we don't
6160         fail to create a babysitter after creating the child.
6161
6162         * bus/activation.c (bus_activation_activate_service): kill child
6163         if we don't successfully complete the activation.
6164
6165 2003-04-10  Havoc Pennington  <hp@redhat.com>
6166
6167         * dbus/dbus-connection.c (dbus_connection_flush): don't spin on
6168         the connection if it's disconnected
6169
6170         * bus/activation.c (bus_activation_service_created): use new
6171         transaction features to roll back removal of pending activation if
6172         we don't successfully create the service after all. Don't remove
6173         pending activation if the function fails.
6174
6175         * dbus/dbus-list.c (_dbus_list_insert_before_link)
6176         (_dbus_list_insert_after_link): new code to facilitate
6177         services.c fixes
6178
6179         * dbus/dbus-hash.c (_dbus_hash_table_insert_string_preallocated):
6180         new functionality, so we can preallocate the ability to insert
6181         into a hash table.
6182
6183         * bus/connection.c (bus_transaction_add_cancel_hook): new function
6184         allowing us to put custom hooks in a transaction to be used for
6185         cancelling said transaction
6186
6187         * doc/dbus-specification.sgml: add some discussion of secondary
6188         service owners, and disallow zero-length service names
6189
6190         * bus/services.c (bus_registry_acquire_service): new function,
6191         splits out part of bus_driver_handle_acquire_service() and fixes
6192         a bug where we didn't remove the service doing the acquiring
6193         from the secondary queue if we failed to remove the current owner
6194         from the front of the queue.
6195
6196 2003-04-10  Alexander Larsson  <alexl@redhat.com>
6197
6198         * doc/dbus-specification.sgml:
6199         s/org.freedesktop.Broadcast/org.freedesktop.DBus.Broadcast/
6200
6201 2003-04-10  Alexander Larsson  <alexl@redhat.com>
6202
6203         * bus/.cvsignore:
6204         * glib/.cvsignore:
6205         * test/.cvsignore:
6206         Added files to cvsignore
6207
6208         * dbus/dbus-message.h:
6209         * dbus/dbus-message.c: (dbus_message_iter_get_named):
6210         Make get_named() take two out argument and return a boolean.
6211         (dbus_message_iter_get_args_valist):
6212         Update usage of get_named().
6213         (dbus_message_iter_append_byte):
6214         Fix typo
6215         (dbus_message_iter_append_named)
6216         Fix typo
6217         (message_iter_test), (check_message_handling_type), (_dbus_message_test):
6218         More tests.
6219
6220 2003-04-10  Alexander Larsson  <alexl@redhat.com>
6221
6222         * dbus/dbus-marshal.[ch]:
6223         Add array_type_pos argument to _dbus_marshal_validate_arg.
6224         Let you pass a NULL end_pos to _dbus_marshal_validate_type.
6225
6226         * dbus/dbus-message.[ch]:
6227         Multi-dimensional arrays have full type specification in the
6228         outermost array. Iter code re-arranged to handle this.
6229         Added some more iter tests.
6230
6231         * doc/dbus-specification.sgml:
6232         Add me to authors.
6233         Remove old FIXME.
6234         Update new array encoding description.
6235         Correct DBUS_SERVICE_FLAGS_REPLACE_EXISTING description.
6236
6237         * test/data/invalid-messages/array-with-mixed-types.message:
6238         * test/data/valid-messages/array-of-array-of-uint32.message:
6239         Change to the new array format.
6240
6241         * test/data/invalid-messages/too-short-dict.message:
6242         Fix bug in test.
6243
6244         * test/data/valid-messages/recursive-types.message:
6245         Fix up and extend test.
6246
6247 2003-04-10  Havoc Pennington  <hp@pobox.com>
6248
6249         * bus/dispatch.c: lots of fixes
6250
6251         * dbus/dbus-mainloop.c (_dbus_loop_dispatch): export
6252         (_dbus_loop_iterate): remove old "quit if no callbacks" code,
6253         that was crack, broke the test service.
6254
6255         * dbus/dbus-transport.c (_dbus_transport_open): fix error
6256         handling to avoid piling up errors if we get a failure on the
6257         first address.
6258
6259         * dbus/dbus-internals.c (_dbus_real_assert_not_reached): include
6260         pid in assertion failures.
6261
6262         * dbus/dbus-mainloop.c (_dbus_loop_iterate): use static arrays up
6263         to some fixed size of file descriptor array. Don't return TRUE
6264         anytime a timeout exists, that led to lots of busy loop silliness
6265         in the tests.
6266
6267 2003-04-09  Havoc Pennington  <hp@redhat.com>
6268
6269         * dbus/dbus-mainloop.c (check_timeout): fix timeouts, I thought
6270         I'd checked this in earlier but hadn't.
6271
6272 2003-04-09  Havoc Pennington  <hp@redhat.com>
6273
6274         * bus/dispatch.c (bus_dispatch_test): get a bit further through
6275         the activation test (man this is getting old!)
6276
6277 2003-04-09  Havoc Pennington  <hp@redhat.com>
6278
6279         * test/test-utils.c: use dispatch status function to fix this up
6280
6281         * bus/connection.c (connection_watch_callback): don't dispatch
6282         from here
6283         (connection_timeout_callback): don't dispatch from here
6284         (bus_connections_setup_connection): set the dispatch status function
6285         (bus_connection_disconnected): unset it
6286
6287         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
6288         used to add a connection to be dispatched
6289         (_dbus_loop_iterate): do the dispatching at the end of each
6290         iteration
6291
6292         * dbus/dbus-connection.c
6293         (dbus_connection_set_dispatch_status_function): new function
6294         allowing us to fix up main loop usage
6295         (_dbus_connection_last_unref): free all the various function
6296         user data
6297         (dbus_connection_dispatch): call the DispatchStatusFunction
6298         whenever this function returns
6299         (dbus_connection_handle_watch): call DispatchStatusFunction
6300         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
6301         (reply_handler_timeout): call DispatchStatusFunction
6302         (dbus_connection_flush): call DispatchStatusFunction
6303
6304 2003-04-09  Havoc Pennington  <hp@redhat.com>
6305
6306         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and
6307         a memory leak
6308
6309         * bus/dispatch.c (check_service_activated): fix bug in test
6310
6311         * dbus/dbus-mainloop.c (check_timeout): fix this up
6312
6313         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
6314         verbose output so we can sort out output from different processes,
6315         e.g. in the activation case.
6316
6317 2003-04-08  Colin Walters  <walters@gnu.org>
6318
6319         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
6320         the pid file.
6321         (bus_context_new): Set it.
6322         (bus_context_unref): Use it to delete the pid file.
6323
6324 2003-04-08  Havoc Pennington  <hp@redhat.com>
6325
6326         * test/data/invalid-messages/array-with-mixed-types.message:
6327         regression test that fails for the moment
6328
6329         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
6330         tests for convenience
6331
6332         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
6333         array of nil, it broke things.
6334
6335         * test/data/invalid-messages/array-of-nil.message: regression test
6336
6337         * test/data/valid-messages/array-of-array-of-uint32.message:
6338         happened to write this so added it to suite
6339
6340 2003-04-08  Havoc Pennington  <hp@redhat.com>
6341
6342         * bus/driver.c (bus_driver_handle_acquire_service): init
6343         retval/reply before checking name
6344
6345         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
6346         recursion depth argument
6347
6348         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
6349         in the public struct for future extension
6350
6351         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
6352         typo
6353
6354         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
6355         message
6356
6357         * doc/dbus-specification.sgml: fix typo
6358
6359 2003-04-08  Alexander Larsson  <alexl@redhat.com>
6360
6361         Implemented recursive types, named types and new-style iters
6362
6363         * bus/driver.c:
6364         * glib/test-thread-client.c: (thread_func):
6365         * glib/test-thread-server.c: (handle_test_message):
6366         * test/test-service.c: (handle_echo):
6367         Update to new api
6368
6369         * dbus/Makefile.am:
6370         * dbus/dbus-dict.c:
6371         * dbus/dbus-dict.h:
6372         * dbus/dbus.h
6373         Remove DBusDict
6374
6375         * dbus/dbus-internals.c: (_dbus_type_to_string):
6376         Update for new types.
6377
6378         * dbus/dbus-marshal.[ch]:
6379         Implement recursive types and the new marshalling format.
6380         Remove hardcoded dict marshalling.
6381         Marshal named types.
6382
6383         * dbus/dbus-message-builder.c:
6384         Add BYTE_ARRAY.
6385         Remove references to old types
6386
6387         * dbus/dbus-message.[ch]:
6388         New non-refcounted iter API that supports recursive iters.
6389         Use iters for appending, including support for recursive
6390         iters.
6391         Add byte and named type support.
6392         Update everything to new marshalling formats.
6393         Add tests for new API.
6394
6395         * dbus/dbus-protocol.h:
6396         Remove old array types.
6397         Add types: BYTE, ARRAY, DICT, NAMED
6398
6399         * dbus/dbus-string.c:
6400         * dbus/dbus-sysdeps.c:
6401         Make parse_double locale safe.
6402
6403         * dbus/dbus-test-main.c:
6404         Call setlocale.
6405
6406         * dbus/dbus-test.c:
6407         Kill dict test
6408
6409         * doc/dbus-specification.sgml:
6410         Update spec
6411
6412         * test/data/incomplete-messages/missing-body.message:
6413         * test/data/invalid-messages/bad-boolean.message:
6414         * test/data/invalid-messages/bad-boolean-array.message:
6415         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
6416         * test/data/invalid-messages/boolean-has-no-value.message-raw:
6417         * test/data/invalid-messages/too-short-dict.message:
6418         * test/data/valid-messages/dict-simple.message:
6419         * test/data/valid-messages/dict.message:
6420         * test/data/valid-messages/emptiness.message:
6421         * test/data/valid-messages/lots-of-arguments.message:
6422         * test/data/valid-messages/no-padding.message:
6423         * test/data/valid-messages/recursive-types.message:
6424         Add missing NAME fields
6425         Fix up dicts & arrays
6426
6427         * test/data/invalid-messages/dict-with-nil-value.message:
6428         Removed, this is not invalid anymore.
6429
6430         * test/data/valid-messages/recursive-types.message:
6431         Add new test for deeply recursive types.
6432
6433 2003-04-07  Havoc Pennington  <hp@pobox.com>
6434
6435         * bus/driver.c (bus_driver_handle_acquire_service): return an
6436         error if you try to acquire a service that starts with ':'
6437
6438 2003-04-07  Havoc Pennington  <hp@redhat.com>
6439
6440         * doc/dbus-specification.sgml: require that base service names
6441         start with ':' and that the base service is created/deleted
6442         as first and last things a connection does on the bus
6443
6444         * bus/dispatch.c (check_existent_service_activation): lots more
6445         work on the activation test; it doesn't fully pass yet...
6446
6447         * test/test-service.c (main): fix so we don't memleak the
6448         connection to the message bus
6449         (filter_func): accept a message asking us to exit
6450
6451 2003-04-06  Havoc Pennington  <hp@pobox.com>
6452
6453         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h,
6454         from Colin Walters
6455
6456         * configure.in: fixes to Qt detection from Colin Walters
6457
6458         * doc/Makefile.am: Only remove generated docbook dirs if they
6459         exist, from Colin Walters
6460
6461         * dbus/dbus-bus.c: change how we set well-known connections to
6462         NULL, so that it works if a single connection is stored in
6463         two well-known array slots.
6464
6465         * test/Makefile.am: remove a lot of stuff that isn't immediately
6466         useful, it's in CVS history if we want it.
6467
6468         * test/test-service.c: use dbus-mainloop instead of that
6469         watch.[hc] crack
6470
6471 2003-04-06  Havoc Pennington  <hp@pobox.com>
6472
6473         * dbus/Makefile.am: split lists of sources into stuff that goes in
6474         the library, util functions that go in the lib and are also used
6475         elsewhere, and util functions that are used in tests/daemon but
6476         don't go in the lib.
6477
6478         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc]
6479         here so it can be used in test binaries also
6480
6481 2003-04-06  Havoc Pennington  <hp@pobox.com>
6482
6483         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
6484         here in the parent process, so we can return an error if it
6485         fails. Also, move some of the code into the child so the parent
6486         is less hosed if we fail midway through.
6487
6488         * bus/bus.c (bus_context_new): move pidfile detection further up
6489         in the function, before we start overwriting sockets and such.
6490
6491         * bus/messagebus.in: adjust this a bit, not sure if it will work.
6492
6493         * configure.in: add --with-system-pid-file and --with-system-socket
6494
6495 2003-04-06  Colin Walters  <walters@verbum.org>
6496
6497         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
6498
6499         * bus/system.conf.in: Declare a pidfile.
6500
6501         * bus/bus.c (bus_context_new): Test for an existing pid file, and
6502         create one (if appropriate).
6503
6504         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
6505         (struct BusConfigParser) [pidfile]: New.
6506         (element_type_to_name, merge_included, start_busconfig_child)
6507         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
6508         (bus_config_parser_unref): Free it.
6509         (bus_config_parser_get_pidfile): New function.
6510
6511         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
6512
6513         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
6514
6515         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
6516
6517         * dbus/dbus-sysdeps.h: Prototype it.
6518
6519 2003-04-06  Havoc Pennington  <hp@pobox.com>
6520
6521         * bus/bus.c (bus_context_new): print the address in here, rather
6522         than in main(), because we need to do it before forking the daemon
6523
6524         * bus/dispatch.c (send_service_nonexistent_error): set the sender
6525         on the service nonexistent error
6526
6527         * bus/driver.c (bus_driver_handle_acquire_service): set the
6528         sender on the AcquireService reply
6529
6530         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
6531         server also listen on a UNIX socket so services can connect to it.
6532
6533 2003-04-06  Havoc Pennington  <hp@pobox.com>
6534
6535         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done
6536         so it detects deadlocks and also we actually init threads when
6537         debugging.
6538
6539 2003-04-06  Havoc Pennington  <hp@pobox.com>
6540
6541         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
6542         save the domain socket name, and unlink it when we disconnect the
6543         server. Means that at least when we exit normally, we won't leave
6544         a bunch of junk in /tmp
6545
6546         * dbus/dbus-transport-unix.c
6547         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
6548         memory management). (I was making a real change here but then
6549         didn't)
6550
6551 2003-04-06  Havoc Pennington  <hp@pobox.com>
6552
6553         * bus/bus.c (bus_context_new): fix wrong handling of
6554         server_data_slot_unref() in the error case.
6555
6556         * dbus/dbus-internals.h (_dbus_assert): change so it passes
6557         "(condition) != 0" to _dbus_real_assert so that
6558         "_dbus_assert (pointer)" doesn't cause a warning
6559
6560         * bus/main.c (main): accept --print-address option to print out
6561         the message bus address
6562
6563         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
6564
6565         * dbus/dbus-transport.c (_dbus_transport_open): special error for
6566         "tmpdir" option to unix: address on client side
6567
6568         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option
6569         to unix: address
6570
6571         * configure.in (TEST_SOCKET_DIR): locate a temporary directory
6572         we can use to create sockets in the test suite.
6573
6574         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
6575         cleanly. To be used for testing.
6576
6577         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
6578
6579         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
6580
6581         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
6582         handle trying to call this when there's no servers active
6583
6584 2003-04-05  Havoc Pennington  <hp@pobox.com>
6585
6586         * NEWS: update
6587
6588         * configure.in: 0.8
6589
6590 2003-04-05  Havoc Pennington  <hp@pobox.com>
6591
6592         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't
6593         crash on startup. Need to get "try starting the daemon"
6594         in the test suite I guess. ;-)
6595
6596         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
6597         tracked the number of open connections; it's better done in
6598         application-specific code as you want it to span all servers etc.
6599
6600 2003-04-05  Havoc Pennington  <hp@pobox.com>
6601
6602         * bus/Makefile.am (install-data-hook): add missing DESTDIR,
6603         patch from Colin Walters
6604
6605 2003-04-05  Havoc Pennington  <hp@pobox.com>
6606
6607         * doc/config-file.txt (Elements): fix docs of <auth> to reflect
6608         reality; in fact multiple mechanisms are allowed.
6609
6610         * dbus/dbus-internals.c (_dbus_real_assert)
6611         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
6612         _dbus_assert_not_reached() into functions, so that they don't show
6613         up in basic block counts for test coverage, and don't use up as
6614         much disk space. Does mean slower execution speed though, so
6615         assumes --disable-asserts is the normal production case.
6616
6617 2003-04-05  Havoc Pennington  <hp@pobox.com>
6618
6619         * test/Makefile.am (dist-hook): also dist *.in files
6620
6621         * NEWS: update
6622
6623         * configure.in: 0.7
6624
6625 2003-04-05  Havoc Pennington  <hp@pobox.com>
6626
6627         * dbus/dbus-string.c: docs warning
6628
6629         * dbus/dbus-spawn.c: missing docs
6630
6631         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
6632
6633 2003-04-05  Havoc Pennington  <hp@pobox.com>
6634
6635         * bus/loop.c (bus_loop_iterate): fix the timeout code, using
6636         magic from GLib
6637
6638         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid
6639         to -1 once we've reaped the babysitter
6640         (_dbus_babysitter_handle_watch): do as much work as we can, not
6641         just one go of it
6642
6643         * bus/activation.c: add code using DBusBabysitter so that we
6644         handle it when a service fails to start up properly.
6645         (bus_activation_service_created): don't remove the activation
6646         entries as we go, just let them get removed when we free the pending
6647         activation. Unref reply messages after sending them.
6648
6649 2003-04-05  Havoc Pennington  <hp@pobox.com>
6650
6651         * test/decode-gcov.c (main): print per-directory stats in the report
6652
6653         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
6654
6655 2003-04-05  Havoc Pennington  <hp@pobox.com>
6656
6657         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
6658
6659         * test/decode-gcov.c: hack up a little program to suck data
6660         out of gcov files. Yes this is sort of silly.
6661
6662         * configure.in: define something in config.h and do an
6663         AM_CONDITIONAL when gcov is enabled
6664
6665 2003-04-04  Havoc Pennington  <hp@redhat.com>
6666
6667         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
6668         return a "babysitter" object that is used to monitor the status of
6669         the spawned process and reap it when required.
6670
6671         * test/test-segfault.c, test/test-exit.c,
6672         test/test-sleep-forever.c: binaries that do various lame things,
6673         used in the test suite.
6674
6675         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
6676
6677 2003-04-03  Havoc Pennington  <hp@pobox.com>
6678
6679         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file
6680         in preparation for modifying it, dbus-sysdeps is getting
6681         a bit unmanageable.
6682
6683 2003-04-03  Havoc Pennington  <hp@redhat.com>
6684
6685         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
6686         have multiple ones
6687
6688         * bus/*.[hc]: adapt to mainloop change
6689
6690 2003-04-03  Havoc Pennington  <hp@redhat.com>
6691
6692         * bus/activation.c (load_directory): fix up memleaks
6693         (bus_activation_entry_free): free the entry
6694
6695         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
6696         we get one from the message bus; fix memleaks.
6697
6698         * dbus/dbus-message.c (dbus_set_error_from_message): new function
6699
6700 2003-04-03  Havoc Pennington  <hp@pobox.com>
6701
6702         * bus/config-parser.c (bus_config_parser_unref): free
6703         list of mechanisms, bug discovered by test suite enhancements
6704         (putting system.conf and session.conf into suite)
6705
6706         * test/Makefile.am, test/test-service.c: add placeholder for a
6707         test service that we'll activate as part of test suite. Doesn't
6708         do anything yet.
6709
6710         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by
6711         setting NULL value, and use system malloc not dbus_malloc()
6712         when we have unavoidable memleakage.
6713
6714         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
6715         didn't work, and support DBUS_BUS_ACTIVATION.
6716
6717         * bus/activation.c (child_setup): pass our well-known bus type to
6718         the child
6719
6720         * bus/config-parser.c: support <type> to specify well-known type
6721
6722         * doc/dbus-specification.sgml: document the env variables to
6723         locate well-known buses and find service activator
6724
6725 2003-04-02  Havoc Pennington  <hp@redhat.com>
6726
6727         * test/Makefile.am (all-local): add a rule to copy tests to
6728         builddir, so we can have generated tests. Use this to remove the
6729         silly hack for testing system.conf and session.conf. Will use this
6730         shortly to generate .service files pointing to test binaries.
6731
6732 2003-04-02  Havoc Pennington  <hp@redhat.com>
6733
6734         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
6735         current alloc and needed new length, not max of the doubled
6736         allocation and needed new length. Also, when building tests,
6737         don't do the double-allocation stuff, just realloc every time.
6738
6739 2003-04-02  Havoc Pennington  <hp@redhat.com>
6740
6741         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
6742         in error messages
6743         (_dbus_string_get_dirname): new
6744         (_dbus_sysdeps_test): new
6745         (_dbus_directory_open): include dirnames in error messages
6746
6747         * bus/config-parser.c: interpret <include> and <includedir> and
6748         <servicedir> relative to config file location if the given
6749         filename is not absolute.
6750
6751         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
6752
6753 2003-04-02  Havoc Pennington  <hp@redhat.com>
6754
6755         * bus/connection.c (bus_transaction_send_error_reply): set sender
6756         service for the error, and unref the reply on success
6757
6758         * bus/activation.c: convert to use BusTransaction so OOM can be
6759         handled correctly
6760         (bus_activation_service_created): set sender of the message
6761
6762 2003-04-01  Havoc Pennington  <hp@redhat.com>
6763
6764         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
6765         <includedir> (at least mostly)
6766
6767         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
6768         first, then the user ID
6769
6770 2003-04-01  Havoc Pennington  <hp@pobox.com>
6771
6772         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
6773         function
6774
6775         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
6776
6777         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
6778
6779         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
6780         socket 0777, and unlink any existing socket.
6781
6782         * bus/bus.c (bus_context_new): change our UID/GID and fork if
6783         the configuration file so specifies; set up auth mechanism
6784         restrictions
6785
6786         * bus/config-parser.c (bus_config_parser_content): add support
6787         for <fork> option and fill in code for <auth>
6788
6789         * bus/system.conf.in: add <fork/> to default configuration,
6790         and limit auth mechanisms to EXTERNAL
6791
6792         * doc/config-file.txt (Elements): add <fork>
6793
6794         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
6795         (_dbus_change_identity): new function
6796
6797 2003-03-31  Havoc Pennington  <hp@redhat.com>
6798
6799         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket)
6800         (_dbus_listen_unix_socket): fix off-by-one error in null
6801         termination spotted by Nalin
6802
6803 2003-03-31  Havoc Pennington  <hp@redhat.com>
6804
6805         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
6806         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
6807         having a real home directory available.
6808
6809 2003-03-31  Havoc Pennington  <hp@redhat.com>
6810
6811         * bus/Makefile.am (install-data-hook): create /var/run/dbus
6812
6813         * bus/messagebus.in: add init script for Red Hat /etc/init.d
6814
6815         * configure.in: add support for specifying a style of init script
6816         to install
6817
6818 2003-03-31  Havoc Pennington  <hp@redhat.com>
6819
6820         Fix some annoying DBusString API and fix all affected code.
6821
6822         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
6823         max_length argument
6824         (_dbus_string_get_data): change to return string instead of using
6825         an out param
6826         (_dbus_string_get_const_data): ditto
6827         (_dbus_string_get_data_len): ditto
6828         (_dbus_string_get_const_data_len): ditto
6829
6830 2003-03-31  Havoc Pennington  <hp@redhat.com>
6831
6832         * bus/main.c (main): fix up the command line arguments to be nicer
6833
6834 2003-03-31  Havoc Pennington  <hp@redhat.com>
6835
6836         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
6837         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same
6838         final location that lands in the config file
6839
6840         * bus/config-loader-expat.c (bus_config_load): fix type of
6841         XML_Parser variable
6842
6843         * doc/TODO: remove TODO item for dbus_bus_get()
6844
6845         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
6846
6847 2003-03-31  Havoc Pennington  <hp@pobox.com>
6848
6849         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
6850         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
6851         argument since they are always client side
6852
6853         * dbus/dbus-server.c (dbus_server_get_address): new function
6854
6855         * bus/main.c (main): take the configuration file as an argument.
6856
6857         * test/data/valid-config-files/debug-allow-all.conf: new file to
6858         use with dispatch.c tests for example
6859
6860         * bus/test-main.c (main): require test data dir
6861
6862         * bus/bus.c (bus_context_new): change this to take a
6863         configuration file name as argument
6864
6865         * doc/config-file.txt (Elements): add <servicedir>
6866
6867         * bus/system.conf, bus/session.conf: new files
6868
6869         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
6870         well-known socket if none set
6871
6872         * configure.in: create system.conf and session.conf
6873
6874 2003-03-30  Havoc Pennington  <hp@pobox.com>
6875
6876         * bus/config-parser.c: hacking
6877
6878         * dbus/dbus-memory.c: don't use DBusList for the list of stuff
6879         to shut down, since it could cause weirdness with the DBusList
6880         lock
6881
6882         * dbus/dbus-list.c (_dbus_list_test): add tests for the
6883         link-oriented stack routines
6884         (alloc_link): free the mempool if the first alloc from it fails
6885
6886         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
6887
6888         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
6889         from GLib
6890         (_dbus_string_skip_white): new
6891
6892         * doc/config-file.txt (Elements): add <includedir>
6893
6894 2003-03-28  Havoc Pennington  <hp@pobox.com>
6895
6896         * dbus/dbus-string.c (_dbus_string_copy_data_len)
6897         (_dbus_string_copy_data): new functions
6898
6899 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
6900
6901         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
6902         * dbus/dbus-bus.h:
6903         Add dbus_bus_get.
6904
6905         * dbus/dbus-memory.c:
6906         Fix a doc comment.
6907
6908 2003-03-28  Havoc Pennington  <hp@pobox.com>
6909
6910         * bus/test.c (bus_test_flush_bus): remove the sleep from here,
6911         I think it may have just been superstition. Not sure.
6912
6913         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
6914         failures that were not being handled.
6915
6916         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
6917
6918         * dbus/dbus-memory.c: add ability to set number of mallocs in a
6919         row that will fail on out-of-memory.
6920
6921         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
6922         function for testing out-of-memory handling.
6923
6924         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
6925         allocation functions, they do map exactly to the expat ones.
6926
6927 2003-03-27  Havoc Pennington  <hp@redhat.com>
6928
6929         * bus/config-loader-libxml.c (bus_config_load): add another error
6930         check
6931
6932 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
6933
6934         * doc/TODO:
6935         Add note about automatic service activation.
6936
6937         * doc/dbus-specification.sgml:
6938         Rename the specification and clarify a few things.
6939
6940 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
6941
6942         * Doxyfile.in:
6943         * dbus/dbus-address.c:
6944         * dbus/dbus-dict.c:
6945         * dbus/dbus-marshal.c:
6946         * dbus/dbus-server-debug-pipe.c:
6947         * dbus/dbus-transport-unix.c:
6948         Fix documentation warnings.
6949
6950 2003-03-26  Havoc Pennington  <hp@pobox.com>
6951
6952         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
6953         after every test so it's quick and easy to see which leaked, and
6954         so we test multiple dbus_shutdown() calls
6955
6956         * configure.in: change configure.in XML stuff to also support
6957         expat
6958
6959         * config-loader-libxml.c: some hacking
6960
6961         * config-loader-expat.c: some hacking
6962
6963         * config-parser.c: some hacking, plus tests
6964
6965 2003-03-25  Havoc Pennington  <hp@redhat.com>
6966
6967         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
6968
6969         * configure.in: add --with-xml option to specify XML library,
6970         right now only libxml is supported.
6971
6972         * bus/config-loader-libxml.c, config-parser.c: sync some minor
6973         nonworking code between home and work, still just stubs
6974
6975 2003-03-24  Havoc Pennington  <hp@redhat.com>
6976
6977         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
6978         file
6979
6980         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow
6981         NULL argument for "message" if the error is a well-known one,
6982         fill in a generic message in this case.
6983
6984         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
6985         favor of DBusError
6986
6987         * bus/test.c (bus_test_flush_bus): add
6988
6989         * bus/policy.c (bus_policy_test): test code stub
6990
6991 2003-03-24  Havoc Pennington  <hp@pobox.com>
6992
6993         * bus/connection.c (bus_connections_setup_connection): set up
6994         the "can this user connect" function, but it always returns
6995         TRUE until we have a config file parser so we can have a config
6996         file that allows connections.
6997
6998 2003-03-23  Havoc Pennington  <hp@pobox.com>
6999
7000         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with
7001         DBUS_BUILD_TESTS, actually alloc/free a block of memory for
7002         the mutex, so we can check for proper memory management
7003         and OOM handling.
7004
7005         * dbus/dbus-dataslot.c: remove the mutex from
7006         DBusDataSlotAllocator and lock it manually when using it,
7007         to simplify fitting it into the global slots framework.
7008
7009         * dbus/dbus-threads.c (init_static_locks): rework how we're
7010         handling global locks so they are easily shut down.
7011
7012         * bus/policy.c (bus_policy_append_rule): fix
7013
7014         * bus/test-main.c (main): check for memleaks
7015
7016         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make
7017         test suite check for memleaks
7018
7019         * dbus/dbus-memory.c: add support in test mode for tracking
7020         number of outstanding blocks
7021
7022 2003-03-23  Havoc Pennington  <hp@pobox.com>
7023
7024         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
7025         policies code
7026
7027         * dbus/dbus-hash.h: add ULONG hash keys
7028
7029         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
7030         (_dbus_get_group_id): new function
7031
7032 2003-03-20  Havoc Pennington  <hp@redhat.com>
7033
7034         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
7035         new function
7036         (dbus_connection_get_unix_user): new function
7037
7038 2003-03-20  Havoc Pennington  <hp@pobox.com>
7039
7040         * bus/connection.c (bus_connection_send_oom_error): assert that
7041         message has a sender
7042         (connection_execute_transaction): ditto
7043         (bus_connection_preallocate_oom_error): fix to set the sender, and
7044         set recipient to the destination service, not the bus driver
7045
7046         * bus/policy.c: hacking
7047
7048         * dbus/dbus-message.c (dbus_message_service_is): new function
7049         (dbus_message_sender_is): new
7050
7051 2003-03-19  Havoc Pennington  <hp@redhat.com>
7052
7053         * bus/policy.c: start sketching code for policy restrictions on
7054         what connections can do.
7055
7056 2003-03-18  Havoc Pennington  <hp@redhat.com>
7057
7058         * doc/TODO: some notes on high-level todo items. Little nitpick
7059         stuff is all in @todo, so no need to add it here.
7060
7061         * doc/config-file.txt: some notes on how config file might look
7062
7063 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
7064
7065         * configure.in: 0.6
7066
7067         * NEWS: Update.
7068
7069 2003-03-17  Havoc Pennington  <hp@redhat.com>
7070
7071         * dbus/dbus-internals.h: add gcc attributes so that
7072         our printf-style functions warn on bad arguments to
7073         format
7074
7075         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf
7076         format bug
7077
7078         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
7079         printf format bug
7080
7081 2003-03-17  Havoc Pennington  <hp@redhat.com>
7082
7083         * bus/test-main.c (main): make it print something as it runs
7084         so make check doesn't look stuck
7085
7086         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove
7087         from CVS, now obsolete
7088
7089 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
7090
7091         * bus/dispatch.c: (bus_dispatch):
7092         Refetch the service name since it may have been reallocated
7093         when dbus_message_set_sender was called.
7094
7095         * dbus/dbus-sysdeps.c: (_dbus_accept):
7096         Add address and address length variables and use them to stop
7097         valgrind from complaining.
7098
7099 2003-03-17  Havoc Pennington  <hp@pobox.com>
7100
7101         All tests pass, no memleaks, no valgrind complaints.
7102
7103         * bus/test.c: refcount handler_slot
7104
7105         * bus/connection.c (bus_connections_new): refcount
7106         connection_data_slot
7107
7108         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
7109         bytes so that auth scripts pass.
7110
7111         * bus/dispatch.c: init message_handler_slot so it gets allocated
7112         properly
7113
7114         * bus/dispatch.c (message_handler_slot_ref): fix memleak
7115
7116         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
7117         dealloc server_pipe_hash when no longer used for benefit of
7118         leak checking
7119
7120         * dbus/dbus-auth.c (process_command): memleak fix
7121
7122         * bus/dispatch.c (check_hello_message): memleak fix
7123
7124 2003-03-16  Havoc Pennington  <hp@pobox.com>
7125
7126         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
7127
7128 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
7129
7130         * bus/activation.c (bus_activation_activate_service): Append
7131         the pending activation entry to the list of pending activations.
7132
7133 2003-03-16  Havoc Pennington  <hp@pobox.com>
7134
7135         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
7136         connections
7137
7138         * dbus/dbus-address.c (create_entry): fix OOM handling when
7139         failing to alloc entry->method
7140
7141 2003-03-16  Havoc Pennington  <hp@pobox.com>
7142
7143         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
7144         the watch
7145
7146         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
7147         add some missing dbus_set_result
7148
7149         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to
7150         alloc the DBusMessageHandler
7151
7152         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
7153         the transport here, since we call this from the finalizer; it
7154         resulted in a double-finalize.
7155
7156         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug
7157         where we tried to use transport->connection that was NULL,
7158         happened when transport was disconnected early on due to OOM
7159
7160         * bus/*.c: adapt to handle OOM for watches/timeouts
7161
7162         * dbus/dbus-transport-unix.c: port to handle OOM during
7163         watch handling
7164
7165         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
7166         reference to unused bytes instead of a copy
7167
7168         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
7169         out of memory
7170
7171         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
7172         FALSE on OOM
7173
7174         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
7175         of memory
7176
7177 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
7178
7179         * doc/dbus-specification.sgml:
7180         Document reply message for ActivateService.
7181
7182 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
7183
7184         * bus/activation.c: (bus_pending_activation_entry_free),
7185         (bus_pending_activation_free), (bus_activation_new),
7186         (bus_activation_unref), (bus_activation_service_created),
7187         (bus_activation_activate_service):
7188         * bus/activation.h:
7189         * bus/bus.c: (bus_context_new):
7190         * bus/desktop-file.c: (new_section):
7191         * bus/driver.c: (bus_driver_send_service_deleted),
7192         (bus_driver_handle_activate_service):
7193         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
7194         * bus/services.h:
7195         * dbus/dbus-connection.c:
7196         (dbus_connection_send_with_reply_and_block):
7197         * dbus/dbus-message.c: (dbus_message_append_args_valist):
7198         * dbus/dbus-protocol.h:
7199         Make activation work better. Now pending activations will be queued
7200         and the daemon won't try to activate services that are already registered.
7201
7202 2003-03-16  Havoc Pennington  <hp@pobox.com>
7203
7204         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
7205         connection data
7206
7207         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
7208         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
7209
7210 2003-03-16  Havoc Pennington  <hp@pobox.com>
7211
7212         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
7213         this. always run the test suite before commit...
7214
7215         * bus/*: adapt to DBusConnection API changes
7216
7217         * glib/dbus-gmain.c: adapt to DBusConnection API changes,
7218         requires renaming stuff to avoid dbus_connection_dispatch name
7219         conflict.
7220
7221         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
7222         function
7223
7224         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
7225         separate from _dbus_message_loader_return_buffer()
7226
7227         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
7228         this, because it's now always broken to use; the number of
7229         messages in queue vs. the number still buffered by the message
7230         loader is undefined/meaningless. Should use
7231         dbus_connection_get_dispatch_state().
7232         (dbus_connection_dispatch): rename from
7233         dbus_connection_dispatch_message
7234
7235 2003-03-16  Havoc Pennington  <hp@pobox.com>
7236
7237         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
7238         implementation
7239
7240 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
7241
7242         * dbus/dbus-connection.c:
7243         (dbus_connection_send_with_reply_and_block):
7244         Decrease connection->n_incoming when removing an entry
7245         from the list.
7246         * dbus/dbus-dict.c: (dbus_dict_entry_free),
7247         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
7248         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
7249         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
7250         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
7251         (dbus_dict_get_byte_array):
7252         Handle NULL arrays and strings. Also add support for byte arrays.
7253
7254         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
7255         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
7256         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
7257         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
7258         (_dbus_demarshal_dict), (demarshal_and_validate_len),
7259         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
7260         * dbus/dbus-marshal.h:
7261         Add support for marshalling and demarshalling empty arrays and strings.
7262
7263         * dbus/dbus-message.c: (dbus_message_append_args_valist),
7264         (dbus_message_append_string_array),
7265         (dbus_message_iter_get_boolean),
7266         (dbus_message_iter_get_boolean_array),
7267         (dbus_message_iter_get_int32_array),
7268         (dbus_message_iter_get_uint32_array),
7269         (dbus_message_iter_get_double_array),
7270         (dbus_message_iter_get_byte_array),
7271         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
7272         (check_message_handling):
7273         Add support for getting empty arrays and dicts.
7274
7275         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
7276         Don't do any validation at all for now, that's better than just checking
7277         for ASCII.
7278
7279         * test/data/valid-messages/emptiness.message:
7280         New test message with lots of empty arrays.
7281
7282 2003-03-16  Havoc Pennington  <hp@pobox.com>
7283
7284         * dbus/dbus-connection.c
7285         (_dbus_connection_queue_received_message_link): new function that
7286         can't fail due to OOM
7287
7288         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
7289         new function pops a message together with a list link
7290         containing it.
7291
7292         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
7293         message queuing functions to avoid needing to alloc memory
7294
7295 2003-03-16  Havoc Pennington  <hp@pobox.com>
7296
7297         Oops - test code was only testing failure of around 30 of the
7298         mallocs in the test path, but it turns out there are 500+
7299         mallocs. I believe this was due to misguided linking setup such
7300         that there was one copy of dbus_malloc etc. in the daemon and one
7301         in the shared lib, and only daemon mallocs were tested. In any
7302         case, the test case now tests all 500+ mallocs, and doesn't pass
7303         yet, though there are lots of fixes in this patch.
7304
7305         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
7306         this so that it doesn't need to allocate memory, since it
7307         has no way of indicating failure due to OOM (and would be
7308         annoying if it did).
7309
7310         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
7311
7312         * bus/Makefile.am: rearrange to create two self-contained
7313         libraries, to avoid having libraries with overlapping symbols.
7314         that was resulting in weirdness, e.g. I'm pretty sure there
7315         were two copies of global static variables.
7316
7317         * dbus/dbus-internals.c: move the malloc debug stuff to
7318         dbus-memory.c
7319
7320         * dbus/dbus-list.c (free_link): free list mempool if it becomes
7321         empty.
7322
7323         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
7324
7325         * dbus/dbus-address.c (dbus_parse_address): free list nodes
7326         on failure.
7327
7328         * bus/dispatch.c (bus_dispatch_add_connection): free
7329         message_handler_slot when no longer using it, so
7330         memory leak checkers are happy for the test suite.
7331
7332         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
7333
7334         * bus/bus.c (new_connection_callback): disconnect in here if
7335         bus_connections_setup_connection fails.
7336
7337         * bus/connection.c (bus_connections_unref): fix to free the
7338         connections
7339         (bus_connections_setup_connection): if this fails, don't
7340         disconnect the connection, just be sure there are no side
7341         effects.
7342
7343         * dbus/dbus-string.c (undo_alignment): unbreak this
7344
7345         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
7346         leaking
7347         (_dbus_auth_new): fix the order in which we free strings
7348         on OOM failure
7349
7350         * bus/connection.c (bus_connection_disconnected): fix to
7351         not send ServiceDeleted multiple times in case of memory
7352         allocation failure
7353
7354         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
7355         get the base service name
7356         (dbus_bus_register_client): don't return base service name,
7357         instead store it on the DBusConnection and have an accessor
7358         function for it.
7359         (dbus_bus_register_client): rename dbus_bus_register()
7360
7361         * bus/dispatch.c (check_hello_message): verify that other
7362         connections on the bus also got the correct results, not
7363         just the one sending hello
7364
7365 2003-03-15  Havoc Pennington  <hp@pobox.com>
7366
7367         Make it pass the Hello handling test including all OOM codepaths.
7368         Now to do other messages...
7369
7370         * bus/services.c (bus_service_remove_owner): fix crash when
7371         removing owner from an empty list of owners
7372         (bus_registry_ensure): don't leave service in the list of
7373         a connection's owned services if we fail to put the service
7374         in the hash table.
7375
7376         * bus/connection.c (bus_connection_preallocate_oom_error): set
7377         error flag on the OOM error.
7378
7379         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
7380         handle _dbus_transport_set_connection failure
7381
7382         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
7383         to create watches up front and simply enable/disable them as
7384         needed.
7385         (unix_connection_set): this can now fail on OOM
7386
7387         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept
7388         of enabling/disabling a watch or timeout.
7389
7390         * bus/loop.c (bus_loop_iterate): don't touch disabled
7391         watches/timeouts
7392
7393         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
7394
7395 2003-03-15  Havoc Pennington  <hp@pobox.com>
7396
7397         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
7398         write useful test code, after all that futzing around ;-)
7399
7400         Test does not yet pass because we can't handle OOM in
7401         _dbus_transport_messages_pending (basically,
7402         dbus_connection_preallocate_send() does not prealloc the write
7403         watch). To fix this, I think we need to add new stuff to
7404         set_watch_functions, namely a SetEnabled function so we can alloc
7405         the watch earlier, then enable it later.
7406
7407         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
7408         dbus-memory.c to the convenience lib
7409
7410         * bus/test.c: rename some static functions to keep them clearly
7411         distinct from stuff in connection.c. Handle client disconnection.
7412
7413 2003-03-14  Havoc Pennington  <hp@pobox.com>
7414
7415         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe
7416         transport, tests more of the real codepath. Set up clients
7417         with bus_setup_debug_client.
7418
7419         * bus/test.c (bus_setup_debug_client): function to set up debug
7420         "clients" on the main loop
7421
7422         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe
7423         support
7424
7425         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe
7426         server type
7427
7428         * dbus/dbus-server-debug.c: support a debug server based on pipes
7429
7430         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
7431         (_dbus_close): new function
7432
7433         * configure.in: check for socketpair
7434
7435 2003-03-14  Havoc Pennington  <hp@redhat.com>
7436
7437         * dbus/dbus-memory.c: add a "detect buffer overwrites on free"
7438         cheesy hack
7439
7440         * dbus/dbus-transport-debug.c: rework this a good bit to be
7441         less complicated. hopefully still works.
7442
7443         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
7444         manually
7445
7446         * glib/dbus-gmain.c (timeout_handler): don't remove timeout
7447         after running it
7448
7449         * dbus/dbus-message.c (dbus_message_copy): rename from
7450         dbus_message_new_from_message, fix it up to copy
7451         all the message fields, add test case
7452
7453         * bus/dispatch.c (bus_dispatch_test): add some more test code,
7454         not quite passing yet
7455
7456 2003-03-14  Havoc Pennington  <hp@pobox.com>
7457
7458         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
7459         until no work remains" in test code. (the large diff here
7460         is just code movement, no actual changes)
7461
7462         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
7463         1, no point waiting around for test code.
7464         (_dbus_server_debug_accept_transport): unref the timeout
7465         after adding it (right?)
7466
7467         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
7468
7469 2003-03-13  Havoc Pennington  <hp@redhat.com>
7470
7471         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
7472         out of memory
7473
7474         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
7475         of memory
7476
7477         * dbus/dbus-connection.h: Make AddWatchFunction and
7478         AddTimeoutFunction return a bool so they can fail on out-of-memory
7479
7480         * bus/bus.c (bus_context_new): set up timeout handlers
7481
7482         * bus/connection.c (bus_connections_setup_connection): set up
7483         timeout handlers
7484
7485         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
7486         can fail
7487
7488         * bus/bus.c (bus_context_new): adapt to changes
7489
7490         * bus/connection.c: adapt to changes
7491
7492         * test/watch.c: adapt to DBusWatch changes
7493
7494         * bus/dispatch.c (bus_dispatch_test): started adding this but
7495         didn't finish
7496
7497 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
7498
7499         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
7500
7501 2003-03-13  Havoc Pennington  <hp@pobox.com>
7502
7503         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c:
7504         set up a test framework as for the library
7505
7506 2003-03-12  Havoc Pennington  <hp@pobox.com>
7507
7508         Throughout: purge global variables, introduce BusActivation,
7509         BusConnections, BusRegistry, etc. objects instead.
7510
7511         * bus/bus.h, bus/bus.c: introduce BusContext as a global
7512         message bus object
7513
7514         * test/Makefile.am (TEST_BINARIES): disable bus-test for now,
7515         going to redo this a bit differently I think
7516
7517 2003-03-12  Havoc Pennington  <hp@redhat.com>
7518
7519         Mega-patch that gets the message bus daemon initially handling
7520         out-of-memory. Work still needed. Also lots of random
7521         moving stuff to DBusError instead of ResultCode.
7522
7523         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
7524
7525         * dbus/dbus-connection.c
7526         (dbus_connection_send_with_reply_and_block): use DBusError
7527
7528         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
7529         DBusResultCode
7530
7531         * dbus/dbus-connection.c (dbus_connection_send): drop the result
7532         code here, as the only failure possible is OOM.
7533
7534         * bus/connection.c (bus_connection_disconnect):
7535         rename bus_connection_disconnected as it's a notification only
7536
7537         * bus/driver.c (bus_driver_handle_acquire_service): don't free
7538         "name" on get_args failure, should be done by get_args;
7539         don't disconnect client for bad args, just return an error.
7540         (bus_driver_handle_service_exists): ditto
7541
7542         * bus/services.c (bus_services_list): NULL-terminate returned array
7543
7544         * bus/driver.c (bus_driver_send_service_lost)
7545         (bus_driver_send_service_acquired): send messages from driver to a
7546         specific client to the client's unique name, not to the broadcast
7547         service.
7548
7549         * dbus/dbus-message.c (decode_header_data): reject messages that
7550         contain no name field
7551         (_dbus_message_get_client_serial): rename to
7552         dbus_message_get_serial and make public
7553         (_dbus_message_set_serial): rename from set_client_serial
7554         (_dbus_message_set_reply_serial): make public
7555         (_dbus_message_get_reply_serial): make public
7556
7557         * bus/connection.c (bus_connection_foreach): allow stopping
7558         iteration by returning FALSE from foreach function.
7559
7560         * dbus/dbus-connection.c (dbus_connection_send_preallocated)
7561         (dbus_connection_free_preallocated_send)
7562         (dbus_connection_preallocate_send): new API for sending a message
7563         without possibility of malloc failure.
7564         (dbus_connection_send_message): rename to just
7565         dbus_connection_send (and same for whole function family)
7566
7567         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
7568
7569         * dbus/dbus-sysdeps.c (_dbus_exit): new function
7570
7571         * bus/activation.c: handle/return errors
7572
7573         * dbus/dbus-errors.h: add more DBUS_ERROR #define
7574
7575         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
7576         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
7577         (_dbus_result_from_errno): move to this file
7578
7579 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
7580
7581         * dbus/dbus-marshal.c:
7582         (_dbus_marshal_set_string):
7583         Take a length argument so we can marshal the correct string
7584         length.
7585
7586         (_dbus_marshal_dict), (_dbus_demarshal_dict),
7587         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
7588         (_dbus_marshal_test):
7589         * dbus/dbus-marshal.h:
7590         Add support for marshalling and demarshalling dicts.
7591
7592         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
7593         Add support for TYPE DICT.
7594
7595         * dbus/dbus-message.c: (set_string_field):
7596         Adjust header padding.
7597
7598         (dbus_message_append_args_valist), (dbus_message_append_dict),
7599         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
7600         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
7601         (check_message_handling), (check_have_valid_message):
7602         * dbus/dbus-message.h:
7603         Add functions for setting and getting dicts.
7604
7605         * dbus/dbus-protocol.h:
7606         Add DBUS_TYPE_DICT.
7607
7608         * dbus/dbus.h:
7609         Add dbus-dict.h
7610
7611         * doc/dbus-specification.sgml:
7612         Add information about how dicts are marshalled.
7613
7614         * test/data/invalid-messages/dict-with-nil-value.message:
7615         * test/data/invalid-messages/too-short-dict.message:
7616         * test/data/valid-messages/dict-simple.message:
7617         * test/data/valid-messages/dict.message:
7618         Add sample messages containing dicts.
7619
7620 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
7621
7622         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
7623
7624 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
7625
7626         * dbus/Makefile.am:
7627         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
7628         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
7629         (dbus_dict_set_int32), (dbus_dict_set_uint32),
7630         (dbus_dict_set_double), (dbus_dict_set_string),
7631         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
7632         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
7633         (dbus_dict_set_string_array), (_dbus_dict_test):
7634         * dbus/dbus-dict.h:
7635         Fix according to comments from Havoc.
7636
7637 2003-03-06  Michael Meeks  <michael@server.home>
7638
7639         * configure.in: if we don't have kde-config, disable have_qt.
7640
7641 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
7642
7643         * dbus/Makefile.am:
7644         Add dbus-dict.[ch]
7645
7646         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
7647         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
7648         (dbus_dict_remove), (dbus_dict_get_value_type),
7649         (dbus_dict_get_keys), (dbus_dict_put_boolean),
7650         (dbus_dict_put_int32), (dbus_dict_put_uint32),
7651         (dbus_dict_put_double), (dbus_dict_put_string),
7652         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
7653         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
7654         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
7655         (dbus_dict_get_int32), (dbus_dict_get_uint32),
7656         (dbus_dict_get_double), (dbus_dict_get_string),
7657         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
7658         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
7659         (dbus_dict_get_string_array), (_dbus_dict_test):
7660         * dbus/dbus-dict.h:
7661         Add DBusDict implementation
7662
7663         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
7664         * dbus/dbus-test.h:
7665         Add _dbus_dict_test
7666
7667 2003-03-04  Havoc Pennington  <hp@pobox.com>
7668
7669         * test/data/auth/*: adapt to changes
7670
7671         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
7672         USERID_BASE64 and change USERNAME_BASE64 to put in username not
7673         userid
7674
7675         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
7676         more stuff from being in a context name, to make the protocol
7677         simpler to deal with
7678
7679         * dbus/dbus-errors.c (dbus_error_has_name): new function
7680         (dbus_error_is_set): new function
7681
7682         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth
7683         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
7684
7685         * dbus/dbus-connection.c (dbus_connection_flush): also read
7686         messages during a flush operation
7687
7688         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
7689
7690 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
7691
7692         * configure.in: Check for gethostbyname on Solaris.
7693
7694         * dbus/dbus-transport.c: (_dbus_transport_open):
7695         Remove duplicate "tcp" entry.
7696
7697         * doc/dbus-specification.sgml:
7698         Clarify some things.
7699
7700 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
7701
7702         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
7703         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
7704         (_dbus_keyring_test):
7705         * dbus/dbus-md5.c: (_dbus_md5_compute):
7706         * dbus/dbus-sha.c: (_dbus_sha_compute):
7707         Plug memory leaks.
7708
7709 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
7710
7711         * README: Add some things.
7712
7713 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
7714
7715         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
7716         after case DBUS_TYPE_BOOELAN.
7717
7718 2003-03-02  Havoc Pennington  <hp@pobox.com>
7719
7720         * test/break-loader.c (randomly_set_extreme_ints): add test that
7721         sets really huge and small integers
7722
7723         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
7724         that length of boolean array fits in the string, and that
7725         string has room for boolean value in single-bool case.
7726
7727         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
7728         optional value to "ALIGN" command which is what to fill the
7729         alignment with.
7730
7731         * test/data/valid-messages/no-padding.message: add regression
7732         test for the message padding problem
7733
7734 2003-03-02  Havoc Pennington  <hp@pobox.com>
7735
7736         * dbus/dbus-message.c (decode_header_data): fix to always init
7737         message_padding, from Benjamin Dauvergne
7738
7739 2003-03-02  Havoc Pennington  <hp@pobox.com>
7740
7741         * configure.in: 0.5
7742
7743         * NEWS: Update.
7744
7745 2003-03-01  Joe Shaw  <joe@assbarn.com>
7746
7747         * configure.in: Check for "struct cmsgcred" and try to access its
7748         members for BSD-like unices.
7749
7750         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
7751         _dbus_read_credentials_unix_socket().
7752         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
7753         read() for reading the credential byte off the unix socket.  Use
7754         struct cmsgcred on systems that support it.
7755
7756 2003-02-27  Alexander Larsson  <alexl@redhat.com>
7757
7758         * glib/Makefile.am:
7759         * configure.in:
7760         Make gthreads-2.0 dependency optional. Don't build thread test if
7761         its not found.
7762
7763 2003-02-27  Havoc Pennington  <hp@pobox.com>
7764
7765         * dbus/dbus-connection.c
7766         (dbus_connection_send_message_with_reply_and_block): fix doh!
7767         doh! doh! bug that resulted in never removing a reply from the
7768         queue, no wonder we called get_reply_serial so much ;-)
7769
7770         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
7771         and client serial instead of demarshaling them every time
7772
7773 2003-02-27  Havoc Pennington  <hp@pobox.com>
7774
7775         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
7776         more inlined, using dbus-string-private.h, speeds things up
7777         substantially
7778
7779         * dbus/dbus-string.c (_dbus_string_free): apply align offset
7780         when freeing the string
7781         (_dbus_string_steal_data): fix for align offset
7782         (undo_alignment): new function
7783
7784 2003-02-26  Havoc Pennington  <hp@redhat.com>
7785
7786         All kinds of audit fixes from Owen, plus initial attempt to
7787         handle unaligned memory returned from malloc.
7788
7789         * dbus/dbus-string.c (_dbus_string_init): clamp max length to
7790         leave room for align_offset and nul byte
7791         (fixup_alignment): function to track an align_offset and
7792         ensure real->str is aligned
7793         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated,
7794         to allow a nul byte plus align offset
7795         (_dbus_string_lock): fix overflow issue
7796         (_dbus_string_init_const_len): add assertions on sanity of len,
7797         assign allocated to be ALLOCATION_PADDING larger than len
7798         (set_length): fixup the overflow handling
7799         (_dbus_string_get_data_len): fix overflow in assertion
7800         (open_gap): detect overflow in size of gap to be opened
7801         (_dbus_string_lengthen): add overflow check
7802         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
7803         (_dbus_string_append): add overflow check
7804         (_dbus_string_append_unichar): overflow
7805         (_dbus_string_delete): fix overflow in assertion
7806         (_dbus_string_copy_len): overflow in assertion
7807         (_dbus_string_replace_len): overflows in assertions
7808         (_dbus_string_find): change to implement in terms of
7809         _dbus_string_find_to
7810         (_dbus_string_find_to): assorted fixage
7811         (_dbus_string_equal_c_str): assert c_str != NULL,
7812         fix logic so the function works
7813         (_dbus_string_ends_with_c_str): fix overflow thingy
7814         (_dbus_string_base64_encode): overflow fix
7815         (_dbus_string_validate_ascii): overflow
7816         (_dbus_string_validate_nul): overflow
7817
7818 2003-02-26  Havoc Pennington  <hp@redhat.com>
7819
7820         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
7821
7822 2003-02-26  Alexander Larsson  <alexl@redhat.com>
7823
7824         * configure.in:
7825         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
7826
7827         * dbus/dbus-connection.c:
7828         * dbus/dbus-connection.h:
7829         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
7830         Add dbus_connection_set_wakeup_main_function and use it when queueing
7831         incoming and outgoing messages.
7832
7833
7834         * dbus/dbus-dataslot.c:
7835         Threadsafe usage of DBusDataSlotAllocator
7836
7837         * dbus/dbus-message.c: (dbus_message_get_args_iter):
7838         dbus_new can fail.
7839
7840         * dbus/dbus-server-unix.c:
7841         Add todo comment
7842
7843         * glib/dbus-gmain.c:
7844         Implement the new wakeup functions for glib.
7845
7846         * glib/Makefile.am:
7847         * glib/test-thread-client.c:
7848         * glib/test-thread-server.c:
7849         * glib/test-thread.h:
7850         Initial cut at some thread test code. Not really done yet.
7851
7852 2003-02-26  Havoc Pennington  <hp@pobox.com>
7853
7854         * dbus/dbus-connection.c
7855         (dbus_connection_send_message_with_reply_and_block): fix crash
7856         where we ref'd the outgoing message instead of the returned reply
7857
7858         * dbus/dbus-transport-unix.c (do_authentication): check read watch
7859         at the end of this function, so if we didn't need to read for
7860         authentication, we reinstall it for receiving messages
7861
7862         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to
7863         a NULL sender for peer-to-peer case
7864
7865         * dbus/dbus-transport-unix.c (check_read_watch): handle
7866         !authenticated case correctly
7867
7868         * glib/dbus-gmain.c: add support for DBusServer
7869
7870         * dbus/dbus-server.c: add data slot support
7871
7872         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
7873         return values and handle errors
7874
7875         * dbus/dbus-dataslot.c: factor out the data slot stuff from
7876         DBusConnection
7877
7878         * Doxyfile.in (INPUT): add glib subdir
7879
7880         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename
7881         setup_with_g_main instead of hookup_with_g_main; write docs
7882
7883 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
7884
7885         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
7886         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
7887         * dbus/dbus-message.c: (dbus_message_append_boolean),
7888         (dbus_message_append_boolean_array),
7889         (dbus_message_get_args_valist), (_dbus_message_test):
7890         * dbus/dbus-message.h:
7891         * doc/dbus-specification.sgml:
7892         Various fixes as pointed out by Havoc.
7893
7894         * test/data/invalid-messages/bad-boolean-array.message:
7895         * test/data/invalid-messages/bad-boolean.message:
7896         Add invalid boolean value test cases.
7897
7898 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
7899
7900         * dbus/dbus-internals.c: (_dbus_type_to_string):
7901         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
7902         (_dbus_marshal_validate_arg):
7903         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
7904         * dbus/dbus-message.c: (dbus_message_append_args_valist),
7905         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
7906         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
7907         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
7908         (dbus_message_iter_get_double),
7909         (dbus_message_iter_get_boolean_array), (message_iter_test):
7910         * dbus/dbus-message.h:
7911         * dbus/dbus-protocol.h:
7912         * doc/dbus-specification.sgml:
7913         * test/data/valid-messages/lots-of-arguments.message:
7914         Add support for boolean and boolean array types.
7915
7916 2003-02-23  Havoc Pennington  <hp@pobox.com>
7917
7918         * dbus/dbus-keyring.c: finish most of this implementation and
7919         simple unit test
7920
7921         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
7922         these barf if the error isn't cleared to NULL
7923
7924         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
7925         (_dbus_create_directory): new function
7926
7927         * dbus/dbus-errors.c (dbus_set_error): fix warning
7928
7929         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
7930         (_dbus_string_hex_decode): new function
7931         (test_hex_roundtrip): test code
7932
7933         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
7934
7935         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
7936
7937         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use
7938         the save-to-temp/rename trick to atomically write the new file
7939         (_dbus_string_parse_uint): new function
7940
7941 2003-02-22  Havoc Pennington  <hp@pobox.com>
7942
7943         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
7944
7945 2003-02-22  Havoc Pennington  <hp@pobox.com>
7946
7947         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
7948         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
7949
7950         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
7951
7952         * dbus/test/data/sha-1: add US government test suite for SHA-1
7953
7954 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
7955
7956         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
7957         Make string arrays NULL-terminated.
7958
7959         * dbus/dbus-memory.c: (dbus_free_string_array):
7960         * dbus/dbus-memory.h:
7961         New function for freeing NULL-terminated string arrays.
7962
7963         * dbus/dbus-message-builder.c: (append_quoted_string),
7964         (_dbus_message_data_load):
7965         Add support for array types.
7966
7967         * dbus/dbus-message.c: (check_message_handling):
7968         Add more types as test cases.
7969
7970         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
7971         (_dbus_string_parse_double):
7972         Add the start offset to the end offset.
7973
7974         * test/data/valid-messages/lots-of-arguments.message:
7975         New test message with lots of arguments.
7976
7977 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
7978
7979         * dbus/dbus-message.c: (dbus_message_append_nil),
7980         (dbus_message_append_int32), (dbus_message_append_uint32),
7981         (dbus_message_append_double), (dbus_message_append_string),
7982         (dbus_message_append_int32_array),
7983         (dbus_message_append_uint32_array),
7984         (dbus_message_append_double_array),
7985         (dbus_message_append_byte_array),
7986         (dbus_message_append_string_array):
7987         Fix all out-of-memory handling in these functions.
7988
7989 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
7990
7991         * dbus/dbus-message.c: (dbus_message_append_nil):
7992         Fix a silly.
7993
7994 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
7995
7996         * dbus/dbus-message.c: (dbus_message_append_args_valist),
7997         (dbus_message_append_nil), (dbus_message_append_int32_array),
7998         (dbus_message_append_uint32_array),
7999         (dbus_message_append_double_array),
8000         (dbus_message_append_byte_array),
8001         (dbus_message_append_string_array), (dbus_message_get_args_valist),
8002         (dbus_message_iter_get_int32_array),
8003         (dbus_message_iter_get_uint32_array),
8004         (dbus_message_iter_get_double_array),
8005         (dbus_message_iter_get_byte_array),
8006         (dbus_message_iter_get_string_array):
8007
8008         * dbus/dbus-message.h:
8009         Add functions for appending and getting arrays.
8010
8011 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
8012
8013         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
8014         element size at least 8 bytes, fixes mempool tests on
8015         64-bit machines.
8016
8017 2003-02-20  Alexander Larsson  <alexl@redhat.com>
8018
8019         * dbus/dbus-transport-unix.c (unix_do_iteration):
8020         Unlock the connection mutex during a blocking select call.
8021         Add todo about how we need a way to wake up the select.
8022
8023         * dbus/dbus-connection-internal.h:
8024         * dbus/dbus-connection.c:
8025         Add _dbus_connection_lock and _dbus_connection_unlock.
8026
8027 2003-02-19  Havoc Pennington  <hp@pobox.com>
8028
8029         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
8030         Doxyfile.in, not Doxyfile
8031
8032         * dbus/dbus-keyring.c: do some hacking on this
8033
8034         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
8035
8036         * dbus/dbus-errors.c (dbus_set_error_const): do not call
8037         dbus_error_init
8038         (dbus_set_error): remove dbus_error_init, check for message ==
8039         NULL *before* we sprintf into it, and add @todo about including
8040         system headers in this file
8041
8042         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
8043
8044         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
8045
8046         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
8047         get various bits of user information based on either username
8048         or user ID
8049         (_dbus_homedir_from_username): new function
8050
8051 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
8052
8053         * configure.in:
8054         Add check for nonposix getpwnam_r
8055
8056         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
8057         Align the pool element size to a sizeof (void *) boundary.
8058
8059         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
8060         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
8061         General Solaris fixes.
8062
8063         * test/data/valid-messages/simplest-manual.message:
8064         Explicitly state that we want little-endian packing.
8065
8066 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
8067
8068         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
8069
8070         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket):
8071         Added to create a transport connecting using a tcp/ip socket.
8072
8073         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
8074         to a tcp socket at given host and port.
8075         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
8076         hostname and port.
8077
8078         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
8079
8080         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket):
8081         Added to create a server listening on a TCP/IP socket.
8082
8083 2003-02-19  Havoc Pennington  <hp@pobox.com>
8084
8085         Throughout: mop up all the Doxygen warnings and undocumented
8086         stuff.
8087
8088         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
8089         to search any paths.
8090
8091         * dbus/dbus-threads.c: move global mutex initializers to
8092         dbus-internals.h, multiple prototypes was confusing doxygen
8093         besides being kind of ugly
8094
8095         * Doxyfile (PREDEFINED): have Doxygen define
8096         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from
8097         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
8098         (do not abuse the feature! it's for stuff like the autogenerated
8099         macros in dbus-md5.c, not just for things you don't feel like
8100         documenting...)
8101
8102 2003-02-18  Havoc Pennington  <hp@pobox.com>
8103
8104         * dbus/dbus-string.c (_dbus_string_zero): new function
8105
8106         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
8107         wrap it in some dbus-friendly API
8108
8109         * dbus/dbus-types.h: add 16-bit types
8110
8111 2003-02-18  Joe Shaw  <joe@assbarn.com>
8112
8113         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
8114         credentials from our currently running process.
8115         (get_word): Fix a buglet where we were copying the entire length
8116         instead of relative to our position.
8117
8118         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
8119         keys on the stack... it's 640k of data.
8120
8121         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
8122         read the credentials byte off the socket, even if we don't have
8123         SO_PEERCRED.
8124         (_dbus_poll): Implement poll() using select() for systems which
8125         don't have it.
8126
8127         * glib/test-dbus-glib.c (main): Print out an error if no
8128         parameters are given.
8129
8130         * test/data/auth/fallback.auth-script: Added.  Tests that a client
8131         can fallback to a secondary auth mechanism if the first fails.
8132
8133 2003-02-18  Havoc Pennington  <hp@pobox.com>
8134
8135         * AUTHORS: add Alex
8136
8137 2003-02-17  Havoc Pennington  <hp@pobox.com>
8138
8139         * doc/dbus-specification.sgml: lots of cosmetic
8140         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
8141         env variable to DBUS_BUS_ADDRESS, s/client/application/,
8142         s/server/bus/ (except in authentication section). Add a section
8143         "Message Bus Message Routing"
8144
8145 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
8146
8147         Release 0.4
8148
8149         * NEWS: Update
8150
8151 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
8152
8153         * doc/dbus-specification.sgml:
8154         Specification updates.
8155
8156 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
8157
8158         * bus/activation.c: (bus_activation_init), (child_setup),
8159         (bus_activation_activate_service):
8160         * bus/activation.h:
8161         * bus/main.c: (main):
8162         Set DBUS_ADDRESS environment variable.
8163
8164         * dbus/dbus-errors.c: (dbus_set_error):
8165         Don't use va_copy since that's a C99 feature.
8166
8167         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
8168         (_dbus_spawn_async):
8169         * dbus/dbus-sysdeps.h:
8170         Add child_setup_func to _dbus_spawn_async.
8171
8172         * doc/dbus-specification.sgml:
8173         Update specification.
8174
8175         * test/spawn-test.c: (setup_func), (main):
8176         Fix test.
8177
8178 2003-02-17  Alexander Larsson  <alexl@redhat.com>
8179
8180         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
8181         Added todo.
8182
8183 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
8184
8185         * doc/.cvsignore:
8186         * doc/Makefile.am:
8187         * doc/dbus-test-plan.sgml:
8188         Add test plan document.
8189
8190         * test/Makefile.am:
8191         Fix distcheck.
8192
8193 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
8194
8195         * dbus/dbus-message.c: (decode_header_data),
8196         (_dbus_message_loader_return_buffer):
8197         Set the header padding amount when loading a message.
8198
8199 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
8200
8201         * bus/dispatch.c: (send_one_message):
8202         Only send broadcast messages to registered connections.
8203
8204         * dbus/dbus-message.c: (dbus_message_name_is):
8205         * dbus/dbus-message.h:
8206         New convenience function.
8207
8208         * dbus/dbus-transport-debug.c: (do_reading):
8209         Only dispatch one message per run.
8210
8211         * test/Makefile.am:
8212         * test/bus-test.c: (new_connection_callback), (die),
8213         (test_hello_client1_handler), (test_hello_client2_handler),
8214         (test_hello_replies), (main):
8215
8216         * test/bus-test-loop.[ch]:
8217         Add these.
8218
8219 2003-02-16  Havoc Pennington  <hp@pobox.com>
8220
8221         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
8222         backward conditional
8223
8224 2003-02-16  Alexander Larsson  <alexl@redhat.com>
8225
8226         * dbus/dbus-connection.c:
8227         Implement sent_message_with_reply. (with_reply_and block is still
8228         busted).
8229         Made dispatch_message not lose message if OOM.
8230
8231         * dbus/dbus-errors.h:
8232         Add NoReply error (for reply timeouts).
8233
8234 2003-02-16  Alexander Larsson  <alexl@redhat.com>
8235
8236         * dbus/dbus-hash.c (_dbus_hash_table_unref):
8237         Actually free keys and values when destroying hashtable.
8238
8239 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
8240
8241         * dbus/dbus-auth.c: (client_try_next_mechanism):
8242         Plug a leak.
8243
8244         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
8245         Return TRUE if there's no thread implementation around.
8246
8247         * glib/dbus-gmain.c: (free_source),
8248         (dbus_connection_hookup_with_g_main):
8249         Make sure to remove the GSource when the connection is finalized.
8250
8251 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
8252
8253         * bus/dispatch.c: (bus_dispatch_message_handler):
8254         * dbus/dbus-errors.h:
8255         Return an error if someone tries to send a message to a service
8256         that doesn't exist.
8257
8258 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
8259
8260         * bus/activation.c: (load_directory), (bus_activation_init),
8261         (bus_activation_activate_service):
8262         * bus/activation.h:
8263         * bus/driver.c:
8264         (bus_driver_handle_activate_service), (bus_driver_handle_message):
8265         More work on the activation handling.
8266
8267         * dbus/dbus-errors.h:
8268         Add some error messages
8269
8270         * dbus/dbus-message.c: (dbus_message_new_error_reply):
8271         * dbus/dbus-message.h:
8272         New function that creates an error message.
8273
8274         * dbus/dbus-protocol.h:
8275         Add ACTIVATE_SERVER message.
8276
8277         * dbus/dbus-server-unix.c: (unix_handle_watch),
8278         (_dbus_server_new_for_domain_socket):
8279         Call _dbus_fd_set_close_on_exec.
8280
8281         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
8282         (_dbus_spawn_async), (_dbus_disable_sigpipe),
8283         (_dbus_fd_set_close_on_exec):
8284         * dbus/dbus-sysdeps.h:
8285         Add _dbus_fd_set_close_on exec function. Also add function that checks
8286         that all open fds are set to close-on-exec and warns otherwise.
8287
8288         * dbus/dbus-transport-unix.c:
8289         (_dbus_transport_new_for_domain_socket):
8290         Call _dbus_fd_set_close_on_exec.
8291
8292 2003-02-16  Havoc Pennington  <hp@pobox.com>
8293
8294         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
8295         allow people to avoid setting SIGPIPE to SIG_IGN
8296         (_dbus_connection_new_for_transport): disable SIGPIPE unless
8297         we've been asked not to
8298
8299 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
8300
8301         * dbus/dbus-list.c: (_dbus_list_append_link),
8302         (_dbus_list_prepend_link):
8303         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
8304         (dbus_realloc):
8305         Warning fixes.
8306
8307 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
8308
8309         * bus/Makefile.am:
8310         * bus/activation.c: (bus_activation_entry_free),
8311         (add_desktop_file_entry), (load_directory), (bus_activation_init):
8312         * bus/activation.h:
8313         * bus/main.c: (main):
8314         Add simple activation support, doesn't work yet though.
8315
8316 2003-02-15   Zack Rusin  <zack@kde.org>
8317
8318         * qt/dbus-qthread.cpp:  small casting fix
8319
8320 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
8321
8322         * dbus/dbus-errors.c: (dbus_set_error):
8323         * dbus/dbus-errors.h:
8324         Add a few errors and make dbus_set_error void.
8325
8326         * dbus/dbus-sysdeps.c:
8327         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
8328         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
8329         * dbus/dbus-sysdeps.h:
8330         Add _dbus_spawn_async.
8331
8332         * test/spawn-test.c: (main):
8333         Test for _dbus_spawn_async.
8334
8335 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
8336
8337         * dbus/dbus-internals.h:
8338         Fix build without tests.
8339
8340         * dbus/dbus-list.c: (alloc_link):
8341         Fix a segfault when a malloc fails.
8342
8343         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
8344         (dbus_malloc0), (dbus_realloc):
8345         Add support for malloc debugging.
8346
8347 2003-02-15  Alexander Larsson  <alexl@redhat.com>
8348
8349         * dbus/dbus-threads.c:
8350         * dbus/dbus-threads.h:
8351         Add condvars. Remove static mutext from API.
8352         Implement static mutexes by initializing them from threads_init.
8353
8354         * glib/dbus-gthread.c:
8355         * qt/dbus-qthread.cpp:
8356         Update with the thread api changes.
8357
8358
8359         * dbus/dbus-list.c:
8360         * dbus/dbus-list.h:
8361         Turn StaticMutex into normal mutex + init function.
8362         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
8363         _dbus_list_append_link, _dbus_list_prepend_link
8364
8365
8366         * dbus/dbus-sysdeps.c:
8367         * dbus/dbus-sysdeps.h:
8368         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
8369         _dbus_atomic_dec. Only slow fallback implementation at the moment.
8370
8371         * dbus/dbus-protocol.h:
8372         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
8373
8374         * dbus/dbus-message.c:
8375         Make ref/unref atomic.
8376         Fix some docs.
8377
8378         * dbus/dbus-connection-internal.h:
8379         * dbus/dbus-connection.c:
8380         * dbus/dbus-connection.h:
8381         Make threadsafe.
8382         Change _peek to _borrow,_return & _steal_borrowed.
8383         Change disconnect callback to event.
8384         Make dbus_connection_dispatch_messages reentrant.
8385
8386         * dbus/dbus-transport.c:
8387         Don't ref the connection on calls to the transport
8388         implementation.
8389
8390         * dbus/dbus-message-handler.c:
8391         Make threadsafe.
8392
8393         * glib/dbus-gmain.c:
8394         Don't use peek_message anymore
8395
8396         * test/Makefile.am:
8397         * test/debug-thread.c:
8398         * test/debug-thread.h:
8399         Simple thread implementation that asserts() on deadlocks in
8400         single-threaded code.
8401
8402         * test/bus-test.c:
8403         (main) Call debug_threads_init.
8404
8405         * test/watch.c:
8406         Use disconnect message instead of disconnect callback.
8407
8408         * bus/connection.c:
8409         * bus/connection.h:
8410         Don't call dbus_connection_set_disconnect_function. Instead export
8411         bus_connection_disconnect.
8412
8413         * bus/dispatch.c:
8414         Call bus_connection_disconnect when we get a disconnected message.
8415
8416 2003-02-15  Havoc Pennington  <hp@pobox.com>
8417
8418         * dbus/dbus-message.c (dbus_message_new): fool around with the
8419         docs
8420
8421 2003-02-14  Havoc Pennington  <hp@pobox.com>
8422
8423         * dbus/dbus-mempool.c: fail if the debug functions so indicate
8424
8425         * dbus/dbus-memory.c: fail if the debug functions indicate we
8426         should
8427
8428         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
8429         (_dbus_decrement_fail_alloc_counter): debug functions to
8430         simulate memory allocation failures
8431
8432 2003-02-14  Havoc Pennington  <hp@pobox.com>
8433
8434         * dbus/dbus-errors.h (struct DBusError): add a word of padding
8435         to DBusError
8436
8437 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
8438
8439         * bus/driver.c: (bus_driver_handle_hello):
8440         * bus/driver.h:
8441         * bus/services.c: (bus_service_lookup):
8442         Reorder message sending so we get a more sane order.
8443
8444         * test/bus-test.c: (message_handler):
8445         Fix tyop.
8446
8447 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
8448
8449         * bus/driver.c: (bus_driver_send_service_deleted),
8450         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8451         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
8452         (bus_driver_send_welcome_message),
8453         (bus_driver_handle_list_services),
8454         (bus_driver_handle_acquire_service),
8455         (bus_driver_handle_service_exists):
8456         * dbus/dbus-bus.c: (dbus_bus_register_client),
8457         (dbus_bus_acquire_service), (dbus_bus_service_exists):
8458         * dbus/dbus-errors.c: (dbus_result_to_string):
8459         * dbus/dbus-errors.h:
8460         * dbus/dbus-message.c: (dbus_message_append_args),
8461         (dbus_message_append_args_valist), (dbus_message_get_args),
8462         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
8463         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
8464         (dbus_message_iter_get_byte_array),
8465         (dbus_message_iter_get_string_array), (message_iter_test),
8466         (check_message_handling), (_dbus_message_test):
8467         * dbus/dbus-message.h:
8468         * test/bus-test.c: (main):
8469         Change fields to arguments in messages, so that they won't be
8470         confused with header fields.
8471
8472         * glib/test-dbus-glib.c: (main):
8473         Remove append_fields from hello message.
8474
8475 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
8476
8477         * dbus/dbus-errors.c:
8478         * dbus/dbus-message.c:
8479         * dbus/dbus-string.c:
8480         Documentation fixes.
8481
8482 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
8483
8484         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
8485         (remove_timeout):
8486         Implement support for timeouts in dbus-glib.
8487
8488 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
8489
8490         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
8491         * dbus/dbus-message.c: (process_test_subdir):
8492         * test/break-loader.c: (find_breaks_based_on):
8493         Plug some memory leaks.
8494
8495 2003-02-13  Richard Hult  <rhult@codefactory.se>
8496
8497         * bus/main.c: Fix build.
8498
8499         * dbus/dbus-errors.h:
8500         * dbus/dbus-errors.c: Fix copyright for Anders.
8501
8502 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
8503
8504         * bus/Makefile.am:
8505         Add utils.[ch]
8506
8507         * bus/connection.c: (bus_connection_foreach):
8508         Fix a warning.
8509
8510         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
8511         (unescape_string), (new_section), (parse_section_start),
8512         (parse_key_value), (report_error), (bus_desktop_file_load),
8513         (bus_desktop_file_get_string):
8514         * bus/desktop-file.h:
8515         Use DBusError for error reporting.
8516
8517         * bus/dispatch.c: (send_one_message),
8518         (bus_dispatch_message_handler):
8519         * bus/driver.c: (bus_driver_send_service_deleted),
8520         (bus_driver_send_service_created), (bus_driver_send_service_lost),
8521         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
8522         (bus_driver_send_welcome_message),
8523         (bus_driver_handle_list_services),
8524         (bus_driver_handle_acquire_service),
8525         (bus_driver_handle_service_exists):
8526         * bus/loop.c: (bus_loop_run):
8527         * bus/main.c:
8528         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
8529
8530         * bus/utils.c: (bus_wait_for_memory):
8531         * bus/utils.h:
8532         New files with general utility functions.
8533
8534         * dbus/dbus-internals.h:
8535         Remove _DBUS_HANDLE_OOM.
8536
8537 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
8538
8539         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
8540         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
8541         * dbus/dbus-errors.h:
8542         Add DBusError structure.
8543
8544 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
8545
8546         * test/data/valid-messages/standard-acquire-service.message:
8547         * test/data/valid-messages/standard-hello.message:
8548         * test/data/valid-messages/standard-list-services.message:
8549         * test/data/valid-messages/standard-service-exists.message:
8550         Add some standard messages.
8551
8552 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
8553
8554         * bus/driver.c: (bus_driver_send_welcome_message),
8555         (bus_driver_handle_list_services),
8556         (bus_driver_handle_acquire_service),
8557         (bus_driver_handle_service_exists), (bus_driver_handle_message):
8558         Update for API changes in libdbus.
8559
8560         * dbus/dbus-message.c: (dbus_message_new_reply):
8561         * dbus/dbus-message.h:
8562         Remove the name argument. The spec states that replies shouldn't
8563         have a name.
8564
8565 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
8566
8567         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
8568         (report_error), (bus_desktop_file_load), (lookup_section),
8569         (lookup_line), (bus_desktop_file_get_raw),
8570         (bus_desktop_file_get_string):
8571         * bus/desktop-file.h:
8572         Some fixes, and new functions for getting a key value from a section.
8573
8574 2003-02-13  Havoc Pennington  <hp@pobox.com>
8575
8576         * test/data/auth/fail-after-n-attempts.auth-script: new test
8577
8578         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
8579         reject the client.
8580
8581 2003-02-13  Havoc Pennington  <hp@pobox.com>
8582
8583         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
8584         dbus_credentials_match were backward
8585
8586         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
8587         NO_CREDENTIALS and ROOT_CREDENTIALS
8588
8589         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine
8590         into here. Never process more commands after we've reached an
8591         end state; store further data as unused bytes.
8592
8593         * test/data/auth/*: add more auth tests
8594
8595         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
8596         command to match exact string and EXPECT_UNUSED to match unused
8597         bytes
8598
8599         * test/Makefile.am (dist-hook): fix to dist all the test stuff
8600
8601 2003-02-12  Havoc Pennington  <hp@pobox.com>
8602
8603         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
8604         \r off of popped lines
8605
8606         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
8607         scripts
8608
8609         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
8610         SEND, append \r\n
8611
8612 2003-02-12  Havoc Pennington  <hp@pobox.com>
8613
8614         * dbus/Makefile.am: remove break-loader from the build, since it
8615         moved.
8616
8617         * configure.in: add --enable-gcov to turn on coverage profiling
8618         flags and disable optimization
8619
8620 2003-02-10  Havoc Pennington  <hp@pobox.com>
8621
8622         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync
8623         initial cut at test framework for DBusAuth from laptop.
8624         Doesn't quite work yet but it compiles and I need to get
8625         it off the 266mhz laptop. ;-)
8626
8627         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
8628         fix a memleak in error case
8629
8630 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
8631
8632         * bus/Makefile.am:
8633         * bus/desktop-file.c:
8634         * bus/desktop-file.h:
8635         Add a desktop file parser.
8636
8637 2003-02-11  Zack Rusin  <zack@kde.org>
8638
8639         * qt/message.[h|cpp]: sample implementation
8640         of the KDE wrapper for DBusMessage
8641
8642 2003-02-09  Zack Rusin  <zack@kde.org>
8643
8644         * test/bus-test.c: make_it_compile
8645         * doc/dbus-specification.sgml: minimal semantic fix
8646
8647 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
8648
8649         Release 0.3
8650
8651         * NEWS: Update
8652
8653 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
8654
8655         * dbus/Makefile.am:
8656         * dbus/dbus-break-loader.c:
8657         * test/Makefile.am:
8658         * test/break-loader.c:
8659         Move dbus-break-loader to test/ and rename it to break-loader.
8660
8661 2003-02-02  Havoc Pennington  <hp@pobox.com>
8662
8663         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files
8664         for code to manage cookies in your home directory
8665
8666         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
8667
8668         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
8669         to authenticate, then disconnect the client.
8670
8671 2003-02-03  Alexander Larsson  <alexl@redhat.com>
8672
8673         * dbus/dbus-message.c (dbus_message_append_fields):
8674         Correct docs.
8675
8676 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
8677
8678         * doc/dbus-specification.sgml:
8679         Update address format section.
8680
8681 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
8682
8683         * test/Makefile.am:
8684         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
8685         (message_handler), (new_connection_callback), (loop_quit),
8686         (loop_run), (main):
8687         Add bus test.
8688
8689 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
8690
8691         * bus/driver.c: (bus_driver_handle_service_exists):
8692         Simplify the code a bit.
8693
8694         * dbus/dbus-bus.c: (dbus_bus_service_exists):
8695         Fix a silly.
8696
8697 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
8698
8699         * bus/Makefile.am:
8700         Add libdbus-daemon.la and link to it.
8701
8702 2003-02-01  James Willcox  <jwillcox@gnome.org>
8703
8704         * bus/driver.c: (bus_driver_handle_own_service):
8705         Actually include the service reply code in the message.
8706
8707 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
8708
8709         * bus/driver.c: (bus_driver_handle_service_exists):
8710         Don't unref the incoming message.
8711
8712 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
8713
8714         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
8715
8716 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
8717
8718         * dbus/dbus-server.c: (dbus_server_listen):
8719         * dbus/dbus-transport.c: (_dbus_transport_open):
8720         ifdef out the calls to the debug transport and server.
8721
8722 2003-02-02  Alexander Larsson  <alexl@redhat.com>
8723
8724         * dbus/dbus-watch.c (dbus_watch_get_flags):
8725         Add note in the docs that ERROR or HANGUP won't be returned
8726         and are assumed always on.
8727
8728         * glib/dbus-gmain.c (add_watch):
8729         Always add IO_ERR | IO_HUP
8730
8731         * dbus/dbus-message.h:
8732         Add semicolon after dbus_message_iter_get_string_array().
8733         Makes qt code build again
8734
8735 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
8736
8737         * bus/driver.c: (create_unique_client_name),
8738         (bus_driver_handle_hello):
8739         Don't take a name, just use a numeric id to identify
8740         each client.
8741
8742         * dbus/Makefile.am:
8743         * dbus/dbus-bus.c: (dbus_bus_register_client),
8744         (dbus_bus_acquire_service), (dbus_bus_service_exists):
8745         * dbus/dbus-bus.h:
8746         Add new convenience functions for communicating with the bus.
8747
8748         * dbus/dbus-message.h:
8749
8750         * dbus/dbus-protocol.h:
8751         Fix a typo.
8752
8753 2003-02-01  Alexander Larsson  <alexl@redhat.com>
8754
8755         * dbus/dbus-message.c (dbus_message_append_fields):
8756         Add some more doc comments.
8757
8758 2003-02-01  Havoc Pennington  <hp@pobox.com>
8759
8760         * dbus/dbus-break-loader.c (randomly_modify_length): change
8761         a 4-byte value in the message as if it were a length
8762
8763         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
8764         execute bit on saved files
8765
8766 2003-02-01  Havoc Pennington  <hp@pobox.com>
8767
8768         * dbus/dbus-break-loader.c (main): new program to find messages
8769         that break the loader.
8770
8771         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
8772         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
8773
8774         * dbus/dbus-string.c (_dbus_string_set_byte): new
8775
8776 2003-01-31  Havoc Pennington  <hp@pobox.com>
8777
8778         * dbus/dbus-message.c: refactor the test code to be more general,
8779         in preparation for writing a "randomly permute test cases to
8780         try to break the loader" program.
8781
8782 2003-01-31  Havoc Pennington  <hp@pobox.com>
8783
8784         * doc/dbus-specification.sgml: work on the specification
8785
8786         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check
8787         the protocol version of the message.
8788
8789         * dbus/dbus-protocol.h: drop special _REPLY names, the spec
8790         no longer specifies that.
8791         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not
8792         1/2/3/4)
8793
8794         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
8795         "break" for DBUS_TYPE_NIL, remove @todo
8796
8797 2003-01-31  Havoc Pennington  <hp@pobox.com>
8798
8799         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename
8800         just set_is_error/get_is_error as this is a commonly-used
8801         function, and write docs.
8802
8803 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
8804
8805         * dbus/dbus-address.c: (dbus_address_entry_free):
8806         Free key and value lists.
8807
8808         * dbus/dbus-internals.c: (_dbus_type_to_string):
8809         Add the types we didn't have.
8810
8811         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
8812         (_dbus_marshal_validate_arg):
8813         Add NIL types.
8814
8815         * dbus/dbus-message.c: (dbus_message_set_sender):
8816         Remove todo about being able to set sender to NULL.
8817
8818         (dbus_message_set_is_error_reply),
8819         (dbus_message_get_is_error_reply):
8820         * dbus/dbus-message.h:
8821         New functions.
8822
8823         * dbus/dbus-protocol.h:
8824         Add error reply flag.
8825
8826         * test/data/valid-messages/opposite-endian.message:
8827         Add NIL type to test.
8828
8829 2003-01-31  Havoc Pennington  <hp@pobox.com>
8830
8831         * doc/dbus-specification.sgml: fully specify the header.  Add
8832         flags and major protocol version, and change header/body len to
8833         unsigned.
8834
8835         * dbus/dbus-message-builder.c (append_saved_length): append length
8836         as uint32
8837
8838         * dbus/dbus-message.c (dbus_message_create_header): change header
8839         length and body length to unsigned. Add the new fields from the
8840         spec
8841         (_dbus_message_loader_return_buffer): unsigned header/body len
8842
8843 2003-01-30  Havoc Pennington  <hp@pobox.com>
8844
8845         * dbus/dbus-auth.c: rework to use only REJECTED, no
8846         MECHANISMS
8847
8848         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just
8849         use REJECTED, suggested by Mark McLoughlin
8850
8851 2003-01-30  Havoc Pennington  <hp@pobox.com>
8852
8853         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
8854         a better way to report errors here. e.g.  "unix address lacks
8855         path" or something. also "no such file" when the path doesn't
8856         exist, etc.
8857
8858         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
8859         leaking list nodes
8860         (dbus_parse_address): add @todo about documenting address format,
8861         and allowing , and ; to be escaped
8862
8863 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
8864
8865         * dbus/Makefile.am:
8866         Add dbus-address.[ch]
8867
8868         * dbus/dbus-address.c: (dbus_address_entry_free),
8869         (dbus_address_entries_free), (create_entry),
8870         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
8871         (dbus_parse_address), (_dbus_address_test):
8872         * dbus/dbus-address.h:
8873         New files for dealing with address parsing.
8874
8875         * dbus/dbus-connection.c:
8876         Document timeout functions.
8877
8878         * dbus/dbus-message.c:
8879         Document dbus_message_new_from_message.
8880
8881         * dbus/dbus-server-debug.c:
8882         Document.
8883
8884         * dbus/dbus-server.c: (dbus_server_listen):
8885         Parse address and use correct server implementation.
8886
8887         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
8888         * dbus/dbus-string.h:
8889         New function with test.
8890
8891         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
8892         * dbus/dbus-test.h:
8893         Add address tests.
8894
8895         * dbus/dbus-transport-debug.c:
8896         Document.
8897
8898         * dbus/dbus-transport.c: (_dbus_transport_open):
8899         Parse address and use correct transport implementation.
8900
8901 2003-01-30  Havoc Pennington  <hp@pobox.com>
8902
8903         * dbus/dbus-message.c: use message->byte_order instead of
8904         DBUS_COMPILER_BYTE_ORDER throughout.
8905         (dbus_message_create_header): pad header to align the
8906         start of the body of the message to 8-byte boundary
8907
8908         * dbus/dbus-marshal.h: make all the demarshalers take const
8909         DBusString arguments.
8910
8911         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
8912         validate message args here, so we don't have to do slow validation
8913         later, and so we catch bad messages as they are incoming. Also add
8914         better checks on header_len and body_len. Also fill in
8915         message->byte_order
8916
8917         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
8918         implemented properly)
8919         (_dbus_string_validate_nul): new function to check all-nul
8920
8921         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename
8922         get_arg_end_pos and remove all validation
8923         (_dbus_marshal_validate_arg): actually do validation here.
8924
8925 2003-01-29  Havoc Pennington  <hp@pobox.com>
8926
8927         * dbus/dbus-message.c (check_message_handling): fix assertion
8928         failure on set_client_serial
8929
8930 2003-01-28  Havoc Pennington  <hp@pobox.com>
8931
8932         * dbus/dbus-server-debug.c: Add doc section comments
8933
8934         * dbus/dbus-transport-debug.c: add doc section comments
8935
8936 2003-01-28  Havoc Pennington  <hp@redhat.com>
8937
8938         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
8939         the reverse order from how I had it
8940         (_dbus_string_base64_encode): reverse encoding order. I was
8941         basically byteswapping everything during encoding.
8942
8943 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
8944
8945         * dbus/dbus-connection-internal.h:
8946         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
8947         (_dbus_connection_remove_timeout):
8948         Add functions for adding and removing timeouts.
8949
8950         * dbus/dbus-message.c: (dbus_message_new_from_message):
8951         Add new function that takes a message and creates an exact
8952         copy of it, but with the refcount set to 1.
8953         (check_message_handling):
8954         Fix build error.
8955
8956         * dbus/dbus-server-protected.h:
8957         * dbus/dbus-server.c: (_dbus_server_init_base),
8958         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
8959         (dbus_server_set_timeout_functions):
8960         (_dbus_server_remove_timeout):
8961         New functions so that a server can add and remove timeouts.
8962
8963         (dbus_server_listen):
8964         Add commented out call to dbus_server_debug_new.
8965
8966         * dbus/dbus-timeout.c: (_dbus_timeout_new):
8967         Actually set the handler, doh.
8968
8969         * dbus/dbus-transport.c: (_dbus_transport_open):
8970         Add commented out call to dbus_transport_debug_client_new.
8971
8972         * dbus/Makefile.am:
8973         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
8974
8975 2003-01-28  Havoc Pennington  <hp@pobox.com>
8976
8977         * dbus/dbus-message.c (check_message_handling): function to check
8978         on the loaded message, iterates over it etc.
8979
8980 2003-01-28  Havoc Pennington  <hp@pobox.com>
8981
8982         * test/Makefile.am (dist-hook): fix make distdir
8983
8984         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
8985
8986 2003-01-27  Havoc Pennington  <hp@pobox.com>
8987
8988         * dbus/dbus-mempool.c (time_for_size): replace printf with
8989         _dbus_verbose
8990
8991         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
8992         empty lines; fix the SAVE_LENGTH stuff to be
8993         START_LENGTH/END_LENGTH so it actually works; couple other
8994         bugfixes
8995
8996         * test/Makefile.am (dist-hook): add dist-hook for .message files
8997
8998         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
8999         can be constant or locked.
9000         (_dbus_string_free): allow freeing a const string as
9001         documented/intended
9002
9003         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
9004
9005         * dbus/dbus-test-main.c (main): take an argument which is the
9006         directory containing test data
9007
9008         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
9009         argument to this and load all the messages in test/data/
9010         checking that they can be loaded or not loaded as appropriate.
9011
9012 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
9013
9014         * bus/dispatch.c: (bus_dispatch_message_handler):
9015         Dispatch messages sent to services.
9016
9017         * bus/driver.c: (bus_driver_send_service_deleted),
9018         (bus_driver_send_service_created), (bus_driver_send_service_lost),
9019         (bus_driver_send_service_acquired):
9020         Add helper functions for sending service related messages.
9021
9022         (bus_driver_send_welcome_message):
9023         Send HELLO_REPLY instead of WELCOME.
9024
9025         (bus_driver_handle_list_services):
9026         Send LIST_SERVICES_REPLY instead of SERVICES.
9027
9028         (bus_driver_handle_own_service),
9029         (bus_driver_handle_service_exists):
9030         New message handlers.
9031
9032         (bus_driver_handle_message):
9033         Invoke new message handlers.
9034
9035         (bus_driver_remove_connection):
9036         Don't remove any services here since that's done automatically
9037         by bus_service_remove_owner now.
9038
9039         * bus/driver.h:
9040         New function signatures.
9041
9042         * bus/services.c: (bus_service_add_owner):
9043         Send ServiceAcquired message if we're the only primary owner.
9044
9045         (bus_service_remove_owner):
9046         Send ServiceAcquired/ServiceLost messages.
9047
9048         (bus_service_set_prohibit_replacement),
9049         (bus_service_get_prohibit_replacement):
9050         Functions for setting prohibit replacement.
9051
9052         (bus_service_has_owner):
9053         New function that checks if a connection is in the owner queue of
9054         a certain service.
9055
9056         * bus/services.h:
9057         Add new function signatures.
9058
9059         * dbus/dbus-list.c: (_dbus_list_test):
9060         Add tests for _dbus_list_remove_last and traversing the list backwards.
9061
9062         * dbus/dbus-list.h:
9063         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
9064         go any further, so return NULL then.
9065
9066         * dbus/dbus-protocol.h:
9067         Add new messages, service flags and service replies.
9068
9069 2003-01-26  Havoc Pennington  <hp@pobox.com>
9070
9071         * dbus/dbus-message-builder.c: implement, completely untested.
9072
9073         * test/data/*: add data to be used in testing.
9074         ".message" files are our simple loadable text format.
9075         ".message-raw" will be binary dumps of messages.
9076
9077         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
9078
9079 2003-01-26  Havoc Pennington  <hp@pobox.com>
9080
9081         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
9082
9083         * dbus/dbus-errors.c (dbus_result_to_string): add
9084         file errors
9085
9086         * dbus/dbus-message-builder.c: new file, will contain code to load
9087         up messages from files. Not implemented yet.
9088
9089 2003-01-26  Havoc Pennington  <hp@pobox.com>
9090
9091         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
9092         the sender by setting to NULL
9093
9094 2003-01-26  Havoc Pennington  <hp@pobox.com>
9095
9096         The unit tests pass, but otherwise untested.  If it breaks, the
9097         tests should have been better. ;-)
9098
9099         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
9100         the connection.
9101
9102         * dbus/dbus-message.c: redo everything so we maintain
9103         message->header as the only copy of the various fields.
9104         This avoids the possibility of out-of-memory in some cases,
9105         for example dbus_message_lock() can't run out of memory anymore,
9106         and avoids extra copying. Figured I may as well go ahead and do
9107         this since it was busted for dbus_message_lock to not return
9108         failure on OOM, and dbus_message_write_header was totally
9109         unchecked for OOM. Also fixed some random other bugs.
9110
9111         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
9112         that strings are nul-terminated. Also, end_pos can be equal
9113         to string length just not greater than, I think.
9114         (_dbus_marshal_set_int32): new function
9115         (_dbus_marshal_set_uint32): new function
9116         (_dbus_marshal_set_string): new function
9117
9118         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
9119         a warning, init timeout_list to NULL
9120         (dbus_connection_send_message): don't use uninitialized variable
9121         "serial"
9122
9123         * dbus/dbus-string.c (_dbus_string_replace_len): new function
9124
9125 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
9126
9127         * bus/driver.c: (bus_driver_handle_hello),
9128         (bus_driver_send_welcome_message):
9129         Plug leaks
9130
9131 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
9132
9133         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
9134         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
9135         (dbus_connection_unref):
9136         * dbus/dbus-marshal.c: (_dbus_marshal_test):
9137         * dbus/dbus-message.c: (dbus_message_unref),
9138         Plug memory leaks.
9139
9140         (dbus_message_get_fields):
9141         Remove debugging printout.
9142
9143         (_dbus_message_loader_return_buffer):
9144         Don't store the header string.
9145
9146         (_dbus_message_test):
9147         Plug leaks.
9148
9149 2003-01-26  Richard Hult  <rhult@codefactory.se>
9150
9151         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
9152         the file descriptor list, since it can change under us.
9153
9154 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
9155
9156         * glib/dbus-gmain.c: (dbus_connection_prepare),
9157         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
9158         (remove_watch), (dbus_connection_hookup_with_g_main):
9159         Rewrite the glib handling to use its own GSource instead of a
9160         GIOChannel so we can catch messages put in the queue while waiting
9161         for a reply.
9162
9163 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
9164
9165         * bus/Makefile.am:
9166         * bus/connection.c: (connection_disconnect_handler),
9167         (connection_watch_callback), (bus_connection_setup):
9168         * bus/dispatch.c: (send_one_message),
9169         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
9170         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
9171         * bus/dispatch.h:
9172         * bus/driver.c: (bus_driver_send_service_deleted),
9173         (bus_driver_send_service_created), (bus_driver_handle_hello),
9174         (bus_driver_send_welcome_message),
9175         (bus_driver_handle_list_services), (bus_driver_remove_connection),
9176         (bus_driver_handle_message):
9177         * bus/driver.h:
9178         Refactor code, put the message dispatching in its own file. Use
9179         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
9180         is disconnected.
9181
9182 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
9183
9184         * dbus/dbus-internals.h:
9185         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
9186
9187         * dbus/dbus-message.c: (dbus_message_get_sender):
9188         * dbus/dbus-message.h:
9189         Implement dbus_message_get_sender.
9190
9191         * dbus/dbus-protocol.h:
9192         Add message and service defines.
9193
9194 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
9195
9196         * dbus/dbus-connection.c: (dbus_connection_send_message):
9197         * dbus/dbus-message-internal.h:
9198         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
9199         (dbus_message_write_header):
9200         Remove _dbus_messag_unlock and don't set the client serial on a
9201         message if one already exists.
9202
9203 2003-01-24  Havoc Pennington  <hp@pobox.com>
9204
9205         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
9206         list_pool
9207
9208         * bus/driver.c (bus_driver_handle_list_services): fix a leak
9209         on OOM
9210
9211 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
9212
9213         * dbus/dbus-list.c: (alloc_link), (free_link):
9214         Use a memory pool for the links.
9215
9216 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
9217
9218         * bus/connection.c: (bus_connection_foreach):
9219         * bus/connection.h:
9220         Add new bus_connection_foreach function.
9221
9222         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
9223         Add function that broadcasts a message to all clients.
9224
9225         (bus_driver_send_service_created), (bus_driver_handle_hello),
9226         (bus_driver_send_welcome_message),
9227         (bus_driver_handle_list_services), (bus_driver_message_handler):
9228         Implement functions that take care of listing services, and notifying
9229         clients when new services are created.
9230
9231         * bus/services.c: (bus_services_list):
9232         * bus/services.h:
9233         Add new function that returns an array of strings with the currently
9234         registered services.
9235
9236         * glib/dbus-glib.h:
9237         * glib/dbus-gmain.c:
9238         Update copyright year.
9239
9240 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
9241
9242         * dbus/dbus-connection.c: (dbus_connection_send_message):
9243         Unlock the message in case it was sent earlier.
9244
9245         (dbus_connection_send_message_with_reply_and_block):
9246         Remove the reply message from the list.
9247
9248         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
9249         Set array_len and new_pos correctly.
9250
9251         (_dbus_marshal_test):
9252         Remove debug output.
9253
9254         * dbus/dbus-message-internal.h:
9255         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
9256         New function that returns the reply serial.
9257
9258         (_dbus_message_unlock):
9259         New function that unlocks a message and resets its header.
9260
9261         (dbus_message_append_string_array),
9262         (dbus_message_get_fields_valist),
9263         (dbus_message_iter_get_field_type),
9264         (dbus_message_iter_get_string_array),
9265         (dbus_message_get_fields),
9266         (dbus_message_append_fields_valist):
9267         Handle string arrays.
9268
9269         (dbus_message_set_sender):
9270         Make this function public since the bus daemon needs it.
9271
9272         (decode_header_data):
9273         Set the reply serial to -1 initially.
9274
9275         * dbus/dbus-message.h:
9276         Add dbus_message_set_sender.
9277
9278 2003-01-24  Havoc Pennington  <hp@pobox.com>
9279
9280         * doc/dbus-specification.sgml: add some stuff
9281
9282 2003-01-22  Havoc Pennington  <hp@pobox.com>
9283
9284         * doc/dbus-specification.sgml: Start to document the protocol.
9285
9286 2003-01-22  Havoc Pennington  <hp@pobox.com>
9287
9288         * dbus/dbus-connection.c
9289         (dbus_connection_send_message_with_reply_and_block): add some @todo
9290
9291         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
9292
9293 2003-01-21  Havoc Pennington  <hp@pobox.com>
9294
9295         (patch untested because can't compile)
9296
9297         * bus/driver.c (create_unique_client_name): make this function
9298         never recycle client names. Also, caller should initialize
9299         the DBusString.
9300
9301         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
9302
9303 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
9304
9305         * dbus/dbus-marshal.c: (_dbus_marshal_double),
9306         (_dbus_marshal_int32), (_dbus_marshal_uint32),
9307         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
9308         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
9309         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
9310         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
9311         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
9312         * dbus/dbus-marshal.h:
9313         * dbus/dbus-protocol.h:
9314         Add support for marshalling and demarshalling integer, double
9315         and string arrays.
9316
9317 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
9318
9319         * bus/Makefile.am:
9320         Add driver.[ch]
9321
9322         * bus/connection.c: (connection_disconnect_handler):
9323         Remove the connection from the bus driver's list.
9324
9325         (connection_watch_callback): Dispatch messages.
9326
9327         (free_connection_data): Free connection name.
9328
9329         (bus_connection_setup): Add connection to the bus driver's list.
9330         (bus_connection_remove_owned_service):
9331         (bus_connection_set_name), (bus_connection_get_name):
9332         Add functions for setting and getting the connection's name.
9333
9334         * bus/connection.h:
9335         Add function headers.
9336
9337         * bus/driver.c: (create_unique_client_name),
9338         (bus_driver_handle_hello_message),
9339         (bus_driver_send_welcome_message), (bus_driver_message_handler),
9340         (bus_driver_add_connection), (bus_driver_remove_connection):
9341         * bus/driver.h:
9342         * bus/main.c:
9343         * bus/services.c: (bus_service_free):
9344         * bus/services.h:
9345         New file that handles communication and registreation with the bus
9346         itself.
9347
9348 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
9349
9350         * dbus/dbus-connection.c: (dbus_connection_send_message):
9351         Add a new client_serial parameter.
9352
9353         (dbus_connection_send_message_with_reply):
9354         Remove a @todo since we've implemented the blocking function.
9355
9356         (dbus_connection_send_message_with_reply_and_block):
9357         New function that sends a message and waits for a reply and
9358         then returns the reply.
9359
9360         * dbus/dbus-connection.h:
9361         Add new functions.
9362
9363         * dbus/dbus-errors.c: (dbus_result_to_string):
9364         * dbus/dbus-errors.h:
9365         Add new DBUS_RESULT.
9366
9367         * dbus/dbus-message-internal.h:
9368         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
9369         (_dbus_message_set_sender), (dbus_message_write_header),
9370         (dbus_message_new_reply), (decode_header_data),
9371         (_dbus_message_loader_return_buffer), (_dbus_message_test):
9372         * dbus/dbus-message.h:
9373         Add new functions that set the reply serial and sender.
9374         Also marshal and demarshal them correctly and add test.
9375
9376         * dbus/dbus-protocol.h:
9377         Add new DBUS_MESSAGE_TYPE_SENDER.
9378
9379         * glib/dbus-glib.h:
9380         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
9381         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
9382         (dbus_connection_hookup_with_g_main):
9383         * glib/test-dbus-glib.c: (main):
9384         Rewrite to use GIOChannel and remove the GSource crack.
9385
9386         * test/echo-client.c: (main):
9387         * test/watch.c: (check_messages):
9388         Update for changed APIs
9389
9390 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
9391
9392         * dbus/Makefile.am: Add dbus-timeout.[cħ]
9393
9394         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
9395         Create a DBusTimeoutList.
9396         (dbus_connection_set_timeout_functions): Add new function to
9397         set timeout callbacks
9398
9399         * dbus/dbus-connection.h: Add public DBusTimeout API.
9400
9401         * dbus/dbus-message.c: (dbus_message_get_service):
9402         * dbus/dbus-message.h:  New function.
9403
9404         * dbus/dbus-server.c: Fix small doc typo.
9405
9406         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
9407
9408 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
9409
9410         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
9411         of the string, just as long as specified.
9412
9413 2003-01-19  Havoc Pennington  <hp@pobox.com>
9414
9415         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
9416         new function
9417
9418         * dbus/dbus-server.c (dbus_server_set_max_connections)
9419         (dbus_server_get_max_connections, dbus_server_get_n_connections):
9420         keep track of current number of connections, and add API for
9421         setting a max (but haven't implemented enforcing the max yet)
9422
9423 2003-01-18  Havoc Pennington  <hp@pobox.com>
9424
9425         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
9426         reading/writing if read_watch != NULL or write_watch != NULL.
9427
9428         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
9429         the message loader code to actually load message->header and
9430         message->body into the newly-created message.
9431
9432         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
9433         in OOM case
9434
9435         * dbus/dbus-connection.c (dbus_connection_set_max_message_size)
9436         (dbus_connection_get_max_message_size)
9437         (dbus_connection_set_max_live_messages_size)
9438         (dbus_connection_get_max_live_messages_size): implement some
9439         resource limitation functions
9440
9441         * dbus/dbus-resources.c: new file implementing some of the
9442         resource limits stuff
9443
9444         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
9445         missing docs, add @todo to handle OOM etc.
9446
9447         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
9448         docs
9449
9450 2003-01-18  Havoc Pennington  <hp@pobox.com>
9451
9452         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the
9453         connection if it hasn't been already.
9454
9455         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
9456         replace with DisconnectFunction.
9457
9458 2003-01-18  Havoc Pennington  <hp@pobox.com>
9459
9460         Building --disable-verbose-mode --disable-asserts --disable-tests
9461         cuts the library from 112K to 45K or so
9462
9463         * configure.in: check for varargs macro support,
9464         add --enable-verbose-mode, --enable-asserts.
9465
9466         * dbus/dbus-internals.h (_dbus_assert): support
9467         DBUS_DISABLE_ASSERT
9468         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
9469
9470 2003-01-18  Havoc Pennington  <hp@pobox.com>
9471
9472         * dbus/dbus-test.c: include config.h so that tests actually run
9473
9474         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
9475         so the failure mode when that assumption fails will be plenty
9476         obvious.
9477
9478 2003-01-18  Havoc Pennington  <hp@pobox.com>
9479
9480         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
9481
9482         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
9483         the distribution
9484
9485         * test/Makefile.am: don't use special variable "TESTS" for echo-*
9486         since we don't want to use those in make check
9487
9488 2003-01-15  Havoc Pennington  <hp@redhat.com>
9489
9490         Release 0.2
9491
9492         * NEWS: update
9493
9494 2003-01-15  Havoc Pennington  <hp@redhat.com>
9495
9496         * test/Makefile.am: fix so that test source code ends up in the
9497         distribution on make distcheck
9498
9499 2003-01-15  Havoc Pennington  <hp@redhat.com>
9500
9501         Release 0.1.
9502
9503         * NEWS: update
9504
9505 2003-01-15  Havoc Pennington  <hp@redhat.com>
9506
9507         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
9508         fix build when --disable-tests
9509
9510         * Makefile.am (EXTRA_DIST): put HACKING in here
9511
9512         * HACKING: document procedure for making a tarball release.
9513
9514 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
9515
9516         * bus/connection.c: (connection_error_handler),
9517         (bus_connection_setup):
9518         * bus/main.c: (main):
9519         Make sure that the DBusConnectionData struct is NULLed
9520         out to prevent a segfault.
9521
9522         * dbus/dbus-errors.c: (dbus_result_to_string):
9523         * dbus/dbus-errors.h:
9524         * dbus/dbus-message.c: (dbus_message_get_fields),
9525         (dbus_message_get_fields_valist), (_dbus_message_test):
9526         * dbus/dbus-message.h:
9527         Make dbus_message_get_fields return a result code so we can
9528         track invalid fields as well as oom.
9529
9530 2003-01-11  Havoc Pennington  <hp@pobox.com>
9531
9532         * configure.in: change --enable-test/--enable-ansi action-if-given
9533         to enable_foo=$enableval instead of enable_foo=yes
9534
9535 2003-01-08  Havoc Pennington  <hp@pobox.com>
9536
9537         * dbus/dbus-string.c (_dbus_string_align_length): new function
9538
9539         * dbus/dbus-test-main.c: move main() for test app here
9540         * dbus/dbus-test.c
9541         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
9542         symbol to run tests, because dbus-test isn't in the main
9543         library
9544
9545         Code review nitpicks.
9546
9547         * dbus/dbus-message.c (dbus_message_write_header): add newlines
9548         for people with narrow emacs ;-). Assert client_serial was filled
9549         in. Assert message->name != NULL.
9550         (dbus_message_append_fields): have "first_field_type" arg separate
9551         from va list, needed for C++ binding that also uses varargs IIRC
9552         and helps with type safety
9553         (dbus_message_new): add @todo about using DBusString to store
9554         service/name internally
9555         (dbus_message_new): don't leak ->service and ->name on OOM later
9556         in the function
9557         (dbus_message_unref): free the service name
9558         (dbus_message_get_fields): same change to varargs
9559         i.e. first_field_type
9560         (_dbus_message_loader_return_buffer): assert that the message data
9561         is aligned (if not it's a bug in our code). Put in verbose griping
9562         about why we set corrupted = TRUE.
9563         (decode_header_data): add FIXME that char* is evil.  Was going to
9564         add FIXME about evil locale-specific string.h strncmp, but just
9565         switched to wacky string-as-uint32 optimization. Move check for
9566         "no room for field name" above get_const_data_len() to avoid
9567         assertion failure in get_const_data_len if we have trailing 2
9568         bytes or the like. Check for service and name fields being
9569         provided twice. Don't leak service/name on error. Require field
9570         names to be aligned to 4 bytes.
9571
9572         * dbus/dbus-marshal.c: move byte swap stuff to header
9573         (_dbus_pack_int32): uscore-prefix
9574         (_dbus_unpack_int32): uscore-prefix
9575         (_dbus_unpack_uint32): export
9576         (_dbus_demarshal_string): add @todo complaining about use of
9577         memcpy()
9578         (_dbus_marshal_get_field_end_pos): add @todo about bad error
9579         handling allowing corrupt data to go unchecked
9580
9581 2003-01-08  Havoc Pennington  <hp@redhat.com>
9582
9583         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write
9584         to the select() as needed for authentication. (should be using
9585         _dbus_poll() not select, but for another day)
9586
9587         * dbus/dbus.h: include dbus/dbus-protocol.h
9588
9589 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
9590
9591         * dbus/Makefile.am (dbusinclude_HEADERS): Install
9592         dbus-connection.h
9593
9594 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
9595
9596         * dbus/dbus-internals.c: (_dbus_type_to_string):
9597         New function that returns a string describing a type.
9598
9599         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
9600         * dbus/dbus-marshal.h:
9601         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
9602         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
9603         (dbus_message_iter_get_byte_array):
9604         * dbus/dbus-message.h:
9605         Add new convenience functions for appending and getting message fields.
9606         Also add demarshalling routines for byte arrays.
9607
9608 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
9609
9610         * dbus/dbus-connection-internal.h:
9611         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
9612         (_dbus_connection_get_next_client_serial),
9613         (dbus_connection_send_message):
9614         * dbus/dbus-internals.h:
9615         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
9616         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
9617         (_dbus_marshal_uint32), (_dbus_demarshal_double),
9618         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
9619         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
9620         (_dbus_verbose_bytes), (_dbus_marshal_test):
9621         * dbus/dbus-marshal.h:
9622         * dbus/dbus-message-internal.h:
9623         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
9624         (dbus_message_write_header), (_dbus_message_lock),
9625         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
9626         (dbus_message_get_name), (dbus_message_append_int32),
9627         (dbus_message_append_uint32), (dbus_message_append_double),
9628         (dbus_message_append_string), (dbus_message_append_byte_array),
9629         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
9630         (dbus_message_iter_unref), (dbus_message_iter_has_next),
9631         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
9632         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
9633         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
9634         (decode_header_data), (_dbus_message_loader_return_buffer),
9635         (message_iter_test), (_dbus_message_test):
9636         * dbus/dbus-message.h:
9637         * dbus/dbus-protocol.h:
9638         * dbus/dbus-test.c: (main):
9639         * dbus/dbus-test.h:
9640         * glib/test-dbus-glib.c: (message_handler), (main):
9641         * test/echo-client.c: (main):
9642         * test/watch.c: (check_messages):
9643         Make messages sendable and receivable for real.
9644
9645 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
9646
9647         * dbus/dbus-marshal.c: (_dbus_marshal_double),
9648         (_dbus_marshal_string), (_dbus_marshal_byte_array):
9649         * dbus/dbus-message.c: (dbus_message_append_int32),
9650         (dbus_message_append_uint32), (dbus_message_append_double),
9651         (dbus_message_append_string), (dbus_message_append_byte_array):
9652         Handle OOM restoration.
9653
9654 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
9655
9656         * dbus/dbus-marshal.c: (_dbus_marshal_string),
9657         (_dbus_demarshal_string), (_dbus_marshal_test):
9658         * dbus/dbus-marshal.h:
9659         * dbus/dbus-message.c: (dbus_message_get_name),
9660         Document these functions.
9661
9662         (dbus_message_append_int32), (dbus_message_append_uint32),
9663         (dbus_message_append_double), (dbus_message_append_string),
9664         (dbus_message_append_byte_array):
9665         * dbus/dbus-message.h:
9666         Add functions for adding message fields of different types.
9667
9668         * dbus/dbus-protocol.h:
9669         Add the different types.
9670
9671 2003-01-05  Havoc Pennington  <hp@pobox.com>
9672
9673         * bus/connection.c: implement routines for handling connections,
9674         first thing is keeping a list of owned services on each connection
9675         and setting up watches etc.
9676
9677         * bus/services.c: implement a mapping from service names to lists
9678         of connections
9679
9680         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
9681
9682         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
9683         to use static mutexes for global data
9684
9685         * dbus/dbus-connection.c (dbus_connection_set_data): add new
9686         collection of functions to set/get application-specific data
9687         on the DBusConnection.
9688
9689 2003-01-04  Havoc Pennington  <hp@pobox.com>
9690
9691         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
9692         (_dbus_poll): new function
9693
9694         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
9695         copied from GLib
9696
9697         * bus/loop.c: initial code for the daemon main loop
9698
9699 2003-01-04  Havoc Pennington  <hp@pobox.com>
9700
9701         * test/watch.c (error_handler): make it safe if the error handler
9702         is called multiple times (if we s/error handler/disconnect
9703         handler/ we should just guarantee it's called only once)
9704
9705         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
9706         error handler on disconnect (it's quite possible we should
9707         just change the error handler to a "disconnect handler," I'm
9708         not sure we have any other meaningful errors)
9709
9710         * configure.in: check for getpwnam_r
9711
9712         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
9713         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
9714         mechanism as in SASL spec, using socket credentials
9715
9716         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
9717         (_dbus_send_credentials_unix_socket): new function
9718
9719         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
9720         dbus_accept()
9721         (_dbus_write): only check errno if <0 returned
9722         (_dbus_write_two): ditto
9723
9724 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
9725
9726         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
9727         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
9728         (_dbus_marshal_test):
9729         * dbus/dbus-marshal.h:
9730         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
9731         to _dbus_marshal_utf8_string. Also fix some tests.
9732
9733 2002-12-28  Harri Porten  <porten@kde.org>
9734
9735         * configure.in: added check for C++ compiler and a very cheesy
9736         check for the Qt integration
9737
9738         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
9739
9740         * qt/Makefile.am: added
9741
9742         * qt/.cvsignore: added
9743
9744         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
9745         latter, added #ifdef QT_THREAD_SUPPORT guard.
9746
9747         * dbus/Makefile.am: added missing headers for make dist
9748
9749 2002-12-28  Kristian Rietveld  <kris@gtk.org>
9750
9751         * dbus/Makefile.am: fixup export-symbols-regex.
9752
9753 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
9754
9755         * acinclude.m4: Add this file and put the
9756         PKG_CHECK_MODULE macro in it.
9757
9758 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
9759
9760         * dbus/dbus-marshal.c: (_dbus_marshal_string),
9761         (_dbus_demarshal_double), (_dbus_demarshal_int32),
9762         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
9763         (_dbus_marshal_test):
9764         Make the demarshalling routines align the pos argument.
9765         Add string marshalling tests and fix the obvious bugs
9766         discovered.
9767
9768 2002-12-26  Havoc Pennington  <hp@pobox.com>
9769
9770         * dbus/dbus-auth.c: fixes fixes fixes
9771
9772         * dbus/dbus-transport-unix.c: wire up support for
9773         encoding/decoding data on the wire
9774
9775         * dbus/dbus-auth.c (_dbus_auth_encode_data)
9776         (_dbus_auth_decode_data): append to target string
9777         instead of nuking it.
9778
9779 2002-12-26  Havoc Pennington  <hp@pobox.com>
9780
9781         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
9782         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
9783         doh
9784
9785         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
9786         avoid swap_bytes() overhead (ignoring possible assembly stuff for
9787         now). Main point is because I wanted unpack_uint32 to implement
9788         _dbus_verbose_bytes
9789         (_dbus_verbose_bytes): new function
9790
9791         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
9792
9793         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
9794         mechanism to handle a corrupt message stream
9795         (_dbus_message_loader_new): fix preallocation to only prealloc,
9796         not prelengthen
9797
9798         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
9799         (_dbus_string_test): enhance tests for copy/move and fix the
9800         functions
9801
9802         * dbus/dbus-transport-unix.c: Hold references in more places to
9803         avoid reentrancy problems
9804
9805         * dbus/dbus-transport.c: ditto
9806
9807         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
9808         leak reference count in no-message case
9809
9810         * test/watch.c (do_mainloop): handle adding/removing watches
9811         during iteration over the watches. Also, ref the connection/server
9812         stored on a watch, so we don't try to mangle a destroyed one.
9813
9814         * dbus/dbus-transport-unix.c (do_authentication): perform
9815         authentication
9816
9817         * dbus/dbus-auth.c (get_state): add a state
9818         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
9819         (_dbus_auth_get_unused_bytes): append the unused bytes
9820         to the passed in string, rather than prepend
9821
9822         * dbus/dbus-transport.c (_dbus_transport_init_base): create
9823         the auth conversation DBusAuth
9824
9825         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
9826         (_dbus_transport_new_for_domain_socket): when creating a
9827         transport, pass in whether it's a client-side or server-side
9828         transport so we know which DBusAuth to create
9829
9830 2002-12-03  Havoc Pennington  <hp@pobox.com>
9831
9832         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
9833         _after_ finalizing the derived members
9834         (unix_connection_set): unref watch if we fail to add it
9835
9836         * dbus/dbus-connection.c (dbus_connection_unref): delete the
9837         transport first, so that the connection owned by the
9838         transport will be valid as the transport finalizes.
9839
9840         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
9841         if necessary, and remove watches from the connection.
9842
9843         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
9844
9845 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
9846
9847         * dbus/dbus-marshal.c: (_dbus_marshal_string),
9848         (_dbus_demarshal_double), (_dbus_demarshal_int32),
9849         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
9850         (_dbus_marshal_test):
9851         * dbus/dbus-marshal.h:
9852         Add string marshal functions and have the demarshal functions
9853         return the new position.
9854
9855 2002-12-25  Havoc Pennington  <hp@pobox.com>
9856
9857         * doc/dbus-sasl-profile.txt: docs on the authentication protocol,
9858         it is a simple protocol that just maps directly to SASL.
9859
9860         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
9861         initial implementation, not actually used yet.
9862
9863         * dbus/dbus-string.c (_dbus_string_find): new function
9864         (_dbus_string_equal): new function
9865         (_dbus_string_base64_encode): new function
9866         (_dbus_string_base64_decode): new function
9867
9868 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
9869
9870         * dbus/Makefile.am:
9871         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
9872         (_dbus_marshal_int32), (_dbus_marshal_uint32),
9873         (_dbus_demarshal_double), (_dbus_demarshal_int32),
9874         (_dbus_demarshal_uint32), (_dbus_marshal_test):
9875         * dbus/dbus-marshal.h:
9876         * dbus/dbus-protocol.h:
9877         * dbus/dbus-test.c: (main):
9878         * dbus/dbus-test.h:
9879         Add un-optimized marshalling/demarshalling routines.
9880
9881 2002-12-25  Harri Porten  <porten@kde.org>
9882
9883         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
9884
9885 2002-12-24  Zack Rusin  <zack@kde.org>
9886
9887         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
9888         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
9889         main loop stuff
9890
9891 2002-12-24  Havoc Pennington  <hp@pobox.com>
9892
9893         * glib/dbus-gthread.c: fix include
9894
9895         * glib/dbus-glib.h: rename DBusMessageHandler for now.
9896         I think glib API needs to change, though, as you don't
9897         want to use DBusMessageFunction, you want to use the
9898         DBusMessageHandler object. Probably
9899         dbus_connection_open_with_g_main_loop()
9900         and dbus_connection_setup_g_main_loop() or something like that
9901         (but think of better names...) that just create a connection
9902         that has watch/timeout functions etc. already set up.
9903
9904         * dbus/dbus-connection.c
9905         (dbus_connection_send_message_with_reply): new function just to
9906         show how the message handler helps us deal with replies.
9907
9908         * dbus/dbus-list.c (_dbus_list_remove_last): new function
9909
9910         * dbus/dbus-string.c (_dbus_string_test): free a string that
9911         wasn't
9912
9913         * dbus/dbus-hash.c: use memory pools for the hash entries
9914         (rebuild_table): be more paranoid about overflow, and
9915         shrink table when we can
9916         (_dbus_hash_test): reduce number of sprintfs and write
9917         valid C89. Add tests for case where we grow and then
9918         shrink the hash table.
9919
9920         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
9921
9922         * dbus/dbus-connection.c (dbus_connection_register_handler)
9923         (dbus_connection_unregister_handler): new functions
9924
9925         * dbus/dbus-message.c (dbus_message_get_name): new
9926
9927         * dbus/dbus-list.c: fix docs typo
9928
9929         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
9930         an object representing a handler for messages.
9931
9932 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
9933
9934         * glib/dbus-glib.h:
9935         * glib/dbus-gthread.c: (dbus_gthread_init):
9936         Don't use the gdbus prefix for public functions.
9937
9938 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
9939
9940         * Makefile.am:
9941         * configure.in:
9942         Add GLib checks and fixup .pc files
9943
9944         * glib/Makefile.am:
9945         * glib/dbus-glib.h:
9946         * glib/dbus-gmain.c: (gdbus_connection_prepare),
9947         (gdbus_connection_check), (gdbus_connection_dispatch),
9948         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
9949         (dbus_connection_gsource_new):
9950         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
9951         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
9952         * glib/test-dbus-glib.c: (message_handler), (main):
9953         Add GLib support.
9954
9955 2002-12-15  Harri Porten  <porten@kde.org>
9956
9957         * autogen.sh: check for libtoolize before attempting to use it
9958
9959         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
9960         struct.
9961
9962         * .cvsignore: ignore more stamp files
9963
9964         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
9965
9966         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
9967         without make install.
9968
9969 2002-12-15  Havoc Pennington  <hp@pobox.com>
9970
9971         * dbus/dbus-threads.c: add thread stubs that a higher library
9972         layer can fill in. e.g. the GLib wrapper might fill them in with
9973         GThread stuff. We still need to use this thread API to
9974         thread-safe-ize the library.
9975
9976 2002-12-12  Havoc Pennington  <hp@pobox.com>
9977
9978         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
9979         below new interfaces and include fewer system headers.
9980
9981         * dbus/dbus-sysdeps.c (_dbus_read): new function
9982         (_dbus_write): new function
9983         (_dbus_write_two): new function
9984         (_dbus_connect_unix_socket): new function
9985         (_dbus_listen_unix_socket): new function
9986
9987         * dbus/dbus-message-internal.h: change interfaces to use
9988         DBusString
9989
9990 2002-12-11  Havoc Pennington  <hp@pobox.com>
9991
9992         * dbus/dbus-types.h: add dbus_unichar
9993
9994         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
9995
9996         * dbus/dbus-connection.c (dbus_connection_send_message): return
9997         TRUE on success
9998
9999         * dbus/dbus-transport.c: include dbus-watch.h
10000
10001         * dbus/dbus-connection.c: include dbus-message-internal.h
10002
10003         * HACKING: add file with coding guidelines stuff.
10004
10005         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
10006         handling here, for security purposes (as in vsftpd). Not actually
10007         using this class yet.
10008
10009         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
10010         system/libc usage here, as in vsftpd, for ease of auditing (and
10011         should also simplify portability). Haven't actually moved all the
10012         system/libc usage into here yet.
10013
10014 2002-11-25  Havoc Pennington  <hp@pobox.com>
10015
10016         * dbus/dbus-internals.c (_dbus_verbose): fix to not
10017         always print the first verbose message.
10018
10019 2002-11-24  Havoc Pennington  <hp@pobox.com>
10020
10021         * test/echo-client.c, test/echo-server.c: cheesy test
10022         clients.
10023
10024         * configure.in (AC_CHECK_FUNCS): check for writev
10025
10026         * dbus/dbus-message.c (_dbus_message_get_network_data): new
10027         function
10028
10029         * dbus/dbus-list.c (_dbus_list_foreach): new function
10030
10031         * dbus/dbus-internals.c (_dbus_verbose): new function
10032
10033         * dbus/dbus-server.c, dbus/dbus-server.h: public object
10034         representing a server that listens for connections.
10035
10036         * dbus/.cvsignore: create
10037
10038         * dbus/dbus-errors.h, dbus/dbus-errors.c:
10039         public API for reporting errors
10040
10041         * dbus/dbus-connection.h, dbus/dbus-connection.c:
10042         public object representing a connection that
10043         sends/receives messages. (Same object used for
10044         both client and server.)
10045
10046         * dbus/dbus-transport.h, dbus/dbus-transport.c:
10047         Basic abstraction for different kinds of stream
10048         that we might read/write messages from.
10049
10050 2002-11-23  Havoc Pennington  <hp@pobox.com>
10051
10052         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN
10053         _DBUS_INT_MAX
10054
10055         * dbus/dbus-test.c (main): add list test, and include
10056         dbus-test.h as intended
10057
10058         * dbus/dbus-hash.c (_dbus_hash_table_remove_string)
10059         (_dbus_hash_table_remove_int): return value indicates
10060         whether the entry existed to remove
10061
10062         * dbus/dbus-list.c: add linked list utility class,
10063         with docs and tests
10064
10065         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket
10066         array sometimes.
10067
10068 2002-11-23  Havoc Pennington  <hp@pobox.com>
10069
10070         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
10071         DBUS_END_DECLS to nothing, that should fix this once and for all
10072
10073         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
10074
10075         * dbus/dbus-message.c, dbus/dbus-hash.c:
10076         add some missing @brief
10077
10078 2002-11-23  Havoc Pennington  <hp@pobox.com>
10079
10080         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS
10081         to avoid confusing Doxygen
10082
10083         * dbus/dbus-hash.c: @} not }@
10084
10085         * dbus/dbus-message.c (struct DBusMessage): split out
10086         internals docs
10087
10088 2002-11-23  Havoc Pennington  <hp@pobox.com>
10089
10090         * configure.in: pile on more warning flags if using gcc
10091
10092         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have
10093         to document static functions
10094
10095         * configure.in: add summary to end of configure so it
10096         looks nice and attractive
10097
10098         * dbus/dbus-hash.c: finish implementation and write unit
10099         tests and docs
10100
10101         * configure.in: add --enable-tests to enable unit tests
10102
10103         * dbus/dbus-test.c: test program to run unit tests
10104         for all files in dbus/*, initially runs a test for
10105         dbus-hash.c
10106
10107         * dbus/dbus-internals.h: file to hold some internal utility stuff
10108
10109 2002-11-22  Havoc Pennington  <hp@redhat.com>
10110
10111         * dbus/dbus-hash.c: copy in Tcl hash table, not yet
10112         "ported" away from Tcl
10113
10114         * dbus/dbus-types.h: header for types such as dbus_bool_t
10115
10116 2002-11-22  Havoc Pennington  <hp@redhat.com>
10117
10118         * dbus/dbus.h: fixups for doc warnings
10119
10120         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up
10121         macros
10122         (QUIET): make it quiet so we can see warnings
10123
10124         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
10125
10126 2002-11-22  Havoc Pennington  <hp@redhat.com>
10127
10128         * Makefile.am: include "Doxyfile" target in all-local
10129
10130         * configure.in: generate the Doxyfile
10131
10132         * Doxyfile.in: move Doxyfile here, so we can use
10133         configure to generate a Doxyfile with the right
10134         version number etc.
10135
10136 2002-11-22  Havoc Pennington  <hp@redhat.com>
10137
10138         * dbus/dbus-message.c: move inline docs into .c file
10139
10140         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
10141         so all docs are under doc/
10142         (MAN_EXTENSION): generate man pages. Use extension
10143         ".3dbus" which matches ".3qt" on my system,
10144         I guess this is OK, I don't know really.
10145         (FILE_PATTERNS): look for .c files not .h, makes sense
10146         for plain C I think
10147
10148 2002-11-22  Havoc Pennington  <hp@pobox.com>
10149
10150         * Makefile.am (SUBDIRS): rename subdir "server" to "bus"
10151         because any app can be a server, and any app can be a client,
10152         the bus is a special kind of server.
10153
10154 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
10155
10156         * Doxyfile : adding. Still needs Makefile rules to be generated
10157         automatically (just run "doxygen" in the toplevel dir for now to
10158         generate docs)
10159
10160         * dbus/dbus-message.h : Adding sample docs (javadoc since
10161         resembles gtk-doc a little more)
10162
10163         * dbus/dbus.h : Adding sample docs
10164
10165 2002-11-21  Havoc Pennington  <hp@redhat.com>
10166
10167         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION
10168         so we can allow ourselves to include files directly,
10169         instead of having to use dbus.h
10170
10171         * dbus/dbus.h: fill in
10172
10173         * dbus/dbus-message.h: sketch out a sample header file.
10174         Include griping if you include it directly instead of
10175         via dbus.h
10176
10177         * dbus/dbus-macros.h: new file with macros for extern "C",
10178         TRUE/FALSE, NULL, etc.
10179
10180         * doc/file-boilerplate.c: put include guards in here
10181
10182 2002-11-21  Havoc Pennington  <hp@redhat.com>
10183
10184         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
10185
10186         * COPYING: include the GPL as well, and license code
10187         under both AFL and GPL.
10188
10189 2002-11-21  Havoc Pennington  <hp@redhat.com>
10190
10191         * acconfig.h: get rid of this
10192
10193         * autogen.sh (run_configure): add --no-configure option
10194
10195         * configure.in: remove AC_ARG_PROGRAM to make
10196         autoconf complain less. add AC_PREREQ.
10197         add AC_DEFINE third arg.
10198
10199 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
10200
10201         * doc/Makefile.am:
10202         Fix references so we can distcheck.
10203
10204 2002-11-21  Havoc Pennington  <hp@redhat.com>
10205
10206         * Initial module creation
10207