about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorFedor Indutny <fedor@indutny.com>2016-05-27 09:59:45 -0400
committerFedor Indutny <fedor@indutny.com>2016-05-27 09:59:45 -0400
commit800432e83ea2bc09079b9487a565d41bf36f872c (patch)
tree1572a58a6958585b5473a50de1ad714a807c8880 /src
parentaa6a92fdd3c3e22fee12c4cc9a657034dd5ce184 (diff)
downloaduv_link_t-800432e83ea2bc09079b9487a565d41bf36f872c.tar.gz
include: add `arg` to write/shutdown
Diffstat (limited to 'src')
-rw-r--r--src/uv_link_observer_t.c11
-rw-r--r--src/uv_link_source_t.c14
2 files changed, 17 insertions, 8 deletions
diff --git a/src/uv_link_observer_t.c b/src/uv_link_observer_t.c
index 07f3dca..4e50010 100644
--- a/src/uv_link_observer_t.c
+++ b/src/uv_link_observer_t.c
@@ -27,12 +27,14 @@ static int uv_link_observer_write(uv_link_t* link,
                                   const uv_buf_t bufs[],
                                   unsigned int nbufs,
                                   uv_stream_t* send_handle,
-                                  uv_link_write_cb cb) {
+                                  uv_link_write_cb cb,
+                                  void* arg) {
   uv_link_observer_t* observer;
 
   observer = container_of(link, uv_link_observer_t, link);
 
-  return uv_link_write(observer->target, source, bufs, nbufs, send_handle, cb);
+  return uv_link_write(observer->target, source, bufs, nbufs, send_handle, cb,
+                       arg);
 }
 
 
@@ -49,12 +51,13 @@ static int uv_link_observer_try_write(uv_link_t* link,
 
 static int uv_link_observer_shutdown(uv_link_t* link,
                                      uv_link_t* source,
-                                     uv_link_shutdown_cb cb) {
+                                     uv_link_shutdown_cb cb,
+                                     void* arg) {
   uv_link_observer_t* observer;
 
   observer = container_of(link, uv_link_observer_t, link);
 
-  return uv_link_shutdown(observer->target, source, cb);
+  return uv_link_shutdown(observer->target, source, cb, arg);
 }
 
 
diff --git a/src/uv_link_source_t.c b/src/uv_link_source_t.c
index d3d4c3f..c445fab 100644
--- a/src/uv_link_source_t.c
+++ b/src/uv_link_source_t.c
@@ -9,12 +9,14 @@ typedef struct uv_link_source_shutdown_s uv_link_source_shutdown_t;
 struct uv_link_source_write_s {
   uv_write_t req;
   uv_link_t* link;
+  void* arg;
   uv_link_write_cb write_cb;
 };
 
 struct uv_link_source_shutdown_s {
   uv_shutdown_t req;
   uv_link_t* link;
+  void* arg;
   uv_link_shutdown_cb shutdown_cb;
 };
 
@@ -65,7 +67,7 @@ static void uv_link_source_wrap_write_cb(uv_write_t* req, int status) {
   uv_link_source_write_t* lreq;
 
   lreq = container_of(req, uv_link_source_write_t, req);
-  lreq->write_cb(lreq->link, status);
+  lreq->write_cb(lreq->link, status, lreq->arg);
   free(lreq);
 }
 
@@ -75,7 +77,8 @@ static int uv_link_source_write(uv_link_t* link,
                                 const uv_buf_t bufs[],
                                 unsigned int nbufs,
                                 uv_stream_t* send_handle,
-                                uv_link_write_cb cb) {
+                                uv_link_write_cb cb,
+                                void* arg) {
   uv_link_source_t* s;
   uv_link_source_write_t* req;
 
@@ -86,6 +89,7 @@ static int uv_link_source_write(uv_link_t* link,
 
   req->link = source;
   req->write_cb = cb;
+  req->arg = arg;
 
   return uv_write2(&req->req, s->stream, bufs, nbufs, send_handle,
                    uv_link_source_wrap_write_cb);
@@ -107,14 +111,15 @@ static void uv_link_source_wrap_shutdown_cb(uv_shutdown_t* req, int status) {
   uv_link_source_shutdown_t* lreq;
 
   lreq = container_of(req, uv_link_source_shutdown_t, req);
-  lreq->shutdown_cb(lreq->link, status);
+  lreq->shutdown_cb(lreq->link, status, lreq->arg);
   free(lreq);
 }
 
 
 static int uv_link_source_shutdown(uv_link_t* link,
                                    uv_link_t* source,
-                                   uv_link_shutdown_cb cb) {
+                                   uv_link_shutdown_cb cb,
+                                   void* arg) {
   uv_link_source_t* s;
   uv_link_source_shutdown_t* req;
 
@@ -126,6 +131,7 @@ static int uv_link_source_shutdown(uv_link_t* link,
 
   req->link = source;
   req->shutdown_cb = cb;
+  req->arg = arg;
 
   return uv_shutdown(&req->req, s->stream, uv_link_source_wrap_shutdown_cb);
 }