aboutsummaryrefslogtreecommitdiff
path: root/networking/sslgetcert.c
diff options
context:
space:
mode:
Diffstat (limited to 'networking/sslgetcert.c')
-rw-r--r--networking/sslgetcert.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/networking/sslgetcert.c b/networking/sslgetcert.c
index a0fbf3c..a443b32 100644
--- a/networking/sslgetcert.c
+++ b/networking/sslgetcert.c
@@ -548,7 +548,7 @@ static int Xeat_server_hello(struct msgbuf *msgbuf)
static int Xeat_certificate(struct msgbuf *msgbuf)
{
- int i, n, r, first, slen;
+ int i, n, r, first, slen, need_nl;
size_t o, len;
uint8_t *p;
struct buf tmpbuf;
@@ -597,14 +597,23 @@ static int Xeat_certificate(struct msgbuf *msgbuf)
buf_add_b64(&tmpbuf, p+o+3, slen);
printf("%s\"-----BEGIN CERTIFICATE-----\\n",
!first ? ", " : "");
+ need_nl=0;
for (i= tmpbuf.offset; i<tmpbuf.size; i++)
{
if (tmpbuf.buf[i] == '\n')
+ {
fputs("\\n", stdout);
+ need_nl=0;
+ }
else
+ {
putchar(tmpbuf.buf[i]);
+ need_nl=1;
+ }
}
- printf("\\n-----END CERTIFICATE-----\"");
+ if (need_nl)
+ fputs("\\n", stdout);
+ printf("-----END CERTIFICATE-----\"");
tmpbuf.size= tmpbuf.offset;
o += 3+slen;
first= 0;