[cl-net-snmp-cvs] r80 - in trunk: . smi
ctian at common-lisp.net
ctian at common-lisp.net
Thu Oct 18 11:11:30 UTC 2007
Author: ctian
Date: Thu Oct 18 07:11:29 2007
New Revision: 80
Modified:
trunk/net-snmp.asd
trunk/smi/ipaddress.lisp
Log:
Add ipaddress support and fix for win32 load
Modified: trunk/net-snmp.asd
==============================================================================
--- trunk/net-snmp.asd (original)
+++ trunk/net-snmp.asd Thu Oct 18 07:11:29 2007
@@ -30,7 +30,7 @@
(:file "integer" :depends-on ("package"))
(:file "string" :depends-on ("package"))
(:file "sequence" :depends-on ("package"))
- (:file "ipaddress" :depends-on ("package"))
+ #-win32 (:file "ipaddress" :depends-on ("package"))
(:file "oid" :depends-on ("package"))
(:file "timeticks" :depends-on ("package"))
(:file "pdu" :depends-on ("package"))
@@ -50,6 +50,7 @@
(:file "browser" :depends-on ("tree")))
:depends-on (smi))
;; SNMP
+ #-win32
(:module snmp
:components ((:file "package")
(:file "constants" :depends-on ("package"))
Modified: trunk/smi/ipaddress.lisp
==============================================================================
--- trunk/smi/ipaddress.lisp (original)
+++ trunk/smi/ipaddress.lisp Thu Oct 18 07:11:29 2007
@@ -1,3 +1,26 @@
(in-package :smi)
-;;; We use net.sockets:sockaddr class as ipaddr type.
+;; IP Address Type, use IOLIB's ipv4addr class
+
+(defmethod plain-value ((address ipv4addr))
+ (vector-to-dotted (name address)))
+
+(defmethod ber-encode ((value ipv4addr))
+ (declare (ignore value))
+ (nconc (ber-encode-type 1 0 0)
+ (ber-encode-length 4)
+ (coerce (name value) 'list)))
+
+(defmethod ber-decode-value ((stream stream) (type (eql :ipaddress)) length)
+ (declare (type stream stream)
+ (type fixnum length)
+ (ignore type))
+ (assert (= 4 length))
+ (let ((part-1 (read-byte stream))
+ (part-2 (read-byte stream))
+ (part-3 (read-byte stream))
+ (part-4 (read-byte stream)))
+ (make-instance 'ipv4addr :name (vector part-1 part-2 part-3 part-4))))
+
+(eval-when (:load-toplevel :execute)
+ (install-asn.1-type :ipaddress 1 0 0))
More information about the Cl-net-snmp-cvs
mailing list