]> granicus.if.org Git - transmission/commitdiff
Maintain information about enabled/disabled I/O.
authorJuliusz Chroboczek <jch@pps.univ-paris-diderot.fr>
Fri, 18 Feb 2011 00:36:07 +0000 (00:36 +0000)
committerJuliusz Chroboczek <jch@pps.univ-paris-diderot.fr>
Fri, 18 Feb 2011 00:36:07 +0000 (00:36 +0000)
libtransmission/peer-io.c
libtransmission/peer-io.h

index 8c3e7e5810ced603f49adc8f3ac005a5e9eb4ba5..355987c06ff2caaf6eae4d897ad2f9d9a296c3db 100644 (file)
@@ -583,6 +583,9 @@ tr_peerIoNew( tr_session       * session,
         
     }
 
+    io->write_enabled = 1;
+    io->read_enabled = 1;
+
     return io;
 }
 
@@ -700,6 +703,11 @@ tr_peerIoSetEnabled( tr_peerIo    * io,
         event_enable( io, event );
     else
         event_disable( io, event );
+
+    if( dir == TR_UP )
+        io->write_enabled = isEnabled;
+    else if( dir == TR_DOWN )
+        io->read_enabled = isEnabled;
 }
 
 /***
index 1ab140b61393a7f536024a55e5d94cdf384622b9..c9478a78920dbadd885c96d977d09353bae0214a 100644 (file)
@@ -105,6 +105,9 @@ typedef struct tr_peerIo
     struct evbuffer     * inbuf;
     struct evbuffer     * outbuf;
     struct tr_list      * outbuf_datatypes; /* struct tr_datatype */
+    
+    tr_bool               write_enabled;
+    tr_bool               read_enabled;
 
     struct event        * event_read;
     struct event        * event_write;