Skip to content

Documentation overhaul: markdown ports verified against the source, P10 S2S reference - #108

Open
MrIron-no wants to merge 16 commits into
UndernetIRC:mainfrom
MrIron-no:docs/markdown
Open

Documentation overhaul: markdown ports verified against the source, P10 S2S reference#108
MrIron-no wants to merge 16 commits into
UndernetIRC:mainfrom
MrIron-no:docs/markdown

Conversation

@MrIron-no

Copy link
Copy Markdown
Contributor

Documentation overhaul: every plaintext readme in doc/ is now either ported to Markdown (verified against the current source) or archived in doc/history/.

New reference

  • doc/p10.md — a full P10 server-to-server protocol reference derived from the source: wire format, numerics/encodings, token table (strictly S2S), link establishment, net burst, users, channels, messaging, network policy (G-line/Jupe/S-line/CONFIG), extension queries, remote queries, message tags, conflict resolution, and a worked example session. All wire examples (base64 IPs, BURST member lists, AsLL ping/pong, SASL XQ/XR exchange, MODE bounces) are computed/traced against the code, not eyeballed.

Markdown ports, corrected against the code

  • readme.iauth.md — documents the new Z (TLS fingerprint), A (account during registration), c/e (CAP negotiation) server messages, the R account[:id[:flags]] stamp, the changed u untrusted-username semantics, and the WebIRC/Cloudflare/WebSocket introduction deferral.
  • readme.who.md — default match set is nuhs (not nuhsr), CIDR-only IP masks (the dotted-netmask form is gone, /32 and IPv6 now valid), x requires the whox privilege, oplevel shows n/a for non-ops, < flag for join-delayed members, HIS_WHO_* censorship, hidden-host matching rules.
  • readme.gline.md — adds a verified mask-forms section ($R realname, BADCHAN, CIDR) and cross-links p10.md.
  • readme.jupe.md — S2S +/- prefix is actually optional, burst suppression of lastmod resends, CONFIG_OPERCMDS gate and per-target privileges. Documents the missing PRIV_LOCAL_JUPE check on the implicit-local form (filed upstream as mo_jupe: implicit-local JUPE form bypasses the PRIV_LOCAL_JUPE check #106).
  • readme.log.md — adds the AUTH snomask missing from the mask-name list.
  • readme.crules.md — CRULE block syntax, directcon() typo fixed, chkconf reference removed.
  • readme.xquery.md — documents the iauth:/sasl:/spam: routing prefixes now in live use.
  • snomask.md (from snomask.html) — verified against client.h; adds mask-argument semantics, the non-oper cap (SNO_USER), de-oper stripping, and the CONNEXIT_NOTICES gate.
  • readme.features.md / readme.netconf.md / readme.cap.md / readme.sasl.md / readme.sline.md — cherry-picked from the release branch, with the post-conversion drift (CLIENT_TAG_FLOOD, TRUST_USERNAME, expanded NETWORK_FEATURES) ported into readme.features.md.

Removed or archived

  • Removed: readme.asll (covered by p10.md §6.2/§6.6), readme.cvs, readme.indent, p10.html, snomask.html, the doc/ and patches/ .cvsignore files.
  • Archived to doc/history/: readme.www, readme.chroot, debug_memleak_gc.patch, linux-poll.patch.
  • INSTALL now points at git instead of the retired CVS pserver.

All live references (example.conf, configure.ac, RELEASE.NOTES, source comments) updated to the new file names; ChangeLog mentions left untouched as history.

Derived from the source in ircd/ and include/. Covers wire format,
numerics, link establishment, net burst, users, channels, messaging,
network policy, extension queries, message tags and conflict
resolution, with worked wire examples verified against the code.
The markdown conversion (cherry-picked from release) was based on a
July snapshot; main's plaintext readme.features had since gained
CLIENT_TAG_FLOOD, TRUST_USERNAME and the expanded NETWORK_FEATURES
text. Carry those into readme.features.md so nothing is lost by
deleting the plaintext file.
snomask.md is verified against the current SNO_ list in
include/client.h (unchanged since the 1997 document). p10.html is
superseded by the new p10.md reference.
New server messages documented: Z (TLS certificate fingerprint),
A (account applied during registration, e.g. SASL), c/e (CAP
negotiation start/end blocking registration). R now documents the
account[:id[:flags]] stamp. The u compatibility note reflects that
an untrusted username is sent with its ~/^ prefix rather than
omitted. Added the WebIRC/Cloudflare/WebSocket introduction-deferral
note and the iauth: XQUERY routing detail.
The old file was also stale: the second PING parameter is the target
server name, not its numeric.
readme.log.md adds the AUTH snomask to the mask-name list (present in
ircd_log.c but missing from the old doc); the subsystem and level
tables are otherwise verified unchanged. readme.gline.md adds a
verified mask-forms section (user@host, user@ip/cidr, $Rrealname,
BADCHAN) and cross-references p10.md 10.1. The .cvsignore files are
CVS-era artifacts with no effect under git.
Corrections: the S2S +/- prefix is optional (a bare name is treated
as inactive), the lastmod resend is suppressed during bursts, and the
oper section now documents CONFIG_OPERCMDS, the JUPE/LOCAL_JUPE
privileges per target form, and that expiration/reason are ignored
for an existing jupe. Documents the missing privilege check on the
implicit-local form as-is.
Corrections from the 1999 text: the default match set is nuhs (info
text is no longer matched by default); the a.b.c.d/e.f.g.h netmask
form is gone and /32 plus IPv6 CIDR are valid; the x flag requires
the whox privilege and see_chan only works together with x; the
oplevel field shows n/a for non-ops (levels visible only to opers
and chanops); the 354 flags include < for join-delayed members; and
the HIS_WHO_* features censor server name, idle and hopcount for
non-opers. Hidden-host matching rules documented.
Adds the routing prefixes now in live use (iauth:, sasl:, spam:) with
cross-references to p10.md, readme.sasl.md and readme.sline.md, and
notes that XQ/XR never carry an IRCv3 @time tag. Handler behavior
verified unchanged against m_xquery.c/m_xreply.c.
crules updated to the CRULE block syntax (the D:/d: line format is a
historical note), the second example's direct() typo fixed to
directcon(), the removed chkconf tool no longer referenced, and the
stats letters verified against s_stats.c. configure.ac now points at
readme.chroot's new location.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant