Versions in this module Expand all Collapse all v0 v0.2.1 Jul 19, 2026 v0.2.0 Jul 19, 2026 Changes in this version + const AT + const BufMax + const CR + const DLE + const JCAP_CLEAR8 + const JCAP_CRC32 + const JCAP_FREQ + const JCAP_KNOWN + const SafeMaxOffset + const XOFF + const XON + var ErrBrainDead = errors.New("janus: brain_dead timeout (no progress)") + var ErrFileTooLarge = errors.New("janus: file size exceeds 0x7FFFFFFE") + var ErrFreqHandlerRequired = errors.New("janus: Config.SupportFreq=true requires a non-nil FreqHandler") + var ErrHandlerContract = errors.New("janus: handler returned nil writer with nil error") + var ErrMaxRetries = errors.New("janus: retransmit limit exceeded") + var ErrPeerHalt = errors.New("janus: peer halted") + var ErrRefuseBatch = errors.New("janus: refuse file and abort batch") + var ErrResumeOutOfRange = errors.New("janus: resume offset outside [0, 0x7FFFFFFE]") + var ErrSessionAborted = errors.New("janus: session aborted") + var ErrSkip = errors.New("janus: skip file") + var ErrTransportNotClosable = errors.New("janus: transport is not closable") + func SanitizeFilename(name string) string + type BlkPkt struct + Data []byte + Offset uint32 + type Config struct + BrainDead time.Duration + Closer io.Closer + DisableCRC32 bool + EffectiveBaud int + MaxBlockSize int + MaxFileSize int64 + MaxRetries int + MinBlockSize int + Originator bool + SupportFreq bool + Timeout time.Duration + type FileInfo struct + ModTime time.Time + Mode uint32 + Name string + Size int64 + type FileOffer struct + Close func() error + ModTime time.Time + Mode uint32 + Name string + Reader io.Reader + Size int64 + type FnackPkt struct + Caps byte + HasCaps bool + Offset int64 + type FnamePkt struct + Caps byte + Mode uint32 + Mtime int64 + Name string + Size int64 + type FreqHandler interface + NextRequest func() string + RequestDenied func(name string) + ResolveRequest func(name string) []*FileOffer + type FreqPkt struct + Caps byte + Name string + type RecvHandler interface + AcceptFile func(info FileInfo) (io.WriteCloser, int64, error) + FileCompleted func(info FileInfo, bytesTransferred int64, err error) + FileProgress func(info FileInfo, bytesTransferred int64) + type RposPkt struct + Offset uint32 + Timestamp uint32 + type SendHandler interface + FileCompleted func(info FileInfo, bytesTransferred int64, err error) + FileProgress func(info FileInfo, bytesTransferred int64) + NextFile func() *FileOffer + type Session struct + func NewSession(transport io.ReadWriter, send SendHandler, recv RecvHandler, freq FreqHandler, ...) *Session + func (s *Session) Abort() error + func (s *Session) Run(ctx context.Context) error