mirror of
https://github.com/netsurf-browser/netsurf
synced 2024-12-22 04:02:34 +03:00
reduce curl usage to fetcher, url unescaping and time parsing
This commit is contained in:
parent
c523bb47a0
commit
c313524998
@ -59,7 +59,6 @@
|
||||
#include "render/form_internal.h"
|
||||
#include "render/html.h"
|
||||
#include "render/box.h"
|
||||
#include "curl/curl.h"
|
||||
#include "javascript/js.h"
|
||||
|
||||
#include "desktop/browser_history.h"
|
||||
|
@ -217,7 +217,7 @@ static nserror amiga_nsurl_to_path(struct nsurl *url, char **path_out)
|
||||
return NSERROR_BAD_PARAMETER;
|
||||
}
|
||||
|
||||
res = url_unescape(lwc_string_data(urlpath) + 1, &path);
|
||||
res = url_unescape(lwc_string_data(urlpath) + 1, 0, &path);
|
||||
lwc_string_unref(urlpath);
|
||||
if (res != NSERROR_OK) {
|
||||
return res;
|
||||
|
@ -138,7 +138,9 @@ static nserror atari_nsurl_to_path(struct nsurl *url, char **path_out)
|
||||
return NSERROR_BAD_PARAMETER;
|
||||
}
|
||||
|
||||
res = url_unescape(lwc_string_data(urlpath), &path);
|
||||
res = url_unescape(lwc_string_data(urlpath),
|
||||
lwc_string_length(urlpath),
|
||||
&path);
|
||||
lwc_string_unref(urlpath);
|
||||
if (res != NSERROR_OK) {
|
||||
return res;
|
||||
|
@ -30,7 +30,6 @@
|
||||
#include <sys/select.h>
|
||||
#include <sys/stat.h>
|
||||
#include <sys/types.h>
|
||||
#include <curl/curl.h>
|
||||
|
||||
#include <Alert.h>
|
||||
#include <Application.h>
|
||||
@ -795,12 +794,14 @@ static void gui_quit(void)
|
||||
|
||||
static char *url_to_path(const char *url)
|
||||
{
|
||||
char *url_path = curl_unescape(url, 0);
|
||||
char *path;
|
||||
char *url_path;
|
||||
char *path = NULL;
|
||||
|
||||
/* return the absolute path including leading / */
|
||||
path = strdup(url_path + (FILE_SCHEME_PREFIX_LEN - 1));
|
||||
curl_free(url_path);
|
||||
if (url_unescape(url, 0, &url_path) == NSERROR_OK) {
|
||||
/* return the absolute path including leading / */
|
||||
path = strdup(url_path + (FILE_SCHEME_PREFIX_LEN - 1));
|
||||
free(url_path);
|
||||
}
|
||||
|
||||
return path;
|
||||
}
|
||||
|
@ -33,7 +33,6 @@
|
||||
#include <assert.h>
|
||||
#include <string.h>
|
||||
#include <time.h>
|
||||
#include <curl/curl.h>
|
||||
#include <libwapcaplet/libwapcaplet.h>
|
||||
|
||||
#include "oslib/mimemap.h"
|
||||
@ -53,6 +52,7 @@
|
||||
#include "utils/utf8.h"
|
||||
#include "utils/utils.h"
|
||||
#include "utils/string.h"
|
||||
#include "utils/url.h"
|
||||
#include "utils/corestrings.h"
|
||||
#include "netsurf/download.h"
|
||||
#include "desktop/download.h"
|
||||
@ -239,11 +239,11 @@ static nserror download_ro_filetype(download_context *ctx, bits *ftype_out)
|
||||
lwc_string *path = nsurl_get_component(url, NSURL_PATH);
|
||||
if (path != NULL && lwc_string_length(path) != 0) {
|
||||
char *raw_path;
|
||||
raw_path = curl_unescape(lwc_string_data(path),
|
||||
lwc_string_length(path));
|
||||
if (raw_path != NULL) {
|
||||
if (url_unescape(lwc_string_data(path),
|
||||
lwc_string_length(path),
|
||||
&raw_path) == NSERROR_OK) {
|
||||
ftype = ro_filetype_from_unix_path(raw_path);
|
||||
curl_free(raw_path);
|
||||
free(raw_path);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1513,7 +1513,9 @@ static nserror ro_nsurl_to_path(struct nsurl *url, char **path_out)
|
||||
return NSERROR_BAD_PARAMETER;
|
||||
}
|
||||
|
||||
res = url_unescape(lwc_string_data(urlpath), &unpath);
|
||||
res = url_unescape(lwc_string_data(urlpath),
|
||||
lwc_string_length(urlpath),
|
||||
&unpath);
|
||||
lwc_string_unref(urlpath);
|
||||
if (res != NSERROR_OK) {
|
||||
return res;
|
||||
|
@ -17,9 +17,7 @@
|
||||
*/
|
||||
|
||||
#include <limits.h>
|
||||
|
||||
#include "utils/config.h"
|
||||
|
||||
#include "utils/inet.h" /* get correct winsock ordering */
|
||||
#include <shlobj.h>
|
||||
#include <windows.h>
|
||||
|
||||
|
@ -141,7 +141,9 @@ static nserror windows_nsurl_to_path(struct nsurl *url, char **path_out)
|
||||
return NSERROR_BAD_PARAMETER;
|
||||
}
|
||||
|
||||
res = url_unescape(lwc_string_data(urlpath), &path);
|
||||
res = url_unescape(lwc_string_data(urlpath),
|
||||
lwc_string_length(urlpath),
|
||||
&path);
|
||||
lwc_string_unref(urlpath);
|
||||
if (res != NSERROR_OK) {
|
||||
return res;
|
||||
|
@ -27,9 +27,6 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
|
||||
#include <curl/curl.h>
|
||||
|
||||
#include "utils/log.h"
|
||||
#include "utils/url.h"
|
||||
#include "utils/utils.h"
|
||||
|
@ -80,7 +80,7 @@ TESTCFLAGS := -std=c99 -g -Wall \
|
||||
-D_BSD_SOURCE \
|
||||
-D_POSIX_C_SOURCE=200809L \
|
||||
-D_XOPEN_SOURCE=600 \
|
||||
-Itest -Iinclude -Ifrontends -I. -I.. \
|
||||
-Itest -Iinclude -Icontent/handlers -Ifrontends -I. -I.. \
|
||||
-Dnsgtk \
|
||||
$(shell pkg-config --cflags libcurl libparserutils libwapcaplet libdom libnsutils libutf8proc libidn) \
|
||||
$(LIB_CFLAGS) \
|
||||
|
@ -20,8 +20,6 @@
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
|
||||
#include <curl/curl.h>
|
||||
|
||||
#include "content/fetch.h"
|
||||
#include "content/llcache.h"
|
||||
#include "utils/ring.h"
|
||||
@ -94,12 +92,14 @@ char *path_to_url(const char *path)
|
||||
/* utils/url.h */
|
||||
char *url_to_path(const char *url)
|
||||
{
|
||||
char *url_path = curl_unescape(url, 0);
|
||||
char *path;
|
||||
char *url_path;
|
||||
char *path = NULL;
|
||||
|
||||
/* return the absolute path including leading / */
|
||||
path = strdup(url_path + (FILE_SCHEME_PREFIX_LEN - 1));
|
||||
curl_free(url_path);
|
||||
if (url_unescape(url, 0, &url_path) == NSERROR_OK) {
|
||||
/* return the absolute path including leading / */
|
||||
path = strdup(url_path + (FILE_SCHEME_PREFIX_LEN - 1));
|
||||
free(url_path);
|
||||
}
|
||||
|
||||
return path;
|
||||
}
|
||||
|
@ -27,8 +27,6 @@
|
||||
#include <strings.h>
|
||||
#include <time.h>
|
||||
|
||||
#include <curl/curl.h>
|
||||
|
||||
#include "utils/errors.h"
|
||||
#include "utils/nsurl.h"
|
||||
#include "netsurf/bitmap.h"
|
||||
|
@ -136,7 +136,9 @@ static nserror posix_nsurl_to_path(struct nsurl *url, char **path_out)
|
||||
return NSERROR_BAD_PARAMETER;
|
||||
}
|
||||
|
||||
res = url_unescape(lwc_string_data(urlpath), &path);
|
||||
res = url_unescape(lwc_string_data(urlpath),
|
||||
lwc_string_length(urlpath),
|
||||
&path);
|
||||
lwc_string_unref(urlpath);
|
||||
if (res != NSERROR_OK) {
|
||||
return res;
|
||||
|
@ -33,12 +33,12 @@
|
||||
|
||||
|
||||
/* exported interface documented in utils/url.h */
|
||||
nserror url_unescape(const char *str, char **result)
|
||||
nserror url_unescape(const char *str, int length, char **result)
|
||||
{
|
||||
char *curlstr;
|
||||
char *retstr;
|
||||
|
||||
curlstr = curl_unescape(str, 0);
|
||||
curlstr = curl_unescape(str, length);
|
||||
if (curlstr == NULL) {
|
||||
return NSERROR_NOMEM;
|
||||
}
|
||||
|
@ -46,9 +46,10 @@ nserror url_escape(const char *unescaped, size_t toskip, bool sptoplus,
|
||||
* Convert an escaped string to plain.
|
||||
*
|
||||
* \param[in] str String to unescape.
|
||||
* \parm[in] length Length of string or 0 to use strlen
|
||||
* \param[out] result unescaped string owned by caller must be freed with free()
|
||||
* \return NSERROR_OK on success
|
||||
* \return NSERROR_OK on success
|
||||
*/
|
||||
nserror url_unescape(const char *str, char **result);
|
||||
nserror url_unescape(const char *str, int length, char **result);
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user