unsigned int oid, mid=-1;
objheader_t *header;
oidmidpair_t oidmid;
+ struct writestruct writebuffer;
int sd = -1;
while(1) {
recv_data_buf((int)acceptfd, readbuffer, &numoffset, sizeof(int));
oid = oidmid.oid;
if (mid != oidmid.mid) {
if (mid!=-1) {
+ forcesend_buf(sd, &writebuffer, NULL, 0);
freeSockWithLock(transPResponseSocketPool, mid, sd);
}
mid=oidmid.mid;
sd = getSockWithLock(transPResponseSocketPool, mid);
+ writebuffer.offset=0;
}
short offsetarry[numoffset];
recv_data_buf((int) acceptfd, readbuffer, offsetarry, numoffset*sizeof(short));
*((int *) (sendbuffer+sizeof(char))) = size;
*((char *)(sendbuffer + sizeof(char)+sizeof(int))) = OBJECT_NOT_FOUND;
*((unsigned int *)(sendbuffer + sizeof(int) + sizeof(char)+sizeof(char))) = oid;
- send_data(sd, sendbuffer, size+1);
+ send_buf(sd, &writebuffer, sendbuffer, size+1);
} else { /* Object Found */
int incr = 1;
GETSIZE(objsize, header);
*((unsigned int *)(sendbuffer+incr)) = oid;
incr += sizeof(unsigned int);
memcpy(sendbuffer + incr, header, objsize + sizeof(objheader_t));
- send_data(sd, sendbuffer, size+1);
+ send_buf(sd, &writebuffer, sendbuffer, size+1);
/* Calculate the oid corresponding to the offset value */
for(i = 0 ; i< numoffset ; i++) {
*((char *)(sendbuffer + sizeof(char)+sizeof(int))) = OBJECT_NOT_FOUND;
*((unsigned int *)(sendbuffer + sizeof(char)+sizeof(int) + sizeof(char))) = oid;
- send_data(sd, sendbuffer, size+1);
+ send_buf(sd, &writebuffer, sendbuffer, size+1);
break;
} else { /* Obj Found */
int incr = 1;
*((unsigned int *)(sendbuffer+incr)) = oid;
incr += sizeof(unsigned int);
memcpy(sendbuffer + incr, header, objsize + sizeof(objheader_t));
- send_data(sd, sendbuffer, size+1);
+ send_buf(sd, &writebuffer, sendbuffer, size+1);
}
} //end of for
}
} //end of while
//Release socket
- if (mid!=-1)
+ if (mid!=-1) {
+ forcesend_buf(sd, &writebuffer, NULL, 0);
freeSockWithLock(transPResponseSocketPool, mid, sd);
+ }
return 0;
}