]> rtime.felk.cvut.cz Git - frescor/forb.git/blobdiff - src/request.c
Fixed unhandeled EOF returned from forb_proto_send()
[frescor/forb.git] / src / request.c
index 5c1c23d641404493719e5d958c8b8bc6f9ad7c96..9b8b62f8c7ddf8361e3e8d6749b0615d30032954 100644 (file)
@@ -157,7 +157,7 @@ forb_request_send(forb_request_t *req, CORBA_Environment *env)
 {
        CORBA_boolean ret;
        forb_peer_t *peer;
-       size_t size;
+       size_t size, len;
        fosa_abs_time_t timeout;
        forb_t *forb = forb_object_to_forb(req->obj);
 
@@ -194,8 +194,9 @@ forb_request_send(forb_request_t *req, CORBA_Environment *env)
                return;
        }
 
+       len = CDR_data_size(&req->cdr_request);
        size = forb_proto_send(peer, &req->cdr_request);
-       if (size <= 0) {
+       if (size <= 0 || size != len) {
                forb_request_delete(forb, req);
                env->major = FORB_EX_COMM_FAILURE;
        }