aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorsina <sina@snix.ir>2022-10-23 23:32:57 +0330
committersina <sina@snix.ir>2022-10-23 23:32:57 +0330
commit0e42f630fada9d121e9d06099f48fd7a03941b16 (patch)
tree3a881f954d0f754a01a7c378889fada619aa29c5
parentc7e89d5426aaf287fa44113680c705da6b03294f (diff)
fix chunk readerHEADmaster
-rw-r--r--ioaead.go22
1 files changed, 21 insertions, 1 deletions
diff --git a/ioaead.go b/ioaead.go
index 63b4a74..773f641 100644
--- a/ioaead.go
+++ b/ioaead.go
@@ -144,7 +144,27 @@ func (r *streamReader) readTo(b []byte) (int, error) {
// in such a case, you need to unread data. a simple demonstration would be to delete
// or truncate the file if ErrAuthMsg is returned
func (r *streamReader) Read(b []byte) (int, error) {
- return r.readTo(b)
+ if len(b) <= 16 {
+ return r.readTo(b)
+ }
+ n := 0
+ for {
+ if n+16 > len(b) {
+ sr, err := r.readTo(b[n:])
+ n += sr
+ if err != nil {
+ return n, err
+ }
+ break
+ }
+
+ sr, err := r.readTo(b[n : n+16])
+ n += sr
+ if err != nil {
+ return n, err
+ }
+ }
+ return n, nil
}
func (r *streamReader) verify() error {

Snix LLC Git Repository Holder Copyright(C) 2022 All Rights Reserved Email To Snix.IR