]> rtime.felk.cvut.cz Git - frescor/fwp.git/blobdiff - fwp/lib/fwp/fwp_endpoint.c
Handle errors correctly in fwp_send_async()
[frescor/fwp.git] / fwp / lib / fwp / fwp_endpoint.c
index fb91688eafc3a752a051f5dab7e9aa5126ce3529..6117d6ceae0f7812cbb4e701ec9aea705a99e7f2 100644 (file)
@@ -635,9 +635,10 @@ int fwp_send_async(struct fwp_endpoint *ep, const void *msg, size_t size)
        if (!ep->vres)
                return FRSH_ERR_NOT_BOUND;
 
-       if (fwp_vres_consume_budget(ep->vres, size, false) == 0)
+       ret = fwp_vres_consume_budget(ep->vres, size, false);
+       if (ret == 0)
                ret = fwp_endpoint_do_send(ep, msg, size);
-       else
+       else if (ret == 1)
                ret = fwp_vres_enqueue(ep->vres, ep, msg, size);
        return ret;
 }