res/res_http_media_cache: Add an HTTP(S) backend for the core media cache
authorMatthew Jordan <mjordan@digium.com>
Thu, 29 Jan 2015 14:38:23 +0000 (14:38 +0000)
committerJoshua Colp <jcolp@digium.com>
Wed, 23 Mar 2016 16:53:22 +0000 (13:53 -0300)
commit22e2340813ca1b66d4ec775eb547821a074507ab
tree0a3ac344d5ccd1b9162d22a91c3bb65cc19a448b
parent791b4c9f8144fde1e2999f7cebaaf10e2ec50243
res/res_http_media_cache: Add an HTTP(S) backend for the core media cache

This patch adds a bucket backend for the core media cache that interfaces to a
remote HTTP server. When a media item is requested in the cache, the cache will
query its bucket backends to see if they can provide the media item. If that
media item has a scheme of HTTP or HTTPS, this backend will be invoked.

The backend provides callbacks for the following:
 * create - this will always retrieve the URI specified by the provided
            bucket_file, and store it in the file specified by the object.
 * retrieve - this will pull the URI specified and store it in a temporary
              file. It is then up to the media cache to move/rename this file
              if desired.
 * delete - destroys the file associated with the bucket_file.
 * stale - if the bucket_file has expired, based on received HTTP headers from
           the remote server, or if the ETag on the server no longer matches
           the ETag stored on the bucket_file, the resource is determined to be
           stale.

Note that the backend respects the ETag, Expires, and Cache-Control headers
provided by the HTTP server it is querying.

ASTERISK-25654

Change-Id: Ie201c2b34cafc0c90a7ee18d7c8359afaccc5250
CHANGES
res/res_curl.c
res/res_http_media_cache.c [new file with mode: 0644]