gnunet-helper-hijack-dns.c
gnunet_daemon_vpn_SOURCES = \
- gnunet-daemon-vpn.c gnunet-vpn-pretty-print.c
+ gnunet-daemon-vpn.c \
+ gnunet-vpn-pretty-print.c
gnunet_daemon_vpn_LDADD = \
$(top_builddir)/src/core/libgnunetcore.la \
$(top_builddir)/src/statistics/libgnunetstatistics.la \
$(GN_LIBINTL)
gnunet_service_dns_SOURCES = \
- gnunet-service-dns.c
+ gnunet-service-dns.c \
+ gnunet-vpn-pretty-print.c
gnunet_service_dns_LDADD = \
$(top_builddir)/src/core/libgnunetcore.la \
$(top_builddir)/src/statistics/libgnunetstatistics.la \
struct ip_pkt *pkt = (struct ip_pkt*) message;
struct ip_udp *udp = (struct ip_udp*) message;
if (pkt->ip_hdr.proto == 0x11 && udp->ip_hdr.dadr == 0x020a0a0a && ntohs(udp->udp_hdr.dpt) == 53 ) {
- size_t len = sizeof(struct query_packet*) + ntohs(udp->udp_hdr.len) - 7; /* 7 = 8 for the udp-header - 1 for the unsigned char data[1]; */
+ size_t len = sizeof(struct query_packet) + ntohs(udp->udp_hdr.len) - 9; /* 7 = 8 for the udp-header + 1 for the unsigned char data[1]; */
struct query_packet* query = GNUNET_malloc(len);
query->hdr.type = htons(GNUNET_MESSAGE_TYPE_LOCAL_QUERY_DNS);
query->hdr.size = htons(len);
query->orig_from = pkt->ip_hdr.sadr;
query->src_port = udp->udp_hdr.spt;
memcpy(query->data, udp->data, ntohs(udp->udp_hdr.len) - 8);
- GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Queued sending\n");
- GNUNET_CLIENT_notify_transmit_ready(mycls.dns_connection, len, GNUNET_TIME_UNIT_FOREVER_REL, GNUNET_YES, &send_query, query);
+ struct GNUNET_CLIENT_TransmitHandle* th = GNUNET_CLIENT_notify_transmit_ready(mycls.dns_connection, len, GNUNET_TIME_UNIT_FOREVER_REL, GNUNET_YES, &send_query, query);
+ if (th != NULL)
+ GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Queued sending of %d bytes.\n", len);
+ else
+ GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Already queued!\n");
}
}
#include "gnunet_os_lib.h"
#include "gnunet-service-dns-p.h"
#include "gnunet_protocols.h"
+#include "gnunet-vpn-packet.h"
+#include "gnunet-vpn-pretty-print.h"
struct dns_cls {
struct GNUNET_SCHEDULER_Handle *sched;
{
GNUNET_log(GNUNET_ERROR_TYPE_DEBUG, "Received query!\n");
struct query_packet* pkt = (struct query_packet*)message;
+ struct dns_pkt* dns = (struct dns_pkt*)pkt->data;
+
+ pkt_printf_dns(dns);
GNUNET_SERVER_receive_done(client, GNUNET_OK);
}
extern void pkt_printf(struct ip6_pkt* pkt);
+void pkt_printf_dns(struct dns_pkt* pkt);
+
void pkt_printf_ip6tcp(struct ip6_tcp* pkt);
void pkt_printf_ip6udp(struct ip6_udp* pkt);
void pkt_printf_ip6dns(struct ip6_udp_dns* pkt);