<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom"><title>Alex's Adventures on the Infobahn - nc</title><link href="https://www.bennee.com/~alex/" rel="alternate"></link><link href="https://www.bennee.com/~alex/blog/tag/nc/feed" rel="self"></link><id>https://www.bennee.com/~alex/</id><updated>2009-11-20T17:54:00+00:00</updated><subtitle>the wanderings of a supposed digital native</subtitle><entry><title>Would you accept a patch like this?</title><link href="https://www.bennee.com/~alex/blog/2009/11/20/would-you-accept-a-patch-like-this/" rel="alternate"></link><published>2009-11-20T17:54:00+00:00</published><updated>2009-11-20T17:54:00+00:00</updated><author><name>alex</name></author><id>tag:www.bennee.com,2009-11-20:/~alex/blog/2009/11/20/would-you-accept-a-patch-like-this/</id><summary type="html">&lt;p&gt;Wow, I actually found something that netcat can't do.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
--- netcat-openbsd-1.89/netcat.c        2009-11-20 17:44:40.000000000 +0000
+++ netcat-openbsd-1.89.patched/netcat.c        2009-11-20 17:43:35.000000000 +0000
&amp;#64;&amp;#64; -74,6 +74,7 &amp;#64;&amp;#64;

 /* Command Line Options */
 int    Cflag = 0;                              /* CRLF line-ending */
+int    cflag = 0;                              /* CR line-ending */
 int    dflag;                                  /* detached …&lt;/pre&gt;</summary><content type="html">&lt;p&gt;Wow, I actually found something that netcat can't do.&lt;/p&gt;
&lt;pre class="literal-block"&gt;
--- netcat-openbsd-1.89/netcat.c        2009-11-20 17:44:40.000000000 +0000
+++ netcat-openbsd-1.89.patched/netcat.c        2009-11-20 17:43:35.000000000 +0000
&amp;#64;&amp;#64; -74,6 +74,7 &amp;#64;&amp;#64;

 /* Command Line Options */
 int    Cflag = 0;                              /* CRLF line-ending */
+int    cflag = 0;                              /* CR line-ending */
 int    dflag;                                  /* detached, no stdin */
 int    iflag;                                  /* Interval Flag */
 int    jflag;                                  /* use jumbo frames if we can */
&amp;#64;&amp;#64; -137,7 +138,7 &amp;#64;&amp;#64;
        sv = NULL;

        while ((ch = getopt(argc, argv,
-           &amp;quot;46Ddhi:jklnP:p:rSs:tT:Uuvw:X:x:zC&amp;quot;)) != -1) {
+           &amp;quot;46Ddhi:jklnP:p:rSs:tT:Uuvw:X:x:zCc&amp;quot;)) != -1) {
                switch (ch) {
                case '4':
                        family = AF_INET;
&amp;#64;&amp;#64; -230,6 +231,9 &amp;#64;&amp;#64;
                case 'C':
                        Cflag = 1;
                        break;
+               case 'c':
+                       cflag = 1;
+                       break;
                default:
                        usage(1);
                }
&amp;#64;&amp;#64; -748,6 +752,12 &amp;#64;&amp;#64;
                                        if (atomicio(vwrite, nfd, &amp;quot;\r\n&amp;quot;, 2) != 2)
                                                return;
                                }
+                               else if ((cflag) &amp;amp;&amp;amp; (buf[n-1]=='\n')) {
+                                       if (atomicio(vwrite, nfd, buf, n-1) != (n-1))
+                                               return;
+                                       if (atomicio(vwrite, nfd, &amp;quot;\r&amp;quot;, 1) != 1)
+                                               return;
+                               }
                                else {
                                        if (atomicio(vwrite, nfd, buf, n) != n)
                                                return;
&lt;/pre&gt;
&lt;p&gt;My dad has been experimenting with putting an old &lt;a class="reference external" href="http://en.wikipedia.org/wiki/FLEX_%28operating_system%29"&gt;Flex&lt;/a&gt; system on the net. I was having trouble talking to it with netcat. Using Telnet was a little better but still failing. It turns out some very old systems have different line termination sequences. I can now play the original &lt;a class="reference external" href="http://en.wikipedia.org/wiki/Colossal_Cave_Adventure"&gt;Colossal Cave&lt;/a&gt; :-)&lt;/p&gt;
</content><category term="geek"></category><category term="nc"></category><category term="netcat"></category><category term="patch"></category></entry></feed>