But reading RFC 959, there is no mention of using urgent data under
any circumstances.
No _explicit_ mention. It's there by reference.
What that RFC says about aborting is:
[...]
2. User system sends the Telnet "Synch" signal.
This involves setting URG. Read the telnet spec's description of the
SYNCH operation (the top of page 9 of RFC854 is a good starting point).
See also SO_OOBINLINE, SIOCATMARK, and SS_RCVATMARK. I am sorely
tempted to try to rip out the OOB botch and design a socket interface
to the urgent pointer that isn't so badly broken, but I doubt I'd
actually find any use for the latter. I might rip out the OOB stuff
just to find and fix anything trying to use it, though.