Changeset 4 in code
- Timestamp:
- Oct 11, 2021, 3:12:39 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/partage.go
r3 r4 33 33 } 34 34 35 func writefile(f *os.File, s io.ReadCloser) int {35 func writefile(f *os.File, s io.ReadCloser) int64 { 36 36 buffer := make([]byte, 4096) 37 eof := false 38 sz := int64(0) 37 39 38 var sz int40 defer f.Sync() 39 41 40 for {42 for !eof { 41 43 n, err := s.Read(buffer) 42 43 if err == io.EOF { 44 n, err := f.Write(buffer[:n]) 45 if err != nil { 46 fmt.Println(err) 47 } 48 sz += n 49 break 50 } 51 if err != nil { 44 if err != nil && err != io.EOF { 52 45 fmt.Println(err) 53 46 return -1 47 } else if err == io.EOF { 48 eof = true 54 49 } 55 50 56 n, err = f.Write(buffer[:n]) 51 /* ensure we don't write more than expected */ 52 r := int64(n) 53 if sz+r > conf.maxsize { 54 r = conf.maxsize - sz 55 eof = true 56 } 57 58 _, err = f.Write(buffer[:r]) 57 59 if err != nil { 58 60 fmt.Println(err) 59 61 } 60 sz += n62 sz += r 61 63 } 62 64 63 f.Sync()64 65 return sz 65 66 } … … 133 134 filename = "/index.html" 134 135 } 135 136 136 137 f, err := os.Open(conf.rootdir + filename) 137 138 if err != nil {
Note:
See TracChangeset
for help on using the changeset viewer.