guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dhcp] 07/08: remove unneeded FFI code from dhcp/interfaces.scm


From: Rohan Prinja
Subject: [dhcp] 07/08: remove unneeded FFI code from dhcp/interfaces.scm
Date: Mon, 15 Jun 2015 19:26:22 +0000

wenderen pushed a commit to branch master
in repository dhcp.

commit 2145316f89953919d4a975dcfcbb8221c9285be3
Author: Rohan Prinja <address@hidden>
Date:   Tue Jun 16 00:30:11 2015 +0530

    remove unneeded FFI code from dhcp/interfaces.scm
---
 dhcp/interfaces.scm |   81 ---------------------------------------------------
 1 files changed, 0 insertions(+), 81 deletions(-)

diff --git a/dhcp/interfaces.scm b/dhcp/interfaces.scm
index ed5e36d..51f5b5e 100644
--- a/dhcp/interfaces.scm
+++ b/dhcp/interfaces.scm
@@ -70,63 +70,6 @@
 
 ;;; Taken/modified from (guix build syscalls) end
 
-(define *libinterfaces* (dynamic-link "lib/libinterfaces.so"))
-
-(define-syntax-rule (link-fn c-fn-name lib ret-type c-fn-args arg ...)
-  "FFI wrapper for a function defined in a .so library"
-  (let ((f (pointer->procedure ret-type
-                              (dynamic-func c-fn-name lib)
-                              c-fn-args)))
-    (f arg ...)))
-
-;; Obtain a list of interfaces from getifaddrs (3).
-(define-syntax-rule (get-first-interface-ptr)
-  (link-fn "get_first_interface_ptr" *libinterfaces* '* '()))
-
-;; Free the memory allocated by (find-interfaces).
-(define-syntax-rule (free-interfaces ifaddrs)
-  (link-fn "free_interfaces" *libinterfaces* void '(*) ifaddrs))
-
-;; Struct type for struct ifaddrs. See also: getifaddrs (3).
-(define *ifaddrs-struct-type* (list '* '* unsigned-int '* '* '* '*))
-
-;; Struct type for struct sockaddr. See also: bind (2).
-(define *sockaddr-struct-type* (list unsigned-short '*))
-
-;; Given a pointer to a struct ifaddrs, parse it using
-;; parse-c-struct.
-(define-syntax-rule (parse-ifaddr ifaddrs)
-  (parse-c-struct ifaddrs *ifaddrs-struct-type*))
-
-;; Given a pointer to a struct sockaddr, parse it using
-;; parse-c-struct.
-(define-syntax-rule (parse-sockaddr sockaddr)
-  (parse-c-struct sockaddr *sockaddr-struct-type*))
-
-;; Note: In the <ifaddrs.h> library, struct ifaddrs is
-;; an intrusive linked list of interface addresses.
-
-;; Given a struct ifaddrs pointer which has been parsed
-;; using parse-c-struct, obtain and parse the next ifaddrs
-;; struct in the intrusive linked list. If we are already
-;; at the end of the list, do not do anything.
-(define-syntax-rule (next-parsed-ifaddr parsed)
-  (let ((next-ptr (car parsed)))
-    (if (null-pointer? next-ptr)
-       '()
-       (parse-ifaddr (car parsed)))))
-
-(define-syntax-rule (af-inet? family)
-  "Is the family AF_INET or AF_INET6?"
-  (or (= family AF_INET) (= family AF_INET6)))
-
-(define (get-sockaddr-data sockaddr)
-  "Retrieve the data field from struct sockaddr. It might be NULL."
-  (let ((data-ptr (cadr sockaddr)))
-    (if (null-pointer? data-ptr)
-       ""
-       (pointer->string data-ptr))))
-
 (define-syntax-rule (make-dgram-sock)
   "Create a UDP datagram socket."
   (let ((sock (socket PF_INET SOCK_DGRAM IPPROTO_UDP)))
@@ -134,30 +77,6 @@
        (throw 'system-error "make-dgram-sock")
        sock)))
 
-(define (find-interfaces ifaddrs)
-  "Find all AF_INET/AF_INET6 family network interfaces."
-  (define (helper parsed result)
-    (if (null? parsed)
-       result
-       (let* ((name (pointer->string (cadr parsed)))
-              (flags (caddr parsed))
-              (sockaddr-ptr (list-ref parsed 3))
-              (sockaddr (parse-sockaddr sockaddr-ptr))
-              (data (get-sockaddr-data sockaddr))
-              ;(_ (display (format #f "~a\n" sockaddr)))
-              (family (car sockaddr))
-              )
-         (if (af-inet? family)
-             (display (format #f "Name ~a, Family ~a\n" name family)))
-         (helper (next-parsed-ifaddr parsed)
-                 (cons (make-net-iface
-                         name
-                         flags
-                         #vu8(0 0 0 0) #vu8(0 0 0 0) #vu8(0 0 0 0)
-                         (cons #f #f))
-                       result)))))
-  (helper (parse-ifaddr ifaddrs) '()))
-
 (define (read-hardware-address bv idx)
   "Read a socket address from bytevector BV at index
 IDX. BV is expected to correspond to a struct sockaddr"



reply via email to

[Prev in Thread] Current Thread [Next in Thread]