}
bool
-connection::send(char *b, int sz)
+connection::send(char *b, size_t sz)
{
lock ml(m_);
waiters_++;
} else {
//should be rare to need to explicitly add write callback
PollMgr::Instance()->add_callback(fd_, CB_WRONLY, this);
- while (!dead_ && wpdu_.solong >= 0 && wpdu_.solong < wpdu_.sz) {
+ while (!dead_ && wpdu_.solong != size_t_max && wpdu_.solong < wpdu_.sz) {
send_complete_.wait(ml);
}
}
PollMgr::Instance()->del_callback(fd_, CB_RDWR);
dead_ = true;
} else {
- VERIFY(wpdu_.solong >= 0);
+ VERIFY(wpdu_.solong != size_t_max);
if (wpdu_.solong < wpdu_.sz) {
return;
}
bool
connection::writepdu()
{
- VERIFY(wpdu_.solong >= 0);
+ VERIFY(wpdu_.solong != size_t_max);
if (wpdu_.solong == wpdu_.sz)
return true;
if (wpdu_.solong == 0) {
- int sz = htonl(wpdu_.sz);
+ uint32_t sz = htonl((uint32_t)wpdu_.sz);
bcopy(&sz,wpdu_.buf,sizeof(sz));
}
- int n = write(fd_, wpdu_.buf + wpdu_.solong, (wpdu_.sz-wpdu_.solong));
+ ssize_t n = write(fd_, wpdu_.buf + wpdu_.solong, (wpdu_.sz-wpdu_.solong));
if (n < 0) {
if (errno != EAGAIN) {
jsl_log(JSL_DBG_1, "connection::writepdu fd_ %d failure errno=%d\n", fd_, errno);
- wpdu_.solong = -1;
+ wpdu_.solong = size_t_max;
wpdu_.sz = 0;
}
return (errno == EAGAIN);
}
- wpdu_.solong += n;
+ wpdu_.solong += (size_t)n;
return true;
}
connection::readpdu()
{
if (!rpdu_.sz) {
- int sz, sz1;
- int n = read(fd_, &sz1, sizeof(sz1));
+ uint32_t sz1;
+ ssize_t n = read(fd_, &sz1, sizeof(sz1));
if (n == 0) {
return false;
return false;
}
- if (n >0 && n!= sizeof(sz)) {
+ if (n > 0 && n != sizeof(sz1)) {
jsl_log(JSL_DBG_OFF, "connection::readpdu short read of sz\n");
return false;
}
- sz = ntohl(sz1);
+ size_t sz = ntohl(sz1);
if (sz > MAX_PDU) {
char *tmpb = (char *)&sz1;
- jsl_log(JSL_DBG_2, "connection::readpdu read pdu TOO BIG %d network order=%x %x %x %x %x\n", sz,
+ jsl_log(JSL_DBG_2, "connection::readpdu read pdu TOO BIG %lu network order=%x %x %x %x %x\n", sz,
sz1, tmpb[0],tmpb[1],tmpb[2],tmpb[3]);
return false;
}
rpdu_.sz = sz;
VERIFY(rpdu_.buf == NULL);
- rpdu_.buf = (char *)malloc(sz+sizeof(sz));
+ rpdu_.buf = (char *)malloc(sz+sizeof(sz1));
VERIFY(rpdu_.buf);
- bcopy(&sz1,rpdu_.buf,sizeof(sz));
- rpdu_.solong = sizeof(sz);
+ bcopy(&sz1,rpdu_.buf,sizeof(sz1));
+ rpdu_.solong = sizeof(sz1);
}
- int n = read(fd_, rpdu_.buf + rpdu_.solong, rpdu_.sz - rpdu_.solong);
+ ssize_t n = read(fd_, rpdu_.buf + rpdu_.solong, rpdu_.sz - rpdu_.solong);
if (n <= 0) {
if (errno == EAGAIN)
return true;
rpdu_.sz = rpdu_.solong = 0;
return (errno == EAGAIN);
}
- rpdu_.solong += n;
+ rpdu_.solong += (size_t)n;
return true;
}
-tcpsconn::tcpsconn(chanmgr *m1, int port, int lossytest)
+tcpsconn::tcpsconn(chanmgr *m1, unsigned int port, int lossytest)
: mgr_(m1), lossy_(lossytest)
{
struct sockaddr_in sin;