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