BIO_write

今度は、BIO_writeでPUTリクエストを書き込み、ファイルをアップロードする。

bio_write(3): BIO I/O functions - Linux man page

BIO_write.cで、

bgstation0.comの下にshareフォルダを作って、そこにtest.txtをPUTする。
test.txtは、

ABCDE
XYZ

という文字列。

ただ、PUTメソッドを有効にするには、サーバ側がWebDAVに対応しないといけない。

WebDAVのモジュールはロードされている模様なので、bgstation0.comのhttpd.confに、

DavLockDB "/tmp/DavLock"
<Directory /var/www/html/share>
  DAV On
</Directory>

と書いた。

$ vi BIO_write.c 
$ gcc -o BIO_write BIO_write.c -lssl -lcrypto
$ ./BIO_write 
HTTP/1.1 201 Created
Date: Sun, 23 Apr 2017 00:49:41 GMT
Server: Apache/2.4.6 (CentOS) OpenSSL/1.0.1e-fips
Location: http://bgstation0.com/share/test.txt
Content-Length: 71
Content-Type: text/html; charset=ISO-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>$

HTTP/1.1 201 Createdが返ってくれば成功。

$ ls
test.txt
$

test.txtができていて、

$ vi test.txt
ABCDE
XYZ

が書き込まれている。

Sample/openssl/BIO_write/BIO_write/src/BIO_write at master · bg1bgst333/Sample · GitHub