encodeSessionData encodes session data to raw bytes Parameters: - rawData: The raw byte data to encode. Returns: - error: An error if the encoding fails. Usage: err := s.encodeSessionData(rawData)
()
| 602 | // |
| 603 | // err := s.encodeSessionData(rawData) |
| 604 | func (s *Session) encodeSessionData() ([]byte, error) { |
| 605 | byteBuffer := byteBufferPool.Get().(*bytes.Buffer) //nolint:forcetypeassert,errcheck // We store nothing else in the pool |
| 606 | defer byteBufferPool.Put(byteBuffer) |
| 607 | defer byteBuffer.Reset() |
| 608 | encCache := gob.NewEncoder(byteBuffer) |
| 609 | if err := encCache.Encode(&s.data.Data); err != nil { |
| 610 | return nil, fmt.Errorf("failed to encode session data: %w", err) |
| 611 | } |
| 612 | // Copy the bytes |
| 613 | // Copy the data in buffer |
| 614 | encodedBytes := make([]byte, byteBuffer.Len()) |
| 615 | copy(encodedBytes, byteBuffer.Bytes()) |
| 616 | |
| 617 | return encodedBytes, nil |
| 618 | } |
| 619 | |
| 620 | // absExpiration returns the session absolute expiration time or a zero time if not set. |
| 621 | // |