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