Skip to content

Commit 7b25a01

Browse files
Gustedwxiaoguangzeripath
authored
Only request write when necessary (#18657)
* Only request write when necessary - Only request write for `INTERNAL_TOKEN_URI` when no token was found. - Resolves #18655 * Fix perm * Update setting.go * Update setting.go * Update setting.go Co-authored-by: wxiaoguang <[email protected]> Co-authored-by: zeripath <[email protected]>
1 parent 8422b1c commit 7b25a01

File tree

1 file changed

+4
-11
lines changed

1 file changed

+4
-11
lines changed

modules/setting/setting.go

+4-11
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,6 @@ package setting
88
import (
99
"encoding/base64"
1010
"fmt"
11-
"io"
1211
"math"
1312
"net"
1413
"net/url"
@@ -1082,28 +1081,22 @@ func loadInternalToken(sec *ini.Section) string {
10821081
}
10831082
switch tempURI.Scheme {
10841083
case "file":
1085-
fp, err := os.OpenFile(tempURI.RequestURI(), os.O_RDWR, 0o600)
1086-
if err != nil {
1084+
buf, err := os.ReadFile(tempURI.RequestURI())
1085+
if err != nil && !os.IsNotExist(err) {
10871086
log.Fatal("Failed to open InternalTokenURI (%s): %v", uri, err)
10881087
}
1089-
defer fp.Close()
1090-
1091-
buf, err := io.ReadAll(fp)
1092-
if err != nil {
1093-
log.Fatal("Failed to read InternalTokenURI (%s): %v", uri, err)
1094-
}
10951088
// No token in the file, generate one and store it.
10961089
if len(buf) == 0 {
10971090
token, err := generate.NewInternalToken()
10981091
if err != nil {
10991092
log.Fatal("Error generate internal token: %v", err)
11001093
}
1101-
if _, err := io.WriteString(fp, token); err != nil {
1094+
err = os.WriteFile(tempURI.RequestURI(), []byte(token), 0o600)
1095+
if err != nil {
11021096
log.Fatal("Error writing to InternalTokenURI (%s): %v", uri, err)
11031097
}
11041098
return token
11051099
}
1106-
11071100
return strings.TrimSpace(string(buf))
11081101
default:
11091102
log.Fatal("Unsupported URI-Scheme %q (INTERNAL_TOKEN_URI = %q)", tempURI.Scheme, uri)

0 commit comments

Comments
 (0)