mirror of
https://github.com/cirruslabs/softnet.git
synced 2026-10-22 05:58:03 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e71b32a8dd | ||
|
|
59cd9098e0 | ||
|
|
4ab3cd7e5c |
+8
-5
@@ -23,12 +23,11 @@ task:
|
|||||||
SENTRY_AUTH_TOKEN: ENCRYPTED[!c16a5cf7da5f856b4bc2f21fe8cb7aa2a6c981f851c094ed4d3025fd02ea59a58a86cee8b193a69a1fc20fa217e56ac3!]
|
SENTRY_AUTH_TOKEN: ENCRYPTED[!c16a5cf7da5f856b4bc2f21fe8cb7aa2a6c981f851c094ed4d3025fd02ea59a58a86cee8b193a69a1fc20fa217e56ac3!]
|
||||||
install_rust_script:
|
install_rust_script:
|
||||||
- curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
- curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
|
||||||
install_goreleaser_script:
|
install_script:
|
||||||
- brew install go goreleaser/tap/goreleaser-pro
|
- brew install go goreleaser/tap/goreleaser-pro getsentry/tools/sentry-cli
|
||||||
build_script:
|
build_script:
|
||||||
- cargo build --profile release-with-debug
|
- cargo build --profile release-with-debug
|
||||||
install_sentry_cli_script:
|
release_script: goreleaser
|
||||||
- brew install getsentry/tools/sentry-cli
|
|
||||||
upload_sentry_debug_files_script:
|
upload_sentry_debug_files_script:
|
||||||
- cd target/release-with-debug/
|
- cd target/release-with-debug/
|
||||||
# Generate and upload symbols
|
# Generate and upload symbols
|
||||||
@@ -37,4 +36,8 @@ task:
|
|||||||
# Bundle and upload sources
|
# Bundle and upload sources
|
||||||
- sentry-cli debug-files bundle-sources softnet.dSYM/
|
- sentry-cli debug-files bundle-sources softnet.dSYM/
|
||||||
- sentry-cli debug-files upload -o $SENTRY_ORG -p $SENTRY_PROJECT softnet.src.zip
|
- sentry-cli debug-files upload -o $SENTRY_ORG -p $SENTRY_PROJECT softnet.src.zip
|
||||||
release_script: goreleaser
|
create_sentry_release_script:
|
||||||
|
- export SENTRY_RELEASE="softnet@$CIRRUS_TAG"
|
||||||
|
- sentry-cli releases new $SENTRY_RELEASE
|
||||||
|
- sentry-cli releases set-commits $SENTRY_RELEASE --auto
|
||||||
|
- sentry-cli releases finalize $SENTRY_RELEASE
|
||||||
|
|||||||
+8
-2
@@ -52,8 +52,14 @@ impl Poller {
|
|||||||
self.poller
|
self.poller
|
||||||
.wait(&mut self.events, Some(Duration::from_millis(100)))?;
|
.wait(&mut self.events, Some(Duration::from_millis(100)))?;
|
||||||
|
|
||||||
let vm_readable = self.events.iter().any(|ev| ev.key == EventKey::VM.into());
|
let vm_readable = self
|
||||||
let host_readable = self.events.iter().any(|ev| ev.key == EventKey::Host.into());
|
.events
|
||||||
|
.iter()
|
||||||
|
.any(|ev| ev.key == Into::<usize>::into(EventKey::VM));
|
||||||
|
let host_readable = self
|
||||||
|
.events
|
||||||
|
.iter()
|
||||||
|
.any(|ev| ev.key == Into::<usize>::into(EventKey::Host));
|
||||||
|
|
||||||
Ok((vm_readable, host_readable))
|
Ok((vm_readable, host_readable))
|
||||||
}
|
}
|
||||||
|
|||||||
+15
-4
@@ -16,10 +16,21 @@ impl Proxy {
|
|||||||
self.snoop(frame);
|
self.snoop(frame);
|
||||||
}
|
}
|
||||||
|
|
||||||
self.vm
|
match self.vm.write(frame.as_ref()) {
|
||||||
.write(frame.as_ref())
|
Ok(_) => Ok(()),
|
||||||
.map(|_| ())
|
Err(err) => {
|
||||||
.context("failed to write to the VM")
|
if let Some(libc::ENOBUFS) = err.raw_os_error() {
|
||||||
|
sentry::capture_message(
|
||||||
|
"No buffer space available in VM's socket",
|
||||||
|
sentry::Level::Warning,
|
||||||
|
);
|
||||||
|
|
||||||
|
return Ok(());
|
||||||
|
}
|
||||||
|
|
||||||
|
Err(err).context("failed to write to the VM")
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fn allowed_from_host(&mut self, frame: &EthernetFrame<&[u8]>) -> Option<()> {
|
fn allowed_from_host(&mut self, frame: &EthernetFrame<&[u8]>) -> Option<()> {
|
||||||
|
|||||||
@@ -0,0 +1 @@
|
|||||||
|
nightly
|
||||||
+3
-1
@@ -2,6 +2,7 @@ use anyhow::{anyhow, Context};
|
|||||||
use clap::Parser;
|
use clap::Parser;
|
||||||
use privdrop::PrivDrop;
|
use privdrop::PrivDrop;
|
||||||
use softnet::proxy::Proxy;
|
use softnet::proxy::Proxy;
|
||||||
|
use std::borrow::Cow;
|
||||||
use std::env;
|
use std::env;
|
||||||
use std::os::raw::c_int;
|
use std::os::raw::c_int;
|
||||||
use std::os::unix::io::RawFd;
|
use std::os::unix::io::RawFd;
|
||||||
@@ -54,13 +55,14 @@ fn main() -> ExitCode {
|
|||||||
|
|
||||||
// Initialize Sentry
|
// Initialize Sentry
|
||||||
let _sentry = sentry::init(sentry::ClientOptions {
|
let _sentry = sentry::init(sentry::ClientOptions {
|
||||||
|
release: option_env!("CIRRUS_TAG").map(|tag| { Cow::from(format!("softnet@{tag}")) }),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
});
|
});
|
||||||
|
|
||||||
// Enrich future events with Cirrus CI-specific tags
|
// Enrich future events with Cirrus CI-specific tags
|
||||||
if let Ok(tags) = env::var("CIRRUS_SENTRY_TAGS") {
|
if let Ok(tags) = env::var("CIRRUS_SENTRY_TAGS") {
|
||||||
sentry::configure_scope(|scope| {
|
sentry::configure_scope(|scope| {
|
||||||
for (key, value) in tags.split(",").map(|tag| tag.split_once("=")).flatten() {
|
for (key, value) in tags.split(',').filter_map(|tag| tag.split_once('=')) {
|
||||||
scope.set_tag(key, value);
|
scope.set_tag(key, value);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user