diff options
author | David Barksdale <amatus.amongus@gmail.com> | 2011-08-24 22:54:32 -0500 |
---|---|---|
committer | David Barksdale <amatus.amongus@gmail.com> | 2011-08-24 22:54:32 -0500 |
commit | 05ecefa0e8bbe159fe2be78b5e9332dfb888de23 (patch) | |
tree | f1c89462812bc704e1a8885c59f3b027d588549b /src | |
parent | fdaf13916b30df6daf377dab845ef16e04dc961b (diff) |
Make topology actually do something.
Unable to test because of trouble reading a hostlist.
Diffstat (limited to 'src')
5 files changed, 18 insertions, 19 deletions
diff --git a/src/main/clojure/org/gnu/clojure/gnunet/filesharing.clj b/src/main/clojure/org/gnu/clojure/gnunet/filesharing.clj index a540406..7767cf9 100644 --- a/src/main/clojure/org/gnu/clojure/gnunet/filesharing.clj +++ b/src/main/clojure/org/gnu/clojure/gnunet/filesharing.clj @@ -210,4 +210,4 @@ peer [message-type-fs-get admit-get! message-type-fs-put admit-put! - message-type-migration-stop admit-migration-stop!])) + message-type-fs-migration-stop admit-migration-stop!])) diff --git a/src/main/clojure/org/gnu/clojure/gnunet/tcp.clj b/src/main/clojure/org/gnu/clojure/gnunet/tcp.clj index 735bfca..f4e77af 100644 --- a/src/main/clojure/org/gnu/clojure/gnunet/tcp.clj +++ b/src/main/clojure/org/gnu/clojure/gnunet/tcp.clj @@ -80,10 +80,7 @@ connection))] nil))) (when-let [remote-peer-id (deref (:remote-peer-id-atom connection))] - (let [address {:transport "tcp" - :encoded-address (:encoded-address connection) - :expiration (idle-connection-timeout)}] - (admit-message! peer remote-peer-id address message))))) + (admit-message! peer remote-peer-id message)))) (defn handle-socket-channel-connectable! [peer transport connection] diff --git a/src/main/clojure/org/gnu/clojure/gnunet/topology.clj b/src/main/clojure/org/gnu/clojure/gnunet/topology.clj index 9ac9f70..e354b6f 100644 --- a/src/main/clojure/org/gnu/clojure/gnunet/topology.clj +++ b/src/main/clojure/org/gnu/clojure/gnunet/topology.clj @@ -28,16 +28,12 @@ (map (partial verify-transport-address! peer remote-peer) (list-transport-addresses addresses)))) -(defn verify-remote-peers! - [remote-peers peer] - (doseq [[_ remote-peer] remote-peers] - (send (:transport-addresses-agent remote-peer) - verify-transport-addresses! peer remote-peer)) - remote-peers) - (defn new-peer-callback! [peer remote-peer] - ) + ;; XXX: We need to check some kind of current connection count vs target + ;; connection count before doing this. + (send (:transport-addresses-agent remote-peer) + verify-transport-addresses! peer remote-peer)) (defn activate-topology! [peer] diff --git a/src/main/clojure/org/gnu/clojure/gnunet/topology_events.clj b/src/main/clojure/org/gnu/clojure/gnunet/topology_events.clj new file mode 100644 index 0000000..aaaf9a3 --- /dev/null +++ b/src/main/clojure/org/gnu/clojure/gnunet/topology_events.clj @@ -0,0 +1,8 @@ +(ns org.gnu.clojure.gnunet.topology_events) + +(defn notify-new-remote-peer! + [peer remote-peer] + (let [callbacks (:new-peer-callbacks (deref (:topology-agent peer)))] + (doseq [callback! callbacks] + (callback! peer remote-peer)))) + diff --git a/src/main/clojure/org/gnu/clojure/gnunet/transport.clj b/src/main/clojure/org/gnu/clojure/gnunet/transport.clj index c323dd8..58b9424 100644 --- a/src/main/clojure/org/gnu/clojure/gnunet/transport.clj +++ b/src/main/clojure/org/gnu/clojure/gnunet/transport.clj @@ -257,7 +257,7 @@ :bytes encoded-pong}])))))))) (defn handle-ping! - [peer remote-peer address message] + [peer remote-peer message] (when-let [ping (first (parse-ping (:bytes message)))] (cond (not (= (:peer-id ping) (:id peer))) nil @@ -307,17 +307,15 @@ :connected-address encoded-address}))))))) (defn admit-message! - [peer sender-id address message] + [peer sender-id message] ;; (.write *out* (str "Received " message "\n")) (send (:remote-peers-agent peer) (fn [remote-peers] - (let [remote-peers (update-remote-peers! remote-peers - sender-id {:transport-addresses [address]}) + (let [remote-peers (update-remote-peers! remote-peers sender-id {}) remote-peer (remote-peers sender-id)] (condp = (:message-type message) message-type-hello (handle-hello! peer message) - message-type-transport-ping (handle-ping! - peer remote-peer address message) + message-type-transport-ping (handle-ping! peer remote-peer message) message-type-transport-pong (handle-pong! peer message) (handle-receive! peer remote-peer message)) remote-peers)))) |