Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
R
railgun-routing-client
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Locked Files
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Security & Compliance
Security & Compliance
Dependency List
License Compliance
Packages
Packages
List
Container Registry
Analytics
Analytics
CI / CD
Code Review
Insights
Issues
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Railgun
railgun-routing-client
Commits
9429ae13
Commit
9429ae13
authored
Jan 05, 2026
by
nanamicat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
clean
parent
80c57c1d
Pipeline
#42415
passed with stages
in 5 minutes and 6 seconds
Changes
3
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
8 additions
and
12 deletions
+8
-12
src/main.rs
src/main.rs
+6
-10
src/protocol.rs
src/protocol.rs
+1
-1
src/server.rs
src/server.rs
+1
-1
No files found.
src/main.rs
View file @
9429ae13
use
crate
::
connection
::
Connection
;
use
crate
::
connection
::
Connection
;
use
crate
::
data
::
Router
as
RouterData
;
use
crate
::
data
::
Router
as
RouterData
;
use
crate
::
protocol
::{
Downlink
,
Hello
,
MessageType
,
Uplink
};
use
crate
::
protocol
::{
Hello
,
MessageType
,
Uplink
};
use
crate
::
router
::
Router
;
use
crate
::
router
::
Router
;
use
crate
::
server
::
Server
;
use
crate
::
server
::
Server
;
use
crate
::
settings
::{
Settings
,
INTERVAL
};
use
crate
::
settings
::{
Settings
,
INTERVAL
};
...
@@ -51,17 +51,13 @@ async fn main() -> anyhow::Result<()> {
...
@@ -51,17 +51,13 @@ async fn main() -> anyhow::Result<()> {
result
=
socket
.recv_from
(
&
mut
buf
)
=>
{
result
=
socket
.recv_from
(
&
mut
buf
)
=>
{
let
(
len
,
addr
)
=
result
?
;
let
(
len
,
addr
)
=
result
?
;
if
addr
==
server_addr
{
if
let
Some
(
peer
)
=
Router
::
get
(
&
mut
routers
,
addr
)
&&
let
Ok
((
message
,
_
))
=
bincode
::
decode_from_slice
(
&
buf
[
..
len
],
bincode
::
config
::
standard
())
{
// from server
let
(
downlink
,
_
):
(
Downlink
,
usize
)
=
bincode
::
decode_from_slice
(
&
buf
[
..
len
],
bincode
::
config
::
standard
())
?
;
if
let
Some
(
uplink
)
=
server
.on_message
(
&
downlink
,
&
routers_data
,
&
connections
[
&
config
.id
],
&
config
)
.await
{
let
len
=
bincode
::
encode_into_slice
(
uplink
,
&
mut
buf
,
bincode
::
config
::
standard
())
?
;
let
_
=
socket
.send_to
(
&
buf
[
..
len
],
addr
)
.await
;
}
}
else
if
let
Some
(
peer
)
=
Router
::
get
(
&
mut
routers
,
addr
){
// from client
// from client
let
(
message
,
_
):
(
Hello
,
usize
)
=
bincode
::
decode_from_slice
(
&
buf
[
..
len
],
bincode
::
config
::
standard
())
?
;
peer
.on_message
(
&
message
);
peer
.on_message
(
&
message
);
}
else
if
addr
==
server_addr
&&
let
Ok
((
downlink
,
_
))
=
bincode
::
decode_from_slice
(
&
buf
[
..
len
],
bincode
::
config
::
standard
())
&&
let
Some
(
uplink
)
=
server
.on_message
(
&
downlink
,
&
routers_data
,
&
connections
[
&
config
.id
],
&
config
)
.await
{
// from server
let
len
=
bincode
::
encode_into_slice
(
uplink
,
&
mut
buf
,
bincode
::
config
::
standard
())
?
;
let
_
=
socket
.send_to
(
&
buf
[
..
len
],
addr
)
.await
;
}
}
}
}
...
...
src/protocol.rs
View file @
9429ae13
use
bincode
::{
Decode
,
Encode
};
use
bincode
::{
Decode
,
Encode
};
use
std
::
collections
::
BTreeMap
;
use
serde_derive
::
Serialize
;
use
serde_derive
::
Serialize
;
use
std
::
collections
::
BTreeMap
;
#[derive(Encode,
Decode)]
#[derive(Encode,
Decode)]
pub
struct
Hello
{
pub
struct
Hello
{
...
...
src/server.rs
View file @
9429ae13
use
crate
::
protocol
::{
Downlink
,
MessageType
,
Uplink
};
use
crate
::
protocol
::{
Downlink
,
MessageType
,
Uplink
};
use
crate
::
settings
::
Settings
;
use
crate
::
settings
::
Settings
;
use
crate
::{
connection
::
Connection
,
data
};
use
crate
::{
connection
::
Connection
,
data
};
use
netlink_sys
::{
protocols
::
NETLINK_ROUTE
,
Socket
,
TokioSocket
};
use
netlink_sys
::{
Socket
,
TokioSocket
,
protocols
::
NETLINK_ROUTE
};
use
std
::
collections
::
BTreeMap
;
use
std
::
collections
::
BTreeMap
;
use
std
::
os
::
unix
::
io
::{
AsRawFd
,
FromRawFd
};
use
std
::
os
::
unix
::
io
::{
AsRawFd
,
FromRawFd
};
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment