util.go 499 B

12345678910111213141516171819202122232425262728
  1. package ber
  2. import "io"
  3. func readByte(reader io.Reader) (byte, error) {
  4. bytes := make([]byte, 1)
  5. _, err := io.ReadFull(reader, bytes)
  6. if err != nil {
  7. return 0, err
  8. }
  9. return bytes[0], nil
  10. }
  11. func unexpectedEOF(err error) error {
  12. if err == io.EOF {
  13. return io.ErrUnexpectedEOF
  14. }
  15. return err
  16. }
  17. func isEOCPacket(p *Packet) bool {
  18. return p != nil &&
  19. p.Tag == TagEOC &&
  20. p.ClassType == ClassUniversal &&
  21. p.TagType == TypePrimitive &&
  22. len(p.ByteValue) == 0 &&
  23. len(p.Children) == 0
  24. }