-const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.74 2008/04/26 15:50:56 fabiankeil Exp $";
+const char cgisimple_rcs[] = "$Id: cgisimple.c,v 1.79 2008/05/04 13:30:56 fabiankeil Exp $";
/*********************************************************************
*
* File : $Source: /cvsroot/ijbswa/current/cgisimple.c,v $
*
* Revisions :
* $Log: cgisimple.c,v $
+ * Revision 1.79 2008/05/04 13:30:56 fabiankeil
+ * Streamline parse_http_url()'s prototype.
+ *
+ * Revision 1.78 2008/05/03 16:50:11 fabiankeil
+ * Leverage content_filters_enabled() in cgi_show_url_info().
+ *
+ * Revision 1.77 2008/05/02 09:47:48 fabiankeil
+ * In cgi_show_url_info, pass an initialized http structure
+ * to parse_http_url() as that will be required soonish and
+ * assert that https URLs are recognized correctly.
+ *
+ * Revision 1.76 2008/04/28 09:13:30 fabiankeil
+ * In load_file(), remember the error reason and fclose()
+ * and return later on instead of right away.
+ *
+ * Revision 1.75 2008/04/27 13:52:52 fabiankeil
+ * Move CGI file loading code into load_file() and
+ * add checks for unexpected errors.
+ *
* Revision 1.74 2008/04/26 15:50:56 fabiankeil
* Fix macro name in cgi_show_file() error path.
*
return JB_ERR_MEMORY;
}
- err = parse_http_url(url_param, url_to_query, csp);
+ memset(url_to_query, '\0', sizeof(url_to_query));
+ err = parse_http_url(url_param, url_to_query, REQUIRE_PROTOCOL);
+ assert(url_to_query->ssl == !strncmp(url_param, "https://", 8));
free(url_param);
* If zlib support is available, if no content filters
* are enabled or if the prevent-compression action is enabled,
* suppress the "compression could prevent filtering" warning.
- *
- * XXX: Change content_filters_enabled()'s prototype so we can
- * use it here.
*/
#ifndef FEATURE_ZLIB
- if ((list_is_empty(action->multi[ACTION_MULTI_FILTER])
- && !(action->flags & ACTION_DEANIMATE))
- || (action->flags & ACTION_NO_COMPRESSION))
+ if (!content_filters_enabled(action) ||
+ (action->flags & ACTION_NO_COMPRESSION))
#endif
{
if (!err) err = map_block_killer(exports, "filters-might-be-ineffective");
{
FILE *fp;
int ret;
+ jb_err err = JB_ERR_OK;
fp = fopen(filename, "rb");
if (NULL == fp)
*buffer = (char *)zalloc(*length + 1);
if (NULL == *buffer)
{
- fclose(fp);
- return JB_ERR_MEMORY;
+ err = JB_ERR_MEMORY;
}
-
- if (!fread(*buffer, *length, 1, fp))
+ else if (!fread(*buffer, *length, 1, fp))
{
/*
* May happen if the file size changes between fseek() and
*/
log_error(LOG_LEVEL_ERROR,
"Couldn't completely read file %s.", filename);
- fclose(fp);
- return JB_ERR_FILE;
+ err = JB_ERR_FILE;
}
fclose(fp);
- return JB_ERR_OK;
+ return err;
}