]> git.r.bdr.sh - rbdr/mobius/commitdiff
Add downloads as well
authorRuben Beltran del Rio <redacted>
Tue, 4 Feb 2025 10:08:37 +0000 (11:08 +0100)
committerRuben Beltran del Rio <redacted>
Tue, 4 Feb 2025 10:08:37 +0000 (11:08 +0100)
internal/mobius/friendship_quest_file_extensions.go
internal/mobius/transaction_handlers.go

index 1ef8ad6a4d26a55bf42f802a6a5e40ba192c060f..f04868c75db2346f18116053ef9907de2aa204e6 100644 (file)
@@ -165,9 +165,39 @@ func HandleDeleteFileWithUserFolders(cc *hotline.ClientConn, t *hotline.Transact
 
        resolvedPath, err := ResolveUserPath(cc, requestedPath[len(cc.FileRoot())+1:])
        if err != nil {
 
        resolvedPath, err := ResolveUserPath(cc, requestedPath[len(cc.FileRoot())+1:])
        if err != nil {
-               return cc.NewErrReply(t, "Cannot upload to non-existent user folder.")
+               return cc.NewErrReply(t, "Cannot delete non-existent file.")
        }
 
        updateTransactionPath(t, resolvedPath)
        }
 
        updateTransactionPath(t, resolvedPath)
-       return HandleUploadFolder(cc, t)
+       return HandleDeleteFile(cc, t)
+}
+
+func HandleDownloadFileWithUserFolders(cc *hotline.ClientConn, t *hotline.Transaction) (res []hotline.Transaction) {
+       requestedPath, err := hotline.ReadPath(cc.FileRoot(), t.GetField(hotline.FieldFilePath).Data, nil)
+       if err != nil {
+               return res
+       }
+
+       resolvedPath, err := ResolveUserPath(cc, requestedPath[len(cc.FileRoot())+1:])
+       if err != nil {
+               return cc.NewErrReply(t, "Cannot download non-existent user file.")
+       }
+
+       updateTransactionPath(t, resolvedPath)
+       return HandleDownloadFile(cc, t)
+}
+
+func HandleDownloadFolderWithUserFolders(cc *hotline.ClientConn, t *hotline.Transaction) (res []hotline.Transaction) {
+       requestedPath, err := hotline.ReadPath(cc.FileRoot(), t.GetField(hotline.FieldFilePath).Data, nil)
+       if err != nil {
+               return res
+       }
+
+       resolvedPath, err := ResolveUserPath(cc, requestedPath[len(cc.FileRoot())+1:])
+       if err != nil {
+               return cc.NewErrReply(t, "Cannot download non-existent user folder.")
+       }
+
+       updateTransactionPath(t, resolvedPath)
+       return HandleDownloadFolder(cc, t)
 }
 }
index 32535b296349d9dab4eac155a56e9200cb6058b0..645121228f984ba1e1bb7c5081240fb37577a38a 100644 (file)
@@ -31,8 +31,8 @@ func RegisterHandlers(srv *hotline.Server) {
        srv.HandleFunc(hotline.TranDeleteFile, HandleDeleteFileWithUserFolders)
        srv.HandleFunc(hotline.TranDeleteUser, HandleDeleteUser)
        srv.HandleFunc(hotline.TranDisconnectUser, HandleDisconnectUser)
        srv.HandleFunc(hotline.TranDeleteFile, HandleDeleteFileWithUserFolders)
        srv.HandleFunc(hotline.TranDeleteUser, HandleDeleteUser)
        srv.HandleFunc(hotline.TranDisconnectUser, HandleDisconnectUser)
-       srv.HandleFunc(hotline.TranDownloadFile, HandleDownloadFile)
-       srv.HandleFunc(hotline.TranDownloadFldr, HandleDownloadFolder)
+       srv.HandleFunc(hotline.TranDownloadFile, HandleDownloadFileWithUserFolders)
+       srv.HandleFunc(hotline.TranDownloadFldr, HandleDownloadFolderWithUserFolders)
        srv.HandleFunc(hotline.TranGetClientInfoText, HandleGetClientInfoText)
        srv.HandleFunc(hotline.TranGetFileInfo, HandleGetFileInfo)
        srv.HandleFunc(hotline.TranGetFileNameList, HandleGetFileNameListWithUserFolders)
        srv.HandleFunc(hotline.TranGetClientInfoText, HandleGetClientInfoText)
        srv.HandleFunc(hotline.TranGetFileInfo, HandleGetFileInfo)
        srv.HandleFunc(hotline.TranGetFileNameList, HandleGetFileNameListWithUserFolders)