mirror of
https://github.com/cesanta/mongoose.git
synced 2026-10-21 11:30:01 +00:00
Add align to struct mg_iobuf
This commit is contained in:
1 parent
a468f58128
commit
17e2fdd4cb
12 files changed
+92
-74
No files matched your search
@@ -12,12 +12,12 @@
|
||||
|
||||
#if MG_ENABLE_SSI
|
||||
static char *mg_ssi(const char *path, const char *root, int depth) {
|
||||
struct mg_iobuf b = {NULL, 0, 0};
|
||||
struct mg_iobuf b = {NULL, 0, 0, MG_IO_SIZE};
|
||||
FILE *fp = fopen(path, "rb");
|
||||
if (fp != NULL) {
|
||||
char buf[MG_SSI_BUFSIZ], arg[sizeof(buf)];
|
||||
int ch, intag = 0;
|
||||
size_t len = 0, align = MG_IO_SIZE;
|
||||
size_t len = 0;
|
||||
buf[0] = arg[0] = '\0';
|
||||
while ((ch = fgetc(fp)) != EOF) {
|
||||
if (intag && ch == '>' && buf[len - 1] == '-' && buf[len - 2] == '-') {
|
||||
@@ -30,7 +30,7 @@ static char *mg_ssi(const char *path, const char *root, int depth) {
|
||||
mg_snprintf(tmp, sizeof(tmp), "%.*s%s", (int) (p - path), path, arg);
|
||||
if (depth < MG_MAX_SSI_DEPTH &&
|
||||
(data = mg_ssi(tmp, root, depth + 1)) != NULL) {
|
||||
mg_iobuf_add(&b, b.len, data, strlen(data), align);
|
||||
mg_iobuf_add(&b, b.len, data, strlen(data));
|
||||
free(data);
|
||||
} else {
|
||||
MG_ERROR(("%s: file=%s error or too deep", path, arg));
|
||||
@@ -40,7 +40,7 @@ static char *mg_ssi(const char *path, const char *root, int depth) {
|
||||
mg_snprintf(tmp, sizeof(tmp), "%s%s", root, arg);
|
||||
if (depth < MG_MAX_SSI_DEPTH &&
|
||||
(data = mg_ssi(tmp, root, depth + 1)) != NULL) {
|
||||
mg_iobuf_add(&b, b.len, data, strlen(data), align);
|
||||
mg_iobuf_add(&b, b.len, data, strlen(data));
|
||||
free(data);
|
||||
} else {
|
||||
MG_ERROR(("%s: virtual=%s error or too deep", path, arg));
|
||||
@@ -48,13 +48,13 @@ static char *mg_ssi(const char *path, const char *root, int depth) {
|
||||
} else {
|
||||
// Unknown SSI tag
|
||||
MG_ERROR(("Unknown SSI tag: %.*s", (int) len, buf));
|
||||
mg_iobuf_add(&b, b.len, buf, len, align);
|
||||
mg_iobuf_add(&b, b.len, buf, len);
|
||||
}
|
||||
intag = 0;
|
||||
len = 0;
|
||||
} else if (ch == '<') {
|
||||
intag = 1;
|
||||
if (len > 0) mg_iobuf_add(&b, b.len, buf, len, align);
|
||||
if (len > 0) mg_iobuf_add(&b, b.len, buf, len);
|
||||
len = 0;
|
||||
buf[len++] = (char) (ch & 0xff);
|
||||
} else if (intag) {
|
||||
@@ -68,13 +68,13 @@ static char *mg_ssi(const char *path, const char *root, int depth) {
|
||||
} else {
|
||||
buf[len++] = (char) (ch & 0xff);
|
||||
if (len >= sizeof(buf)) {
|
||||
mg_iobuf_add(&b, b.len, buf, len, align);
|
||||
mg_iobuf_add(&b, b.len, buf, len);
|
||||
len = 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
if (len > 0) mg_iobuf_add(&b, b.len, buf, len, align);
|
||||
if (b.len > 0) mg_iobuf_add(&b, b.len, "", 1, align); // nul-terminate
|
||||
if (len > 0) mg_iobuf_add(&b, b.len, buf, len);
|
||||
if (b.len > 0) mg_iobuf_add(&b, b.len, "", 1); // nul-terminate
|
||||
fclose(fp);
|
||||
}
|
||||
(void) depth;
|
||||
|
||||
Reference in new issue
Block a user