if strings.Contains(checkFile,"https://") {
Logf().I("[wait]checkFile: Getting checkfile...")
- var r = ReqfVal {
+ var r = Rval {
Url:checkFile,
Timeout:6,
Retry:2,
}
- b,_,e:=Reqf(r)
+ b,_,e:=Req().Reqf(r)
if e != nil {
Logf().E("[err]checkFile:",checkFile,e.Error())
return false
package part
import (
+ "sync"
"io"
"os"
"time"
"encoding/binary"
)
-type ReqfVal struct {
+type Rval struct {
Url string
Timeout int
Referer string
SaveToPath string
}
+type req struct {
+ sync.Mutex
+}
+
+func Req() *req{
+ return &req{}
+}
+
// func main(){
// var _ReqfVal = ReqfVal{
// Url:url,
// Reqf(_ReqfVal)
// }
-func Reqf(val ReqfVal) ([]byte,time.Duration,error) {
+func (this *req) Reqf(val Rval) ([]byte,time.Duration,error) {
+ this.Lock()
+ defer this.Unlock()
+
var (
returnVal []byte
returnTime time.Duration
returnErr error
)
- var _val ReqfVal = val;
+ _val := val;
if _val.Timeout==0{_val.Timeout=3}
for ;_val.Retry>=0;_val.Retry-- {
- returnVal,returnTime,returnErr=Reqf_1(_val)
+ returnVal,returnTime,returnErr=this.Reqf_1(_val)
if returnErr==nil {break}
}
return returnVal,returnTime,returnErr
}
-func Reqf_1(val ReqfVal) ([]byte,time.Duration,error){
+func (this *req) Reqf_1(val Rval) ([]byte,time.Duration,error){
+
var (
Url string = val.Url
Referer string = val.Referer