vlc | branch: master | Rémi Denis-Courmont <[email protected]> | Wed Sep 2 22:27:15 2015 +0300| [80bc1fe21a6ad6667469d710ba709513f7fe68de] | committer: Rémi Denis-Courmont
access: add full URL/MRL in access_t > http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=80bc1fe21a6ad6667469d710ba709513f7fe68de --- include/vlc_access.h | 7 ++++--- src/input/access.c | 20 +++++++++++--------- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/include/vlc_access.h b/include/vlc_access.h index 026dadd..964fbfd 100644 --- a/include/vlc_access.h +++ b/include/vlc_access.h @@ -78,9 +78,10 @@ struct access_t /* Module properties */ module_t *p_module; - /* Access name (empty if non forced) */ - char *psz_access; - char *psz_location; /**< Location (URL with the scheme stripped) */ + + char *psz_access; /**< Access name (empty if non forced) */ + char *psz_url; /**< Full URL or MRL */ + const char *psz_location; /**< Location (URL with the scheme stripped) */ char *psz_filepath; /**< Local file path (if applicable) */ /* pf_read/pf_block/pf_readdir is used to read data. diff --git a/src/input/access.c b/src/input/access.c index e04e30b..a4f5e14 100644 --- a/src/input/access.c +++ b/src/input/access.c @@ -66,11 +66,11 @@ static access_t *access_New(vlc_object_t *parent, input_thread_t *input, access_t *access = vlc_custom_create(parent, sizeof (*access), "access"); char *scheme = strndup(mrl, p - mrl); - char *location = strdup(p + 3); + char *url = strdup(mrl); - if (unlikely(access == NULL || scheme == NULL || location == NULL)) + if (unlikely(access == NULL || scheme == NULL || url == NULL)) { - free(location); + free(url); free(scheme); vlc_object_release(access); return NULL; @@ -78,8 +78,9 @@ static access_t *access_New(vlc_object_t *parent, input_thread_t *input, access->p_input = input; access->psz_access = scheme; - access->psz_location = location; - access->psz_filepath = get_path(location); + access->psz_url = url; + access->psz_location = url + (p + 3 - mrl); + access->psz_filepath = get_path(access->psz_location); access->pf_read = NULL; access->pf_block = NULL; access->pf_readdir = NULL; @@ -89,13 +90,14 @@ static access_t *access_New(vlc_object_t *parent, input_thread_t *input, access_InitFields(access); msg_Dbg(access, "creating access '%s' location='%s', path='%s'", scheme, - location, access->psz_filepath ? access->psz_filepath : "(null)"); + access->psz_location, + access->psz_filepath ? access->psz_filepath : "(null)"); access->p_module = module_need(access, "access", scheme, true); if (access->p_module == NULL) { free(access->psz_filepath); - free(access->psz_location); + free(access->psz_url); free(access->psz_access); vlc_object_release(access); access = NULL; @@ -113,9 +115,9 @@ void vlc_access_Delete(access_t *access) { module_unneed(access, access->p_module); - free(access->psz_access); - free(access->psz_location); free(access->psz_filepath); + free(access->psz_url); + free(access->psz_access); vlc_object_release(access); } _______________________________________________ vlc-commits mailing list [email protected] https://mailman.videolan.org/listinfo/vlc-commits
