Mail Archives: djgpp/1997/11/26/03:16:38
> Has somebody installed djgpp 2.0 in netware. I am a professor and I want to
> use djgpp with netware.
>
> I have a big trouble:
>
> The cwsdpmi require a file for swaping. But in netware i can't use only one
> file, I need a file for each computer connected to the server. How I can
> use different files for the swapping processes.
>
> Please help me
>
>
Swapping over the net is slow, so you shouldn't do that. Do
swap to a local disk, if possible.
If you have diskless clients, it's a bit trickier. You do need a free
drive letter, access to login scripts, and supervisor rights (if you
want to do this for _all_ users)
Now, let's presume the drive is T:\ .
1) Edit cwsdpmi.exe with cwsparam and set the swapfile to
T:\cwsdmpi.swp
2) Create a subdirectory on the server
\\SERVER:SYS/swapfiles
and give all users Read/Write/Create rights. This _is_ a security
breach (I'm still thinking about that...)
3) In the system login script, add the line
DOS SET MACHINE="%P_STATION"
This sets an environment variable containing the MAC address of the
ethernet card of this station. I once had a script to extract 8
letters from it, but I cannot find that. So let's do it in C...
This is for Turbo-C:
#include <stdio.h>
#include <stdlib.h>
#include <process.h>
#include <time.h>
#include <io.h>
#include <dos.h>
#include <sys/stat.h>
#include <fcntl.h>
/* Where to put files */
#define BASEDIR "sys:swapfiles/"
char tsName[128] = BASEDIR;
/* Shrink executable */
extern unsigned _heaplen=2048, _stklen=1024;
int main(int argc,char **argv){
char cmd[256];
char *s = getenv("MACHINE")+1;
/* construct the directory name */
/* we use the rear parts to avoid clashes */
strncat(tsName,s+1,8);
strcat(tsName,".");
s += 9;
strncat(tsName,s,3);
/*
** Create directory. This may fail if it
** exists, but don't care
*/
mkdir(tsName);
/* Make syscommand */
sprintf(cmd,"map root t:=%s",tsName);
return system(cmd));
}
This ain't tested, so beware.
Run this file in the login script after the DOS SET MACHINE line.
And hope for the best. What you should get is a drive mapping
T:\= sys/swapfiles/unique_mac_address_number/
By now I have an idea how to close the breach, but it is tedious:
Run the above program on every client as SUPERVISOR. So you'll end up
with a bunch of empty directories. In every directory, create an empty
cwsdpmi.swp file. grant everybody for each file
Read/Write/Access/Modify rights, but _no_ Create. So users can
read/write the swapfile. Hmm. Can they delete it? Not sure about that.
And I don't know if cwsdpmi really wants to create a new swapfile, or
if it can live happily with just opening it.
Oh yes, and please drop me a note if this really works. My ideas
before the coffee break tend to have some gotchas...
Ciao
Tom
******************************************************************
* Thomas Demmer * Phone : +49 234 700 6434 *
* Universitaetsstr. 150 * Fax : +49 234 709 4162 *
* Lehrstuhl fuer Stroemungsmechanik * *
* D-44780 Bochum * *
******************************************************************
* Email: demmer AT LStM DOT Ruhr-Uni-Bochum DOT De *
* WWW: http://www.lstm.ruhr-uni-bochum.de/~demmer *
******************************************************************
Erotic (adj): using a feather as a sex aid.
Kinky (adj) : using the whole duck.
- Raw text -