mirror of
https://github.com/jeremyd/ergo.git
synced 2026-08-03 20:53:06 -07:00
eb43ff69c4
Rebuilt the nostr registration feature cleanly on top of current ergo mainline (origin/master), dropping the stale ergo reversions that were entangled in the original squashed branch. - New irc/nostr package: NIP-04/NIP-17 DMs, NIP-05 resolution, relay connect/auth, and identifier helpers. - Registration/verification via nostr: parseCallback auto-detects nostr identifiers (NIP-05, npub, hex pubkey) and dispatches a verification DM. - Nostr-based cloaked hostnames for accounts (opt-in via ip-cloaking.nostr-hostnames), applied at the account-cloak sites. - Config: accounts.registration.nostr-verification and the nostr-hostnames cloak option, with matching default.yaml and help text. - Adds github.com/nbd-wtf/go-nostr and vendored dependencies.
43 lines
956 B
Go
43 lines
956 B
Go
package jsoniter
|
|
|
|
import (
|
|
"io"
|
|
)
|
|
|
|
// IteratorPool a thread safe pool of iterators with same configuration
|
|
type IteratorPool interface {
|
|
BorrowIterator(data []byte) *Iterator
|
|
ReturnIterator(iter *Iterator)
|
|
}
|
|
|
|
// StreamPool a thread safe pool of streams with same configuration
|
|
type StreamPool interface {
|
|
BorrowStream(writer io.Writer) *Stream
|
|
ReturnStream(stream *Stream)
|
|
}
|
|
|
|
func (cfg *frozenConfig) BorrowStream(writer io.Writer) *Stream {
|
|
stream := cfg.streamPool.Get().(*Stream)
|
|
stream.Reset(writer)
|
|
return stream
|
|
}
|
|
|
|
func (cfg *frozenConfig) ReturnStream(stream *Stream) {
|
|
stream.out = nil
|
|
stream.Error = nil
|
|
stream.Attachment = nil
|
|
cfg.streamPool.Put(stream)
|
|
}
|
|
|
|
func (cfg *frozenConfig) BorrowIterator(data []byte) *Iterator {
|
|
iter := cfg.iteratorPool.Get().(*Iterator)
|
|
iter.ResetBytes(data)
|
|
return iter
|
|
}
|
|
|
|
func (cfg *frozenConfig) ReturnIterator(iter *Iterator) {
|
|
iter.Error = nil
|
|
iter.Attachment = nil
|
|
cfg.iteratorPool.Put(iter)
|
|
}
|