void sendPiece(int sockfd, int index, int begin, int len) { unsigned char *send_buff = (unsigned char *)malloc(sizeof(int)*3+sizeof(unsigned char)*(1+len)); memset(send_buff,0,sizeof(int)*3+sizeof(unsigned char)*(1+len)); unsigned char* temp_buff = send_buff; int send_len = sizeof(int) * 2 + sizeof(char) * (1 + len); int send_len_n = htonl(send_len); printf("piece pack_len is %d,",send_len); memcpy(send_buff, (char*)&send_len_n, 4); assert(*(int *)send_buff == send_len_n); send_buff += 4; *send_buff ++ = 7; int index_n = htonl(index); printf("index is %d,",index); memcpy(send_buff, (char*)&index_n, 4); send_buff += 4; int begin_n = htonl(begin); printf("begin is %d\n",begin); memcpy(send_buff, (char*)&begin_n, 4); send_buff += 4; file2buffer(index, begin, len, send_buff); printf("Send piece pack\n"); int n = send(sockfd, temp_buff, sizeof(int) * 3 + sizeof(unsigned char) * (1 + len), 0); //assert(sizeof(int)*3 + sizeof(unsigned char)*(1+len) == n); g_uploaded += len; free(temp_buff); }
void* DBLsg_get(char *pTblName) { DB_Table *pTable = getTable(pTblName); if(!pTable){ return NULL; } int iLen = 0; char *buffer = NULL; if(!file2buffer(pTblName, &buffer, &iLen)){ return NULL; } void *pObj = buffer2Obj(PRO[pTable->oIdx].pTbl,PRO[pTable->oIdx].oSize,buffer,iLen,NULL); free(buffer); return pObj; }