addEnv("HTTP", "COOKIE", cookie);
if(content_type)
addEnv("CONTENT", "TYPE", content_type);
+#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
if(config->remoteuser) {
addEnv("REMOTE", "USER", config->remoteuser);
addEnv("AUTH_TYPE", "", "Basic");
}
+#endif
if(config->referer)
addEnv("HTTP", "REFERER", config->referer);
}
firstLine = 0;
}
- bb_full_write(s, rbuf, count);
+ if (bb_full_write(s, rbuf, count) != count)
+ break;
+
#ifdef DEBUG
if (config->debugHttpd)
fprintf(stderr, "cgi read %d bytes\n", count);
sendHeaders(HTTP_OK);
while ((count = bb_full_read(f, buf, MAX_MEMORY_BUFF)) > 0) {
- bb_full_write(a_c_w, buf, count);
+ if (bb_full_write(a_c_w, buf, count) != count)
+ break;
}
close(f);
} else {
}
#endif
if (strcmp(p, request) == 0) {
+#ifdef CONFIG_FEATURE_HTTPD_AUTH_MD5
set_remoteuser_var:
+#endif
config->remoteuser = strdup(request);
if(config->remoteuser)
config->remoteuser[(u - request)] = 0;
# ifdef CONFIG_FEATURE_HTTPD_CGI
free(cookie);
free(content_type);
- free(config->remoteuser);
free(config->referer);
+#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
+ free(config->remoteuser);
+#endif
# endif
shutdown(a_c_w, SHUT_WR);
shutdown(a_c_r, SHUT_RD);