Checked in Macintosh changes from Marshall
authorTheodore Tso <tytso@mit.edu>
Sat, 21 Dec 1996 06:47:32 +0000 (06:47 +0000)
committerTheodore Tso <tytso@mit.edu>
Sat, 21 Dec 1996 06:47:32 +0000 (06:47 +0000)
GSSforSAP.r: Moved resources for the timebomb out to Rez format for
easier CVSing

macSAPglue.c (__initializeSAPglue): Added new conditions to the
timebomb code so that it can identify individual applications and not
just fail globally.

git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@9672 dc483132-0cff-0310-8789-dd5450dbe970

src/mac/SAP/ChangeLog
src/mac/SAP/GSSforSAP.r
src/mac/SAP/macSAPglue.c

index 5d26bb6a1625057ed23aa4674a241357870a666f..c1fc92c4f78058e226b28d2a8078ac7f6567fd0c 100644 (file)
@@ -1,3 +1,11 @@
+Fri Dec 20 12:35:32 1996  Marshall Vale  <mjv@mit.edu>
+
+       * GSSforSAP.r: Moved resources for the timebomb out to Rez 
+               format for easier CVSing
+       * macSAPglue.c (__initializeSAPglue): Added new conditions to the
+               timebomb code so that it can identify individual applications
+               and not just fail globally.
+               
 Tue Dec 17 13:53:36 1996  Theodore Y. Ts'o  <tytso@mit.edu>
 
        * GSSforSAP.r: Fix expire time in the text resource to be June 1,
index 53fc76c7e86e363d04fdaaba83ced054319d62ff..ca25a83846c706807edf61995982545400276a63 100644 (file)
@@ -1,17 +1,4 @@
-#ifdef mw_rez
-#include <SysTypes.r>
-#include <Types.r>
-#else
-#include "SysTypes.r"
 #include "Types.r"
-#endif
-
-resource 'vers' (1) {
-       0x01, 0x00, final, 0x00,
-       verUS,
-       "1.0",
-       "1.0(SAP), Copyright 1996 Massachusetts Institute of Technology"
-};
 
 resource 'DITL' (135, nonpurgeable) {
        {       /* array DITLarray: 2 elements */
@@ -46,7 +33,7 @@ resource 'DITL' (136, nonpurgeable) {
                StaticText {
                        disabled,
                        "This version of the SAP client will expi"
-                       "re on June 1, 1997. Please consult: "
+                       "re on January 15, 1997. Please consult: "
                        "http://web.mit.edu/reeng/www/saphelp/ fo"
                        "r instructions on obtaining a new versio"
                        "n when it is available."
index 5dc1eef9d6d2cc9fc972ec6932f4737c5ab2979c..11d3ff7206185a985ae73f5f239a2318da91e66c 100644 (file)
@@ -1,4 +1,6 @@
 #include <CodeFragments.h>
+#include <Processes.h>
+
 #define TBALERTID      135
 #define TB30ALERTID    136
 
@@ -6,44 +8,78 @@ OSErr __initializeSAPglue(InitBlockPtr ibp);
 
 OSErr __initializeSAPglue(InitBlockPtr ibp)
 {
-       OSErr   err = noErr;
-       short   fileRefNum;
-       DateTimeRec             goalTimeBomb;
-       long                    currentTime, goalTimeBombInSecs;
+       OSErr                                   err = noErr;
+       short                                   fileRefNum, theCurrentRes;
+       DateTimeRec                             goalTimeBomb;
+       long                                    currentTime, goalTimeBombInSecs;
+       ProcessSerialNumber             thePSN;
+       ProcessInfoRec                  thePIR;
        
+       /* Do normal init of the shared library */
        __initialize();
        
-       if (ibp->fragLocator.where == kDataForkCFragLocator) {
+       /* Start our hack by saving the current resource ref*/
+       
+       theCurrentRes = CurResFile();
+       
+       if (ibp->fragLocator.where == kDataForkCFragLocator)
+       { 
                fileRefNum = FSpOpenResFile(ibp->fragLocator.u.onDisk.fileSpec, fsRdPerm);
        
                if ( fileRefNum == -1 )
                        err = ResError();
        }
        
-       goalTimeBomb.year = 1997;
-       goalTimeBomb.month = 6;
-       goalTimeBomb.day = 1;
-       goalTimeBomb.hour = 0; /* Let's use midnight for simplicity */
-       goalTimeBomb.minute = 0;
-       goalTimeBomb.second = 0;
-       
-       DateToSeconds( &goalTimeBomb, &goalTimeBombInSecs );
-       
-       GetDateTime(&currentTime);
-       
-       if ( (goalTimeBombInSecs - currentTime) <= 0 ) {
-               StopAlert(TBALERTID, NULL);
-               /* if we just reported an error, then the SAP client would continue running. We
-                       don't want that so instead we'll just call ExitToShell and hope it doesn't
-                       leave anything hangin. If we just wanted the error, report non-zero */
-               //err = -1;
-               ExitToShell();
-    } else if ( (goalTimeBombInSecs - currentTime) < 1209600 ) { /* num seconds in 14 days */
-               NoteAlert(TB30ALERTID, NULL);
+       /* We assume that the current process is the one calling us. Good bet */
+       err = GetCurrentProcess( &thePSN );
+       
+       if ( err == noErr )
+       {
+               GetProcessInformation( &thePSN, &thePIR );
+               
+               if ( thePIR.processType == 'APPL' )
+               {
+                       switch ( thePIR.processSignature )
+                       {
+                               /* Here we case off each application based on its type code */
+                               case 'MIDA':
+                                       /* This is SAP (supposedly) */
+                       
+                                       goalTimeBomb.year = 1997;
+                                       goalTimeBomb.month = 6;
+                                       goalTimeBomb.day = 1;
+                                       goalTimeBomb.hour = 0; /* Let's use midnight for simplicity */
+                                       goalTimeBomb.minute = 0;
+                                       goalTimeBomb.second = 0;
+                                       
+                                       DateToSeconds( &goalTimeBomb, &goalTimeBombInSecs );
+                                       
+                                       GetDateTime(&currentTime);
+                                       
+                                       if ( (goalTimeBombInSecs - currentTime) <= 0 )
+                                       {
+                                               StopAlert(TBALERTID, NULL);
+                                               /* if we just reported an error, then the SAP client would continue running. We
+                                                       don't want that so instead we'll just call ExitToShell and hope it doesn't
+                                                       leave anything hangin. If we just wanted the error, report non-zero */
+                                               //err = -1;
+                                               ExitToShell();
+                                   }
+                                   else 
+                                       if ( (goalTimeBombInSecs - currentTime) < 1209600 )
+                                               { /* num seconds in 14 days */
+                                                       NoteAlert(TB30ALERTID, NULL);
+                                               }
+                                       break;
+                               default:
+                                       break;
+                       }
+               }
        }
-
        if ( fileRefNum != -1 )
                CloseResFile( fileRefNum );
+               
+       UseResFile( theCurrentRes );
        
        return err;
 }