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