(let ((w (ipaddr-width addr)))
(if (<= 0 mask w)
(integer-netmask w mask)
- (error "Mask out of range.")))))
+ (error "Prefix length out of range.")))))
(export 'mask-ipaddr)
(defun mask-ipaddr (addr mask)
(print-unreadable-object (ipn stream :type t)
(write-string (ipnet-string ipn) stream)))
-(defun parse-subnet (class width max str &key (start 0) (end nil))
+(defun parse-subnet (class width max str &key (start 0) (end nil))
"Parse a subnet description from a (substring of) STR."
(setf-default end (length str))
(let ((sl (position #\/ str :start start :end end)))
(export 'string-subipnet)
(defun string-subipnet (ipn str &key (start 0) (end nil))
+ "Parse an IP subnet from a parent net IPN and a suffix string STR."
(setf str (stringify str))
(let* ((addr-class (extract-class-name (ipnet-net ipn)))
(width (ipaddr-width addr-class))