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