/*
-SGBlog -- Git-backed CGI/inetd blogging/phlogging engine
-Copyright (C) 2020-2021 Sergey Matveev <stargrave@stargrave.org>
+SGBlog -- Git-backed CGI/UCSPI blogging/phlogging/gemlogging engine
+Copyright (C) 2020-2023 Sergey Matveev <stargrave@stargrave.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-// Git-backed CGI/inetd blogging/phlogging engine
+// Git-backed CGI/UCSPI blogging/phlogging/gemlogging engine
package main
import (
"encoding/hex"
"flag"
"fmt"
- "io/ioutil"
+ "io"
"log"
"mime"
"net/mail"
}
syscall.Umask(int(umaskInt))
- msg, err := mail.ReadMessage(os.Stdin)
+ data, err := io.ReadAll(os.Stdin)
+ if err != nil {
+ log.Fatal(err)
+ }
+ if bytes.HasPrefix(data, []byte("From ")) {
+ data = data[bytes.Index(data, []byte("\n"))+1:]
+ }
+ msg, err := mail.ReadMessage(bytes.NewReader(data))
if err != nil {
log.Fatal(err)
}
if err != nil {
log.Fatal(err)
}
- body, err := ioutil.ReadAll(r)
+ body, err := io.ReadAll(r)
if err != nil {
log.Fatal(err)
}
log.Fatal(err)
}
if _, err = recfileW.WriteFields(
- recfile.Field{"From", from},
- recfile.Field{"Date", time.Now().UTC().Format(sgblog.WhenFmt)},
+ recfile.Field{Name: "From", Value: from},
+ recfile.Field{Name: "Date", Value: time.Now().UTC().Format(sgblog.WhenFmt)},
); err != nil {
log.Fatal(err)
}