update dependencies (#91)

update dependencies and fix #90
This commit is contained in:
quininer
2018-01-08 21:44:35 +08:00
committed by Y. T. CHUNG
parent b42fbad1ad
commit 32d5a2d9e9
8 changed files with 582 additions and 251 deletions

695
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -31,34 +31,34 @@ default = ["sodium"]
sodium = ["libsodium-ffi"]
[dependencies]
log = "0.3"
log = "0.4"
byteorder = "1.1"
rand = "0.3"
rand = "0.4"
time = "0.1"
clap = "2"
env_logger = "0.4"
env_logger = "0.5.0-rc.1"
openssl = "0.9"
libc = "0.2"
futures = "0.1"
tokio-core = "0.1"
tokio-io = "0.1"
lazy_static = "0.2"
lazy_static = "1.0"
serde_json = "1.0"
base64 = "0.6"
base64 = "0.9"
bytes = "0.4"
scoped-tls = "0.1"
ring = "0.11"
md-5 = "0.5"
digest = "0.6"
ring = "0.13.0-alpha"
md-5 = "0.7"
digest = "0.7"
typenum = "1.9"
qrcode = { version = "0.4", default-features = false }
qrcode = { version = "0.5", default-features = false }
subprocess = "0.1"
serde_urlencoded = "0.5"
url = "1.5"
byte_string = "1.0"
libsodium-ffi = { version = "0.1", optional = true }
futures-cpupool = "0.1"
miscreant = { version = "0.2", optional = true }
miscreant = { version = "0.3", optional = true }
[target.'cfg(unix)'.dependencies]
tokio-signal = "0.1"

View File

@@ -15,30 +15,32 @@ extern crate time;
use clap::{App, Arg};
use std::env;
use std::io::{self, Write};
use std::net::SocketAddr;
use env_logger::LogBuilder;
use log::{LogLevelFilter, LogRecord};
use env_logger::Builder;
use env_logger::fmt::Formatter;
use log::{LevelFilter, Record};
use shadowsocks::{Config, ConfigType, ServerAddr, ServerConfig, run_local};
use shadowsocks::plugin::PluginConfig;
fn log_time(without_time: bool, record: &LogRecord) -> String {
fn log_time(fmt: &mut Formatter, without_time: bool, record: &Record) -> io::Result<()> {
if without_time {
format!("[{}] {}", record.level(), record.args())
writeln!(fmt, "[{}] {}", record.level(), record.args())
} else {
format!("[{}][{}] {}", time::now().strftime("%Y-%m-%d][%H:%M:%S.%f").unwrap(), record.level(), record.args())
writeln!(fmt, "[{}][{}] {}", time::now().strftime("%Y-%m-%d][%H:%M:%S.%f").unwrap(), record.level(), record.args())
}
}
fn log_time_module(without_time: bool, record: &LogRecord) -> String {
fn log_time_module(fmt: &mut Formatter, without_time: bool, record: &Record) -> io::Result<()> {
if without_time {
format!("[{}] [{}] {}", record.level(), record.location().module_path(), record.args())
writeln!(fmt, "[{}] [{}] {}", record.level(), record.module_path().unwrap_or("*"), record.args())
} else {
format!("[{}][{}] [{}] {}",
writeln!(fmt, "[{}][{}] [{}] {}",
time::now().strftime("%Y-%m-%d][%H:%M:%S.%f").unwrap(),
record.level(),
record.location().module_path(),
record.module_path().unwrap_or("*"),
record.args())
}
}
@@ -97,8 +99,8 @@ fn main() {
.help("Server address in SIP002 URL"))
.get_matches();
let mut log_builder = LogBuilder::new();
log_builder.filter(None, LogLevelFilter::Info);
let mut log_builder = Builder::new();
log_builder.filter(None, LevelFilter::Info);
let without_time = matches.is_present("LOG_WITHOUT_TIME");
@@ -106,25 +108,25 @@ fn main() {
match debug_level {
0 => {
// Default filter
log_builder.format(move |r| log_time(without_time, r));
log_builder.format(move |fmt, r| log_time(fmt, without_time, r));
}
1 => {
let log_builder = log_builder.format(move |r| log_time_module(without_time, r));
log_builder.filter(Some("sslocal"), LogLevelFilter::Debug);
let log_builder = log_builder.format(move |fmt, r| log_time_module(fmt, without_time, r));
log_builder.filter(Some("sslocal"), LevelFilter::Debug);
}
2 => {
let log_builder = log_builder.format(move |r| log_time_module(without_time, r));
log_builder.filter(Some("sslocal"), LogLevelFilter::Debug)
.filter(Some("shadowsocks"), LogLevelFilter::Debug);
let log_builder = log_builder.format(move |fmt, r| log_time_module(fmt, without_time, r));
log_builder.filter(Some("sslocal"), LevelFilter::Debug)
.filter(Some("shadowsocks"), LevelFilter::Debug);
}
3 => {
let log_builder = log_builder.format(move |r| log_time_module(without_time, r));
log_builder.filter(Some("sslocal"), LogLevelFilter::Trace)
.filter(Some("shadowsocks"), LogLevelFilter::Trace);
let log_builder = log_builder.format(move |fmt, r| log_time_module(fmt, without_time, r));
log_builder.filter(Some("sslocal"), LevelFilter::Trace)
.filter(Some("shadowsocks"), LevelFilter::Trace);
}
_ => {
let log_builder = log_builder.format(move |r| log_time_module(without_time, r));
log_builder.filter(None, LogLevelFilter::Trace);
let log_builder = log_builder.format(move |fmt, r| log_time_module(fmt, without_time, r));
log_builder.filter(None, LevelFilter::Trace);
}
}
@@ -132,7 +134,7 @@ fn main() {
log_builder.parse(&env_conf);
}
log_builder.init().unwrap();
log_builder.init();
let mut has_provided_config = false;

View File

@@ -15,31 +15,33 @@ extern crate shadowsocks;
extern crate time;
use std::env;
use std::io::{self, Write};
use clap::{App, Arg};
use env_logger::LogBuilder;
use log::{LogLevelFilter, LogRecord};
use env_logger::Builder;
use env_logger::fmt::Formatter;
use log::{LevelFilter, Record};
use shadowsocks::{Config, ConfigType, ServerAddr, ServerConfig, run_server};
use shadowsocks::plugin::PluginConfig;
fn log_time(without_time: bool, record: &LogRecord) -> String {
fn log_time(fmt: &mut Formatter, without_time: bool, record: &Record) -> io::Result<()> {
if without_time {
format!("[{}] {}", record.level(), record.args())
writeln!(fmt, "[{}] {}", record.level(), record.args())
} else {
format!("[{}][{}] {}", time::now().strftime("%Y-%m-%d][%H:%M:%S.%f").unwrap(), record.level(), record.args())
writeln!(fmt, "[{}][{}] {}", time::now().strftime("%Y-%m-%d][%H:%M:%S.%f").unwrap(), record.level(), record.args())
}
}
fn log_time_module(without_time: bool, record: &LogRecord) -> String {
fn log_time_module(fmt: &mut Formatter, without_time: bool, record: &Record) -> io::Result<()> {
if without_time {
format!("[{}] [{}] {}", record.level(), record.location().module_path(), record.args())
writeln!(fmt, "[{}] [{}] {}", record.level(), record.module_path().unwrap_or("*"), record.args())
} else {
format!("[{}][{}] [{}] {}",
writeln!(fmt, "[{}][{}] [{}] {}",
time::now().strftime("%Y-%m-%d][%H:%M:%S.%f").unwrap(),
record.level(),
record.location().module_path(),
record.module_path().unwrap_or("*"),
record.args())
}
}
@@ -89,8 +91,8 @@ fn main() {
.help("Disable time in log"))
.get_matches();
let mut log_builder = LogBuilder::new();
log_builder.filter(None, LogLevelFilter::Info);
let mut log_builder = Builder::new();
log_builder.filter(None, LevelFilter::Info);
let without_time = matches.is_present("LOG_WITHOUT_TIME");
@@ -98,25 +100,25 @@ fn main() {
match debug_level {
0 => {
// Default filter
log_builder.format(move |r| log_time(without_time, r));
log_builder.format(move |fmt, r| log_time(fmt, without_time, r));
}
1 => {
let log_builder = log_builder.format(move |r| log_time_module(without_time, r));
log_builder.filter(Some("ssserver"), LogLevelFilter::Debug);
let log_builder = log_builder.format(move |fmt, r| log_time_module(fmt, without_time, r));
log_builder.filter(Some("ssserver"), LevelFilter::Debug);
}
2 => {
let log_builder = log_builder.format(move |r| log_time_module(without_time, r));
log_builder.filter(Some("ssserver"), LogLevelFilter::Debug)
.filter(Some("shadowsocks"), LogLevelFilter::Debug);
let log_builder = log_builder.format(move |fmt, r| log_time_module(fmt, without_time, r));
log_builder.filter(Some("ssserver"), LevelFilter::Debug)
.filter(Some("shadowsocks"), LevelFilter::Debug);
}
3 => {
let log_builder = log_builder.format(move |r| log_time_module(without_time, r));
log_builder.filter(Some("ssserver"), LogLevelFilter::Trace)
.filter(Some("shadowsocks"), LogLevelFilter::Trace);
let log_builder = log_builder.format(move |fmt, r| log_time_module(fmt, without_time, r));
log_builder.filter(Some("ssserver"), LevelFilter::Trace)
.filter(Some("shadowsocks"), LevelFilter::Trace);
}
_ => {
let log_builder = log_builder.format(move |r| log_time_module(without_time, r));
log_builder.filter(None, LogLevelFilter::Trace);
let log_builder = log_builder.format(move |fmt, r| log_time_module(fmt, without_time, r));
log_builder.filter(None, LevelFilter::Trace);
}
}
@@ -124,7 +126,7 @@ fn main() {
log_builder.parse(&env_conf);
}
log_builder.init().unwrap();
log_builder.init();
let mut has_provided_config = false;
let mut config = match matches.value_of("CONFIG") {

View File

@@ -1,8 +1,8 @@
//! Cipher defined with Miscreant
use std::{iter, ptr};
use std::ptr;
use miscreant::{Aes128PmacSiv, Aes256PmacSiv};
use miscreant::aead::{Algorithm, Aes128PmacSiv, Aes256PmacSiv};
use crypto::{AeadDecryptor, AeadEncryptor};
use crypto::{CipherResult, CipherType};
@@ -78,12 +78,12 @@ impl AeadEncryptor for MiscreantCipher {
match self.cipher {
MiscreantCryptoVariant::Aes128(ref mut cipher) => {
cipher.seal_in_place(iter::once(&self.nonce), &mut buf);
cipher.seal_in_place(&self.nonce, b"", &mut buf);
tag.copy_from_slice(&buf[..tag_len]);
output.copy_from_slice(&buf[tag_len..]);
}
MiscreantCryptoVariant::Aes256(ref mut cipher) => {
cipher.seal_in_place(iter::once(&self.nonce), &mut buf);
cipher.seal_in_place(&self.nonce, b"", &mut buf);
tag.copy_from_slice(&buf[..tag_len]);
output.copy_from_slice(&buf[tag_len..]);
}
@@ -100,8 +100,8 @@ impl AeadDecryptor for MiscreantCipher {
buf.put_slice(input);
let result = match self.cipher {
MiscreantCryptoVariant::Aes128(ref mut cipher) => cipher.open_in_place(iter::once(&self.nonce), &mut buf),
MiscreantCryptoVariant::Aes256(ref mut cipher) => cipher.open_in_place(iter::once(&self.nonce), &mut buf),
MiscreantCryptoVariant::Aes128(ref mut cipher) => cipher.open_in_place(&self.nonce, b"", &mut buf),
MiscreantCryptoVariant::Aes256(ref mut cipher) => cipher.open_in_place(&self.nonce, b"", &mut buf),
};
result.map(|buf| {

View File

@@ -83,7 +83,7 @@ extern crate digest;
extern crate miscreant;
#[cfg(feature = "sodium")]
extern crate libsodium_ffi;
extern crate md_5 as md5;
extern crate md5;
extern crate openssl;
extern crate ring;
extern crate bytes;

View File

@@ -54,17 +54,13 @@ impl Socks5TestServer {
}
pub fn run(&self) {
drop(env_logger::init());
let svr_cfg = self.config.clone();
thread::spawn(move || {
drop(env_logger::init());
run_server(svr_cfg).unwrap();
});
let client_cfg = self.config.clone();
thread::spawn(move || {
drop(env_logger::init());
run_local(client_cfg).unwrap();
});

View File

@@ -49,7 +49,6 @@ fn get_client_addr() -> SocketAddr {
fn start_server(bar: Arc<Barrier>) {
thread::spawn(move || {
drop(env_logger::init());
bar.wait();
run_server(get_config()).unwrap();
});
@@ -57,7 +56,6 @@ fn start_server(bar: Arc<Barrier>) {
fn start_local(bar: Arc<Barrier>) {
thread::spawn(move || {
drop(env_logger::init());
bar.wait();
run_local(get_config()).unwrap();
});
@@ -67,8 +65,6 @@ fn start_udp_echo_server(bar: Arc<Barrier>) {
use std::net::UdpSocket;
thread::spawn(move || {
drop(env_logger::init());
let l = UdpSocket::bind(UDP_ECHO_SERVER_ADDR).unwrap();
bar.wait();