From 741170bc61fec1bdb89425803b21c42124dde259 Mon Sep 17 00:00:00 2001 From: Neil Robertson <> Date: Sun, 8 Jan 2017 13:38:13 -0600 Subject: [PATCH] Avios 1.5.1 (circa 28 March 1998) --- CHANGELOG | 10 ++ DOCS/commands | 38 +++++- DOCS/comp_and_run | 37 ++---- avios150.c => avios151.c | 279 ++++++++++++++++++++++++--------------- avios150.h => avios151.h | 15 ++- avprogs/ls | 53 ++++++++ avprogs/roomdata.inc | 44 ++++++ avprogs/talkserv | 2 +- init | 3 +- makefile | 40 ++++++ talkdata/passfile | 6 - 11 files changed, 382 insertions(+), 145 deletions(-) rename avios150.c => avios151.c (98%) rename avios150.h => avios151.h (96%) create mode 100644 avprogs/ls create mode 100644 avprogs/roomdata.inc create mode 100644 makefile diff --git a/CHANGELOG b/CHANGELOG index 9fee905..03f23ca 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -94,3 +94,13 @@ Versions relased so far (and the release date in DD/MM/YY format): eg: printnl -x) - Fixed bug in com_echo() (Telopt sequence being sent down wrong stream) - Minor miscellanious code changes. + +1.5.1 (x/3/98) + - Stat command now gives file owner and file group info and will recognise + fifo type files. eg: pipes. + - Added more syntax checking in com_input(). + - Fixed crash bug in process death interrupt code. + - Fixed truncated filename problem with Solaris BSD compiler directory + listing. + - Tidied up code some more. + - Added a makefile. diff --git a/DOCS/commands b/DOCS/commands index 03701e7..7bfe262 100644 --- a/DOCS/commands +++ b/DOCS/commands @@ -1,4 +1,4 @@ - *** Commands with version 1.5.0 *** + *** Commands with version 1.5.1 *** ------------------------------------------------------------------------------- @@ -794,9 +794,22 @@ naturally). An error is returned if this can't be done. stat -This gives the file type, size, permissions, last modified and last accessed -information for a filesystem entry. The last two are given as the number of -seconds since 1970. +This returns the following information: + file type, size, permissions, last modified, last accessed, owner, group + +File type will be one of the following: + dir - directory + file - regular file + link - soft link (hard links will be seen as regular files) + cdev - character device (eg: tty) + bdev - block device (eg: disk driver) + fifo - FIFO special file (eg: a pipe) + socket - AF_UNIX socket + unknown - unknown type + +The last modified and accessed fields are given as the number of seconds since +1970 which can be converted into times using the gettime command. The owner +and group fields were added in release 1.5.1. eg: printnl [gettime time [elements [stat "myfile" ] 4]] @@ -813,6 +826,23 @@ eg: chmod "myfile" 600 ------------------------------------------------------------------------------- +mkdir + +This will create a directory with the given permissions if supplied. If +they are not given then the permissions default to 0755. + +eg: mkdir "tmpdir" 700 + +------------------------------------------------------------------------------- + +rmdir + +This will remove directories. + +eg: rmdir "tmpdir" "neilsdir" + +------------------------------------------------------------------------------- + dir all/files/dirs/links/cdevs/bdevs/usocks [] This command will return a list of the specified file types in the given diff --git a/DOCS/comp_and_run b/DOCS/comp_and_run index ad38907..ae37793 100644 --- a/DOCS/comp_and_run +++ b/DOCS/comp_and_run @@ -2,26 +2,17 @@ This software has been developed and tested on Linux 1.2.13, HP-UX 10.01 & 10.20, Digital Unix 3.2 (OSF) and SunOS 5.5 (Solaris) so it should compile on -these without any problems (well ok , there may be some warnings :). Since the -code is all in one module** and all the header is just one module there is no -makefile, you just call the compiler direct from the command line (or make -up a short shell file) as so: - -Linux: cc -DLINUX avios140.c - -OSF, SunOS5.5: cc avios140.c - (For SunOS above make sure cc is a link or alias to the berkeley - compiler which is usually /usr/ucb/cc. SunOS GCC might not work) - -HP-UX 10.01: cc -Ae -DNO_USLEEP avios140.c -HP-UX 10.20: cc -Ae avios140.c - (You'll need the HP-UX ANSI compiler for both of the above) - -FreeBSD: cc -DFREEBSD avios140.c - (Some setups may have problems with the crypt() call. If this is the - case then add -DNO_CRYPT on the compile line.) - -AIX: cc avios140.c (maybe, I'm just guessing) +these without any problems (well ok , there may be some warnings :). Uncomment +the appropriate CC line in the makefile for your version of Unix and hopefully +all should be well. The runnable binary created is called "avios". + +Solaris users should note that most Solaris systems have 2 compilers +installed. One is the main Solaris one and is the BSD compatable one. +Ironically the BSD one appears to be more standardised than the Sun one +(though any users of SunOS 4 and its hopeless non-ansi compiler won't be too +shocked at this news :) and so use that in preference. It does have one +minor bug though (or rather its header files do) but this is taken care of +by a command line define. If you have a system that is not mentioned here and it compiles successfully on it please let me know what the compiler command line options are so I can @@ -30,15 +21,13 @@ the lines of "usleep() not defined" etc then use the -DNO_USLEEP option as per HP-UX 10.01. -All unix compilers default to "a.out" as the binary which you can run just by -typing the name. Avios has some command line options however which you can -use. These are: +Avios has some command line options however which you can use. These are: -i : Set the init file to something other than the default 'init'. -s : Set the syslog to write to a file rather than stdout. -d: Run as a daemon. -q: Quiet bootup mode - Don't print any non-syslog messages. - -v: Print the Avios version number. + -v: Print the Avios version number and build. -h: Print some command line option help. When Avios is running it catches a number of signals. These include control-C diff --git a/avios150.c b/avios151.c similarity index 98% rename from avios150.c rename to avios151.c index f8054b4..8ed513f 100644 --- a/avios150.c +++ b/avios151.c @@ -1,11 +1,11 @@ /**************************************************************************** - AVIOS version 1.5.0 + AVIOS version 1.5.1 A VIrtual Operating System, Copyright (C) Neil Robertson 1997-1998 - Version date: 19th January 1998 + Version date: 26th March 1998 Created out of blood and sweat using incantations of the C after dusk and - in dark dungeons found in London, England from January 1997 to January 1998. + in dark dungeons found in London, England from January 1997 to March 1998. Please read the README & COPYRIGHT files. @@ -39,11 +39,12 @@ #include #include #include +#include #include -#include "avios150.h" +#include "avios151.h" -#define VERSION "1.5.0" +#define VERSION "1.5.1" struct streams *get_stream(); int write_syslog(char *, ...); @@ -57,28 +58,12 @@ char *argv[]; { qbm=0; /* quiet bootup mode to off */ +/* Setup the build string */ +setup_build_string(); + /* Go through command line args */ parse_command_line(argc,argv); -/* Set up build parameter string. */ -build[0]='\0'; -#ifdef LINUX -strcat(build,"LINUX"); -#endif -#ifdef FREEBSD -if (build[0]) strcat(build,", "); -strcat(build,"FREEBSD"); -#endif -#ifdef NO_USLEEP -if (build[0]) strcat(build,", "); -strcat(build,"NO_USLEEP"); -#endif -#ifdef NO_CRYPT -if (build[0]) strcat(build,", "); -strcat(build,"NO_CRYPT"); -#endif -if (!build[0]) strcpy(build,"STANDARD"); - /* Startup */ if (!qbm) { printf("\n*** AVIOS version %s ***\n\n",VERSION); @@ -121,6 +106,41 @@ mainloop(); +/*** Setup the build parameter string ***/ +setup_build_string() +{ +/* Set up build parameter string. */ +build[0]='\0'; + +#ifdef LINUX +strcat(build,"LINUX"); +#endif + +#ifdef FREEBSD +if (build[0]) strcat(build,", "); +strcat(build,"FREEBSD"); +#endif + +#ifdef NO_USLEEP +if (build[0]) strcat(build,", "); +strcat(build,"NO_USLEEP"); +#endif + +#ifdef NO_CRYPT +if (build[0]) strcat(build,", "); +strcat(build,"NO_CRYPT"); +#endif + +#ifdef SUN_BSD_BUG +if (build[0]) strcat(build,", "); +strcat(build,"SUN_BSD_BUG"); +#endif + +if (!build[0]) strcpy(build,"STANDARD"); +} + + + /*** Parse the command line arguments ***/ parse_command_line(argc,argv) int argc; @@ -148,16 +168,16 @@ for(i=1;isite,""); - else if (dev) { - sprintf(text,"<%s>",devname); - set_string(¤t_pcs->site,text); - } + else + if (dev) { + sprintf(text,"<%s>",devname); + set_string(¤t_pcs->site,text); + } else set_string(¤t_pcs->site,""); current_pcs->status=RUNNING; } @@ -660,12 +679,13 @@ while(!feof(fp)) { get_stream("STDIN")->external=-1; get_stream("STDOUT")->external=-1; } - else if (dev) { - (st=get_stream("STDIN"))->external=dev; - st->device=1; - (st=get_stream("STDOUT"))->external=dev; - st->device=1; - } + else + if (dev) { + (st=get_stream("STDIN"))->external=dev; + st->device=1; + (st=get_stream("STDOUT"))->external=dev; + st->device=1; + } current_pcs->pc=current_proc->start_pos; save_process_state(current_pcs,1); @@ -1799,8 +1819,11 @@ if (pcs->death_pid && save_process_state(pcs,0); load_process_state(ipcs); - sprintf(text,"%d %s",pcs->pid,pcs->death_mesg); + + if (pcs->death_mesg) sprintf(text,"%d %s",pcs->pid,pcs->death_mesg); + else sprintf(text,"%d",pcs->pid); set_variable("$int_mesg",NULL,text,1); + ipcs->old_status=ipcs->status; ipcs->status=int_type; save_process_state(ipcs,0); @@ -4457,12 +4480,13 @@ while(1) { if (!eval_result) return OK; op=1; } - else if (!strcmp(w,"or")) { - if (pc==end) return ERR_SYNTAX; - /* If eval_result !=0 can return now */ - if (eval_result) return OK; - op=2; - } + else + if (!strcmp(w,"or")) { + if (pc==end) return ERR_SYNTAX; + /* If eval_result !=0 can return now */ + if (eval_result) return OK; + op=2; + } else if (!strcmp(w,"xor")) op=3; else if (pc==end+1) return OK; else return ERR_SYNTAX; @@ -5594,22 +5618,25 @@ for(pc2=pc+1;pc2<=prog_word[pc].end_pos;) { case MAXSTR: if (cnt==1) set_string(&result,valptr); - else if (compare_strings(result,valptr)<0) - set_string(&result,valptr); + else + if (compare_strings(result,valptr)<0) + set_string(&result,valptr); break; case MINSTR: if (cnt==1) set_string(&result,valptr); - else if (compare_strings(result,valptr)>0) - set_string(&result,valptr); + else + if (compare_strings(result,valptr)>0) + set_string(&result,valptr); break; case PRINT : case PRINTNL : if (valptr!=NULL) { if (mesg_q) append_string(&result,valptr); - else if ((ret=write_stream(valptr))!=OK) - return ret; + else + if ((ret=write_stream(valptr))!=OK) + return ret; } break; @@ -5643,14 +5670,16 @@ for(pc2=pc+1;pc2<=prog_word[pc].end_pos;) { case MAXCOM: case MAXSTR: if (cnt==1) set_string(&result,w); - else if (compare_strings(result,w)<0) - set_string(&result,w); + else + if (compare_strings(result,w)<0) + set_string(&result,w); break; case MINSTR: if (cnt==1) set_string(&result,w); - else if (compare_strings(result,w)>0) - set_string(&result,w); + else + if (compare_strings(result,w)>0) + set_string(&result,w); break; case PRINT : @@ -5747,22 +5776,25 @@ for(pc2=pc+1;pc2<=prog_word[pc].end_pos;) { case MAXSTR: if (cnt==1) set_string(&result,valptr); - else if (compare_strings(result,valptr)<0) - set_string(&result,valptr); + else + if (compare_strings(result,valptr)<0) + set_string(&result,valptr); break; case MINSTR: if (cnt==1) set_string(&result,valptr); - else if (compare_strings(result,valptr)>0) - set_string(&result,valptr); + else + if (compare_strings(result,valptr)>0) + set_string(&result,valptr); break; case PRINT : case PRINTNL : if (valptr!=NULL) { if (mesg_q) append_string(&result,valptr); - else if ((ret=write_stream(valptr))!=OK) - return ret; + else + if ((ret=write_stream(valptr))!=OK) + return ret; } break; @@ -6490,9 +6522,10 @@ while(1) { real_line=new_real_line; return ret; } } - else if ((ret=set_variable(newvar,proc,rstack_ptr->value,1))!=OK) { - real_line=new_real_line; return ret; - } + else + if ((ret=set_variable(newvar,proc,rstack_ptr->value,1))!=OK) { + real_line=new_real_line; return ret; + } } pc2++; } @@ -6625,12 +6658,19 @@ return ERR_INTERNAL; com_input(com_num,pc) int com_num,pc; { -int ret; +int ret,pc2; if (current_instream==NULL) return ERR_INVALID_STREAM; if (current_instream->block && current_pcs->status==INPUT_WAIT) return OK; + if (prog_word[pc].end_pos - pc<1) return ERR_SYNTAX; +/* Check variable names given are ok */ +for(pc2=pc+1;pc2<=prog_word[pc].end_pos;++pc2) { + if (isinteger(prog_word[pc2].word,1) || + !isalnumstr(prog_word[pc2].word)) return ERR_INVALID_ARGUMENT; + } + /* If theres no flag set then either we have just got to the input command or the data is ready for us to read out the buffer. */ if (current_pcs->input_buff==NULL && !current_pcs->eof) { @@ -6661,6 +6701,8 @@ com_strings1(com_num,pc) int com_num,pc; { struct stat fs; +struct passwd *pwd; +struct group *grp; int ret,len,val,legal,dup; char *valptr,*result,*s,*s2,*e,*e2,c,c2; char pathname[100],type[10]; @@ -6781,16 +6823,31 @@ switch(com_num) { return ERR_CANT_STAT_FS_ENTRY; } + /* Get type */ switch(fs.st_mode & S_IFMT) { - case S_IFDIR: strcpy(type,"dir"); break; - case S_IFREG: strcpy(type,"file"); break; - case S_IFLNK: strcpy(type,"link"); break; - case S_IFCHR: strcpy(type,"cdev"); break; - case S_IFBLK: strcpy(type,"bdev"); break; + case S_IFDIR : strcpy(type,"dir"); break; + case S_IFREG : strcpy(type,"file"); break; + case S_IFLNK : strcpy(type,"link"); break; + case S_IFCHR : strcpy(type,"cdev"); break; + case S_IFBLK : strcpy(type,"bdev"); break; + case S_IFIFO : strcpy(type,"fifo"); break; case S_IFSOCK: strcpy(type,"socket"); break; default: strcpy(type,"unknown"); } + + /* Get main file data */ sprintf(text,"%s %d %03o %d %d",type,(int)fs.st_size,fs.st_mode & 0x1FF,(int)fs.st_mtime,(int)fs.st_atime); + + /* Get owner */ + if ((pwd=getpwuid(fs.st_uid))==NULL) + sprintf(text,"%s %d",text,fs.st_uid); + else sprintf(text,"%s %s",text,pwd->pw_name); + + /* Get group */ + if ((grp=getgrgid(fs.st_gid))==NULL) + sprintf(text,"%s %d",text,fs.st_gid); + else sprintf(text,"%s %s",text,grp->gr_name); + return push_rstack(text); } return ERR_INTERNAL; @@ -7213,8 +7270,9 @@ if (isnull(valptr[2])) { com_num==INSERTELEM || com_num==OVERELEM) return ERR_INVALID_ARGUMENT; } -else if (!isinteger(valptr[2],0) || (num2=atoi(valptr[2]))<1) - return ERR_INVALID_ARGUMENT; +else +if (!isinteger(valptr[2],0) || (num2=atoi(valptr[2]))<1) + return ERR_INVALID_ARGUMENT; /* Do command specific stuff. Remember that strings start at position _1_ in @@ -7689,8 +7747,10 @@ int ret,whence; if (prog_word[pc].end_pos - pc < 2) return ERR_SYNTAX; if (!strcmp(prog_word[pc+1].word,"start")) whence=SEEK_SET; -else if (!strcmp(prog_word[pc+1].word,"current")) whence=SEEK_CUR; - else return ERR_SYNTAX; +else +if (!strcmp(prog_word[pc+1].word,"current")) whence=SEEK_CUR; +else return ERR_SYNTAX; + pc+=2; if ((ret=push_rstack_result(&pc,STRING_ILLEGAL))!=OK) return ret; return seek_stream(com_num,whence,atoi(rstack_ptr->value)); @@ -7704,7 +7764,7 @@ com_dir(com_num,pc) int com_num,pc; { DIR *dir; -struct dirent *ds; +avios_dirent ds; struct stat fs; int com,ret,type,v,v2,pc2; char *list,pathname[ARR_SIZE],filename[ARR_SIZE]; @@ -7717,6 +7777,7 @@ NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL }; +/* Check syntax */ if (prog_word[pc].end_pos - pc<2) return ERR_SYNTAX; pc2=pc+1; for(com=0;com<7;++com) @@ -7744,7 +7805,7 @@ while(pc2<=prog_word[pc].end_pos) { } list=NULL; -while((ds=readdir(dir))!=NULL) { +while((ds=(avios_dirent)readdir(dir))!=NULL) { sprintf(filename,"%s/%s",pathname,ds->d_name); lstat(filename,&fs); type=fs.st_mode & S_IFMT; @@ -7845,8 +7906,9 @@ for(pc2=pc;pc2<=endpos;) { else { if (strchr("diouxXeE",c2)) sprintf(text,fptr_start,atoi(val)); - else if (strchr("fgG",c2)) - sprintf(text,fptr_start,(float)atof(val)); + else + if (strchr("fgG",c2)) + sprintf(text,fptr_start,(float)atof(val)); else { /* Try and prevent overflow of text array */ if (strlen(val)>ARR_SIZE) @@ -8333,9 +8395,10 @@ if (len<2) return ERR_SYNTAX; if (!strcmp(prog_word[pc+1].word,"from")) { if (len<3) return ERR_SYNTAX; } -else if (!strcmp(prog_word[pc+1].word,"ignore")) { - if (len!=2) return ERR_SYNTAX; - } +else +if (!strcmp(prog_word[pc+1].word,"ignore")) { + if (len!=2) return ERR_SYNTAX; + } else return ERR_SYNTAX; w=prog_word[pc+2].word; diff --git a/avios150.h b/avios151.h similarity index 96% rename from avios150.h rename to avios151.h index b61df49..f009751 100644 --- a/avios150.h +++ b/avios151.h @@ -1,5 +1,5 @@ /****************************************************************************** - AVIOS 1.5.0 header file + AVIOS 1.5.1 header file Copyright (C) Neil Robertson 1997-1998 ******************************************************************************/ @@ -715,6 +715,19 @@ char *colcom[NUM_COLS]={ "BB","BM","BT","BW" }; +#ifdef SUN_BSD_BUG +/* The structure the bsd libs require. This is set up incorrectly in + the Solaris header files for the BSD readdir func as it contains an extra + field which it doesn't want which in turn causes incorrect data. */ +typedef struct { + ino_t d_ino; /* "inode number" of entry */ + off_t d_off; /* offset of disk directory entry */ + char d_name[1]; /* A pointer won't work here for some reason */ + }* avios_dirent; +#else +typedef struct dirent* avios_dirent; +#endif + /* Other globals */ int num_words,be_daemon,max_processes,max_mesgs,max_errors,exit_remain; int swapout_after,process_count,memory_reserve,eval_result,real_line; diff --git a/avprogs/ls b/avprogs/ls new file mode 100644 index 0000000..4f50488 --- /dev/null +++ b/avprogs/ls @@ -0,0 +1,53 @@ +# This prints out (in a slightly different format) the same data as the +# Unix "ls" command for the current directory. + +&stdalias.inc + +proc main +var @files @permprint +var dirname s filename stats +var perm user group world +var time + +set permprint "--- --x -w- -wx r-- r-x rw- rwx" + +while TRUE + do + print "Enter directory> " + input dirname + until dirname!="" + + if [trap [set files [dir all dirname]]]!=OK + printnl "No such directory."; continue + fi + foreach s filename in files + if [midstr dirname [strlen dirname]]="/" + set filename [format "%s%s" dirname filename] + else + set filename [format "%s/%s" dirname filename] + fi + set stats [stat filename] + + # Type and size + print [format "%-6s %7d %-8s %-8s " \ + [elements stats 1] \ + [elements stats 2] \ + [elements stats 6] \ + [elements stats 7]] + + # Print permissions like ls command + set perm [elements stats 3] + set user [math [midstr perm 1]+1] + print permprint:user + set group [math [midstr perm 2]+1] + print permprint:group + set world [math [midstr perm 3]+1] + print permprint:world " " + + # Print date & time & name + set time [elements stats 4] + printnl [gettime date time] " " [gettime time time] " " filename + nexteach +wend +endproc + diff --git a/avprogs/roomdata.inc b/avprogs/roomdata.inc new file mode 100644 index 0000000..6e8615b --- /dev/null +++ b/avprogs/roomdata.inc @@ -0,0 +1,44 @@ + +#--------------- Set up room descriptions & links---------------- + +set roomdesc:"hallway" "\ +You are in the hallway. It is a shabby affair and you'd rather not stay here\n\ +any longer than you have to.\n" + +set roomdesc:"office" "\ +The office is a dull place. A broken typewriter lies on a desk strewn with\n\ +faded yellow papers and a windows lets in the view from the front of the\n\ +house beyond which reality seems to disappear into a shimmering mist.\n" + +set roomdesc:"lounge" "\ +You are in the lounge. It has a fireplace burning in the corner and lots of\n\ +impressive pictures around the walls.\n" + +set roomdesc:"toilet" "\ +You are in the smelly toilet. What more needs to be said?\n" + +set roomdesc:"garden" "\ +You are in the garden. Lush green grass is bordered by hedge that is full of\n\ +tweeting birds and buzzing bees.\n" + + +set roomlinks:"hallway" "lounge office toilet garden" +set roomlinks:"office" "hallway" +set roomlinks:"lounge" "hallway toilet" +set roomlinks:"toilet" "lounge hallway" +set roomlinks:"garden" "hallway" + +set roomtopic:"hallway" "" +set roomtopic:"office" "" +set roomtopic:"lounge" "" +set roomtopic:"toilet" "" +set roomtopic:"garden" "" + +# Private/public, mesg count, user count +set roomdata:"hallway" "0 0 0" +set roomdata:"office" "0 0 0" +set roomdata:"lounge" "0 0 0" +set roomdata:"toilet" "0 0 0" +set roomdata:"garden" "0 0 0" + + diff --git a/avprogs/talkserv b/avprogs/talkserv index 1ccc911..707e138 100644 --- a/avprogs/talkserv +++ b/avprogs/talkserv @@ -28,7 +28,7 @@ var @commands #--------------- Load room descriptions & links---------------- -&roomdata +&roomdata.inc #------------------ Main procedure ------------------ proc main diff --git a/init b/init index b6dc19b..153e6a4 100644 --- a/init +++ b/init @@ -15,7 +15,7 @@ max_mesgs 10 #exit_remain 0 swapout_after 10 connect_timeout 1 -tuning_delay 50 +#tuning_delay 50 PROCESSES: @@ -32,3 +32,4 @@ BACK,20 talkserv talkserv #BACK virus2 virus2 #BACK sendprog sendprog #BACK killer killer +#TERM ls ls diff --git a/makefile b/makefile new file mode 100644 index 0000000..36df30e --- /dev/null +++ b/makefile @@ -0,0 +1,40 @@ +# Uncomment the cc line for your version of Unix. If I knew how to use +# Configure to create a makefile I would but I don't so you'll have to +# figure it out for yourselves. Aww , poor bunnies :) + +CC=PLEASE SET COMPILE OPTION IN MAKEFILE + +# HP-UX ver 10.01 +#CC=cc -Ae -DNO_USLEEP + +# HP-UX above 10.01 +#CC=cc -Ae + +# Linux +#CC=cc -DLINUX + +# Solaris using BSD compiler. This is the preferred option for Solaris as +# it has the usleep() function. +#CC=/usr/ucb/cc -DSUN_BSD_BUG -lsocket -lnsl + +# Solaris using main compiler. Only use this if you don't have the +# BSD compiler installed as it doesn't support usleep(). +#CC=cc -DNO_USLEEP -lsocket -lnsl + +# FreeBSD +#CC=cc -DFREEBSD + +# FreeBSD with alternative crpyt libraries +#CC=cc -DFREEBSD -lcrypt_i + +# FreeBSD without any crypt libraries +#CC=cc -DFREEBSD -DNO_CRYPT + +# Dynix? +#CC=cc -lsocket -lnsl + +# OSF, AIX or anything else I don't know about. +#CC=cc + +avios: avios151.c avios151.h makefile + $(CC) avios151.c -o avios diff --git a/talkdata/passfile b/talkdata/passfile index 8bfe201..9823f4a 100644 --- a/talkdata/passfile +++ b/talkdata/passfile @@ -1,8 +1,2 @@ NUKyNCCLvgLH. Neil is a happy bunny wunny NUKyNCCLvgLH. Fred Bloggs -NUUCME.APGiLM Dick - a newbie -NUoFB1pvDhQZA Shit - a newbie -NUKyNCCLvgLH. Tom - a newbie -NUHVh43cN7aI6 DonBastardos - a newbie -NUKyNCCLvgLH. Idiot - a newbie -NUFguwzx7wYtc Idiot2 - a newbie