Rename EAPoL configuration file path to /var/lib/connman
[platform/upstream/connman.git] / gdhcp / ipv4ll.c
index d900198..de4e076 100755 (executable)
@@ -35,6 +35,7 @@
 #include <glib.h>
 #include "ipv4ll.h"
 #include "common.h"
+#include "../src/connman.h"
 
 /**
  * Return a random link local IP (in host byte order)
@@ -45,93 +46,10 @@ uint32_t ipv4ll_random_ip(void)
        uint64_t rand;
 
        do {
-               dhcp_get_random(&rand);
+               __connman_util_get_random(&rand);
                tmp = rand;
                tmp = tmp & IN_CLASSB_HOST;
        } while (tmp > (IN_CLASSB_HOST - 0x0200));
        return ((LINKLOCAL_ADDR + 0x0100) + tmp);
 }
 
-/**
- * Return a random delay in range of zero to secs*1000
- */
-guint ipv4ll_random_delay_ms(guint secs)
-{
-       uint64_t rand;
-
-       dhcp_get_random(&rand);
-       return rand % (secs * 1000);
-}
-
-int ipv4ll_send_arp_packet(uint8_t* source_eth, uint32_t source_ip,
-                   uint32_t target_ip, int ifindex)
-{
-       struct sockaddr_ll dest;
-       struct ether_arp p;
-       uint32_t ip_source;
-       uint32_t ip_target;
-       int fd, n;
-
-       fd = socket(PF_PACKET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
-       if (fd < 0)
-               return -errno;
-
-       memset(&dest, 0, sizeof(dest));
-       memset(&p, 0, sizeof(p));
-
-       dest.sll_family = AF_PACKET;
-       dest.sll_protocol = htons(ETH_P_ARP);
-       dest.sll_ifindex = ifindex;
-       dest.sll_halen = ETH_ALEN;
-       memset(dest.sll_addr, 0xFF, ETH_ALEN);
-       if (bind(fd, (struct sockaddr *)&dest, sizeof(dest)) < 0) {
-               int err = errno;
-               close(fd);
-               return -err;
-       }
-
-       ip_source = htonl(source_ip);
-       ip_target = htonl(target_ip);
-       p.arp_hrd = htons(ARPHRD_ETHER);
-       p.arp_pro = htons(ETHERTYPE_IP);
-       p.arp_hln = ETH_ALEN;
-       p.arp_pln = 4;
-       p.arp_op = htons(ARPOP_REQUEST);
-
-       memcpy(&p.arp_sha, source_eth, ETH_ALEN);
-       memcpy(&p.arp_spa, &ip_source, sizeof(p.arp_spa));
-       memcpy(&p.arp_tpa, &ip_target, sizeof(p.arp_tpa));
-
-       n = sendto(fd, &p, sizeof(p), 0,
-              (struct sockaddr*) &dest, sizeof(dest));
-       if (n < 0)
-               n = -errno;
-
-       close(fd);
-
-       return n;
-}
-
-int ipv4ll_arp_socket(int ifindex)
-{
-       int fd;
-       struct sockaddr_ll sock;
-
-       fd = socket(PF_PACKET, SOCK_DGRAM | SOCK_CLOEXEC, 0);
-       if (fd < 0)
-               return fd;
-
-       memset(&sock, 0, sizeof(sock));
-
-       sock.sll_family = AF_PACKET;
-       sock.sll_protocol = htons(ETH_P_ARP);
-       sock.sll_ifindex = ifindex;
-
-       if (bind(fd, (struct sockaddr *) &sock, sizeof(sock)) != 0) {
-               int err = errno;
-               close(fd);
-               return -err;
-       }
-
-       return fd;
-}