HTML-Embperl
view release on metacpan or search on metacpan
ADDOPTMG (dbgHeadersIn )
ADDOPTMG (dbgShowCleanup )
ADDOPTMG (dbgProfile )
ADDOPTMG (dbgSession )
ADDOPTMG (dbgImport )
#ifdef EP2
DomInit () ;
#endif
bInitDone = 1 ;
return rc ;
}
/* ---------------------------------------------------------------------------- */
/* */
/* clean up embperl module */
/* */
/* ---------------------------------------------------------------------------- */
int Term ()
{
req * r = pCurrReq ;
EPENTRY (iembperl_term) ;
if (!bInitDone)
return ok ;
CloseLog (r) ;
CloseOutput (r) ;
return ok ;
}
int ResetHandler (/*in*/ SV * pApacheReqSV)
{
#ifdef APACHE
request_rec * pReq = (request_rec *)SvIV((SV*)SvRV(pApacheReqSV));
pReq -> handler = NULL ;
#endif
return ok ;
}
/* ---------------------------------------------------------------------------- */
/* */
/* Localise op_mask then opmask_add() */
/* */
/* Just copied from Opcode.xs */
/* */
/* ---------------------------------------------------------------------------- */
static void
opmask_addlocal(SV * opset,
char * op_mask_buf)
{
char *orig_op_mask = op_mask;
int i,j;
char *bitmask;
STRLEN len;
int myopcode = 0;
int opset_len = (maxo + 7) / 8 ;
SAVEPPTR(op_mask);
op_mask = &op_mask_buf[0];
if (orig_op_mask)
Copy(orig_op_mask, op_mask, maxo, char);
else
Zero(op_mask, maxo, char);
/* OPCODES ALREADY MASKED ARE NEVER UNMASKED. See opmask_addlocal() */
bitmask = SvPV(opset, len);
for (i=0; i < opset_len; i++)
{
U16 bits = bitmask[i];
if (!bits)
{ /* optimise for sparse masks */
myopcode += 8;
continue;
}
for (j=0; j < 8 && myopcode < maxo; )
op_mask[myopcode++] |= bits & (1 << j++);
}
}
/* ---------------------------------------------------------------------------- */
/* */
/* Setup Configuration specficy data */
/* */
/* ---------------------------------------------------------------------------- */
tConf * SetupConfData (/*in*/ HV * pReqInfo,
/*in*/ SV * pOpcodeMask)
{
#ifdef EP2
SV * * ppSV ;
SV * pSV ;
SV * * ppCV ;
int rc ;
#endif
tConf * pConf = malloc (sizeof (tConf)) ;
if (!pConf)
return NULL ;
pConf -> bDebug = GetHashValueInt (pReqInfo, "debug", pCurrReq -> pConf?pCurrReq -> pConf -> bDebug:pCurrReq -> bDebug) ; /* Debugging options */
pConf -> bOptions = GetHashValueInt (pReqInfo, "options", pCurrReq -> pConf?pCurrReq -> pConf -> bOptions:pCurrReq -> bOptions) ; /* Options */
pConf -> nEscMode = GetHashValueInt (pReqInfo, "escmode", pCurrReq -> pConf?pCurrReq -> pConf -> nEscMode:escStd) ; /* EscMode */
pConf -> sPackage = sstrdup (GetHashValueStr (pReqInfo, "package", NULL)) ; /* Packagename */
pConf -> sLogFilename = sstrdup (GetHashValueStr (pReqInfo, "log", NULL)) ; /* name of logfile */
pConf -> sVirtLogURI = sstrdup (GetHashValueStr (pReqInfo, "virtlog", pCurrReq -> pConf?pCurrReq -> pConf -> sVirtLogURI:NULL)) ; /* name of logfile */
pConf -> pOpcodeMask = pOpcodeMask ; /* Opcode mask (if any) */
pConf -> sCookieName = sstrdup (GetHashValueStr (pReqInfo, "cookie_name", sCookieNameDefault)) ; /* Name to use for cookie */
pConf -> sCookieExpires = sstrdup (GetHashValueStr (pReqInfo, "cookie_expires", "")) ; /* cookie expiration time */
pConf -> sCookieDomain = sstrdup (GetHashValueStr (pReqInfo, "cookie_domain", "")) ; ; /* domain patter for which the cookie should be returned */
pConf -> sCookiePath = sstrdup (GetHashValueStr (pReqInfo, "cookie_path", "")) ; ; /* path to which cookie should be returned */
pConf -> cMultFieldSep = '\t' ;
pConf -> pOpenBracket = "[*" ;
pConf -> pCloseBracket = "*]" ;
pConf -> sPath = sstrdup (GetHashValueStr (pReqInfo, "path", pCurrReq -> pConf?pCurrReq -> pConf -> sPath:NULL)) ; /* file search path */
pConf -> sReqFilename = sstrdup (GetHashValueStr (pReqInfo, "reqfilename", pCurrReq -> pConf?pCurrReq -> pConf -> sReqFilename:NULL)) ; /* filename of original request */
pConf -> pReqParameter = pReqInfo ;
#ifdef EP2
pConf -> sRecipe = sstrdup (GetHashValueStr (pReqInfo, "recipe", "Embperl")) ; /* Recipe name */
pConf -> bEP1Compat = GetHashValueInt (pReqInfo, "ep1compat", pCurrReq -> pConf?pCurrReq -> pConf -> bEP1Compat:pCurrReq -> bEP1Compat) ; /* EP1Compat */
pConf -> sCacheKey = sstrdup (GetHashValueStr (pReqInfo, "cache_key", pCurrReq -> pConf?pCurrReq -> pConf -> sCacheKey:NULL)) ; ;
pConf -> bCacheKeyOptions = GetHashValueInt (pReqInfo, "cache_key_options", pCurrReq -> pConf?pCurrReq -> pConf -> bCacheKeyOptions:ckoptDefault) ;
ppCV = hv_fetch(pReqInfo, "expires_func", sizeof ("expires_func") - 1, 0) ;
( run in 0.584 second using v1.01-cache-2.11-cpan-71847e10f99 )