|
17 | 17 | solana_streamer::sendmmsg::batch_send,
|
18 | 18 | std::{
|
19 | 19 | iter::repeat,
|
20 |
| - net::UdpSocket, |
| 20 | + net::{SocketAddr, UdpSocket}, |
21 | 21 | sync::{atomic::Ordering, Arc, RwLock},
|
22 | 22 | },
|
23 | 23 | };
|
@@ -147,19 +147,8 @@ impl Forwarder {
|
147 | 147 | usize,
|
148 | 148 | Option<Pubkey>,
|
149 | 149 | ) {
|
150 |
| - let leader_and_addr = match forward_option { |
151 |
| - ForwardOption::NotForward => return (Ok(()), 0, None), |
152 |
| - ForwardOption::ForwardTransaction => { |
153 |
| - next_leader_tpu_forwards(&self.cluster_info, &self.poh_recorder) |
154 |
| - } |
155 |
| - |
156 |
| - ForwardOption::ForwardTpuVote => { |
157 |
| - next_leader_tpu_vote(&self.cluster_info, &self.poh_recorder) |
158 |
| - } |
159 |
| - }; |
160 |
| - let (leader_pubkey, addr) = match leader_and_addr { |
161 |
| - Some(leader_and_addr) => leader_and_addr, |
162 |
| - None => return (Ok(()), 0, None), |
| 150 | + let Some((leader_pubkey, addr)) = self.get_leader_and_addr(forward_option) else { |
| 151 | + return (Ok(()), 0, None); |
163 | 152 | };
|
164 | 153 |
|
165 | 154 | const INTERVAL_MS: u64 = 100;
|
@@ -227,6 +216,20 @@ impl Forwarder {
|
227 | 216 |
|
228 | 217 | (Ok(()), packet_vec_len, Some(leader_pubkey))
|
229 | 218 | }
|
| 219 | + |
| 220 | + /// Get the pubkey and socket address for the leader to forward to |
| 221 | + fn get_leader_and_addr(&self, forward_option: &ForwardOption) -> Option<(Pubkey, SocketAddr)> { |
| 222 | + match forward_option { |
| 223 | + ForwardOption::NotForward => None, |
| 224 | + ForwardOption::ForwardTransaction => { |
| 225 | + next_leader_tpu_forwards(&self.cluster_info, &self.poh_recorder) |
| 226 | + } |
| 227 | + |
| 228 | + ForwardOption::ForwardTpuVote => { |
| 229 | + next_leader_tpu_vote(&self.cluster_info, &self.poh_recorder) |
| 230 | + } |
| 231 | + } |
| 232 | + } |
230 | 233 | }
|
231 | 234 |
|
232 | 235 | #[cfg(test)]
|
|
0 commit comments