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