/* ip header: send to (known) ip address */
off = 0;
- memset(&ip_pkt, 0, sizeof(ip_pkt));
ip_pkt.vers_ihl = 0x45;
ip_pkt.tos = 0;
ip_pkt.pkt_len = htons(sizeof (packet));
* - Christian Grothoff
* - Nathan Evans
*/
-#define _GNU_SOURCE
#if HAVE_CONFIG_H
/* Just needed for HAVE_SOCKADDR_IN_SIN_LEN test macro! */
#include "gnunet_config.h"
+#else
+#define _GNU_SOURCE
#endif
#include <sys/types.h>
#include <sys/socket.h>
/* no go back to calculate ICMP packet checksum */
off = sizeof (ip_pkt);
- icmp_pkt.checksum = htons(calc_checksum(&packet[off],
+ icmp_pkt.checksum = htons(calc_checksum((uint16_t*) &packet[off],
sizeof (struct icmp_packet) + sizeof(struct ip_packet) + sizeof(struct icmp_echo_packet)));
memcpy (&packet[off],
&icmp_pkt,
ip_pkt.src_ip = my_ip->s_addr;
ip_pkt.dst_ip = dummy.s_addr;
ip_pkt.checksum = htons(calc_checksum((uint16_t*)&ip_pkt, sizeof (ip_pkt)));
- memcpy (packet, &ip_pkt, sizeof (ip_pkt));
+ memcpy (&packet[off], &ip_pkt, sizeof (ip_pkt));
off += sizeof (ip_pkt);
icmp_echo.type = ICMP_ECHO;
* - Christian Grothoff
* - Nathan Evans
*/
-#define _GNU_SOURCE
#if HAVE_CONFIG_H
/* Just needed for HAVE_SOCKADDR_IN_SIN_LEN test macro! */
#include "gnunet_config.h"
+#else
+#define _GNU_SOURCE
#endif
#include <sys/types.h>
#include <sys/socket.h>
icmp_echo.checksum = 0;
icmp_echo.checksum = htons(calc_checksum((uint16_t*)&icmp_echo,
sizeof (struct icmp_packet)));
-
- make_echo (my_ip, &icmp_echo);
-
memcpy (&packet[off], &icmp_echo, sizeof (icmp_echo));
off += sizeof (icmp_echo);