From 27714b462d1bff9e9b40fbdabb39f58e79032b81 Mon Sep 17 00:00:00 2001 From: Steven Liu Date: Fri, 16 Sep 2016 10:42:34 +0800 Subject: [PATCH] lavf/http: deprecate user-agent option --- doc/protocols.texi | 4 +++- libavformat/http.c | 13 ++++++++++++- libavformat/version.h | 3 +++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/doc/protocols.texi b/doc/protocols.texi index 470c99ceb42..3abc5f38d4d 100644 --- a/doc/protocols.texi +++ b/doc/protocols.texi @@ -291,11 +291,13 @@ Use persistent connections if set to 1, default is 0. @item post_data Set custom HTTP post data. -@item user-agent @item user_agent Override the User-Agent header. If not specified the protocol will use a string describing the libavformat build. ("Lavf/") +@item user-agent +This is a deprecated option, you can use user_agent instead it. + @item timeout Set timeout in microseconds of socket I/O operations used by the underlying low level operation. By default it is set to -1, which means that the timeout is diff --git a/libavformat/http.c b/libavformat/http.c index adb3d92e212..5f6b9dea427 100644 --- a/libavformat/http.c +++ b/libavformat/http.c @@ -71,6 +71,9 @@ typedef struct HTTPContext { char *headers; char *mime_type; char *user_agent; +#ifdef FF_API_HTTP_USER_AGENT + char *user_agent_deprecated; +#endif char *content_type; /* Set if the server correctly handles Connection: close and will close * the connection after feeding us the content. */ @@ -131,7 +134,9 @@ static const AVOption options[] = { { "headers", "set custom HTTP headers, can override built in default headers", OFFSET(headers), AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, D | E }, { "content_type", "set a specific content type for the POST messages", OFFSET(content_type), AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, D | E }, { "user_agent", "override User-Agent header", OFFSET(user_agent), AV_OPT_TYPE_STRING, { .str = DEFAULT_USER_AGENT }, 0, 0, D }, - { "user-agent", "override User-Agent header", OFFSET(user_agent), AV_OPT_TYPE_STRING, { .str = DEFAULT_USER_AGENT }, 0, 0, D }, +#ifdef FF_API_HTTP_USER_AGENT + { "user-agent", "override User-Agent header", OFFSET(user_agent_deprecated), AV_OPT_TYPE_STRING, { .str = DEFAULT_USER_AGENT }, 0, 0, D }, +#endif { "multiple_requests", "use persistent connections", OFFSET(multiple_requests), AV_OPT_TYPE_BOOL, { .i64 = 0 }, 0, 1, D | E }, { "post_data", "set custom HTTP post data", OFFSET(post_data), AV_OPT_TYPE_BINARY, .flags = D | E }, { "mime_type", "export the MIME type", OFFSET(mime_type), AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, AV_OPT_FLAG_EXPORT | AV_OPT_FLAG_READONLY }, @@ -1037,6 +1042,12 @@ static int http_connect(URLContext *h, const char *path, const char *local_path, send_expect_100 = 1; } +#ifdef FF_API_HTTP_USER_AGENT + if (strcmp(s->user_agent_deprecated, DEFAULT_USER_AGENT)) { + av_log(s, AV_LOG_WARNING, "the user-agent option is deprecated, please use user_agent option\n"); + s->user_agent = av_strdup(s->user_agent_deprecated); + } +#endif /* set default headers if needed */ if (!has_header(s->headers, "\r\nUser-Agent: ")) len += av_strlcatf(headers + len, sizeof(headers) - len, diff --git a/libavformat/version.h b/libavformat/version.h index 34226cae206..a9a4d590e30 100644 --- a/libavformat/version.h +++ b/libavformat/version.h @@ -82,6 +82,9 @@ #ifndef FF_API_NOCONST_GET_SIDE_DATA #define FF_API_NOCONST_GET_SIDE_DATA (LIBAVFORMAT_VERSION_MAJOR < 58) #endif +#ifndef FF_API_HTTP_USER_AGENT +#define FF_API_HTTP_USER_AGENT (LIBAVFORMAT_VERSION_MAJOR < 58) +#endif #ifndef FF_API_R_FRAME_RATE #define FF_API_R_FRAME_RATE 1 -- 2.39.2