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