diff options
Diffstat (limited to 'source4/web_server')
-rw-r--r-- | source4/web_server/esp/esp.h | 2 | ||||
-rw-r--r-- | source4/web_server/http.c | 13 |
2 files changed, 13 insertions, 2 deletions
diff --git a/source4/web_server/esp/esp.h b/source4/web_server/esp/esp.h index 4503cacbb7..5d343db96e 100644 --- a/source4/web_server/esp/esp.h +++ b/source4/web_server/esp/esp.h @@ -97,7 +97,7 @@ typedef struct Esp { void (*createSession)(EspHandle handle, int timeout); void (*destroySession)(EspHandle handle); char *(*getSessionId)(EspHandle handle); - int (*mapToStorage)(EspHandle handle, char *path, int len, char *uri, + int (*mapToStorage)(EspHandle handle, char *path, int len, const char *uri, int flags); int (*readFile)(EspHandle handle, char **buf, int *len, const char *path); void (*redirect)(EspHandle handle, int code, char *url); diff --git a/source4/web_server/http.c b/source4/web_server/http.c index fa03830295..25595a8ad7 100644 --- a/source4/web_server/http.c +++ b/source4/web_server/http.c @@ -158,6 +158,16 @@ failed: } /* + called when esp wants to find the real path of a file +*/ +static int http_mapToStorage(EspHandle handle, char *path, int len, const char *uri, int flags) +{ + if (uri == NULL || strlen(uri) >= len) return -1; + strncpy(path, uri, len); + return 0; +} + +/* called when esp wants to output something */ static int http_writeBlock(EspHandle handle, char *buf, int size) @@ -253,7 +263,8 @@ static const struct Esp esp_control = { .setHeader = http_setHeader, .redirect = http_redirect, .setResponseCode = http_setResponseCode, - .readFile = http_readFile + .readFile = http_readFile, + .mapToStorage = http_mapToStorage }; |