diff -c gopher+/Makefile:3.8 gopher+/Makefile:3.9 *** gopher+/Makefile:3.8 Thu Aug 12 02:35:15 1993 --- gopher+/Makefile Thu Aug 12 02:35:15 1993 *************** *** 1,7 **** #******************************************************************** # $Author: lindner $ ! # $Revision: 3.8 $ ! # $Date: 1993/08/05 22:22:40 $ # $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/Makefile,v $ # $State: Exp $ # --- 1,7 ---- #******************************************************************** # $Author: lindner $ ! # $Revision: 3.9 $ ! # $Date: 1993/08/12 06:34:23 $ # $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/Makefile,v $ # $State: Exp $ # *************** *** 15,20 **** --- 15,23 ---- #********************************************************************* # Revision History: # $Log: Makefile,v $ + # Revision 3.9 1993/08/12 06:34:23 lindner + # Added quicktar.. + # # Revision 3.8 1993/08/05 22:22:40 lindner # warning message for archive # *************** *** 116,121 **** --- 119,129 ---- zip -@ $$HERE.zip <$$HERE/MANIFEST @echo "Did you remember to update the patchlevel.h Paul?..." @echo "Hmmm... Hmmmm...." + + quicktar: + HERE=`basename $$PWD`; \ + cd .. ; \ + /usr/gnu/bin/tar -T $$HERE/MANIFEST -czvf $$HERE.tar.Z ;\ tags: etags `find . -print | egrep '\.[ch]$$'` diff -c gopher+/conf.h:3.6 gopher+/conf.h:3.7 *** gopher+/conf.h:3.6 Thu Aug 12 02:35:16 1993 --- gopher+/conf.h Thu Aug 12 02:35:16 1993 *************** *** 1,7 **** /******************************************************************** * $Author: lindner $ ! * $Revision: 3.6 $ ! * $Date: 1993/08/04 22:07:42 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/conf.h,v $ * $State: Exp $ * --- 1,7 ---- /******************************************************************** * $Author: lindner $ ! * $Revision: 3.7 $ ! * $Date: 1993/08/12 06:35:08 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/conf.h,v $ * $State: Exp $ * *************** *** 15,20 **** --- 15,23 ---- ********************************************************************* * Revision History: * $Log: conf.h,v $ + * Revision 3.7 1993/08/12 06:35:08 lindner + * Don't override CONF_FILE definition, use mail instead of /bin/mail for VMS + * * Revision 3.6 1993/08/04 22:07:42 lindner * Use /bin/mail instead of ucbmail * *************** *** 130,136 **** #endif #ifndef MAIL_COMMAND ! #define MAIL_COMMAND "/bin/mail" #endif #ifndef TELNET_COMMAND --- 133,143 ---- #endif #ifndef MAIL_COMMAND ! # ifdef VMS ! # define MAIL_COMMAND "mail" ! # else ! # define MAIL_COMMAND "/bin/mail" ! # endif #endif #ifndef TELNET_COMMAND *************** *** 186,189 **** /* We need to define this since inetd.conf can only have a few arguments, and we need lots of them */ ! #define CONF_FILE "/usr/local/etc/gopherd.conf" --- 193,199 ---- /* We need to define this since inetd.conf can only have a few arguments, and we need lots of them */ ! ! #if !defined(CONF_FILE) ! # define CONF_FILE "/usr/local/etc/gopherd.conf" ! #endif diff -c gopher+/patchlevel.h:3.5 gopher+/patchlevel.h:3.6 *** gopher+/patchlevel.h:3.5 Thu Aug 12 02:35:17 1993 --- gopher+/patchlevel.h Thu Aug 12 02:35:17 1993 *************** *** 5,8 **** #define GOPHER_MAJOR_VERSION "2" #define GOPHER_MINOR_VERSION "0" ! #define PATCHLEVEL 4 --- 5,8 ---- #define GOPHER_MAJOR_VERSION "2" #define GOPHER_MINOR_VERSION "0" ! #define PATCHLEVEL 5 diff -c gopher+/doc/client.changes:3.9 gopher+/doc/client.changes:3.10 *** gopher+/doc/client.changes:3.9 Thu Aug 12 02:35:20 1993 --- gopher+/doc/client.changes Thu Aug 12 02:35:20 1993 *************** *** 1,4 **** ! $Id: client.changes,v 3.9 1993/08/06 14:41:47 lindner Exp $ Gopher+2.0 patchlevel 3 ----------------------- --- 1,18 ---- ! $Id: client.changes,v 3.10 1993/08/12 07:34:03 lindner Exp $ ! ! Gopher+2.0 patchlevel 5 ! ----------------------- ! * Fix for really long strings in some menus ! ! * Get rid of the beep during a ^G in CURwgetstr(). ! ! * Make CURChoice() delete its window when it exits. ! ! * Fixes for CMULIB and NETLIB for VMS ! ! * Mods for VMS for telnet dialog, argv[0] ! ! * use x-troff instead of troff in gopher.rc Gopher+2.0 patchlevel 3 ----------------------- diff -c gopher+/doc/gophfilt.1:3.1 gopher+/doc/gophfilt.1:3.2 *** gopher+/doc/gophfilt.1:3.1 Thu Aug 12 02:35:22 1993 --- gopher+/doc/gophfilt.1 Thu Aug 12 02:35:23 1993 *************** *** 76,81 **** --- 76,83 ---- .SH MORE EXAMPLES .PP Here is an example that demonstrates the usefulness of the gophfilt. + This specific example only works on the Rutgers campus, but illustrates + the point .PP gophfilt -t 0 -p "webster default SPELL" -i flatulence .RS 2 diff -c gopher+/doc/server.changes:3.9 gopher+/doc/server.changes:3.10 *** gopher+/doc/server.changes:3.9 Thu Aug 12 02:35:25 1993 --- gopher+/doc/server.changes Thu Aug 12 02:35:25 1993 *************** *** 1,4 **** ! $Id: server.changes,v 3.9 1993/08/06 14:41:51 lindner Exp $ Gopher+2.0 patchlevel 4 --- 1,31 ---- ! $Id: server.changes,v 3.10 1993/08/12 07:33:52 lindner Exp $ ! ! Gopher+2.0 patchlevel 5 ! ----------------------- ! ! * Added fi for gopherindex install ! ! * Fix for error logging and uninitialized gs in ftp.c ! ! * Fix for hanging ftp gateway connections, die instead of spinning ! ! * Get rid of errant message when using inetd (-u warning) ! ! * Fix for text/plain files for gopher0 clients. ! ! * Remove extensions from titles for files with multiple views. ! ! * Move CMDfromNet() to *after* the chroot() and setuid() ! ! * Fix for send_binary bug (not enough params in specialfile() ! ! * Fix for wais gateway and Unix client ! ! * Fixed bogus reading of .cache+ files ! ! * return true for non-existant cache file in Cachetimedout(), not -1 ! ! * Don't let the security stuff trap ask blocks Gopher+2.0 patchlevel 4 diff -c gopher+/gopher/CURcurses.c:3.9 gopher+/gopher/CURcurses.c:3.12 *** gopher+/gopher/CURcurses.c:3.9 Thu Aug 12 02:35:29 1993 --- gopher+/gopher/CURcurses.c Thu Aug 12 02:35:29 1993 *************** *** 1,7 **** /******************************************************************** * $Author: lindner $ ! * $Revision: 3.9 $ ! * $Date: 1993/07/30 17:31:34 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/gopher/CURcurses.c,v $ * $State: Exp $ * --- 1,7 ---- /******************************************************************** * $Author: lindner $ ! * $Revision: 3.12 $ ! * $Date: 1993/08/12 06:32:06 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/gopher/CURcurses.c,v $ * $State: Exp $ * *************** *** 15,20 **** --- 15,31 ---- ********************************************************************* * Revision History: * $Log: CURcurses.c,v $ + * Revision 3.12 1993/08/12 06:32:06 lindner + * Add needed variable + * + * Revision 3.11 1993/08/09 20:44:48 lindner + * Fix for really long strings + * + * Revision 3.10 1993/08/09 20:29:50 lindner + * Get rid of the beep during a ^G in CURwgetstr(). + * + * Make CURChoice() delete its window when it exits. + * * Revision 3.9 1993/07/30 17:31:34 lindner * Mods to support AskP: * *************** *** 387,393 **** break; case '\007': /*** ^G cancel... ***/ - CURBeep(cur); wstandend(win); return(-1); break; --- 398,403 ---- *************** *** 744,751 **** /** Add the message **/ for (i=0; i messlength) { ! for (j=0; j < messlength; j++) ! waddch(tempwin, Message[i][j]); ! } ! else ! waddstr(tempwin, Message[i]); ! } *************** *** 1010,1023 **** i = CURwgetch(cur, tempwin); wrefresh(tempwin); switch (i) { ! case '\007': return(-1); ! case '\n': return(default_choice); } if (i < '1' || i > ('0'+numchoices)) CURBeep(cur); ! else return(i-'1'); } } --- 1029,1048 ---- i = CURwgetch(cur, tempwin); wrefresh(tempwin); switch (i) { ! case '\007': ! delwin(tempwin); ! return(-1); ! case '\n': ! delwin(tempwin); ! return(default_choice); } if (i < '1' || i > ('0'+numchoices)) CURBeep(cur); ! else { ! delwin(tempwin); return(i-'1'); + } } } diff -c gopher+/gopher/cmuip.opt:3.1 gopher+/gopher/cmuip.opt:3.2 *** gopher+/gopher/cmuip.opt:3.1 Thu Aug 12 02:35:32 1993 --- gopher+/gopher/cmuip.opt Thu Aug 12 02:35:32 1993 *************** *** 1,3 **** ! identification="CMUIP-1.12" sys$library:neterror sys$share:vaxcrtl.exe/share --- 1,3 ---- ! identification="CMUIP-2.04" sys$library:neterror sys$share:vaxcrtl.exe/share diff -c gopher+/gopher/download.c:3.7 gopher+/gopher/download.c:3.8 *** gopher+/gopher/download.c:3.7 Thu Aug 12 02:35:33 1993 --- gopher+/gopher/download.c Thu Aug 12 02:35:33 1993 *************** *** 1,7 **** /******************************************************************** * $Author: lindner $ ! * $Revision: 3.7 $ ! * $Date: 1993/07/30 17:36:54 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/gopher/download.c,v $ * $State: Exp $ * --- 1,7 ---- /******************************************************************** * $Author: lindner $ ! * $Revision: 3.8 $ ! * $Date: 1993/08/09 20:39:55 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/gopher/download.c,v $ * $State: Exp $ * *************** *** 15,20 **** --- 15,23 ---- ********************************************************************* * Revision History: * $Log: download.c,v $ + * Revision 3.8 1993/08/09 20:39:55 lindner + * fix for VMS + * * Revision 3.7 1993/07/30 17:36:54 lindner * More secure download in /tmp * *************** *** 151,160 **** --- 154,170 ---- } } + #ifdef VMS if (chdir("/tmp")!=0) { + CursesErrorMsg("Can't write to SYS$SCRATCH!"); + return; + } + #else + if (chdir("/tmp")!=0) { CursesErrorMsg("Can't write to the /tmp directory!"); return; } + #endif /** Make sure we don't overwrite an existing file ... **/ while (stat(tmpfilename, &buf) == 0) { diff -c gopher+/gopher/gopher.c:3.27 gopher+/gopher/gopher.c:3.29 *** gopher+/gopher/gopher.c:3.27 Thu Aug 12 02:35:35 1993 --- gopher+/gopher/gopher.c Thu Aug 12 02:35:35 1993 *************** *** 1,7 **** /******************************************************************** * $Author: lindner $ ! * $Revision: 3.27 $ ! * $Date: 1993/08/05 03:24:21 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/gopher/gopher.c,v $ * $State: Exp $ * --- 1,7 ---- /******************************************************************** * $Author: lindner $ ! * $Revision: 3.29 $ ! * $Date: 1993/08/09 20:28:04 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/gopher/gopher.c,v $ * $State: Exp $ * *************** *** 15,20 **** --- 15,26 ---- ********************************************************************* * Revision History: * $Log: gopher.c,v $ + * Revision 3.29 1993/08/09 20:28:04 lindner + * Mods for VMS for telnet dialog, argv[0] + * + * Revision 3.28 1993/08/09 20:17:59 lindner + * Fixes for CMULIB and NETLIB for VMS + * * Revision 3.27 1993/08/05 03:24:21 lindner * Fix for control-c on startup * *************** *** 187,205 **** clear(); Dialogmess[0] = "Warning!!!!!, you are about to leave the Internet"; Dialogmess[1] = "Gopher program and connect to another host. If"; ! Dialogmess[2] = "you get stuck press the control key and the ] key,"; ! Dialogmess[3] = "and then type quit"; Dialogmess[4] = ""; if (GSgetPort(ZeGopher) != 0) ! sprintf(sMessage1,"Connecting to %s, port %d using %s.", GSgetHost(ZeGopher),GSgetPort(ZeGopher), (GSgetType(ZeGopher) == A_TN3270) ? "tn3270" : "telnet"); else ! sprintf(sMessage1, "Connecting to %s using %s.", GSgetHost(ZeGopher),(GSgetType(ZeGopher) == A_TN3270) ? "tn3270" : "telnet"); Dialogmess[5] = sMessage1; if (*GSgetPath(ZeGopher) != '\0') ! sprintf(sMessage2,"Use the account name \"%s\" to log in", GSgetPath(ZeGopher)); else sMessage2[0] = '\0'; --- 193,219 ---- clear(); Dialogmess[0] = "Warning!!!!!, you are about to leave the Internet"; Dialogmess[1] = "Gopher program and connect to another host. If"; ! Dialogmess[2] = "you get stuck press the control key and the"; ! #ifdef VMS ! Dialogmess[3] = "^ key, and then type q."; ! #else ! Dialogmess[3] = "] key, and then type quit"; ! #endif Dialogmess[4] = ""; if (GSgetPort(ZeGopher) != 0) ! sprintf(sMessage1,"Connecting to %.40s, port %d using %s.", ! GSgetHost(ZeGopher),GSgetPort(ZeGopher), ! (GSgetType(ZeGopher) == A_TN3270) ? "tn3270" : "telnet"); else ! sprintf(sMessage1, "Connecting to %.40s using %s.", ! GSgetHost(ZeGopher), ! (GSgetType(ZeGopher) == A_TN3270) ? "tn3270" : "telnet"); Dialogmess[5] = sMessage1; if (*GSgetPath(ZeGopher) != '\0') ! sprintf(sMessage2,"Use the account name \"%.40s\" to log in", GSgetPath(ZeGopher)); else sMessage2[0] = '\0'; *************** *** 221,227 **** RCdisplayCommand(GlobalRC, "Terminal/telnet", GSgetHost(ZeGopher), sTelCmd); if (GSgetPort(ZeGopher) != 0 && GSgetPort(ZeGopher) != 23) ! #if defined(VMS) && defined(MULTINET) sprintf(sTelCmd+strlen(sTelCmd), "/PORT=%d", GSgetPort(ZeGopher)); #else --- 235,241 ---- RCdisplayCommand(GlobalRC, "Terminal/telnet", GSgetHost(ZeGopher), sTelCmd); if (GSgetPort(ZeGopher) != 0 && GSgetPort(ZeGopher) != 23) ! #if defined(VMS) && (defined(MULTINET) || defined(CMUIP)) sprintf(sTelCmd+strlen(sTelCmd), "/PORT=%d", GSgetPort(ZeGopher)); #else *************** *** 704,709 **** --- 718,727 ---- DispStrings[2] = "Unable to allocate a socket."; break; case -4: + #if defined(VMS) && defined(MULTINET) + sprintf(DispString2, "%.78s.", vms_errno_string()); + DispStrings[2] = DispString2; + #else if (errno > 0 && errno <= sys_nerr) { sprintf(DispString2, "Connection failed: %s.", sys_errlist[errno]); *************** *** 710,715 **** --- 728,734 ---- DispStrings[2] = DispString2; } else DispStrings[2] = "Connection to remote host failed."; + #endif break; default: DispStrings[2] = "Unknown error."; *************** *** 1083,1088 **** --- 1102,1112 ---- int Garbled = TRUE; boolean Bkmarksfirst = FALSE; + + #ifdef VMS + argv[0] = "gopher"; + #endif + for (i=0; i<2; i++) { RootGophers[i] = GSnew(); GSsetType (RootGophers[i], A_DIRECTORY); *************** *** 1143,1151 **** if (errflag) { - #ifdef VMS - argv[0] = "gopher"; - #endif fprintf(stderr, "Usage: %s [-sSbDr] [-T type] [-p path] [-t title] [hostname port]+\n", argv[0]); fprintf(stderr, " -s secure mode, users without own account\n"); --- 1167,1172 ---- *************** *** 1185,1193 **** /*** If the title hasn't been set, then add a default title **/ if (GSgetTitle(RootGophers[0]) == NULL) { ! sprintf(sTmp, "Root gopher server: %s", GSgetHost(RootGophers[0])); GSsetTitle(RootGophers[0], sTmp); ! sprintf(sTmp, "Root gopher server: %s", GSgetHost(RootGophers[1])); GSsetTitle(RootGophers[1], sTmp); } --- 1206,1214 ---- /*** If the title hasn't been set, then add a default title **/ if (GSgetTitle(RootGophers[0]) == NULL) { ! sprintf(sTmp, "Root gopher server: %.59s", GSgetHost(RootGophers[0])); GSsetTitle(RootGophers[0], sTmp); ! sprintf(sTmp, "Root gopher server: %.59s", GSgetHost(RootGophers[1])); GSsetTitle(RootGophers[1], sTmp); } diff -c gopher+/gopher/gopher.rc:3.6 gopher+/gopher/gopher.rc:3.7 *** gopher+/gopher/gopher.rc:3.6 Thu Aug 12 02:35:39 1993 --- gopher+/gopher/gopher.rc Thu Aug 12 02:35:39 1993 *************** *** 1,7 **** #******************************************************************** # $Author: lindner $ ! # $Revision: 3.6 $ ! # $Date: 1993/07/27 05:28:50 $ # $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/gopher/gopher.rc,v $ # $State: Exp $ # --- 1,7 ---- #******************************************************************** # $Author: lindner $ ! # $Revision: 3.7 $ ! # $Date: 1993/08/12 06:32:43 $ # $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/gopher/gopher.rc,v $ # $State: Exp $ # *************** *** 15,20 **** --- 15,23 ---- #********************************************************************* # Revision History: # $Log: gopher.rc,v $ + # Revision 3.7 1993/08/12 06:32:43 lindner + # Fix for x-troff + # # Revision 3.6 1993/07/27 05:28:50 lindner # Mondo Debug overhaul from Mitra # *************** *** 42,48 **** map: image/ppm,|xv,|pnmtops | lpr map: Text/x-dvi,xdvi %s,lpr %s map: application/postscript,gspreview %s,lpr %s ! map: Text/troff,nroff %s|more -d,ptroff %s map: Text/richtext,richtext %s|Less -f -r,lpr %s # # Set preference values for each gopher+ type --- 45,51 ---- map: image/ppm,|xv,|pnmtops | lpr map: Text/x-dvi,xdvi %s,lpr %s map: application/postscript,gspreview %s,lpr %s ! map: Text/x-troff,nroff %s|more -d,ptroff %s map: Text/richtext,richtext %s|Less -f -r,lpr %s # # Set preference values for each gopher+ type diff -c gopher+/gopher/netlib.opt:3.1 gopher+/gopher/netlib.opt:3.2 *** gopher+/gopher/netlib.opt:3.1 Thu Aug 12 02:35:40 1993 --- gopher+/gopher/netlib.opt Thu Aug 12 02:35:40 1993 *************** *** 1,3 **** ! identification = "NETLIB-1.12" sys$share:netlib_shrxfr/shareable sys$share:vaxcrtl/shareable --- 1,3 ---- ! identification = "NETLIB-2.05" sys$share:netlib_shrxfr/shareable sys$share:vaxcrtl/shareable diff -c gopher+/gopherd/Makefile:3.7 gopher+/gopherd/Makefile:3.8 *** gopher+/gopherd/Makefile:3.7 Thu Aug 12 02:35:44 1993 --- gopher+/gopherd/Makefile Thu Aug 12 02:35:44 1993 *************** *** 1,7 **** #******************************************************************** # $Author: lindner $ ! # $Revision: 3.7 $ ! # $Date: 1993/08/05 22:20:19 $ # $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/gopherd/Makefile,v $ # $State: Exp $ # --- 1,7 ---- #******************************************************************** # $Author: lindner $ ! # $Revision: 3.8 $ ! # $Date: 1993/08/10 20:26:21 $ # $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/gopherd/Makefile,v $ # $State: Exp $ # *************** *** 15,20 **** --- 15,23 ---- #********************************************************************* # Revision History: # $Log: Makefile,v $ + # Revision 3.8 1993/08/10 20:26:21 lindner + # Added fi for gopherindex install + # # Revision 3.7 1993/08/05 22:20:19 lindner # Only install gopherindex if built # *************** *** 142,148 **** $(INSTALL) $(TARGET) $(SERVERDIR) $(INSTALL) gopherd.conf $(SERVERDIR) if [ -f gopherindex ]; then \ ! $(INSTALL) gopherindex $(SERVERDIR) -rm $(SERVERDIR)/gopherls $(SERVERDIR)/gindexd -ln -s $(SERVERDIR)/$(TARGET) $(SERVERDIR)/gopherls -ln -s $(SERVERDIR)/$(TARGET) $(SERVERDIR)/gindexd --- 145,152 ---- $(INSTALL) $(TARGET) $(SERVERDIR) $(INSTALL) gopherd.conf $(SERVERDIR) if [ -f gopherindex ]; then \ ! $(INSTALL) gopherindex $(SERVERDIR); \ ! fi -rm $(SERVERDIR)/gopherls $(SERVERDIR)/gindexd -ln -s $(SERVERDIR)/$(TARGET) $(SERVERDIR)/gopherls -ln -s $(SERVERDIR)/$(TARGET) $(SERVERDIR)/gindexd diff -c gopher+/gopherd/ftp.c:3.8 gopher+/gopherd/ftp.c:3.10 *** gopher+/gopherd/ftp.c:3.8 Thu Aug 12 02:35:45 1993 --- gopher+/gopherd/ftp.c Thu Aug 12 02:35:45 1993 *************** *** 1,7 **** /******************************************************************** * $Author: lindner $ ! * $Revision: 3.8 $ ! * $Date: 1993/08/03 20:43:54 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/gopherd/ftp.c,v $ * $State: Exp $ * --- 1,7 ---- /******************************************************************** * $Author: lindner $ ! * $Revision: 3.10 $ ! * $Date: 1993/08/11 14:41:48 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/gopherd/ftp.c,v $ * $State: Exp $ * *************** *** 15,20 **** --- 15,26 ---- ********************************************************************* * Revision History: * $Log: ftp.c,v $ + * Revision 3.10 1993/08/11 14:41:48 lindner + * Fix for error logging and uninitialized gs + * + * Revision 3.9 1993/08/11 14:08:39 lindner + * Fix for hanging ftp gateway connections + * * Revision 3.8 1993/08/03 20:43:54 lindner * Fix for sites that have @ -> for symbolic links * *************** *** 148,155 **** origval = errval = atoi(errcode); ! if (errval > level) /* If this is not in an expected range */ Abort(":-(",inputline); /* display and abort */ if (inputline[3] == '-') /* if a continuance line */ while (errval == origval) --- 154,164 ---- origval = errval = atoi(errcode); ! /* If this is not in an expected range */ ! if (errval > level && inputline[3] != '-') Abort(":-(",inputline); /* display and abort */ + else if (errval > level) + FtpAbort(":-(", inputline); if (inputline[3] == '-') /* if a continuance line */ while (errval == origval) *************** *** 248,255 **** int ftp_data; int ftp_dataport, nRead; int getting; ! GopherObj *gs; /**** Send PASV and set up the data port ***/ writestring(ftp_control, "PASV\r\n"); --- 257,270 ---- int ftp_data; int ftp_dataport, nRead; int getting; ! static GopherObj *gs = NULL; + if (gs == NULL) + gs = GSnew(); + else + GSinit(gs); + + /**** Send PASV and set up the data port ***/ writestring(ftp_control, "PASV\r\n"); *************** *** 560,569 **** } /*--------------------------------*/ int ! Abort(where, complaint) char *where; char *complaint; { --- 575,605 ---- } /*--------------------------------*/ + + int + Abort(where, complaint) + char *where; + char *complaint; + { + int i; + char inputline[BUFSIZ], errmsg[BUFSIZ+20]; + + strcpy(inputline, complaint); + + ZapCRLF(inputline); + sprintf(errmsg, "%c%s:%s\t\terror.host\t1\r\n",A_ERROR, where, inputline); + + writestring(sockfd, errmsg); + bzero(inputline, BUFSIZ); + writestring(sockfd, ".\r\n"); + Cleanup(); + exit(1); + ; + } int ! FtpAbort(where, complaint) char *where; char *complaint; { diff -c gopher+/gopherd/gopherd.c:3.30 gopher+/gopherd/gopherd.c:3.36 *** gopher+/gopherd/gopherd.c:3.30 Thu Aug 12 02:35:48 1993 --- gopher+/gopherd/gopherd.c Thu Aug 12 02:35:49 1993 *************** *** 1,7 **** /******************************************************************** * $Author: lindner $ ! * $Revision: 3.30 $ ! * $Date: 1993/08/06 14:42:49 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/gopherd/gopherd.c,v $ * $State: Exp $ * --- 1,7 ---- /******************************************************************** * $Author: lindner $ ! * $Revision: 3.36 $ ! * $Date: 1993/08/12 06:27:35 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/gopherd/gopherd.c,v $ * $State: Exp $ * *************** *** 15,20 **** --- 15,39 ---- ********************************************************************* * Revision History: * $Log: gopherd.c,v $ + * Revision 3.36 1993/08/12 06:27:35 lindner + * Get rid of errant message when using inetd + * + * Revision 3.35 1993/08/11 22:47:44 lindner + * Fix for gopher0 clients on gopher+ server + * + * Revision 3.34 1993/08/11 21:34:05 lindner + * Remove extensions from titles for files with multiple views. + * Move CMDfromNet() to *after* the chroot() and setuid() + * + * Revision 3.33 1993/08/11 14:39:24 lindner + * Fix for send_binary bug + * + * Revision 3.32 1993/08/11 02:27:40 lindner + * Fix for wais gateway and Unix client + * + * Revision 3.31 1993/08/10 20:26:57 lindner + * Fixed bogus reading of .cache+ files + * * Revision 3.30 1993/08/06 14:42:49 lindner * fix for mindex * *************** *** 434,440 **** exit(-1); } ! if ( getuid() == 0 && Gdefusername == NULL) printf("Warning! You should run the server with the -u option!\n"); --- 453,459 ---- exit(-1); } ! if ( getuid() == 0 && Gdefusername == NULL && !RunFromInetd) printf("Warning! You should run the server with the -u option!\n"); *************** *** 775,800 **** ServerSetArgv("input from %s", CurrentPeerName); - CMDfromNet(cmd, sockfd); - ASKfile = CMDgetAskfile(cmd); /* Ickkk! This is a global used only - by printfile */ - - if (RunIndex) { - /*** Run like the old gindexd thing. ***/ - - uchdir("/"); - strcpy(Data_Dir, "/"); - - if (*CMDgetSelstr(cmd) == '\t') - Do_IndexTrans(sockfd, Data_Dir, CMDgetSearch(cmd)+1); - else - Do_IndexTrans(sockfd, Data_Dir, CMDgetSearch(cmd)); - - Do_IndexTrans(sockfd, Data_Dir, CMDgetSearch(cmd)); - return(0); - } - - #ifdef UMNDES if (CMDgetTicket(cmd) != NULL) { /*** Test the ticket, and set the appropriate user ***/ --- 794,799 ---- *************** *** 813,820 **** Abortoutput(sockfd, "Can't set UID!"), exit(-1); } #else /* UMNDES */ - - if (Gdefusername && Setuid_username(Gdefusername)== FALSE) Abortoutput(sockfd, "Can't set UID!"), exit(-1); --- 812,817 ---- *************** *** 836,841 **** --- 833,862 ---- } + + CMDfromNet(cmd, sockfd); + ASKfile = CMDgetAskfile(cmd); /* Ickkk! This is a global used only + by printfile */ + + if (RunIndex) { + /*** Run like the old gindexd thing. ***/ + + uchdir("/"); + strcpy(Data_Dir, "/"); + + if (*CMDgetSelstr(cmd) == '\t') + Do_IndexTrans(sockfd, Data_Dir, CMDgetSearch(cmd)+1); + else + Do_IndexTrans(sockfd, Data_Dir, CMDgetSearch(cmd)); + + Do_IndexTrans(sockfd, Data_Dir, CMDgetSearch(cmd)); + return(0); + } + + + + + /** Extract the view if it exists **/ if (CMDgetCommand(cmd) != NULL) { char *command = CMDgetCommand(cmd); *************** *** 894,900 **** tmpview = VIgetType(GSgetView(gs,i)); if (GSgetType(gs) == '0') { ! if (strcmp(tmpview, "Text")==0) { view = VIgetViewnLang(GSgetView(gs, i),(char*)malloc(128)); break; } --- 915,921 ---- tmpview = VIgetType(GSgetView(gs,i)); if (GSgetType(gs) == '0') { ! if (strcasecmp(tmpview, "Text/plain")==0) { view = VIgetViewnLang(GSgetView(gs, i),(char*)malloc(128)); break; } *************** *** 1126,1132 **** if (strlen(waisfname) <= 4 || strncmp(&waisfname[strlen(waisfname)-4],".src",4) ) strcat(waisfname, ".src"); ! SearchRemoteWAIS(sockfd, waisfname, cmd); break; } else if (strncmp(Selstr, "waisdocid:", 10) == 0) { --- 1147,1153 ---- if (strlen(waisfname) <= 4 || strncmp(&waisfname[strlen(waisfname)-4],".src",4) ) strcat(waisfname, ".src"); ! SearchRemoteWAIS(sockfd, waisfname, cmd, view); break; } else if (strncmp(Selstr, "waisdocid:", 10) == 0) { *************** *** 1376,1382 **** GopherDirObj *gd; struct stat statbuf; boolean AddItem = TRUE; - /* char *View */ static char Pathp[512]; StrArray *Linkfiles; int i, cachefd; --- 1397,1402 ---- *************** *** 1402,1408 **** } ! if (Caching && Cachetimedout(".cache+", CACHE_TIME, ".")) { if ((cachefd = ropen(".cache+", O_RDONLY)) >=0) { GDplusfromNet(gd, cachefd, NULL); close(cachefd); --- 1422,1428 ---- } ! if (Caching && Cachetimedout(".cache+", CACHE_TIME, ".")==FALSE) { if ((cachefd = ropen(".cache+", O_RDONLY)) >=0) { GDplusfromNet(gd, cachefd, NULL); close(cachefd); *************** *** 1540,1545 **** --- 1560,1566 ---- if (num != -1) { if (GSgetType(GDgetEntry(gd,num)) == '\0') { GSsetHost(gs, NULL); + GSsetTitle(gs, filename); GSmerge(GDgetEntry(gd, num), gs); } gs = GDgetEntry(gd, num); *************** *** 2141,2147 **** return; } ! if (pp = specialfile(sndfile, filename)) { fclose(sndfile); sndfile = pp; } --- 2162,2168 ---- return; } ! if (pp = specialfile(sockfd, sndfile, filename)) { fclose(sndfile); sndfile = pp; } diff -c gopher+/gopherd/serverutil.c:3.12 gopher+/gopherd/serverutil.c:3.13 *** gopher+/gopherd/serverutil.c:3.12 Thu Aug 12 02:35:54 1993 --- gopher+/gopherd/serverutil.c Thu Aug 12 02:35:55 1993 *************** *** 1,7 **** /******************************************************************** * $Author: lindner $ ! * $Revision: 3.12 $ ! * $Date: 1993/08/06 14:30:47 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/gopherd/serverutil.c,v $ * $State: Exp $ * --- 1,7 ---- /******************************************************************** * $Author: lindner $ ! * $Revision: 3.13 $ ! * $Date: 1993/08/10 20:28:10 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/gopherd/serverutil.c,v $ * $State: Exp $ * *************** *** 15,20 **** --- 15,23 ---- ********************************************************************* * Revision History: * $Log: serverutil.c,v $ + * Revision 3.13 1993/08/10 20:28:10 lindner + * return true for non-existant cache file + * * Revision 3.12 1993/08/06 14:30:47 lindner * Fixes for better security logging * *************** *** 370,380 **** /* * Cache timeout value. * If cache is less than secs seconds old, it's ok. - * Otherwise, compare time of cache to dir and all files in dir and dir/.cap. * If cache is newest, it's ok, otherwise it must be rebuilt. * - * Not really great for big directories, but better in general for smaller - * directories.. */ boolean --- 373,380 ---- *************** *** 390,401 **** result = rstat(cache, &buf); if (result != 0) ! return(-1); time(&now); Debug("Cache now: %d, ", now); ! Debug("cahce file: %d\n", buf.st_mtime); if ( now < (buf.st_mtime + secs)) return(FALSE); --- 390,401 ---- result = rstat(cache, &buf); if (result != 0) ! return(TRUE); time(&now); Debug("Cache now: %d, ", now); ! Debug("cache file: %d\n", buf.st_mtime); if ( now < (buf.st_mtime + secs)) return(FALSE); diff -c gopher+/gopherd/special.c:3.12 gopher+/gopherd/special.c:3.13 *** gopher+/gopherd/special.c:3.12 Thu Aug 12 02:35:56 1993 --- gopher+/gopherd/special.c Thu Aug 12 02:35:56 1993 *************** *** 1,7 **** /******************************************************************** * $Author: lindner $ ! * $Revision: 3.12 $ ! * $Date: 1993/08/06 14:30:49 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/gopherd/special.c,v $ * $State: Exp $ * --- 1,7 ---- /******************************************************************** * $Author: lindner $ ! * $Revision: 3.13 $ ! * $Date: 1993/08/11 22:47:11 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/gopherd/special.c,v $ * $State: Exp $ * *************** *** 15,20 **** --- 15,23 ---- ********************************************************************* * Revision History: * $Log: special.c,v $ + * Revision 3.13 1993/08/11 22:47:11 lindner + * Don't let the security stuff trap ask blocks + * * Revision 3.12 1993/08/06 14:30:49 lindner * Fixes for better security logging * *************** *** 160,167 **** Debug("Executing %s\n", buf); ! if (! (pp = Gpopen(sockfd, buf, "r"))) ! return (FILE *)0; ispipe = 1; Debug("Zcat/popen is okay\n",0); --- 163,177 ---- Debug("Executing %s\n", buf); ! if (EXECargs) { ! if (! (pp = Gpopen(sockfd, buf, "r"))) ! return (FILE *)0; ! } ! else { ! if (! (pp = popen(buf, "r"))) ! return (FILE *)0; ! } ! ispipe = 1; Debug("Zcat/popen is okay\n",0); diff -c gopher+/gopherd/waisgopher.c:3.8 gopher+/gopherd/waisgopher.c:3.9 *** gopher+/gopherd/waisgopher.c:3.8 Thu Aug 12 02:35:57 1993 --- gopher+/gopherd/waisgopher.c Thu Aug 12 02:35:57 1993 *************** *** 1,7 **** /******************************************************************** * $Author: lindner $ ! * $Revision: 3.8 $ ! * $Date: 1993/07/29 21:21:53 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/gopherd/waisgopher.c,v $ * $State: Exp $ * --- 1,7 ---- /******************************************************************** * $Author: lindner $ ! * $Revision: 3.9 $ ! * $Date: 1993/08/11 02:27:43 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/gopherd/waisgopher.c,v $ * $State: Exp $ * *************** *** 15,20 **** --- 15,23 ---- ********************************************************************* * Revision History: * $Log: waisgopher.c,v $ + * Revision 3.9 1993/08/11 02:27:43 lindner + * Fix for wais gateway and Unix client + * * Revision 3.8 1993/07/29 21:21:53 lindner * Fix for excess dots in text files * *************** *** 527,536 **** /******************************************************************/ ! void SearchRemoteWAIS(sockfd, SourceName, cmd) int sockfd; char *SourceName; CMDobj *cmd; { char *keywords = CMDgetSearch(cmd); char* request_message = NULL; /* arbitrary message limit */ --- 530,540 ---- /******************************************************************/ ! void SearchRemoteWAIS(sockfd, SourceName, cmd, view) int sockfd; char *SourceName; CMDobj *cmd; + char *view; { char *keywords = CMDgetSearch(cmd); char* request_message = NULL; /* arbitrary message limit */ *************** *** 547,553 **** FILE *Dotsrcfile; char *WaisGatePort=NULL; Source Moo; ! char *cp, *view = NULL; boolean isgplus = CMDisGplus(cmd); --- 551,557 ---- FILE *Dotsrcfile; char *WaisGatePort=NULL; Source Moo; ! char *cp; boolean isgplus = CMDisGplus(cmd); *************** *** 554,567 **** server_name[0] = '\0'; /* null it out */ database[0] = '\0'; /* null it out */ service[0] = '\0'; /* null it out */ - - if (CMDgetCommand(cmd) != NULL) { - if (*CMDgetCommand(cmd) == '+') - view = CMDgetCommand(cmd) + 1; - else if (*CMDgetCommand(cmd) == '$') - view = "application/gopher+-menu"; - } - /** ** Next load up the name of the source... --- 558,563 ---- diff -c gopher+/object/Sockets.c:3.4 gopher+/object/Sockets.c:3.5 *** gopher+/object/Sockets.c:3.4 Thu Aug 12 02:36:03 1993 --- gopher+/object/Sockets.c Thu Aug 12 02:36:03 1993 *************** *** 1,7 **** /******************************************************************** * $Author: lindner $ ! * $Revision: 3.4 $ ! * $Date: 1993/08/05 03:23:37 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/object/Sockets.c,v $ * $State: Exp $ * --- 1,7 ---- /******************************************************************** * $Author: lindner $ ! * $Revision: 3.5 $ ! * $Date: 1993/08/09 20:17:10 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/object/Sockets.c,v $ * $State: Exp $ * *************** *** 15,20 **** --- 15,23 ---- ********************************************************************* * Revision History: * $Log: Sockets.c,v $ + * Revision 3.5 1993/08/09 20:17:10 lindner + * Fixes for CMULIB and NETLIB for VMS + * * Revision 3.4 1993/08/05 03:23:37 lindner * Changes for CMUIP and NETLIB * *************** *** 51,56 **** --- 54,61 ---- # else # include iodef # include ssdef + # include errno + # include perror # endif /* if !CMUIP && !NETLIB */ #else /* VMS */ *************** *** 94,99 **** --- 99,105 ---- * This function returns a socket file descriptor bound to the given port */ + #if !defined(CMUIP) && !defined(NETLIB) int SOCKbind_to_port(port) int port; *************** *** 124,129 **** --- 130,136 ---- return(sockfd); } + #endif /* SOCKconnect performs a connection to socket 'service' on host * 'host'. Host can be a hostname or ip-address. If 'host' is null, the *************** *** 210,219 **** status = TCP_CONNECT (&iSock, &host_desc, port); if ((status & 1) == 0) { NET_DEASSIGN (&iSock); ! if (status == SS$_REJECT) ! return (-4); ! if (status == SS$_ENDOFFILE) ! return (-2); return (-1); } return (iSock); --- 217,234 ---- status = TCP_CONNECT (&iSock, &host_desc, port); if ((status & 1) == 0) { NET_DEASSIGN (&iSock); ! if (status == SS$_REJECT || status == SS$_TIMEOUT) { ! if (status == SS$_REJECT) ! errno = ECONNREFUSED; ! else ! errno = ETIMEDOUT; ! ! if (errno < sys_nerr && sys_errlist[errno] == NULL) ! sys_errlist[errno] = strerror (errno); ! return (-4); ! } ! if (status == SS$_ENDOFFILE) ! return (-2); return (-1); } return (iSock); *************** *** 227,233 **** } cmu_iosb; static struct {long l; char *a;} ip_dev = {12, "INET$DEVICE:"}; globalvalue NET$_CREF; /* Connection refused */ ! globalvalue NET$_DSNAMERR; /* Domain server name error */ status = SYS$ASSIGN (&ip_dev, &channel, 0, 0); if ((status & 1) == 0) return (-3); --- 242,249 ---- } cmu_iosb; static struct {long l; char *a;} ip_dev = {12, "INET$DEVICE:"}; globalvalue NET$_CREF; /* Connection refused */ ! globalvalue NET$_FTO; /* Function timedout */ ! globalvalue NET$_DSNAMERR; /* Domain server name error */ status = SYS$ASSIGN (&ip_dev, &channel, 0, 0); if ((status & 1) == 0) return (-3); *************** *** 235,247 **** hostname, port, 0, 1, 0, 0); if ((status & 1) == 0 || (cmu_iosb.status & 1) == 0) { SYS$DASSGN (channel); ! if (cmu_iosb.status == SS$_ABORT) { if (cmu_iosb.xxx == NET$_CREF) ! return (-4); ! if (cmu_iosb.xxx == NET$_DSNAMERR) ! return (-2); ! } ! return (-1); } return (channel); #endif --- 251,268 ---- hostname, port, 0, 1, 0, 0); if ((status & 1) == 0 || (cmu_iosb.status & 1) == 0) { SYS$DASSGN (channel); ! if (cmu_iosb.status == SS$_ABORT || cmu_iosb.xxx == NET$_FTO) { if (cmu_iosb.xxx == NET$_CREF) ! errno = ECONNREFUSED; ! else ! errno = ETIMEDOUT; ! ! if (errno < sys_nerr && sys_errlist[errno] == NULL) ! sys_errlist[errno] = strerror (errno); ! return(-4); ! } ! if (cmu_iosb.xxx == NET$_DSNAMERR) ! return (-2); } return (channel); #endif *************** *** 254,259 **** --- 275,281 ---- * */ + #if !defined(CMUIP) && !defined(NETLIB) /* temp - MLH */ int SOCKlisten(We) struct sockaddr_in * We; *************** *** 310,312 **** --- 332,336 ---- return(sockfd); } + + #endif diff -c gopher+/object/compile.com:3.6 gopher+/object/compile.com:3.7 *** gopher+/object/compile.com:3.6 Thu Aug 12 02:36:05 1993 --- gopher+/object/compile.com Thu Aug 12 02:36:05 1993 *************** *** 56,66 **** $! $ cc getopt.c $! - $ library/create libgopher compatible.obj,daarray.obj,- - gdgopherdir.obj,gsgopherobj.obj,- - strstring.obj,blblock.obj,views.obj,util.obj,- - getopt.obj,sockets.obj - $! $ CLEANUP: $ verify = f$verify(verify) $exit --- 56,61 ---- diff -c gopher+/object/util.c:3.8 gopher+/object/util.c:3.9 *** gopher+/object/util.c:3.8 Thu Aug 12 02:36:06 1993 --- gopher+/object/util.c Thu Aug 12 02:36:06 1993 *************** *** 1,7 **** /******************************************************************** * $Author: lindner $ ! * $Revision: 3.8 $ ! * $Date: 1993/08/05 03:23:40 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/object/util.c,v $ * $State: Exp $ * --- 1,7 ---- /******************************************************************** * $Author: lindner $ ! * $Revision: 3.9 $ ! * $Date: 1993/08/09 20:17:13 $ * $Source: /tmp_mnt/home/mudhoney/GopherSrc/CVS/gopher+/object/util.c,v $ * $State: Exp $ * *************** *** 15,20 **** --- 15,23 ---- ********************************************************************* * Revision History: * $Log: util.c,v $ + * Revision 3.9 1993/08/09 20:17:13 lindner + * Fixes for CMULIB and NETLIB for VMS + * * Revision 3.8 1993/08/05 03:23:40 lindner * Changes for CMUIP and NETLIB * *************** *** 745,755 **** buffer, length, 0, 0, 0, 0); if ((status & 1) == 0) return (-1); ! if ((cmu_iosb.status & 1) == 0) { ! if (cmu_iosb.status == 44) ! exit (cmu_iosb.xxx); return (-1); - } return (cmu_iosb.size); } --- 748,755 ---- buffer, length, 0, 0, 0, 0); if ((status & 1) == 0) return (-1); ! if ((cmu_iosb.status & 1) == 0) return (-1); return (cmu_iosb.size); } *************** *** 764,774 **** buffer, length, 0, 1, 0, 0); if ((status & 1) == 0) return (-1); ! if ((cmu_iosb.status & 1) == 0) { ! if (cmu_iosb.status == 44) ! exit (cmu_iosb.xxx); return (-1); - } return (cmu_iosb.size); } --- 764,771 ---- buffer, length, 0, 1, 0, 0); if ((status & 1) == 0) return (-1); ! if ((cmu_iosb.status & 1) == 0) return (-1); return (cmu_iosb.size); }