X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=submit%2Fconnect.c;h=522c9c085b5881935623e1868dde7dfe6b01f0b1;hb=f33e36eda1f3334370020f9c24bc14f1a0e09356;hp=d0c83ffe47dac808d3a1a2c17d6e10c1223acd7c;hpb=4d6c0022e700db3c7584ad5b58bbda69090ecf0d;p=moe.git diff --git a/submit/connect.c b/submit/connect.c index d0c83ff..522c9c0 100644 --- a/submit/connect.c +++ b/submit/connect.c @@ -74,7 +74,7 @@ tls_verify_cert(gnutls_session_t s) /* XXX: Neither we check host name */ /* Check certificate purpose */ - byte purp[256]; + char purp[256]; int purpi = 0; do { @@ -122,7 +122,7 @@ int main(int argc UNUSED, char **argv UNUSED) die("Cannot connect: %m"); log(L_INFO, "Waiting for initial message"); - byte msg[256]; + char msg[256]; int i = 0; do { @@ -155,21 +155,37 @@ int main(int argc UNUSED, char **argv UNUSED) log(L_INFO, "Session established"); for (;;) { - byte buf[1024]; - if (!fgets(buf, sizeof(buf), stdin)) - break; - int len = strlen(buf); - err = gnutls_record_send(s, buf, len); TLS_CHECK(gnutls_record_send); - err = gnutls_record_recv(s, buf, len); TLS_CHECK(gnutls_record_recv); - if (!err) + char buf[1024]; + do { - log(L_INFO, "Connection closed"); - break; + if (!fgets(buf, sizeof(buf), stdin)) + goto done; + int len = strlen(buf); + err = gnutls_record_send(s, buf, len); TLS_CHECK(gnutls_record_send); } - fwrite(buf, 1, err, stdout); + while (buf[0] != '\n'); + int last = 0; + for (;;) + { + err = gnutls_record_recv(s, buf, sizeof(buf)); TLS_CHECK(gnutls_record_recv); + if (!err) + { + log(L_INFO, "Connection closed"); + break; + } + fwrite(buf, 1, err, stdout); + for (int i=0; i