You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficserver.apache.org by jp...@apache.org on 2010/03/07 01:27:11 UTC

svn commit: r919896 - in /incubator/trafficserver/traffic/trunk/iocore: eventsystem/I_IOBuffer.h eventsystem/I_SocketManager.h eventsystem/I_VIO.h eventsystem/P_UnixSocketManager.h eventsystem/P_VIO.h net/P_UnixNetVConnection.h net/UnixNetVConnection.cc

Author: jplevyak
Date: Sun Mar  7 00:27:10 2010
New Revision: 919896

URL: http://svn.apache.org/viewvc?rev=919896&view=rev
Log:
TS-54: some variables should be 64-bit, remove ancient "monitoring" cruft

Modified:
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_IOBuffer.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_SocketManager.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_VIO.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/P_UnixSocketManager.h
    incubator/trafficserver/traffic/trunk/iocore/eventsystem/P_VIO.h
    incubator/trafficserver/traffic/trunk/iocore/net/P_UnixNetVConnection.h
    incubator/trafficserver/traffic/trunk/iocore/net/UnixNetVConnection.cc

Modified: incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_IOBuffer.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_IOBuffer.h?rev=919896&r1=919895&r2=919896&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_IOBuffer.h (original)
+++ incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_IOBuffer.h Sun Mar  7 00:27:10 2010
@@ -1129,9 +1129,6 @@
   */
   ink64 water_mark;
 
-  // DEPRECATED
-  //DLINK(MIOBuffer, link);
-
   Ptr<IOBufferBlock> _writer;
   IOBufferReader readers[MAX_MIOBUFFER_READERS];
 

Modified: incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_SocketManager.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_SocketManager.h?rev=919896&r1=919895&r2=919896&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_SocketManager.h (original)
+++ incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_SocketManager.h Sun Mar  7 00:27:10 2010
@@ -37,12 +37,8 @@
 #include "I_EventSystem.h"
 #include "I_Thread.h"
 
-extern int monitor_read_activity;
-extern int monitor_write_activity;
-
 #define DEFAULT_OPEN_MODE                         0644
 
-
 struct Thread;
 
 #define SOCKET int
@@ -59,25 +55,24 @@
   int open(char *path, int oflag = O_RDWR | O_NDELAY | O_CREAT, mode_t mode = DEFAULT_OPEN_MODE);
 
   // result is the number of bytes or -errno
-  int read(int fd, void *buf, int len, void *pOLP = NULL);
-  int vector_io(int fd, struct iovec *vector, size_t count, int read_request, void *pOLP = 0);
-  int readv(int fd, struct iovec *vector, size_t count, teFDType eT = KeDontCare);
-  int read_vector(int fd, struct iovec *vector, size_t count, void *pOLP = 0);
-  int pread(int fd, void *buf, int len, off_t offset, char *tag = NULL);
-  //
-  int read_from_middle_of_file(int fd, void *buf, int len, off_t offset, char *tag = NULL);
+  ink64 read(int fd, void *buf, int len, void *pOLP = NULL);
+  ink64 vector_io(int fd, struct iovec *vector, size_t count, int read_request, void *pOLP = 0);
+  ink64 readv(int fd, struct iovec *vector, size_t count, teFDType eT = KeDontCare);
+  ink64 read_vector(int fd, struct iovec *vector, size_t count, void *pOLP = 0);
+  ink64 pread(int fd, void *buf, int len, off_t offset, char *tag = NULL);
 
   int recv(int s, void *buf, int len, int flags);
   int recvfrom(int fd, void *buf, int size, int flags, struct sockaddr *addr, socklen_t *addrlen);
-  int write(int fd, void *buf, int len, void *pOLP = NULL);
-  int writev(int fd, struct iovec *vector, size_t count, teFDType eT = KeDontCare);
-  int write_vector(int fd, struct iovec *vector, size_t count, void *pOLP = 0);
-  int pwrite(int fd, void *buf, int len, off_t offset, char *tag = NULL);
-  int write_to_middle_of_file(int fd, void *buf, int len, off_t offset, char *tag = NULL);
+
+  ink64 write(int fd, void *buf, int len, void *pOLP = NULL);
+  ink64 writev(int fd, struct iovec *vector, size_t count, teFDType eT = KeDontCare);
+  ink64 write_vector(int fd, struct iovec *vector, size_t count, void *pOLP = 0);
+  ink64 pwrite(int fd, void *buf, int len, off_t offset, char *tag = NULL);
+
   int send(int fd, void *buf, int len, int flags);
   int sendto(int fd, void *buf, int len, int flags, struct sockaddr *to, int tolen);
   int sendmsg(int fd, struct msghdr *m, int flags, void *pOLP = 0);
-  int lseek(int fd, off_t offset, int whence);
+  ink64 lseek(int fd, off_t offset, int whence);
   int fstat(int fd, struct stat *);
   int unlink(char *buf);
   int fsync(int fildes);

Modified: incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_VIO.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_VIO.h?rev=919896&r1=919895&r2=919896&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_VIO.h (original)
+++ incubator/trafficserver/traffic/trunk/iocore/eventsystem/I_VIO.h Sun Mar  7 00:27:10 2010
@@ -98,7 +98,7 @@
     @return The number of bytes to be processed by the operation.
 
   */
-  int ntodo();
+  ink64 ntodo();
 
   /////////////////////
   // buffer settings //

Modified: incubator/trafficserver/traffic/trunk/iocore/eventsystem/P_UnixSocketManager.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/iocore/eventsystem/P_UnixSocketManager.h?rev=919896&r1=919895&r2=919896&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/iocore/eventsystem/P_UnixSocketManager.h (original)
+++ incubator/trafficserver/traffic/trunk/iocore/eventsystem/P_UnixSocketManager.h Sun Mar  7 00:27:10 2010
@@ -35,9 +35,6 @@
 #include "inktomi++.h"
 #include "I_SocketManager.h"
 
-extern int monitor_read_activity;
-extern int monitor_write_activity;
-
 
 //
 // These limits are currently disabled
@@ -66,7 +63,6 @@
 SocketManager::accept(int s, struct sockaddr *addr, socklen_t *addrlen)
 {
   int r;
-
   do {
     r =::accept(s, addr, addrlen);
     if (likely(r >= 0))
@@ -77,12 +73,10 @@
   return r;
 }
 
-
 inline int
 SocketManager::open(char *path, int oflag, mode_t mode)
 {
   int s;
-
   do {
     s =::open(path, oflag, mode);
     if (likely(s >= 0))
@@ -92,12 +86,10 @@
   return s;
 }
 
-
-inline int
+inline ink64
 SocketManager::read(int fd, void *buf, int size, void *pOLP)
 {
-  int r = 0;
-
+  ink64 r;
   do {
     r =::read(fd, buf, size);
     if (likely(r >= 0))
@@ -107,15 +99,10 @@
   return r;
 }
 
-
-void monitor_disk_read(int fd, void *buf, int size, off_t offset, char *tag);
-
-inline int
+inline ink64
 SocketManager::pread(int fd, void *buf, int size, off_t offset, char *tag)
 {
-  if (monitor_read_activity)
-    monitor_disk_read(fd, buf, size, offset, tag);
-  int r = 0;
+  ink64 r;
   do {
     r =::pread(fd, buf, size, offset);
     if (r < 0)
@@ -124,12 +111,10 @@
   return r;
 }
 
-
-inline int
+inline ink64
 SocketManager::readv(int fd, struct iovec *vector, size_t count, teFDType eT)
 {
-  int r;
-
+  ink64 r;
   do {
     // coverity[tainted_data_argument]
     if (likely((r =::readv(fd, vector, count)) >= 0))
@@ -139,17 +124,16 @@
   return r;
 }
 
-
-inline int
+inline ink64
 SocketManager::vector_io(int fd, struct iovec *vector, size_t count, int read_request, void *pOLP)
 {
   const int max_iovecs_per_request = 16;
   int n;
-  int r = 0;
+  ink64 r = 0;
   int n_vec;
-  int bytes_xfered = 0;
+  ink64 bytes_xfered = 0;
   int current_count;
-  int current_request_bytes;
+  ink64 current_request_bytes;
 
   for (n_vec = 0; n_vec < (int) count; n_vec += max_iovecs_per_request) {
     current_count = min(max_iovecs_per_request, ((int) (count - n_vec)));
@@ -181,19 +165,16 @@
   return bytes_xfered;
 }
 
-
-inline int
+inline ink64
 SocketManager::read_vector(int fd, struct iovec *vector, size_t count, void *pOLP)
 {
   return vector_io(fd, vector, count, 1, pOLP);
 }
 
-
 inline int
 SocketManager::recv(int fd, void *buf, int size, int flags)
 {
   int r;
-
   do {
     if (unlikely((r =::recv(fd, (char *) buf, size, flags)) < 0)) {
       r = -errno;
@@ -202,12 +183,10 @@
   return r;
 }
 
-
 inline int
 SocketManager::recvfrom(int fd, void *buf, int size, int flags, struct sockaddr *addr, socklen_t *addrlen)
 {
   int r;
-
   do {
     r =::recvfrom(fd, (char *) buf, size, flags, addr, addrlen);
     if (unlikely(r < 0))
@@ -216,12 +195,10 @@
   return r;
 }
 
-
-inline int
+inline ink64
 SocketManager::write(int fd, void *buf, int size, void *pOLP)
 {
-  int r;
-
+  ink64 r;
   do {
     if (likely((r =::write(fd, buf, size)) >= 0))
       break;
@@ -230,16 +207,10 @@
   return r;
 }
 
-
-void monitor_disk_write(int fd, void *buf, int size, off_t offset, char *tag);
-
-inline int
+inline ink64
 SocketManager::pwrite(int fd, void *buf, int size, off_t offset, char *tag)
 {
-  int r;
-
-  if (monitor_write_activity)
-    monitor_disk_write(fd, buf, size, offset, tag);
+  ink64 r;
   do {
     if (unlikely((r =::pwrite(fd, buf, size, offset)) < 0))
       r = -errno;
@@ -247,12 +218,10 @@
   return r;
 }
 
-
-inline int
+inline ink64
 SocketManager::writev(int fd, struct iovec *vector, size_t count, teFDType eT)
 {
-  int r;
-
+  ink64 r;
   do {
     if (likely((r =::writev(fd, vector, count)) >= 0))
       break;
@@ -261,8 +230,7 @@
   return r;
 }
 
-
-inline int
+inline ink64
 SocketManager::write_vector(int fd, struct iovec *vector, size_t count, void *pOLP)
 {
   return vector_io(fd, vector, count, 0, pOLP);
@@ -273,7 +241,6 @@
 SocketManager::send(int fd, void *buf, int size, int flags)
 {
   int r;
-
   do {
     if (unlikely((r =::send(fd, (char *) buf, size, flags)) < 0))
       r = -errno;
@@ -281,12 +248,10 @@
   return r;
 }
 
-
 inline int
 SocketManager::sendto(int fd, void *buf, int len, int flags, struct sockaddr *to, int tolen)
 {
   int r;
-
   do {
     if (unlikely((r =::sendto(fd, (char *) buf, len, flags, to, tolen)) < 0))
       r = -errno;
@@ -294,12 +259,10 @@
   return r;
 }
 
-
 inline int
 SocketManager::sendmsg(int fd, struct msghdr *m, int flags, void *pOLP)
 {
   int r;
-
   do {
     if (unlikely((r =::sendmsg(fd, m, flags)) < 0))
       r = -errno;
@@ -307,12 +270,10 @@
   return r;
 }
 
-
-inline int
+inline ink64
 SocketManager::lseek(int fd, off_t offset, int whence)
 {
-  int r;
-
+  ink64 r;
   do {
     if ((r =::lseek(fd, offset, whence)) < 0)
       r = -errno;
@@ -320,12 +281,10 @@
   return r;
 }
 
-
 inline int
 SocketManager::fstat(int fd, struct stat *buf)
 {
   int r;
-
   do {
     if ((r =::fstat(fd, buf)) >= 0)
       break;
@@ -334,12 +293,10 @@
   return r;
 }
 
-
 inline int
 SocketManager::unlink(char *buf)
 {
   int r;
-
   do {
     if ((r =::unlink(buf)) < 0)
       r = -errno;
@@ -347,12 +304,10 @@
   return r;
 }
 
-
 inline int
 SocketManager::fsync(int fildes)
 {
   int r;
-
   do {
     if ((r =::fsync(fildes)) < 0)
       r = -errno;
@@ -360,12 +315,10 @@
   return r;
 }
 
-
 inline int
 SocketManager::ftruncate(int fildes, off_t length)
 {
   int r;
-
   do {
     if ((r =::ftruncate(fildes, length)) < 0)
       r = -errno;
@@ -373,12 +326,10 @@
   return r;
 }
 
-
 inline int
 SocketManager::poll(struct pollfd *fds, unsigned long nfds, int timeout)
 {
   int r;
-
   do {
     if ((r =::poll(fds, nfds, timeout)) >= 0)
       break;
@@ -392,7 +343,6 @@
 SocketManager::epoll_create(int size)
 {
   int r;
-
   if (size <= 0)
     size = EPOLL_MAX_DESCRIPTOR_SIZE;
   do {
@@ -403,12 +353,10 @@
   return r;
 }
 
-
 inline int
 SocketManager::epoll_close(int epfd)
 {
   int r = 0;
-
   if (likely(epfd >= 0)) {
     do {
       if (likely((r =::close(epfd)) == 0))
@@ -419,12 +367,10 @@
   return r;
 }
 
-
 inline int
 SocketManager::epoll_ctl(int epfd, int op, int fd, struct epoll_event *event)
 {
   int r;
-
   do {
     if (likely((r =::epoll_ctl(epfd, op, fd, event)) == 0))
       break;
@@ -433,12 +379,10 @@
   return r;
 }
 
-
 inline int
 SocketManager::epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout)
 {
   int r;
-
   do {
     if ((r =::epoll_wait(epfd, events, maxevents, timeout)) >= 0)
       break;
@@ -454,14 +398,12 @@
   return ::kqueue();
 }
 
-
 inline int
 SocketManager::kevent(int kq, const struct kevent *changelist, int nchanges,
                       struct kevent *eventlist, int nevents,
                       const struct timespec *timeout)
 {
   int r;
-
   do {
     r =::kevent(kq, changelist, nchanges,
                 eventlist, nevents, timeout);
@@ -470,7 +412,6 @@
     }
     r = -errno;
   } while (errno == -EINTR);
-
   return r;
 }
 #elif defined(USE_PORT)
@@ -527,7 +468,6 @@
   return (r == 0 ? bsz : r);
 }
 
-
 inline int
 SocketManager::get_rcvbuf_size(int s)
 {
@@ -539,47 +479,40 @@
   return (r == 0 ? bsz : r);
 }
 
-
 inline int
 SocketManager::set_sndbuf_size(int s, int bsz)
 {
   return safe_setsockopt(s, SOL_SOCKET, SO_SNDBUF, (char *) &bsz, sizeof(bsz));
 }
 
-
 inline int
 SocketManager::set_rcvbuf_size(int s, int bsz)
 {
   return safe_setsockopt(s, SOL_SOCKET, SO_RCVBUF, (char *) &bsz, sizeof(bsz));
 }
 
-
 inline int
 SocketManager::getsockname(int s, struct sockaddr *sa, socklen_t *sz)
 {
   return::getsockname(s, sa, sz);
 }
 
-
 inline int
 SocketManager::socket(int domain, int type, int protocol, bool bNonBlocking)
 {
   return::socket(domain, type, protocol);
 }
 
-
 inline int
 SocketManager::mc_socket(int domain, int type, int protocol, bool bNonBlocking)
 {
   return SocketManager::socket(domain, type, protocol, bNonBlocking);
 }
 
-
 inline int
 SocketManager::shutdown(int s, int how)
 {
   int res;
-
   do {
     if (unlikely((res =::shutdown(s, how)) < 0))
       res = -errno;
@@ -587,12 +520,10 @@
   return res;
 }
 
-
 inline int
 SocketManager::lockf(int s, int f, long size)
 {
   int res;
-
   do {
     if ((res =::lockf(s, f, size)) < 0)
       res = -errno;
@@ -600,12 +531,10 @@
   return res;
 }
 
-
 inline int
 SocketManager::dup(int s)
 {
   int res;
-
   do {
     if ((res =::dup(s)) >= 0)
       break;
@@ -614,12 +543,10 @@
   return res;
 }
 
-
 inline int
 SocketManager::fast_close(int s)
 {
   int res;
-
   do {
     if ((res =::close(s)) >= 0)
       break;

Modified: incubator/trafficserver/traffic/trunk/iocore/eventsystem/P_VIO.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/iocore/eventsystem/P_VIO.h?rev=919896&r1=919895&r2=919896&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/iocore/eventsystem/P_VIO.h (original)
+++ incubator/trafficserver/traffic/trunk/iocore/eventsystem/P_VIO.h Sun Mar  7 00:27:10 2010
@@ -84,7 +84,7 @@
 {
   return (buffer.reader());
 }
-inline int
+inline ink64
 VIO::ntodo()
 {
   return nbytes - ndone;

Modified: incubator/trafficserver/traffic/trunk/iocore/net/P_UnixNetVConnection.h
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/iocore/net/P_UnixNetVConnection.h?rev=919896&r1=919895&r2=919896&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/iocore/net/P_UnixNetVConnection.h (original)
+++ incubator/trafficserver/traffic/trunk/iocore/net/P_UnixNetVConnection.h Sun Mar  7 00:27:10 2010
@@ -73,7 +73,7 @@
   Continuation *server_cont;
   int retry_OOB_send(int, Event *);
 
-    OOB_callback(ProxyMutex * m, NetVConnection * vc, Continuation * cont,
+    OOB_callback(ProxyMutex *m, NetVConnection *vc, Continuation *cont,
                  char *buf, int len):Continuation(m), data(buf), length(len), trigger(0)
   {
     server_vc = (UnixNetVConnection *) vc;
@@ -86,10 +86,10 @@
 {
 public:
 
-  virtual VIO * do_io_read(Continuation * c, ink64 nbytes, MIOBuffer * buf);
-  virtual VIO *do_io_write(Continuation * c, ink64 nbytes, IOBufferReader * buf, bool owner = false);
+  virtual VIO *do_io_read(Continuation *c, ink64 nbytes, MIOBuffer *buf);
+  virtual VIO *do_io_write(Continuation *c, ink64 nbytes, IOBufferReader *buf, bool owner = false);
 
-  virtual Action *send_OOB(Continuation * cont, char *buf, int len);
+  virtual Action *send_OOB(Continuation *cont, char *buf, int len);
   virtual void cancel_OOB();
 
   virtual bool is_over_ssl() { return (false); }
@@ -120,8 +120,8 @@
   virtual void cancel_inactivity_timeout();
 
   // The public interface is VIO::reenable()
-  virtual void reenable(VIO * vio);
-  virtual void reenable_re(VIO * vio);
+  virtual void reenable(VIO *vio);
+  virtual void reenable_re(VIO *vio);
 
   virtual SOCKET get_socket()
   {
@@ -146,21 +146,19 @@
   /////////////////////////
   // UNIX implementation //
   /////////////////////////
-  void set_enabled(VIO * vio);
+  void set_enabled(VIO *vio);
 
   void get_local_sa();
 
   // these are not part of the pure virtual interface.  They were
   // added to reduce the amount of duplicate code in classes inherited
   // from NetVConnection (SSL).
-  virtual int sslStartHandShake(int event, int &err)
-  {
+  virtual int sslStartHandShake(int event, int &err) {
     (void) event;
     (void) err;
     return EVENT_ERROR;
   }
-  virtual bool getSSLHandShakeComplete()
-  {
+  virtual bool getSSLHandShakeComplete() {
     return (true);
   }
   virtual bool getSSLClientConnection()
@@ -171,18 +169,18 @@
   {
     (void) state;
   }
-  virtual void net_read_io(NetHandler * nh, EThread * lthread);
-  virtual int loadBufferAndCallWrite(int towrite, int &wattempted, int &total_wrote, MIOBufferAccessor & buf);
-  void readTempPriority(NetHandler * nh, int priority);
-  void readDisable(NetHandler * nh);
-  void readSignalError(NetHandler * nh, int err);
-  void readSetPriority(NetHandler * nh, int priority);
-  void readUpdatePriority(NetHandler * nh, int bytesRead, int nBytes, EThread * lthread);
-  int readSignalDone(int event, NetHandler * nh);
+  virtual void net_read_io(NetHandler *nh, EThread *lthread);
+  virtual ink64 load_buffer_and_write(ink64 towrite, ink64 &wattempted, ink64 &total_wrote, MIOBufferAccessor & buf);
+  void readTempPriority(NetHandler *nh, int priority);
+  void readDisable(NetHandler *nh);
+  void readSignalError(NetHandler *nh, int err);
+  void readSetPriority(NetHandler *nh, int priority);
+  void readUpdatePriority(NetHandler *nh, int bytesRead, int nBytes, EThread *lthread);
+  int readSignalDone(int event, NetHandler *nh);
   int readSignalAndUpdate(int event);
-  void readReschedule(NetHandler * nh);
-  void writeReschedule(NetHandler * nh);
-  void netActivity(EThread * lthread);
+  void readReschedule(NetHandler *nh);
+  void writeReschedule(NetHandler *nh);
+  void netActivity(EThread *lthread);
 
   Action *action()
   {
@@ -233,12 +231,11 @@
   ink_hrtime submit_time;
   OOB_callback *oob_ptr;
 
-  int startEvent(int event, Event * e);
-  int acceptEvent(int event, Event * e);
-  int mainEvent(int event, Event * e);
-  virtual int connectUp(EThread * t);
-
-  virtual void free(EThread * t);
+  int startEvent(int event, Event *e);
+  int acceptEvent(int event, Event *e);
+  int mainEvent(int event, Event *e);
+  virtual int connectUp(EThread *t);
+  virtual void free(EThread *t);
 
   virtual ink_hrtime get_inactivity_timeout();
   virtual ink_hrtime get_active_timeout();

Modified: incubator/trafficserver/traffic/trunk/iocore/net/UnixNetVConnection.cc
URL: http://svn.apache.org/viewvc/incubator/trafficserver/traffic/trunk/iocore/net/UnixNetVConnection.cc?rev=919896&r1=919895&r2=919896&view=diff
==============================================================================
--- incubator/trafficserver/traffic/trunk/iocore/net/UnixNetVConnection.cc (original)
+++ incubator/trafficserver/traffic/trunk/iocore/net/UnixNetVConnection.cc Sun Mar  7 00:27:10 2010
@@ -216,7 +216,7 @@
   NetState *s = &vc->read;
   ProxyMutex *mutex = thread->mutex;
   MIOBufferAccessor & buf = s->vio.buffer;
-  int r = 0;
+  ink64 r = 0;
 
   MUTEX_TRY_LOCK_FOR(lock, s->vio.mutex, thread, s->vio._cont);
 
@@ -235,17 +235,17 @@
   ink_debug_assert(buf.writer());
 
   // if there is nothing to do, disable connection
-  int ntodo = s->vio.ntodo();
+  ink64 ntodo = s->vio.ntodo();
   if (ntodo <= 0) {
     read_disable(nh, vc);
     return;
   }
-  int toread = buf.writer()->write_avail();
+  ink64 toread = buf.writer()->write_avail();
   if (toread > ntodo)
     toread = ntodo;
 
   // read data
-  int rattempted = 0, total_read = 0;
+  ink64 rattempted = 0, total_read = 0;
   int niov = 0;
   IOVec tiovec[NET_MAX_IOV];
   if (toread) {
@@ -254,10 +254,10 @@
       niov = 0;
       rattempted = 0;
       while (b && niov < NET_MAX_IOV) {
-        int a = b->write_avail();
+        ink64 a = b->write_avail();
         if (a > 0) {
           tiovec[niov].iov_base = b->_end;
-          int togo = toread - total_read - rattempted;
+          ink64 togo = toread - total_read - rattempted;
           if (a > togo)
             a = togo;
           tiovec[niov].iov_len = a;
@@ -279,7 +279,7 @@
 
     if (vc->loggingEnabled()) {
       char message[256];
-      snprintf(message, sizeof(message), "rval: %d toread: %d ntodo: %d total_read: %d", r, toread, ntodo, total_read);
+      snprintf(message, sizeof(message), "rval: %lld toread: %lld ntodo: %lld total_read: %lld", r, toread, ntodo, total_read);
       vc->addLogMessage(message);
     }
     // if we have already moved some bytes successfully, summarize in r
@@ -416,7 +416,7 @@
     return;
   }
   // If there is nothing to do, disable
-  int ntodo = s->vio.ntodo();
+  ink64 ntodo = s->vio.ntodo();
   if (ntodo <= 0) {
     write_disable(nh, vc);
     return;
@@ -426,7 +426,7 @@
   ink_debug_assert(buf.writer());
 
   // Calculate amount to write
-  int towrite = buf.reader()->read_avail();
+  ink64 towrite = buf.reader()->read_avail();
   if (towrite > ntodo)
     towrite = ntodo;
   int signalled = 0;
@@ -454,12 +454,12 @@
     return;
   }
 
-  int total_wrote = 0, wattempted = 0;
-  int r = vc->loadBufferAndCallWrite(towrite, wattempted, total_wrote, buf);
+  ink64 total_wrote = 0, wattempted = 0;
+  ink64 r = vc->load_buffer_and_write(towrite, wattempted, total_wrote, buf);
   if (vc->loggingEnabled()) {
     char message[256];
-    snprintf(message, sizeof(message), "rval: %d towrite: %d ntodo: %d total_wrote: %d", r, towrite, ntodo,
-             total_wrote);
+    snprintf(message, sizeof(message), "rval: %lld towrite: %lld ntodo: %lld total_wrote: %lld", 
+             r, towrite, ntodo, total_wrote);
     vc->addLogMessage(message);
   }
   // if we have already moved some bytes successfully, summarize in r
@@ -526,10 +526,6 @@
 {
   addLogMessage("do_io_read");
   ink_assert(!closed);
-  if (buf)
-    read.vio.buffer.writer_for(buf);
-  else
-    read.vio.buffer.clear();
   read.vio.op = VIO::READ;
   read.vio.mutex = c->mutex;
   read.vio._cont = c;
@@ -537,38 +533,39 @@
   read.vio.ndone = 0;
   read.vio.vc_server = (VConnection *) this;
   if (buf) {
-    if (!read.enabled)
+    read.vio.buffer.writer_for(buf);
+    if (nbytes && !read.enabled)
       read.vio.reenable();
-  } else
+  } else {
+    read.vio.buffer.clear();
     disable_read(this);
+  }
   return &read.vio;
 }
 
 VIO *
-UnixNetVConnection::do_io_write(Continuation *acont, ink64 anbytes, IOBufferReader *abuffer, bool owner)
+UnixNetVConnection::do_io_write(Continuation *c, ink64 nbytes, IOBufferReader *reader, bool owner)
 {
   addLogMessage("do_io_write");
   ink_assert(!closed);
-  if (abuffer) {
-    ink_assert(!owner);
-    write.vio.buffer.reader_for(abuffer);
-  } else
-    write.vio.buffer.clear();
   write.vio.op = VIO::WRITE;
-  write.vio.mutex = acont->mutex;
-  write.vio._cont = acont;
-  write.vio.nbytes = anbytes;
+  write.vio.mutex = c->mutex;
+  write.vio._cont = c;
+  write.vio.nbytes = nbytes;
   write.vio.ndone = 0;
   write.vio.vc_server = (VConnection *) this;
-  if (abuffer) {
-    if (!write.enabled)
+  if (reader) {
+    ink_assert(!owner);
+    write.vio.buffer.reader_for(reader);
+    if (nbytes && !write.enabled)
       write.vio.reenable();
-  } else
+  } else {
+    write.vio.buffer.clear();
     disable_write(this);
+  }
   return &write.vio;
 }
 
-
 void
 UnixNetVConnection::do_io_close(int alerrno /* = -1 */ )
 {
@@ -798,7 +795,6 @@
   SET_HANDLER((NetVConnHandler) & UnixNetVConnection::startEvent);
 }
 
-
 // Private methods
 
 void
@@ -826,18 +822,18 @@
 // I could overwrite it for the SSL implementation
 // (SSL read does not support overlapped i/o)
 // without duplicating all the code in write_to_net.
-int
-UnixNetVConnection::loadBufferAndCallWrite(int towrite, int &wattempted, int &total_wrote, MIOBufferAccessor & buf)
+ink64
+UnixNetVConnection::load_buffer_and_write(ink64 towrite, ink64 &wattempted, ink64 &total_wrote, MIOBufferAccessor & buf)
 {
-  int r = 0;
-  int offset = buf.entry->start_offset;
+  ink64 r = 0;
+  ink64 offset = buf.entry->start_offset;
   IOBufferBlock *b = buf.entry->block;
   do {
     IOVec tiovec[NET_MAX_IOV];
     int niov = 0, total_wrote_last = total_wrote;
     while (b && niov < NET_MAX_IOV) {
       // check if we have done this block
-      int l = b->read_avail();
+      ink64 l = b->read_avail();
       l -= offset;
       if (l <= 0) {
         offset = -l;
@@ -845,7 +841,7 @@
         continue;
       }
       // check if to amount to write exceeds that in this buffer
-      int wavail = towrite - total_wrote;
+      ink64 wavail = towrite - total_wrote;
       if (l > wavail)
         l = wavail;
       if (!l)