You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat(ncp): NetWare client attach end-to-end — discovery, bindery, dir services, search, connection info
Chased a real NetWare client (Win3.1 NETX + Win98) through the whole
attach sequence against captures, implementing each stall per mars_nwe:
- Discovery: RIP responder on socket 0x0453 (core/protocol/rip +
core/service/rip), internal-network identity derived from the MAC,
router broadcast-accept, SAP advertising the internal address; NCP
replies sourced from the address the client attached to.
- Attach: Negotiate Buffer Size (0x21), static bindery
(SUPERVISOR/GUEST/EVERYONE/server) serving 0x35/0x36/0x37, GUEST and
empty-user logins always granted; login binds the connection to its
bindery object (id/type/login time).
- Directory/volume services: full 0x16 read family plus create/delete/
rename/alloc handles, seeded LOGIN dir handle 1 at create-connection,
volume usage replies (LE u32s), lock family granted unconditionally.
- Search: true NW_FILE_INFO/NW_DIR_INFO entry shapes, encoded high-bit
wildcards (0xAA='*' 0xBF='?' 0xAE='.'), DOS '?' matches one-or-zero
chars, FCB base/extension matching; Alloc Dir Handle length-prefixed
path layout (empty = source handle's dir).
- Connection info (Win98 login blocker): Get Connection Information
(0x17/0x16 old, 0x1C new) — Win9x asks who is logged in on its own
connection after the login verb and treats 0xFB as not-logged-in —
plus Get Connection Internet Address (0x13/0x1A) and Get Object
Connection List (0x15/0x1B; replaces the previous invented 0x15
shape).
- Logging: always-non-nil injected logger (no call-site guards) in NCP
and SAP; failed requests log named calls via names.go tables.
Win3.1 confirmed e2e (login, DIR, writes); Win98 connection-info fix
awaiting e2e. Spec: spec/17-ncp.md updated with all wire layouts.
Reference: mars_nwe (nwconn.c, nwbind.c, connect.c) — attributed.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
0 commit comments