X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fodhcpd.git;a=blobdiff_plain;f=src%2Fodhcpd.c;h=aad5b37b2e5b831c9c910660bcc453659060e5ce;hp=76dee9ec517d31b792d9016609e6c64d0a72f36b;hb=ebbff3872a1f242ef5b0a7c029895848876a54b2;hpb=7103b67707aac1a44b64211b45eca9c5c54bef2d diff --git a/src/odhcpd.c b/src/odhcpd.c index 76dee9e..aad5b37 100644 --- a/src/odhcpd.c +++ b/src/odhcpd.c @@ -113,11 +113,11 @@ int odhcpd_open_rtnl(void) // Read IPv6 MTU for interface -int odhcpd_get_interface_mtu(const char *ifname) +int odhcpd_get_interface_config(const char *ifname, const char *what) { char buf[64]; - const char *sysctl_pattern = "/proc/sys/net/ipv6/conf/%s/mtu"; - snprintf(buf, sizeof(buf), sysctl_pattern, ifname); + const char *sysctl_pattern = "/proc/sys/net/ipv6/conf/%s/%s"; + snprintf(buf, sizeof(buf), sysctl_pattern, ifname, what); int fd = open(buf, O_RDONLY); ssize_t len = read(fd, buf, sizeof(buf) - 1); @@ -126,10 +126,8 @@ int odhcpd_get_interface_mtu(const char *ifname) if (len < 0) return -1; - buf[len] = 0; return atoi(buf); - } @@ -415,9 +413,9 @@ void odhcpd_process(struct odhcpd_event *event) odhcpd_receive_packets(&event->uloop, 0); } -void odhcpd_urandom(void *data, size_t len) +int odhcpd_urandom(void *data, size_t len) { - read(urandom_fd, data, len); + return read(urandom_fd, data, len); }