diff options
author | Linus Nordberg <linus@nordberg.se> | 2009-06-26 07:04:52 +0200 |
---|---|---|
committer | Linus Nordberg <linus@nordberg.se> | 2009-06-26 07:04:52 +0200 |
commit | cf9c330668cdd350c067669b926f3af7e355f2a4 (patch) | |
tree | be2e7fe9e2da63dd229442c8bb6172c64d8caa86 | |
parent | 7be08db4bf7bce7f31004225c2eb0777c6d51e86 (diff) |
* src/bgpstore.lisp: Display counter.
* src/util.lisp (iso-date): New function.
-rw-r--r-- | bgp-logger.org | 4 | ||||
-rw-r--r-- | src/bgpstore.lisp | 12 | ||||
-rw-r--r-- | src/util.lisp | 10 |
3 files changed, 22 insertions, 4 deletions
diff --git a/bgp-logger.org b/bgp-logger.org index b160400..733c8bb 100644 --- a/bgp-logger.org +++ b/bgp-logger.org @@ -26,8 +26,8 @@ so now it does. * TODO - [X] store timestamp and precision-time -- [ ] store as-path -- [ ] move to victoria +- [X] store as-path +- [X] move to victoria - [ ] store nexthop - [ ] limit access to bgpmon stream (acl's) - [ ] auto-start on boot diff --git a/src/bgpstore.lisp b/src/bgpstore.lisp index 2c3b8ed..ba448ee 100644 --- a/src/bgpstore.lisp +++ b/src/bgpstore.lisp @@ -4,12 +4,20 @@ (defun start-bgpstore (host port) (with-connection *db-spec* - (let ((reader (new-reader host port))) + (let ((reader (new-reader host port)) + (count 0)) (do ((e (next-xml-blurb reader "BGP_MESSAGE") (next-xml-blurb reader "BGP_MESSAGE"))) ((null e)) (dolist (obj (new-entries (xml-top-elem-from-octets e))) - (insert-dao obj))) + (insert-dao obj) + (incf count) + (if (mod count 100) (format t ".") + (if (mod count 1000) (format t "+") + (if (mod count 10000) + (format t "~%~A ~A " + (iso-date (get-universal-time) t) + count)))) (close-reader)))) (defun stop-bgpstore ()) diff --git a/src/util.lisp b/src/util.lisp index 32f7d73..87661a0 100644 --- a/src/util.lisp +++ b/src/util.lisp @@ -55,3 +55,13 @@ BUGS: (read-byte (usocket:socket-stream sock) nil))) (defun close-reader () (usocket:socket-close sock))) + +(defun iso-date (universal-time &optional (include-seconds nil)) + "Return a string denoting UNIVERSAL-TIME" + (multiple-value-bind (second minute hour day month year) + (decode-universal-time universal-time) + (if include-seconds + (format nil "~4,'0D-~2,'0D-~2,'0D ~2,'0D:~2,'0D:~2,'0D" + year month day hour minute second) + (format nil "~4,'0D-~2,'0D-~2,'0D ~2,'0D:~2,'0D" + year month day hour minute)))) |