Add Trusted-LAN LocalSend receiver on NOMAD
This commit is contained in:
92
localsend-nomad/patches/localsend-cli-doris.patch
Normal file
92
localsend-nomad/patches/localsend-cli-doris.patch
Normal file
@@ -0,0 +1,92 @@
|
||||
diff --git a/internal/localsend/localsend.go b/internal/localsend/localsend.go
|
||||
index e30e6f5..c0c2b8e 100644
|
||||
--- a/internal/localsend/localsend.go
|
||||
+++ b/internal/localsend/localsend.go
|
||||
@@ -2,6 +2,7 @@ package localsend
|
||||
|
||||
import (
|
||||
"encoding/json"
|
||||
+ "fmt"
|
||||
"net"
|
||||
|
||||
"github.com/0w0mewo/localsend-cli/internal/localsend/constants"
|
||||
@@ -13,41 +14,53 @@ import (
|
||||
func GetDeviceInfo(ip string, https bool) (models.DeviceInfo, error) {
|
||||
remoteAddr := net.JoinHostPort(ip, "53317")
|
||||
|
||||
- agent := fiber.AcquireAgent()
|
||||
- defer fiber.ReleaseAgent(agent)
|
||||
-
|
||||
scheme := "http"
|
||||
if https {
|
||||
scheme = "https"
|
||||
}
|
||||
|
||||
- req := agent.Request()
|
||||
- req.URI().SetScheme(scheme)
|
||||
- req.URI().SetHost(remoteAddr)
|
||||
- req.URI().SetPath(constants.InfoPath)
|
||||
- req.Header.SetMethod(fiber.MethodGet)
|
||||
- err := agent.Parse()
|
||||
- if err != nil {
|
||||
- return models.DeviceInfo{}, err
|
||||
- }
|
||||
+ paths := []string{constants.InfoPath, "/api/localsend/v2/info", constants.InfoPathLegacy}
|
||||
+ var lastErr error
|
||||
|
||||
- status, b, errs := agent.InsecureSkipVerify().Bytes()
|
||||
- if len(errs) != 0 {
|
||||
- return models.DeviceInfo{}, errs[0]
|
||||
- }
|
||||
- err = constants.ParseError(status)
|
||||
- if err != nil {
|
||||
- return models.DeviceInfo{}, err
|
||||
- }
|
||||
+ for _, path := range paths {
|
||||
+ agent := fiber.AcquireAgent()
|
||||
+ req := agent.Request()
|
||||
+ req.URI().SetScheme(scheme)
|
||||
+ req.URI().SetHost(remoteAddr)
|
||||
+ req.URI().SetPath(path)
|
||||
+ req.Header.SetMethod(fiber.MethodGet)
|
||||
+ err := agent.Parse()
|
||||
+ if err != nil {
|
||||
+ fiber.ReleaseAgent(agent)
|
||||
+ return models.DeviceInfo{}, err
|
||||
+ }
|
||||
|
||||
- var res models.DeviceInfo
|
||||
- err = json.Unmarshal(b, &res)
|
||||
- if err != nil {
|
||||
- return models.DeviceInfo{}, err
|
||||
+ status, b, errs := agent.InsecureSkipVerify().Bytes()
|
||||
+ fiber.ReleaseAgent(agent)
|
||||
+ if len(errs) != 0 {
|
||||
+ lastErr = errs[0]
|
||||
+ continue
|
||||
+ }
|
||||
+ err = constants.ParseError(status)
|
||||
+ if err != nil {
|
||||
+ lastErr = err
|
||||
+ continue
|
||||
+ }
|
||||
+
|
||||
+ var res models.DeviceInfo
|
||||
+ err = json.Unmarshal(b, &res)
|
||||
+ if err != nil {
|
||||
+ lastErr = err
|
||||
+ continue
|
||||
+ }
|
||||
+ res.IP = ip
|
||||
+ return res, nil
|
||||
}
|
||||
- res.IP = ip
|
||||
|
||||
- return res, nil
|
||||
+ if lastErr == nil {
|
||||
+ lastErr = fmt.Errorf("device info not found on known endpoints")
|
||||
+ }
|
||||
+ return models.DeviceInfo{}, lastErr
|
||||
}
|
||||
|
||||
func NewFileSender(useDownloadAPI ...bool) send.FileSender {
|
||||
Reference in New Issue
Block a user