summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDavid Barksdale <amatus.amongus@gmail.com>2011-08-24 22:54:32 -0500
committerDavid Barksdale <amatus.amongus@gmail.com>2011-08-24 22:54:32 -0500
commit05ecefa0e8bbe159fe2be78b5e9332dfb888de23 (patch)
treef1c89462812bc704e1a8885c59f3b027d588549b /src
parentfdaf13916b30df6daf377dab845ef16e04dc961b (diff)
Make topology actually do something.
Unable to test because of trouble reading a hostlist.
Diffstat (limited to 'src')
-rw-r--r--src/main/clojure/org/gnu/clojure/gnunet/filesharing.clj2
-rw-r--r--src/main/clojure/org/gnu/clojure/gnunet/tcp.clj5
-rw-r--r--src/main/clojure/org/gnu/clojure/gnunet/topology.clj12
-rw-r--r--src/main/clojure/org/gnu/clojure/gnunet/topology_events.clj8
-rw-r--r--src/main/clojure/org/gnu/clojure/gnunet/transport.clj10
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))))