cupsのhttpConnectEncryptがdeprecatedなのでhttpConnect2を使う

CUPSのAPIにhttpConnectEncryptがありますが、Deprecatedになっています。 古いコードを最新のSDKなどでビルドするとワーニングになってしまいます。 マニュアルをみるとhttpConnect2を使うように記載されていますが、httpConnect2をみると引数が4つほど増えています。 マニュアルをみるだけだと、謎の引数に何を設定すれば良いのかわからないので、CUPSのソースコードを見てみることにました。 httpConnect2の記述はこんな感じ ```c `gutter:true; /* * 'httpConnect2()' - Connect to a HTTP server. * * @since CUPS 1.7/macOS 10.9@ */ http_t * /* O - New HTTP connection */ httpConnect2( const char *host, /* I - Host to connect to */ int port, /* I - Port number */ http_addrlist_t *addrlist, /* I - List of addresses or @code NULL@ to lookup */ int family, /* I - Address family to use or @code AF_UNSPEC@ for any */ http_encryption_t encryption, /* I - Type of encryption to use */ int blocking, /* I - 1 for blocking connection, 0 for non-blocking */ int msec, /* I - Connection timeout in milliseconds, 0 means don't connect */ int *cancel) /* I - Pointer to "cancel" variable */ { http_t *http; /* New HTTP connection */ : ``` 引数がかなりいっぱいあります。 そこでhttpConnectEncryptの定義を見てみると... ```c `gutter:true; /* * 'httpConnectEncrypt()' - Connect to a HTTP server using encryption. * * This function is now deprecated. Please use the @link httpConnect2@ function * instead. * * @deprecated@ @exclude all@ */ http_t * /* O - New HTTP connection */ httpConnectEncrypt( const char *host, /* I - Host to connect to */ int port, /* I - Port number */ http_encryption_t encryption) /* I - Type of encryption to use */ { DEBUG_printf(("httpConnectEncrypt(host=\"%s\", port=%d, encryption=%d)", host, port, encryption)); return (httpConnect2(host, port, NULL, AF_UNSPEC, encryption, 1, 30000, NULL)); } ``` 内部ではhttpConnect2をcallしていました。 なので、httpConnect2によびかえる場合はhttpConnectEncryptの呼び方と同じにしておけば良さそうです。 ソースコードをみると色々とわかります。 もっと普段からソースコードを確認しようと思いました。

0 件のコメント :

コメントを投稿