X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;ds=inline;f=submit%2Fconnect.c;h=7f60f6df4a2ffff93f5055fc8d9f324fd869208e;hb=11186a847caaa8904ecd26f65d5fdc5bcdb2096a;hp=d0c83ffe47dac808d3a1a2c17d6e10c1223acd7c;hpb=4d6c0022e700db3c7584ad5b58bbda69090ecf0d;p=eval.git diff --git a/submit/connect.c b/submit/connect.c index d0c83ff..7f60f6d 100644 --- a/submit/connect.c +++ b/submit/connect.c @@ -156,20 +156,36 @@ int main(int argc UNUSED, char **argv UNUSED) 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) + 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