diff options
Diffstat (limited to 'kernel/network/udp.c')
-rw-r--r-- | kernel/network/udp.c | 32 |
1 files changed, 16 insertions, 16 deletions
diff --git a/kernel/network/udp.c b/kernel/network/udp.c index 23411da..8c28610 100644 --- a/kernel/network/udp.c +++ b/kernel/network/udp.c @@ -5,33 +5,33 @@ #include <socket.h> void send_udp_packet(struct sockaddr_in *src, const struct sockaddr_in *dst, - const uint8_t *payload, uint16_t payload_length) { - uint16_t header[4] = {0}; + const u8 *payload, u16 payload_length) { + u16 header[4] = {0}; header[0] = src->sin_port; header[1] = dst->sin_port; header[2] = htons(payload_length + 8); - uint16_t packet_length = sizeof(header) + payload_length; - uint8_t *packet = kmalloc(packet_length); + u16 packet_length = sizeof(header) + payload_length; + u8 *packet = kmalloc(packet_length); memcpy(packet, header, sizeof(header)); memcpy(packet + sizeof(header), payload, payload_length); send_ipv4_packet(dst->sin_addr.s_addr, 0x11, packet, packet_length); kfree(packet); } -void handle_udp(uint8_t src_ip[4], const uint8_t *payload, - uint32_t packet_length) { +void handle_udp(u8 src_ip[4], const u8 *payload, + u32 packet_length) { assert(packet_length >= 8); // n_.* means network format(big endian) // h_.* means host format((probably) little endian) - uint16_t n_source_port = *(uint16_t *)payload; - uint16_t h_source_port = ntohs(n_source_port); + u16 n_source_port = *(u16 *)payload; + u16 h_source_port = ntohs(n_source_port); (void)h_source_port; - uint16_t h_dst_port = ntohs(*(uint16_t *)(payload + 2)); - uint16_t h_length = ntohs(*(uint16_t *)(payload + 4)); + u16 h_dst_port = ntohs(*(u16 *)(payload + 2)); + u16 h_length = ntohs(*(u16 *)(payload + 4)); assert(h_length == packet_length); - uint16_t data_length = h_length - 8; - const uint8_t *data = payload + 8; + u16 data_length = h_length - 8; + const u8 *data = payload + 8; // Find the open port OPEN_INET_SOCKET *in_s = find_open_udp_port(htons(h_dst_port)); @@ -44,12 +44,12 @@ void handle_udp(uint8_t src_ip[4], const uint8_t *payload, struct sockaddr_in /*{ sa_family_t sin_family; union { - uint32_t s_addr; + u32 s_addr; } sin_addr; - uint16_t sin_port; + u16 sin_port; }*/ in; in.sin_family = AF_INET; - memcpy(&in.sin_addr.s_addr, src_ip, sizeof(uint32_t)); + memcpy(&in.sin_addr.s_addr, src_ip, sizeof(u32)); in.sin_port = n_source_port; socklen_t sock_length = sizeof(struct sockaddr_in); @@ -57,7 +57,7 @@ void handle_udp(uint8_t src_ip[4], const uint8_t *payload, raw_vfs_pwrite(fifo_file, &in, sizeof(in), 0); // Write the UDP payload length(not including header) - raw_vfs_pwrite(fifo_file, &data_length, sizeof(uint16_t), 0); + raw_vfs_pwrite(fifo_file, &data_length, sizeof(u16), 0); // Write the UDP payload raw_vfs_pwrite(fifo_file, (char *)data, data_length, 0); |