int recvData(int sockfd, void* data, int len) { int ret = read(sockfd, data, len); if(!isBigEndian()) switchEndian(data, ret); return ret; }
whisper_library::GenericPacket extractApplicationLayer(vector<bool> frame) { vector<bool> application_layer; vector<bool> packet_little_endian = switchEndian(frame); whisper_library::IpHeaderv4 ip_header(packet_little_endian); unsigned int length_bit = ip_header.ipHeaderLength() * 32; unsigned int total_length_bit = ip_header.totalLength() * 8; application_layer.insert(application_layer.begin(), packet_little_endian.begin() + 112 + length_bit, packet_little_endian.begin() + 112 + total_length_bit); // cut of 14 byte ethernet header (112 bit) and ip header and padding whisper_library::GenericPacket generic_packet; generic_packet.setPacket(application_layer); return generic_packet; }
int sendData(int sockfd, void* data, int len) { if(!isBigEndian()) switchEndian(data, len); return write(sockfd, data, len); }