mirror of
https://github.com/samba-team/samba.git
synced 2025-08-07 09:49:30 +03:00
r8404: small upstream merges of appweb code
(This used to be commit 205ff9a82b
)
This commit is contained in:
committed by
Gerald (Jerry) Carter
parent
b4f6a348bb
commit
8fc8fa2ad4
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* @file esp.c
|
||||
* @brief Embedded Server Pages (ESP) core processing.
|
||||
* @overview The ESP handler provides an efficient way to generate
|
||||
* @overview Embedded Server Pages provides an efficient way to generate
|
||||
* dynamic pages using server-side Javascript. This code provides
|
||||
* core processing, and should be called by an associated web
|
||||
* server URL handler.
|
||||
@ -166,7 +166,7 @@ EspRequest *espCreateRequest(EspHandle webServerRequestHandle, char *uri,
|
||||
* Define variables as globals. headers[] are prefixed with "HTTP_".
|
||||
* NOTE: MaRequest::setVar does not copy into globals, whereas espSetVar
|
||||
* does if legacy_api is defined. So variables pre-defined by MaRequest
|
||||
* must be copied here into globals[].
|
||||
* must be copied here into globals[].
|
||||
*
|
||||
* NOTE: if a variable is in session[] and in form[], the form[] will
|
||||
* override being later in the variables[] list. Use mprSetProperty
|
||||
@ -301,7 +301,7 @@ int espGetVar(EspRequest *ep, EspEnvType oType, char *var, MprVar *value)
|
||||
*/
|
||||
|
||||
int espProcessRequest(EspRequest *ep, const char *docPath, char *docBuf,
|
||||
char **errMsg)
|
||||
char **errMsg)
|
||||
{
|
||||
char *jsBuf;
|
||||
|
||||
@ -549,7 +549,7 @@ static int getEspToken(int state, EspParse *parse)
|
||||
if (parse->token == 0) {
|
||||
return ESP_TOK_ERR;
|
||||
}
|
||||
parse->token[parse->tokLen] = '\0';
|
||||
parse->token[parse->tokLen] = '\0';
|
||||
parse->tokp = &parse->token[parse->tokLen - 1];
|
||||
parse->tokLen += ESP_TOK_INCR;
|
||||
parse->endp = &parse->token[parse->tokLen - 1];
|
||||
@ -774,7 +774,7 @@ static int buildScript(EspRequest *ep, char **jsBuf, char *input, char **errMsg)
|
||||
mprStrcpy(incPath, sizeof(incPath), parse.token);
|
||||
} else {
|
||||
mprGetDirName(dir, sizeof(dir), ep->uri);
|
||||
mprSprintf(incPath, sizeof(incPath), "%s/%s",
|
||||
mprSprintf(incPath, sizeof(incPath), "%s/%s",
|
||||
dir, parse.token);
|
||||
}
|
||||
if (esp->mapToStorage(ep->requestHandle, path, sizeof(path),
|
||||
@ -812,7 +812,7 @@ static int buildScript(EspRequest *ep, char **jsBuf, char *input, char **errMsg)
|
||||
}
|
||||
mprFree(parse.token);
|
||||
if (len < 0) {
|
||||
mprAllocSprintf(errMsg, MPR_MAX_STRING,
|
||||
mprAllocSprintf(errMsg, MPR_MAX_STRING,
|
||||
"Script token is too big in %s.\nConfigured maximum is %d.",
|
||||
path, maxScriptSize);
|
||||
return MPR_ERR_WONT_FIT;
|
||||
|
@ -93,8 +93,11 @@ static int includeProc(EspRequest *ep, int argc, char **argv)
|
||||
buf[size] = '\0';
|
||||
|
||||
extension = strrchr(argv[i], '.');
|
||||
/* this makes handling include files in esp scripts much more convenient */
|
||||
if (extension && strcasecmp(extension, ".esp") == 0) {
|
||||
|
||||
/*
|
||||
* Allow nested inclusion of ESP requests
|
||||
*/
|
||||
if (extension && mprStrCmpAnyCase(extension, ".esp") == 0) {
|
||||
if (espProcessRequest(ep, path, buf, &emsg) != 0) {
|
||||
espError(ep, "Cant evaluate script - %s", emsg?emsg:"");
|
||||
mprFree(buf);
|
||||
|
@ -273,6 +273,8 @@ extern int mprMemcpy(char *dest, int destMax, const char *src, int nbytes);
|
||||
extern void mprSetCtx(void *ctx);
|
||||
extern void *mprMemCtx(void);
|
||||
|
||||
#define mprStrCmpAnyCase(s1, s2) StrCaseCmp(s1, s2)
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -156,10 +156,6 @@ typedef BLD_FEATURE_NUM_TYPE MprNum;
|
||||
#define MPR_MAX_VAR 512
|
||||
#endif
|
||||
|
||||
#ifndef __NO_PACK
|
||||
#pragma pack(2)
|
||||
#endif /* _NO_PACK */
|
||||
|
||||
/*
|
||||
* Function signatures
|
||||
*/
|
||||
@ -348,11 +344,6 @@ typedef struct MprVar {
|
||||
|
||||
typedef BLD_FEATURE_NUM_TYPE MprNumber;
|
||||
|
||||
|
||||
#ifndef __NO_PACK
|
||||
#pragma pack()
|
||||
#endif /* __NO_PACK */
|
||||
|
||||
/********************************* Prototypes *********************************/
|
||||
/*
|
||||
* Variable constructors and destructors
|
||||
|
Reference in New Issue
Block a user