Albirew/nyaa-pantsu
Archivé
1
0
Bifurcation 0

base16 and base32

Cette révision appartient à :
ayame-git 2017-05-11 07:23:02 +03:00
Parent 47f7d08c5a
révision da8b2dc9c4
2 fichiers modifiés avec 12 ajouts et 6 suppressions

Voir le fichier

@ -167,10 +167,14 @@ func (f *UploadForm) ExtractInfo(r *http.Request) error {
return metainfo.ErrInvalidTorrentFile
}
exactTopic = strings.SplitAfter(exactTopic, ":")[2]
f.InfoHash = strings.ToUpper(strings.Split(exactTopic, "&")[0])
matched, err := regexp.MatchString("^[0-9A-Z]+$", f.Infohash) //ffuuuuuuck
if err != nil || !matched {
return metainfo.ErrInvalidTorrentFile
f.Infohash = strings.ToUpper(strings.Split(exactTopic, "&")[0])
base16, err := regexp.MatchString("^[0-9A-F]{40}$", f.Infohash)
if err != nil {
return err
}
base32, err := regexp.MatchString("^[2-7A-Z]{32}$", f.Infohash)
if !base16 && !base32 {
return err
}
f.Filesize = 0

Voir le fichier

@ -99,16 +99,18 @@ func validateMagnet(r *TorrentRequest) (error, int) {
}
exactTopic = strings.SplitAfter(exactTopic, ":")[2]
r.Hash = strings.ToUpper(strings.Split(exactTopic, "&")[0])
fmt.Println(r.Hash)
return nil, http.StatusOK
}
func validateHash(r *TorrentRequest) (error, int) {
r.Hash = strings.ToUpper(r.Hash)
matched, err := regexp.MatchString("^[0-9A-Z]+$", r.Hash) //fucking garbage
base16, err := regexp.MatchString("^[0-9A-F]{40}$", r.Hash)
if err != nil {
return err, http.StatusInternalServerError
}
if !matched {
base32, err := regexp.MatchString("^[2-7A-Z]{32}$", r.Hash)
if !base16 && !base32 {
return ErrHash, http.StatusNotAcceptable
}
return nil, http.StatusOK