engines/http: Add s3 crypto options for s3 Server-side encryption is about protecting data at rest. (https://docs.aws.amazon.com/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html) When we want to test server-side encryption, we need to specify server-side encryption with customer-provided encryption keys (SSE-C). The two option **http_s3_sse_customer_key** and **http_s3_sse_customer_algorithm** is for server-side encryption. Signed-off-by: Feng, Hualong <hualong.feng@intel.com>
engines/http: Add storage class option for s3 Amazon S3 offers a range of storage classes that you can choose from based on the data access, resiliency, and cost requirements of your workloads. (https://aws.amazon.com/s3/storage-classes/) For example, we have **STANDARD** storage class to test normal workload, and have **COLD** storage class to test the workload with gzip compression. It is convenient to select which storage class to access for different kinds data. Signed-off-by: Feng, Hualong <hualong.feng@intel.com>
engines/http: silence openssl 3.0 deprecation warnings Maybe someone will fix these one day, for now shut up the annoying warning about certain functions being deprecated. Example: engines/http.c: In function ‘_gen_hex_md5’: engines/http.c:261:9: warning: ‘MD5’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations] 261 | MD5((unsigned char*)p, len, hash); | ^~~ In file included from engines/http.c:28: /usr/include/openssl/md5.h:52:38: note: declared here 52 | OSSL_DEPRECATEDIN_3_0 unsigned char *MD5(const unsigned char *d, size_t n, | ^~~ engines/http.c: In function ‘_hmac’: engines/http.c:273:9: warning: ‘HMAC_CTX_new’ is deprecated: Since OpenSSL 3.0 [-Wdeprecated-declarations] 273 | ctx = HMAC_CTX_new(); | ^~~ Signed-off-by: Jens Axboe <axboe@kernel.dk>
Fixed misplaced goto in http.c - In http.c:fio_http_queue function, when the user specifies rw=write and if curl_easy_perform fails then the control reaches line 565 and incorrectly prints: "WARNING: Only DDIR_READ/DDIR_WRITE/DDIR_TRIM are supported!". Fix to this consists in moving statement: "goto err" at the end of the block as already has been done for trim/read blocks. Signed-off-by: Giuseppe Baccini <giuseppe.baccini@suse.com>
engines/http.c: add fallthrough annotation to _curl_trace To avoid the warning from clang "warning: unannotated fall-through between switch labels [-Wimplicit-fallthrough]" swap the "fall through" comment with the "fallthrough;" annotation from compiler.h. Since the second "fall through" comment isn't really a new fall-through, remove it. Signed-off-by: Rebecca Cran <rebecca@bsdio.com> Link: https://lore.kernel.org/r/20211016061738.76654-1-rebecca@bsdio.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
configure: new --dynamic-libengines build option When enabled, some of the more dependency-heavy internal engines are converted to "plugin" engines, i.e. they are built into separate object files and are loaded by fio on demand. This helps downstream distros package these engines separately and not force a long list of package dependencies from the base fio package. Signed-off-by: Yigal Korman <ykorman@gmail.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
http: fix compile-time warnings Fix following warnings on RHEL6 and variants. engines/http.c: In function 'fio_http_setup': engines/http.c:611: warning: call to '_curl_easy_setopt_err_seek_cb' declared with attribute warning: curl_easy_setopt expects a curl_seek_callback argument for this option engines/http.c: In function 'fio_http_queue': engines/http.c:549: warning: call to '_curl_easy_setopt_err_curl_off_t' declared with attribute warning: curl_easy_setopt expects a curl_off_t argument for this option For engines/http.c:611, pass &_http_seek instead of cast, since lack of cast isn't fio's issue. See below comments for details. "Re: [PATCH] http: fix compile-time warnings" https://www.spinics.net/lists/fio/msg07246.html Signed-off-by: Jens Axboe <axboe@kernel.dk>