mirror of
https://github.com/cesanta/mongoose.git
synced 2026-11-06 15:51:25 +00:00
Add initial Zephyr support
This commit is contained in:
1 parent
642befa8d5
commit
7372a05ce5
5 files changed
+51
-8
No files matched your search
@@ -6,19 +6,23 @@
|
||||
#define MG_MAX_SSI_DEPTH 5
|
||||
#endif
|
||||
|
||||
#ifndef MG_SSI_BUFSIZ
|
||||
#define MG_SSI_BUFSIZ 1024
|
||||
#endif
|
||||
|
||||
#if MG_ENABLE_SSI
|
||||
static char *mg_ssi(const char *path, const char *root, int depth) {
|
||||
struct mg_iobuf b = {NULL, 0, 0};
|
||||
FILE *fp = fopen(path, "rb");
|
||||
if (fp != NULL) {
|
||||
char buf[BUFSIZ] = "", arg[sizeof(buf)] = "";
|
||||
char buf[MG_SSI_BUFSIZ] = "", arg[sizeof(buf)] = "";
|
||||
int ch, intag = 0;
|
||||
size_t len = 0, align = MG_IO_SIZE;
|
||||
while ((ch = fgetc(fp)) != EOF) {
|
||||
if (intag && ch == '>' && buf[len - 1] == '-' && buf[len - 2] == '-') {
|
||||
buf[len++] = (char) (ch & 0xff);
|
||||
if (sscanf(buf, "<!--#include file=\"%[^\"]", arg)) {
|
||||
char tmp[MG_PATH_MAX + BUFSIZ + 10],
|
||||
char tmp[MG_PATH_MAX + MG_SSI_BUFSIZ + 10],
|
||||
*p = (char *) path + strlen(path), *data;
|
||||
while (p > path && p[-1] != MG_DIRSEP && p[-1] != '/') p--;
|
||||
mg_snprintf(tmp, sizeof(tmp), "%.*s%s", (int) (p - path), path, arg);
|
||||
@@ -30,7 +34,7 @@ static char *mg_ssi(const char *path, const char *root, int depth) {
|
||||
MG_ERROR(("%s: file=%s error or too deep", path, arg));
|
||||
}
|
||||
} else if (sscanf(buf, "<!--#include virtual=\"%[^\"]", arg)) {
|
||||
char tmp[MG_PATH_MAX + BUFSIZ + 10], *data;
|
||||
char tmp[MG_PATH_MAX + MG_SSI_BUFSIZ + 10], *data;
|
||||
mg_snprintf(tmp, sizeof(tmp), "%s%s", root, arg);
|
||||
if (depth < MG_MAX_SSI_DEPTH &&
|
||||
(data = mg_ssi(tmp, root, depth + 1)) != NULL) {
|
||||
|
||||
Reference in new issue
Block a user