diff --git a/esc b/esc index a714c53..bc23c86 100755 --- a/esc +++ b/esc @@ -30,7 +30,7 @@ ESC_ARGS= ESC_PROFILE_BASE=~/.redhat/esc ESC_LOG_FILE=esc.log -ESC_PATH=/usr/lib/esc-1.0.1 +ESC_PATH=$LIBDIR/esc-1.0.1 ESC_BIN_PATH=/usr/bin ESC_EXEC=esc ESCD_EXEC=escd @@ -45,6 +45,8 @@ FORCE_START_ESC= XPTI_DAT=xpti.dat COMPREG_DAT=compreg.dat +LOCK_FILE=lock +PARENT_LOCK_FILE=.parentlock function isProgRunning { @@ -61,10 +63,16 @@ function isProgRunning { function removeFile { - if [ -w $1 ] - then - rm -f $1 - fi + rm -f $1 +} + +function cleanupProfile { + + removeFile $ESC_PROFILE_BASE/*default/$XPTI_DAT + removeFile $ESC_PROFILE_BASE/*default/$COMPREG_DAT + removeFile $ESC_PROFILE_BASE/*default/$LOCK_FILE + removeFile $ESC_PROFILE_BASE/*default/$PARENT_LOCK_FILE + } function processArgs { @@ -108,15 +116,12 @@ function processArgs { fi } -export NSPR_LOG_MODULES=tray:2,coolKeyLib:2,coolKey:2,coolKeyNSS:2,coolKeySmart:2,coolKeyHandler:2,escDLog:5 - processArgs $* if [ ! -d $ESC_PROFILE_BASE ] then mkdir -p $ESC_PROFILE_BASE fi -export NSPR_LOG_FILE=$ESC_PROFILE_BASE/$ESC_LOG_FILE cd $ESC_PATH @@ -140,8 +145,7 @@ then #echo "escd already running." else #echo "escd not running start." - removeFile $ESC_PROFILE_BASE/*default/$XPTI_DAT - removeFile $ESC_PROFILE_BASE/*default/$COMPREG_DAT + cleanupProfile ./$ESCD_EXEC --key_Inserted=\"/usr/bin/esc\" --on_Signal=\"/usr/bin/esc\" exit 0 fi @@ -175,7 +179,7 @@ then else #echo "esc not already running start up and bring up window." ./$ESC_EXEC & - sleep 2 + sleep 4 #echo "done sleeping bring up esc window." ./$ESC_EXEC diff --git a/esc-1.0.1-log-fixes.patch b/esc-1.0.1-log-fixes.patch new file mode 100644 index 0000000..7ce2580 --- /dev/null +++ b/esc-1.0.1-log-fixes.patch @@ -0,0 +1,782 @@ +--- ./esc/src/lib/coolkey/CoolKey.cpp.fix5 2007-06-20 11:41:52.000000000 -0700 ++++ ./esc/src/lib/coolkey/CoolKey.cpp 2007-06-20 11:46:20.000000000 -0700 +@@ -16,6 +16,7 @@ + * END COPYRIGHT BLOCK **/ + + #define FORCE_PR_LOG 1 ++#define LINE_BUF_SIZE 512 + + #include "SlotUtils.h" + +@@ -46,6 +47,161 @@ + HRESULT ClearActiveKeyList(void); + ActiveKeyNode *GetNodeInActiveKeyList(const CoolKey *aKey); + ++class CoolKeyLogger { ++public: ++ ++ CoolKeyLogger(char *logFileName, int maxNumLines); ++ ~CoolKeyLogger(); ++ ++ void LogMsg(int logLevel, const char *fmt, ...); ++ void LogMsg(int logLevel,const char *msg, va_list argp); ++ ++ void init(); ++ ++ int IsInitialized() { return initialized; } ++ ++private: ++ ++ void LockLog(); ++ void UnlockLog(); ++ ++ PRLock *logLock; ++ ++ int maxLines; ++ ++ char *pathName; ++ PRFileDesc *fd; ++ ++ int initialized; ++ ++}; ++ ++CoolKeyLogger::CoolKeyLogger(char *logFileName, int maxNumLines) ++{ ++ fd = NULL; ++ logLock = NULL; ++ ++ maxLines = maxNumLines; ++ if(logFileName) ++ pathName = strdup(logFileName); ++ initialized = 0; ++} ++ ++CoolKeyLogger::~CoolKeyLogger() ++{ ++ char tBuff[56]; ++ ++ PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s ~CoolKeyLogger:\n",GetTStamp(tBuff,56))); ++ LockLog(); ++ ++ PR_Close(fd); ++ ++ fd = NULL; ++ ++ UnlockLog(); ++ ++ PR_DestroyLock(logLock); ++ ++ logLock = NULL; ++ ++ if(pathName) ++ free(pathName); ++ ++ pathName = NULL; ++} ++ ++void CoolKeyLogger::LockLog() ++{ ++ PR_Lock(logLock); ++} ++ ++void CoolKeyLogger::UnlockLog() ++{ ++ PR_Unlock(logLock); ++} ++ ++void CoolKeyLogger::init() ++{ ++ char tBuff[56]; ++ ++ PRFileInfo info; ++ ++ if( !pathName) ++ return; ++ ++ logLock = PR_NewLock(); ++ ++ PRStatus rv = PR_GetFileInfo(pathName,&info); ++ ++ int fileSize = 0; ++ ++ if(rv == PR_SUCCESS) ++ { ++ fileSize = info.size; ++ PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s File info size %d! \n",GetTStamp(tBuff,56),fileSize)); ++ } ++ ++ //Assume average line size of about 40 ++ ++ if((fileSize / 40) > maxLines) ++ { ++ ++ PR_LOG( coolKeyLog, PR_LOG_DEBUG, ("%s Number of lines too big, truncate file %d! \n",GetTStamp(tBuff,56),fileSize / 80)); ++ ++ fd = PR_Open(pathName, PR_WRONLY | PR_CREATE_FILE | PR_TRUNCATE, 0600); ++ } ++ else ++ { ++ fd = PR_Open(pathName, PR_WRONLY | PR_CREATE_FILE | PR_APPEND, 0600); ++ } ++ ++ if(!fd) ++ return; ++ ++ initialized = 1; ++ ++ return; ++} ++ ++void CoolKeyLogger::LogMsg(int logLevel, const char *fmt, ...) ++{ ++ va_list ap; ++ char line[LINE_BUF_SIZE]; ++ ++ if(!initialized) ++ return; ++ ++ va_start(ap, fmt); ++ ++ int end = PR_vsnprintf(line, sizeof(line)-1, fmt, ap); ++ ++ LockLog(); ++ ++ PR_Write(fd,line,end); ++ ++ UnlockLog(); ++ ++ va_end(ap); ++} ++ ++void CoolKeyLogger::LogMsg(int logLevel, const char *msg, va_list argp) ++{ ++ char line[LINE_BUF_SIZE]; ++ ++ if(!initialized) ++ return; ++ ++ int end = PR_vsnprintf(line, sizeof(line)-1, msg, argp); ++ ++ LockLog(); ++ ++ PR_Write(fd,line,end); ++ ++ UnlockLog(); ++} ++ ++static CoolKeyLogger *g_Log = NULL; ++ + COOLKEY_API HRESULT CoolKeyInit(const char *aAppDir) + { + char tBuff[56]; +@@ -92,6 +248,9 @@ + g_NSSManager = 0; + } + ++ if(g_Log) ++ delete g_Log ; ++ + return S_OK; + } + +@@ -903,7 +1062,7 @@ + + assert(cardCtxt); + if (!cardCtxt) { +- PR_LOG( coolKeyLog, PR_LOG_ERROR, ("%s Attempting to get key issuer info. Can't create Card Context !.\n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg( PR_LOG_ERROR, "%s Attempting to get key issuer info. Can't create Card Context !.\n",GetTStamp(tBuff,56)); + result = E_FAIL; + goto done; + } +@@ -911,7 +1070,7 @@ + conn = CKYCardConnection_Create(cardCtxt); + assert(conn); + if (!conn) { +- PR_LOG( coolKeyLog, PR_LOG_ERROR, ("%s Attempting to get key issuer info. Can't create Card Connection!\n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg( PR_LOG_ERROR, "%s Attempting to get key issuer info. Can't create Card Connection!\n",GetTStamp(tBuff,56)); + result = E_FAIL; + goto done; + } +@@ -919,14 +1078,14 @@ + readerName = GetReaderNameForKeyID(aKey); + assert(readerName); + if (!readerName) { +- PR_LOG( coolKeyLog, PR_LOG_ERROR, ("%s Attempting to get key issuer info. Can't get reader name!\n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg( PR_LOG_ERROR, "%s Attempting to get key issuer info. Can't get reader name!\n",GetTStamp(tBuff,56)); + result = E_FAIL; + goto done; + } + + status = CKYCardConnection_Connect(conn, readerName); + if (status != CKYSUCCESS) { +- PR_LOG( coolKeyLog, PR_LOG_ERROR, ("%s Attempting to get key issuer info. Can't connect to Card!\n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg( PR_LOG_ERROR, "%s Attempting to get key issuer info. Can't connect to Card!\n",GetTStamp(tBuff,56)); + + result = E_FAIL; + goto done; +@@ -938,7 +1097,7 @@ + apduRC = 0; + status = CKYApplet_SelectCoolKeyManager(conn, &apduRC); + if (status != CKYSUCCESS) { +- PR_LOG( coolKeyLog, PR_LOG_ERROR, ("%s Attempting to get key issuer info. Can't select CoolKey manager!\n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg( PR_LOG_ERROR, "%s Attempting to get key issuer info. Can't select CoolKey manager!\n",GetTStamp(tBuff,56)); + goto done; + } + +@@ -946,7 +1105,7 @@ + &apduRC); + if(status != CKYSUCCESS) + { +- PR_LOG( coolKeyLog, PR_LOG_ERROR, ("%s Attempting to get key issuer info. Error actually getting IssuerInfo!\n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg( PR_LOG_ERROR, "%s Attempting to get key issuer info. Error actually getting IssuerInfo!\n",GetTStamp(tBuff,56)); + result = E_FAIL; + goto done; + } +@@ -1153,6 +1312,42 @@ + return res; + } + ++HRESULT CoolKeyInitializeLog(char *logFileName, int maxNumLines) ++{ ++ if(g_Log) ++ return S_OK; ++ ++ g_Log = new CoolKeyLogger(logFileName,maxNumLines); ++ ++ if(g_Log) ++ g_Log->init(); ++ else ++ return E_FAIL; ++ ++ if(g_Log->IsInitialized()) ++ return S_OK; ++ else ++ return E_FAIL; ++} ++ ++HRESULT CoolKeyLogMsg(int logLevel, const char *fmt, ...) ++{ ++ ++ if(!g_Log) ++ return S_OK; ++ ++ va_list ap; ++ ++ ++ va_start(ap, fmt); ++ ++ g_Log->LogMsg(logLevel,fmt,ap); ++ ++ va_end(ap); ++ ++ return S_OK; ++} ++ + //Utility function to get Time Stamp + char *GetTStamp(char *aTime,int aSize) + { +--- ./esc/src/lib/coolkey/CoolKey.h.fix5 2007-06-20 11:42:04.000000000 -0700 ++++ ./esc/src/lib/coolkey/CoolKey.h 2007-06-20 11:46:37.000000000 -0700 +@@ -176,6 +176,11 @@ + + COOLKEY_API int CoolKeyGetAppletVer(const CoolKey *aKey, const bool isMajor); + ++COOLKEY_API HRESULT CoolKeyInitializeLog(char *logFileName, int maxNumLines); ++ ++COOLKEY_API HRESULT CoolKeyLogMsg(int logLevel, const char *fmt, ...); ++ ++ + //Utility time function + char *GetTStamp(char *aTime,int aSize); + } +--- ./esc/src/lib/coolkey/CoolKeyHandler.cpp.fix5 2007-06-20 11:42:18.000000000 -0700 ++++ ./esc/src/lib/coolkey/CoolKeyHandler.cpp 2007-06-20 11:46:26.000000000 -0700 +@@ -453,7 +453,7 @@ + const char *readerName = NULL; + + if (!aKey || aKey->mKeyType != eCKType_CoolKey || !aKey->mKeyID) { +- PR_LOG( coolKeyLogHN, PR_LOG_ERROR, ("%s Cannot begin CoolKey operation. Insuficient input parameters. \n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg( PR_LOG_ERROR, "%s Cannot begin CoolKey operation. Insuficient input parameters. \n",GetTStamp(tBuff,56)); + goto done; + } + +@@ -466,14 +466,14 @@ + + + if (!readerName) { +- PR_LOG( coolKeyLogHN, PR_LOG_ERROR, ("%s Cannot begin CoolKey operation. Cannot locate card reader name! \n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg( PR_LOG_ERROR, "%s Cannot begin CoolKey operation. Cannot locate card reader name! \n",GetTStamp(tBuff,56)); + goto done; + } + + mDataLock = PR_NewLock(); + if (!mDataLock) + { +- PR_LOG( coolKeyLogHN, PR_LOG_ERROR, ("%s Cannot begin CoolKey operation. Cannnot initialize internal locking mechanism.\n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg( PR_LOG_ERROR, "%s Cannot begin CoolKey operation. Cannnot initialize internal locking mechanism.\n",GetTStamp(tBuff,56)); + return E_FAIL; + + } +@@ -481,7 +481,7 @@ + mDataCondVar = PR_NewCondVar(mDataLock); + if (!mDataCondVar) + { +- PR_LOG( coolKeyLogHN, PR_LOG_ERROR, ("%s Cannot begin CoolKey operation. Cannot initialize internal syncronization mechanism.\n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg( PR_LOG_ERROR, "%s Cannot begin CoolKey operation. Cannot initialize internal syncronization mechanism.\n",GetTStamp(tBuff,56)); + return E_FAIL; + + } +@@ -493,7 +493,7 @@ + + if(!mCharHostName || !mRAUrl) + { +- PR_LOG( coolKeyLogHN, PR_LOG_ERROR, ("%s Cannot begin CoolKey operation. Didn't collect proper config information.\n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg( PR_LOG_ERROR, "%s Cannot begin CoolKey operation. Didn't collect proper config information.\n",GetTStamp(tBuff,56)); + error_no = config_error_no; + goto done; + } +@@ -502,7 +502,7 @@ + + mCardContext = CKYCardContext_Create(SCARD_SCOPE_USER); + if (!mCardContext) { +- PR_LOG( coolKeyLogHN, PR_LOG_ERROR, ("%s Cannot begin CoolKey operation. Cannot create card context! \n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg( PR_LOG_ERROR, "%s Cannot begin CoolKey operation. Cannot create card context! \n",GetTStamp(tBuff,56)); + error_no = CARD_CONTEXT_ERROR; + goto done; + } +@@ -510,7 +510,7 @@ + mPDUWriter = new PDUWriterThread(this); + if (!mPDUWriter) { + error_no = PDU_WRITER_ERROR; +- PR_LOG( coolKeyLogHN, PR_LOG_ERROR, ("%s Cannot begin CoolKey operation. Cannot create internal PDU writer thread!\n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg( PR_LOG_ERROR, "%s Cannot begin CoolKey operation. Cannot create internal PDU writer thread!\n",GetTStamp(tBuff,56)); + goto done; + } + +@@ -581,7 +581,7 @@ + + if(!keyID) + { +- PR_LOG( coolKeyLogHN, PR_LOG_ERROR,("%s Collecting CoolKey preferences. Cannot get keyID , cannot proceed. \n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg( PR_LOG_ERROR,"%s Collecting CoolKey preferences. Cannot get keyID , cannot proceed. \n",GetTStamp(tBuff,56)); + + return; + } +@@ -621,7 +621,7 @@ + + if(!tps_url) + { +- PR_LOG( coolKeyLogHN, PR_LOG_ERROR, ("%s Collecting CoolKey preferences. Cannot find value for the TPS URL. \n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg( PR_LOG_ERROR, "%s Collecting CoolKey preferences. Cannot find value for the TPS URL. \n",GetTStamp(tBuff,56)); + + return; + } +@@ -651,7 +651,7 @@ + pos = tps_url_str.find(non_ssl_str,0); + if(pos == string::npos) + { +- PR_LOG( coolKeyLogHN, PR_LOG_ERROR, ("%s Collecting CoolKey preferences. TPS URL has specified an illegal protocol! \n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg( PR_LOG_ERROR, "%s Collecting CoolKey preferences. TPS URL has specified an illegal protocol! \n",GetTStamp(tBuff,56)); + return; + } + +@@ -692,7 +692,7 @@ + + if(!host_name_port_str.length()) + { +- PR_LOG( coolKeyLogHN, PR_LOG_ERROR, ("%s Collecting CoolKey preferences. Bad hostname and port value!.\n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg(PR_LOG_ERROR, "%s Collecting CoolKey preferences. Bad hostname and port value!.\n",GetTStamp(tBuff,56)); + return; + } + +@@ -1198,7 +1198,7 @@ + PR_LOG( coolKeyLogHN, PR_LOG_DEBUG, ("%s CoolKeyHandler::ProcessTokenPDU:\n",GetTStamp(tBuff,56))); + if(!req || !context) + { +- PR_LOG( coolKeyLogHN, PR_LOG_ERROR, ("%s Processing HTTP message. Bad input data. \n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg( PR_LOG_ERROR, "%s Processing HTTP message. Bad input data. \n",GetTStamp(tBuff,56)); + return; + } + +@@ -1210,7 +1210,7 @@ + + if(size == 0) + { +- PR_LOG( coolKeyLogHN, PR_LOG_ERROR, ("%s Processing HTTP message. Can't extract PDU data from message! \n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg(PR_LOG_ERROR, "%s Processing HTTP message. Can't extract PDU data from message! \n",GetTStamp(tBuff,56)); + context->HttpDisconnect(); + return; + } +@@ -1231,10 +1231,10 @@ + CKYStatus status = CKYCardConnection_ExchangeAPDU(context->GetCardConnection(), + requestAPDU, &response); + if (status != CKYSUCCESS) { +- PR_LOG( coolKeyLogHN, PR_LOG_ERROR, +- ("%s Processing HTTP message. Can't write apdu to card! status %d response[0] %x response[1] %x error %d \n" ++ CoolKeyLogMsg( PR_LOG_ERROR, ++ "%s Processing HTTP message. Can't write apdu to card! status %d response[0] %x response[1] %x error %d \n" + ,GetTStamp(tBuff,56) ,status,CKYBuffer_GetChar(&response,0),CKYBuffer_GetChar(&response,1), +- CKYCardConnection_GetLastError(context->GetCardConnection()))); ++ CKYCardConnection_GetLastError(context->GetCardConnection())); + + context->HttpDisconnect(ERR_CONN_TOKEN); + +@@ -1248,7 +1248,7 @@ + + if(pduSizeRet == 0 || !pduDataRet ) + { +- PR_LOG( coolKeyLogHN, PR_LOG_ERROR, ("%s Processing HTTP message. No PDU response from card! \n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg( PR_LOG_ERROR, "%s Processing HTTP message. No PDU response from card! \n",GetTStamp(tBuff,56)); + context->HttpDisconnect(ERR_CONN_TOKEN); + return; + } +@@ -1267,7 +1267,7 @@ + + if(res == 0) + { +- PR_LOG( coolKeyLogHN, PR_LOG_ERROR, ("%s Processing HTTP message. Write back to TPS failed , disconnecting. \n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg( PR_LOG_ERROR, "%s Processing HTTP message. Write back to TPS failed , disconnecting. \n",GetTStamp(tBuff,56)); + context->HttpDisconnect(); + } + else +@@ -1619,32 +1619,33 @@ + case ENROLL: + if (result == 0) { + +- PR_LOG( coolKeyLogHN, PR_LOG_ALWAYS, ("%s Key Enrollment success.\n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg(PR_LOG_ALWAYS,"%s Key Enrollment success.\n",GetTStamp(tBuff,56)); + CoolKeyAuthenticate(context->GetAutoCoolKey(), context->GetPIN()); + CoolKeyNotify(context->GetAutoCoolKey(), eCKState_EnrollmentComplete, + context->GetScreenName() == NULL ? 1 : 0); + } else { +- PR_LOG( coolKeyLogHN, PR_LOG_ALWAYS, ("%s Key Enrollment failure. Error: %d.\n",GetTStamp(tBuff,56),description)); ++ CoolKeyLogMsg( PR_LOG_ALWAYS, "%s Key Enrollment failure. Error: %d.\n",GetTStamp(tBuff,56),description); + CoolKeyNotify(context->GetAutoCoolKey(), eCKState_EnrollmentError, description); // XXX: Need INIT_FAILED error code! + } + break; + case RESET_PIN: + if (result == 0) { + +- PR_LOG( coolKeyLogHN, PR_LOG_ALWAYS, ("%s Key Reset Password success.\n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg(PR_LOG_ALWAYS,"%s Key Reset Password success.\n",GetTStamp(tBuff,56)); ++ + CoolKeyAuthenticate(context->GetAutoCoolKey(), context->GetPIN()); + CoolKeyNotify(context->GetAutoCoolKey(), eCKState_PINResetComplete, 0); + } else { +- PR_LOG( coolKeyLogHN, PR_LOG_ALWAYS, ("%s Key Reset Password failure. Error: %d.\n",GetTStamp(tBuff,56),description)); ++ CoolKeyLogMsg(PR_LOG_ALWAYS, "%s Key Reset Password failure. Error: %d.\n",GetTStamp(tBuff,56),description); + CoolKeyNotify(context->GetAutoCoolKey(), eCKState_PINResetError, description); // XXX: Need PIN_RESET_FAILED error code! + } + break; + case FORMAT: + if (result == 0) { +- PR_LOG( coolKeyLogHN, PR_LOG_ALWAYS, ("%s Key Format success.\n",GetTStamp(tBuff,56))); ++ CoolKeyLogMsg( PR_LOG_ALWAYS, "%s Key Format success.\n",GetTStamp(tBuff,56)); + CoolKeyNotify(context->GetAutoCoolKey(), eCKState_FormatComplete, 0); + } else { +- PR_LOG( coolKeyLogHN, PR_LOG_ALWAYS, ("%s Key Format failure. Error: %d.\n",GetTStamp(tBuff,56),description)); ++ CoolKeyLogMsg( PR_LOG_ALWAYS, "%s Key Format failure. Error: %d.\n",GetTStamp(tBuff,56),description); + CoolKeyNotify(context->GetAutoCoolKey(), eCKState_FormatError, description); // XXX: Need FORMAT_FAILED error code! + } + break; +--- ./esc/src/app/xpcom/rhCoolKey.cpp.fix5 2007-06-20 11:39:16.000000000 -0700 ++++ ./esc/src/app/xpcom/rhCoolKey.cpp 2007-06-20 11:43:35.000000000 -0700 +@@ -726,6 +726,14 @@ + + } + ++/* void CoolKeyInitializeLog (in string aPathName, in unsigned long aMaxLines); */ ++NS_IMETHODIMP rhCoolKey::CoolKeyInitializeLog(const char *aPathName, PRUint32 aMaxLines) ++{ ++ ::CoolKeyInitializeLog((char *)aPathName, aMaxLines); ++ ++ return NS_OK; ++} ++ + /* void CoolKeyLogMsg (in unsigned long aLogLevel, in string aMessage); */ + NS_IMETHODIMP rhCoolKey::CoolKeyLogMsg(PRUint32 aLogLevel, const char *aMessage) + { +@@ -733,7 +741,8 @@ + + if(aMessage && ((PRLogModuleLevel) aLogLevel >= PR_LOG_NONE && aLogLevel <= PR_LOG_MAX)) + { +- PR_LOG( coolKeyLog, (PRLogModuleLevel) aLogLevel, ("%s %s",GetTStamp(tBuff,56),aMessage)); ++ ::CoolKeyLogMsg((PRLogModuleLevel) aLogLevel, "%s %s \n",GetTStamp(tBuff,56),aMessage); ++ PR_LOG( coolKeyLog, (PRLogModuleLevel) aLogLevel, ("%s %s",GetTStamp(tBuff,56),aMessage)); + } + + return NS_OK; +@@ -776,7 +785,7 @@ + { + + char tBuff[56]; +- PR_LOG( coolKeyLog, PR_LOG_ALWAYS, ("%s Attempting to Enroll Key ,ID: %s \n",GetTStamp(tBuff,56),aKeyID)); ++ ::CoolKeyLogMsg( PR_LOG_ALWAYS, "%s Attempting to Enroll Key ,ID: %s \n",GetTStamp(tBuff,56),aKeyID); + + CoolKeyNode *node = GetCoolKeyInfo(aKeyType, aKeyID); + +@@ -808,7 +817,7 @@ + NS_IMETHODIMP rhCoolKey::ResetCoolKeyPIN(PRUint32 aKeyType, const char *aKeyID, const char *aScreenName, const char *aPIN, const char *aScreenNamePwd) + { + char tBuff[56]; +- PR_LOG( coolKeyLog, PR_LOG_ALWAYS, ("%s Attempting to Reset Key PIN, ID: %s \n",GetTStamp(tBuff,56),aKeyID)); ++ ::CoolKeyLogMsg( PR_LOG_ALWAYS, "%s Attempting to Reset Key PIN, ID: %s \n",GetTStamp(tBuff,56),aKeyID); + CoolKeyNode *node = GetCoolKeyInfo(aKeyType, aKeyID); + + if (!node) +@@ -859,7 +868,7 @@ + NS_IMETHODIMP rhCoolKey::FormatCoolKey(PRUint32 aKeyType, const char *aKeyID, const char *aEnrollmentType, const char *aScreenName, const char *aPIN, const char *aScreenNamePWord, const char *aTokenCode) + { + char tBuff[56]; +- PR_LOG( coolKeyLog, PR_LOG_ALWAYS, ("%s Attempting to Format Key, ID: %s. ",GetTStamp(tBuff,56),aKeyID)); ++ ::CoolKeyLogMsg( PR_LOG_ALWAYS, "%s Attempting to Format Key, ID: %s. ",GetTStamp(tBuff,56),aKeyID); + CoolKeyNode *node = GetCoolKeyInfo(aKeyType, aKeyID); + + if (!node) +@@ -1203,7 +1212,7 @@ + + HRESULT res = CoolKeyGetIssuerInfo(&key, (char *)&issuerInfo,256); + +- PR_LOG( coolKeyLog, PR_LOG_ALWAYS, ("%s Attempting to get the key's Issuer: Key: %s, Issuer %s. \n",GetTStamp(tBuff,56),aKeyID, (char *) issuerInfo)); ++ ::CoolKeyLogMsg( PR_LOG_ALWAYS, "%s Attempting to get the key's Issuer: Key: %s, Issuer %s. \n",GetTStamp(tBuff,56),aKeyID, (char *) issuerInfo); + + if(res == S_OK) + { +--- ./esc/src/app/xpcom/rhICoolKey.idl.fix5 2007-06-20 11:39:32.000000000 -0700 ++++ ./esc/src/app/xpcom/rhICoolKey.idl 2007-06-20 11:43:51.000000000 -0700 +@@ -32,6 +32,7 @@ + + void rhCoolKeyUnSetNotifyCallback(in rhIKeyNotify jsNotify); + ++ void CoolKeyInitializeLog(in string aPathName, in unsigned long aMaxLines); + void CoolKeyLogMsg(in unsigned long aLogLevel, in string aMessage); + void BlinkCoolKey(in unsigned long aKeyType, in string aKeyID,in unsigned long aRate,in unsigned long aDuration); + +--- ./esc/src/app/xul/esc/application.ini.fix5 2007-06-20 11:39:57.000000000 -0700 ++++ ./esc/src/app/xul/esc/application.ini 2007-06-20 13:12:31.000000000 -0700 +@@ -25,7 +25,7 @@ + Name=ESC + ; + ; This field specifies your application's version. This field is optional. +-Version=1.0.1-3 ++Version=1.0.1-4 + ; + ; This field specifies your application's build ID (timestamp). This field is + ; required. +--- ./esc/src/app/xul/esc/chrome/content/esc/settings.xul.fix5 2007-06-20 11:40:31.000000000 -0700 ++++ ./esc/src/app/xul/esc/chrome/content/esc/settings.xul 2007-06-20 11:45:03.000000000 -0700 +@@ -25,8 +25,8 @@ + title="&escTitle;" + onload="InitializeAdminBindingList()" + onunload="cleanup()" +- width ="730" +- height= "460" ++ width ="720" ++ height= "415" + name="admin" + xmlns="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul"> + +--- ./esc/src/app/xul/esc/chrome/content/esc/ESC.js.fix5 2007-06-20 11:40:21.000000000 -0700 ++++ ./esc/src/app/xul/esc/chrome/content/esc/ESC.js 2007-06-20 11:44:52.000000000 -0700 +@@ -131,6 +131,9 @@ + netkey = netkey.QueryInterface(Components.interfaces.rhICoolKey); + gNotify = new jsNotify; + netkey.rhCoolKeySetNotifyCallback(gNotify); ++ ++ var logFileName = GetESCLogPathName("esc.log"); ++ netkey.CoolKeyInitializeLog(logFileName, 1000); + } catch(e) { + MyAlert(getBundleString("errorUniversalXPConnect") + e); + } +@@ -167,33 +170,33 @@ + + var Status_Messages = new Array( + getBundleString("errorNone"), +- getBundleString("serverError"), +- getBundleString("errorProblemCommToken"), ++ getBundleString("errorInternalServer"), ++ getBundleString("errorInternalServer"), + getBundleString("errorProblemCommToken"), + getBundleString("errorProblemResetTokenPin"), + getBundleString("errorInternalServer"), +- getBundleString("errorInternalServer"), ++ getBundleString("errorLifeCyclePDU"), + getBundleString("errorTokenEnrollment"), + getBundleString("errorProblemCommToken"), + getBundleString("errorInternalServer"), +- getBundleString("errorCommCA"), + getBundleString("errorInternalServer"), +- getBundleString("errorResetPin"), + getBundleString("errorInternalServer"), ++ getBundleString("errorInternalServer"), ++ getBundleString("errorTermSecureConn"), + getBundleString("errorAuthFailure"), + getBundleString("errorInternalServer"), + getBundleString("errorTokenDisabled"), +- getBundleString("errorProblemCommToken"), +- getBundleString("errorInternalServer"), ++ getBundleString("errorSecureChannel"), ++ getBundleString("errorServerMisconfig"), + getBundleString("errorTokenUpgrade"), + getBundleString("errorInternalServer"), +- getBundleString("errorProblemCommToken"), +- getBundleString("errorInvalidTokenType"), ++ getBundleString("errorExternalAuth"), + getBundleString("errorInvalidTokenType"), ++ getBundleString("errorInvalidTokenTypeParams"), + getBundleString("errorCannotPublish"), + getBundleString("errorCommTokenDB"), +- getBundleString("errorTokenDisabled"), +- getBundleString("errorPinReset"), ++ getBundleString("errorTokenSuspended"), ++ getBundleString("errorPinResetable"), + getBundleString("errorConnLost"), + getBundleString("errorEntryTokenDB"), + getBundleString("errorNoTokenState"), +@@ -201,10 +204,10 @@ + getBundleString("errorTokenUnusable"), + getBundleString("errorNoInactiveToken"), + getBundleString("errorProcessMultiTokens"), ++ getBundleString("errorTokenTerminated"), + getBundleString("errorInternalServer"), +- getBundleString("errorKeyRecoveryProcessed"), + getBundleString("errorKeyRecoveryFailed"), +- getBundleString("errorNoOperateLostToken"), ++ getBundleString("errorInternalServer"), + getBundleString("errorKeyArchival"), + getBundleString("errorConnTKS"), + getBundleString("errorFailUpdateTokenDB"), +@@ -559,9 +562,9 @@ + + function TestStatusMessages() + { +- for(i = 0 ; i < 48; i++) ++ for(i = 0 ; i < 49; i++) + { +- MyAlert(Status_Messages[i]); ++ MyAlert( i + " " + Status_Messages[i]); + } + } + +@@ -4263,9 +4266,9 @@ + + var value = line.value; + +- var colonIndex = value.indexOf(":"); ++ //var colonIndex = value.indexOf(":"); + +- value = value.substring(colonIndex + 1); ++ //value = value.substring(colonIndex + 1); + + lines.push(value); + } while(hasmore); +@@ -4484,3 +4487,29 @@ + adminList.focus(); + } + } ++ ++function GetESCLogPathName(aName) ++{ ++ ++ if(!aName) ++ return null; ++ ++ const logFileName = aName; ++ ++ // Get executable directory ++ ++ var file = Components.classes["@mozilla.org/file/directory_service;1"] ++ .getService(Components.interfaces.nsIProperties) ++ .get("ProfD", Components.interfaces.nsIFile); ++ ++ file = file.parent; ++ file.append(logFileName); ++ ++ ++ //alert("LogPathName " + file.path); ++ ++ ++ return file.path; ++ ++ ++} +--- ./esc/src/app/xul/esc/chrome/locale/en-US/esc.properties.fix5 2007-06-20 11:40:51.000000000 -0700 ++++ ./esc/src/app/xul/esc/chrome/locale/en-US/esc.properties 2007-06-20 11:45:50.000000000 -0700 +@@ -85,40 +85,48 @@ + #ESC Error Messages from TPS + errorNone=Operation Completed Successfully. + serverError=Smart Card Server error. +-errorProblemResetTokenPin=Internal Smart Card Server error. +-errorTokenEnrollment=Smart card enrollment error. ++errorProblemResetTokenPin=The Smart Card Server cannot reset your smart card's password. ++errorTokenEnrollment=The Smart Card Server cannot import the required certificates into your smart card. ++errorLifeCyclePDU=The Smart Card Server cannot finalize the enrollment of your smart card. + errorCommCA=Error communicating with the Certification Authority. + errorInternalServer=Internal Smart Card Server error. + errorResetPin=Error resetting the smart card's password. + errorInternalServer=Internal Smart Card Server error. +-errorAuthFailure=Smart Card Server authentication failure. +-errorTokenDisabled=Your smart card is listed as disabled. +-errorProblemCommToken=Problem communicating with the smart card. +-errorTokenUpgrade=Cannot upgrade smart card software. +-errorInvalidTokenType=Invalid smart card type. +-errorCannotPublish=Cannot publish smart card information. +-errorCommTokenDB=Cannot communicate with smart card database. +-errorPinReset=Cannot reset the password value for the smart card. +-errorConnLost=Connection to Smart Card Server. +-errorEntryTokenDB=Can not create entry for the smart card in the smart card database. +-errorNoTokenState=Smart card found to be in an inconsistent state. +-errorInvalidLostTokenReason=Invalid reason for lost smart card submitted. +-errorTokenUnusable=Smart card found to be unusable due to compromise. +-errorNoInactiveToken=No such inactive smart card found. +-errorProcessMultiTokens=Can not process more than one active smart card. ++errorAuthFailure=The Smart Card Server cannot validate your credentials. Please try again with the correct credentials. ++errorTokenDisabled=The Smart Card Server does not know about your smart card. ++errorSecureChannel=The Smart Card Server cannot establish a secure channel with the smart card. ++errorServerMisconfig=The Smart Card Server has not been configured correctly. ++errorProblemCommToken=Your smart card can not perform the operation requested by the Smart Card Server. ++errorExternalAuth=Your smart card cannot correctly identify the Smart Card Server. ++errorTokenUpgrade=The Smart Card Server cannot upgrade the software on your smart card. ++errorTermSecureConn=The Smart Card Server can not terminate the secure cummunications channel with the smart card. ++errorInvalidTokenType=The Smart Card Server does not recognize the requested type of card enrollment. ++errorInvalidTokenTypeParams=The Smart Card Server cannot process the requested type of enrollment due to a misconfiguration. ++errorCannotPublish=The Smart Card Server cannot publish your card's certificates to the certificate directory. ++errorCommTokenDB=The Smart Card Server cannot connect to its internal database. ++errorTokenSuspended=Your smart card has been suspended. ++errorPinResetable=You are not allowed to reset the password of this smart card. ++errorConnLost=The Smart Card Manager has lost the connection to the Smart Card Server. ++errorEntryTokenDB=The Smart Card Server cannot add your smart card to its internal database. ++errorNoTokenState=The Smart Card server does not recognize your smart card's current status. ++errorInvalidLostTokenReason=The Smart Card server cannot process your smart card which has been reported lost. ++errorTokenUnusable=The Smart Card Server cannot process your smart card which has been reported stolen. ++errorNoInactiveToken=The Smart Card Server cannot restore your smart card's security keys. ++errorProcessMultiTokens=The Smart Card Server has detected that you already have one enrolled smart card. The server only allows one enrolled card per user. ++errorTokenTerminated=The Smart Card Server can not process your smart card which is marked as terminated. + errorKeyRecoveryProcessed=Smart card key recovery has been processed. +-errorKeyRecoveryFailed=Smart card key recovery failed. ++errorKeyRecoveryFailed=The Smart Card Server can not restore the security keys onto your smart card. + errorNoOperateLostToken=Cannot process this smart card, which has been reported lost. +-errorKeyArchival=Smart card key archival error. +-errorConnTKS=Problem connecting to the Smart Card TKS Server. +-errorFailUpdateTokenDB=Failed to update smart card database. +-errorCertRevocation=Internal certificate revocation error discovered. +-errorNotOwnToken=User does not own this smart card. +-errorESCMisconfigured=Smart Card Manager has been misconfigured. +-errorESCNoCommCardReader=Smart Card Manager can't communicate with card reader. +-errorESCNoTokenSession=Smart Card Manager can't initiate session with smart card. +-errorESCNoTalkTPS=Smart Card Manager can't talk to Smart Card Server. +-errorESCNoTalkTokenReader=Smart Card Manager can't talk to smart card reader. ++errorKeyArchival=The Smart Card Server can not restore the security keys onto your smart card due to a server misconfiguration. ++errorConnTKS=The Smart Card server cannot contact its security key server,which is required for processing. ++errorFailUpdateTokenDB=The Smart Card Server cannot reset the status of your smart card. ++errorCertRevocation=The Smart Card Server cannot mark the security keys on your smart card as revoked. ++errorNotOwnToken=The Smart Card Server cannot process a smart card which you do not own. ++errorESCMisconfigured=The Smart Card Manager has been misconfigured. ++errorESCNoCommCardReader=The Smart Card Manager cannot initiate communications with the smart card. ++errorESCNoTokenSession=The Smart Card Manager cannot establish a communications session with the smart card. ++errorESCNoTalkTPS=The Smart Card Manager cannot initiate communications with the Smart Card Server. ++errorESCNoTalkTokenReader=The Smart Card Manager cannot finalize communications with the smart card. + #ESC text in general Alert messages + errorCoolKeyIsAuth=coolkey.GetCoolKeyIsAuthenticated() failed! + errorAuthCoolKey=coolkey.AuthenticateCoolKey failed! diff --git a/esc.spec b/esc.spec index 5f2f1ab..1b25611 100644 --- a/esc.spec +++ b/esc.spec @@ -1,6 +1,6 @@ Name: esc Version: 1.0.1 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Enterprise Security Client Smart Card Client License: GPL URL: http://directory.fedora.redhat.com/wiki/CoolKey @@ -12,6 +12,7 @@ Patch1: firefox-1.5-with-system-nss.patch Patch2: firefox-1.1-nss-system-nspr.patch Patch3: esc-1.0.1-admin-row-update.patch Patch4: esc-1.0.1-ui-fixes-1.patch +Patch5: esc-1.0.1-log-fixes.patch BuildRequires: doxygen fontconfig-devel freetype-devel >= 2.1 BuildRequires: glib2-devel libIDL-devel atk-devel gtk2-devel libjpeg-devel @@ -66,6 +67,7 @@ cryptographic smartcards. %patch3 -p1 -b .fix3 %patch4 -p1 -b .fix4 +%patch5 -p1 -b .fix5 #Unpack xulrunner where esc expects it to be. @@ -176,10 +178,12 @@ if [ -x %{_bindir}/gtk-update-icon-cache ]; then fi %changelog -* Thu Apr 26 2007 Jack Magne - 1.0.0-3 +* Wed Jun 20 2007 Jack Magne - 1.0.1-4 +- Fixes to the diagnostics log files and esc error messages. +* Thu Apr 26 2007 Jack Magne - 1.0.1-3 - Many UI usability fixes. -* Tue Apr 03 2007 Jack Magne - 1.0.0-2 -* Mon Mar 05 2007 Jack Magne - 1.0.0-1 +* Tue Apr 03 2007 Jack Magne - 1.0.1-2 +* Mon Mar 05 2007 Jack Magne - 1.0.1-1 - Stability fixes * Fri Oct 27 2006 Jack Magne - 1.0.0-19 - More mac and win fixes.