summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinus Nordberg <linus@nordberg.se>2009-06-26 07:04:52 +0200
committerLinus Nordberg <linus@nordberg.se>2009-06-26 07:04:52 +0200
commitcf9c330668cdd350c067669b926f3af7e355f2a4 (patch)
treebe2e7fe9e2da63dd229442c8bb6172c64d8caa86
parent7be08db4bf7bce7f31004225c2eb0777c6d51e86 (diff)
* src/bgpstore.lisp: Display counter.
* src/util.lisp (iso-date): New function.
-rw-r--r--bgp-logger.org4
-rw-r--r--src/bgpstore.lisp12
-rw-r--r--src/util.lisp10
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))))