version 1.138.2.1, 2016/02/02 19:47:38 |
version 1.139, 2015/07/18 21:50:47 |
|
|
int |
int |
SSL_vprintf(struct tls *tls, const char *fmt, va_list ap) |
SSL_vprintf(struct tls *tls, const char *fmt, va_list ap) |
{ |
{ |
char *string; |
char *string, *buf; |
size_t nw; |
size_t nw, len; |
int ret; |
int ret; |
|
|
if ((ret = vasprintf(&string, fmt, ap)) == -1) |
if ((ret = vasprintf(&string, fmt, ap)) == -1) |
return ret; |
return ret; |
ret = tls_write(tls, string, ret, &nw); |
buf = string; |
|
len = ret; |
|
while (len > 0) { |
|
ret = tls_write(tls, buf, len, &nw); |
|
if (ret == TLS_READ_AGAIN || ret == TLS_WRITE_AGAIN) |
|
continue; |
|
if (ret < 0) |
|
break; |
|
buf += nw; |
|
len -= nw; |
|
} |
free(string); |
free(string); |
return ret; |
return ret; |
} |
} |
|
|
errx(1, "SSL read error: %u", ret); |
errx(1, "SSL read error: %u", ret); |
|
|
buf[i] = c; |
buf[i] = c; |
if (c == '\n') { |
if (c == '\n') |
buf[i] = '\0'; |
|
break; |
break; |
} |
|
} |
} |
*lenp = i; |
*lenp = i; |
return (buf); |
return (buf); |