Skip to content

Commit

Permalink
Sync upstream up to 20250126
Browse files Browse the repository at this point in the history
Signed-off-by: GitHub Actions <[email protected]>
  • Loading branch information
actions-user committed Jan 25, 2025
1 parent 7ffa82e commit bed5567
Show file tree
Hide file tree
Showing 6 changed files with 85 additions and 29 deletions.
32 changes: 18 additions & 14 deletions einat-ebpf/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,9 +6,9 @@ include $(TOPDIR)/rules.mk

PKG_NAME:=einat-ebpf
PKG_UPSTREAM_VERSION:=0.1.5
PKG_UPSTREAM_GITHASH:=a82259a97da1cb7e61412ecd8276fc6e7be80cc5
PKG_UPSTREAM_GITHASH:=
PKG_VERSION:=$(PKG_UPSTREAM_VERSION)$(if $(PKG_UPSTREAM_GITHASH),~$(call version_abbrev,$(PKG_UPSTREAM_GITHASH)))
PKG_RELEASE:=3
PKG_RELEASE:=2

ifeq ($(PKG_UPSTREAM_GITHASH),)
PKG_SOURCE_URL:=https://codeload.github.com/EHfive/einat-ebpf/tar.gz/refs/tags/v$(PKG_UPSTREAM_VERSION)?
Expand All @@ -19,9 +19,9 @@ else
PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/EHfive/einat-ebpf.git
PKG_SOURCE_VERSION:=$(PKG_UPSTREAM_GITHASH)
PKG_MIRROR_HASH:=6cc83cb1fb80896bb4c3d364d88e6009de0f05cf77373f1f18b1181057b6eff5
PKG_MIRROR_HASH:=05ccebb3fb2dde30c7fc35953ee86efa6796745bda18cbc85534c2a268992443

PKG_SOURCE:=$(PKG_NAME)-$(PKG_SOURCE_VERSION).tar.gz
PKG_SOURCE:=$(PKG_NAME)-$(PKG_UPSTREAM_VERSION)-$(PKG_SOURCE_VERSION).tar.gz
endif

PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_UPSTREAM_VERSION)
Expand All @@ -41,17 +41,30 @@ PKG_CONFIG_DEPENDS+= \
CONFIG_EINAT_EBPF_BINDGEN \
CONFIG_EINAT_EBPF_STATIC \

RUST_PKG_FEATURES:=$(subst $(space),$(comma),$(strip \
$(if $(CONFIG_EINAT_EBPF_IPV6),ipv6) \
$(if $(CONFIG_EINAT_EBPF_BACKEND_LIBBPF),libbpf) \
$(if $(CONFIG_EINAT_EBPF_BINDGEN),bindgen) \
$(if $(CONFIG_EINAT_EBPF_STATIC),static) \
))

#export EINAT_BPF_CFLAGS="-I/usr/include/aarch64-linux-gnu"

include $(INCLUDE_DIR)/bpf.mk
include $(INCLUDE_DIR)/package.mk
include $(TOPDIR)/feeds/packages/lang/rust/rust-package.mk

# Don't ignore Cargo.lock
Build/Compile:=$(call Build/Compile/Cargo,,--locked)

# The LLVM_PATH var is required so that einat's build script finds llvm-strip
TARGET_PATH_PKG:=$(LLVM_PATH):$(TARGET_PATH_PKG)

# Platform-specific features
# $(TOPDIR)/feeds/packages/lang/rust/rust-values.mk
# RUST_ARCH_DEPENDS:=@(aarch64||arm||i386||i686||mips||mipsel||mips64||mips64el||mipsel||powerpc64||riscv64||x86_64)
EINAT_EBPF_RUST_ARCH_DEPENDS:=@(aarch64||arm||i386||i686||powerpc64||riscv64||x86_64) # Architectures other than x86_64 and aarch64 have not been tested.

#
ifeq ($(ARCH),arm)
CONFIG_EINAT_EBPF_BINDGEN:=y
else ifeq ($(ARCH),i386)
Expand Down Expand Up @@ -111,15 +124,6 @@ define Package/$(PKG_NAME)/config
endmenu
endef

RUST_PKG_FEATURES:=$(subst $(space),$(comma),$(strip \
$(if $(CONFIG_EINAT_EBPF_IPV6),ipv6) \
$(if $(CONFIG_EINAT_EBPF_BACKEND_LIBBPF),libbpf) \
$(if $(CONFIG_EINAT_EBPF_BINDGEN),bindgen) \
$(if $(CONFIG_EINAT_EBPF_STATIC),static) \
))

#export EINAT_BPF_CFLAGS="-I/usr/include/aarch64-linux-gnu"

define Package/$(PKG_NAME)/conffiles
/etc/config/einat
endef
Expand Down
32 changes: 21 additions & 11 deletions luci-app-einat/htdocs/luci-static/resources/view/einat.js
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
'require network';
'require tools.widgets as widgets';

var conf = 'einat';
var instance = 'einat';
const conf = 'einat';
const instance = 'einat';

const callServiceList = rpc.declare({
object: 'service',
Expand All @@ -25,10 +25,16 @@ const callRcInit = rpc.declare({
params: ['name', 'action']
});

const callGetFeatures = rpc.declare({
object: 'luci.einat',
method: 'get_features',
expect: { '': {} }
});

function getServiceStatus() {
return L.resolveDefault(callServiceList(conf), {})
.then(function (res) {
var isrunning = false;
.then((res) => {
let isrunning = false;
try {
isrunning = res[conf]['instances'][instance]['running'];
} catch (e) { }
Expand All @@ -52,13 +58,14 @@ return view.extend({
return Promise.all([
getServiceStatus(),
L.resolveDefault(fs.stat('/usr/bin/einat'), null),
callGetFeatures(),
uci.load('einat')
]);
},

poll_status(nodes, stat) {
var isRunning = stat[0],
view = nodes.querySelector('#service_status');
const isRunning = stat[0];
let view = nodes.querySelector('#service_status');

if (isRunning) {
view.innerHTML = "<span style=\"color:green;font-weight:bold\">" + instance + " - " + _("SERVER RUNNING") + "</span>";
Expand All @@ -69,16 +76,17 @@ return view.extend({
},

render(res) {
var isRunning = res[0],
has_einat = res[1] ? res[1].path : null
const isRunning = res[0];
const has_einat = res[1] ? res[1].path : null;
const features = res[2];

let m, s, o;

m = new form.Map('einat', _('einat-ebpf'), _('eBPF-based Endpoint-Independent NAT'));

s = m.section(form.NamedSection, '_status');
s.anonymous = true;
s.render = function (section_id) {
s.render = function(section_id) {
return E('div', { class: 'cbi-section' }, [
E('div', { id: 'service_status' }, _('Collecting data ...'))
]);
Expand Down Expand Up @@ -113,8 +121,10 @@ return view.extend({

o = s.option(form.ListValue, 'bpf_loader', _('BPF loading backend'));
o.value('', _('Default'));
o.value('aya', _('aya'));
o.value('libbpf', _('libbpf'));
if (features.features.includes('aya'))
o.value('aya', _('aya'));
if (features.features.includes('libbpf'))
o.value('libbpf', _('libbpf'));

o = s.option(form.Flag, 'nat44', _('NAT44'));
o.default = o.disabled;
Expand Down
3 changes: 2 additions & 1 deletion luci-app-einat/root/usr/share/rpcd/acl.d/luci-app-einat.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
"/etc/init.d/einat reload": [ "exec" ]
},
"ubus": {
"service": [ "list" ]
"service": [ "list" ],
"luci.einat": [ "*" ]
},
"uci": ["einat"]
},
Expand Down
34 changes: 34 additions & 0 deletions luci-app-einat/root/usr/share/rpcd/ucode/luci.einat
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
#!/usr/bin/ucode

'use strict';

import { access, popen } from 'fs';

const methods = {
get_features: {
call: function() {
let features = {};

const fd = popen('/usr/bin/einat -v');
if (fd) {
for (let line = fd.read('line'); length(line); line = fd.read('line')) {
let ver = match(trim(line), /version: (\S+)/);
if (ver)
features.version = ver[1];
let feats = match(trim(line), /features: (\S+)/);
if (feats)
features.features = split(feats[1], ',');
let build_feats = match(trim(line), /build_features: (\S+)/);
if (build_feats)
features.build_features = split(build_feats[1], ',');
}

fd.close();
}

return features;
}
}
};

return { 'luci.einat': methods };
4 changes: 2 additions & 2 deletions openssh/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=openssh
PKG_REALVERSION:=9.9p1
PKG_VERSION:=9.9_p1
PKG_RELEASE:=1
PKG_RELEASE:=2

PKG_SOURCE:=$(PKG_NAME)-$(PKG_REALVERSION).tar.gz
PKG_SOURCE_URL:=https://cdn.openbsd.org/pub/OpenBSD/OpenSSH/portable/ \
Expand Down Expand Up @@ -184,7 +184,7 @@ CONFIGURE_ARGS += \
--with$(if $(CONFIG_OPENSSL_ENGINE),,out)-ssl-engine \
--with$(if $(CONFIG_OPENSSH_LIBFIDO2),,out)-security-key-builtin \
--with-cflags-after=-fzero-call-used-regs=skip

ifeq ($(BUILD_VARIANT),with-pam)
CONFIGURE_ARGS += \
--with-pam
Expand Down
9 changes: 8 additions & 1 deletion openssh/files/sshd.init
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,13 @@ start_service() {
do
# check for keys
key=/etc/ssh/ssh_host_${type}_key
[ -f $key ] && {
[ -x /usr/bin/ssh-keygen ] && {
if ! /usr/bin/ssh-keygen -y -f $key > /dev/null 2>&1; then
rm -rf $key
fi
}
}
[ ! -f $key ] && {
# generate missing keys
[ -x /usr/bin/ssh-keygen ] && {
Expand Down Expand Up @@ -41,7 +48,7 @@ shutdown() {
stop

# kill active clients
for pid in $(pidof sshd)
for pid in $(pidof sshd-session)
do
[ "$pid" = "$$" ] && continue
[ -e "/proc/$pid/stat" ] && kill $pid
Expand Down

0 comments on commit bed5567

Please sign in to comment.