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