diff options
author | Linus Nordberg <linus@nordberg.se> | 2009-06-26 05:03:25 +0200 |
---|---|---|
committer | Linus Nordberg <linus@nordberg.se> | 2009-06-26 05:03:25 +0200 |
commit | 7765d85438a0b681725a5539f1924b189402f41c (patch) | |
tree | fe062e9ca06c1d6278798309bef5adfff2106d92 | |
parent | 45b772581b6c4e227756ef2e437649a44dcc3e23 (diff) |
* src/data.lisp (new-entries): Store AS-PATH.
* src/start-bgpstore.sh: Fix bug in start args and add default host and port.
-rw-r--r-- | src/data.lisp | 25 | ||||
-rwxr-xr-x | src/start-bgpstore.sh | 5 |
2 files changed, 25 insertions, 5 deletions
diff --git a/src/data.lisp b/src/data.lisp index e2c4b9b..b9cd1e1 100644 --- a/src/data.lisp +++ b/src/data.lisp @@ -82,7 +82,7 @@ TOP-ELEM is an XML document element." (dom:get-attribute p "label"))) prefixes)))) - ;; Populate the template. + ;; TIMESTAMP and PRECISION_TIME --> template. (let ((ts (aref (dom:get-elements-by-tag-name time "TIMESTAMP") 0)) (pt (aref (dom:get-elements-by-tag-name time "PRECISION_TIME") 0))) (setf (timestamp templ) @@ -90,11 +90,28 @@ TOP-ELEM is an XML document element." (setf (precision-time templ) (dom:data (aref (dom:child-nodes pt) 0)))) - ;; Add octets to templ. + ;; AS-PATH --> template. Note that we want AS_PATH->AS + ;; only, to avoid getting COMMUNITY->AS. + (setf (path templ) + (let* ((as-paths (dom:get-elements-by-tag-name update + "AS_PATH"))) + (if (= 0 (length as-paths)) + "{}" + (let ((str "{")) + (map nil (lambda (node) + (let ((as (dom:data (aref (dom:child-nodes node) 0)))) + (setf str (concatenate 'string + str + (format nil "~A," as))))) + (dom:child-nodes (aref as-paths 0))) + (concatenate 'string + (subseq str 0 (- (length str) 1)) + "}"))))) + + ;; OCTETS --> template. (when (> (length octet-msgs) 0) (let* ((oct (aref (dom:get-elements-by-tag-name - (aref octet-msgs 0) "OCTETS") - 0)) + (aref octet-msgs 0) "OCTETS") 0)) (txt (aref (dom:child-nodes oct) 0))) (setf (bgp-octets templ) (dom:data txt)))) diff --git a/src/start-bgpstore.sh b/src/start-bgpstore.sh index ce40c02..62abee1 100755 --- a/src/start-bgpstore.sh +++ b/src/start-bgpstore.sh @@ -3,6 +3,9 @@ HOST=$1 PORT=$2 +[ -z "$HOST" ] && HOST=victoria.tug.nordu.net +[ -z "$PORT" ] && PORT=50001 + # FIXME: The use-package postmodern should've been taken care of in # package.lisp. @@ -11,4 +14,4 @@ sbcl --no-userinit \ --eval "(asdf:oos 'asdf:load-op 'postmodern)" \ --eval "(use-package 'postmodern)" \ --eval "(require 'bgpstore)" \ - --eval "(start-bgpstore $HOST $PORT)" + --eval "(start-bgpstore \"$HOST\" $PORT)" |