normalize_path support file resource start with file://
parent
6fddce73c5
commit
768fbb68d4
|
|
@ -107,6 +107,13 @@ extern int pthread_mutexattr_settype(pthread_mutexattr_t *attr, int kind);
|
||||||
#define IP_ADDRESS_SIZE 16
|
#define IP_ADDRESS_SIZE 16
|
||||||
#define INFINITE_FILE_SIZE (256 * 1024LL * 1024 * 1024 * 1024 * 1024LL)
|
#define INFINITE_FILE_SIZE (256 * 1024LL * 1024 * 1024 * 1024 * 1024LL)
|
||||||
|
|
||||||
|
#define FILE_RESOURCE_TAG_STR "file://"
|
||||||
|
#define FILE_RESOURCE_TAG_LEN (sizeof(FILE_RESOURCE_TAG_STR) - 1)
|
||||||
|
|
||||||
|
#define IS_FILE_RESOURCE(filename) \
|
||||||
|
(strncasecmp(filename, FILE_RESOURCE_TAG_STR, \
|
||||||
|
FILE_RESOURCE_TAG_LEN) == 0)
|
||||||
|
|
||||||
#ifndef byte
|
#ifndef byte
|
||||||
#define byte signed char
|
#define byte signed char
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,7 @@ int get_url_content_ex(const char *url, const int url_len,
|
||||||
char *pPort;
|
char *pPort;
|
||||||
char *pSpace;
|
char *pSpace;
|
||||||
|
|
||||||
|
*error_info = '\0';
|
||||||
*http_status = 0;
|
*http_status = 0;
|
||||||
if (*content == NULL)
|
if (*content == NULL)
|
||||||
{
|
{
|
||||||
|
|
@ -254,9 +255,8 @@ int get_url_content_ex(const char *url, const int url_len,
|
||||||
|
|
||||||
*http_status = atoi(pSpace + 1);
|
*http_status = atoi(pSpace + 1);
|
||||||
*content_len -= pContent - *content;
|
*content_len -= pContent - *content;
|
||||||
memcpy(*content, pContent, *content_len);
|
memmove(*content, pContent, *content_len);
|
||||||
*(*content + *content_len) = '\0';
|
*(*content + *content_len) = '\0';
|
||||||
*error_info = '\0';
|
|
||||||
} while (0);
|
} while (0);
|
||||||
|
|
||||||
close(sock);
|
close(sock);
|
||||||
|
|
|
||||||
|
|
@ -2996,6 +2996,13 @@ int normalize_path(const char *from, const char *filename,
|
||||||
const char *last;
|
const char *last;
|
||||||
int len;
|
int len;
|
||||||
|
|
||||||
|
if (IS_FILE_RESOURCE(from)) {
|
||||||
|
from = from + FILE_RESOURCE_TAG_LEN;
|
||||||
|
}
|
||||||
|
if (IS_FILE_RESOURCE(filename)) {
|
||||||
|
filename = filename + FILE_RESOURCE_TAG_LEN;
|
||||||
|
}
|
||||||
|
|
||||||
if (*filename == '/') {
|
if (*filename == '/') {
|
||||||
return snprintf(full_filename, size, "%s", filename);
|
return snprintf(full_filename, size, "%s", filename);
|
||||||
}
|
}
|
||||||
|
|
@ -3099,6 +3106,11 @@ int normalize_path_ex(const char *from, const char *filename,
|
||||||
return normalize_path(from, filename, full_filename, size);
|
return normalize_path(from, filename, full_filename, size);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (IS_FILE_RESOURCE(filename)) {
|
||||||
|
return snprintf(full_filename, size, "%s",
|
||||||
|
filename + FILE_RESOURCE_TAG_LEN);
|
||||||
|
}
|
||||||
|
|
||||||
if (!is_url_from) {
|
if (!is_url_from) {
|
||||||
return snprintf(full_filename, size, "%s", filename);
|
return snprintf(full_filename, size, "%s", filename);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue