nssrv = nssToken_TraverseCertificates(token, NULL, &search);
if (nssToken_SearchCerts(token)) { nssrv = nssToken_TraverseCertificates(token, NULL, &search); }
NSSTrustDomain_TraverseCertificates(  NSSTrustDomain *td,  PRStatus (*callback)(NSSCertificate *c, void *arg),  void *arg){    PRStatus nssrv;    NSSToken *token;    nssList *certList;    nssTokenCertSearch search;    struct traverse_arg ta;    certList = nssList_Create(NULL, PR_FALSE);    if (!certList) return NULL;    (void *)nssTrustDomain_GetCertsFromCache(td, certList);    /* set traverse args */    ta.callback = callback;    ta.cached = certList;    ta.arg = arg;    /* set the search criteria */    search.callback = traverse_callback;    search.cbarg = &ta;    search.cached = certList;    search.searchType = nssTokenSearchType_TokenOnly;    /* traverse the tokens */    for (token  = (NSSToken *)nssListIterator_Start(td->tokens);         token != (NSSToken *)NULL;         token  = (NSSToken *)nssListIterator_Next(td->tokens))    {	nssrv = nssToken_TraverseCertificates(token, NULL, &search);    }    nssListIterator_Finish(td->tokens);#ifdef NSS_3_4_CODE    nssList_Clear(certList, cert_destructor_with_cache);#else    nssList_Clear(certList, cert_destructor);#endif    nssList_Destroy(certList);    return NULL;}