}
return os.RemoveAll(full_path)
}
+
+func Move(source string, target string) os.Error {
+ source = canonicalizePath(source)
+ target = canonicalizePath(target)
+ if !checkInJail(source) {
+ return os.NewError("Source outside of jail")
+ }
+ if !checkInJail(target) {
+ return os.NewError("Target outside of jail")
+ }
+ return os.Rename(source, target)
+}
}
okResponse(connection, response)
}
+ case "move":
+ source := request.FormValue("source")
+ target := request.FormValue("target")
+ err := paths.Move(source, target)
+ if err != nil {
+ errorResponse(connection, err.String())
+ } else {
+ response := map[string] string {
+ "path" : target,
+ }
+ okResponse(connection, response)
+ }
default:
errorResponse(connection, "Unhandled action")
}