Skip to content

Commit 10ab0cb

Browse files
authored
Merge pull request #39 from CoLearn-Dev/reverse-mode-bugfix
- change user_init_config.toml file location; bugfix
2 parents be7e9cb + 500f5a0 commit 10ab0cb

File tree

6 files changed

+24
-12
lines changed

6 files changed

+24
-12
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,4 @@
33
/.vscode
44
host_token.txt
55
/init_state
6+
user_init_config.toml

Cargo.lock

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "colink-server"
3-
version = "0.2.1"
3+
version = "0.2.2"
44
edition = "2021"
55

66
[dependencies]

src/service/task.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -363,7 +363,7 @@ impl crate::server::MyService {
363363
Err(e) => return Err(Status::internal(format!("{}", e))),
364364
};
365365

366-
let inter_core_reverse_handlers = self.inter_core_reverse_handlers.lock().await;
366+
let mut inter_core_reverse_handlers = self.inter_core_reverse_handlers.lock().await;
367367
if inter_core_reverse_handlers
368368
.contains_key(&(user_id.to_string(), target_user_id.to_string()))
369369
&& !inter_core_reverse_handlers
@@ -400,9 +400,7 @@ impl crate::server::MyService {
400400
}
401401
Ok::<(), Box<dyn std::error::Error + Send + Sync + 'static>>(())
402402
});
403-
self.inter_core_reverse_handlers
404-
.lock()
405-
.await
403+
inter_core_reverse_handlers
406404
.insert((user_id.to_string(), target_user_id.to_string()), handler);
407405
Ok(())
408406
}

src/service/user_init.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,17 @@
11
use super::utils::*;
22
use crate::{colink_proto::*, server::MyService};
3-
use std::{path::Path, sync::Arc};
3+
use std::sync::Arc;
44
use toml::Value;
55

66
pub async fn user_init(
77
service: Arc<MyService>,
88
user_id: &str,
99
user_jwt: &str,
1010
) -> Result<(), Box<dyn std::error::Error + Send + Sync + 'static>> {
11-
let colink_home = service.get_colink_home()?;
12-
let mut path = Path::new(&colink_home).join("user_init_config.toml");
13-
if std::fs::metadata(&path).is_err() {
14-
path = Path::new("user_init_config.template.toml").to_path_buf();
15-
}
11+
let path = match service.find_resource_file("user_init_config.toml") {
12+
Ok(path) => path,
13+
Err(_) => service.find_resource_file("user_init_config.template.toml")?,
14+
};
1615
let toml = match std::fs::read_to_string(&path).unwrap().parse::<Value>() {
1716
Ok(toml) => toml,
1817
Err(err) => Err(err.to_string())?,

src/service/utils.rs

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ use futures_lite::StreamExt;
33
use secp256k1::{ecdsa::Signature, PublicKey, Secp256k1};
44
use sha2::{Digest, Sha256};
55
use std::io::{self, Seek, SeekFrom, Write};
6+
use std::path::{Path, PathBuf};
67
use std::process::Command;
78
use tonic::{
89
metadata::{MetadataMap, MetadataValue},
@@ -264,6 +265,19 @@ impl crate::server::MyService {
264265
};
265266
Ok(colink_home)
266267
}
268+
269+
pub fn find_resource_file(&self, file_name: &str) -> Result<PathBuf, Status> {
270+
let colink_home = self.get_colink_home()?;
271+
let mut path = Path::new(file_name).to_path_buf();
272+
if std::fs::metadata(&path).is_err() {
273+
path = Path::new(&colink_home).join(file_name);
274+
}
275+
if std::fs::metadata(&path).is_ok() {
276+
Ok(path)
277+
} else {
278+
Err(Status::not_found(file_name.to_string()))
279+
}
280+
}
267281
}
268282

269283
pub fn generate_request<T>(jwt: &str, data: T) -> tonic::Request<T> {

0 commit comments

Comments
 (0)