- searchpath in dns is not obeyed
- deal with raise() bug on RH9.0  (!= kill (getpid(), sig))
- error handling (mostly marked by XXX/TODO flags)
  - hunt down g_warnings and g_messages that should be GError returns
- fix XXX marks in dns code
- fix XXX marks in http code
- add sufficient test code to GskMimeMultipartDecoder to remove
  debugging prints
- FTP support
- mailto: URIs
- basic tutorials need serious work. [simple-http-server is very misleading, should use gskhttpcontent]
- BUILD: should check for zlib
- TODO: contention on POST data:  right now, we buffer as much
   data as the user feels like giving us... need to block the hook.
- TODO: GskStreamConnection::handle_error() needs to NOT just warn, 
  it needs to be adjustable (ie a signal or trap)
  (or a bunch of bits to suppress certain errors, EPIPE, ECONNREFUSED etc)
- optimization: use read_buffer() and write_buffer() in gskstreamconnection
- http: Chunked-Body doesn't support a Trailer.
- HTTP authentication.
  - DONE: most of the structures and parsing are in place.
    Still some TODOs in the parsing code that may require structural changes.
    GskHttp{Request,Response} have the necessary members.
  - Need methods to compute and check "authorization".
    Hence digest does not even come close to working.
  - Need to add support to gskhttpheader-output.c
  - Need support in url-transfer-http (for client-side)
  - Need support in GskHttpContent (for server-side)
- missing HTTP headers:
   Vary: *
   Cache-Expires: Thu, 24 Mar 2005 13:11:58 GMT
   Vary: Accept-Encoding, User-Agent
   Via: 1.1 siterl10 (Redline Networks Web I/O Processor - T|X 3.2.18 0)
   Expires: now
   Expires: -1
   Expires: 0
   Content-Location: http://foo.com
   Compression-Control: whitespace
   Keep-Alive:
   Proxy-Connection:
- need list of commmon extensions that we don't want to be warned
  about:  P3P, MicrosoftOfficeWebServer, Page-Completion-Status,
  IISExport, test, MS-Author-Via


- split gskrbtreemacros subparts into gsktreemacros.
  the trick is that gsk_tree_insert() needs hooks to 
  implement gsk_rbtree_insert(); likewise
  for "remove".  otherwise, all other methods don't use the redness,
  hence gsk_tree_XXX and gsk_rbtree_XXX are equivalent. 
- gsk_tree_replace_node() [and rbtree variant]
  
- url_check_is_valid() needs conformance review
- url_check_is_valid() must be called in all the constructor-pathways:
  gsk_url_new(), gsk_url_new_relative(), gsk_url_new_from_pieces();
  probably need a gsk_url_new_from_pieces_check() that
  does this, since the non-_check version doesn't return an error.
- caused a warning: (but aren't probably worth fixing)
   From: NEWSWEB08
   P3P: policyref="http://www.lycos.com/w3c/p3p.xml", CP="IDC DSP COR CURa ADMa DEVa CUSa PSAa IVAa CONo OUR IND UNI STA"
   PICS-Label: (PICS-1.0 "http://www.rsac.org/ratingsv01.html" l on "2003.09.02T11:37-0700" exp "2004.09.02T12:00-0700" r (v 0 s 0 n 0 l 0))
   P3P: CP="BUS CUR CONo FIN IVDo ONL OUR PHY SAMo TELo"
- the malformed HTTP header flag:
    Content-Type: text/html; charset!UTF-8
  causes the parser to hang.
- apparently, http headers can be continued on the next line,
  if the next line starts with whitespace!
  this needs fixing in gskhttpserver.c, gskhttpclient.c
  and gskhttpheader-input.c.

Someday:
- GskHttpClientCache, to take advantage of Keep-Alive transparently.
  XXX: instead integrate into GskUrlTransferHttp
- MAIL support [IMAP and POP3/4 etc] [client first, then server]
- RFC compliance sections in the docs would be awesome.

need full test code:
- GskHook basics [test all macros and basic interactions]
- GskMemory tests [test hooking memory sources together]
- GskHttpHeader tests: [test TEXT->PARSED->TEXT->PARSED->TEXT expectations]
  [see test-http-header for beginnings]
- GskHook recursion tests [test various reentrance conditions]
- see the 'coverage' file output by utils/get-coverage.
- test code for gskxmlrpcstream
