Compare commits

..

8 Commits

Author SHA1 Message Date
bel
cfd1a177dd ensure http bodies closed, matrix client some kinda closed 2022-03-16 16:42:25 -06:00
bel
db1838b3ab up matrix timeout in http client 2022-02-25 21:59:54 -07:00
bel
ec030676ea update image with not avail over del 2022-02-24 09:26:45 -07:00
Bel LaPointe
3b4dd1ba70 do not delete old jobs text 2022-02-24 09:23:22 -07:00
bel
003ffb1231 bad matrix cert ok 2022-02-02 07:12:18 -07:00
bel
cdabce7a56 SH 2022-01-31 09:35:56 -07:00
bel
0ab534624a NO 2022-01-31 09:31:40 -07:00
bel
b3ce49788b little 2022-01-30 08:43:57 -07:00
5 changed files with 42 additions and 11 deletions

View File

@@ -87,7 +87,7 @@ func (fe FastExact) _login(username, password string, db storage.DB) error {
return err return err
} }
b, _ := ioutil.ReadAll(resp.Body) b, _ := ioutil.ReadAll(resp.Body)
resp.Body.Close() defer resp.Body.Close()
if resp.StatusCode != http.StatusOK { if resp.StatusCode != http.StatusOK {
return fmt.Errorf("bad status logging into fast exact: %d: %s", resp.StatusCode, b) return fmt.Errorf("bad status logging into fast exact: %d: %s", resp.StatusCode, b)
@@ -152,6 +152,7 @@ func (fe FastExact) searchOneZip(zip string) ([]Job, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer resp.Body.Close()
return fe.parse(resp) return fe.parse(resp)
} }
@@ -165,6 +166,7 @@ func (fe FastExact) searchOneState(state config.State) ([]Job, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer resp.Body.Close()
return fe.parse(resp) return fe.parse(resp)
} }

View File

@@ -374,6 +374,9 @@ func (ntg NTGVision) _searchStates(states []config.State) (io.ReadCloser, error)
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer resp.Body.Close()
b, _ := ioutil.ReadAll(resp.Body)
resp.Body = io.NopCloser(bytes.NewReader(b))
if resp.StatusCode != http.StatusOK { if resp.StatusCode != http.StatusOK {
b, _ := ioutil.ReadAll(resp.Body) b, _ := ioutil.ReadAll(resp.Body)
resp.Body.Close() resp.Body.Close()

17
main.go
View File

@@ -126,7 +126,9 @@ func matrixrecv() error {
logtr.Errorf("failed to mark state gathered @%s: %v", key, err) logtr.Errorf("failed to mark state gathered @%s: %v", key, err)
} }
} }
setNewZips(zips) if config.Get().Brokers.UseZips {
setNewZips(zips)
}
}() }()
func() { func() {
logtr.Verbosef("looking for states") logtr.Verbosef("looking for states")
@@ -150,7 +152,9 @@ func matrixrecv() error {
logtr.Errorf("failed to mark state gathered @%s: %v", key, err) logtr.Errorf("failed to mark state gathered @%s: %v", key, err)
} }
} }
setNewStates(states) if !config.Get().Brokers.UseZips {
setNewStates(states)
}
}() }()
func() { func() {
logtr.Verbosef("looking for radius") logtr.Verbosef("looking for radius")
@@ -371,7 +375,7 @@ func __main() error {
logtr.Errorf("failed _main: %v", err) logtr.Errorf("failed _main: %v", err)
} }
if config.Get().Once { if config.Get().Once {
time.Sleep(3 * time.Second) time.Sleep(10 * time.Second)
return err return err
} }
if err != nil { if err != nil {
@@ -522,15 +526,12 @@ func updateDeadJobs(jobs []broker.Job) error {
return err return err
} }
*/ */
if err := message.NewMatrix().Remove(recorded.MatrixID); err != nil {
logtr.Debugf("failed to remove matrix: %v: %v", recorded.MatrixID, err)
}
if err := db.Set(listEntry, nil); err != nil { if err := db.Set(listEntry, nil); err != nil {
logtr.Debugf("failed to remove db: %v: %v", listEntry, err) logtr.Debugf("failed to remove db: %v: %v", listEntry, err)
} }
for _, imageid := range recorded.MatrixImageIDs { for _, imageid := range recorded.MatrixImageIDs {
if err := message.NewMatrix().Remove(imageid); err != nil { if err := message.NewMatrix().Update(imageid, "<job no longer available>"); err != nil {
logtr.Debugf("failed to remove matrix image: %v: %v", imageid, err) logtr.Debugf("failed to update matrix image: %v: %v", imageid, err)
} }
} }
} }

View File

@@ -64,7 +64,7 @@ func uploadImage(b []byte) (string, error) {
request.Header.Set("Authorization", "Bearer "+images.AccessToken) request.Header.Set("Authorization", "Bearer "+images.AccessToken)
request.Header.Set("Content-Type", writer.FormDataContentType()) request.Header.Set("Content-Type", writer.FormDataContentType())
c := &http.Client{Timeout: time.Minute} c := &http.Client{Timeout: time.Minute * 5}
response, err := c.Do(request) response, err := c.Do(request)
if err != nil { if err != nil {
return "", err return "", err

View File

@@ -2,6 +2,7 @@ package message
import ( import (
"bytes" "bytes"
"crypto/tls"
"fmt" "fmt"
"io/ioutil" "io/ioutil"
"local/truckstop/config" "local/truckstop/config"
@@ -44,8 +45,27 @@ func newMatrix(conf config.Matrix, cont string) Matrix {
} }
} }
func (m Matrix) closeclient(client *gomatrix.Client) {
go func() {
client.StopSync()
client.Logout()
}()
}
func (m Matrix) getclient() (*gomatrix.Client, error) { func (m Matrix) getclient() (*gomatrix.Client, error) {
return gomatrix.NewClient(m.homeserver, m.username, m.token) client, err := gomatrix.NewClient(m.homeserver, m.username, m.token)
if err != nil {
return nil, err
}
client.Client = &http.Client{
Timeout: time.Minute * 5,
Transport: &http.Transport{
TLSClientConfig: &tls.Config{
InsecureSkipVerify: true,
},
},
}
return client, nil
} }
func (m Matrix) Continuation() string { func (m Matrix) Continuation() string {
@@ -79,6 +99,7 @@ func (m *Matrix) Receive() ([]Message, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
defer m.closeclient(c)
messages := make([]Message, 0) messages := make([]Message, 0)
result, err := c.Messages(m.room, "999999999999999999", m.Continuation(), 'b', 50) result, err := c.Messages(m.room, "999999999999999999", m.Continuation(), 'b', 50)
if err != nil { if err != nil {
@@ -134,6 +155,7 @@ func (m Matrix) Remove(id string) error {
if err != nil { if err != nil {
return err return err
} }
defer m.closeclient(c)
_, err = c.RedactEvent(m.room, id, &gomatrix.ReqRedact{Reason: "stale"}) _, err = c.RedactEvent(m.room, id, &gomatrix.ReqRedact{Reason: "stale"})
return err return err
} }
@@ -147,6 +169,7 @@ func (m Matrix) Update(id, text string) error {
if err != nil { if err != nil {
return err return err
} }
defer m.closeclient(c)
type MRelatesTo struct { type MRelatesTo struct {
EventID string `json:"event_id"` EventID string `json:"event_id"`
RelType string `json:"rel_type"` RelType string `json:"rel_type"`
@@ -190,6 +213,7 @@ func (m Matrix) SendTracked(text string) (string, error) {
if err != nil { if err != nil {
return "", err return "", err
} }
defer m.closeclient(c)
resp, err := c.SendText(m.room, text) resp, err := c.SendText(m.room, text)
if err != nil { if err != nil {
return "", err return "", err
@@ -225,6 +249,7 @@ func (m Matrix) SendImageTracked(uri string) (string, error) {
if err != nil { if err != nil {
return "", err return "", err
} }
defer m.closeclient(c)
mediaUpload, err := c.UploadToContentRepo(bytes.NewReader(b), "image/jpeg", int64(len(b))) mediaUpload, err := c.UploadToContentRepo(bytes.NewReader(b), "image/jpeg", int64(len(b)))
if err != nil { if err != nil {
return "", err return "", err