case 'o': MakeCertOK = 1; break;
case 'o': MakeCertOK++; break;
main(int argc, char **argv){    const char *         dir         = ".";    const char *         fileName    = NULL;    char *               hostName    = NULL;    char *               nickName    = NULL;    char *               progName    = NULL;    char *               tmp         = NULL;    char *		 passwd      = NULL;    int                  connections = 1;    int                  exitVal;    int                  tmpInt;    unsigned short       port        = 443;    SECStatus            rv;    PLOptState *         optstate;    PLOptStatus          status;    cert_and_key Cert_And_Key;    /* Call the NSPR initialization routines */    PR_Init( PR_SYSTEM_THREAD, PR_PRIORITY_NORMAL, 1);    tmp      = strrchr(argv[0], '/');    tmp      = tmp ? tmp + 1 : argv[0];    progName = strrchr(tmp, '\\');    progName = progName ? progName + 1 : tmp;     optstate = PL_CreateOptState(argc, argv, "2:3C:DNTc:d:n:op:qt:vw:");    while ((status = PL_GetNextOpt(optstate)) == PL_OPT_OK) {	switch(optstate->option) {	case '2': fileName = optstate->value; break;	case '3': disableSSL3 = PR_TRUE; break;	case 'C': cipherString = optstate->value; break;	case 'D': NoDelay = PR_TRUE; break;	case 'N': NoReuse = 1; break;	case 'T': disableTLS = PR_TRUE; break;	case 'c': connections = PORT_Atoi(optstate->value); break;	case 'd': dir = optstate->value; break;        case 'n': nickName = PL_strdup(optstate->value); break;	case 'o': MakeCertOK = 1; break;	case 'p': port = PORT_Atoi(optstate->value); break;	case 'q': QuitOnTimeout = PR_TRUE; break;	case 't':	    tmpInt = PORT_Atoi(optstate->value);	    if (tmpInt > 0 && tmpInt < MAX_THREADS) 	        max_threads = tmpInt;	    break;        case 'v': verbose++; break;	case 'w': passwd = PL_strdup(optstate->value); break;	case 0:   /* positional parameter */	    if (hostName) {		Usage(progName);	    }	    hostName = PL_strdup(optstate->value);	    break;	default:	case '?':	    Usage(progName);	    break;	}    }    if (!hostName || status == PL_OPT_BAD)    	Usage(progName);    if (port == 0)	Usage(progName);    if (fileName)    	readBigFile(fileName);    /* set our password function */    if ( passwd ) {	PK11_SetPasswordFunc(ownPasswd);    } else {	PK11_SetPasswordFunc(SECU_GetModulePassword);    }    /* Call the libsec initialization routines */    rv = NSS_Initialize(dir, "", "", SECMOD_DB, NSS_INIT_READONLY);    if (rv != SECSuccess) {    	fputs("NSS_Init failed.\n", stderr);	exit(1);    }    ssl3stats = SSL_GetStatistics();    Cert_And_Key.lock = PR_NewLock();    Cert_And_Key.nickname = nickName;    Cert_And_Key.password = passwd;    Cert_And_Key.cert = NULL;    Cert_And_Key.key = NULL;    if (PR_FALSE == FindCertAndKey(&Cert_And_Key)) {	if (Cert_And_Key.cert == NULL) {	    fprintf(stderr, "strsclnt: Can't find certificate %s\n", Cert_And_Key.nickname);	    exit(1);	}	if (Cert_And_Key.key == NULL) {	    fprintf(stderr, "strsclnt: Can't find Private Key for cert %s\n", 		    Cert_And_Key.nickname);	    exit(1);	}    }    client_main(port, connections, &Cert_And_Key, hostName);    /* clean up */    if (Cert_And_Key.cert) {	CERT_DestroyCertificate(Cert_And_Key.cert);    }    if (Cert_And_Key.key) {	SECKEY_DestroyPrivateKey(Cert_And_Key.key);    }    PR_DestroyLock(Cert_And_Key.lock);    /* some final stats. */    if (ssl3stats->hsh_sid_cache_hits + ssl3stats->hsh_sid_cache_misses +        ssl3stats->hsh_sid_cache_not_ok == 0) {	/* presumably we were testing SSL2. */	printf("strsclnt: %d server certificates tested.\n", certsTested);    } else {	printf(	"strsclnt: %ld cache hits; %ld cache misses, %ld cache not reusable\n",	    ssl3stats->hsh_sid_cache_hits, 	    ssl3stats->hsh_sid_cache_misses,	    ssl3stats->hsh_sid_cache_not_ok);    }    if (!NoReuse)	exitVal = (ssl3stats->hsh_sid_cache_misses > 1) ||                (ssl3stats->hsh_sid_cache_not_ok != 0) ||                (certsTested > 1);    else	exitVal = (ssl3stats->hsh_sid_cache_misses != connections) ||                (certsTested != connections);    exitVal = ( exitVal || failed_already );    SSL_ClearSessionCache();    if (NSS_Shutdown() != SECSuccess) {        exit(1);    }    PR_Cleanup();    return exitVal;}