- if err := os.Mkdir(newFolderPath, 0777); err != nil {
- // TODO: Send error response to client
- return []Transaction{}, err
+ // TODO: check path and folder name lengths
+
+ if _, err := FS.Stat(newFolderPath); !os.IsNotExist(err) {
+ msg := fmt.Sprintf("Cannot create folder \"%s\" because there is already a file or folder with that name.", folderName)
+ return []Transaction{cc.NewErrReply(t, msg)}, nil
+ }
+
+ // TODO: check for disallowed characters to maintain compatibility for original client
+
+ if err := FS.Mkdir(newFolderPath, 0777); err != nil {
+ msg := fmt.Sprintf("Cannot create folder \"%s\" because an error occurred.", folderName)
+ return []Transaction{cc.NewErrReply(t, msg)}, nil