2003-04-09 Havoc Pennington <hp@redhat.com>
[platform/upstream/dbus.git] / ChangeLog
1 2003-04-09  Havoc Pennington  <hp@redhat.com>
2
3         * test/test-utils.c: use dispatch status function to fix this up
4
5         * bus/connection.c (connection_watch_callback): don't dispatch
6         from here
7         (connection_timeout_callback): don't dispatch from here
8         (bus_connections_setup_connection): set the dispatch status function
9         (bus_connection_disconnected): unset it
10
11         * dbus/dbus-mainloop.c (_dbus_loop_queue_dispatch): new function
12         used to add a connection to be dispatched
13         (_dbus_loop_iterate): do the dispatching at the end of each
14         iteration
15
16         * dbus/dbus-connection.c
17         (dbus_connection_set_dispatch_status_function): new function
18         allowing us to fix up main loop usage
19         (_dbus_connection_last_unref): free all the various function
20         user data
21         (dbus_connection_dispatch): call the DispatchStatusFunction 
22         whenever this function returns
23         (dbus_connection_handle_watch): call DispatchStatusFunction
24         (dbus_connection_send_with_reply_and_block): call DispatchStatusFunction
25         (reply_handler_timeout): call DispatchStatusFunction
26         (dbus_connection_flush): call DispatchStatusFunction
27
28 2003-04-09  Havoc Pennington  <hp@redhat.com>
29
30         * dbus/dbus-bus.c (dbus_bus_register): fix up error handling and 
31         a memory leak
32
33         * bus/dispatch.c (check_service_activated): fix bug in test
34
35         * dbus/dbus-mainloop.c (check_timeout): fix this up
36
37         * dbus/dbus-internals.c (_dbus_verbose_real): include PID in
38         verbose output so we can sort out output from different processes,
39         e.g. in the activation case.
40
41 2003-04-08  Colin Walters  <walters@gnu.org>
42  
43         * bus/bus.c (struct BusContext) [pidfile]: New member, to store
44         the pid file.
45         (bus_context_new): Set it.
46         (bus_context_unref): Use it to delete the pid file.
47  
48 2003-04-08  Havoc Pennington  <hp@redhat.com>
49
50         * test/data/invalid-messages/array-with-mixed-types.message:
51         regression test that fails for the moment
52
53         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): reorder
54         tests for convenience
55
56         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): don't allow
57         array of nil, it broke things.
58
59         * test/data/invalid-messages/array-of-nil.message: regression test
60
61         * test/data/valid-messages/array-of-array-of-uint32.message:
62         happened to write this so added it to suite
63         
64 2003-04-08  Havoc Pennington  <hp@redhat.com>
65
66         * bus/driver.c (bus_driver_handle_acquire_service): init
67         retval/reply before checking name
68
69         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add a
70         recursion depth argument
71
72         * dbus/dbus-message.h (struct DBusMessageIter): put some padding
73         in the public struct for future extension
74
75         * dbus/dbus-message-builder.c (_dbus_message_data_load): fix
76         typo
77
78         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): fix a verbose
79         message
80
81         * doc/dbus-specification.sgml: fix typo
82
83 2003-04-08  Alexander Larsson  <alexl@redhat.com>
84
85         Implemented recursive types, named types and new-style iters
86
87         * bus/driver.c:
88         * glib/test-thread-client.c: (thread_func):
89         * glib/test-thread-server.c: (handle_test_message):
90         * test/test-service.c: (handle_echo):
91         Update to new api
92         
93         * dbus/Makefile.am:
94         * dbus/dbus-dict.c:
95         * dbus/dbus-dict.h:
96         * dbus/dbus.h
97         Remove DBusDict
98
99         * dbus/dbus-internals.c: (_dbus_type_to_string):
100         Update for new types.
101         
102         * dbus/dbus-marshal.[ch]:
103         Implement recursive types and the new marshalling format.
104         Remove hardcoded dict marshalling.
105         Marshal named types.
106         
107         * dbus/dbus-message-builder.c:
108         Add BYTE_ARRAY.
109         Remove references to old types
110         
111         * dbus/dbus-message.[ch]:
112         New non-refcounted iter API that supports recursive iters.
113         Use iters for appending, including support for recursive
114         iters.
115         Add byte and named type support.
116         Update everything to new marshalling formats.
117         Add tests for new API.
118         
119         * dbus/dbus-protocol.h:
120         Remove old array types.
121         Add types: BYTE, ARRAY, DICT, NAMED
122         
123         * dbus/dbus-string.c:
124         * dbus/dbus-sysdeps.c:
125         Make parse_double locale safe.
126         
127         * dbus/dbus-test-main.c:
128         Call setlocale.
129         
130         * dbus/dbus-test.c:
131         Kill dict test
132         
133         * doc/dbus-specification.sgml:
134         Update spec
135         
136         * test/data/incomplete-messages/missing-body.message:
137         * test/data/invalid-messages/bad-boolean.message:
138         * test/data/invalid-messages/bad-boolean-array.message:
139         * test/data/invalid-messages/boolean-array-length-too-long.message-raw:
140         * test/data/invalid-messages/boolean-has-no-value.message-raw:
141         * test/data/invalid-messages/too-short-dict.message:
142         * test/data/valid-messages/dict-simple.message:
143         * test/data/valid-messages/dict.message:
144         * test/data/valid-messages/emptiness.message:
145         * test/data/valid-messages/lots-of-arguments.message:
146         * test/data/valid-messages/no-padding.message:
147         * test/data/valid-messages/recursive-types.message:
148         Add missing NAME fields
149         Fix up dicts & arrays
150         
151         * test/data/invalid-messages/dict-with-nil-value.message:
152         Removed, this is not invalid anymore.
153         
154         * test/data/valid-messages/recursive-types.message:
155         Add new test for deeply recursive types.
156
157 2003-04-07  Havoc Pennington  <hp@pobox.com>
158
159         * bus/driver.c (bus_driver_handle_acquire_service): return an
160         error if you try to acquire a service that starts with ':'
161
162 2003-04-07  Havoc Pennington  <hp@redhat.com>
163
164         * doc/dbus-specification.sgml: require that base service names 
165         start with ':' and that the base service is created/deleted 
166         as first and last things a connection does on the bus
167
168         * bus/dispatch.c (check_existent_service_activation): lots more 
169         work on the activation test; it doesn't fully pass yet...
170
171         * test/test-service.c (main): fix so we don't memleak the
172         connection to the message bus
173         (filter_func): accept a message asking us to exit
174
175 2003-04-06  Havoc Pennington  <hp@pobox.com>
176
177         * qt/Makefile.am (dbusinclude_HEADERS): install dbus-qt.h, 
178         from Colin Walters
179
180         * configure.in: fixes to Qt detection from Colin Walters
181
182         * doc/Makefile.am: Only remove generated docbook dirs if they
183         exist, from Colin Walters
184
185         * dbus/dbus-bus.c: change how we set well-known connections to
186         NULL, so that it works if a single connection is stored in 
187         two well-known array slots.
188
189         * test/Makefile.am: remove a lot of stuff that isn't immediately
190         useful, it's in CVS history if we want it.
191
192         * test/test-service.c: use dbus-mainloop instead of that
193         watch.[hc] crack
194
195 2003-04-06  Havoc Pennington  <hp@pobox.com>
196
197         * dbus/Makefile.am: split lists of sources into stuff that goes in
198         the library, util functions that go in the lib and are also used
199         elsewhere, and util functions that are used in tests/daemon but
200         don't go in the lib.
201
202         * dbus/dbus-mainloop.h, dbus/dbus-mainloop.c: move bus/loop.[hc] 
203         here so it can be used in test binaries also
204
205 2003-04-06  Havoc Pennington  <hp@pobox.com>
206
207         * dbus/dbus-sysdeps.c (_dbus_become_daemon): write the pidfile
208         here in the parent process, so we can return an error if it
209         fails. Also, move some of the code into the child so the parent 
210         is less hosed if we fail midway through.
211
212         * bus/bus.c (bus_context_new): move pidfile detection further up 
213         in the function, before we start overwriting sockets and such.
214
215         * bus/messagebus.in: adjust this a bit, not sure if it will work.
216
217         * configure.in: add --with-system-pid-file and --with-system-socket
218
219 2003-04-06  Colin Walters  <walters@verbum.org>
220
221         * configure.in (DBUS_SYSTEM_PID_FILE): New variable.
222
223         * bus/system.conf.in: Declare a pidfile.
224
225         * bus/bus.c (bus_context_new): Test for an existing pid file, and
226         create one (if appropriate).
227
228         * bus/config-parser.c (enum ElementType) [ELEMENT_PIDFILE]: New.
229         (struct BusConfigParser) [pidfile]: New.
230         (element_type_to_name, merge_included, start_busconfig_child)
231         (bus_config_parser_end_element, bus_config_parser_content): Handle it.
232         (bus_config_parser_unref): Free it.
233         (bus_config_parser_get_pidfile): New function.
234         
235         * bus/config-parser.h (_dbus_write_pid_file): Prototype.
236
237         * dbus/dbus-errors.h (DBUS_ERROR_PIDFILE_EXISTS): New error.
238
239         * dbus/dbus-sysdeps.c (_dbus_write_pid_file): New function.
240         
241         * dbus/dbus-sysdeps.h: Prototype it.
242
243 2003-04-06  Havoc Pennington  <hp@pobox.com>
244
245         * bus/bus.c (bus_context_new): print the address in here, rather
246         than in main(), because we need to do it before forking the daemon
247
248         * bus/dispatch.c (send_service_nonexistent_error): set the sender 
249         on the service nonexistent error
250
251         * bus/driver.c (bus_driver_handle_acquire_service): set the
252         sender on the AcquireService reply
253
254         * test/data/valid-config-files/debug-allow-all.conf.in: Make test
255         server also listen on a UNIX socket so services can connect to it.
256
257 2003-04-06  Havoc Pennington  <hp@pobox.com>
258
259         * dbus/dbus-threads.c: Redo how the fake debug mutexes are done 
260         so it detects deadlocks and also we actually init threads when 
261         debugging.
262
263 2003-04-06  Havoc Pennington  <hp@pobox.com>
264
265         * dbus/dbus-server-unix.c (_dbus_server_new_for_domain_socket):
266         save the domain socket name, and unlink it when we disconnect the
267         server. Means that at least when we exit normally, we won't leave
268         a bunch of junk in /tmp
269
270         * dbus/dbus-transport-unix.c
271         (_dbus_transport_new_for_domain_socket): code cleanup (nicer
272         memory management). (I was making a real change here but then
273         didn't)
274
275 2003-04-06  Havoc Pennington  <hp@pobox.com>
276
277         * bus/bus.c (bus_context_new): fix wrong handling of
278         server_data_slot_unref() in the error case. 
279
280         * dbus/dbus-internals.h (_dbus_assert): change so it passes
281         "(condition) != 0" to _dbus_real_assert so that
282         "_dbus_assert (pointer)" doesn't cause a warning
283
284         * bus/main.c (main): accept --print-address option to print out
285         the message bus address
286
287         * dbus/dbus-sysdeps.c (_dbus_generate_random_ascii): export this
288
289         * dbus/dbus-transport.c (_dbus_transport_open): special error for
290         "tmpdir" option to unix: address on client side
291
292         * dbus/dbus-server.c (dbus_server_listen): handle "tmpdir" option 
293         to unix: address
294         
295         * configure.in (TEST_SOCKET_DIR): locate a temporary directory 
296         we can use to create sockets in the test suite.
297
298         * bus/main.c (signal_handler): on SIGTERM, exit the daemon
299         cleanly. To be used for testing.
300
301         * dbus/dbus-spawn.c (babysit): use _dbus_set_signal_handler()
302
303         * dbus/dbus-sysdeps.c (_dbus_set_signal_handler): new
304
305         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
306         handle trying to call this when there's no servers active
307
308 2003-04-05  Havoc Pennington  <hp@pobox.com>
309
310         * NEWS: update
311
312         * configure.in: 0.8
313
314 2003-04-05  Havoc Pennington  <hp@pobox.com>
315
316         * bus/bus.c (setup_server): fix this so dbus-daemon-1 doesn't 
317         crash on startup. Need to get "try starting the daemon" 
318         in the test suite I guess. ;-)
319
320         * dbus/dbus-server.h, dbus/dbus-server.c: remove the stuff that
321         tracked the number of open connections; it's better done in 
322         application-specific code as you want it to span all servers etc.
323
324 2003-04-05  Havoc Pennington  <hp@pobox.com>
325
326         * bus/Makefile.am (install-data-hook): add missing DESTDIR, 
327         patch from Colin Walters
328
329 2003-04-05  Havoc Pennington  <hp@pobox.com>
330
331         * doc/config-file.txt (Elements): fix docs of <auth> to reflect 
332         reality; in fact multiple mechanisms are allowed.
333
334         * dbus/dbus-internals.c (_dbus_real_assert)
335         (_dbus_real_assert_not_reached): move guts of _dbus_assert() and
336         _dbus_assert_not_reached() into functions, so that they don't show
337         up in basic block counts for test coverage, and don't use up as
338         much disk space. Does mean slower execution speed though, so
339         assumes --disable-asserts is the normal production case.
340
341 2003-04-05  Havoc Pennington  <hp@pobox.com>
342
343         * test/Makefile.am (dist-hook): also dist *.in files
344
345         * NEWS: update
346
347         * configure.in: 0.7
348         
349 2003-04-05  Havoc Pennington  <hp@pobox.com>
350
351         * dbus/dbus-string.c: docs warning
352         
353         * dbus/dbus-spawn.c: missing docs
354
355         * dbus/dbus-memory.c (struct ShutdownClosure): missing docs
356
357 2003-04-05  Havoc Pennington  <hp@pobox.com>
358
359         * bus/loop.c (bus_loop_iterate): fix the timeout code, using 
360         magic from GLib
361
362         * dbus/dbus-spawn.c (_dbus_babysitter_unref): set sitter_pid 
363         to -1 once we've reaped the babysitter
364         (_dbus_babysitter_handle_watch): do as much work as we can, not
365         just one go of it
366
367         * bus/activation.c: add code using DBusBabysitter so that we
368         handle it when a service fails to start up properly.
369         (bus_activation_service_created): don't remove the activation
370         entries as we go, just let them get removed when we free the pending
371         activation. Unref reply messages after sending them.
372
373 2003-04-05  Havoc Pennington  <hp@pobox.com>
374
375         * test/decode-gcov.c (main): print per-directory stats in the report
376
377         * Makefile.am (coverage-report.txt): don't include test/* in gcov stats
378
379 2003-04-05  Havoc Pennington  <hp@pobox.com>
380
381         * Makefile.am (coverage-report.txt): add target "coverage-report.txt"
382
383         * test/decode-gcov.c: hack up a little program to suck data 
384         out of gcov files. Yes this is sort of silly.
385
386         * configure.in: define something in config.h and do an
387         AM_CONDITIONAL when gcov is enabled
388
389 2003-04-04  Havoc Pennington  <hp@redhat.com>
390
391         * dbus/dbus-spawn.c, dbus/dbus-spawn.h: Change dbus_spawn to
392         return a "babysitter" object that is used to monitor the status of
393         the spawned process and reap it when required.
394
395         * test/test-segfault.c, test/test-exit.c,
396         test/test-sleep-forever.c: binaries that do various lame things, 
397         used in the test suite.
398
399         * dbus/dbus-sysdeps.c: kill _dbus_errno_to_string()
400         
401 2003-04-03  Havoc Pennington  <hp@pobox.com>
402
403         * dbus/dbus-spawn.c: Move dbus-spawn into a separate file 
404         in preparation for modifying it, dbus-sysdeps is getting 
405         a bit unmanageable.
406
407 2003-04-03  Havoc Pennington  <hp@redhat.com>
408
409         * bus/loop.h, bus/loop.c: make the mainloop an object so we can
410         have multiple ones
411
412         * bus/*.[hc]: adapt to mainloop change
413
414 2003-04-03  Havoc Pennington  <hp@redhat.com>
415
416         * bus/activation.c (load_directory): fix up memleaks
417         (bus_activation_entry_free): free the entry
418
419         * dbus/dbus-bus.c (dbus_bus_acquire_service): return an error if
420         we get one from the message bus; fix memleaks.
421
422         * dbus/dbus-message.c (dbus_set_error_from_message): new function
423
424 2003-04-03  Havoc Pennington  <hp@pobox.com>
425
426         * bus/config-parser.c (bus_config_parser_unref): free 
427         list of mechanisms, bug discovered by test suite enhancements
428         (putting system.conf and session.conf into suite)
429
430         * test/Makefile.am, test/test-service.c: add placeholder for a
431         test service that we'll activate as part of test suite. Doesn't 
432         do anything yet.
433
434         * dbus/dbus-sysdeps.c (_dbus_setenv): support unsetenv by 
435         setting NULL value, and use system malloc not dbus_malloc() 
436         when we have unavoidable memleakage.
437
438         * dbus/dbus-bus.c (dbus_bus_get): fix bug where bus type of 0
439         didn't work, and support DBUS_BUS_ACTIVATION.
440         
441         * bus/activation.c (child_setup): pass our well-known bus type to
442         the child
443
444         * bus/config-parser.c: support <type> to specify well-known type
445
446         * doc/dbus-specification.sgml: document the env variables to 
447         locate well-known buses and find service activator
448
449 2003-04-02  Havoc Pennington  <hp@redhat.com>
450
451         * test/Makefile.am (all-local): add a rule to copy tests to
452         builddir, so we can have generated tests. Use this to remove the
453         silly hack for testing system.conf and session.conf. Will use this 
454         shortly to generate .service files pointing to test binaries.
455
456 2003-04-02  Havoc Pennington  <hp@redhat.com>
457
458         * dbus/dbus-string.c (set_length): fix a bug - we allocated max of
459         current alloc and needed new length, not max of the doubled
460         allocation and needed new length. Also, when building tests, 
461         don't do the double-allocation stuff, just realloc every time.
462
463 2003-04-02  Havoc Pennington  <hp@redhat.com>
464
465         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): include filenames
466         in error messages
467         (_dbus_string_get_dirname): new
468         (_dbus_sysdeps_test): new
469         (_dbus_directory_open): include dirnames in error messages
470
471         * bus/config-parser.c: interpret <include> and <includedir> and
472         <servicedir> relative to config file location if the given
473         filename is not absolute.
474
475         * dbus/dbus-string.c (_dbus_string_find_byte_backward): new
476
477 2003-04-02  Havoc Pennington  <hp@redhat.com>
478
479         * bus/connection.c (bus_transaction_send_error_reply): set sender
480         service for the error, and unref the reply on success
481
482         * bus/activation.c: convert to use BusTransaction so OOM can be
483         handled correctly
484         (bus_activation_service_created): set sender of the message
485
486 2003-04-01  Havoc Pennington  <hp@redhat.com>
487
488         * bus/config-parser.c, bus/bus.c: implement <servicedir> and
489         <includedir> (at least mostly)
490
491         * dbus/dbus-sysdeps.c (_dbus_change_identity): set the group ID
492         first, then the user ID
493
494 2003-04-01  Havoc Pennington  <hp@pobox.com>
495
496         * dbus/dbus-server.c (dbus_server_set_auth_mechanisms): new
497         function
498
499         * dbus/dbus-auth.c (_dbus_auth_set_mechanisms): new
500
501         * dbus/dbus-internals.c (_dbus_dup_string_array): new function
502
503         * dbus/dbus-sysdeps.c (_dbus_listen_unix_socket): chmod the
504         socket 0777, and unlink any existing socket.
505
506         * bus/bus.c (bus_context_new): change our UID/GID and fork if
507         the configuration file so specifies; set up auth mechanism 
508         restrictions
509
510         * bus/config-parser.c (bus_config_parser_content): add support
511         for <fork> option and fill in code for <auth> 
512
513         * bus/system.conf.in: add <fork/> to default configuration, 
514         and limit auth mechanisms to EXTERNAL
515
516         * doc/config-file.txt (Elements): add <fork>
517
518         * dbus/dbus-sysdeps.c (_dbus_become_daemon): new function
519         (_dbus_change_identity): new function
520
521 2003-03-31  Havoc Pennington  <hp@redhat.com>
522
523         * dbus/dbus-sysdeps.c (_dbus_connect_unix_socket) 
524         (_dbus_listen_unix_socket): fix off-by-one error in null
525         termination spotted by Nalin
526
527 2003-03-31  Havoc Pennington  <hp@redhat.com>
528
529         * dbus/dbus-keyring.c (_dbus_keyring_new_homedir): allow setting
530         DBUS_TEST_HOMEDIR when tests are enabled, so we can test without
531         having a real home directory available.
532
533 2003-03-31  Havoc Pennington  <hp@redhat.com>
534
535         * bus/Makefile.am (install-data-hook): create /var/run/dbus
536
537         * bus/messagebus.in: add init script for Red Hat /etc/init.d
538
539         * configure.in: add support for specifying a style of init script
540         to install
541
542 2003-03-31  Havoc Pennington  <hp@redhat.com>
543
544         Fix some annoying DBusString API and fix all affected code.
545         
546         * dbus/dbus-string.c (_dbus_string_init): get rid of annoying
547         max_length argument
548         (_dbus_string_get_data): change to return string instead of using 
549         an out param
550         (_dbus_string_get_const_data): ditto
551         (_dbus_string_get_data_len): ditto
552         (_dbus_string_get_const_data_len): ditto
553
554 2003-03-31  Havoc Pennington  <hp@redhat.com>
555
556         * bus/main.c (main): fix up the command line arguments to be nicer
557
558 2003-03-31  Havoc Pennington  <hp@redhat.com>
559
560         * dbus/Makefile.am (INCLUDES): use EXPANDED_LOCALSTATEDIR to
561         define DBUS_SYSTEM_BUS_PATH as we want to compile in the same 
562         final location that lands in the config file
563
564         * bus/config-loader-expat.c (bus_config_load): fix type of
565         XML_Parser variable
566
567         * doc/TODO: remove TODO item for dbus_bus_get()
568
569         * dbus/dbus-bus.c (bus_data_free): add missing lock/unlock
570
571 2003-03-31  Havoc Pennington  <hp@pobox.com>
572
573         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_domain_socket)
574         (_dbus_transport_new_for_tcp_socket): these didn't need the "server"
575         argument since they are always client side
576
577         * dbus/dbus-server.c (dbus_server_get_address): new function
578
579         * bus/main.c (main): take the configuration file as an argument.
580
581         * test/data/valid-config-files/debug-allow-all.conf: new file to 
582         use with dispatch.c tests for example
583
584         * bus/test-main.c (main): require test data dir
585
586         * bus/bus.c (bus_context_new): change this to take a
587         configuration file name as argument
588
589         * doc/config-file.txt (Elements): add <servicedir>
590
591         * bus/system.conf, bus/session.conf: new files
592         
593         * dbus/dbus-bus.c (dbus_bus_get): look for system bus on
594         well-known socket if none set
595
596         * configure.in: create system.conf and session.conf
597
598 2003-03-30  Havoc Pennington  <hp@pobox.com>
599
600         * bus/config-parser.c: hacking
601         
602         * dbus/dbus-memory.c: don't use DBusList for the list of stuff 
603         to shut down, since it could cause weirdness with the DBusList
604         lock
605
606         * dbus/dbus-list.c (_dbus_list_test): add tests for the
607         link-oriented stack routines
608         (alloc_link): free the mempool if the first alloc from it fails
609
610         * dbus/dbus-mempool.c (struct DBusMemBlock): fix alignment issue
611
612         * dbus/dbus-string.c (UNICODE_VALID): sync new version of this
613         from GLib
614         (_dbus_string_skip_white): new
615
616         * doc/config-file.txt (Elements): add <includedir>
617
618 2003-03-28  Havoc Pennington  <hp@pobox.com>
619
620         * dbus/dbus-string.c (_dbus_string_copy_data_len)
621         (_dbus_string_copy_data): new functions
622
623 2003-03-28  Anders Carlsson  <andersca@codefactory.se>
624
625         * dbus/dbus-bus.c: (bus_data_free), (dbus_bus_get):
626         * dbus/dbus-bus.h:
627         Add dbus_bus_get.
628         
629         * dbus/dbus-memory.c:
630         Fix a doc comment.
631         
632 2003-03-28  Havoc Pennington  <hp@pobox.com>
633
634         * bus/test.c (bus_test_flush_bus): remove the sleep from here, 
635         I think it may have just been superstition. Not sure.
636
637         * dbus/dbus-string.c (_dbus_string_base64_decode): catch some OOM
638         failures that were not being handled.
639
640         * dbus/dbus-auth.c (process_auth): fix a memleak in OOM handling
641
642         * dbus/dbus-memory.c: add ability to set number of mallocs in a
643         row that will fail on out-of-memory.
644
645         * dbus/dbus-internals.c (_dbus_test_oom_handling): convenience
646         function for testing out-of-memory handling.
647
648         * bus/config-loader-expat.c (memsuite): don't wrap the dbus
649         allocation functions, they do map exactly to the expat ones.
650
651 2003-03-27  Havoc Pennington  <hp@redhat.com>
652
653         * bus/config-loader-libxml.c (bus_config_load): add another error
654         check
655
656 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
657
658         * doc/TODO:
659         Add note about automatic service activation.
660         
661         * doc/dbus-specification.sgml:
662         Rename the specification and clarify a few things.
663         
664 2003-03-26  Anders Carlsson  <andersca@codefactory.se>
665
666         * Doxyfile.in:
667         * dbus/dbus-address.c:
668         * dbus/dbus-dict.c:
669         * dbus/dbus-marshal.c:
670         * dbus/dbus-server-debug-pipe.c:
671         * dbus/dbus-transport-unix.c:
672         Fix documentation warnings.
673         
674 2003-03-26  Havoc Pennington  <hp@pobox.com>
675
676         * bus/test-main.c, dbus/dbus-test.c (main): check memleaks
677         after every test so it's quick and easy to see which leaked, and
678         so we test multiple dbus_shutdown() calls
679
680         * configure.in: change configure.in XML stuff to also support
681         expat
682
683         * config-loader-libxml.c: some hacking
684
685         * config-loader-expat.c: some hacking
686
687         * config-parser.c: some hacking, plus tests
688
689 2003-03-25  Havoc Pennington  <hp@redhat.com>
690
691         * throughout - add more _DBUS_ASSERT_ERROR_IS_CLEAR
692         
693         * configure.in: add --with-xml option to specify XML library,
694         right now only libxml is supported.
695
696         * bus/config-loader-libxml.c, config-parser.c: sync some minor 
697         nonworking code between home and work, still just stubs
698
699 2003-03-24  Havoc Pennington  <hp@redhat.com>
700
701         * dbus/dbus-sysdeps.c (_dbus_set_fd_nonblocking): move to this
702         file
703
704         * dbus/dbus-errors.c (dbus_set_error, dbus_set_error_const): allow 
705         NULL argument for "message" if the error is a well-known one, 
706         fill in a generic message in this case.
707
708         * dbus/dbus-errors.h (DBusResultCode): Kill DBusResultCode in
709         favor of DBusError
710
711         * bus/test.c (bus_test_flush_bus): add
712
713         * bus/policy.c (bus_policy_test): test code stub
714
715 2003-03-24  Havoc Pennington  <hp@pobox.com>
716
717         * bus/connection.c (bus_connections_setup_connection): set up 
718         the "can this user connect" function, but it always returns 
719         TRUE until we have a config file parser so we can have a config
720         file that allows connections.
721
722 2003-03-23  Havoc Pennington  <hp@pobox.com>
723
724         * dbus/dbus-threads.c (dbus_mutex_new, dbus_condvar_new): with 
725         DBUS_BUILD_TESTS, actually alloc/free a block of memory for 
726         the mutex, so we can check for proper memory management 
727         and OOM handling.
728
729         * dbus/dbus-dataslot.c: remove the mutex from
730         DBusDataSlotAllocator and lock it manually when using it, 
731         to simplify fitting it into the global slots framework.
732
733         * dbus/dbus-threads.c (init_static_locks): rework how we're
734         handling global locks so they are easily shut down.
735
736         * bus/policy.c (bus_policy_append_rule): fix
737
738         * bus/test-main.c (main): check for memleaks
739
740         * dbus/dbus-test.c (dbus_internal_do_not_use_run_tests): make 
741         test suite check for memleaks
742
743         * dbus/dbus-memory.c: add support in test mode for tracking 
744         number of outstanding blocks
745
746 2003-03-23  Havoc Pennington  <hp@pobox.com>
747
748         * bus/policy.c, bus/bus.c, bus/connection.c: implement allow/deny
749         policies code
750         
751         * dbus/dbus-hash.h: add ULONG hash keys
752
753         * dbus/dbus-sysdeps.c (_dbus_get_groups): new
754         (_dbus_get_group_id): new function
755
756 2003-03-20  Havoc Pennington  <hp@redhat.com>
757
758         * dbus/dbus-connection.c (dbus_connection_set_unix_user_function):
759         new function
760         (dbus_connection_get_unix_user): new function
761
762 2003-03-20  Havoc Pennington  <hp@pobox.com>
763
764         * bus/connection.c (bus_connection_send_oom_error): assert that
765         message has a sender
766         (connection_execute_transaction): ditto
767         (bus_connection_preallocate_oom_error): fix to set the sender, and
768         set recipient to the destination service, not the bus driver
769
770         * bus/policy.c: hacking
771
772         * dbus/dbus-message.c (dbus_message_service_is): new function
773         (dbus_message_sender_is): new
774
775 2003-03-19  Havoc Pennington  <hp@redhat.com>
776
777         * bus/policy.c: start sketching code for policy restrictions on 
778         what connections can do.
779
780 2003-03-18  Havoc Pennington  <hp@redhat.com>
781
782         * doc/TODO: some notes on high-level todo items. Little nitpick
783         stuff is all in @todo, so no need to add it here.
784
785         * doc/config-file.txt: some notes on how config file might look
786
787 2003-03-18  Anders Carlsson  <andersca@codefactory.se>
788
789         * configure.in: 0.6
790
791         * NEWS: Update.
792         
793 2003-03-17  Havoc Pennington  <hp@redhat.com>
794
795         * dbus/dbus-internals.h: add gcc attributes so that 
796         our printf-style functions warn on bad arguments to 
797         format
798         
799         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): fix printf 
800         format bug
801
802         * dbus/dbus-message.c (_dbus_message_loader_queue_messages): fix
803         printf format bug
804
805 2003-03-17  Havoc Pennington  <hp@redhat.com>
806
807         * bus/test-main.c (main): make it print something as it runs 
808         so make check doesn't look stuck
809
810         * doc/negotiation.txt, doc/dbus-sasl-profile.txt: remove 
811         from CVS, now obsolete
812
813 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
814
815         * bus/dispatch.c: (bus_dispatch):
816         Refetch the service name since it may have been reallocated
817         when dbus_message_set_sender was called.
818         
819         * dbus/dbus-sysdeps.c: (_dbus_accept):
820         Add address and address length variables and use them to stop
821         valgrind from complaining.
822         
823 2003-03-17  Havoc Pennington  <hp@pobox.com>
824
825         All tests pass, no memleaks, no valgrind complaints.
826         
827         * bus/test.c: refcount handler_slot
828
829         * bus/connection.c (bus_connections_new): refcount
830         connection_data_slot
831
832         * dbus/dbus-auth-script.c (_dbus_auth_script_run): delete unused
833         bytes so that auth scripts pass.
834
835         * bus/dispatch.c: init message_handler_slot so it gets allocated
836         properly
837
838         * bus/dispatch.c (message_handler_slot_ref): fix memleak
839
840         * dbus/dbus-server-debug-pipe.c (_dbus_server_debug_pipe_new):
841         dealloc server_pipe_hash when no longer used for benefit of
842         leak checking
843
844         * dbus/dbus-auth.c (process_command): memleak fix
845
846         * bus/dispatch.c (check_hello_message): memleak fix
847
848 2003-03-16  Havoc Pennington  <hp@pobox.com>
849
850         * dbus/dbus-bus.c (ensure_bus_data): fix double-unref of the data slot
851
852 2003-03-17  Anders Carlsson  <andersca@codefactory.se>
853
854         * bus/activation.c (bus_activation_activate_service): Append
855         the pending activation entry to the list of pending activations.
856
857 2003-03-16  Havoc Pennington  <hp@pobox.com>
858
859         * bus/dispatch.c (bus_dispatch_test): remove double-unrefs of
860         connections
861
862         * dbus/dbus-address.c (create_entry): fix OOM handling when
863         failing to alloc entry->method
864
865 2003-03-16  Havoc Pennington  <hp@pobox.com>
866
867         * dbus/dbus-watch.c (_dbus_watch_new): handle failure to malloc
868         the watch
869
870         * dbus/dbus-server-debug-pipe.c (_dbus_transport_debug_pipe_new):
871         add some missing dbus_set_result
872
873         * bus/dispatch.c (bus_dispatch_add_connection): handle failure to 
874         alloc the DBusMessageHandler
875
876         * dbus/dbus-transport.c (_dbus_transport_disconnect): don't ref
877         the transport here, since we call this from the finalizer; it 
878         resulted in a double-finalize.
879
880         * dbus/dbus-transport.c (_dbus_transport_disconnect): fix a bug 
881         where we tried to use transport->connection that was NULL, 
882         happened when transport was disconnected early on due to OOM
883
884         * bus/*.c: adapt to handle OOM for watches/timeouts
885
886         * dbus/dbus-transport-unix.c: port to handle OOM during 
887         watch handling
888         
889         * dbus/dbus-auth.c (_dbus_auth_get_unused_bytes): return a
890         reference to unused bytes instead of a copy
891
892         * dbus/dbus-server.c (dbus_server_handle_watch): return FALSE for
893         out of memory
894
895         * dbus/dbus-connection.c (dbus_connection_handle_watch): return
896         FALSE on OOM
897
898         * dbus/dbus-timeout.c (dbus_timeout_handle): return FALSE for out
899         of memory
900
901 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
902
903         * doc/dbus-specification.sgml:
904         Document reply message for ActivateService.
905         
906 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
907
908         * bus/activation.c: (bus_pending_activation_entry_free),
909         (bus_pending_activation_free), (bus_activation_new),
910         (bus_activation_unref), (bus_activation_service_created),
911         (bus_activation_activate_service):
912         * bus/activation.h:
913         * bus/bus.c: (bus_context_new):
914         * bus/desktop-file.c: (new_section):
915         * bus/driver.c: (bus_driver_send_service_deleted),
916         (bus_driver_handle_activate_service):
917         * bus/services.c: (bus_registry_new), (bus_registry_ensure):
918         * bus/services.h:
919         * dbus/dbus-connection.c:
920         (dbus_connection_send_with_reply_and_block):
921         * dbus/dbus-message.c: (dbus_message_append_args_valist):
922         * dbus/dbus-protocol.h:
923         Make activation work better. Now pending activations will be queued
924         and the daemon won't try to activate services that are already registered.
925         
926 2003-03-16  Havoc Pennington  <hp@pobox.com>
927
928         * dbus/dbus-bus.c (ensure_bus_data): handle failure to set
929         connection data
930
931         * dbus/dbus-memory.c (_dbus_initialize_malloc_debug): support
932         DBUS_MALLOC_BACKTRACES to print trace when failing an alloc
933
934 2003-03-16  Havoc Pennington  <hp@pobox.com>
935
936         * dbus/dbus-string.c (_dbus_string_validate_utf8): oops, unbreak
937         this. always run the test suite before commit...
938
939         * bus/*: adapt to DBusConnection API changes
940
941         * glib/dbus-gmain.c: adapt to DBusConnection API changes, 
942         requires renaming stuff to avoid dbus_connection_dispatch name 
943         conflict.
944
945         * dbus/dbus-transport.c (_dbus_transport_queue_messages): new
946         function
947
948         * dbus/dbus-message.c (_dbus_message_loader_queue_messages):
949         separate from _dbus_message_loader_return_buffer()
950
951         * dbus/dbus-connection.c (dbus_connection_get_n_messages): remove
952         this, because it's now always broken to use; the number of
953         messages in queue vs. the number still buffered by the message
954         loader is undefined/meaningless. Should use
955         dbus_connection_get_dispatch_state().
956         (dbus_connection_dispatch): rename from
957         dbus_connection_dispatch_message
958
959 2003-03-16  Havoc Pennington  <hp@pobox.com>
960
961         * dbus/dbus-string.c (_dbus_string_validate_utf8): copy in a real
962         implementation
963
964 2003-03-16  Anders Carlsson  <andersca@codefactory.se>
965
966         * dbus/dbus-connection.c:
967         (dbus_connection_send_with_reply_and_block):
968         Decrease connection->n_incoming when removing an entry 
969         from the list.
970         * dbus/dbus-dict.c: (dbus_dict_entry_free),
971         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
972         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
973         (dbus_dict_set_byte_array), (dbus_dict_set_string_array),
974         (dbus_dict_get_boolean_array), (dbus_dict_get_double_array),
975         (dbus_dict_get_byte_array):
976         Handle NULL arrays and strings. Also add support for byte arrays.
977         
978         * dbus/dbus-marshal.c: (_dbus_marshal_byte_array),
979         (_dbus_marshal_dict), (_dbus_demarshal_byte_array),
980         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
981         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
982         (_dbus_demarshal_dict), (demarshal_and_validate_len),
983         (_dbus_marshal_validate_arg), (_dbus_marshal_test):
984         * dbus/dbus-marshal.h:
985         Add support for marshalling and demarshalling empty arrays and strings.
986         
987         * dbus/dbus-message.c: (dbus_message_append_args_valist),
988         (dbus_message_append_string_array),
989         (dbus_message_iter_get_boolean),
990         (dbus_message_iter_get_boolean_array),
991         (dbus_message_iter_get_int32_array),
992         (dbus_message_iter_get_uint32_array),
993         (dbus_message_iter_get_double_array),
994         (dbus_message_iter_get_byte_array),
995         (dbus_message_iter_get_string_array), (dbus_message_iter_get_dict),
996         (check_message_handling):
997         Add support for getting empty arrays and dicts.
998         
999         * dbus/dbus-string.c: (_dbus_string_validate_utf8):
1000         Don't do any validation at all for now, that's better than just checking
1001         for ASCII.
1002         
1003         * test/data/valid-messages/emptiness.message:
1004         New test message with lots of empty arrays.
1005         
1006 2003-03-16  Havoc Pennington  <hp@pobox.com>
1007
1008         * dbus/dbus-connection.c
1009         (_dbus_connection_queue_received_message_link): new function that
1010         can't fail due to OOM
1011
1012         * dbus/dbus-message.c (_dbus_message_loader_pop_message_link):
1013         new function pops a message together with a list link 
1014         containing it.
1015
1016         * dbus/dbus-transport-unix.c (queue_messages): use new link-based
1017         message queuing functions to avoid needing to alloc memory
1018
1019 2003-03-16  Havoc Pennington  <hp@pobox.com>
1020
1021         Oops - test code was only testing failure of around 30 of the
1022         mallocs in the test path, but it turns out there are 500+
1023         mallocs. I believe this was due to misguided linking setup such
1024         that there was one copy of dbus_malloc etc. in the daemon and one
1025         in the shared lib, and only daemon mallocs were tested. In any
1026         case, the test case now tests all 500+ mallocs, and doesn't pass
1027         yet, though there are lots of fixes in this patch.
1028         
1029         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
1030         this so that it doesn't need to allocate memory, since it 
1031         has no way of indicating failure due to OOM (and would be 
1032         annoying if it did).
1033
1034         * dbus/dbus-list.c (_dbus_list_pop_first_link): new function
1035
1036         * bus/Makefile.am: rearrange to create two self-contained
1037         libraries, to avoid having libraries with overlapping symbols. 
1038         that was resulting in weirdness, e.g. I'm pretty sure there 
1039         were two copies of global static variables.
1040
1041         * dbus/dbus-internals.c: move the malloc debug stuff to 
1042         dbus-memory.c
1043
1044         * dbus/dbus-list.c (free_link): free list mempool if it becomes
1045         empty.
1046
1047         * dbus/dbus-memory.c (_dbus_disable_mem_pools): new function
1048
1049         * dbus/dbus-address.c (dbus_parse_address): free list nodes
1050         on failure.
1051
1052         * bus/dispatch.c (bus_dispatch_add_connection): free
1053         message_handler_slot when no longer using it, so 
1054         memory leak checkers are happy for the test suite.
1055
1056         * dbus/dbus-server-debug-pipe.c (debug_finalize): free server name
1057
1058         * bus/bus.c (new_connection_callback): disconnect in here if 
1059         bus_connections_setup_connection fails.
1060
1061         * bus/connection.c (bus_connections_unref): fix to free the 
1062         connections
1063         (bus_connections_setup_connection): if this fails, don't
1064         disconnect the connection, just be sure there are no side
1065         effects.
1066
1067         * dbus/dbus-string.c (undo_alignment): unbreak this
1068
1069         * dbus/dbus-auth.c (_dbus_auth_unref): free some stuff we were
1070         leaking
1071         (_dbus_auth_new): fix the order in which we free strings 
1072         on OOM failure
1073
1074         * bus/connection.c (bus_connection_disconnected): fix to 
1075         not send ServiceDeleted multiple times in case of memory 
1076         allocation failure
1077
1078         * dbus/dbus-bus.c (dbus_bus_get_base_service): new function to
1079         get the base service name
1080         (dbus_bus_register_client): don't return base service name,
1081         instead store it on the DBusConnection and have an accessor
1082         function for it.
1083         (dbus_bus_register_client): rename dbus_bus_register()
1084
1085         * bus/dispatch.c (check_hello_message): verify that other 
1086         connections on the bus also got the correct results, not 
1087         just the one sending hello
1088
1089 2003-03-15  Havoc Pennington  <hp@pobox.com>
1090
1091         Make it pass the Hello handling test including all OOM codepaths.
1092         Now to do other messages...
1093         
1094         * bus/services.c (bus_service_remove_owner): fix crash when
1095         removing owner from an empty list of owners
1096         (bus_registry_ensure): don't leave service in the list of 
1097         a connection's owned services if we fail to put the service
1098         in the hash table.
1099
1100         * bus/connection.c (bus_connection_preallocate_oom_error): set
1101         error flag on the OOM error.
1102
1103         * dbus/dbus-connection.c (_dbus_connection_new_for_transport):
1104         handle _dbus_transport_set_connection failure
1105
1106         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd): modify
1107         to create watches up front and simply enable/disable them as
1108         needed.
1109         (unix_connection_set): this can now fail on OOM
1110
1111         * dbus/dbus-timeout.c, dbus/dbus-watch.c: add concept 
1112         of enabling/disabling a watch or timeout.
1113
1114         * bus/loop.c (bus_loop_iterate): don't touch disabled
1115         watches/timeouts
1116
1117         * glib/dbus-gmain.c: adapt to enable/disable watches and timeouts
1118
1119 2003-03-15  Havoc Pennington  <hp@pobox.com>
1120
1121         * bus/dispatch.c (bus_dispatch_test): OK, now finally actually
1122         write useful test code, after all that futzing around ;-)
1123
1124         Test does not yet pass because we can't handle OOM in
1125         _dbus_transport_messages_pending (basically,
1126         dbus_connection_preallocate_send() does not prealloc the write
1127         watch). To fix this, I think we need to add new stuff to
1128         set_watch_functions, namely a SetEnabled function so we can alloc
1129         the watch earlier, then enable it later.
1130         
1131         * dbus/Makefile.am (libdbus_convenience_la_SOURCES): move
1132         dbus-memory.c to the convenience lib
1133
1134         * bus/test.c: rename some static functions to keep them clearly 
1135         distinct from stuff in connection.c. Handle client disconnection.
1136
1137 2003-03-14  Havoc Pennington  <hp@pobox.com>
1138
1139         * bus/dispatch.c (bus_dispatch_test): do test using debug-pipe 
1140         transport, tests more of the real codepath. Set up clients 
1141         with bus_setup_debug_client.
1142
1143         * bus/test.c (bus_setup_debug_client): function to set up debug 
1144         "clients" on the main loop
1145
1146         * dbus/dbus-transport.c (_dbus_transport_open): add debug-pipe 
1147         support
1148
1149         * dbus/dbus-server.c (dbus_server_listen): add debug-pipe 
1150         server type
1151
1152         * dbus/dbus-server-debug.c: support a debug server based on pipes
1153
1154         * dbus/dbus-sysdeps.c (_dbus_full_duplex_pipe): new function
1155         (_dbus_close): new function
1156         
1157         * configure.in: check for socketpair
1158
1159 2003-03-14  Havoc Pennington  <hp@redhat.com>
1160
1161         * dbus/dbus-memory.c: add a "detect buffer overwrites on free" 
1162         cheesy hack
1163
1164         * dbus/dbus-transport-debug.c: rework this a good bit to be 
1165         less complicated. hopefully still works.
1166
1167         * dbus/dbus-server-debug.c (handle_new_client): remove timeout
1168         manually
1169
1170         * glib/dbus-gmain.c (timeout_handler): don't remove timeout 
1171         after running it
1172
1173         * dbus/dbus-message.c (dbus_message_copy): rename from 
1174         dbus_message_new_from_message, fix it up to copy 
1175         all the message fields, add test case
1176
1177         * bus/dispatch.c (bus_dispatch_test): add some more test code, 
1178         not quite passing yet
1179
1180 2003-03-14  Havoc Pennington  <hp@pobox.com>
1181
1182         * bus/loop.c (bus_loop_iterate): add this so we can "run loop
1183         until no work remains" in test code. (the large diff here 
1184         is just code movement, no actual changes)
1185
1186         * dbus/dbus-server-debug.c (DEFAULT_INTERVAL): change interval to
1187         1, no point waiting around for test code.
1188         (_dbus_server_debug_accept_transport): unref the timeout 
1189         after adding it (right?)
1190
1191         * dbus/dbus-transport-debug.c (DEFAULT_INTERVAL): ditto
1192         
1193 2003-03-13  Havoc Pennington  <hp@redhat.com>
1194
1195         * dbus/dbus-timeout.c (_dbus_timeout_list_set_functions): handle
1196         out of memory
1197
1198         * dbus/dbus-watch.c (_dbus_watch_list_set_functions): handle out
1199         of memory
1200
1201         * dbus/dbus-connection.h: Make AddWatchFunction and
1202         AddTimeoutFunction return a bool so they can fail on out-of-memory
1203
1204         * bus/bus.c (bus_context_new): set up timeout handlers
1205
1206         * bus/connection.c (bus_connections_setup_connection): set up
1207         timeout handlers
1208
1209         * glib/dbus-gmain.c: adapt to the fact that set_functions stuff
1210         can fail
1211
1212         * bus/bus.c (bus_context_new): adapt to changes
1213
1214         * bus/connection.c: adapt to changes
1215
1216         * test/watch.c: adapt to DBusWatch changes
1217
1218         * bus/dispatch.c (bus_dispatch_test): started adding this but
1219         didn't finish
1220         
1221 2003-03-14  Anders Carlsson  <andersca@codefactory.se>
1222
1223         * bus/dispatch.c (send_service_nonexistent_error): Fix typo.
1224
1225 2003-03-13  Havoc Pennington  <hp@pobox.com>
1226
1227         * bus/test.c, bus/test.h, bus/Makefile.am, bus/test-main.c: 
1228         set up a test framework as for the library
1229
1230 2003-03-12  Havoc Pennington  <hp@pobox.com>
1231
1232         Throughout: purge global variables, introduce BusActivation, 
1233         BusConnections, BusRegistry, etc. objects instead.
1234         
1235         * bus/bus.h, bus/bus.c: introduce BusContext as a global 
1236         message bus object
1237
1238         * test/Makefile.am (TEST_BINARIES): disable bus-test for now, 
1239         going to redo this a bit differently I think
1240         
1241 2003-03-12  Havoc Pennington  <hp@redhat.com>
1242
1243         Mega-patch that gets the message bus daemon initially handling 
1244         out-of-memory. Work still needed. Also lots of random 
1245         moving stuff to DBusError instead of ResultCode.
1246         
1247         * dbus/dbus-list.c (_dbus_list_length_is_one): new function
1248
1249         * dbus/dbus-connection.c
1250         (dbus_connection_send_with_reply_and_block): use DBusError
1251
1252         * dbus/dbus-bus.c: adapt to API changes, make it use DBusError not
1253         DBusResultCode
1254
1255         * dbus/dbus-connection.c (dbus_connection_send): drop the result
1256         code here, as the only failure possible is OOM.
1257
1258         * bus/connection.c (bus_connection_disconnect):
1259         rename bus_connection_disconnected as it's a notification only
1260
1261         * bus/driver.c (bus_driver_handle_acquire_service): don't free
1262         "name" on get_args failure, should be done by get_args; 
1263         don't disconnect client for bad args, just return an error.
1264         (bus_driver_handle_service_exists): ditto
1265
1266         * bus/services.c (bus_services_list): NULL-terminate returned array
1267
1268         * bus/driver.c (bus_driver_send_service_lost)
1269         (bus_driver_send_service_acquired): send messages from driver to a
1270         specific client to the client's unique name, not to the broadcast
1271         service.
1272
1273         * dbus/dbus-message.c (decode_header_data): reject messages that
1274         contain no name field
1275         (_dbus_message_get_client_serial): rename to
1276         dbus_message_get_serial and make public
1277         (_dbus_message_set_serial): rename from set_client_serial
1278         (_dbus_message_set_reply_serial): make public
1279         (_dbus_message_get_reply_serial): make public
1280
1281         * bus/connection.c (bus_connection_foreach): allow stopping
1282         iteration by returning FALSE from foreach function.
1283
1284         * dbus/dbus-connection.c (dbus_connection_send_preallocated) 
1285         (dbus_connection_free_preallocated_send) 
1286         (dbus_connection_preallocate_send): new API for sending a message
1287         without possibility of malloc failure.
1288         (dbus_connection_send_message): rename to just
1289         dbus_connection_send (and same for whole function family)
1290
1291         * dbus/dbus-errors.c (dbus_error_free): make this reinit the error
1292
1293         * dbus/dbus-sysdeps.c (_dbus_exit): new function
1294
1295         * bus/activation.c: handle/return errors
1296
1297         * dbus/dbus-errors.h: add more DBUS_ERROR #define
1298
1299         * dbus/dbus-sysdeps.c (_dbus_directory_open) (_dbus_file_get_contents)
1300         (_dbus_directory_get_next_file): use DBusError instead of DBusResultCode
1301         (_dbus_result_from_errno): move to this file
1302
1303 2003-03-10  Anders Carlsson  <andersca@codefactory.se>
1304
1305         * dbus/dbus-marshal.c: 
1306         (_dbus_marshal_set_string):
1307         Take a length argument so we can marshal the correct string
1308         length.
1309         
1310         (_dbus_marshal_dict), (_dbus_demarshal_dict),
1311         (_dbus_marshal_get_arg_end_pos), (_dbus_marshal_validate_arg),
1312         (_dbus_marshal_test):
1313         * dbus/dbus-marshal.h:  
1314         Add support for marshalling and demarshalling dicts.
1315         
1316         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
1317         Add support for TYPE DICT.
1318         
1319         * dbus/dbus-message.c: (set_string_field):
1320         Adjust header padding.
1321         
1322         (dbus_message_append_args_valist), (dbus_message_append_dict),
1323         (dbus_message_get_args_valist), (dbus_message_iter_get_arg_type),
1324         (dbus_message_iter_get_dict), (_dbus_message_loader_return_buffer),
1325         (check_message_handling), (check_have_valid_message):
1326         * dbus/dbus-message.h:
1327         Add functions for setting and getting dicts.
1328
1329         * dbus/dbus-protocol.h:
1330         Add DBUS_TYPE_DICT.
1331         
1332         * dbus/dbus.h:
1333         Add dbus-dict.h
1334         
1335         * doc/dbus-specification.sgml:
1336         Add information about how dicts are marshalled.
1337         
1338         * test/data/invalid-messages/dict-with-nil-value.message:
1339         * test/data/invalid-messages/too-short-dict.message:
1340         * test/data/valid-messages/dict-simple.message:
1341         * test/data/valid-messages/dict.message:
1342         Add sample messages containing dicts.
1343
1344 2003-03-08  Anders Carlsson  <andersca@codefactory.se>
1345
1346         * dbus/dbus-dict.h: Add DBUS_END_DECLS.
1347
1348 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
1349
1350         * dbus/Makefile.am:
1351         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
1352         (dbus_dict_get_keys), (insert_entry), (dbus_dict_set_boolean),
1353         (dbus_dict_set_int32), (dbus_dict_set_uint32),
1354         (dbus_dict_set_double), (dbus_dict_set_string),
1355         (dbus_dict_set_boolean_array), (dbus_dict_set_int32_array),
1356         (dbus_dict_set_uint32_array), (dbus_dict_set_double_array),
1357         (dbus_dict_set_string_array), (_dbus_dict_test):
1358         * dbus/dbus-dict.h:
1359         Fix according to comments from Havoc.
1360         
1361 2003-03-06  Michael Meeks  <michael@server.home>
1362
1363         * configure.in: if we don't have kde-config, disable have_qt.
1364
1365 2003-03-07  Anders Carlsson  <andersca@codefactory.se>
1366
1367         * dbus/Makefile.am:
1368         Add dbus-dict.[ch]
1369         
1370         * dbus/dbus-dict.c: (dbus_dict_entry_free), (dbus_dict_new),
1371         (dbus_dict_ref), (dbus_dict_unref), (dbus_dict_contains),
1372         (dbus_dict_remove), (dbus_dict_get_value_type),
1373         (dbus_dict_get_keys), (dbus_dict_put_boolean),
1374         (dbus_dict_put_int32), (dbus_dict_put_uint32),
1375         (dbus_dict_put_double), (dbus_dict_put_string),
1376         (dbus_dict_put_boolean_array), (dbus_dict_put_int32_array),
1377         (dbus_dict_put_uint32_array), (dbus_dict_put_double_array),
1378         (dbus_dict_put_string_array), (dbus_dict_get_boolean),
1379         (dbus_dict_get_int32), (dbus_dict_get_uint32),
1380         (dbus_dict_get_double), (dbus_dict_get_string),
1381         (dbus_dict_get_boolean_array), (dbus_dict_get_int32_array),
1382         (dbus_dict_get_uint32_array), (dbus_dict_get_double_array),
1383         (dbus_dict_get_string_array), (_dbus_dict_test):
1384         * dbus/dbus-dict.h:
1385         Add DBusDict implementation
1386         
1387         * dbus/dbus-test.c: (dbus_internal_do_not_use_run_tests):
1388         * dbus/dbus-test.h:
1389         Add _dbus_dict_test
1390         
1391 2003-03-04  Havoc Pennington  <hp@pobox.com>
1392
1393         * test/data/auth/*: adapt to changes
1394
1395         * dbus/dbus-auth-script.c (_dbus_auth_script_run): add
1396         USERID_BASE64 and change USERNAME_BASE64 to put in username not
1397         userid
1398
1399         * dbus/dbus-keyring.c (_dbus_keyring_validate_context): prevent
1400         more stuff from being in a context name, to make the protocol 
1401         simpler to deal with
1402
1403         * dbus/dbus-errors.c (dbus_error_has_name): new function
1404         (dbus_error_is_set): new function
1405
1406         * dbus/dbus-auth.c: replace DBUS_STUPID_TEST_MECH auth 
1407         with DBUS_COOKIE_SHA1, implement DBUS_COOKIE_SHA1
1408         
1409         * dbus/dbus-connection.c (dbus_connection_flush): also read
1410         messages during a flush operation
1411
1412         * dbus/Makefile.am: remove dbus-md5 since it isn't currently used.
1413
1414 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
1415
1416         * configure.in: Check for gethostbyname on Solaris.
1417
1418         * dbus/dbus-transport.c: (_dbus_transport_open):
1419         Remove duplicate "tcp" entry.
1420         
1421         * doc/dbus-specification.sgml:
1422         Clarify some things.
1423         
1424 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
1425
1426         * dbus/dbus-auth.c: (send_rejected), (process_test_subdir):
1427         * dbus/dbus-keyring.c: (_dbus_keyring_new_homedir),
1428         (_dbus_keyring_test):
1429         * dbus/dbus-md5.c: (_dbus_md5_compute):
1430         * dbus/dbus-sha.c: (_dbus_sha_compute):
1431         Plug memory leaks.
1432
1433 2003-03-05  Anders Carlsson  <andersca@codefactory.se>
1434
1435         * README: Add some things.
1436
1437 2003-03-04  Anders Carlsson  <andersca@codefactory.se>
1438
1439         * dbus/dbus-message.c (dbus_message_append_args_valist): Add a break;
1440         after case DBUS_TYPE_BOOELAN.
1441
1442 2003-03-02  Havoc Pennington  <hp@pobox.com>
1443
1444         * test/break-loader.c (randomly_set_extreme_ints): add test that
1445         sets really huge and small integers
1446
1447         * dbus/dbus-marshal.c (_dbus_marshal_validate_arg): add check
1448         that length of boolean array fits in the string, and that 
1449         string has room for boolean value in single-bool case.
1450
1451         * dbus/dbus-message-builder.c (_dbus_message_data_load): add
1452         optional value to "ALIGN" command which is what to fill the
1453         alignment with.
1454
1455         * test/data/valid-messages/no-padding.message: add regression
1456         test for the message padding problem
1457
1458 2003-03-02  Havoc Pennington  <hp@pobox.com>
1459
1460         * dbus/dbus-message.c (decode_header_data): fix to always init
1461         message_padding, from Benjamin Dauvergne
1462
1463 2003-03-02  Havoc Pennington  <hp@pobox.com>
1464
1465         * configure.in: 0.5
1466
1467         * NEWS: Update.
1468
1469 2003-03-01  Joe Shaw  <joe@assbarn.com>
1470
1471         * configure.in: Check for "struct cmsgcred" and try to access its
1472         members for BSD-like unices.
1473
1474         * dbus/dbus-sysdeps.c (read_credentials_byte): Fold this back into
1475         _dbus_read_credentials_unix_socket().
1476         (_dbus_read_credentials_unix_socket): Use recvmsg() instead of
1477         read() for reading the credential byte off the unix socket.  Use
1478         struct cmsgcred on systems that support it.
1479
1480 2003-02-27  Alexander Larsson  <alexl@redhat.com>
1481
1482         * glib/Makefile.am: 
1483         * configure.in:
1484         Make gthreads-2.0 dependency optional. Don't build thread test if
1485         its not found.
1486
1487 2003-02-27  Havoc Pennington  <hp@pobox.com>
1488
1489         * dbus/dbus-connection.c
1490         (dbus_connection_send_message_with_reply_and_block): fix doh!
1491         doh! doh! bug that resulted in never removing a reply from the
1492         queue, no wonder we called get_reply_serial so much ;-)
1493         
1494         * dbus/dbus-message.c (struct DBusMessage): cache reply serial
1495         and client serial instead of demarshaling them every time
1496
1497 2003-02-27  Havoc Pennington  <hp@pobox.com>
1498
1499         * dbus/dbus-marshal.c (_dbus_demarshal_int32): rewrite to be much
1500         more inlined, using dbus-string-private.h, speeds things up 
1501         substantially
1502
1503         * dbus/dbus-string.c (_dbus_string_free): apply align offset
1504         when freeing the string
1505         (_dbus_string_steal_data): fix for align offset
1506         (undo_alignment): new function
1507
1508 2003-02-26  Havoc Pennington  <hp@redhat.com>
1509
1510         All kinds of audit fixes from Owen, plus initial attempt to 
1511         handle unaligned memory returned from malloc.
1512         
1513         * dbus/dbus-string.c (_dbus_string_init): clamp max length to 
1514         leave room for align_offset and nul byte
1515         (fixup_alignment): function to track an align_offset and 
1516         ensure real->str is aligned
1517         (DBUS_GENERIC_STRING_PREAMBLE): len must be less than allocated, 
1518         to allow a nul byte plus align offset
1519         (_dbus_string_lock): fix overflow issue
1520         (_dbus_string_init_const_len): add assertions on sanity of len, 
1521         assign allocated to be ALLOCATION_PADDING larger than len
1522         (set_length): fixup the overflow handling
1523         (_dbus_string_get_data_len): fix overflow in assertion
1524         (open_gap): detect overflow in size of gap to be opened
1525         (_dbus_string_lengthen): add overflow check
1526         (_dbus_string_align_length): fix overflow with _DBUS_ALIGN_VALUE
1527         (_dbus_string_append): add overflow check
1528         (_dbus_string_append_unichar): overflow
1529         (_dbus_string_delete): fix overflow in assertion
1530         (_dbus_string_copy_len): overflow in assertion
1531         (_dbus_string_replace_len): overflows in assertions
1532         (_dbus_string_find): change to implement in terms of 
1533         _dbus_string_find_to
1534         (_dbus_string_find_to): assorted fixage
1535         (_dbus_string_equal_c_str): assert c_str != NULL, 
1536         fix logic so the function works
1537         (_dbus_string_ends_with_c_str): fix overflow thingy
1538         (_dbus_string_base64_encode): overflow fix
1539         (_dbus_string_validate_ascii): overflow
1540         (_dbus_string_validate_nul): overflow
1541         
1542 2003-02-26  Havoc Pennington  <hp@redhat.com>
1543
1544         * dbus/dbus-marshal.c (_dbus_marshal_test): fix to work with DISABLE_ASSERTS
1545
1546 2003-02-26  Alexander Larsson  <alexl@redhat.com>
1547
1548         * configure.in:
1549         Set DBUS_GLIB_THREADS_LIBS for apps using gthread-2.0
1550         
1551         * dbus/dbus-connection.c:
1552         * dbus/dbus-connection.h:
1553         Fix _dbus_connection_acquire_io_path and _dbus_connection_acquire_dispatch.
1554         Add dbus_connection_set_wakeup_main_function and use it when queueing
1555         incoming and outgoing messages.
1556         
1557         
1558         * dbus/dbus-dataslot.c:
1559         Threadsafe usage of DBusDataSlotAllocator
1560         
1561         * dbus/dbus-message.c: (dbus_message_get_args_iter):
1562         dbus_new can fail.
1563         
1564         * dbus/dbus-server-unix.c:
1565         Add todo comment
1566         
1567         * glib/dbus-gmain.c:
1568         Implement the new wakeup functions for glib.
1569         
1570         * glib/Makefile.am:
1571         * glib/test-thread-client.c: 
1572         * glib/test-thread-server.c: 
1573         * glib/test-thread.h:
1574         Initial cut at some thread test code. Not really done yet.
1575
1576 2003-02-26  Havoc Pennington  <hp@pobox.com>
1577
1578         * dbus/dbus-connection.c
1579         (dbus_connection_send_message_with_reply_and_block): fix crash
1580         where we ref'd the outgoing message instead of the returned reply
1581
1582         * dbus/dbus-transport-unix.c (do_authentication): check read watch
1583         at the end of this function, so if we didn't need to read for
1584         authentication, we reinstall it for receiving messages
1585
1586         * dbus/dbus-message.c (dbus_message_new_reply): allow replies to 
1587         a NULL sender for peer-to-peer case
1588
1589         * dbus/dbus-transport-unix.c (check_read_watch): handle
1590         !authenticated case correctly
1591
1592         * glib/dbus-gmain.c: add support for DBusServer
1593
1594         * dbus/dbus-server.c: add data slot support
1595
1596         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): check
1597         return values and handle errors
1598
1599         * dbus/dbus-dataslot.c: factor out the data slot stuff from
1600         DBusConnection
1601
1602         * Doxyfile.in (INPUT): add glib subdir
1603
1604         * glib/dbus-gmain.c (dbus_connection_setup_with_g_main): rename 
1605         setup_with_g_main instead of hookup_with_g_main; write docs
1606         
1607 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
1608
1609         * dbus/dbus-marshal.c: (_dbus_marshal_validate_arg):
1610         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
1611         * dbus/dbus-message.c: (dbus_message_append_boolean),
1612         (dbus_message_append_boolean_array),
1613         (dbus_message_get_args_valist), (_dbus_message_test):
1614         * dbus/dbus-message.h:
1615         * doc/dbus-specification.sgml:
1616         Various fixes as pointed out by Havoc.
1617         
1618         * test/data/invalid-messages/bad-boolean-array.message:
1619         * test/data/invalid-messages/bad-boolean.message:
1620         Add invalid boolean value test cases.
1621         
1622 2003-02-24  Anders Carlsson  <andersca@codefactory.se>
1623
1624         * dbus/dbus-internals.c: (_dbus_type_to_string):
1625         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
1626         (_dbus_marshal_validate_arg):
1627         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
1628         * dbus/dbus-message.c: (dbus_message_append_args_valist),
1629         (dbus_message_append_boolean), (dbus_message_append_boolean_array),
1630         (dbus_message_get_args_valist), (dbus_message_iter_get_boolean),
1631         (dbus_message_iter_get_int32), (dbus_message_iter_get_uint32),
1632         (dbus_message_iter_get_double),
1633         (dbus_message_iter_get_boolean_array), (message_iter_test):
1634         * dbus/dbus-message.h:
1635         * dbus/dbus-protocol.h:
1636         * doc/dbus-specification.sgml:
1637         * test/data/valid-messages/lots-of-arguments.message:
1638         Add support for boolean and boolean array types.
1639         
1640 2003-02-23  Havoc Pennington  <hp@pobox.com>
1641
1642         * dbus/dbus-keyring.c: finish most of this implementation and 
1643         simple unit test
1644
1645         * dbus/dbus-errors.c (dbus_set_error_const, dbus_set_error): make
1646         these barf if the error isn't cleared to NULL
1647
1648         * dbus/dbus-sysdeps.c (_dbus_delete_file): set error on failure
1649         (_dbus_create_directory): new function
1650
1651         * dbus/dbus-errors.c (dbus_set_error): fix warning
1652
1653         * dbus/dbus-string.c (_dbus_string_hex_encode): new function
1654         (_dbus_string_hex_decode): new function
1655         (test_hex_roundtrip): test code
1656
1657         * dbus/dbus-sha.c (_dbus_sha_compute): use dbus_string_hex_encode
1658
1659         * dbus/dbus-md5.c (_dbus_md5_compute): use dbus_string_hex_encode
1660
1661         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): make this use 
1662         the save-to-temp/rename trick to atomically write the new file
1663         (_dbus_string_parse_uint): new function
1664
1665 2003-02-22  Havoc Pennington  <hp@pobox.com>
1666
1667         * test/Makefile.am (dist-hook): fix dist for test/data/sha-1
1668
1669 2003-02-22  Havoc Pennington  <hp@pobox.com>
1670
1671         * dbus/dbus-message.c (dbus_message_iter_get_string_array):
1672         (dbus_message_iter_get_byte_array): Fix up doxygen warnings
1673
1674         * dbus/dbus-sha.c: add implementation of SHA-1 algorithm
1675
1676         * dbus/test/data/sha-1: add US government test suite for SHA-1
1677
1678 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
1679
1680         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
1681         Make string arrays NULL-terminated.
1682         
1683         * dbus/dbus-memory.c: (dbus_free_string_array):
1684         * dbus/dbus-memory.h:
1685         New function for freeing NULL-terminated string arrays.
1686         
1687         * dbus/dbus-message-builder.c: (append_quoted_string),
1688         (_dbus_message_data_load):
1689         Add support for array types.
1690         
1691         * dbus/dbus-message.c: (check_message_handling):
1692         Add more types as test cases.
1693         
1694         * dbus/dbus-sysdeps.c: (_dbus_string_parse_int),
1695         (_dbus_string_parse_double):
1696         Add the start offset to the end offset.
1697         
1698         * test/data/valid-messages/lots-of-arguments.message:
1699         New test message with lots of arguments.
1700         
1701 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
1702
1703         * dbus/dbus-message.c: (dbus_message_append_nil),
1704         (dbus_message_append_int32), (dbus_message_append_uint32),
1705         (dbus_message_append_double), (dbus_message_append_string),
1706         (dbus_message_append_int32_array),
1707         (dbus_message_append_uint32_array),
1708         (dbus_message_append_double_array),
1709         (dbus_message_append_byte_array),
1710         (dbus_message_append_string_array):
1711         Fix all out-of-memory handling in these functions.
1712
1713 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
1714
1715         * dbus/dbus-message.c: (dbus_message_append_nil):
1716         Fix a silly.
1717         
1718 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
1719
1720         * dbus/dbus-message.c: (dbus_message_append_args_valist),
1721         (dbus_message_append_nil), (dbus_message_append_int32_array),
1722         (dbus_message_append_uint32_array),
1723         (dbus_message_append_double_array),
1724         (dbus_message_append_byte_array),
1725         (dbus_message_append_string_array), (dbus_message_get_args_valist),
1726         (dbus_message_iter_get_int32_array),
1727         (dbus_message_iter_get_uint32_array),
1728         (dbus_message_iter_get_double_array),
1729         (dbus_message_iter_get_byte_array),
1730         (dbus_message_iter_get_string_array):
1731
1732         * dbus/dbus-message.h:
1733         Add functions for appending and getting arrays.
1734         
1735 2003-02-21  Anders Carlsson  <andersca@codefactory.se>
1736
1737         * dbus/dbus-mempool.c (_dbus_mem_pool_new): Make the
1738         element size at least 8 bytes, fixes mempool tests on
1739         64-bit machines.
1740
1741 2003-02-20  Alexander Larsson  <alexl@redhat.com>
1742
1743         * dbus/dbus-transport-unix.c (unix_do_iteration):
1744         Unlock the connection mutex during a blocking select call.
1745         Add todo about how we need a way to wake up the select.
1746
1747         * dbus/dbus-connection-internal.h: 
1748         * dbus/dbus-connection.c:
1749         Add _dbus_connection_lock and _dbus_connection_unlock.
1750
1751 2003-02-19  Havoc Pennington  <hp@pobox.com>
1752
1753         * Doxyfile.in (PREDEFINED): put DOXYGEN_SHOULD_SKIP_THIS in
1754         Doxyfile.in, not Doxyfile
1755
1756         * dbus/dbus-keyring.c: do some hacking on this
1757
1758         * dbus/dbus-sysdeps.c (_dbus_delete_file): new
1759
1760         * dbus/dbus-errors.c (dbus_set_error_const): do not call
1761         dbus_error_init
1762         (dbus_set_error): remove dbus_error_init, check for message ==
1763         NULL *before* we sprintf into it, and add @todo about including 
1764         system headers in this file
1765
1766         * dbus/dbus-sysdeps.c (_dbus_create_file_exclusively): new
1767
1768         * dbus/dbus-errors.h (DBUS_ERROR_FAILED): add
1769
1770         * dbus/dbus-sysdeps.c (get_user_info): break this function out to
1771         get various bits of user information based on either username 
1772         or user ID
1773         (_dbus_homedir_from_username): new function
1774
1775 2003-02-19  Anders Carlsson  <andersca@codefactory.se>
1776
1777         * configure.in:
1778         Add check for nonposix getpwnam_r
1779         
1780         * dbus/dbus-mempool.c: (_dbus_mem_pool_new):
1781         Align the pool element size to a sizeof (void *) boundary.
1782         
1783         * dbus/dbus-sysdeps.c: (_dbus_setenv), (_dbus_connect_unix_socket),
1784         (_dbus_listen_unix_socket), (_dbus_credentials_from_username):
1785         General Solaris fixes.
1786         
1787         * test/data/valid-messages/simplest-manual.message:
1788         Explicitly state that we want little-endian packing.
1789         
1790 2003-02-19  Mikael Hallendal  <micke@codefactory.se>
1791
1792         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
1793
1794         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_tcp_socket): 
1795         Added to create a transport connecting using a tcp/ip socket.
1796
1797         * dbus/dbus-sysdeps.c (_dbus_connect_tcp_socket): Added to connect
1798         to a tcp socket at given host and port.
1799         (_dbus_listen_tcp_socket): added to listen on tcp socket for given
1800         hostname and port.
1801
1802         * dbus/dbus-server.c (dbus_server_listen): Support tcp: addresses.
1803
1804         * dbus/dbus-server-unix.c (_dbus_server_new_for_tcp_socket): 
1805         Added to create a server listening on a TCP/IP socket.
1806
1807 2003-02-19  Havoc Pennington  <hp@pobox.com>
1808
1809         Throughout: mop up all the Doxygen warnings and undocumented
1810         stuff.
1811         
1812         * dbus/dbus-sysdeps.c (do_exec): do not use execvp, we don't want
1813         to search any paths.
1814
1815         * dbus/dbus-threads.c: move global mutex initializers to
1816         dbus-internals.h, multiple prototypes was confusing doxygen
1817         besides being kind of ugly
1818
1819         * Doxyfile (PREDEFINED): have Doxygen define
1820         DOXYGEN_SHOULD_SKIP_THIS so we can exclude things from 
1821         docs with #ifndef DOXYGEN_SHOULD_SKIP_THIS
1822         (do not abuse the feature! it's for stuff like the autogenerated 
1823         macros in dbus-md5.c, not just for things you don't feel like 
1824         documenting...)
1825
1826 2003-02-18  Havoc Pennington  <hp@pobox.com>
1827
1828         * dbus/dbus-string.c (_dbus_string_zero): new function
1829
1830         * dbus/dbus-md5.c: include MD5 implementation by L. Peter Deutsch,
1831         wrap it in some dbus-friendly API
1832
1833         * dbus/dbus-types.h: add 16-bit types
1834
1835 2003-02-18  Joe Shaw  <joe@assbarn.com>
1836
1837         * dbus/dbus-auth.c (handle_server_data_stupid_test_mech): Just get
1838         credentials from our currently running process.
1839         (get_word): Fix a buglet where we were copying the entire length
1840         instead of relative to our position.
1841
1842         * dbus/dbus-hash.c (_dbus_hash_test): Don't try to allocate the
1843         keys on the stack... it's 640k of data.
1844
1845         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): Always
1846         read the credentials byte off the socket, even if we don't have
1847         SO_PEERCRED.
1848         (_dbus_poll): Implement poll() using select() for systems which
1849         don't have it.
1850
1851         * glib/test-dbus-glib.c (main): Print out an error if no
1852         parameters are given.
1853
1854         * test/data/auth/fallback.auth-script: Added.  Tests that a client
1855         can fallback to a secondary auth mechanism if the first fails.
1856
1857 2003-02-18  Havoc Pennington  <hp@pobox.com>
1858
1859         * AUTHORS: add Alex
1860
1861 2003-02-17  Havoc Pennington  <hp@pobox.com>
1862
1863         * doc/dbus-specification.sgml: lots of cosmetic
1864         cleanups/rearrangement, add assorted FIXME, change DBUS_ADDRESS
1865         env variable to DBUS_BUS_ADDRESS, s/client/application/,
1866         s/server/bus/ (except in authentication section). Add a section
1867         "Message Bus Message Routing"
1868
1869 2003-02-17  Anders Carlsson  <andersca@codefactory.se.>
1870
1871         Release 0.4
1872         
1873         * NEWS: Update
1874
1875 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
1876
1877         * doc/dbus-specification.sgml:
1878         Specification updates.
1879         
1880 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
1881
1882         * bus/activation.c: (bus_activation_init), (child_setup),
1883         (bus_activation_activate_service):
1884         * bus/activation.h:
1885         * bus/main.c: (main):
1886         Set DBUS_ADDRESS environment variable.
1887         
1888         * dbus/dbus-errors.c: (dbus_set_error):
1889         Don't use va_copy since that's a C99 feature.
1890         
1891         * dbus/dbus-sysdeps.c: (_dbus_setenv), (do_exec),
1892         (_dbus_spawn_async):
1893         * dbus/dbus-sysdeps.h:
1894         Add child_setup_func to _dbus_spawn_async.
1895         
1896         * doc/dbus-specification.sgml:
1897         Update specification.
1898         
1899         * test/spawn-test.c: (setup_func), (main):
1900         Fix test.
1901         
1902 2003-02-17  Alexander Larsson  <alexl@redhat.com>
1903
1904         * dbus/dbus-connection.c (_dbus_connection_handler_destroyed_locked):
1905         Added todo.
1906
1907 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
1908
1909         * doc/.cvsignore:
1910         * doc/Makefile.am:
1911         * doc/dbus-test-plan.sgml:
1912         Add test plan document.
1913         
1914         * test/Makefile.am:
1915         Fix distcheck.
1916         
1917 2003-02-17  Anders Carlsson  <andersca@codefactory.se>
1918
1919         * dbus/dbus-message.c: (decode_header_data),
1920         (_dbus_message_loader_return_buffer):
1921         Set the header padding amount when loading a message.
1922
1923 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
1924
1925         * bus/dispatch.c: (send_one_message):
1926         Only send broadcast messages to registered connections.
1927         
1928         * dbus/dbus-message.c: (dbus_message_name_is):
1929         * dbus/dbus-message.h:
1930         New convenience function.
1931         
1932         * dbus/dbus-transport-debug.c: (do_reading):
1933         Only dispatch one message per run.
1934
1935         * test/Makefile.am:
1936         * test/bus-test.c: (new_connection_callback), (die),
1937         (test_hello_client1_handler), (test_hello_client2_handler),
1938         (test_hello_replies), (main):
1939
1940         * test/bus-test-loop.[ch]:
1941         Add these.
1942         
1943 2003-02-16  Havoc Pennington  <hp@pobox.com>
1944
1945         * dbus/dbus-connection.c (dbus_connection_dispatch_message): fix
1946         backward conditional
1947
1948 2003-02-16  Alexander Larsson  <alexl@redhat.com>
1949
1950         * dbus/dbus-connection.c:
1951         Implement sent_message_with_reply. (with_reply_and block is still
1952         busted).
1953         Made dispatch_message not lose message if OOM.
1954         
1955         * dbus/dbus-errors.h:
1956         Add NoReply error (for reply timeouts).
1957
1958 2003-02-16  Alexander Larsson  <alexl@redhat.com>
1959
1960         * dbus/dbus-hash.c (_dbus_hash_table_unref):
1961         Actually free keys and values when destroying hashtable.
1962
1963 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
1964
1965         * dbus/dbus-auth.c: (client_try_next_mechanism):
1966         Plug a leak.
1967         
1968         * dbus/dbus-threads.c: (dbus_condvar_wait_timeout):
1969         Return TRUE if there's no thread implementation around.
1970         
1971         * glib/dbus-gmain.c: (free_source),
1972         (dbus_connection_hookup_with_g_main):
1973         Make sure to remove the GSource when the connection is finalized.
1974         
1975 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
1976
1977         * bus/dispatch.c: (bus_dispatch_message_handler):
1978         * dbus/dbus-errors.h:
1979         Return an error if someone tries to send a message to a service
1980         that doesn't exist.
1981         
1982 2003-02-16  Anders Carlsson  <andersca@codefactory.se>
1983
1984         * bus/activation.c: (load_directory), (bus_activation_init),
1985         (bus_activation_activate_service):
1986         * bus/activation.h:
1987         * bus/driver.c: 
1988         (bus_driver_handle_activate_service), (bus_driver_handle_message):
1989         More work on the activation handling.
1990         
1991         * dbus/dbus-errors.h:
1992         Add some error messages
1993         
1994         * dbus/dbus-message.c: (dbus_message_new_error_reply):
1995         * dbus/dbus-message.h:
1996         New function that creates an error message.
1997         
1998         * dbus/dbus-protocol.h:
1999         Add ACTIVATE_SERVER message.
2000         
2001         * dbus/dbus-server-unix.c: (unix_handle_watch),
2002         (_dbus_server_new_for_domain_socket):
2003         Call _dbus_fd_set_close_on_exec.
2004         
2005         * dbus/dbus-sysdeps.c: (make_pipe), (do_exec),
2006         (_dbus_spawn_async), (_dbus_disable_sigpipe),
2007         (_dbus_fd_set_close_on_exec):
2008         * dbus/dbus-sysdeps.h:
2009         Add _dbus_fd_set_close_on exec function. Also add function that checks
2010         that all open fds are set to close-on-exec and warns otherwise.
2011         
2012         * dbus/dbus-transport-unix.c:
2013         (_dbus_transport_new_for_domain_socket):
2014         Call _dbus_fd_set_close_on_exec.
2015
2016 2003-02-16  Havoc Pennington  <hp@pobox.com>
2017
2018         * dbus/dbus-connection.c (dbus_connection_set_change_sigpipe):
2019         allow people to avoid setting SIGPIPE to SIG_IGN
2020         (_dbus_connection_new_for_transport): disable SIGPIPE unless 
2021         we've been asked not to
2022
2023 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
2024
2025         * dbus/dbus-list.c: (_dbus_list_append_link),
2026         (_dbus_list_prepend_link):
2027         * dbus/dbus-memory.c: (dbus_malloc), (dbus_malloc0),
2028         (dbus_realloc):
2029         Warning fixes.
2030
2031 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
2032
2033         * bus/Makefile.am:
2034         * bus/activation.c: (bus_activation_entry_free),
2035         (add_desktop_file_entry), (load_directory), (bus_activation_init):
2036         * bus/activation.h:
2037         * bus/main.c: (main):
2038         Add simple activation support, doesn't work yet though.
2039
2040 2003-02-15   Zack Rusin  <zack@kde.org>
2041
2042         * qt/dbus-qthread.cpp:  small casting fix
2043
2044 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
2045
2046         * dbus/dbus-errors.c: (dbus_set_error):
2047         * dbus/dbus-errors.h:
2048         Add a few errors and make dbus_set_error void.
2049         
2050         * dbus/dbus-sysdeps.c: 
2051         (_dbus_errno_to_string), (close_and_invalidate), (make_pipe),
2052         (write_err_and_exit), (read_ints), (do_exec), (_dbus_spawn_async):
2053         * dbus/dbus-sysdeps.h:
2054         Add _dbus_spawn_async.
2055         
2056         * test/spawn-test.c: (main):
2057         Test for _dbus_spawn_async.
2058         
2059 2003-02-15  Anders Carlsson  <andersca@codefactory.se>
2060
2061         * dbus/dbus-internals.h:
2062         Fix build without tests.
2063         
2064         * dbus/dbus-list.c: (alloc_link):
2065         Fix a segfault when a malloc fails.
2066         
2067         * dbus/dbus-memory.c: (initialize_malloc_debug), (dbus_malloc),
2068         (dbus_malloc0), (dbus_realloc):
2069         Add support for malloc debugging.
2070
2071 2003-02-15  Alexander Larsson  <alexl@redhat.com>
2072
2073         * dbus/dbus-threads.c:
2074         * dbus/dbus-threads.h:
2075         Add condvars. Remove static mutext from API.
2076         Implement static mutexes by initializing them from threads_init.
2077         
2078         * glib/dbus-gthread.c:
2079         * qt/dbus-qthread.cpp:
2080         Update with the thread api changes.
2081
2082                 
2083         * dbus/dbus-list.c:
2084         * dbus/dbus-list.h:
2085         Turn StaticMutex into normal mutex + init function.
2086         Export new functions _dbus_list_alloc_link, _dbus_list_free_link,
2087         _dbus_list_append_link, _dbus_list_prepend_link
2088
2089
2090         * dbus/dbus-sysdeps.c: 
2091         * dbus/dbus-sysdeps.h:
2092         New type dbus_atomic_t, and new functions _dbus_atomic_inc,
2093         _dbus_atomic_dec. Only slow fallback implementation at the moment.
2094         
2095         * dbus/dbus-protocol.h:
2096         Add DBUS_MESSAGE_LOCAL_DISCONNECT define
2097         
2098         * dbus/dbus-message.c:
2099         Make ref/unref atomic.
2100         Fix some docs.
2101         
2102         * dbus/dbus-connection-internal.h:
2103         * dbus/dbus-connection.c:
2104         * dbus/dbus-connection.h:
2105         Make threadsafe.
2106         Change _peek to _borrow,_return & _steal_borrowed.
2107         Change disconnect callback to event.
2108         Make dbus_connection_dispatch_messages reentrant.
2109         
2110         * dbus/dbus-transport.c:
2111         Don't ref the connection on calls to the transport
2112         implementation.
2113         
2114         * dbus/dbus-message-handler.c:
2115         Make threadsafe.
2116         
2117         * glib/dbus-gmain.c:
2118         Don't use peek_message anymore
2119         
2120         * test/Makefile.am:
2121         * test/debug-thread.c:
2122         * test/debug-thread.h:
2123         Simple thread implementation that asserts() on deadlocks in
2124         single-threaded code.
2125         
2126         * test/bus-test.c:
2127         (main) Call debug_threads_init.
2128
2129         * test/watch.c:
2130         Use disconnect message instead of disconnect callback.
2131
2132         * bus/connection.c:
2133         * bus/connection.h:
2134         Don't call dbus_connection_set_disconnect_function. Instead export
2135         bus_connection_disconnect.
2136         
2137         * bus/dispatch.c:
2138         Call bus_connection_disconnect when we get a disconnected message.
2139         
2140 2003-02-15  Havoc Pennington  <hp@pobox.com>
2141
2142         * dbus/dbus-message.c (dbus_message_new): fool around with the
2143         docs
2144
2145 2003-02-14  Havoc Pennington  <hp@pobox.com>
2146
2147         * dbus/dbus-mempool.c: fail if the debug functions so indicate
2148
2149         * dbus/dbus-memory.c: fail if the debug functions indicate we
2150         should
2151
2152         * dbus/dbus-internals.c (_dbus_set_fail_alloc_counter)
2153         (_dbus_decrement_fail_alloc_counter): debug functions to 
2154         simulate memory allocation failures
2155
2156 2003-02-14  Havoc Pennington  <hp@pobox.com>
2157
2158         * dbus/dbus-errors.h (struct DBusError): add a word of padding 
2159         to DBusError
2160
2161 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2162
2163         * bus/driver.c: (bus_driver_handle_hello):
2164         * bus/driver.h:
2165         * bus/services.c: (bus_service_lookup):
2166         Reorder message sending so we get a more sane order.
2167         
2168         * test/bus-test.c: (message_handler):
2169         Fix tyop.
2170         
2171 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2172
2173         * bus/driver.c: (bus_driver_send_service_deleted),
2174         (bus_driver_send_service_created), (bus_driver_send_service_lost),
2175         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
2176         (bus_driver_send_welcome_message),
2177         (bus_driver_handle_list_services),
2178         (bus_driver_handle_acquire_service),
2179         (bus_driver_handle_service_exists):
2180         * dbus/dbus-bus.c: (dbus_bus_register_client),
2181         (dbus_bus_acquire_service), (dbus_bus_service_exists):
2182         * dbus/dbus-errors.c: (dbus_result_to_string):
2183         * dbus/dbus-errors.h:
2184         * dbus/dbus-message.c: (dbus_message_append_args),
2185         (dbus_message_append_args_valist), (dbus_message_get_args),
2186         (dbus_message_get_args_valist), (dbus_message_get_args_iter),
2187         (dbus_message_iter_get_arg_type), (dbus_message_iter_get_string),
2188         (dbus_message_iter_get_byte_array),
2189         (dbus_message_iter_get_string_array), (message_iter_test),
2190         (check_message_handling), (_dbus_message_test):
2191         * dbus/dbus-message.h:
2192         * test/bus-test.c: (main):
2193         Change fields to arguments in messages, so that they won't be
2194         confused with header fields.
2195         
2196         * glib/test-dbus-glib.c: (main):
2197         Remove append_fields from hello message.
2198         
2199 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2200
2201         * dbus/dbus-errors.c:
2202         * dbus/dbus-message.c:
2203         * dbus/dbus-string.c:
2204         Documentation fixes.
2205
2206 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2207
2208         * glib/dbus-gmain.c: (timeout_handler), (add_timeout),
2209         (remove_timeout):
2210         Implement support for timeouts in dbus-glib.
2211         
2212 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2213
2214         * dbus/dbus-message-builder.c: (_dbus_message_data_load):
2215         * dbus/dbus-message.c: (process_test_subdir):
2216         * test/break-loader.c: (find_breaks_based_on):
2217         Plug some memory leaks.
2218         
2219 2003-02-13  Richard Hult  <rhult@codefactory.se>
2220
2221         * bus/main.c: Fix build.
2222
2223         * dbus/dbus-errors.h: 
2224         * dbus/dbus-errors.c: Fix copyright for Anders.
2225
2226 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2227
2228         * bus/Makefile.am:
2229         Add utils.[ch]
2230         
2231         * bus/connection.c: (bus_connection_foreach):
2232         Fix a warning.
2233         
2234         * bus/desktop-file.c: (grow_lines_in_section), (grow_sections),
2235         (unescape_string), (new_section), (parse_section_start),
2236         (parse_key_value), (report_error), (bus_desktop_file_load),
2237         (bus_desktop_file_get_string):
2238         * bus/desktop-file.h:
2239         Use DBusError for error reporting.
2240         
2241         * bus/dispatch.c: (send_one_message),
2242         (bus_dispatch_message_handler):
2243         * bus/driver.c: (bus_driver_send_service_deleted),
2244         (bus_driver_send_service_created), (bus_driver_send_service_lost),
2245         (bus_driver_send_service_acquired), (bus_driver_handle_hello),
2246         (bus_driver_send_welcome_message),
2247         (bus_driver_handle_list_services),
2248         (bus_driver_handle_acquire_service),
2249         (bus_driver_handle_service_exists):
2250         * bus/loop.c: (bus_loop_run):
2251         * bus/main.c:
2252         Use BUS_HANDLE_OOM instead of _DBUS_HANDLE_OOM.
2253         
2254         * bus/utils.c: (bus_wait_for_memory):
2255         * bus/utils.h:
2256         New files with general utility functions.
2257         
2258         * dbus/dbus-internals.h:
2259         Remove _DBUS_HANDLE_OOM.
2260         
2261 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2262
2263         * dbus/dbus-errors.c: (dbus_result_to_string), (dbus_error_init),
2264         (dbus_error_free), (dbus_set_error_const), (dbus_set_error):
2265         * dbus/dbus-errors.h:
2266         Add DBusError structure.
2267         
2268 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2269
2270         * test/data/valid-messages/standard-acquire-service.message:
2271         * test/data/valid-messages/standard-hello.message:
2272         * test/data/valid-messages/standard-list-services.message:
2273         * test/data/valid-messages/standard-service-exists.message:
2274         Add some standard messages.
2275         
2276 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2277
2278         * bus/driver.c: (bus_driver_send_welcome_message),
2279         (bus_driver_handle_list_services),
2280         (bus_driver_handle_acquire_service),
2281         (bus_driver_handle_service_exists), (bus_driver_handle_message):
2282         Update for API changes in libdbus.
2283         
2284         * dbus/dbus-message.c: (dbus_message_new_reply):
2285         * dbus/dbus-message.h:
2286         Remove the name argument. The spec states that replies shouldn't
2287         have a name.
2288
2289 2003-02-13  Anders Carlsson  <andersca@codefactory.se>
2290
2291         * bus/desktop-file.c: (parse_section_start), (parse_key_value),
2292         (report_error), (bus_desktop_file_load), (lookup_section),
2293         (lookup_line), (bus_desktop_file_get_raw),
2294         (bus_desktop_file_get_string):
2295         * bus/desktop-file.h:
2296         Some fixes, and new functions for getting a key value from a section.
2297         
2298 2003-02-13  Havoc Pennington  <hp@pobox.com>
2299
2300         * test/data/auth/fail-after-n-attempts.auth-script: new test
2301
2302         * dbus/dbus-auth.c (send_rejected): shutdown_mech() when we
2303         reject the client.
2304
2305 2003-02-13  Havoc Pennington  <hp@pobox.com>
2306
2307         * dbus/dbus-auth.c (handle_server_data_external_mech): args to
2308         dbus_credentials_match were backward
2309
2310         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support
2311         NO_CREDENTIALS and ROOT_CREDENTIALS
2312
2313         * dbus/dbus-auth.c (_dbus_auth_do_work): move get_state() routine 
2314         into here. Never process more commands after we've reached an 
2315         end state; store further data as unused bytes.
2316
2317         * test/data/auth/*: add more auth tests
2318         
2319         * dbus/dbus-auth-script.c (_dbus_auth_script_run): support EXPECT
2320         command to match exact string and EXPECT_UNUSED to match unused
2321         bytes
2322
2323         * test/Makefile.am (dist-hook): fix to dist all the test stuff
2324
2325 2003-02-12  Havoc Pennington  <hp@pobox.com>
2326
2327         * dbus/dbus-string.c (_dbus_string_pop_line): fix to also strip
2328         \r off of popped lines
2329
2330         * dbus/dbus-auth.c (_dbus_auth_test): write code to run auth
2331         scripts
2332
2333         * dbus/dbus-auth-script.c (_dbus_auth_script_run): when doing a
2334         SEND, append \r\n
2335
2336 2003-02-12  Havoc Pennington  <hp@pobox.com>
2337
2338         * dbus/Makefile.am: remove break-loader from the build, since it
2339         moved.
2340
2341         * configure.in: add --enable-gcov to turn on coverage profiling
2342         flags and disable optimization
2343
2344 2003-02-10  Havoc Pennington  <hp@pobox.com>
2345
2346         * dbus/dbus-auth-script.c, dbus/dbus-auth-script.h: sync 
2347         initial cut at test framework for DBusAuth from laptop.
2348         Doesn't quite work yet but it compiles and I need to get 
2349         it off the 266mhz laptop. ;-)
2350         
2351         * dbus/dbus-server-debug.c (_dbus_server_debug_accept_transport):
2352         fix a memleak in error case
2353
2354 2003-02-12  Anders Carlsson  <andersca@codefactory.se>
2355
2356         * bus/Makefile.am:
2357         * bus/desktop-file.c:
2358         * bus/desktop-file.h:
2359         Add a desktop file parser.
2360
2361 2003-02-11  Zack Rusin  <zack@kde.org>
2362
2363         * qt/message.[h|cpp]: sample implementation
2364         of the KDE wrapper for DBusMessage
2365
2366 2003-02-09  Zack Rusin  <zack@kde.org>
2367
2368         * test/bus-test.c: make_it_compile
2369         * doc/dbus-specification.sgml: minimal semantic fix
2370
2371 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
2372
2373         Release 0.3
2374         
2375         * NEWS: Update
2376
2377 2003-02-06  Anders Carlsson  <andersca@codefactory.se>
2378
2379         * dbus/Makefile.am:
2380         * dbus/dbus-break-loader.c:
2381         * test/Makefile.am:
2382         * test/break-loader.c:
2383         Move dbus-break-loader to test/ and rename it to break-loader.
2384
2385 2003-02-02  Havoc Pennington  <hp@pobox.com>
2386
2387         * dbus/dbus-keyring.c, dbus/dbus-keyring.h: template files 
2388         for code to manage cookies in your home directory
2389
2390         * dbus/dbus-sysdeps.c (_dbus_generate_random_bytes): new function
2391
2392         * dbus/dbus-auth.c (get_state): impose a maximum number of tries
2393         to authenticate, then disconnect the client.
2394
2395 2003-02-03  Alexander Larsson  <alexl@redhat.com>
2396
2397         * dbus/dbus-message.c (dbus_message_append_fields):
2398         Correct docs.
2399
2400 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
2401
2402         * doc/dbus-specification.sgml:
2403         Update address format section.
2404         
2405 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
2406
2407         * test/Makefile.am:
2408         * test/bus-test.c: (get_time), (add_timeout), (remove_timeout),
2409         (message_handler), (new_connection_callback), (loop_quit),
2410         (loop_run), (main):
2411         Add bus test.
2412         
2413 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
2414
2415         * bus/driver.c: (bus_driver_handle_service_exists):
2416         Simplify the code a bit.
2417         
2418         * dbus/dbus-bus.c: (dbus_bus_service_exists):
2419         Fix a silly. 
2420         
2421 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
2422
2423         * bus/Makefile.am:
2424         Add libdbus-daemon.la and link to it.
2425
2426 2003-02-01  James Willcox  <jwillcox@gnome.org>
2427
2428         * bus/driver.c: (bus_driver_handle_own_service):
2429         Actually include the service reply code in the message.
2430
2431 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
2432
2433         * bus/driver.c: (bus_driver_handle_service_exists):
2434         Don't unref the incoming message.
2435         
2436 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
2437
2438         * dbus/dbus.h: Add dbus-address.h and dbus-bus.h
2439
2440 2003-02-02  Anders Carlsson  <andersca@codefactory.se>
2441
2442         * dbus/dbus-server.c: (dbus_server_listen):
2443         * dbus/dbus-transport.c: (_dbus_transport_open):
2444         ifdef out the calls to the debug transport and server.
2445         
2446 2003-02-02  Alexander Larsson  <alexl@redhat.com>
2447
2448         * dbus/dbus-watch.c (dbus_watch_get_flags):
2449         Add note in the docs that ERROR or HANGUP won't be returned
2450         and are assumed always on.
2451
2452         * glib/dbus-gmain.c (add_watch):
2453         Always add IO_ERR | IO_HUP
2454
2455         * dbus/dbus-message.h:
2456         Add semicolon after dbus_message_iter_get_string_array().
2457         Makes qt code build again
2458
2459 2003-02-01  Anders Carlsson  <andersca@codefactory.se>
2460
2461         * bus/driver.c: (create_unique_client_name),
2462         (bus_driver_handle_hello):
2463         Don't take a name, just use a numeric id to identify
2464         each client.
2465         
2466         * dbus/Makefile.am:
2467         * dbus/dbus-bus.c: (dbus_bus_register_client),
2468         (dbus_bus_acquire_service), (dbus_bus_service_exists):
2469         * dbus/dbus-bus.h:
2470         Add new convenience functions for communicating with the bus.
2471         
2472         * dbus/dbus-message.h:
2473         
2474         * dbus/dbus-protocol.h:
2475         Fix a typo.
2476         
2477 2003-02-01  Alexander Larsson  <alexl@redhat.com>
2478
2479         * dbus/dbus-message.c (dbus_message_append_fields):
2480         Add some more doc comments.
2481
2482 2003-02-01  Havoc Pennington  <hp@pobox.com>
2483
2484         * dbus/dbus-break-loader.c (randomly_modify_length): change 
2485         a 4-byte value in the message as if it were a length
2486
2487         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): don't set
2488         execute bit on saved files
2489
2490 2003-02-01  Havoc Pennington  <hp@pobox.com>
2491
2492         * dbus/dbus-break-loader.c (main): new program to find messages
2493         that break the loader.
2494
2495         * dbus/dbus-sysdeps.c (_dbus_string_append_uint): new function
2496         * dbus/dbus-sysdeps.c (_dbus_string_save_to_file): new function
2497
2498         * dbus/dbus-string.c (_dbus_string_set_byte): new
2499         
2500 2003-01-31  Havoc Pennington  <hp@pobox.com>
2501
2502         * dbus/dbus-message.c: refactor the test code to be more general, 
2503         in preparation for writing a "randomly permute test cases to 
2504         try to break the loader" program.
2505
2506 2003-01-31  Havoc Pennington  <hp@pobox.com>
2507         
2508         * doc/dbus-specification.sgml: work on the specification
2509
2510         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): check 
2511         the protocol version of the message.
2512
2513         * dbus/dbus-protocol.h: drop special _REPLY names, the spec 
2514         no longer specifies that.
2515         (DBUS_SERVICE_REPLY_SERVICE_EXISTS): fix flags (1/2/4/8 not 
2516         1/2/3/4)
2517
2518         * dbus/dbus-marshal.c (_dbus_marshal_get_arg_end_pos): add missing
2519         "break" for DBUS_TYPE_NIL, remove @todo
2520
2521 2003-01-31  Havoc Pennington  <hp@pobox.com>
2522
2523         * dbus/dbus-message.c (dbus_message_set_is_error_reply): rename 
2524         just set_is_error/get_is_error as this is a commonly-used
2525         function, and write docs.
2526
2527 2003-01-31  Anders Carlsson  <andersca@codefactory.se>
2528
2529         * dbus/dbus-address.c: (dbus_address_entry_free):
2530         Free key and value lists.
2531         
2532         * dbus/dbus-internals.c: (_dbus_type_to_string):
2533         Add the types we didn't have.
2534         
2535         * dbus/dbus-marshal.c: (_dbus_marshal_get_arg_end_pos),
2536         (_dbus_marshal_validate_arg):
2537         Add NIL types.
2538         
2539         * dbus/dbus-message.c: (dbus_message_set_sender):
2540         Remove todo about being able to set sender to NULL.
2541         
2542         (dbus_message_set_is_error_reply),
2543         (dbus_message_get_is_error_reply):
2544         * dbus/dbus-message.h:
2545         New functions.
2546         
2547         * dbus/dbus-protocol.h:
2548         Add error reply flag.
2549         
2550         * test/data/valid-messages/opposite-endian.message:
2551         Add NIL type to test.
2552         
2553 2003-01-31  Havoc Pennington  <hp@pobox.com>
2554
2555         * doc/dbus-specification.sgml: fully specify the header.  Add
2556         flags and major protocol version, and change header/body len to
2557         unsigned.
2558
2559         * dbus/dbus-message-builder.c (append_saved_length): append length
2560         as uint32
2561
2562         * dbus/dbus-message.c (dbus_message_create_header): change header
2563         length and body length to unsigned. Add the new fields from the
2564         spec
2565         (_dbus_message_loader_return_buffer): unsigned header/body len
2566
2567 2003-01-30  Havoc Pennington  <hp@pobox.com>
2568
2569         * dbus/dbus-auth.c: rework to use only REJECTED, no 
2570         MECHANISMS
2571
2572         * doc/dbus-sasl-profile.txt: drop MECHANISMS and just 
2573         use REJECTED, suggested by Mark McLoughlin
2574
2575 2003-01-30  Havoc Pennington  <hp@pobox.com>
2576
2577         * dbus/dbus-server.c (dbus_server_listen): @todo about how we need
2578         a better way to report errors here. e.g.  "unix address lacks
2579         path" or something. also "no such file" when the path doesn't
2580         exist, etc.
2581
2582         * dbus/dbus-address.c (dbus_address_entries_free): add @todo about
2583         leaking list nodes
2584         (dbus_parse_address): add @todo about documenting address format, 
2585         and allowing , and ; to be escaped
2586
2587 2003-01-30  Anders Carlsson  <andersca@codefactory.se>
2588
2589         * dbus/Makefile.am:
2590         Add dbus-address.[ch]
2591         
2592         * dbus/dbus-address.c: (dbus_address_entry_free),
2593         (dbus_address_entries_free), (create_entry),
2594         (dbus_address_entry_get_method), (dbus_address_entry_get_value),
2595         (dbus_parse_address), (_dbus_address_test):
2596         * dbus/dbus-address.h:
2597         New files for dealing with address parsing.
2598         
2599         * dbus/dbus-connection.c:
2600         Document timeout functions.
2601         
2602         * dbus/dbus-message.c:
2603         Document dbus_message_new_from_message.
2604         
2605         * dbus/dbus-server-debug.c:
2606         Document.
2607         
2608         * dbus/dbus-server.c: (dbus_server_listen):
2609         Parse address and use correct server implementation.
2610         
2611         * dbus/dbus-string.c: (_dbus_string_find_to), (_dbus_string_test):
2612         * dbus/dbus-string.h:
2613         New function with test.
2614         
2615         * dbus/dbus-test.c: (dbus_internal_symbol_do_not_use_run_tests):
2616         * dbus/dbus-test.h:
2617         Add address tests.
2618         
2619         * dbus/dbus-transport-debug.c:
2620         Document.
2621         
2622         * dbus/dbus-transport.c: (_dbus_transport_open):
2623         Parse address and use correct transport implementation. 
2624
2625 2003-01-30  Havoc Pennington  <hp@pobox.com>
2626
2627         * dbus/dbus-message.c: use message->byte_order instead of 
2628         DBUS_COMPILER_BYTE_ORDER throughout.
2629         (dbus_message_create_header): pad header to align the 
2630         start of the body of the message to 8-byte boundary
2631
2632         * dbus/dbus-marshal.h: make all the demarshalers take const 
2633         DBusString arguments.
2634
2635         * dbus/dbus-message.c (_dbus_message_loader_return_buffer):
2636         validate message args here, so we don't have to do slow validation
2637         later, and so we catch bad messages as they are incoming. Also add
2638         better checks on header_len and body_len. Also fill in
2639         message->byte_order
2640
2641         * dbus/dbus-string.c (_dbus_string_validate_utf8): new (not
2642         implemented properly)
2643         (_dbus_string_validate_nul): new function to check all-nul
2644
2645         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): rename 
2646         get_arg_end_pos and remove all validation
2647         (_dbus_marshal_validate_arg): actually do validation here.
2648
2649 2003-01-29  Havoc Pennington  <hp@pobox.com>
2650
2651         * dbus/dbus-message.c (check_message_handling): fix assertion
2652         failure on set_client_serial
2653
2654 2003-01-28  Havoc Pennington  <hp@pobox.com>
2655
2656         * dbus/dbus-server-debug.c: Add doc section comments
2657         
2658         * dbus/dbus-transport-debug.c: add doc section comments
2659         
2660 2003-01-28  Havoc Pennington  <hp@redhat.com>
2661
2662         * dbus/dbus-string.c (_dbus_string_base64_decode): append bytes in
2663         the reverse order from how I had it
2664         (_dbus_string_base64_encode): reverse encoding order. I was
2665         basically byteswapping everything during encoding.
2666
2667 2003-01-28  Anders Carlsson  <andersca@codefactory.se>
2668
2669         * dbus/dbus-connection-internal.h:
2670         * dbus/dbus-connection.c: (_dbus_connection_add_timeout),
2671         (_dbus_connection_remove_timeout):
2672         Add functions for adding and removing timeouts.
2673         
2674         * dbus/dbus-message.c: (dbus_message_new_from_message):
2675         Add new function that takes a message and creates an exact
2676         copy of it, but with the refcount set to 1.
2677         (check_message_handling):
2678         Fix build error.
2679         
2680         * dbus/dbus-server-protected.h:
2681         * dbus/dbus-server.c: (_dbus_server_init_base),
2682         (_dbus_server_finalize_base), (_dbus_server_add_timeout),
2683         (dbus_server_set_timeout_functions):
2684         (_dbus_server_remove_timeout):
2685         New functions so that a server can add and remove timeouts.
2686
2687         (dbus_server_listen):
2688         Add commented out call to dbus_server_debug_new.
2689
2690         * dbus/dbus-timeout.c: (_dbus_timeout_new):
2691         Actually set the handler, doh.
2692         
2693         * dbus/dbus-transport.c: (_dbus_transport_open):
2694         Add commented out call to dbus_transport_debug_client_new.
2695         
2696         * dbus/Makefile.am:
2697         Add dbus-transport-debug.[ch] and dbus-server-debug.[ch]
2698         
2699 2003-01-28  Havoc Pennington  <hp@pobox.com>
2700
2701         * dbus/dbus-message.c (check_message_handling): function to check 
2702         on the loaded message, iterates over it etc.
2703
2704 2003-01-28  Havoc Pennington  <hp@pobox.com>
2705
2706         * test/Makefile.am (dist-hook): fix make distdir
2707
2708         * dbus/Makefile.am (TESTS_ENVIRONMENT): fix make check
2709
2710 2003-01-27  Havoc Pennington  <hp@pobox.com>
2711
2712         * dbus/dbus-mempool.c (time_for_size): replace printf with 
2713         _dbus_verbose
2714
2715         * dbus/dbus-message-builder.c (_dbus_message_data_load): allow
2716         empty lines; fix the SAVE_LENGTH stuff to be
2717         START_LENGTH/END_LENGTH so it actually works; couple other 
2718         bugfixes
2719         
2720         * test/Makefile.am (dist-hook): add dist-hook for .message files
2721
2722         * dbus/dbus-string.c (DBUS_STRING_COPY_PREAMBLE): source of a copy
2723         can be constant or locked.
2724         (_dbus_string_free): allow freeing a const string as
2725         documented/intended
2726
2727         * dbus/dbus-sysdeps.c (_dbus_concat_dir_and_file): utility
2728
2729         * dbus/dbus-test-main.c (main): take an argument which is the 
2730         directory containing test data
2731
2732         * dbus/dbus-message.c (_dbus_message_test): pass a test_data_dir
2733         argument to this and load all the messages in test/data/
2734         checking that they can be loaded or not loaded as appropriate.
2735
2736 2003-01-27  Anders Carlsson  <andersca@codefactory.se>
2737
2738         * bus/dispatch.c: (bus_dispatch_message_handler):
2739         Dispatch messages sent to services.
2740         
2741         * bus/driver.c: (bus_driver_send_service_deleted),
2742         (bus_driver_send_service_created), (bus_driver_send_service_lost),
2743         (bus_driver_send_service_acquired):
2744         Add helper functions for sending service related messages.
2745
2746         (bus_driver_send_welcome_message):
2747         Send HELLO_REPLY instead of WELCOME.
2748         
2749         (bus_driver_handle_list_services):
2750         Send LIST_SERVICES_REPLY instead of SERVICES.
2751         
2752         (bus_driver_handle_own_service),
2753         (bus_driver_handle_service_exists):
2754         New message handlers.
2755         
2756         (bus_driver_handle_message):
2757         Invoke new message handlers.
2758         
2759         (bus_driver_remove_connection):
2760         Don't remove any services here since that's done automatically
2761         by bus_service_remove_owner now.
2762         
2763         * bus/driver.h:
2764         New function signatures.
2765         
2766         * bus/services.c: (bus_service_add_owner):
2767         Send ServiceAcquired message if we're the only primary owner.
2768         
2769         (bus_service_remove_owner):
2770         Send ServiceAcquired/ServiceLost messages.
2771         
2772         (bus_service_set_prohibit_replacement),
2773         (bus_service_get_prohibit_replacement):
2774         Functions for setting prohibit replacement.
2775         
2776         (bus_service_has_owner):
2777         New function that checks if a connection is in the owner queue of 
2778         a certain service.
2779         
2780         * bus/services.h:
2781         Add new function signatures.
2782         
2783         * dbus/dbus-list.c: (_dbus_list_test):
2784         Add tests for _dbus_list_remove_last and traversing the list backwards.
2785         
2786         * dbus/dbus-list.h:
2787         Fix a typo in _dbus_list_get_prev_link, if we're at the first element we can't
2788         go any further, so return NULL then.
2789         
2790         * dbus/dbus-protocol.h:
2791         Add new messages, service flags and service replies.
2792         
2793 2003-01-26  Havoc Pennington  <hp@pobox.com>
2794
2795         * dbus/dbus-message-builder.c: implement, completely untested.
2796
2797         * test/data/*: add data to be used in testing. 
2798         ".message" files are our simple loadable text format.
2799         ".message-raw" will be binary dumps of messages.
2800
2801         * dbus/dbus-string.c (_dbus_string_starts_with_c_str): new
2802
2803 2003-01-26  Havoc Pennington  <hp@pobox.com>
2804
2805         * dbus/dbus-sysdeps.c (_dbus_file_get_contents): new function
2806
2807         * dbus/dbus-errors.c (dbus_result_to_string): add
2808         file errors
2809
2810         * dbus/dbus-message-builder.c: new file, will contain code to load
2811         up messages from files. Not implemented yet.
2812
2813 2003-01-26  Havoc Pennington  <hp@pobox.com>
2814
2815         * dbus/dbus-message.c (dbus_message_set_sender): support deleting
2816         the sender by setting to NULL
2817
2818 2003-01-26  Havoc Pennington  <hp@pobox.com>
2819
2820         The unit tests pass, but otherwise untested.  If it breaks, the
2821         tests should have been better. ;-)
2822         
2823         * bus/driver.c (bus_driver_handle_hello): return if we disconnect
2824         the connection.
2825
2826         * dbus/dbus-message.c: redo everything so we maintain 
2827         message->header as the only copy of the various fields.
2828         This avoids the possibility of out-of-memory in some cases,
2829         for example dbus_message_lock() can't run out of memory anymore,
2830         and avoids extra copying. Figured I may as well go ahead and do 
2831         this since it was busted for dbus_message_lock to not return 
2832         failure on OOM, and dbus_message_write_header was totally
2833         unchecked for OOM. Also fixed some random other bugs.
2834
2835         * dbus/dbus-marshal.c (_dbus_marshal_get_field_end_pos): verify
2836         that strings are nul-terminated. Also, end_pos can be equal 
2837         to string length just not greater than, I think.
2838         (_dbus_marshal_set_int32): new function
2839         (_dbus_marshal_set_uint32): new function
2840         (_dbus_marshal_set_string): new function
2841
2842         * dbus/dbus-connection.c (_dbus_connection_new_for_transport): fix
2843         a warning, init timeout_list to NULL
2844         (dbus_connection_send_message): don't use uninitialized variable
2845         "serial"
2846
2847         * dbus/dbus-string.c (_dbus_string_replace_len): new function
2848
2849 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
2850
2851         * bus/driver.c: (bus_driver_handle_hello),
2852         (bus_driver_send_welcome_message):
2853         Plug leaks
2854         
2855 2003-01-26  Anders Carlsson  <andersca@codefactory.se>
2856
2857         * dbus/dbus-auth.c: (process_auth), (_dbus_auth_unref):
2858         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
2859         (dbus_connection_unref):
2860         * dbus/dbus-marshal.c: (_dbus_marshal_test):
2861         * dbus/dbus-message.c: (dbus_message_unref),
2862         Plug memory leaks.
2863         
2864         (dbus_message_get_fields): 
2865         Remove debugging printout.
2866
2867         (_dbus_message_loader_return_buffer):
2868         Don't store the header string.
2869         
2870         (_dbus_message_test):
2871         Plug leaks.
2872
2873 2003-01-26  Richard Hult  <rhult@codefactory.se>
2874
2875         * glib/dbus-gmain.c (dbus_connection_dispatch): Traverse a copy of
2876         the file descriptor list, since it can change under us.
2877
2878 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
2879
2880         * glib/dbus-gmain.c: (dbus_connection_prepare),
2881         (dbus_connection_check), (dbus_connection_dispatch), (add_watch),
2882         (remove_watch), (dbus_connection_hookup_with_g_main):
2883         Rewrite the glib handling to use its own GSource instead of a 
2884         GIOChannel so we can catch messages put in the queue while waiting
2885         for a reply.
2886         
2887 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
2888
2889         * bus/Makefile.am:
2890         * bus/connection.c: (connection_disconnect_handler),
2891         (connection_watch_callback), (bus_connection_setup):
2892         * bus/dispatch.c: (send_one_message),
2893         (bus_dispatch_broadcast_message), (bus_dispatch_message_handler),
2894         (bus_dispatch_add_connection), (bus_dispatch_remove_connection):
2895         * bus/dispatch.h:
2896         * bus/driver.c: (bus_driver_send_service_deleted),
2897         (bus_driver_send_service_created), (bus_driver_handle_hello),
2898         (bus_driver_send_welcome_message),
2899         (bus_driver_handle_list_services), (bus_driver_remove_connection),
2900         (bus_driver_handle_message):
2901         * bus/driver.h:
2902         Refactor code, put the message dispatching in its own file. Use 
2903         _DBUS_HANDLE_OOM. Also send ServiceDeleted messages when a client
2904         is disconnected.
2905         
2906 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
2907
2908         * dbus/dbus-internals.h:
2909         Add _DBUS_HANDLE_OOM macro, it doesn't do anything currently.
2910         
2911         * dbus/dbus-message.c: (dbus_message_get_sender):
2912         * dbus/dbus-message.h:
2913         Implement dbus_message_get_sender.
2914         
2915         * dbus/dbus-protocol.h:
2916         Add message and service defines.
2917         
2918 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
2919
2920         * dbus/dbus-connection.c: (dbus_connection_send_message):
2921         * dbus/dbus-message-internal.h:
2922         * dbus/dbus-message.c: (_dbus_message_get_client_serial),
2923         (dbus_message_write_header):
2924         Remove _dbus_messag_unlock and don't set the client serial on a 
2925         message if one already exists.
2926         
2927 2003-01-24  Havoc Pennington  <hp@pobox.com>
2928
2929         * dbus/dbus-list.c (alloc_link): put a thread lock on the global
2930         list_pool
2931
2932         * bus/driver.c (bus_driver_handle_list_services): fix a leak 
2933         on OOM
2934
2935 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
2936
2937         * dbus/dbus-list.c: (alloc_link), (free_link):
2938         Use a memory pool for the links.
2939         
2940 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
2941
2942         * bus/connection.c: (bus_connection_foreach):
2943         * bus/connection.h:
2944         Add new bus_connection_foreach function.
2945         
2946         * bus/driver.c: (send_one_message), (bus_driver_broadcast_message):
2947         Add function that broadcasts a message to all clients.
2948         
2949         (bus_driver_send_service_created), (bus_driver_handle_hello),
2950         (bus_driver_send_welcome_message),
2951         (bus_driver_handle_list_services), (bus_driver_message_handler):
2952         Implement functions that take care of listing services, and notifying
2953         clients when new services are created.
2954         
2955         * bus/services.c: (bus_services_list):
2956         * bus/services.h:
2957         Add new function that returns an array of strings with the currently
2958         registered services.
2959         
2960         * glib/dbus-glib.h:
2961         * glib/dbus-gmain.c:
2962         Update copyright year.
2963         
2964 2003-01-25  Anders Carlsson  <andersca@codefactory.se>
2965
2966         * dbus/dbus-connection.c: (dbus_connection_send_message):
2967         Unlock the message in case it was sent earlier.
2968         
2969         (dbus_connection_send_message_with_reply_and_block):
2970         Remove the reply message from the list.
2971         
2972         * dbus/dbus-marshal.c: (_dbus_demarshal_string_array):
2973         Set array_len and new_pos correctly.
2974         
2975         (_dbus_marshal_test):
2976         Remove debug output.
2977         
2978         * dbus/dbus-message-internal.h:
2979         * dbus/dbus-message.c: (_dbus_message_get_reply_serial):
2980         New function that returns the reply serial.
2981         
2982         (_dbus_message_unlock):
2983         New function that unlocks a message and resets its header.
2984
2985         (dbus_message_append_string_array), 
2986         (dbus_message_get_fields_valist),
2987         (dbus_message_iter_get_field_type),
2988         (dbus_message_iter_get_string_array),   
2989         (dbus_message_get_fields),      
2990         (dbus_message_append_fields_valist):
2991         Handle string arrays.
2992         
2993         (dbus_message_set_sender):
2994         Make this function public since the bus daemon needs it.
2995         
2996         (decode_header_data):
2997         Set the reply serial to -1 initially.
2998
2999         * dbus/dbus-message.h:
3000         Add dbus_message_set_sender.    
3001
3002 2003-01-24  Havoc Pennington  <hp@pobox.com>
3003
3004         * doc/dbus-specification.sgml: add some stuff
3005
3006 2003-01-22  Havoc Pennington  <hp@pobox.com>
3007
3008         * doc/dbus-specification.sgml: Start to document the protocol.
3009
3010 2003-01-22  Havoc Pennington  <hp@pobox.com>
3011
3012         * dbus/dbus-connection.c
3013         (dbus_connection_send_message_with_reply_and_block): add some @todo
3014
3015         * bus/driver.c (bus_driver_add_connection): add a FIXME about memleak
3016
3017 2003-01-21  Havoc Pennington  <hp@pobox.com>
3018
3019         (patch untested because can't compile)
3020         
3021         * bus/driver.c (create_unique_client_name): make this function
3022         never recycle client names. Also, caller should initialize 
3023         the DBusString.
3024
3025         * dbus/dbus-sysdeps.c (_dbus_get_current_time): new function
3026
3027 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
3028
3029         * dbus/dbus-marshal.c: (_dbus_marshal_double),
3030         (_dbus_marshal_int32), (_dbus_marshal_uint32),
3031         (_dbus_marshal_int32_array), (_dbus_marshal_uint32_array),
3032         (_dbus_marshal_double_array), (_dbus_marshal_string_array),
3033         (_dbus_demarshal_int32_array), (_dbus_demarshal_uint32_array),
3034         (_dbus_demarshal_double_array), (_dbus_demarshal_string_array),
3035         (_dbus_marshal_get_field_end_pos), (_dbus_marshal_test):
3036         * dbus/dbus-marshal.h:
3037         * dbus/dbus-protocol.h:
3038         Add support for marshalling and demarshalling integer, double
3039         and string arrays.
3040         
3041 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
3042
3043         * bus/Makefile.am:
3044         Add driver.[ch]
3045         
3046         * bus/connection.c: (connection_disconnect_handler):
3047         Remove the connection from the bus driver's list.
3048         
3049         (connection_watch_callback): Dispatch messages.
3050
3051         (free_connection_data): Free connection name.
3052         
3053         (bus_connection_setup): Add connection to the bus driver's list.
3054         (bus_connection_remove_owned_service): 
3055         (bus_connection_set_name), (bus_connection_get_name):
3056         Add functions for setting and getting the connection's name.
3057         
3058         * bus/connection.h:
3059         Add function headers.
3060         
3061         * bus/driver.c: (create_unique_client_name),
3062         (bus_driver_handle_hello_message),
3063         (bus_driver_send_welcome_message), (bus_driver_message_handler),
3064         (bus_driver_add_connection), (bus_driver_remove_connection):
3065         * bus/driver.h:
3066         * bus/main.c:
3067         * bus/services.c: (bus_service_free):
3068         * bus/services.h:
3069         New file that handles communication and registreation with the bus
3070         itself. 
3071         
3072 2003-01-21  Anders Carlsson  <andersca@codefactory.se>
3073
3074         * dbus/dbus-connection.c: (dbus_connection_send_message):
3075         Add a new client_serial parameter.
3076         
3077         (dbus_connection_send_message_with_reply):
3078         Remove a @todo since we've implemented the blocking function.
3079         
3080         (dbus_connection_send_message_with_reply_and_block):
3081         New function that sends a message and waits for a reply and
3082         then returns the reply.
3083         
3084         * dbus/dbus-connection.h:
3085         Add new functions.
3086         
3087         * dbus/dbus-errors.c: (dbus_result_to_string):
3088         * dbus/dbus-errors.h:
3089         Add new DBUS_RESULT.
3090         
3091         * dbus/dbus-message-internal.h:
3092         * dbus/dbus-message.c: (_dbus_message_get_reply_serial),
3093         (_dbus_message_set_sender), (dbus_message_write_header),
3094         (dbus_message_new_reply), (decode_header_data),
3095         (_dbus_message_loader_return_buffer), (_dbus_message_test):
3096         * dbus/dbus-message.h:
3097         Add new functions that set the reply serial and sender.
3098         Also marshal and demarshal them correctly and add test.
3099         
3100         * dbus/dbus-protocol.h:
3101         Add new DBUS_MESSAGE_TYPE_SENDER.
3102         
3103         * glib/dbus-glib.h:
3104         * glib/dbus-gmain.c: (watch_callback), (free_callback_data),
3105         (add_watch), (remove_watch), (add_timeout), (remove_timeout),
3106         (dbus_connection_hookup_with_g_main):
3107         * glib/test-dbus-glib.c: (main):
3108         Rewrite to use GIOChannel and remove the GSource crack.
3109         
3110         * test/echo-client.c: (main):
3111         * test/watch.c: (check_messages):
3112         Update for changed APIs
3113         
3114 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
3115
3116         * dbus/Makefile.am: Add dbus-timeout.[cħ]
3117         
3118         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport):
3119         Create a DBusTimeoutList.       
3120         (dbus_connection_set_timeout_functions): Add new function to
3121         set timeout callbacks
3122         
3123         * dbus/dbus-connection.h: Add public DBusTimeout API.
3124         
3125         * dbus/dbus-message.c: (dbus_message_get_service):
3126         * dbus/dbus-message.h:  New function.
3127
3128         * dbus/dbus-server.c: Fix small doc typo.
3129         
3130         * dbus/dbus-timeout.[ch]: New files for mainloop timeouts.
3131
3132 2003-01-19  Anders Carlsson  <andersca@codefactory.se>
3133
3134         * dbus/dbus-string.c (_dbus_string_move_len): Don't delete all
3135         of the string, just as long as specified.
3136
3137 2003-01-19  Havoc Pennington  <hp@pobox.com>
3138
3139         * dbus/dbus-connection.c (dbus_connection_get_is_authenticated):
3140         new function
3141
3142         * dbus/dbus-server.c (dbus_server_set_max_connections)
3143         (dbus_server_get_max_connections, dbus_server_get_n_connections):
3144         keep track of current number of connections, and add API for
3145         setting a max (but haven't implemented enforcing the max yet)
3146
3147 2003-01-18  Havoc Pennington  <hp@pobox.com>
3148
3149         * dbus/dbus-transport-unix.c (unix_do_iteration): only do the
3150         reading/writing if read_watch != NULL or write_watch != NULL.
3151
3152         * dbus/dbus-message.c (_dbus_message_loader_return_buffer): fix
3153         the message loader code to actually load message->header and
3154         message->body into the newly-created message.
3155
3156         * dbus/dbus-transport-unix.c (check_write_watch): fix a mem leak
3157         in OOM case
3158
3159         * dbus/dbus-connection.c (dbus_connection_set_max_message_size) 
3160         (dbus_connection_get_max_message_size) 
3161         (dbus_connection_set_max_live_messages_size) 
3162         (dbus_connection_get_max_live_messages_size): implement some
3163         resource limitation functions
3164
3165         * dbus/dbus-resources.c: new file implementing some of the
3166         resource limits stuff
3167
3168         * dbus/dbus-message.c (dbus_message_iter_get_byte_array): add
3169         missing docs, add @todo to handle OOM etc.
3170
3171         * dbus/dbus-marshal.c (_dbus_demarshal_byte_array): add missing
3172         docs
3173         
3174 2003-01-18  Havoc Pennington  <hp@pobox.com>
3175
3176         * dbus/dbus-connection.c (dbus_connection_unref): disconnect the 
3177         connection if it hasn't been already.
3178
3179         * dbus/dbus-connection.h: kill off the idea of an ErrorFunction,
3180         replace with DisconnectFunction.
3181
3182 2003-01-18  Havoc Pennington  <hp@pobox.com>
3183
3184         Building --disable-verbose-mode --disable-asserts --disable-tests
3185         cuts the library from 112K to 45K or so
3186         
3187         * configure.in: check for varargs macro support, 
3188         add --enable-verbose-mode, --enable-asserts. 
3189
3190         * dbus/dbus-internals.h (_dbus_assert): support
3191         DBUS_DISABLE_ASSERT
3192         (_dbus_verbose): support DBUS_ENABLE_VERBOSE_MODE
3193
3194 2003-01-18  Havoc Pennington  <hp@pobox.com>
3195
3196         * dbus/dbus-test.c: include config.h so that tests actually run
3197
3198         * dbus/dbus-string.c: add assertions that stuff is 8-byte aligned,
3199         so the failure mode when that assumption fails will be plenty
3200         obvious.
3201
3202 2003-01-18  Havoc Pennington  <hp@pobox.com>
3203
3204         * configure.in: default --enable-tests to $USE_MAINTAINER_MODE
3205
3206         * dbus/Makefile.am: fix it up so dubs-test-main.c is included in
3207         the distribution
3208
3209         * test/Makefile.am: don't use special variable "TESTS" for echo-*
3210         since we don't want to use those in make check
3211
3212 2003-01-15  Havoc Pennington  <hp@redhat.com>
3213
3214         Release 0.2
3215         
3216         * NEWS: update
3217
3218 2003-01-15  Havoc Pennington  <hp@redhat.com>
3219
3220         * test/Makefile.am: fix so that test source code ends up in the
3221         distribution on make distcheck
3222
3223 2003-01-15  Havoc Pennington  <hp@redhat.com>
3224
3225         Release 0.1.
3226         
3227         * NEWS: update  
3228
3229 2003-01-15  Havoc Pennington  <hp@redhat.com>
3230
3231         * dbus/dbus-test.c (dbus_internal_symbol_do_not_use_run_tests):
3232         fix build when --disable-tests
3233
3234         * Makefile.am (EXTRA_DIST): put HACKING in here
3235
3236         * HACKING: document procedure for making a tarball release.
3237
3238 2003-01-14  Anders Carlsson  <andersca@codefactory.se>
3239
3240         * bus/connection.c: (connection_error_handler),
3241         (bus_connection_setup):
3242         * bus/main.c: (main):
3243         Make sure that the DBusConnectionData struct is NULLed
3244         out to prevent a segfault.
3245         
3246         * dbus/dbus-errors.c: (dbus_result_to_string):
3247         * dbus/dbus-errors.h:
3248         * dbus/dbus-message.c: (dbus_message_get_fields),
3249         (dbus_message_get_fields_valist), (_dbus_message_test):
3250         * dbus/dbus-message.h:
3251         Make dbus_message_get_fields return a result code so we can
3252         track invalid fields as well as oom.
3253         
3254 2003-01-11  Havoc Pennington  <hp@pobox.com>
3255
3256         * configure.in: change --enable-test/--enable-ansi action-if-given
3257         to enable_foo=$enableval instead of enable_foo=yes
3258
3259 2003-01-08  Havoc Pennington  <hp@pobox.com>
3260
3261         * dbus/dbus-string.c (_dbus_string_align_length): new function
3262
3263         * dbus/dbus-test-main.c: move main() for test app here
3264         * dbus/dbus-test.c
3265         (dbus_internal_symbol_do_not_use_run_tests): we have to export a
3266         symbol to run tests, because dbus-test isn't in the main 
3267         library
3268
3269         Code review nitpicks.
3270         
3271         * dbus/dbus-message.c (dbus_message_write_header): add newlines
3272         for people with narrow emacs ;-). Assert client_serial was filled
3273         in. Assert message->name != NULL.
3274         (dbus_message_append_fields): have "first_field_type" arg separate
3275         from va list, needed for C++ binding that also uses varargs IIRC
3276         and helps with type safety
3277         (dbus_message_new): add @todo about using DBusString to store
3278         service/name internally
3279         (dbus_message_new): don't leak ->service and ->name on OOM later
3280         in the function
3281         (dbus_message_unref): free the service name
3282         (dbus_message_get_fields): same change to varargs
3283         i.e. first_field_type
3284         (_dbus_message_loader_return_buffer): assert that the message data
3285         is aligned (if not it's a bug in our code). Put in verbose griping
3286         about why we set corrupted = TRUE.
3287         (decode_header_data): add FIXME that char* is evil.  Was going to
3288         add FIXME about evil locale-specific string.h strncmp, but just
3289         switched to wacky string-as-uint32 optimization. Move check for
3290         "no room for field name" above get_const_data_len() to avoid
3291         assertion failure in get_const_data_len if we have trailing 2
3292         bytes or the like. Check for service and name fields being
3293         provided twice. Don't leak service/name on error. Require field
3294         names to be aligned to 4 bytes.
3295
3296         * dbus/dbus-marshal.c: move byte swap stuff to header
3297         (_dbus_pack_int32): uscore-prefix
3298         (_dbus_unpack_int32): uscore-prefix
3299         (_dbus_unpack_uint32): export
3300         (_dbus_demarshal_string): add @todo complaining about use of
3301         memcpy()
3302         (_dbus_marshal_get_field_end_pos): add @todo about bad error
3303         handling allowing corrupt data to go unchecked
3304
3305 2003-01-08  Havoc Pennington  <hp@redhat.com>
3306
3307         * dbus/dbus-transport-unix.c (unix_do_iteration): add read/write 
3308         to the select() as needed for authentication. (should be using
3309         _dbus_poll() not select, but for another day)
3310
3311         * dbus/dbus.h: include dbus/dbus-protocol.h
3312
3313 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
3314
3315         * dbus/Makefile.am (dbusinclude_HEADERS): Install
3316         dbus-connection.h
3317
3318 2003-01-08  Anders Carlsson  <andersca@codefactory.se>
3319
3320         * dbus/dbus-internals.c: (_dbus_type_to_string):
3321         New function that returns a string describing a type.
3322         
3323         * dbus/dbus-marshal.c: (_dbus_demarshal_byte_array):
3324         * dbus/dbus-marshal.h:
3325         * dbus/dbus-message.c: (dbus_message_get_fields_valist),
3326         (dbus_message_iter_get_field_type), (dbus_message_iter_get_double),
3327         (dbus_message_iter_get_byte_array):
3328         * dbus/dbus-message.h:
3329         Add new convenience functions for appending and getting message fields.
3330         Also add demarshalling routines for byte arrays.
3331
3332 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
3333
3334         * dbus/dbus-connection-internal.h:
3335         * dbus/dbus-connection.c: (_dbus_connection_new_for_transport),
3336         (_dbus_connection_get_next_client_serial),
3337         (dbus_connection_send_message):
3338         * dbus/dbus-internals.h:
3339         * dbus/dbus-marshal.c: (unpack_uint32), (dbus_unpack_int32),
3340         (dbus_pack_int32), (_dbus_marshal_double), (_dbus_marshal_int32),
3341         (_dbus_marshal_uint32), (_dbus_demarshal_double),
3342         (_dbus_demarshal_int32), (_dbus_demarshal_uint32),
3343         (_dbus_demarshal_string), (_dbus_marshal_get_field_end_pos),
3344         (_dbus_verbose_bytes), (_dbus_marshal_test):
3345         * dbus/dbus-marshal.h:
3346         * dbus/dbus-message-internal.h:
3347         * dbus/dbus-message.c: (_dbus_message_set_client_serial),
3348         (dbus_message_write_header), (_dbus_message_lock),
3349         (dbus_message_new), (dbus_message_ref), (dbus_message_unref),
3350         (dbus_message_get_name), (dbus_message_append_int32),
3351         (dbus_message_append_uint32), (dbus_message_append_double),
3352         (dbus_message_append_string), (dbus_message_append_byte_array),
3353         (dbus_message_get_fields_iter), (dbus_message_iter_ref),
3354         (dbus_message_iter_unref), (dbus_message_iter_has_next),
3355         (dbus_message_iter_next), (dbus_message_iter_get_field_type),
3356         (dbus_message_iter_get_string), (dbus_message_iter_get_int32),
3357         (dbus_message_iter_get_uint32), (dbus_message_iter_get_double),
3358         (decode_header_data), (_dbus_message_loader_return_buffer),
3359         (message_iter_test), (_dbus_message_test):
3360         * dbus/dbus-message.h:
3361         * dbus/dbus-protocol.h:
3362         * dbus/dbus-test.c: (main):
3363         * dbus/dbus-test.h:
3364         * glib/test-dbus-glib.c: (message_handler), (main):
3365         * test/echo-client.c: (main):
3366         * test/watch.c: (check_messages):
3367         Make messages sendable and receivable for real.
3368         
3369 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
3370
3371         * dbus/dbus-marshal.c: (_dbus_marshal_double),
3372         (_dbus_marshal_string), (_dbus_marshal_byte_array):
3373         * dbus/dbus-message.c: (dbus_message_append_int32),
3374         (dbus_message_append_uint32), (dbus_message_append_double),
3375         (dbus_message_append_string), (dbus_message_append_byte_array):
3376         Handle OOM restoration.
3377         
3378 2003-01-07  Anders Carlsson  <andersca@codefactory.se>
3379
3380         * dbus/dbus-marshal.c: (_dbus_marshal_string),
3381         (_dbus_demarshal_string), (_dbus_marshal_test):
3382         * dbus/dbus-marshal.h:
3383         * dbus/dbus-message.c: (dbus_message_get_name),
3384         Document these functions.
3385         
3386         (dbus_message_append_int32), (dbus_message_append_uint32),
3387         (dbus_message_append_double), (dbus_message_append_string),
3388         (dbus_message_append_byte_array):
3389         * dbus/dbus-message.h:
3390         Add functions for adding message fields of different types.
3391         
3392         * dbus/dbus-protocol.h:
3393         Add the different types.
3394
3395 2003-01-05  Havoc Pennington  <hp@pobox.com>
3396
3397         * bus/connection.c: implement routines for handling connections,
3398         first thing is keeping a list of owned services on each connection
3399         and setting up watches etc.
3400
3401         * bus/services.c: implement a mapping from service names to lists
3402         of connections
3403
3404         * dbus/dbus-hash.c: add DBUS_HASH_POINTER
3405
3406         * dbus/dbus-threads.c (dbus_static_mutex_lock): add functions
3407         to use static mutexes for global data
3408
3409         * dbus/dbus-connection.c (dbus_connection_set_data): add new
3410         collection of functions to set/get application-specific data
3411         on the DBusConnection.
3412
3413 2003-01-04  Havoc Pennington  <hp@pobox.com>
3414
3415         * dbus/dbus-sysdeps.c (_dbus_sleep_milliseconds): new function
3416         (_dbus_poll): new function
3417
3418         * dbus/dbus-internals.h (_DBUS_STRUCT_OFFSET): new macro
3419         copied from GLib
3420
3421         * bus/loop.c: initial code for the daemon main loop
3422
3423 2003-01-04  Havoc Pennington  <hp@pobox.com>
3424
3425         * test/watch.c (error_handler): make it safe if the error handler 
3426         is called multiple times (if we s/error handler/disconnect
3427         handler/ we should just guarantee it's called only once)
3428
3429         * dbus/dbus-transport.c (_dbus_transport_disconnect): call the
3430         error handler on disconnect (it's quite possible we should
3431         just change the error handler to a "disconnect handler," I'm 
3432         not sure we have any other meaningful errors)
3433
3434         * configure.in: check for getpwnam_r
3435
3436         * dbus/dbus-transport.c, dbus/dbus-transport-unix.c,
3437         dbus/dbus-auth.c: add credentials support, add EXTERNAL auth
3438         mechanism as in SASL spec, using socket credentials
3439
3440         * dbus/dbus-sysdeps.c (_dbus_read_credentials_unix_socket): new function
3441         (_dbus_send_credentials_unix_socket): new function
3442
3443         * dbus/dbus-sysdeps.c (_dbus_accept_unix_socket): rename just
3444         dbus_accept()
3445         (_dbus_write): only check errno if <0 returned
3446         (_dbus_write_two): ditto
3447
3448 2003-01-02  Anders Carlsson  <andersca@codefactory.se>
3449
3450         * dbus/dbus-marshal.c: (_dbus_marshal_utf8_string),
3451         (_dbus_marshal_byte_array), (_dbus_demarshal_utf8_string),
3452         (_dbus_marshal_test):
3453         * dbus/dbus-marshal.h:
3454         Add _dbus_marshal_byte_array and rename _dbus_marshal_string
3455         to _dbus_marshal_utf8_string. Also fix some tests.
3456         
3457 2002-12-28  Harri Porten  <porten@kde.org>
3458
3459         * configure.in: added check for C++ compiler and a very cheesy
3460         check for the Qt integration
3461
3462         * Makefile.am (SUBDIRS): compile qt subdir if support is enabled
3463
3464         * qt/Makefile.am: added 
3465
3466         * qt/.cvsignore: added  
3467
3468         * qt/dbus-qthread.cc, qt/dbus-qthread.cpp: renamed former to
3469         latter, added #ifdef QT_THREAD_SUPPORT guard.
3470
3471         * dbus/Makefile.am: added missing headers for make dist
3472
3473 2002-12-28  Kristian Rietveld  <kris@gtk.org>
3474
3475         * dbus/Makefile.am: fixup export-symbols-regex.
3476
3477 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
3478
3479         * acinclude.m4: Add this file and put the 
3480         PKG_CHECK_MODULE macro in it.
3481
3482 2002-12-27  Anders Carlsson  <andersca@codefactory.se>
3483
3484         * dbus/dbus-marshal.c: (_dbus_marshal_string),
3485         (_dbus_demarshal_double), (_dbus_demarshal_int32),
3486         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
3487         (_dbus_marshal_test):
3488         Make the demarshalling routines align the pos argument.
3489         Add string marshalling tests and fix the obvious bugs 
3490         discovered.
3491         
3492 2002-12-26  Havoc Pennington  <hp@pobox.com>
3493
3494         * dbus/dbus-auth.c: fixes fixes fixes
3495
3496         * dbus/dbus-transport-unix.c: wire up support for
3497         encoding/decoding data on the wire
3498
3499         * dbus/dbus-auth.c (_dbus_auth_encode_data) 
3500         (_dbus_auth_decode_data): append to target string 
3501         instead of nuking it.
3502
3503 2002-12-26  Havoc Pennington  <hp@pobox.com>
3504
3505         * dbus/dbus-marshal.h (DBUS_COMPILER_BYTE_ORDER): #ifdef
3506         WORDS_BIGENDIAN then compiler byte order is DBUS_BIG_ENDIAN,
3507         doh
3508
3509         * dbus/dbus-marshal.c: Add macros to do int swapping in-place and
3510         avoid swap_bytes() overhead (ignoring possible assembly stuff for 
3511         now). Main point is because I wanted unpack_uint32 to implement
3512         _dbus_verbose_bytes
3513         (_dbus_verbose_bytes): new function
3514
3515         * dbus/dbus-string.c (_dbus_string_validate_ascii): new function
3516
3517         * dbus/dbus-message.c (_dbus_message_loader_get_is_corrupted): add
3518         mechanism to handle a corrupt message stream
3519         (_dbus_message_loader_new): fix preallocation to only prealloc, 
3520         not prelengthen
3521         
3522         * dbus/dbus-string.c (_dbus_string_skip_blank): fix this function
3523         (_dbus_string_test): enhance tests for copy/move and fix the
3524         functions
3525
3526         * dbus/dbus-transport-unix.c: Hold references in more places to 
3527         avoid reentrancy problems
3528
3529         * dbus/dbus-transport.c: ditto
3530
3531         * dbus/dbus-connection.c (dbus_connection_dispatch_message): don't
3532         leak reference count in no-message case
3533
3534         * test/watch.c (do_mainloop): handle adding/removing watches
3535         during iteration over the watches. Also, ref the connection/server
3536         stored on a watch, so we don't try to mangle a destroyed one.
3537
3538         * dbus/dbus-transport-unix.c (do_authentication): perform
3539         authentication
3540
3541         * dbus/dbus-auth.c (get_state): add a state
3542         AUTHENTICATED_WITH_UNUSED_BYTES and return it if required
3543         (_dbus_auth_get_unused_bytes): append the unused bytes
3544         to the passed in string, rather than prepend
3545
3546         * dbus/dbus-transport.c (_dbus_transport_init_base): create 
3547         the auth conversation DBusAuth
3548
3549         * dbus/dbus-transport-unix.c (_dbus_transport_new_for_fd)
3550         (_dbus_transport_new_for_domain_socket): when creating a
3551         transport, pass in whether it's a client-side or server-side
3552         transport so we know which DBusAuth to create
3553
3554 2002-12-03  Havoc Pennington  <hp@pobox.com>
3555
3556         * dbus/dbus-transport-unix.c (unix_finalize): finalize base
3557         _after_ finalizing the derived members
3558         (unix_connection_set): unref watch if we fail to add it
3559
3560         * dbus/dbus-connection.c (dbus_connection_unref): delete the
3561         transport first, so that the connection owned by the 
3562         transport will be valid as the transport finalizes.
3563
3564         * dbus/dbus-transport-unix.c (unix_finalize): free the write_watch
3565         if necessary, and remove watches from the connection.
3566         
3567         * dbus/dbus-watch.c (_dbus_watch_list_free): improve a comment
3568         
3569 2002-12-26  Anders Carlsson  <andersca@codefactory.se>
3570
3571         * dbus/dbus-marshal.c: (_dbus_marshal_string),
3572         (_dbus_demarshal_double), (_dbus_demarshal_int32),
3573         (_dbus_demarshal_uint32), (_dbus_demarshal_string),
3574         (_dbus_marshal_test):
3575         * dbus/dbus-marshal.h:
3576         Add string marshal functions and have the demarshal functions
3577         return the new position.
3578         
3579 2002-12-25  Havoc Pennington  <hp@pobox.com>
3580
3581         * doc/dbus-sasl-profile.txt: docs on the authentication protocol, 
3582         it is a simple protocol that just maps directly to SASL.
3583
3584         * dbus/dbus-auth.h, dbus/dbus-auth.c: authentication protocol
3585         initial implementation, not actually used yet.
3586         
3587         * dbus/dbus-string.c (_dbus_string_find): new function
3588         (_dbus_string_equal): new function
3589         (_dbus_string_base64_encode): new function
3590         (_dbus_string_base64_decode): new function
3591
3592 2002-12-25  Anders Carlsson  <andersca@codefactory.se>
3593
3594         * dbus/Makefile.am:
3595         * dbus/dbus-marshal.c: (swap_bytes), (_dbus_marshal_double),
3596         (_dbus_marshal_int32), (_dbus_marshal_uint32),
3597         (_dbus_demarshal_double), (_dbus_demarshal_int32),
3598         (_dbus_demarshal_uint32), (_dbus_marshal_test):
3599         * dbus/dbus-marshal.h:
3600         * dbus/dbus-protocol.h:
3601         * dbus/dbus-test.c: (main):
3602         * dbus/dbus-test.h:
3603         Add un-optimized marshalling/demarshalling routines.
3604         
3605 2002-12-25  Harri Porten  <porten@kde.org>
3606
3607         * qt/dbus-qt.h: adjusted ctor and getter to KDE/Qt conventions
3608
3609 2002-12-24  Zack Rusin  <zack@kde.org>
3610
3611         * qt/dbus-qthread.cc: adding - integrates QMutex into Dbus
3612         * qt/dbus-qt.h: skeleton with two sample implemenatation of the
3613         main loop stuff
3614
3615 2002-12-24  Havoc Pennington  <hp@pobox.com>
3616
3617         * glib/dbus-gthread.c: fix include
3618
3619         * glib/dbus-glib.h: rename DBusMessageHandler for now. 
3620         I think glib API needs to change, though, as you don't 
3621         want to use DBusMessageFunction, you want to use the 
3622         DBusMessageHandler object. Probably 
3623         dbus_connection_open_with_g_main_loop()
3624         and dbus_connection_setup_g_main_loop() or something like that
3625         (but think of better names...) that just create a connection 
3626         that has watch/timeout functions etc. already set up.
3627
3628         * dbus/dbus-connection.c
3629         (dbus_connection_send_message_with_reply): new function just to 
3630         show how the message handler helps us deal with replies.
3631
3632         * dbus/dbus-list.c (_dbus_list_remove_last): new function
3633
3634         * dbus/dbus-string.c (_dbus_string_test): free a string that
3635         wasn't
3636
3637         * dbus/dbus-hash.c: use memory pools for the hash entries
3638         (rebuild_table): be more paranoid about overflow, and 
3639         shrink table when we can
3640         (_dbus_hash_test): reduce number of sprintfs and write
3641         valid C89. Add tests for case where we grow and then 
3642         shrink the hash table.
3643
3644         * dbus/dbus-mempool.h, dbus/dbus-mempool.c: memory pools
3645
3646         * dbus/dbus-connection.c (dbus_connection_register_handler) 
3647         (dbus_connection_unregister_handler): new functions
3648
3649         * dbus/dbus-message.c (dbus_message_get_name): new
3650
3651         * dbus/dbus-list.c: fix docs typo
3652
3653         * dbus/dbus-message-handler.h, dbus/dbus-message-handler.c:
3654         an object representing a handler for messages.
3655
3656 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
3657
3658         * glib/dbus-glib.h:
3659         * glib/dbus-gthread.c: (dbus_gthread_init):
3660         Don't use the gdbus prefix for public functions.
3661         
3662 2002-12-16  Anders Carlsson  <andersca@codefactory.se>
3663
3664         * Makefile.am:
3665         * configure.in:
3666         Add GLib checks and fixup .pc files
3667         
3668         * glib/Makefile.am:
3669         * glib/dbus-glib.h:
3670         * glib/dbus-gmain.c: (gdbus_connection_prepare),
3671         (gdbus_connection_check), (gdbus_connection_dispatch),
3672         (gdbus_add_connection_watch), (gdbus_remove_connection_watch),
3673         (dbus_connection_gsource_new):
3674         * glib/dbus-gthread.c: (dbus_gmutex_new), (dbus_gmutex_free),
3675         (dbus_gmutex_lock), (dbus_gmutex_unlock), (dbus_gthread_init):
3676         * glib/test-dbus-glib.c: (message_handler), (main):
3677         Add GLib support.
3678         
3679 2002-12-15  Harri Porten  <porten@kde.org>
3680
3681         * autogen.sh: check for libtoolize before attempting to use it 
3682         
3683         * dbus/dbus-transport-unix.c: include <sys/time.h> for timeval
3684         struct.
3685         
3686         * .cvsignore: ignore more stamp files
3687
3688         * dbus/dbus-watch.c (_dbus_watch_list_new): fixed doc error
3689
3690         * test/Makefile.am: added -I$(top_srcdir) to be able to compile
3691         without make install.
3692
3693 2002-12-15  Havoc Pennington  <hp@pobox.com>
3694
3695         * dbus/dbus-threads.c: add thread stubs that a higher library
3696         layer can fill in. e.g. the GLib wrapper might fill them in with
3697         GThread stuff. We still need to use this thread API to
3698         thread-safe-ize the library.
3699
3700 2002-12-12  Havoc Pennington  <hp@pobox.com>
3701
3702         * dbus/dbus-transport-unix.c, dbus/dbus-server-unix.c: use the
3703         below new interfaces and include fewer system headers.
3704
3705         * dbus/dbus-sysdeps.c (_dbus_read): new function
3706         (_dbus_write): new function
3707         (_dbus_write_two): new function
3708         (_dbus_connect_unix_socket): new function
3709         (_dbus_listen_unix_socket): new function
3710
3711         * dbus/dbus-message-internal.h: change interfaces to use
3712         DBusString
3713
3714 2002-12-11  Havoc Pennington  <hp@pobox.com>
3715
3716         * dbus/dbus-types.h: add dbus_unichar
3717
3718         * dbus/dbus-internals.c (_dbus_verbose): use _dbus_getenv
3719
3720         * dbus/dbus-connection.c (dbus_connection_send_message): return
3721         TRUE on success
3722
3723         * dbus/dbus-transport.c: include dbus-watch.h   
3724
3725         * dbus/dbus-connection.c: include dbus-message-internal.h
3726
3727         * HACKING: add file with coding guidelines stuff.
3728
3729         * dbus/dbus-string.h, dbus/dbus-string.c: Encapsulate all string
3730         handling here, for security purposes (as in vsftpd). Not actually
3731         using this class yet.
3732
3733         * dbus/dbus-sysdeps.h, dbus/dbus-sysdeps.c: Encapsulate all
3734         system/libc usage here, as in vsftpd, for ease of auditing (and
3735         should also simplify portability). Haven't actually moved all the
3736         system/libc usage into here yet.
3737         
3738 2002-11-25  Havoc Pennington  <hp@pobox.com>
3739
3740         * dbus/dbus-internals.c (_dbus_verbose): fix to not 
3741         always print the first verbose message.
3742
3743 2002-11-24  Havoc Pennington  <hp@pobox.com>
3744
3745         * test/echo-client.c, test/echo-server.c: cheesy test 
3746         clients.
3747         
3748         * configure.in (AC_CHECK_FUNCS): check for writev
3749
3750         * dbus/dbus-message.c (_dbus_message_get_network_data): new
3751         function
3752
3753         * dbus/dbus-list.c (_dbus_list_foreach): new function
3754
3755         * dbus/dbus-internals.c (_dbus_verbose): new function
3756
3757         * dbus/dbus-server.c, dbus/dbus-server.h: public object
3758         representing a server that listens for connections.
3759
3760         * dbus/.cvsignore: create
3761
3762         * dbus/dbus-errors.h, dbus/dbus-errors.c:
3763         public API for reporting errors
3764
3765         * dbus/dbus-connection.h, dbus/dbus-connection.c:
3766         public object representing a connection that 
3767         sends/receives messages. (Same object used for 
3768         both client and server.)
3769
3770         * dbus/dbus-transport.h, dbus/dbus-transport.c:
3771         Basic abstraction for different kinds of stream
3772         that we might read/write messages from.
3773
3774 2002-11-23  Havoc Pennington  <hp@pobox.com>
3775
3776         * dbus/dbus-internals.h (_DBUS_INT_MAX): add _DBUS_INT_MIN 
3777         _DBUS_INT_MAX
3778
3779         * dbus/dbus-test.c (main): add list test, and include 
3780         dbus-test.h as intended
3781
3782         * dbus/dbus-hash.c (_dbus_hash_table_remove_string) 
3783         (_dbus_hash_table_remove_int): return value indicates 
3784         whether the entry existed to remove
3785
3786         * dbus/dbus-list.c: add linked list utility class, 
3787         with docs and tests
3788
3789         * dbus/dbus-hash.c: add TODO item about shrinking the hash bucket 
3790         array sometimes.
3791
3792 2002-11-23  Havoc Pennington  <hp@pobox.com>
3793
3794         * Doxyfile.in (INCLUDE_FILE_PATTERNS): expand DBUS_BEGIN_DECLS/
3795         DBUS_END_DECLS to nothing, that should fix this once and for all
3796
3797         * Doxyfile.in (JAVADOC_AUTOBRIEF): set to YES
3798
3799         * dbus/dbus-message.c, dbus/dbus-hash.c: 
3800         add some missing @brief
3801
3802 2002-11-23  Havoc Pennington  <hp@pobox.com>
3803
3804         * dbus/dbus-message.h: put semicolons after DEBUG_BEGIN_DECLS 
3805         to avoid confusing Doxygen
3806
3807         * dbus/dbus-hash.c: @} not }@
3808
3809         * dbus/dbus-message.c (struct DBusMessage): split out 
3810         internals docs
3811
3812 2002-11-23  Havoc Pennington  <hp@pobox.com>
3813
3814         * configure.in: pile on more warning flags if using gcc
3815
3816         * Doxyfile.in (EXTRACT_STATIC): set to NO, so we don't have 
3817         to document static functions
3818
3819         * configure.in: add summary to end of configure so it 
3820         looks nice and attractive
3821
3822         * dbus/dbus-hash.c: finish implementation and write unit 
3823         tests and docs
3824
3825         * configure.in: add --enable-tests to enable unit tests
3826
3827         * dbus/dbus-test.c: test program to run unit tests 
3828         for all files in dbus/*, initially runs a test for 
3829         dbus-hash.c
3830         
3831         * dbus/dbus-internals.h: file to hold some internal utility stuff
3832
3833 2002-11-22  Havoc Pennington  <hp@redhat.com>
3834
3835         * dbus/dbus-hash.c: copy in Tcl hash table, not yet 
3836         "ported" away from Tcl
3837
3838         * dbus/dbus-types.h: header for types such as dbus_bool_t
3839
3840 2002-11-22  Havoc Pennington  <hp@redhat.com>
3841
3842         * dbus/dbus.h: fixups for doc warnings
3843
3844         * Doxyfile.in (FILE_PATTERNS): we need to scan .h to pick up 
3845         macros
3846         (QUIET): make it quiet so we can see warnings
3847
3848         * dbus/dbus-memory.c: teach D-BUS to allocate and free memory
3849
3850 2002-11-22  Havoc Pennington  <hp@redhat.com>
3851
3852         * Makefile.am: include "Doxyfile" target in all-local
3853
3854         * configure.in: generate the Doxyfile
3855
3856         * Doxyfile.in: move Doxyfile here, so we can use 
3857         configure to generate a Doxyfile with the right 
3858         version number etc.
3859
3860 2002-11-22  Havoc Pennington  <hp@redhat.com>
3861
3862         * dbus/dbus-message.c: move inline docs into .c file
3863
3864         * Doxyfile (OUTPUT_DIRECTORY): move output to doc/api
3865         so all docs are under doc/
3866         (MAN_EXTENSION): generate man pages. Use extension 
3867         ".3dbus" which matches ".3qt" on my system, 
3868         I guess this is OK, I don't know really.
3869         (FILE_PATTERNS): look for .c files not .h, makes sense
3870         for plain C I think
3871
3872 2002-11-22  Havoc Pennington  <hp@pobox.com>
3873
3874         * Makefile.am (SUBDIRS): rename subdir "server" to "bus" 
3875         because any app can be a server, and any app can be a client, 
3876         the bus is a special kind of server.
3877
3878 Thu Nov 21 23:35:31 2002  Zack Rusin  <zack@kde.org>
3879
3880         * Doxyfile : adding. Still needs Makefile rules to be generated
3881         automatically (just run "doxygen" in the toplevel dir for now to
3882         generate docs)
3883         
3884         * dbus/dbus-message.h : Adding sample docs (javadoc since
3885         resembles gtk-doc a little more)
3886
3887         * dbus/dbus.h : Adding sample docs
3888
3889 2002-11-21  Havoc Pennington  <hp@redhat.com>
3890
3891         * dbus/Makefile.am (INCLUDES): define DBUS_COMPILATION 
3892         so we can allow ourselves to include files directly, 
3893         instead of having to use dbus.h
3894
3895         * dbus/dbus.h: fill in
3896
3897         * dbus/dbus-message.h: sketch out a sample header file.
3898         Include griping if you include it directly instead of 
3899         via dbus.h
3900
3901         * dbus/dbus-macros.h: new file with macros for extern "C", 
3902         TRUE/FALSE, NULL, etc.
3903
3904         * doc/file-boilerplate.c: put include guards in here
3905
3906 2002-11-21  Havoc Pennington  <hp@redhat.com>
3907
3908         * doc/file-boilerplate.c: include both AFL and GPL boilerplate.
3909
3910         * COPYING: include the GPL as well, and license code 
3911         under both AFL and GPL.
3912
3913 2002-11-21  Havoc Pennington  <hp@redhat.com>
3914
3915         * acconfig.h: get rid of this
3916
3917         * autogen.sh (run_configure): add --no-configure option
3918
3919         * configure.in: remove AC_ARG_PROGRAM to make
3920         autoconf complain less. add AC_PREREQ. 
3921         add AC_DEFINE third arg.
3922         
3923 2002-11-21  Anders Carlsson  <andersca@codefactory.se>
3924
3925         * doc/Makefile.am:
3926         Fix references so we can distcheck.
3927
3928 2002-11-21  Havoc Pennington  <hp@redhat.com>
3929
3930         * Initial module creation
3931