Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

There are perfectly legitimate reasons to put a network interface controller into promiscuous mode [1], and it's nothing to be ashamed of, and perfectly acceptable to discuss at conferences.

Back in the "bad old days" of the simplex NCP protocol [2], before the duplex TCP/IP protocol legalized same-sex network connections, connect and listen sockets had gender defined by their parity, and all connections were required to use sockets with different parity gender (one even and the other odd -- I can't remember which was which, or if it even mattered -- they just had to be different).

The act of trying to connect an even socket to another even socket, or an odd socket to another odd socket, was considered a "peculiar error" called "homosocketuality", which was strictly forbidden by internet protocols, and mandatory "heterosocketuality" was called the "Anita Bryant feature".

Anita Bryant [3] slut shamed not only all gays but even Jim Morrison. It's not like Douglas Crockford held a "Rally for Decency" at the Orange Bowl to slut shame a popular poet and performance artist [4]. Just throw a pie in his face [5] and move on.

http://www.saildart.org/IMPSER.DOC[SS,SYS]

When the error code is zero, the next 8 bit byte is the Stanford peculiar error code, followed by 72 bits of the ailing command returned. Here are the Stanford error codes. [...]

IGN 3 Illegal Gender (Anita Bryant feature--sockets must be heterosocketual, ie. odd to even and even to odd) [...]

Illegal gender in RFC, host hhh/iii, link 0

The host is trying to engage us in homosocketuality. Since this is against the laws of God and ARPA, we naturally refuse to consent to it.

http://www.saildart.org/FTP.NCP[S,NET]

    ; Try to initiate connection

    loginj:
            init log,17
            sixbit /IMP/
            0
            jrst noinit
            setzm conecb
            setom conecb+lsloc
            move ac3,hostno
            movem ac3,conecb+hloc
            setom conecb+wfloc
            movei ac3,40
            movem ac3,conecb+bsloc
            move ac3,consck
            trnn ac3,1
                jrst gayskt            ; only heterosocketuals can win!
             movem ac3,conecb+fsloc
             mtape log,[
                   =15
                    byte (6) 2,24,0,7,7
                         ]          ; Time out CLS, RFNM, RFC, and INPut

    [...]

    gayskt:    outstr [asciz/Homosocketuality is prohibited (the Anita Bryant feature)

    /]

        ife rsexec,<jrst rstart;>exit       1,
(The PDP-10 code above adds the connect and listen socket numbers together, which results in bit 0 being 0 if they are the same gender, then TRNN is "test bits right, no change, skip if non zero", which skips the next instruction (jrst gayskt) if they different sex.)

[1] https://en.wikipedia.org/wiki/Promiscuous_mode

[2] https://en.wikipedia.org/wiki/Network_Control_Program

[3] https://en.wikipedia.org/wiki/Anita_Bryant

[4] http://www.history.com/this-day-in-history/jim-morrison-prom...

[5] https://www.youtube.com/watch?v=H-A2Ql81WTY



I guess you'll never be allowed to speak at this conference after a comment like this...

> There are perfectly legitimate reasons to put a network interface controller into promiscuous mode

Absolutely - for a long time it was the only way of adding multiple IP address aliases on a single network card in Linux for example (might hav been the same on other OS's - I don't know).

I once had someone imply we were trying to hack because our web servers had the network cards in promiscuous mode for that reason (of course this was a genuine concern - they could not verify the difference between someone innocently adding IP aliases and someone listening in on the mostly unencrypted traffic intended for the other servers connected to the same hub (I don't miss hubs...)


Completely off the topic, but interesting to know nonetheless. It always makes it worth the time spent going through comments on HN to find such buried gems.


I don't see where the socket numbers are added. You test ac3 which is loaded from consck, but where does that come from? Or did you mean the code you linked to with "The PDP-10 code above"?


Good catch -- the link to the code was wrong (it was linking to an old version). I updated it to point to the new NCP version.

That's weird that it does several different types of moves in a row into the same register -- there must be some kind of implicit calculation going on, or maybe it's just a bug.

I'd use "git blame" to bug-shame whoever wrote that heterosexist code, but I don't think they were using safe source code control practices back then.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: