openidec

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit bfdeead859aab5299c2721cf9b2444ce5f89ab2a
parent 83c57e6a164b9ab3867b6ecb03e92dd3022ebefb
Author: vasyahacker <vasyahacker@noreply.git.openbsd.org.ru>
Date:   Tue,  4 Apr 2023 18:30:41 +0300

Merge pull request 'lint' (#2) from ptr_rzmv/openidec:lint into master

Reviewed-on: https://git.openbsd.org.ru/vasyahacker/openidec/pulls/2

Diffstat:
Mcmd/idecctl/main.go | 22++++++++++++++++------
Mcmd/idecd/main.go | 24++++++++++++++++--------
Mcmd/idecd/web.go | 29+++++++++++++++++++++--------
Mcmd/idecgmi/main.go | 4+++-
Mcontrib/secure/main.go | 4+++-
Mii/db.go | 18++++++++++++++----
Mii/msg.go | 4+++-
Mii/msg_test.go | 7+++----
Mii/net.go | 4+++-
9 files changed, 82 insertions(+), 34 deletions(-)

diff --git a/cmd/idecctl/main.go b/cmd/idecctl/main.go @@ -107,7 +107,10 @@ Options: db := open_db(*db_opt) db.Lock() defer db.Unlock() - db.LoadIndex() + if err := db.LoadIndex(); err != nil { + fmt.Printf("Can not load index: %s\n", err) + os.Exit(1) + } for _, v := range db.Idx.List { if echo != "" { mi := db.Idx.Hash[v] @@ -196,6 +199,10 @@ Options: } return true }) + if err != nil { + fmt.Printf("Error: %s\n", err) + os.Exit(1) + } fmt.Printf("%d lines... %d dups...\n", nr, dup) if dup == 0 { os.Exit(0) @@ -241,19 +248,19 @@ Options: } hash[id] += 1 if hash[id] > 0 { - fmt.Printf("Error. DB has changed. Aborted.\n") + fmt.Println("Error. DB has changed. Aborted.") os.Exit(1) } return true }) f.Close() if err != nil { - fmt.Printf("Error: %s\n") + fmt.Println("Error:", err) os.Exit(1) } for _, v := range hash { if v != 0 { - fmt.Printf("Error. DB shrinked. Aborted.\n") + fmt.Println("Error. DB shrinked. Aborted.") os.Exit(1) } } @@ -261,7 +268,7 @@ Options: case "fetch": var echolist []string if len(args) < 2 { - fmt.Printf("No url supplied\n") + fmt.Println("No url supplied") os.Exit(1) } db := open_db(*db_opt) @@ -392,7 +399,10 @@ Options: } case "sort": db := open_db(*db_opt) - db.LoadIndex() + if err := db.LoadIndex(); err != nil { + fmt.Printf("Can not load index: %s\n", err) + os.Exit(1) + } scanner := bufio.NewScanner(os.Stdin) var mm []*ii.Msg for scanner.Scan() { diff --git a/cmd/idecd/main.go b/cmd/idecd/main.go @@ -24,7 +24,11 @@ func open_db(path string) *ii.DB { } func PointMsg(edb *ii.EDB, db *ii.DB, udb *ii.UDB, pauth string, tmsg string) string { - udb.LoadUsers() + err := udb.LoadUsers() + if err != nil { + ii.Error.Printf("Error loading users: %s", err) + return err.Error() + } if !udb.Access(pauth) { ii.Info.Printf("Access denied for pauth: %s", pauth) @@ -33,24 +37,24 @@ func PointMsg(edb *ii.EDB, db *ii.DB, udb *ii.UDB, pauth string, tmsg string) st m, err := ii.DecodeMsgline(tmsg, true) if err != nil { ii.Error.Printf("Receive point msg: %s", err) - return fmt.Sprintf("%s", err) + return err.Error() } if r, _ := m.Tag("repto"); r != "" { if db.Lookup(r) == nil { ii.Error.Printf("Receive point msg with wrong repto.") - return fmt.Sprintf("Receive point msg with wrong repto.") + return "Receive point msg with wrong repto." } } if !edb.Allowed(m.Echo) { ii.Error.Printf("This echo is disallowed") - return fmt.Sprintf("This echo is disallowed") + return "This echo is disallowed" } m.From = udb.Name(pauth) m.Addr = fmt.Sprintf("%s,%d", db.Name, udb.Id(pauth)) if err := db.Store(m); err != nil { ii.Error.Printf("Store point msg: %s", err) - return fmt.Sprintf("%s", err) + return err.Error() } return "msg ok" } @@ -165,7 +169,11 @@ func main() { var pauth, tmsg string switch r.Method { case "GET": - udb.LoadUsers() + err := udb.LoadUsers() + if err != nil { + ii.Error.Printf("Error loaging users: %s", err) + return + } args := strings.Split(r.URL.Path[9:], "/") if len(args) >= 3 && args[1] == "u" { @@ -206,7 +214,7 @@ func main() { return } ii.Info.Printf("/u/point/%s/%s GET request", pauth, tmsg) - fmt.Fprintf(w, PointMsg(edb, db, udb, pauth, tmsg)) + fmt.Fprint(w, PointMsg(edb, db, udb, pauth, tmsg)) }) http.HandleFunc("/u/point", func(w http.ResponseWriter, r *http.Request) { var pauth, tmsg string @@ -222,7 +230,7 @@ func main() { return } ii.Info.Printf("/u/point/%s/%s POST request", pauth, tmsg) - fmt.Fprintf(w, PointMsg(edb, db, udb, pauth, tmsg)) + fmt.Fprint(w, PointMsg(edb, db, udb, pauth, tmsg)) }) http.HandleFunc("/x/c/", func(w http.ResponseWriter, r *http.Request) { enames := strings.Split(r.URL.Path[5:], "/") diff --git a/cmd/idecd/web.go b/cmd/idecd/web.go @@ -268,7 +268,9 @@ func www_avatar(ctx *WebContext, w http.ResponseWriter, r *http.Request, user st } b64 := base64.URLEncoding.EncodeToString([]byte(ava)) ii.Trace.Printf("New avatar for %s: %s", ctx.User.Name, b64) - ctx.User.Tags.Add("avatar/" + b64) + if err := ctx.User.Tags.Add("avatar/" + b64); err != nil { + return err + } } if err := ctx.www.udb.Edit(ctx.User); err != nil { ii.Error.Printf("Error saving avatar: " + user) @@ -444,7 +446,9 @@ func www_topics(ctx *WebContext, w http.ResponseWriter, r *http.Request, page in db.Sync.RLock() defer db.Sync.RUnlock() - db.LoadIndex() + if err := db.LoadIndex(); err != nil { + return err + } for _, t := range topicsIds { topic := Topic{} topic.Ids = t @@ -637,7 +641,9 @@ func www_new(ctx *WebContext, w http.ResponseWriter, r *http.Request) error { m.From = ctx.User.Name m.Addr = fmt.Sprintf("%s,%d", ctx.www.db.Name, ctx.User.Id) if repto != "" { - m.Tags.Add("repto/" + repto) + if err := m.Tags.Add("repto/" + repto); err != nil { + return err + } } if id != "" { om := ctx.www.db.Get(id) @@ -684,7 +690,9 @@ func www_reply(ctx *WebContext, w http.ResponseWriter, r *http.Request, quote bo msg := *m msg.To = msg.From msg.Subj = "Re: " + strings.TrimPrefix(msg.Subj, "Re: ") - msg.Tags.Add("repto/" + id) + if err := msg.Tags.Add("repto/" + id); err != nil { + return err + } if quote { msg.Text = msg_quote(msg.Text, msg.From) } else { @@ -861,7 +869,6 @@ func msg_trunc(m *ii.Msg, maxlen int, more string) string { } } if pre { - pre = false f += "</pre>\n" } return f @@ -920,7 +927,10 @@ func WebInit(www *WWW) { func handleErr(ctx *WebContext, w http.ResponseWriter, err error) { ctx.Error = err.Error() ctx.Template = "error.tpl" - ctx.www.tpl.ExecuteTemplate(w, "error.tpl", ctx) + if err := ctx.www.tpl.ExecuteTemplate(w, "error.tpl", ctx); err != nil { + // FIXME: correctly handle this error + panic(err) + } } func handleWWW(www *WWW, w http.ResponseWriter, r *http.Request) { @@ -930,8 +940,11 @@ func handleWWW(www *WWW, w http.ResponseWriter, r *http.Request) { ctx.www = www ctx.Sysname = www.db.Name ctx.Host = www.Host - www.udb.LoadUsers() - err := _handleWWW(&ctx, w, r) + err := www.udb.LoadUsers() + if err != nil { + handleErr(&ctx, w, err) + } + err = _handleWWW(&ctx, w, r) if err != nil { handleErr(&ctx, w, err) } diff --git a/cmd/idecgmi/main.go b/cmd/idecgmi/main.go @@ -135,7 +135,9 @@ Options: db := open_db(*db_opt) db.Lock() defer db.Unlock() - db.LoadIndex() + if err := db.LoadIndex(); err != nil { + return + } scanner := bufio.NewScanner(os.Stdin) var mis []*ii.Msg diff --git a/contrib/secure/main.go b/contrib/secure/main.go @@ -64,5 +64,7 @@ func main() { log.Printf("listen-addr=%s upstream-url=%s", srv.Addr, u.String()) - srv.ListenAndServeTLS("", "") + if err := srv.ListenAndServeTLS("", ""); err != nil { + log.Fatal(err) + } } diff --git a/ii/db.go b/ii/db.go @@ -112,7 +112,7 @@ func (db *DB) IndexPath() string { // Return path to database itself func (db *DB) BundlePath() string { - return fmt.Sprintf("%s", db.Path) + return db.Path } // Returns path to lock. @@ -196,8 +196,13 @@ func (db *DB) _CreateIndex() error { if v, _ := msg.Tag("access"); v == "blacklist" { ioff = -1 } - fidx.WriteString(fmt.Sprintf("%s:%s:%d:%s:%s:%s\n", + + _, err := fidx.WriteString(fmt.Sprintf("%s:%s:%d:%s:%s:%s\n", msg.MsgId, msg.Echo, ioff, msg.To, msg.From, repto)) + if err != nil { + // FIXME: handle this error + panic(err) + } off += int64(len(line) + 1) return true }) @@ -699,7 +704,10 @@ func (db *DB) GetTopics(mi []*MsgInfo) map[string][]string { intopic := make(map[string]string) topics := make(map[string][]string) - db.LoadIndex() + if err := db.LoadIndex(); err != nil { + // FIXME: handle this error + panic(err) + } for _, m := range mi { if _, ok := intopic[m.Id]; ok { continue @@ -778,7 +786,9 @@ func (db *DB) Edit(m *Msg) error { // to store it in DB. While loading index, blacklisted messages // are marked by negative Off field (-1). func (db *DB) Blacklist(m *Msg) error { - m.Tags.Add("access/blacklist") + if err := m.Tags.Add("access/blacklist"); err != nil { + return err + } return db.Edit(m) //db.Sync.Lock() diff --git a/ii/msg.go b/ii/msg.go @@ -129,7 +129,9 @@ func DecodeMsgline(msg string, enc bool) (*Msg, error) { if strings.HasPrefix(repto, "@repto:") { start += 1 repto = strings.Trim(strings.Split(repto, ":")[1], " ") - m.Tags.Add("repto/" + repto) + if err := m.Tags.Add("repto/" + repto); err != nil { + return nil, err + } Trace.Printf("Add repto tag: %s", repto) } for i := start; i < len(text); i++ { diff --git a/ii/msg_test.go b/ii/msg_test.go @@ -18,10 +18,9 @@ var Test_msg string = "a5OX4lC8uB8OIzzzGQ5B:" + "LouINCd0L4sINC60L7QvdC10YfQvdC+LCDQsdCw0LPQuCDQvNC+0LPRg9GCINCx0YvRgtGMLg==" func TestParse(t *testing.T) { - var m *Msg - m, _ = DecodeBundle(Test_msg) - if m == nil { - t.Error("Can not decode msg") + m, err := DecodeBundle(Test_msg) + if err != nil { + t.Errorf("Can not decode msg: %s", err) } text := m.MsgId + ":" + m.Encode() decoded, _ := base64.StdEncoding.DecodeString(text) diff --git a/ii/net.go b/ii/net.go @@ -143,7 +143,9 @@ func (n *Node) Fetcher(db *DB, Echo string, limit int, wait *sync.WaitGroup, con }); err != nil { return } - n.Store(db, res) + + // FIXME: handle this error + _ = n.Store(db, res) } // Do not run more then MaxConnections goroutines in the same time