anchor.diff:  	       until lease do
   		 (setf lease (acquire-lease))
   		 (sleep pause))
  -	 
   	    (loop while lease do
   		 (sleep (ceiling (lease-timeout lease) 2))
   		 (setf lease (renew-lease lease))))))
  
positive.code: (defmethod renew-lease ((lease dhcp-lease))
    (let* ((xid (make-xid))
  	 (options (list (make-dhcp-option +opt-dhcp-message-type+ +dhcp-request+)
  			(make-dhcp-option +opt-ip-address+ (ip-address lease))
  			(make-dhcp-option +opt-dhcp-server+ (dhcp-server lease))))
  	 (packet (build-dhcp-packet :xid xid :mac-address (mezzano.network.ethernet:ethernet-mac (interface lease))
  				    :options options)))
      (mezzano.network.udp:with-udp-connection (connection
  					      (mezzano.network.ip:make-ipv4-address (ub32ref/be (dhcp-server lease) 0))
  					      +dhcp-server-port+)
        (sys.net:send packet connection)
        (let ((reply (sys.net:receive connection 4)))
  	(if reply
  	    (let ((reply-options (decode-all-options reply)))
  	      (setf (lease-timestamp lease) (get-universal-time)
  		    (lease-timeout lease) (get-option reply-options +opt-lease-time+))
  	      lease)
  	    nil)))))
  
  (defun start-dhcp-interaction ()
    (mezzano.supervisor:make-thread
  
negative.code:           (ub32ref/be packet 4) xid
  	  (ub16ref/be packet 8) #x0000 ;SECS
  	  (ub16ref/be packet 10) #x8000 ;FLAGS
            (ub32ref/be packet 12) ciaddr
            (ub32ref/be packet 16) #x00000000 ;YIADDR
            (ub32ref/be packet 20) siaddr
            (ub32ref/be packet 24) #x00000000 ;GIADDR
  