[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"
- [dhcp] branch master updated (d1865d0 -> 0937fcf), Rohan Prinja, 2015/06/15
- [dhcp] 01/08: dhcp: remove trailing whitespace, Rohan Prinja, 2015/06/15
- [dhcp] 03/08: dhcp: correct copyright in tests/, Rohan Prinja, 2015/06/15
- [dhcp] 06/08: add copyright line from syscalls.scm in dhcp/interfaces, Rohan Prinja, 2015/06/15
- [dhcp] 02/08: dhcp: #nil -> #f, Rohan Prinja, 2015/06/15
- [dhcp] 04/08: dhcp: more tests for (dhcp interfaces), Rohan Prinja, 2015/06/15
- [dhcp] 05/08: more exports from dhcp/options/base and dhcp/dhcp, Rohan Prinja, 2015/06/15
- [dhcp] 07/08: remove unneeded FFI code from dhcp/interfaces.scm,
Rohan Prinja <=
- [dhcp] 08/08: fix bugs in serializer and deserializer, Rohan Prinja, 2015/06/15