Highly-opinionated (ex-bullshit-free) MTPROTO proxy for Telegram. If you use v1.0 or upgrade broke you proxy, please read the chapter Version 2
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

buffered_reader.go 617B

1234567891011121314151617181920212223242526272829303132
  1. package wrappers
  2. import "bytes"
  3. type BufferedReader struct {
  4. Buffer *bytes.Buffer
  5. }
  6. func (b *BufferedReader) BufferedRead(p []byte, callback func() error) (int, error) {
  7. if b.Buffer.Len() > 0 {
  8. return b.flush(p)
  9. }
  10. if err := callback(); err != nil {
  11. return 0, err
  12. }
  13. return b.flush(p)
  14. }
  15. func (b *BufferedReader) flush(p []byte) (int, error) {
  16. if b.Buffer.Len() <= len(p) {
  17. sizeToReturn := b.Buffer.Len()
  18. copy(p, b.Buffer.Bytes())
  19. b.Buffer.Reset()
  20. return sizeToReturn, nil
  21. }
  22. return b.Buffer.Read(p)
  23. }
  24. func NewBufferedReader() BufferedReader {
  25. return BufferedReader{Buffer: &bytes.Buffer{}}
  26. }