mirror of
https://github.com/kernelkit/infix.git
synced 2026-07-22 01:13:00 +02:00
Merge pull request #1422 from kernelkit/container-fixes
Container and Coverity fixes
This commit is contained in:
@@ -167,8 +167,8 @@ APIs.
|
||||
[0]: https://www.kernel.org
|
||||
[1]: https://buildroot.org/ "Buildroot Homepage"
|
||||
[2]: https://www.sysrepo.org/ "Sysrepo Homepage"
|
||||
[3]: https://kernelkit.org/infix/latest/cli/introduction/
|
||||
[4]: https://kernelkit.org/infix/
|
||||
[3]: https://www.kernelkit.org/infix/latest/cli/introduction/
|
||||
[4]: https://www.kernelkit.org/infix/
|
||||
[5]: https://github.com/kernelkit/infix/releases
|
||||
[Latest Build]: https://github.com/kernelkit/infix/releases/tag/latest "Latest build"
|
||||
[License]: https://en.wikipedia.org/wiki/GPL_license
|
||||
|
||||
@@ -262,8 +262,8 @@ make aarch64
|
||||
./utils/mkimage.sh -odt emmc bananapi-bpi-r3
|
||||
```
|
||||
|
||||
[0]: https://kernelkit.org/posts/flashing-sdcard/
|
||||
[1]: https://kernelkit.org/infix/latest/
|
||||
[0]: https://www.kernelkit.org/posts/flashing-sdcard/
|
||||
[1]: https://www.kernelkit.org/infix/latest/
|
||||
[2]: https://github.com/kernelkit/infix/releases/download/latest-boot/infix-bpi-r3-sdcard.img
|
||||
[3]: https://github.com/kernelkit/infix/releases/download/latest-boot/infix-bpi-r3-emmc.img
|
||||
[4]: https://github.com/kernelkit/infix/releases/download/latest-boot/bpi-r3-emmc-boot-2025.01-latest.tar.gz
|
||||
|
||||
@@ -312,13 +312,13 @@ While capable of basic routing tasks, be aware of limitations:
|
||||
For applications requiring multiple ports or high performance, consider
|
||||
dedicated networking hardware like the [Banana Pi R3][12].
|
||||
|
||||
[0]: https://kernelkit.org/posts/flashing-sdcard/
|
||||
[1]: https://kernelkit.org/infix/latest/
|
||||
[0]: https://www.kernelkit.org/posts/flashing-sdcard/
|
||||
[1]: https://www.kernelkit.org/infix/latest/
|
||||
[2]: https://github.com/kernelkit/infix/releases/download/latest-boot/infix-rpi64-sdcard.img
|
||||
[3]: https://kernelkit.org/infix/latest/container/#content-mounts
|
||||
[4]: https://kernelkit.org/infix/latest/scripting-restconf/
|
||||
[3]: https://www.kernelkit.org/infix/latest/container/#content-mounts
|
||||
[4]: https://www.kernelkit.org/infix/latest/scripting-restconf/
|
||||
[8]: https://github.com/kernelkit/infix/releases/tag/latest-boot
|
||||
[9]: https://kernelkit.org/infix/latest/networking/#wifi
|
||||
[9]: https://www.kernelkit.org/infix/latest/networking/#wifi
|
||||
[10]: https://www.raspberrypi.com/products/raspberry-pi-touch-display/
|
||||
[11]: https://www.raspberrypi.com/documentation/
|
||||
[12]: https://kernelkit.org/infix/latest/hardware/#banana-pi-bpi-r3
|
||||
[12]: https://www.kernelkit.org/infix/latest/hardware/#banana-pi-bpi-r3
|
||||
|
||||
@@ -112,5 +112,5 @@ Connect a USB-to-serial adapter to the board's debug UART header.
|
||||
> [!WARNING]
|
||||
> Use only 3.3V serial adapters.
|
||||
|
||||
[0]: https://kernelkit.org/posts/flashing-sdcard/
|
||||
[0]: https://www.kernelkit.org/posts/flashing-sdcard/
|
||||
[1]: https://www.microchip.com/en-us/development-tool/EV21H18A
|
||||
|
||||
@@ -91,5 +91,5 @@ Serial settings: 115200 8N1
|
||||
> [!WARNING]
|
||||
> Use only 3.3V serial adapters. 5V adapters will damage your Raspberry Pi!
|
||||
|
||||
[0]: https://kernelkit.org/posts/flashing-sdcard/
|
||||
[0]: https://www.kernelkit.org/posts/flashing-sdcard/
|
||||
[1]: https://www.raspberrypi.com/products/raspberry-pi-2-model-b/
|
||||
|
||||
@@ -12,7 +12,7 @@ cat <<EOF >"${gns3a}"
|
||||
"category": "router",
|
||||
"description": "${ARTIFACT} development appliance",
|
||||
"vendor_name": "Kernelkit",
|
||||
"vendor_url": "https://kernelkit.org",
|
||||
"vendor_url": "https://www.kernelkit.org",
|
||||
"product_name": "${ARTIFACT} devel",
|
||||
"registry_version": 6,
|
||||
"status": "experimental",
|
||||
|
||||
@@ -50,7 +50,7 @@ The default credentials for the demo builds is
|
||||
Password:
|
||||
.-------.
|
||||
| . . | Infix OS — Immutable.Friendly.Secure
|
||||
|-. v .-| https://kernelkit.org
|
||||
|-. v .-| https://www.kernelkit.org
|
||||
'-'---'-'
|
||||
|
||||
Run the command 'cli' for interactive OAM
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
.-------.
|
||||
| . . | Infix OS — Immutable.Friendly.Secure
|
||||
|-. v .-| https://kernelkit.org
|
||||
|-. v .-| https://www.kernelkit.org
|
||||
'-'---'-'
|
||||
|
||||
@@ -23,7 +23,8 @@ dir=""
|
||||
all=""
|
||||
env=""
|
||||
port=""
|
||||
force=
|
||||
force=${force:-}
|
||||
reset_volumes=
|
||||
|
||||
# Variable shared across subshells
|
||||
export meta_sha=""
|
||||
@@ -227,7 +228,7 @@ fetch()
|
||||
|
||||
if out=$(eval "$cmd" 2>&1); then
|
||||
log "$file downloaded successfully."
|
||||
if check "$file"; then
|
||||
if [ -n "$force" ] || check "$file"; then
|
||||
echo "$dst"
|
||||
return 0
|
||||
fi
|
||||
@@ -897,6 +898,9 @@ while [ "$1" != "" ]; do
|
||||
shift
|
||||
restart=$1
|
||||
;;
|
||||
-R | --reset-volumes)
|
||||
reset_volumes=true
|
||||
;;
|
||||
-s | --simple)
|
||||
simple=true
|
||||
;;
|
||||
@@ -1108,7 +1112,8 @@ case $cmd in
|
||||
# Remove the old image if it's not used by any other containers
|
||||
if [ -n "$old_image_id" ]; then
|
||||
# Check if the old image is still in use by any containers
|
||||
if ! podman ps -a --format '{{.ImageID}}' | grep -q "^${old_image_id}$"; then
|
||||
old_image_id=${old_image_id:0:12}
|
||||
if ! podman ps -a --format '{{.ImageID}}' | grep -q "^${old_image_id}"; then
|
||||
log "Removing old image $old_image_id"
|
||||
podman rmi "$old_image_id" 2>/dev/null || true
|
||||
else
|
||||
@@ -1250,8 +1255,22 @@ case $cmd in
|
||||
container stop "$name"
|
||||
echo "done"
|
||||
|
||||
# If --reset-volumes requested, delete named volumes so they re-initialize from new image
|
||||
if [ -n "$reset_volumes" ]; then
|
||||
printf ">> Resetting named volumes (all configuration will be lost): "
|
||||
grep -oE -- '-v [^ ]+' "$script" | awk '{print $2}' | cut -d: -f1 | \
|
||||
while read -r vol_name; do
|
||||
if podman volume exists "$vol_name" 2>/dev/null; then
|
||||
printf "%s " "$vol_name"
|
||||
log "Removing volume $vol_name"
|
||||
podman volume rm -f "$vol_name" >/dev/null || true
|
||||
fi
|
||||
done
|
||||
echo "done"
|
||||
fi
|
||||
|
||||
# Set force flag to ensure fresh pull/fetch of image
|
||||
force="-f"
|
||||
export force="-f"
|
||||
|
||||
# For remote images, force re-pull
|
||||
case "$img" in
|
||||
@@ -1273,14 +1292,17 @@ case $cmd in
|
||||
# Recreate container by running the script
|
||||
echo ">> Recreating container ..."
|
||||
if ! "$script"; then
|
||||
force=
|
||||
echo ">> Failed recreating container $name"
|
||||
exit 1
|
||||
fi
|
||||
force=
|
||||
|
||||
# Remove the old image if it's not used by any other containers
|
||||
if [ -n "$old_image_id" ]; then
|
||||
# Check if the old image is still in use by any containers
|
||||
if ! podman ps -a --format '{{.ImageID}}' | grep -q "^${old_image_id}$"; then
|
||||
old_image_id=${old_image_id:0:12}
|
||||
if ! podman ps -a --format '{{.ImageID}}' | grep -q "^${old_image_id}"; then
|
||||
log "Removing old image $old_image_id"
|
||||
podman rmi "$old_image_id" 2>/dev/null || true
|
||||
else
|
||||
|
||||
@@ -143,10 +143,10 @@ BR2_PACKAGE_MARVELL_CN9130_CRB=y
|
||||
BR2_PACKAGE_MARVELL_ESPRESSOBIN=y
|
||||
BR2_PACKAGE_RASPBERRYPI_RPI64=y
|
||||
BR2_PACKAGE_STYX_DCP_SC_28P=y
|
||||
INFIX_VENDOR_HOME="https://kernelkit.org"
|
||||
INFIX_VENDOR_HOME="https://www.kernelkit.org"
|
||||
INFIX_DESC="Infix is an immutable, friendly, and secure operating system that turns any ARM or x86 device into a powerful, manageable network appliance. Deploy on anything from $35 Raspberry Pi boards to enterprise switches as routers, IoT gateways, or edge devices. Infix models Linux networking features using YANG so you can manage your devices using NETCONF/RESTCONF APIs and focus on your business logic running in isolated containers."
|
||||
INFIX_HOME="https://github.com/kernelkit/infix/"
|
||||
INFIX_DOC="https://kernelkit.org/infix/"
|
||||
INFIX_DOC="https://www.kernelkit.org/infix/"
|
||||
INFIX_SUPPORT="mailto:kernelkit@googlegroups.com"
|
||||
BR2_PACKAGE_FEATURE_GPS=y
|
||||
BR2_PACKAGE_FEATURE_WIFI_MEDIATEK=y
|
||||
|
||||
@@ -121,10 +121,10 @@ BR2_PACKAGE_MARVELL_CN9130_CRB=y
|
||||
BR2_PACKAGE_MARVELL_ESPRESSOBIN=y
|
||||
BR2_PACKAGE_RASPBERRYPI_RPI64=y
|
||||
BR2_PACKAGE_STYX_DCP_SC_28P=y
|
||||
INFIX_VENDOR_HOME="https://kernelkit.org"
|
||||
INFIX_VENDOR_HOME="https://www.kernelkit.org"
|
||||
INFIX_DESC="Infix is an immutable, friendly, and secure operating system that turns any ARM or x86 device into a powerful, manageable network appliance. Deploy on anything from $35 Raspberry Pi boards to enterprise switches as routers, IoT gateways, or edge devices. Infix models Linux networking features using YANG so you can manage your devices using NETCONF/RESTCONF APIs and focus on your business logic running in isolated containers."
|
||||
INFIX_HOME="https://github.com/kernelkit/infix/"
|
||||
INFIX_DOC="https://kernelkit.org/infix/"
|
||||
INFIX_DOC="https://www.kernelkit.org/infix/"
|
||||
INFIX_SUPPORT="mailto:kernelkit@googlegroups.com"
|
||||
BR2_PACKAGE_FEATURE_GPS=y
|
||||
BR2_PACKAGE_CONFD=y
|
||||
|
||||
@@ -139,10 +139,10 @@ BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS_FDT_ADD_PUBKEY=y
|
||||
BR2_PACKAGE_MICROCHIP_SAMA7G54_EK=y
|
||||
BR2_PACKAGE_RASPBERRYPI_RPI2=y
|
||||
INFIX_VENDOR_HOME="https://kernelkit.org"
|
||||
INFIX_VENDOR_HOME="https://www.kernelkit.org"
|
||||
INFIX_DESC="Infix is an immutable, friendly, and secure operating system that turns any ARM or x86 device into a powerful, manageable network appliance. Deploy on anything from $35 Raspberry Pi boards to enterprise switches as routers, IoT gateways, or edge devices. Infix models Linux networking features using YANG so you can manage your devices using NETCONF/RESTCONF APIs and focus on your business logic running in isolated containers."
|
||||
INFIX_HOME="https://github.com/kernelkit/infix/"
|
||||
INFIX_DOC="https://kernelkit.org/infix/"
|
||||
INFIX_DOC="https://www.kernelkit.org/infix/"
|
||||
INFIX_SUPPORT="mailto:kernelkit@googlegroups.com"
|
||||
BR2_PACKAGE_FEATURE_GPS=y
|
||||
BR2_PACKAGE_FEATURE_WIFI_MEDIATEK=y
|
||||
|
||||
@@ -121,10 +121,10 @@ BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS_FDT_ADD_PUBKEY=y
|
||||
BR2_PACKAGE_MICROCHIP_SAMA7G54_EK=y
|
||||
BR2_PACKAGE_RASPBERRYPI_RPI2=y
|
||||
INFIX_VENDOR_HOME="https://kernelkit.org"
|
||||
INFIX_VENDOR_HOME="https://www.kernelkit.org"
|
||||
INFIX_DESC="Infix is an immutable, friendly, and secure operating system that turns any ARM or x86 device into a powerful, manageable network appliance. Deploy on anything from $35 Raspberry Pi boards to enterprise switches as routers, IoT gateways, or edge devices. Infix models Linux networking features using YANG so you can manage your devices using NETCONF/RESTCONF APIs and focus on your business logic running in isolated containers."
|
||||
INFIX_HOME="https://github.com/kernelkit/infix/"
|
||||
INFIX_DOC="https://kernelkit.org/infix/"
|
||||
INFIX_DOC="https://www.kernelkit.org/infix/"
|
||||
INFIX_SUPPORT="mailto:kernelkit@googlegroups.com"
|
||||
BR2_PACKAGE_FEATURE_GPS=y
|
||||
BR2_PACKAGE_CONFD=y
|
||||
|
||||
@@ -170,10 +170,10 @@ BR2_PACKAGE_HOST_BMAP_TOOLS=y
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS_FDT_ADD_PUBKEY=y
|
||||
INFIX_VENDOR_HOME="https://kernelkit.org"
|
||||
INFIX_VENDOR_HOME="https://www.kernelkit.org"
|
||||
INFIX_DESC="Infix is an immutable, friendly, and secure operating system that turns any ARM or x86 device into a powerful, manageable network appliance. Deploy on anything from $35 Raspberry Pi boards to enterprise switches as routers, IoT gateways, or edge devices. Infix models Linux networking features using YANG so you can manage your devices using NETCONF/RESTCONF APIs and focus on your business logic running in isolated containers."
|
||||
INFIX_HOME="https://github.com/kernelkit/infix/"
|
||||
INFIX_DOC="https://kernelkit.org/infix/"
|
||||
INFIX_DOC="https://www.kernelkit.org/infix/"
|
||||
INFIX_SUPPORT="mailto:kernelkit@googlegroups.com"
|
||||
BR2_PACKAGE_FEATURE_GPS=y
|
||||
BR2_PACKAGE_FEATURE_WIFI=y
|
||||
|
||||
@@ -142,10 +142,10 @@ BR2_PACKAGE_HOST_MTOOLS=y
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS_FDT_ADD_PUBKEY=y
|
||||
INFIX_VENDOR_HOME="https://kernelkit.org"
|
||||
INFIX_VENDOR_HOME="https://www.kernelkit.org"
|
||||
INFIX_DESC="Infix is an immutable, friendly, and secure operating system that turns any ARM or x86 device into a powerful, manageable network appliance. Deploy on anything from $35 Raspberry Pi boards to enterprise switches as routers, IoT gateways, or edge devices. Infix models Linux networking features using YANG so you can manage your devices using NETCONF/RESTCONF APIs and focus on your business logic running in isolated containers."
|
||||
INFIX_HOME="https://github.com/kernelkit/infix/"
|
||||
INFIX_DOC="https://kernelkit.org/infix/"
|
||||
INFIX_DOC="https://www.kernelkit.org/infix/"
|
||||
INFIX_SUPPORT="mailto:kernelkit@googlegroups.com"
|
||||
BR2_PACKAGE_FEATURE_GPS=y
|
||||
BR2_PACKAGE_FEATURE_WIFI=y
|
||||
|
||||
@@ -120,10 +120,10 @@ BR2_PACKAGE_HOST_MTOOLS=y
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SUPPORT=y
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS_FIT_SIGNATURE_SUPPORT=y
|
||||
BR2_PACKAGE_HOST_UBOOT_TOOLS_FDT_ADD_PUBKEY=y
|
||||
INFIX_VENDOR_HOME="https://kernelkit.org"
|
||||
INFIX_VENDOR_HOME="https://www.kernelkit.org"
|
||||
INFIX_DESC="Infix is an immutable, friendly, and secure operating system that turns any ARM or x86 device into a powerful, manageable network appliance. Deploy on anything from $35 Raspberry Pi boards to enterprise switches as routers, IoT gateways, or edge devices. Infix models Linux networking features using YANG so you can manage your devices using NETCONF/RESTCONF APIs and focus on your business logic running in isolated containers."
|
||||
INFIX_HOME="https://github.com/kernelkit/infix/"
|
||||
INFIX_DOC="https://kernelkit.org/infix/"
|
||||
INFIX_DOC="https://www.kernelkit.org/infix/"
|
||||
INFIX_SUPPORT="mailto:kernelkit@googlegroups.com"
|
||||
BR2_PACKAGE_FEATURE_GPS=y
|
||||
BR2_PACKAGE_CONFD=y
|
||||
|
||||
+13
-8
@@ -3,25 +3,29 @@ Change Log
|
||||
|
||||
All notable changes to the project are documented in this file.
|
||||
|
||||
[v26.02.0][UNRELEASED] -
|
||||
[v26.02.0][] - 2026-03-01
|
||||
-------------------------
|
||||
|
||||
> [!NOTE]
|
||||
> The blog and User Guide have a new address: <https://www.kernelkit.org>
|
||||
|
||||
### Changes
|
||||
|
||||
- Upgrade Linux kernel to 6.18.15 (LTS)
|
||||
- Upgrade Buildroot to 2025.02.11 (LTS)
|
||||
- Upgrade FRR to 10.5.1
|
||||
- Add support for Microchip SAMA7G54-EK Evaluation Kit, Arm Cortex-A7
|
||||
- Add GPS/GNSS receiver support with NTP reference clock integration
|
||||
- Add support for [Microchip SAMA7G54][SAMA7G54-EK] Evaluation Kit, Arm Cortex-A7
|
||||
- Add support for [Banana Pi R3 Mini][BPI-R3-MINI], a 2 port router with 2 WiFi chip,
|
||||
uses the same bootloader as BPI-R3 (eMMC-version)
|
||||
- Add GPS/GNSS receiver support with NTP reference clock integration
|
||||
- Add `reset-volumes` option to `container upgrade foo` command
|
||||
|
||||
### Fixes
|
||||
|
||||
N/A
|
||||
- Fix CLI `copy` command problem to copy to scp/sftp destinations
|
||||
|
||||
[BPI-R3-MINI]: https://wiki.banana-pi.org/Banana_Pi_BPI-R3_Mini
|
||||
|
||||
[SAMA7G54-EK]: https://www.microchip.com/en-us/development-tool/ev21h18a
|
||||
|
||||
[v26.01.0][] - 2026-02-03
|
||||
-------------------------
|
||||
@@ -106,7 +110,7 @@ Noteworthy changes and additions in this release are marked below in bold text.
|
||||
- Prevent MOTD from showing on non-shell user login attempts
|
||||
- Fix mDNS reflector.
|
||||
|
||||
[wifi]: https://kernelkit.org/infix/latest/wifi/
|
||||
[wifi]: https://www.kernelkit.org/infix/latest/wifi/
|
||||
[sd card image]: https://github.com/kernelkit/infix/releases/download/latest-boot/infix-rpi64-sdcard.img
|
||||
|
||||
|
||||
@@ -724,7 +728,7 @@ renamed to ease maintenance, more info below.
|
||||
not supported (yet) in Infix, issue #709
|
||||
- The default builds now include the curiOS nftables container image,
|
||||
which can be used for advanced firewall setups. For an introduction
|
||||
see <https://kernelkit.org/posts/firewall-container/>
|
||||
see <https://www.kernelkit.org/posts/firewall-container/>
|
||||
|
||||
### Fixes
|
||||
|
||||
@@ -1927,7 +1931,8 @@ Supported YANG models in addition to those used by sysrepo and netopeer:
|
||||
- N/A
|
||||
|
||||
[buildroot]: https://buildroot.org/
|
||||
[UNRELEASED]: https://github.com/kernelkit/infix/compare/v26.01.0...HEAD
|
||||
[UNRELEASED]: https://github.com/kernelkit/infix/compare/v26.02.0...HEAD
|
||||
[v26.02.0]: https://github.com/kernelkit/infix/compare/v26.01.0...v26.02.0
|
||||
[v26.01.0]: https://github.com/kernelkit/infix/compare/v25.11.0...v26.01.0
|
||||
[v25.11.0]: https://github.com/kernelkit/infix/compare/v25.10.0...v25.11.0
|
||||
[v25.10.0]: https://github.com/kernelkit/infix/compare/v25.09.0...v26.10.0
|
||||
|
||||
+2
-2
@@ -295,7 +295,7 @@ linux-pc:# ssh admin@infix-c0-ff-ee.local
|
||||
(admin@infix-c0-ff-ee.local) Password:
|
||||
.-------.
|
||||
| . . | Infix OS — Immutable.Friendly.Secure
|
||||
|-. v .-| https://kernelkit.org
|
||||
|-. v .-| https://www.kernelkit.org
|
||||
'-'---'-
|
||||
|
||||
Run the command 'cli' for interactive OAM
|
||||
@@ -335,7 +335,7 @@ linux-pc:# ssh admin@infix.local
|
||||
(admin@infix.local) Password:
|
||||
.-------.
|
||||
| . . | Infix OS — Immutable.Friendly.Secure
|
||||
|-. v .-| https://kernelkit.org
|
||||
|-. v .-| https://www.kernelkit.org
|
||||
'-'---'-
|
||||
|
||||
Run the command 'cli' for interactive OAM
|
||||
|
||||
+1
-1
@@ -87,7 +87,7 @@ example login: <b>admin</b>
|
||||
Password:
|
||||
.-------.
|
||||
| . . | Infix OS — Immutable.Friendly.Secure
|
||||
|-. v .-| https://kernelkit.org
|
||||
|-. v .-| https://www.kernelkit.org
|
||||
'-'---'-'
|
||||
|
||||
Run the command 'cli' for interactive OAM
|
||||
|
||||
@@ -336,7 +336,7 @@ It should now be possible to access the switch from the PC via SSH (or NETCONF).
|
||||
admin@fe80::0053:00ff:fe06:1101%eth1's password:
|
||||
.-------.
|
||||
| . . | Infix OS — Immutable.Friendly.Secure
|
||||
|-. v .-| https://kernelkit.org
|
||||
|-. v .-| https://www.kernelkit.org
|
||||
'-'---'-'
|
||||
|
||||
Run the command 'cli' for interactive OAM
|
||||
|
||||
+1
-1
@@ -88,7 +88,7 @@ Warning: Permanently added 'fe80::ff:fe00:0%eth0' (ED25519) to the list of known
|
||||
admin@fe80::ff:fe00:0%eth0's password: *****
|
||||
.-------.
|
||||
| . . | Infix OS — Immutable.Friendly.Secure
|
||||
|-. v .-| https://kernelkit.org
|
||||
|-. v .-| https://www.kernelkit.org
|
||||
'-'---'-'
|
||||
|
||||
Run the command 'cli' for interactive OAM
|
||||
|
||||
+1
-1
@@ -152,7 +152,7 @@ infix-00-00-00 login: admin
|
||||
Password:
|
||||
.-------.
|
||||
| . . | Infix OS — Immutable.Friendly.Secure
|
||||
|-. v .-| https://kernelkit.org
|
||||
|-. v .-| https://www.kernelkit.org
|
||||
'-'---'-'
|
||||
|
||||
Run the command 'cli' for interactive OAM
|
||||
|
||||
+1
-1
@@ -170,7 +170,7 @@ example login: <b>admin</b>
|
||||
Password:
|
||||
.-------.
|
||||
| . . | Infix OS — Immutable.Friendly.Secure
|
||||
|-. v .-| https://kernelkit.org
|
||||
|-. v .-| https://www.kernelkit.org
|
||||
'-'---'-'
|
||||
|
||||
Run the command 'cli' for interactive OAM
|
||||
|
||||
+1
-1
@@ -170,6 +170,6 @@ plugins:
|
||||
|
||||
extra:
|
||||
generator: false
|
||||
homepage: https://kernelkit.org/
|
||||
homepage: https://www.kernelkit.org/
|
||||
version:
|
||||
provider: mike
|
||||
|
||||
+4
-3
@@ -466,7 +466,7 @@ static int curl(char *op, const char *path, const char *uri)
|
||||
{
|
||||
char *argv[10] = { "curl", "-L", NULL };
|
||||
int err = 1, i = 2;
|
||||
int path_i, uri_i, user_i = 0;
|
||||
int path_i, uri_i = 0, user_i = 0;
|
||||
|
||||
argv[i++] = op;
|
||||
|
||||
@@ -492,7 +492,8 @@ static int curl(char *op, const char *path, const char *uri)
|
||||
|
||||
out:
|
||||
free(argv[path_i]);
|
||||
free(argv[uri_i]);
|
||||
if (uri_i)
|
||||
free(argv[uri_i]);
|
||||
if (user_i)
|
||||
free(argv[user_i]);
|
||||
return err;
|
||||
@@ -752,7 +753,7 @@ static int copy(const char *src, const char *dst)
|
||||
* meaningful name instead: the datastore's on-disk filename, or the
|
||||
* source file's own basename.
|
||||
*/
|
||||
if (is_ssh_uri(dst) && dst[strlen(dst) - 1] == '/') {
|
||||
if (dst && is_ssh_uri(dst) && dst[strlen(dst) - 1] == '/') {
|
||||
const char *bn, *slash;
|
||||
|
||||
if (srcds && srcds->path) {
|
||||
|
||||
@@ -144,7 +144,7 @@ static void add(const char *ifname, struct lyd_node *cfg)
|
||||
|
||||
fprintf(fp, "# Generated by Infix confd\n");
|
||||
fprintf(fp, "metric=%s\n", metric);
|
||||
fprintf(fp, "service <!> name:dhcp-client :%s <net/%s/running> \\\n"
|
||||
fprintf(fp, "service <!pid/netd> name:dhcp-client :%s <net/%s/running> \\\n"
|
||||
" [2345] udhcpc -f -p /run/dhcp-client-%s.pid -t 3 -T 5 -A 30 %s -S -R \\\n"
|
||||
" %s%s \\\n"
|
||||
" -i %s %s %s \\\n"
|
||||
|
||||
+11
-12
@@ -695,18 +695,17 @@ int hardware_change(sr_session_ctx_t *session, struct lyd_node *config, struct l
|
||||
wifi_find_interfaces_on_radio(interfaces_config, name,
|
||||
&wifi_iface_list, &wifi_iface_count);
|
||||
|
||||
|
||||
if (!wifi_iface_count)
|
||||
continue;
|
||||
|
||||
/* Generate AP config (hostapd) for all APs on this radio */
|
||||
rc = wifi_gen_aps_on_radio(name, interfaces_config, cwifi_radio, config);
|
||||
if (rc != SR_ERR_OK)
|
||||
ERROR("Failed to generate AP config for radio %s", name);
|
||||
/* Free the interface list */
|
||||
free(wifi_iface_list);
|
||||
wifi_iface_list = NULL;
|
||||
wifi_iface_count = 0;
|
||||
if (wifi_iface_list) {
|
||||
if (wifi_iface_count) {
|
||||
/* Generate AP config (hostapd) for all APs on this radio */
|
||||
rc = wifi_gen_aps_on_radio(name, interfaces_config, cwifi_radio, config);
|
||||
if (rc != SR_ERR_OK)
|
||||
ERROR("Failed to generate AP config for radio %s", name);
|
||||
}
|
||||
free(wifi_iface_list);
|
||||
wifi_iface_list = NULL;
|
||||
wifi_iface_count = 0;
|
||||
}
|
||||
} else if (!strcmp(class, "infix-hardware:gps")) {
|
||||
if (event != SR_EV_DONE)
|
||||
continue;
|
||||
|
||||
@@ -458,7 +458,8 @@ static void frr_daemons_write(int ospfd, int ripd, int bfdd)
|
||||
fp);
|
||||
|
||||
fclose(fp);
|
||||
rename(next, FRR_DAEMONS);
|
||||
if (rename(next, FRR_DAEMONS))
|
||||
ERROR("Failed to rename %s to %s: %m", next, FRR_DAEMONS);
|
||||
}
|
||||
|
||||
int routing_change(sr_session_ctx_t *session, struct lyd_node *config, struct lyd_node *diff, sr_event_t event, struct confd *confd)
|
||||
@@ -519,7 +520,6 @@ int routing_change(sr_session_ctx_t *session, struct lyd_node *config, struct ly
|
||||
num = parse_rip(session, lydx_get_child(cplane, "rip"), fp);
|
||||
if (num > 0) {
|
||||
touch(RIPD_SIGNAL_NEXT);
|
||||
ripd_enabled = 1;
|
||||
netd_enabled = 1;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -178,9 +178,15 @@
|
||||
</COMMAND>
|
||||
|
||||
<COMMAND name="upgrade" help="Upgrade image of a container (writable layer is lost!)">
|
||||
<PARAM name="name" ptype="/CONTAINERS" help="Container name" />
|
||||
<PARAM name="name" ptype="/CONTAINERSa" help="Container name" />
|
||||
<SWITCH name="optional" min="0" max="1">
|
||||
<COMMAND name="reset-volumes" help="Delete named volumes, re-initialize from new image (all config lost!)" />
|
||||
</SWITCH>
|
||||
<ACTION sym="script" out="tty" interrupt="true">
|
||||
doas container upgrade $KLISH_PARAM_name
|
||||
if env | grep -q 'reset-volumes' >/dev/null; then
|
||||
opt="-R"
|
||||
fi
|
||||
doas container $opt upgrade $KLISH_PARAM_name
|
||||
</ACTION>
|
||||
</COMMAND>
|
||||
</COMMAND>
|
||||
|
||||
@@ -461,7 +461,7 @@ echo "Public: $pub"
|
||||
<ACTION sym="printl">peer</ACTION>
|
||||
</COMPL>
|
||||
</PARAM>
|
||||
<PARAM name="peer_addr" ptype="/STRING" help="Peer IP address" min="0" max="1"/>
|
||||
<PARAM name="peer" ptype="/STRING" help="Peer IP address" min="0" max="1"/>
|
||||
<SWITCH name="optional" min="0">
|
||||
<COMMAND name="brief" help="Show brief output" mode="switch"/>
|
||||
</SWITCH>
|
||||
@@ -471,7 +471,7 @@ echo "Public: $pub"
|
||||
BRIEF_ARG="brief"
|
||||
fi
|
||||
# Pass subcommand, optional peer address, and brief flag
|
||||
show bfd ${KLISH_PARAM_subcommand:+"$KLISH_PARAM_subcommand"} ${KLISH_PARAM_peer_addr:+"$KLISH_PARAM_peer_addr"} ${BRIEF_ARG:+"$BRIEF_ARG"} |pager
|
||||
show bfd ${KLISH_PARAM_subcommand:+"$KLISH_PARAM_subcommand"} ${KLISH_PARAM_peer:+"$KLISH_PARAM_peer"} ${BRIEF_ARG:+"$BRIEF_ARG"} |pager
|
||||
</ACTION>
|
||||
</COMMAND>
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ IMAGE_ID="infix-x86_64"
|
||||
ARCHITECTURE="x86_64"
|
||||
HOME_URL=https://github.com/kernelkit/infix/
|
||||
VENDOR_NAME="KernelKit"
|
||||
VENDOR_HOME="https://kernelkit.org"
|
||||
DOCUMENTATION_URL="https://kernelkit.org/infix/"
|
||||
VENDOR_HOME="https://www.kernelkit.org"
|
||||
DOCUMENTATION_URL="https://www.kernelkit.org/infix/"
|
||||
SUPPORT_URL="mailto:kernelkit@googlegroups.com"
|
||||
INFIX_DESC="Infix is an immutable, friendly, and secure operating system that turns any ARM or x86 device into a powerful, manageable network appliance. Deploy on anything from 5 Raspberry Pi boards to enterprise switches as routers, IoT gateways, or edge devices. Infix models Linux networking features using YANG so you can manage your devices using NETCONF/RESTCONF APIs and focus on your business logic running in isolated containers."
|
||||
|
||||
Reference in New Issue
Block a user