PDA

View Full Version : The next mTCP update is coming soon ... last call for bug fixes and ideas!



mbbrutman
April 9th, 2015, 06:47 AM
I last updated mTCP in May 2013 and I have two years of changes that are probably overdue to be unleashed on an unsuspecting populace. Here is some of what you can expect to see:


All: Automatic IP address conflict detection
All: Slightly moar speed
All: Slightly improved TCP retransmit logic
FTPSRV bug fix related to Ctrl-Break handling
IRCjr on the PCjr: disable blinking text so that all of the mIRC color codes will work. (Other machines were not affected.)
DHCP: add an option to deal with short lease times
Telnet: 132 column support if you have a VESA video card that can do that.
Telnet: be more patient when closing down so that remaining incoming data gets processed correctly.
FTP client: new mdelete command and remove filename length limitations
New program: PktTool can scan for packet drivers, show statistics from a packet driver, and do some light analysis on packets sniffed on your network
New program: a high performance web server! (HTTPServ)


If you have bug reports or requests now would be a good time to send them to me ... otherwise, you get what you get ...


Mike

cr1901
April 9th, 2015, 10:38 AM
I last updated mTCP in May 2013 and I have two years of changes that are probably overdue to be unleashed on an unsuspecting populace. Here is some of what you can expect to see:


All: Automatic IP address conflict detection
All: Slightly moar speed
All: Slightly improved TCP retransmit logic
FTPSRV bug fix related to Ctrl-Break handling
IRCjr on the PCjr: disable blinking text so that all of the mIRC color codes will work. (Other machines were not affected.)
DHCP: add an option to deal with short lease times
Telnet: 132 column support if you have a VESA video card that can do that.
Telnet: be more patient when closing down so that remaining incoming data gets processed correctly.
FTP client: new mdelete command and remove filename length limitations
New program: PktTool can scan for packet drivers, show statistics from a packet driver, and do some light analysis on packets sniffed on your network
New program: a high performance web server! (HTTPServ)


If you have bug reports or requests now would be a good time to send them to me ... otherwise, you get what you get ...


Mike

Any changes to the API (side effects especially- I assume function signatures and friends stayed the same) that I should be aware about- i.e. would possibly break NWBACKUP if I compiled against the new version? As far as MTCP code goes, NWBACKUP is essentially a mix between the sample program and the FTP client (heavily modified).

mbbrutman
April 9th, 2015, 06:58 PM
Any changes to the API (side effects especially- I assume function signatures and friends stayed the same) that I should be aware about- i.e. would possibly break NWBACKUP if I compiled against the new version? As far as MTCP code goes, NWBACKUP is essentially a mix between the sample program and the FTP client (heavily modified).

This would be a good time to get this out in the open:

The next release of mTCP is going to be a binary-only release. I will not be releasing the new source code (yet). The existing source code and binaries will also remain available.

Anybody who is affected by the lack of source code - please contact me privately using email. I don't intend to leave people in a bind.

SkydivinGirl
April 10th, 2015, 04:15 AM
Hi Mike!

Is there a way to see the currently assigned IP address, subnet mask, etc.? Kind of like what you'd see with an IPCONFIG /ALL Windows command?

mbbrutman
April 10th, 2015, 07:44 AM
All of that is available in the configuration file that the MTCPCFG variable points at. If you are using DHCP all of those will be written at the end of the file. Look for this block of lines:

IPADDR 192.168.2.146
NETMASK 255.255.255.0
GATEWAY 192.168.2.1
NAMESERVER 8.8.8.8
LEASE_TIME 86400

If you are not using DHCP all of those values are in the file somewhere; they are just not necessarily at the end of the file. (They will be where you put them in the file.)

SkydivinGirl
April 10th, 2015, 08:54 AM
Hi Mike,

Yeah, I wrote a batch file to display that file but I didn't like looking at all the non-essential information when displaying it. Still, it's a workable solution. :)

Great job on everything!

Heather

TJ_Mossman
April 10th, 2015, 01:02 PM
Hi Mike,

I'd quite like a command line option to support serial terminals or CTTY. ITA2 support would be a big plus too, since those IBM async cards have a current-loop option.


Good too see you're still active, mTCP Telnet is by far my most used program on my DOS machines
-Tom

mbbrutman
April 10th, 2015, 03:47 PM
The big problem with supporting any sort of serial terminal is knowing what to feed it. There are dozens of relatively popular terminals out there each with their own slightly different escape codes for controlling cursor movements, clearing the screen, etc. If you've ever looked inside of Unix termcap file you know the horror of which I speak.

Programs like FTP, SNTP, and Netcat can be made to work with dumb terminals fairly easily. But I suspect you want to use Telnet ...

The other problem with terminals is that they tend to be slow; 9600 bps is a good speed. The mTCP programs that need speed manipulate the video buffer directly; having to repaint a screen through a serial port is agonizingly slow in comparison.

ahm
April 11th, 2015, 09:05 AM
Yeah, I wrote a batch file to display that file but I didn't like looking at all the non-essential information when displaying it.


What non-essential information?



@echo off
rem -- IPCONFIG.BAT by ahm --
type %MTCPCFG% | find "IPADDR"
type %MTCPCFG% | find "NETMASK"
type %MTCPCFG% | find "GATEWAY"
type %MTCPCFG% | find "NAMESERVER"
type %MTCPCFG% | find "LEASE_TIME"


Cheers,
Andy

SkydivinGirl
April 11th, 2015, 09:12 AM
Thanks for the script Andy. Didn't think about using the find command. :)

Heather

ahm
April 11th, 2015, 10:54 AM
You're welcome.
It's possible to do neat stuff, even in MSDOS :-)

Krille
April 12th, 2015, 11:17 PM
All: Slightly moar speed


I approve of this! :D


If you have bug reports or requests now would be a good time to send them to me ... otherwise, you get what you get ...

I just have one small request; I want the "Good news everyone!"-line removed from DHCP.EXE.

How about EMS support? (I now have an Intel Above Board Plus 8 with 6 MB RAM in my Wang... ;))

mbbrutman
April 13th, 2015, 07:01 AM
The "Good news everyone!" is a reference to Professor Farnsworth from Futurama - it is an integral part of the program and it can not be removed without causing a rip in the fabric of space and time. What is behind your request?

EMS support - I've been thinking of using it for IRCjr scrollback and for caching on the HTTP server. With more memory I'd have very little problem making IRCjr capable of supporting multiple servers at the same time too. Those scrollback buffers take up a lot of room though.

Stone
April 13th, 2015, 07:37 AM
I want the "Good news everyone!"-line removed from DHCP.EXE.What about a hex editor?

SkydivinGirl
April 13th, 2015, 08:44 AM
EMS support does sound good. :)

Heather

Krille
April 13th, 2015, 09:10 AM
The "Good news everyone!" is a reference to Professor Farnsworth from Futurama - it is an integral part of the program and it can not be removed without causing a rip in the fabric of space and time. What is behind your request?

It just seemed to be noise and redundant since DHCP outputting the address info conveys "Success" anyway. I suppose I can live with it now that I know the reference. :)

ahm
April 13th, 2015, 10:43 AM
In IRCjr, how about some way to clear the screen?

It's apparently NOT Alt-C :-)

Tor
April 13th, 2015, 10:46 AM
but... the "good news everyone" expression from Farnsworth was always followed by something disastrous, so that message isn't really necessarily creating trust in that it was successful.

mbbrutman
April 13th, 2015, 12:20 PM
It was always something bad for the crew, but it also signaled the start of 25 minutes of high quality entertainment, so it shall remain as a glorious tribute.

I'd like to quote Bender more but that becomes too offensive very quickly.

TJ_Mossman
April 13th, 2015, 01:06 PM
It was always something bad for the crew, but it also signaled the start of 25 minutes of high quality entertainment, so it shall remain as a glorious tribute.

I'd like to quote Bender more but that becomes too offensive very quickly.

"Well I'm going to build my own TCP stack, with blackjack, and hookers"

luvit
April 13th, 2015, 01:48 PM
I hate to say, I didn't watch much futurama, but it did look like fun.
I didn't get the reference, but I can live with it.
My question is, can that futurama reference and the NTP's line "aye aye aye...greater than 10 minutes!" be turned off via a switch?
I am running this on computers without clocks and batteries.. it is noise in that case
But really, I can live with it.. it's all well, done, Mike! :0)
Features to switch-off stuff may just fatten up the product.. it'll be fat like MS in no-time! lol ;)

mbbrutman
April 13th, 2015, 07:02 PM
I think you are referring to SNTP and not NTP, and the actual quote should be "Difference between suggested time and system time is greater than 10 minutes!"

I think that one line of warning text is not a great burden. If the text is bothering you then you can probably get rid of all of it by redirecting it to NUL: and checking ERRORLEVEL inside of a DOS batch file. ERRORLEVEL 0 means the time was set, and anything else means it was not set.

luvit
April 14th, 2015, 04:37 AM
Naw, it's no burden. As I said, it's all done very well and I can't think of any missing features for your products which I use. That's probably why krille and I mentioned very minor aesthetics.
If the text is bothering you then you can probably get rid of all of it by redirecting it to NUL: and checking ERRORLEVEL inside of a DOS batch file. ERRORLEVEL 0 means the time was set, and anything else means it was not set.I've never done something that. I look forward to tinkering with that idea as soon as I can. It might me challenging for me. :D

Krille
April 14th, 2015, 06:21 AM
That's probably why krille and I mentioned very minor aesthetics.

Indeed!

archeocomp
April 14th, 2015, 09:09 AM
Agreed as well. And thanks :-)

Oskar
April 14th, 2015, 10:18 AM
Unicode / UTF-8 support in IRCjr (maybe also in the telnet app) :)
Goofy suggestion: An MPD client, (started thinking about doing something simple like this myself).

mbbrutman
April 14th, 2015, 06:24 PM
Unicode support has been on the todo list for a while; as I explained over at Vogons it's just basically a mapping problem. For CGA and MDA the mapping problem is simple given the limited choice, but for EGA and VGA with loadable fonts and DOS codepage support it becomes more interesting. As a US English native speaker I've never had to deal with that complexity, so I have to learn the DOS codepage support to make this happen.

MPD? I don't think that anything is going to sound too good on my PCjr's three voice sound chip, or on an XT speaker.

cr1901
April 14th, 2015, 07:25 PM
Unicode support has been on the todo list for a while; as I explained over at Vogons it's just basically a mapping problem. For CGA and MDA the mapping problem is simple given the limited choice, but for EGA and VGA with loadable fonts and DOS codepage support it becomes more interesting. As a US English native speaker I've never had to deal with that complexity, so I have to learn the DOS codepage support to make this happen.

MPD? I don't think that anything is going to sound too good on my PCjr's three voice sound chip, or on an XT speaker.
Wait... Unicode support is possible in MSDOS, without an libiconv port (I'm convinced that the GNU Project wanted to pretend MSDOS didn't exist!)?

mbbrutman
April 14th, 2015, 07:32 PM
Unicode is just a character encoding. Anything can support Unicode. The tricky part is actually trying to render the characters.

Oskar
April 14th, 2015, 09:21 PM
I am guessing you know about the MPD (music player daemon) and commenting about sound chip and PC speaker was just being silly back at me :)
It could be done quite easily though, adapting the telnet client for example, because controlling MPD is just sending text commands "play [song_ID]", "volume [nn]", over a TCP connection to the MPD server (usually to port 6600).

The unicode is a different thing, more serious :) and a bit more complex depending on the ambitions. Just being able to recognize the multi-byte sequences and mapping where possible would help a lot though. Even just using CP437 for rendering wich all display adapters have, I think it would take care of most European languages.

TJ_Mossman
April 15th, 2015, 06:41 AM
how about traceroute?

mbbrutman
April 15th, 2015, 07:12 AM
how about traceroute?

Traceroute is possible, but not for the next release. I was planning on pushing new code out in the next few weeks. I'll add traceroute for the longer term list. (It is a good idea ...)

jmetal88
April 19th, 2015, 12:41 PM
Hey Mike, I've got what looks to be the April 2013 release of MTCP on my PCjr, and I just noticed today that the applications don't work if your DHCP lease time is less than an hour. Any specific reason for that? All the network equipment I'm using now was set up for 3600 second lease times by default, so I had to change all of those to longer time periods to get on my network today.

mbbrutman
April 19th, 2015, 12:56 PM
In the first post in this thread:

DHCP: add an option to deal with short lease times


Mike

jmetal88
April 20th, 2015, 05:11 AM
In the first post in this thread:

DHCP: add an option to deal with short lease times


Mike

Agh, I read that and then it completely slipped my mind by the time I got to the end of the thread.

(I will go ahead and say I read this thread several days before I noticed it was an issue for me, though.)

driph
April 20th, 2015, 03:55 PM
The "Good news everyone!" is a reference to Professor Farnsworth from Futurama - it is an integral part of the program and it can not be removed without causing a rip in the fabric of space and time.


Yay, that's my favorite part of booting up! :]



Traceroute is possible, but not for the next release. I was planning on pushing new code out in the next few weeks. I'll add traceroute for the longer term list. (It is a good idea ...)

Ooh, that'd be nice. Any chance of an mTCP SSH client?

TJ_Mossman
May 1st, 2015, 02:35 PM
I seem to recall reading that SSH would be too CPU intensive on XT class systems, then again, 8088 MPH was a thing that happened so...

Mike?

mbbrutman
May 1st, 2015, 04:57 PM
I don't know what the CPU overhead would be. I'm sure it would not be pretty.

The bigger problem is that the necessary libraries are not available or out of date. Without some code to reuse the task becomes too large except for a team of people.

cr1901
May 3rd, 2015, 07:10 PM
With the way the Internet is going- how everything is becoming HTTPS- soon there may not be a choice but to add SSH support- lest MTCP's utility be limited to LANs. We either will need custom hardware that transparently does SSL encypt/decrypt (which is cheating, IMHO), or just have to take the performance hit.

The modern Internet just isn't friendly to old or slow devices. I personally think its ridiculous.

Matrix SSL is an embedded SSL library that'll most likely fit on an 8086 though.

Krille
May 6th, 2015, 10:04 AM
You have probably seen this already: http://sshdos.sourceforge.net/

I haven't tried it myself but it supposedly works on 808x processors.

alecv
May 8th, 2015, 02:41 AM
Vote for XMPP CLI and fullscreen clients :)