mirror of
https://github.com/yarrick/iodine.git
synced 2024-11-22 16:19:20 +02:00
Integrated func dns_handle_reply into dns_read
This commit is contained in:
parent
f2b17dfda5
commit
973d42debe
52
dns.c
52
dns.c
|
@ -177,37 +177,6 @@ dns_handle_tun(int fd, char *data, int len)
|
||||||
dns_send_chunk(fd);
|
dns_send_chunk(fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
dns_handle_reply(int fd, char *data, int len)
|
|
||||||
{
|
|
||||||
uint16_t id;
|
|
||||||
char *p;
|
|
||||||
|
|
||||||
p = data;
|
|
||||||
READSHORT(id, p);
|
|
||||||
|
|
||||||
// Handle ACKing
|
|
||||||
if (dns_sending() && id == chunkid) {
|
|
||||||
// Got ACK on sent packet
|
|
||||||
packetpos += lastlen;
|
|
||||||
if (packetpos == packetlen) {
|
|
||||||
// Packet completed
|
|
||||||
printf("IP packet size %d sent successfully!\n", packetlen);
|
|
||||||
packetpos = 0;
|
|
||||||
packetlen = 0;
|
|
||||||
lastlen = 0;
|
|
||||||
} else {
|
|
||||||
// More to send
|
|
||||||
dns_send_chunk(fd);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Detect if any data is attached
|
|
||||||
// TODO
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
void
|
void
|
||||||
dns_ping(int dns_fd)
|
dns_ping(int dns_fd)
|
||||||
{
|
{
|
||||||
|
@ -357,16 +326,31 @@ dns_read(int fd, char *buf, int buflen)
|
||||||
READSHORT(port, r);
|
READSHORT(port, r);
|
||||||
READNAME(packet, host, r);
|
READNAME(packet, host, r);
|
||||||
}
|
}
|
||||||
// printf("%s\n", name);
|
|
||||||
}
|
}
|
||||||
// Is any data attached?
|
if (dns_sending() && chunkid == ntohs(header->id)) {
|
||||||
return dns_handle_reply(fd, packet, r);
|
// Got ACK on sent packet
|
||||||
|
packetpos += lastlen;
|
||||||
|
if (packetpos == packetlen) {
|
||||||
|
// Packet completed
|
||||||
|
printf("IP packet size %d sent successfully!\n", packetlen);
|
||||||
|
packetpos = 0;
|
||||||
|
packetlen = 0;
|
||||||
|
lastlen = 0;
|
||||||
|
} else {
|
||||||
|
// More to send
|
||||||
|
dns_send_chunk(fd);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO is any data attached? find out and copy into buf and return length
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static int
|
static int
|
||||||
host2dns(const char *host, char *buffer, int size)
|
host2dns(const char *host, char *buffer, int size)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue