From patchwork Thu Sep 15 16:04:34 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Steven Liu X-Patchwork-Id: 586 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.140.134 with SMTP id o128csp3269777vsd; Thu, 15 Sep 2016 09:11:28 -0700 (PDT) X-Received: by 10.194.89.9 with SMTP id bk9mr8703369wjb.185.1473955888315; Thu, 15 Sep 2016 09:11:28 -0700 (PDT) Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id q21si3665742wmg.88.2016.09.15.09.11.24; Thu, 15 Sep 2016 09:11:28 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org; dmarc=fail (p=NONE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 0B87968A09D; Thu, 15 Sep 2016 19:11:09 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-yb0-f169.google.com (mail-yb0-f169.google.com [209.85.213.169]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 5CE33689F8B for ; Thu, 15 Sep 2016 19:11:02 +0300 (EEST) Received: by mail-yb0-f169.google.com with SMTP id i66so36128938yba.0 for ; Thu, 15 Sep 2016 09:11:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to; bh=UVjgB7Y1PUPstRiHDjOnF67lfEV0LYUwknE+z9HD8JQ=; b=vC+/l83Cf7Y4pNmt4kPP5yDs8dNKOIevn3J3+cj0UVSr8Pjp08qJW/j1IvtrlmJAOR KgMWTM6zoUAqkuGycaZeGFHYdPdkgNN+2hlOqp3RULDsRZwc+rx1Kb/97+G8izXUsnQ5 V2fZD6zUlv+7QjwBtag9SelEiOsqcIUXvf5wDmfo+Nmq3/jWtar9yezqabNYJk8HxGbM /1Zm99LjZQoo1q+zxWu2FER6IyQ4jDyaXzL0ef37yXZB6kYvZAC3Ck+UuRG4E4B9If36 lJ81O5dvrsFlS45pHsySE6H6XI/wlNwB0blOYE38m6/o61WBkbP1qufmGwG/CxX0nuOp Z4Ew== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to; bh=UVjgB7Y1PUPstRiHDjOnF67lfEV0LYUwknE+z9HD8JQ=; b=gpseT5QHfF3YwTMdi6hBvH7dGx7crazhI4ygtUzBmSYvjRGHZ2AloPXT8RcRoCg/Mt SxcBRKJHVG0d6vNJgUGxPp/hqwwY/nUreIg8L/EPXmi/1f6fLAb+rcnc7CrdXorZgky8 Rjc7AB5pyiYeClABlzoy/PqSMaYxEukTxW2nVVPWtKYM3+iju3T/xoSYZbfgLmd/99Zp BIPVcAuyYby3aoKbyJrUqdCAjZOKxJnRa7Kb7RDI2/p1MYiSOPHEqoBh/emisJvxcf98 PUxhatjWM5MAPeIF7/VTAxoxEHdSlqCZeWBw/eBwcc2iDK/NZWJjUcwxV4GoyDB1OLxH JhVA== X-Gm-Message-State: AE9vXwN/KujQEOlGPW/l3QXWV4gMy4pvSc91X4KEg/F/29IkUIc0V8rgQShzoBN4FUFjweT38X0Ozc3J+pFOEg== X-Received: by 10.37.11.200 with SMTP id 191mr1360176ybl.197.1473955475242; Thu, 15 Sep 2016 09:04:35 -0700 (PDT) MIME-Version: 1.0 Received: by 10.159.37.140 with HTTP; Thu, 15 Sep 2016 09:04:34 -0700 (PDT) In-Reply-To: <20160915154218.GP31483@kimiko.pkh.me> References: <20160915144018.GN31483@kimiko.pkh.me> <20160915153734.GO31483@kimiko.pkh.me> <20160915153925.GA4171086@phare.normalesup.org> <20160915154218.GP31483@kimiko.pkh.me> From: Steven Liu Date: Fri, 16 Sep 2016 00:04:34 +0800 Message-ID: To: FFmpeg development discussions and patches X-Content-Filtered-By: Mailman/MimeDel 2.1.20 Subject: Re: [FFmpeg-devel] [PATCH] avformat/http: remove duplicate user-agent option X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" 2016-09-15 23:42 GMT+08:00 Clément Bœsch : > On Thu, Sep 15, 2016 at 05:39:25PM +0200, Nicolas George wrote: > > Le decadi 30 fructidor, an CCXXIV, Clement Boesch a écrit : > > > Yes, surrounded by the #ifdefery so it will go away with the option. > > > > > > Note: use av_strdup() to transfer from one field to the other > > > > Another possibility would be to implement AV_OPT_FLAG_DEPRECATED and let > the > > options system itself print the warning. > > > > That's not a bad idea; you might need to add a field to redirect to > the new option though. > > -- > Clément B. > _______________________________________________ > Hi guys, are you mean like this? localhost:xxx StevenLiu$ make CC libavformat/http.o src/libavformat/http.c:1041:27: warning: 'user_agent_deprecated' is deprecated [-Wdeprecated-declarations] if (av_strncasecmp(s->user_agent_deprecated, DEFAULT_USER_AGENT, strlen(DEFAULT_USER_AGENT))) { ^ src/libavformat/http.c:74:32: note: 'user_agent_deprecated' has been explicitly marked deprecated here attribute_deprecated char *user_agent_deprecated; ^ src/libavformat/http.c:1043:38: warning: 'user_agent_deprecated' is deprecated [-Wdeprecated-declarations] s->user_agent = av_strdup(s->user_agent_deprecated); ^ src/libavformat/http.c:74:32: note: 'user_agent_deprecated' has been explicitly marked deprecated here attribute_deprecated char *user_agent_deprecated; ^ 2 warnings generated. AR libavformat/libavformat.a and the modify like this? localhost:xxx StevenLiu$ git diff - { "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_deprecated), 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 }, { "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 }, @@ -1037,6 +1038,10 @@ static int http_connect(URLContext *h, const char *path, const char *local_path, send_expect_100 = 1; } + if (av_strncasecmp(s->user_agent_deprecated, DEFAULT_USER_AGENT, strlen(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); + } /* 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/http.c b/libavformat/http.c index adb3d92..df9cf1a 100644 --- a/libavformat/http.c +++ b/libavformat/http.c @@ -71,6 +71,7 @@ typedef struct HTTPContext { char *headers; char *mime_type; char *user_agent; + attribute_deprecated char *user_agent_deprecated; char *content_type; /* Set if the server correctly handles Connection: close and will close * the connection after feeding us the content. */ @@ -130,7 +131,7 @@ static const AVOption options[] = { { "http_proxy", "set HTTP proxy to tunnel through", OFFSET(http_proxy), AV_OPT_TYPE_STRING, { .str = NULL }, 0, 0, D | E }, { "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 },