Lines Matching defs:conn
210 conn_t *conn;
213 if ((conn = calloc(1, sizeof(*conn))) == NULL)
215 conn->sd = sd;
216 ++conn->ref;
217 return (conn);
225 _fetch_ref(conn_t *conn)
228 ++conn->ref;
229 return (conn);
260 conn_t *conn;
307 if ((conn = _fetch_reopen(sd)) == NULL) {
311 return (conn);
319 _fetch_ssl(conn_t *conn, int verbose)
331 conn->ssl_meth = SSLv23_client_method();
332 conn->ssl_ctx = SSL_CTX_new(conn->ssl_meth);
333 SSL_CTX_set_mode(conn->ssl_ctx, SSL_MODE_AUTO_RETRY);
335 conn->ssl = SSL_new(conn->ssl_ctx);
336 if (conn->ssl == NULL){
340 SSL_set_fd(conn->ssl, conn->sd);
341 if (SSL_connect(conn->ssl) == -1){
351 SSL_get_cipher(conn->ssl));
352 conn->ssl_cert = SSL_get_peer_certificate(conn->ssl);
353 name = X509_get_subject_name(conn->ssl_cert);
357 name = X509_get_issuer_name(conn->ssl_cert);
366 (void)conn;
379 _fetch_read(conn_t *conn, char *buf, size_t len)
394 while (fetchTimeout && !FD_ISSET(conn->sd, &readfds)) {
395 FD_SET(conn->sd, &readfds);
409 r = select(conn->sd + 1, &readfds, NULL, NULL, &wait);
418 if (conn->ssl != NULL)
419 rlen = SSL_read(conn->ssl, buf, len);
422 rlen = read(conn->sd, buf, len);
444 _fetch_getln(conn_t *conn)
451 if (conn->buf == NULL) {
452 if ((conn->buf = malloc(MIN_BUF_SIZE)) == NULL) {
456 conn->bufsize = MIN_BUF_SIZE;
459 conn->buf[0] = '\0';
460 conn->buflen = 0;
463 len = _fetch_read(conn, &c, 1);
468 conn->buf[conn->buflen++] = c;
469 if (conn->buflen == conn->bufsize) {
470 tmp = conn->buf;
471 tmpsize = conn->bufsize * 2 + 1;
476 conn->buf = tmp;
477 conn->bufsize = tmpsize;
481 conn->buf[conn->buflen] = '\0';
482 DEBUG(fprintf(stderr, "<<< %s", conn->buf));
491 _fetch_write(conn_t *conn, const char *buf, size_t len)
497 return _fetch_writev(conn, &iov, 1);
505 _fetch_writev(conn_t *conn, struct iovec *iov, int iovcnt)
520 while (fetchTimeout && !FD_ISSET(conn->sd, &writefds)) {
521 FD_SET(conn->sd, &writefds);
535 r = select(conn->sd + 1, NULL, &writefds, NULL, &wait);
544 if (conn->ssl != NULL)
545 wlen = SSL_write(conn->ssl,
549 wlen = writev(conn->sd, iov, iovcnt);
580 _fetch_putln(conn_t *conn, const char *str, size_t len)
591 ret = _fetch_writev(conn, &iov[1], 1);
593 ret = _fetch_writev(conn, iov, 2);
604 _fetch_close(conn_t *conn)
608 if (--conn->ref > 0)
610 ret = close(conn->sd);
611 free(conn->buf);
612 free(conn);