>>>>> "microman" == microman <(E-Mail Removed)> writes:
microman>
microman> Google newsgroups had quite a few hits on the subject of
microman> telnet and serial communications, but I couldn't quite find
microman> a topic specific to my sitation. Here is my objective:
microman>
microman> Host a telnet session on my linux box, and transparently
microman> route the user to my C64 BBS (subsequent telnet connection
microman> requests are blocked until the serial port is free again).
microman> Data going to the BBS is converted from the telnet protocol
microman> to the rs-232 protocol (according to the parameters
microman> specified by this specialized telnet server). Data coming
microman> back from the BBS is converted from rs-232 protocol to
microman> telnet. This is done over an RS-232C null modem cable.
microman>
microman> Programs to handle this exist for Windows (BBSLink), but I'm
microman> not aware of any for Linux. The C64 only speaks RS-232
microman> (RS-232C with my V-1011A interface).
microman>
microman> I figure I'm going to have to write this in C (it'd be a
microman> good learning exercise!), but in my excitement to get the
microman> thing working quickly, I thought I'd ask if the software
microman> already exists. I have my own ideas for customization, but
microman> I'd like to see what is out there first.
microman>
microman> I don't need to emulate for the client, it's expected the
microman> client will be using a C64 emulation telnet program (such as
microman> CBMTerm), or using standard ASCII.
microman>
microman> Any and all help (links, etc) is MUCHO appreciated!
I'm not sure you have to write any code to do this.
First, connect the linux and C64 machines with a serial cable, and
make sure that on the linux machine you can start up the program
"minicom" and talk to the C64 BBS program. You will have to select
which serial port, the baud rate, stop bits, etc. Just try different
things until it works if you don't know for sure about the C64
settings. Once you get it right, save the settings as defaults, so
minicom starts up that way every time.
Once you have that working, there are a huge number of ways to share
this accross the internet. You can start by making a shell account
that someone can ssh into (better than telnet, but you can allow that
too) and then they can run minicom at the command line. You can make
it start minicom automatically by putting the command .login or
another startup script.
If you want to make sure the users can't do anything on your linux
machine, can only connect to the C64, you might experiment with making
the BBS user's shell be "/usr/bin/minicom". The shell is the program
that starts when the use logs in, to handle user interaction, and when
it exits the user is logged out.
You can probably use kermit instead of minicom.
Making sure only one user at a time is on the serial interface will be
taken care of automatically. If you start a minicom talking to
/dev/ttyS0 ( serial port 1 in linux ), and then try to start a second
minicom talking to that serial port, it will give the error message
"Device /dev/ttyS0 is locked." Now, the second person attempting to
log in may not actually see that message before the ssh (or telnet)
exits, we might have to test that.
If you are worried about the people who you give accounts to having
access to the linux machine itself, you have to investigate the fact
that minicom and kermit may contain ways to escape a command from
being sent to the C64 and send it instead to the linux machine.
I am interested in this project and I would like to see it working
when you do get it up. Feel free to email me with any questions and I
will help you if I can.
--Rob
P.S. If you do want to write code, just to learn, you might look at
the source code to minicom and to kermit and then write a simple
program that will access your BBS. Then you can make that program the
shell of the BBS users. You can also find some examples here:
http://www.tldp.org/HOWTO/Serial-Pro...WTO/index.html
If you write your own shell that interacts with the BBS, you may be
able to better assure yourself that users aren't able to run things on
the linux box itself. My personal feeling would be to make an account
per person, and that way I could delete an abusive account with out
inconviencing the other users. If you have a single BBS user, you
have to take more care.