Patch title: Release 92 bulk changes
Abstract:
File: /util/crypto/synchronize.pli
Key:
    Removed line
    Added line
   
module "/pliant/language/unsafe.pli"
module "/pliant/admin/file.pli"
module "/pliant/language/stream/filesystembase.pli"


module "/pliant/language/unsafe.pli"
module "/pliant/admin/file.pli"
module "/pliant/language/stream/filesystembase.pli"


function build_url site path user password -> url
function file_url site path user password -> url
  arg Str site path user password url
  if site<>""
    if not (site parse any:(var Str host) ":" (var Int port)
      host := site
      var Data:NameHost h :> name_database:data:host site
      if exists:h
        port := h http_port
      else
        var Data:Site s :> site_database:data:site site
        if exists:s and s:port=defined
          port := s port
        else
          port := 80
    if (path parse "/" any:(var Str subpath))
      url := "http://"+host+"/pliant/browse/file/"+subpath
    eif (path parse "file:/" any:(var Str subpath))
      url := "http://"+host+"/pliant/browse/system_file/"+su
    eif (path parse "embedded:/" any:(var Str subpath))
      url := "http://"+host+"/pliant/browse/system_file/debi
    else
      return ""
    url := string:url+" channel "+(string "channel://"+host+
  else
    url := path
  
method page file_tree_synchronize src_site src_path dest_sit
  arg_rw HtmlPage page ; arg Str src_site src_path dest_site
  if user_secret_database:data:user:user:key_md5<>"" and use
    page text "Password for '"+user+"' is wrong."
    return failure
  arg Str site path user password url
  if site<>""
    if not (site parse any:(var Str host) ":" (var Int port)
      host := site
      var Data:NameHost h :> name_database:data:host site
      if exists:h
        port := h http_port
      else
        var Data:Site s :> site_database:data:site site
        if exists:s and s:port=defined
          port := s port
        else
          port := 80
    if (path parse "/" any:(var Str subpath))
      url := "http://"+host+"/pliant/browse/file/"+subpath
    eif (path parse "file:/" any:(var Str subpath))
      url := "http://"+host+"/pliant/browse/system_file/"+su
    eif (path parse "embedded:/" any:(var Str subpath))
      url := "http://"+host+"/pliant/browse/system_file/debi
    else
      return ""
    url := string:url+" channel "+(string "channel://"+host+
  else
    url := path
  
method page file_tree_synchronize src_site src_path dest_sit
  arg_rw HtmlPage page ; arg Str src_site src_path dest_site
  if user_secret_database:data:user:user:key_md5<>"" and use
    page text "Password for '"+user+"' is wrong."
    return failure
  var Str src_url := build_url src_site src_path user passwo
  var Str src_url := file_url src_site src_path user password
  if src_url=""
    page text "I don't know how to access "+src_path+" on "+
    return failure
  if src_url=""
    page text "I don't know how to access "+src_path+" on "+
    return failure
  var Str dest_url := build_url dest_site dest_path user pas
  var Str dest_url := file_url dest_site dest_path user password
  if dest_url=""
    page text "I don't know how to access "+dest_path+" on "
    return failure
  status := page file_tree_synchronize src_url dest_url opti


  if dest_url=""
    page text "I don't know how to access "+dest_path+" on "
    return failure
  status := page file_tree_synchronize src_url dest_url opti


export '. file_tree_synchronize'
export '. file_tree_synchronize' file_url