summaryrefslogtreecommitdiff
path: root/kernel/network/udp.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/network/udp.c')
-rw-r--r--kernel/network/udp.c32
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);