MCPcopy Create free account
hub / github.com/chainreactors/EvilProxy / WriteTo

Method WriteTo

internal/logging/request_logger.go:209–244  ·  view source on GitHub ↗

WriteTo merges all ordered parts into w.

(w io.Writer)

Source from the content-addressed store, hash-verified

207
208// WriteTo merges all ordered parts into w.
209func (s *FileBodySource) WriteTo(w io.Writer) error {
210 if s == nil || w == nil {
211 return nil
212 }
213 paths := s.Paths()
214 wrote := false
215 for _, path := range paths {
216 file, errOpen := os.Open(path)
217 if errOpen != nil {
218 if os.IsNotExist(errOpen) {
219 continue
220 }
221 return errOpen
222 }
223 if wrote {
224 if _, errWrite := io.WriteString(w, "\n"); errWrite != nil {
225 if errClose := file.Close(); errClose != nil {
226 log.WithError(errClose).Warn("failed to close log part file")
227 }
228 return errWrite
229 }
230 }
231 _, errCopy := io.Copy(w, file)
232 if errClose := file.Close(); errClose != nil {
233 log.WithError(errClose).Warn("failed to close log part file")
234 if errCopy == nil {
235 errCopy = errClose
236 }
237 }
238 if errCopy != nil {
239 return errCopy
240 }
241 wrote = true
242 }
243 return nil
244}
245
246// Bytes merges all ordered parts into memory.
247func (s *FileBodySource) Bytes() ([]byte, error) {

Callers 4

BytesMethod · 0.95
mergeFileBodySourceFunction · 0.80

Calls 4

PathsMethod · 0.95
WriteStringMethod · 0.80
OpenMethod · 0.65
CloseMethod · 0.65

Tested by

no test coverage detected