Blame SOURCES/BZ_1926941-remove-the-varlink-support.patch

15fe26
From 6655f63d3c8d5a551925a43b1fbf16a153a5c4cc Mon Sep 17 00:00:00 2001
15fe26
From: Fernando Fernandez Mancera <ffmancera@riseup.net>
15fe26
Date: Tue, 16 Feb 2021 12:06:18 +0100
15fe26
Subject: [PATCH] varlink: remove the varlink support
15fe26
15fe26
There is no real user for varlink support on nispor. This patch is
15fe26
removing the varlink support and all the documentation related to it.
15fe26
15fe26
Signed-off-by: Fernando Fernandez Mancera <ffmancera@riseup.net>
15fe26
---
15fe26
 Cargo.toml                         |   1 -
15fe26
 DEVEL.md                           |   5 -
15fe26
 Makefile                           |  35 +---
15fe26
 README.md                          |  14 --
15fe26
 src/varlink/Cargo.toml             |  17 --
15fe26
 src/varlink/info.nispor.varlink    | 263 -----------------------------
15fe26
 src/varlink/info_nispor.rs         | 228 -------------------------
15fe26
 src/varlink/npd.rs                 |  51 ------
15fe26
 src/varlink/systemd/nispor.service |  10 --
15fe26
 src/varlink/systemd/nispor.socket  |  10 --
15fe26
 10 files changed, 5 insertions(+), 629 deletions(-)
15fe26
 delete mode 100644 src/varlink/Cargo.toml
15fe26
 delete mode 100644 src/varlink/info.nispor.varlink
15fe26
 delete mode 100644 src/varlink/info_nispor.rs
15fe26
 delete mode 100644 src/varlink/npd.rs
15fe26
 delete mode 100644 src/varlink/systemd/nispor.service
15fe26
 delete mode 100644 src/varlink/systemd/nispor.socket
15fe26
15fe26
diff --git a/Cargo.toml b/Cargo.toml
15fe26
index b03c824..59a55be 100644
15fe26
--- a/Cargo.toml
15fe26
+++ b/Cargo.toml
15fe26
@@ -1,6 +1,5 @@
15fe26
 [workspace]
15fe26
 members = [
15fe26
-    "src/varlink",
15fe26
     "src/lib",
15fe26
     "src/cli",
15fe26
     "src/clib",
15fe26
diff --git a/DEVEL.md b/DEVEL.md
15fe26
index bd96064..0ebcc1f 100644
15fe26
--- a/DEVEL.md
15fe26
+++ b/DEVEL.md
15fe26
@@ -9,7 +9,6 @@
15fe26
 * [Design](#design)
15fe26
     * [Rust module](#rust-module)
15fe26
     * [Command line tool](#command-line-tool)
15fe26
-    * [Varlink service](#varlink-service)
15fe26
     * [Python binding](#python-binding)
15fe26
     * [Check list for creating PR:](#check-list-for-creating-pr)
15fe26
 * [Release workflow](#release-workflow)
15fe26
@@ -43,10 +42,6 @@ Path: `src/lib`
15fe26
 
15fe26
 Path: `src/cli`
15fe26
 
15fe26
-### Varlink service
15fe26
-
15fe26
-Path: `src/varlink`
15fe26
-
15fe26
 ### Python binding
15fe26
 
15fe26
 Path: `src/python`
15fe26
diff --git a/Makefile b/Makefile
15fe26
index b628944..2e92906 100644
15fe26
--- a/Makefile
15fe26
+++ b/Makefile
15fe26
@@ -2,9 +2,6 @@ include ./Makefile.inc
15fe26
 
15fe26
 RUST_DEBUG_BIN_DIR=./target/debug
15fe26
 RUST_RELEASE_BIN_DIR=./target/release
15fe26
-VARLINK_SRV_EXEC=npd
15fe26
-VARLINK_SRV_EXEC_DEBUG=$(RUST_DEBUG_BIN_DIR)/$(VARLINK_SRV_EXEC)
15fe26
-VARLINK_SRV_EXEC_RELEASE=$(RUST_RELEASE_BIN_DIR)/$(VARLINK_SRV_EXEC)
15fe26
 CLI_EXEC=npc
15fe26
 CLI_EXEC_DEBUG=$(RUST_DEBUG_BIN_DIR)/$(CLI_EXEC)
15fe26
 CLIB_HEADER=nispor.h
15fe26
@@ -18,8 +15,6 @@ CLI_EXEC_RELEASE=$(RUST_RELEASE_BIN_DIR)/$(CLI_EXEC)
15fe26
 SOCKET_FILE=/run/nispor/nispor.so
15fe26
 SOCKET_DIR=$(dir $(SOCKET_FILE))
15fe26
 SOCKET_ADDR=unix:$(SOCKET_FILE)
15fe26
-SYSTEMD_SERVICE_FILE=src/varlink/systemd/nispor.service
15fe26
-SYSTEMD_SOCKET_FILE=src/varlink/systemd/nispor.socket
15fe26
 PREFIX ?= /usr/local
15fe26
 
15fe26
 CPU_BITS = $(shell getconf LONG_BIT)
15fe26
@@ -34,8 +29,7 @@ PKG_CONFIG_LIBDIR ?= $(LIBDIR)/pkgconfig
15fe26
 
15fe26
 SKIP_PYTHON_INSTALL ?=0
15fe26
 
15fe26
-all: $(VARLINK_SRV_EXEC_DEBUG) $(CLI_EXEC_DEBUG) \
15fe26
-    $(VARLINK_SRV_EXEC_RELEASE) $(CLI_EXEC_RELEASE)
15fe26
+all: $(CLI_EXEC_DEBUG) $(CLI_EXEC_RELEASE)
15fe26
 
15fe26
 SYSTEMD_SYS_UNIT_DIR ?= $(shell \
15fe26
 	pkg-config --variable=systemdsystemunitdir systemd)
15fe26
@@ -46,16 +40,16 @@ PYTHON3_SITE_DIR ?=$(shell \
15fe26
 		 print(get_python_lib())")
15fe26
 
15fe26
 # Always invoke cargo build for debug
15fe26
-.PHONY: $(VARLINK_SRV_EXEC_DEBUG) $(CLI_EXEC_DEBUG)
15fe26
+.PHONY: $(CLI_EXEC_DEBUG)
15fe26
 
15fe26
 debug: $(CLI_EXEC_DEBUG)
15fe26
 	$(CLI_EXEC_DEBUG) $(ARGS)
15fe26
 
15fe26
 
15fe26
-$(CLI_EXEC_DEBUG) $(VARLINK_SRV_EXEC_DEBUG):
15fe26
+$(CLI_EXEC_DEBUG):
15fe26
 	cargo build --all
15fe26
 
15fe26
-$(CLI_EXEC_RELEASE) $(VARLINK_SRV_EXEC_RELEASE) $(CLIB_SO_DEV_RELEASE):
15fe26
+$(CLI_EXEC_RELEASE) $(CLIB_SO_DEV_RELEASE):
15fe26
 	cargo build --all --release
15fe26
 
15fe26
 check:
15fe26
@@ -65,30 +59,13 @@ check:
15fe26
 	fi
15fe26
 	make check -C test/clib
15fe26
 
15fe26
-srv: $(VARLINK_SRV_EXEC_DEBUG)
15fe26
-	echo $(SOCKET_DIR)
15fe26
-	if [ ! -d $(SOCKET_DIR) ]; then \
15fe26
-		sudo mkdir $(SOCKET_DIR); \
15fe26
-		sudo chmod 0777 $(SOCKET_DIR); \
15fe26
-	fi
15fe26
-	$(VARLINK_SRV_EXEC_DEBUG) $(SOCKET_ADDR)
15fe26
-
15fe26
-cli:
15fe26
-	varlink call $(SOCKET_ADDR)/info.nispor.Get
15fe26
-
15fe26
 clean:
15fe26
 	cargo clean
15fe26
 	make clean -C test/clib
15fe26
 
15fe26
-install: $(VARLINK_SRV_EXEC_RELEASE) $(CLI_EXEC_RELEASE)
15fe26
-	install -p -v -D -m755 $(VARLINK_SRV_EXEC_RELEASE) \
15fe26
-		$(DESTDIR)$(PREFIX)/bin/$(VARLINK_SRV_EXEC)
15fe26
+install: $(CLI_EXEC_RELEASE)
15fe26
 	install -p -v -D -m755 $(CLI_EXEC_RELEASE) \
15fe26
 		$(DESTDIR)$(PREFIX)/bin/$(CLI_EXEC)
15fe26
-	install -p -v -D -m644 $(SYSTEMD_SOCKET_FILE) \
15fe26
-		$(DESTDIR)$(SYSTEMD_SYS_UNIT_DIR)/nispor.socket
15fe26
-	install -p -D -m644 $(SYSTEMD_SERVICE_FILE) \
15fe26
-		$(DESTDIR)$(SYSTEMD_SYS_UNIT_DIR)/nispor.service
15fe26
 	install -p -D -m755 $(CLIB_SO_DEV_RELEASE) \
15fe26
 		$(DESTDIR)$(LIBDIR)/$(CLIB_SO_FULL)
15fe26
 	ln -sfv $(CLIB_SO_FULL) $(DESTDIR)$(LIBDIR)/$(CLIB_SO_MAN)
15fe26
@@ -120,9 +97,7 @@ install: $(VARLINK_SRV_EXEC_RELEASE) $(CLI_EXEC_RELEASE)
15fe26
 
15fe26
 
15fe26
 uninstall:
15fe26
-	- rm -fv $(DESTDIR)$(PREFIX)/bin/$(VARLINK_SRV_EXEC)
15fe26
 	- rm -fv $(DESTDIR)$(PREFIX)/bin/$(CLI_EXEC)
15fe26
-	- rm -fv $(DESTDIR)$(SYSTEMD_SYS_UNIT_DIR)/nispor*
15fe26
 	- rm -fv $(DESTDIR)$(LIBDIR)/$(CLIB_SO_DEV)
15fe26
 	- rm -fv $(DESTDIR)$(LIBDIR)/$(CLIB_SO_MAN)
15fe26
 	- rm -fv $(DESTDIR)$(LIBDIR)/$(CLIB_SO_MIN)
15fe26
diff --git a/README.md b/README.md
15fe26
index 4a50e5e..c1eda2c 100644
15fe26
--- a/README.md
15fe26
+++ b/README.md
15fe26
@@ -5,7 +5,6 @@ Currently providing:
15fe26
  * Rust crate
15fe26
  * Python binding
15fe26
  * C binding
15fe26
- * Varlink interface -- `npd`
15fe26
  * Command line tool -- `npc`
15fe26
 
15fe26
 ## Install
15fe26
@@ -35,19 +34,6 @@ npc bond99
15fe26
 npc route
15fe26
 ```
15fe26
 
15fe26
-### Varlink service
15fe26
-
15fe26
-```bash
15fe26
-systemctl start nispor.socket
15fe26
-```
15fe26
-
15fe26
-### Varlink client
15fe26
-
15fe26
-```bash
15fe26
-# Please install `libvarlink-util` pacakge beforehand
15fe26
-varlink call unix:/run/nispor/nispor.so/info.nispor.Get
15fe26
-```
15fe26
-
15fe26
 ## Supported features
15fe26
  * IPv4/IPv6 address
15fe26
  * Bond
15fe26
diff --git a/src/varlink/Cargo.toml b/src/varlink/Cargo.toml
15fe26
deleted file mode 100644
15fe26
index c8775d4..0000000
15fe26
--- a/src/varlink/Cargo.toml
15fe26
+++ /dev/null
15fe26
@@ -1,17 +0,0 @@
15fe26
-[package]
15fe26
-name = "npd"
15fe26
-version = "1.0.1"
15fe26
-authors = ["Gris Ge <cnfourt@gmail.com>"]
15fe26
-edition = "2018"
15fe26
-
15fe26
-[[bin]]
15fe26
-name = "npd"
15fe26
-path = "npd.rs"
15fe26
-
15fe26
-[dependencies]
15fe26
-varlink = "11"
15fe26
-serde = "1.0"
15fe26
-serde_derive = "1.0"
15fe26
-serde_json = "1.0"
15fe26
-nispor = { path = "../lib" }
15fe26
-libc = "0.2.71"
15fe26
diff --git a/src/varlink/info.nispor.varlink b/src/varlink/info.nispor.varlink
15fe26
deleted file mode 100644
15fe26
index cc9b7d4..0000000
15fe26
--- a/src/varlink/info.nispor.varlink
15fe26
+++ /dev/null
15fe26
@@ -1,263 +0,0 @@
15fe26
-interface info.nispor
15fe26
-
15fe26
-type BondInfo (
15fe26
-    subordinates: []string,
15fe26
-    mode: []string,
15fe26
-    options: [string]string
15fe26
-)
15fe26
-
15fe26
-type BridgeInfo (
15fe26
-    stp_state: (disabled, kernel_stp, user_stp, unknown),
15fe26
-    hello_time: int,
15fe26
-    forward_delay: int,
15fe26
-    max_age: int,
15fe26
-    priority: int,
15fe26
-    subordinates: []string,
15fe26
-    ageing_time: int,
15fe26
-    bridge_id: string,
15fe26
-    group_fwd_mask: int,
15fe26
-    root_id: string,
15fe26
-    root_port: int,
15fe26
-    root_path_cost: int,
15fe26
-    topology_change: bool,
15fe26
-    topology_change_detected: bool,
15fe26
-    hello_timer: int,
15fe26
-    tcn_timer: int,
15fe26
-    topology_change_timer: int,
15fe26
-    multicast_router: (disabled, temp_query, perm, temp, unknown),
15fe26
-    multicast_snooping: bool,
15fe26
-    multicast_query_use_ifaddr: bool,
15fe26
-    multicast_querier: bool,
15fe26
-    multicast_stats_enabled: bool,
15fe26
-    multicast_hash_elasticity: int,
15fe26
-    multicast_hash_max: int,
15fe26
-    multicast_last_member_count: int,
15fe26
-    multicast_startup_query_count: int,
15fe26
-    multicast_last_member_interval: int,
15fe26
-    multicast_membership_interval: int,
15fe26
-    multicast_querier_interval: int,
15fe26
-    multicast_query_interval: int,
15fe26
-    multicast_query_response_interval: int,
15fe26
-    multicast_startup_query_interval: int,
15fe26
-    multicast_igmp_version: int,
15fe26
-    multicast_mld_version: int,
15fe26
-    gc_timer: int,
15fe26
-    group_addr: string,
15fe26
-    nf_call_iptables: bool,
15fe26
-    nf_call_ip6tables: bool,
15fe26
-    nf_call_arptables: bool,
15fe26
-    vlan_filtering: bool,
15fe26
-    vlan_protocol: (802.1q, 802.1ad),
15fe26
-    ?default_pvid: int,
15fe26
-)
15fe26
-
15fe26
-type BridgeVlanEntry (
15fe26
-    ?vid: int,
15fe26
-    ?vid_range: []int,
15fe26
-    is_pvid: bool,
15fe26
-    is_egress_untagged: bool,
15fe26
-)
15fe26
-
15fe26
-type BridgePortInfo (
15fe26
-    stp_state: (disabled, listening, learning, forwarding, blocking, unknown),
15fe26
-    stp_priority: int,
15fe26
-    stp_path_cost: int,
15fe26
-    hairpin_mode: bool,
15fe26
-    bpdu_guard: bool,
15fe26
-    root_block: bool,
15fe26
-    multicast_fast_leave: bool,
15fe26
-    learning: bool,
15fe26
-    unicast_flood: bool,
15fe26
-    proxyarp: bool,
15fe26
-    proxyarp_wifi: bool,
15fe26
-    designated_root: string,
15fe26
-    designated_bridge: string,
15fe26
-    designated_port: int,
15fe26
-    designated_cost: int,
15fe26
-    port_id: string,
15fe26
-    port_no: string,
15fe26
-    change_ack: bool,
15fe26
-    config_pending: bool,
15fe26
-    message_age_timer: int,
15fe26
-    forward_delay_timer: int,
15fe26
-    hold_timer: int,
15fe26
-    multicast_router: (disabled, temp_query, perm, temp, unknown),
15fe26
-    multicast_flood: bool,
15fe26
-    multicast_to_unicast: bool,
15fe26
-    vlan_tunnel: bool,
15fe26
-    broadcast_flood: bool,
15fe26
-    group_fwd_mask: int,
15fe26
-    neigh_suppress: bool,
15fe26
-    isolated: bool,
15fe26
-    ?backup_port: string,
15fe26
-    ?vlans: []BridgeVlanEntry,
15fe26
-)
15fe26
-
15fe26
-type Ipv4Info (
15fe26
-    addresses: []Ipv4AddrInfo
15fe26
-)
15fe26
-
15fe26
-type Ipv4AddrInfo (
15fe26
-    address: string,
15fe26
-    prefix_len: int,
15fe26
-    ?peer: string,
15fe26
-    valid_lft: string,
15fe26
-    preferred_lft: string
15fe26
-)
15fe26
-
15fe26
-type Ipv6Info (
15fe26
-    addresses: []Ipv6AddrInfo
15fe26
-)
15fe26
-
15fe26
-type Ipv6AddrInfo (
15fe26
-    address: string,
15fe26
-    prefix_len: int,
15fe26
-    valid_lft: string,
15fe26
-    preferred_lft: string
15fe26
-)
15fe26
-
15fe26
-type VlanInfo (
15fe26
-    vlan_id: int,
15fe26
-    protocol: (802.1q, 802.1ad, unknown),
15fe26
-    base_iface: string,
15fe26
-    is_reorder_hdr: bool,
15fe26
-    is_gvrp: bool,
15fe26
-    is_loose_binding: bool,
15fe26
-    is_mvrp: bool,
15fe26
-    is_bridge_binding: bool,
15fe26
-)
15fe26
-
15fe26
-type VfState (
15fe26
-    rx_packets: int,
15fe26
-    tx_packets: int,
15fe26
-    rx_bytes: int,
15fe26
-    tx_bytes: int,
15fe26
-    broadcast: int,
15fe26
-    multicast: int,
15fe26
-    rx_dropped: int,
15fe26
-    tx_dropped: int,
15fe26
-)
15fe26
-
15fe26
-type VfInfo (
15fe26
-    id: int,
15fe26
-    mac: string,
15fe26
-    broadcast: string,
15fe26
-    vlan_id: int,
15fe26
-    qos: int,
15fe26
-    tx_rate: int,
15fe26
-    spoof_check: int,
15fe26
-    link_state: (auto, enable, disable, unknown),
15fe26
-    min_tx_rate: int,
15fe26
-    max_tx_rate: int,
15fe26
-    query_rss: bool,
15fe26
-    state: VfState,
15fe26
-    trust: bool,
15fe26
-    ?ib_node_guid: string,
15fe26
-    ?ib_port_guid: string,
15fe26
-)
15fe26
-
15fe26
-type SriovInfo (
15fe26
-    vfs: []VfInfo,
15fe26
-)
15fe26
-
15fe26
-type TunInfo (
15fe26
-    mode: (tun, tap, unknown),
15fe26
-    pi: bool,
15fe26
-    vnet_hdr: bool,
15fe26
-    multi_queue: bool,
15fe26
-    persist: bool,
15fe26
-    ?owner: int,
15fe26
-    ?group: int,
15fe26
-    ?num_queues: int,
15fe26
-    ?num_disabled_queues: int,
15fe26
-)
15fe26
-
15fe26
-type VethInfo (
15fe26
-    peer: string,
15fe26
-)
15fe26
-
15fe26
-type VxlanInfo (
15fe26
-    remote: string,
15fe26
-    vxlan_id: int,
15fe26
-    base_iface: string,
15fe26
-    local: string,
15fe26
-    ttl: int,
15fe26
-    tos: int,
15fe26
-    learning: bool,
15fe26
-    ageing: int,
15fe26
-    max_address: int,
15fe26
-    src_port_min: int,
15fe26
-    src_port_max: int,
15fe26
-    proxy: bool,
15fe26
-    rsc: bool,
15fe26
-    l2miss: bool,
15fe26
-    l3miss: bool,
15fe26
-    dst_port: int,
15fe26
-    udp_check_sum: bool,
15fe26
-    udp6_zero_check_sum_tx: bool,
15fe26
-    udp6_zero_check_sum_rx: bool,
15fe26
-    remote_check_sum_tx: bool,
15fe26
-    remote_check_sum_rx: bool,
15fe26
-    gbp: bool,
15fe26
-    remote_check_sum_no_partial: bool,
15fe26
-    collect_metadata: bool,
15fe26
-    label: int,
15fe26
-    gpe: bool,
15fe26
-    ttl_inherit: bool,
15fe26
-    df: int,
15fe26
-)
15fe26
-
15fe26
-type VrfInfo (
15fe26
-    table_id: int,
15fe26
-    subordinates: []string,
15fe26
-)
15fe26
-
15fe26
-type VrfSubordinateInfo (
15fe26
-    table_id: int,
15fe26
-)
15fe26
-
15fe26
-type MacVlanInfo (
15fe26
-    base_iface: string,
15fe26
-    mode: (private, vepa, bridge, passthru, source, unknown),
15fe26
-    flags: int,
15fe26
-    ?allowed_mac_addresses: []string,
15fe26
-)
15fe26
-
15fe26
-type MacVtapInfo (
15fe26
-    base_iface: string,
15fe26
-    mode: (private, vepa, bridge, passthru, source, unknown),
15fe26
-    flags: int,
15fe26
-    ?allowed_mac_addresses: []string,
15fe26
-)
15fe26
-
15fe26
-type Iface (
15fe26
-    name: string,
15fe26
-    iface_type: string,
15fe26
-    state: (Up, Down, Unknown),
15fe26
-    mtu: int,
15fe26
-    ?bond: BondInfo,
15fe26
-    ?bond_subordinate: [string]string,
15fe26
-    ?bridge: BridgeInfo,
15fe26
-    ?bridge_port: BridgePortInfo,
15fe26
-    ?vlan: VlanInfo,
15fe26
-    ?vxlan: VxlanInfo,
15fe26
-    ?sriov: SriovInfo,
15fe26
-    ?tun: TunInfo,
15fe26
-    ?veth: VethInfo,
15fe26
-    ?vrf: VrfInfo,
15fe26
-    ?vrf_subordinate: VrfSubordinateInfo,
15fe26
-    ?mac_vlan: MacVlanInfo,
15fe26
-    ?mac_vtap: MacVtapInfo,
15fe26
-    ?controller: string,
15fe26
-    ?controller_type: (bond, unknown),
15fe26
-    ?ipv4: Ipv4Info,
15fe26
-    ?ipv6: Ipv6Info
15fe26
-)
15fe26
-
15fe26
-type NetState (
15fe26
-    ifaces: [string]Iface
15fe26
-)
15fe26
-
15fe26
-method Get() -> (net_state: NetState)
15fe26
-
15fe26
-error InternalError(msg: string)
15fe26
diff --git a/src/varlink/info_nispor.rs b/src/varlink/info_nispor.rs
15fe26
deleted file mode 100644
15fe26
index 1d614b5..0000000
15fe26
--- a/src/varlink/info_nispor.rs
15fe26
+++ /dev/null
15fe26
@@ -1,228 +0,0 @@
15fe26
-#![doc = "This file was automatically generated by the varlink rust generator"]
15fe26
-#![allow(non_camel_case_types)]
15fe26
-#![allow(non_snake_case)]
15fe26
-use nispor::NetState;
15fe26
-use serde_derive::{Deserialize, Serialize};
15fe26
-use serde_json;
15fe26
-use std::io::BufRead;
15fe26
-use std::sync::{Arc, RwLock};
15fe26
-use varlink::{self, CallTrait};
15fe26
-
15fe26
-#[allow(dead_code)]
15fe26
-#[derive(Clone, PartialEq, Debug)]
15fe26
-pub enum ErrorKind {
15fe26
-    Varlink_Error,
15fe26
-    VarlinkReply_Error,
15fe26
-    InternalError(Option<InternalError_Args>),
15fe26
-}
15fe26
-impl ::std::fmt::Display for ErrorKind {
15fe26
-    fn fmt(&self, f: &mut ::std::fmt::Formatter) -> ::std::fmt::Result {
15fe26
-        match self {
15fe26
-            ErrorKind::Varlink_Error => write!(f, "Varlink Error"),
15fe26
-            ErrorKind::VarlinkReply_Error => write!(f, "Varlink error reply"),
15fe26
-            ErrorKind::InternalError(v) => {
15fe26
-                write!(f, "info.nispor.InternalError: {:#?}", v)
15fe26
-            }
15fe26
-        }
15fe26
-    }
15fe26
-}
15fe26
-pub struct Error(
15fe26
-    pub ErrorKind,
15fe26
-    pub Option<Box<dyn std::error::Error + 'static + Send + Sync>>,
15fe26
-    pub Option<&'static str>,
15fe26
-);
15fe26
-impl Error {
15fe26
-    #[allow(dead_code)]
15fe26
-    pub fn kind(&self) -> &ErrorKind {
15fe26
-        &self.0
15fe26
-    }
15fe26
-}
15fe26
-impl From<ErrorKind> for Error {
15fe26
-    fn from(e: ErrorKind) -> Self {
15fe26
-        Error(e, None, None)
15fe26
-    }
15fe26
-}
15fe26
-impl std::error::Error for Error {
15fe26
-    fn source(&self) -> Option<&(dyn std::error::Error + 'static)> {
15fe26
-        self.1
15fe26
-            .as_ref()
15fe26
-            .map(|e| e.as_ref() as &(dyn std::error::Error + 'static))
15fe26
-    }
15fe26
-}
15fe26
-impl std::fmt::Display for Error {
15fe26
-    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15fe26
-        std::fmt::Display::fmt(&self.0, f)
15fe26
-    }
15fe26
-}
15fe26
-impl std::fmt::Debug for Error {
15fe26
-    fn fmt(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result {
15fe26
-        use std::error::Error as StdError;
15fe26
-        if let Some(ref o) = self.2 {
15fe26
-            std::fmt::Display::fmt(o, f)?;
15fe26
-        }
15fe26
-        std::fmt::Debug::fmt(&self.0, f)?;
15fe26
-        if let Some(e) = self.source() {
15fe26
-            std::fmt::Display::fmt("\nCaused by:\n", f)?;
15fe26
-            std::fmt::Debug::fmt(&e, f)?;
15fe26
-        }
15fe26
-        Ok(())
15fe26
-    }
15fe26
-}
15fe26
-#[allow(dead_code)]
15fe26
-pub type Result<T> = std::result::Result<T, Error>;
15fe26
-impl From<varlink::Error> for Error {
15fe26
-    fn from(e: varlink::Error) -> Self {
15fe26
-        match e.kind() {
15fe26
-            varlink::ErrorKind::VarlinkErrorReply(r) => Error(
15fe26
-                ErrorKind::from(r),
15fe26
-                Some(Box::from(e)),
15fe26
-                Some(concat!(file!(), ":", line!(), ": ")),
15fe26
-            ),
15fe26
-            _ => Error(
15fe26
-                ErrorKind::Varlink_Error,
15fe26
-                Some(Box::from(e)),
15fe26
-                Some(concat!(file!(), ":", line!(), ": ")),
15fe26
-            ),
15fe26
-        }
15fe26
-    }
15fe26
-}
15fe26
-#[allow(dead_code)]
15fe26
-impl Error {
15fe26
-    pub fn source_varlink_kind(&self) -> Option<&varlink::ErrorKind> {
15fe26
-        use std::error::Error as StdError;
15fe26
-        let mut s: &dyn StdError = self;
15fe26
-        while let Some(c) = s.source() {
15fe26
-            let k = self
15fe26
-                .source()
15fe26
-                .and_then(|e| e.downcast_ref::<varlink::Error>())
15fe26
-                .and_then(|e| Some(e.kind()));
15fe26
-            if k.is_some() {
15fe26
-                return k;
15fe26
-            }
15fe26
-            s = c;
15fe26
-        }
15fe26
-        None
15fe26
-    }
15fe26
-}
15fe26
-impl From<&varlink::Reply> for ErrorKind {
15fe26
-    #[allow(unused_variables)]
15fe26
-    fn from(e: &varlink::Reply) -> Self {
15fe26
-        match e {
15fe26
-            varlink::Reply {
15fe26
-                error: Some(ref t), ..
15fe26
-            } if t == "info.nispor.InternalError" => match e {
15fe26
-                varlink::Reply {
15fe26
-                    parameters: Some(p),
15fe26
-                    ..
15fe26
-                } => match serde_json::from_value(p.clone()) {
15fe26
-                    Ok(v) => ErrorKind::InternalError(v),
15fe26
-                    Err(_) => ErrorKind::InternalError(None),
15fe26
-                },
15fe26
-                _ => ErrorKind::InternalError(None),
15fe26
-            },
15fe26
-            _ => ErrorKind::VarlinkReply_Error,
15fe26
-        }
15fe26
-    }
15fe26
-}
15fe26
-pub trait VarlinkCallError: varlink::CallTrait {
15fe26
-    fn reply_internal_error(&mut self, r#msg: String) -> varlink::Result<()> {
15fe26
-        self.reply_struct(varlink::Reply::error(
15fe26
-            "info.nispor.InternalError",
15fe26
-            Some(
15fe26
-                serde_json::to_value(InternalError_Args { r#msg })
15fe26
-                    .map_err(varlink::map_context!())?,
15fe26
-            ),
15fe26
-        ))
15fe26
-    }
15fe26
-}
15fe26
-impl<'a> VarlinkCallError for varlink::Call<'a> {}
15fe26
-#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
15fe26
-pub struct InternalError_Args {
15fe26
-    pub r#msg: String,
15fe26
-}
15fe26
-#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
15fe26
-pub struct Get_Reply {
15fe26
-    pub r#net_state: NetState,
15fe26
-}
15fe26
-impl varlink::VarlinkReply for Get_Reply {}
15fe26
-#[derive(Serialize, Deserialize, Debug, PartialEq, Clone)]
15fe26
-pub struct Get_Args {}
15fe26
-pub trait Call_Get: VarlinkCallError {
15fe26
-    fn reply(&mut self, r#net_state: NetState) -> varlink::Result<()> {
15fe26
-        self.reply_struct(Get_Reply { r#net_state }.into())
15fe26
-    }
15fe26
-
15fe26
-    // TODO: Need better stuff
15fe26
-    fn fail(&mut self, msg: &str) -> varlink::Result<()> {
15fe26
-        self.reply_struct(varlink::Reply {
15fe26
-            continues: None,
15fe26
-            error: Some(format!("info.nispor.InternalError: {}", msg).into()),
15fe26
-            parameters: None,
15fe26
-        })
15fe26
-    }
15fe26
-}
15fe26
-impl<'a> Call_Get for varlink::Call<'a> {}
15fe26
-pub trait VarlinkInterface {
15fe26
-    fn get(&self, call: &mut dyn Call_Get) -> varlink::Result<()>;
15fe26
-    fn call_upgraded(
15fe26
-        &self,
15fe26
-        _call: &mut varlink::Call,
15fe26
-        _bufreader: &mut dyn BufRead,
15fe26
-    ) -> varlink::Result<Vec<u8>> {
15fe26
-        Ok(Vec::new())
15fe26
-    }
15fe26
-}
15fe26
-pub trait VarlinkClientInterface {
15fe26
-    fn get(&mut self) -> varlink::MethodCall<Get_Args, Get_Reply, Error>;
15fe26
-}
15fe26
-#[allow(dead_code)]
15fe26
-pub struct VarlinkClient {
15fe26
-    connection: Arc<RwLock<varlink::Connection>>,
15fe26
-}
15fe26
-impl VarlinkClient {
15fe26
-    #[allow(dead_code)]
15fe26
-    pub fn new(connection: Arc<RwLock<varlink::Connection>>) -> Self {
15fe26
-        VarlinkClient { connection }
15fe26
-    }
15fe26
-}
15fe26
-impl VarlinkClientInterface for VarlinkClient {
15fe26
-    fn get(&mut self) -> varlink::MethodCall<Get_Args, Get_Reply, Error> {
15fe26
-        varlink::MethodCall::<Get_Args, Get_Reply, Error>::new(
15fe26
-            self.connection.clone(),
15fe26
-            "info.nispor.Get",
15fe26
-            Get_Args {},
15fe26
-        )
15fe26
-    }
15fe26
-}
15fe26
-#[allow(dead_code)]
15fe26
-pub struct VarlinkInterfaceProxy {
15fe26
-    inner: Box<dyn VarlinkInterface + Send + Sync>,
15fe26
-}
15fe26
-#[allow(dead_code)]
15fe26
-pub fn new(
15fe26
-    inner: Box<dyn VarlinkInterface + Send + Sync>,
15fe26
-) -> VarlinkInterfaceProxy {
15fe26
-    VarlinkInterfaceProxy { inner }
15fe26
-}
15fe26
-impl varlink::Interface for VarlinkInterfaceProxy {
15fe26
-    fn get_description(&self) -> &'static str {
15fe26
-        "interface info.nispor\n\ntype IfaceState (\n    name: string,\n    iface_type: string,\n    state: (UP, DOWN, UNKNOWN),\n    mtu: int\n)\n\ntype NetState (\n    iface_states: [string]IfaceState\n)\n\n\nmethod Get() -> (net_state: NetState)\n\nerror InternalError(msg: string)\n"
15fe26
-    }
15fe26
-    fn get_name(&self) -> &'static str {
15fe26
-        "info.nispor"
15fe26
-    }
15fe26
-    fn call_upgraded(
15fe26
-        &self,
15fe26
-        call: &mut varlink::Call,
15fe26
-        bufreader: &mut dyn BufRead,
15fe26
-    ) -> varlink::Result<Vec<u8>> {
15fe26
-        self.inner.call_upgraded(call, bufreader)
15fe26
-    }
15fe26
-    fn call(&self, call: &mut varlink::Call) -> varlink::Result<()> {
15fe26
-        let req = call.request.unwrap();
15fe26
-        match req.method.as_ref() {
15fe26
-            "info.nispor.Get" => self.inner.get(call as &mut dyn Call_Get),
15fe26
-            m => call.reply_method_not_found(String::from(m)),
15fe26
-        }
15fe26
-    }
15fe26
-}
15fe26
diff --git a/src/varlink/npd.rs b/src/varlink/npd.rs
15fe26
deleted file mode 100644
15fe26
index 49e5d9b..0000000
15fe26
--- a/src/varlink/npd.rs
15fe26
+++ /dev/null
15fe26
@@ -1,51 +0,0 @@
15fe26
-use libc::umask;
15fe26
-use nispor::NetState;
15fe26
-use std::process::exit;
15fe26
-use varlink::{ListenConfig, VarlinkService};
15fe26
-
15fe26
-use crate::info_nispor::*;
15fe26
-
15fe26
-mod info_nispor;
15fe26
-
15fe26
-fn print_usage(program: &str) {
15fe26
-    println!("Usage: {} <varlink_address>", program);
15fe26
-}
15fe26
-
15fe26
-fn main() {
15fe26
-    let args: Vec<_> = std::env::args().collect();
15fe26
-    if args.len() <= 1 {
15fe26
-        print_usage(&args[0]);
15fe26
-        exit(1);
15fe26
-    }
15fe26
-    run_server(&args[1]).unwrap();
15fe26
-    exit(0);
15fe26
-}
15fe26
-
15fe26
-struct MyInfoGrisgeNispor {}
15fe26
-
15fe26
-impl VarlinkInterface for MyInfoGrisgeNispor {
15fe26
-    fn get(&self, call: &mut dyn Call_Get) -> varlink::Result<()> {
15fe26
-        match NetState::retrieve() {
15fe26
-            Ok(s) => call.reply(s),
15fe26
-            Err(e) => call.fail(&e.msg),
15fe26
-        }
15fe26
-    }
15fe26
-}
15fe26
-
15fe26
-fn run_server(address: &str) -> varlink::Result<()> {
15fe26
-    let my_varlink_iface = info_nispor::new(Box::new(MyInfoGrisgeNispor {}));
15fe26
-    let service = VarlinkService::new(
15fe26
-        "info.nispor",
15fe26
-        "Network status query service",
15fe26
-        "0.1",
15fe26
-        "http://nispor.info",
15fe26
-        vec![Box::new(my_varlink_iface)],
15fe26
-    );
15fe26
-    // Make sure the socket file been created with permission 0666.
15fe26
-    let old_umask = unsafe { umask(0o111) };
15fe26
-    varlink::listen(service, &address, &ListenConfig::default())?;
15fe26
-    unsafe {
15fe26
-        umask(old_umask);
15fe26
-    }
15fe26
-    Ok(())
15fe26
-}
15fe26
diff --git a/src/varlink/systemd/nispor.service b/src/varlink/systemd/nispor.service
15fe26
deleted file mode 100644
15fe26
index 134cd88..0000000
15fe26
--- a/src/varlink/systemd/nispor.service
15fe26
+++ /dev/null
15fe26
@@ -1,10 +0,0 @@
15fe26
-[Unit]
15fe26
-Description=Network Inspector(nispor) varlink service
15fe26
-
15fe26
-[Service]
15fe26
-ExecStart=/usr/bin/npd unix:/run/nispor/nispor.so
15fe26
-DynamicUser=yes
15fe26
-RuntimeDirectory=nispor
15fe26
-
15fe26
-[Install]
15fe26
-Also=nispor.socket
15fe26
diff --git a/src/varlink/systemd/nispor.socket b/src/varlink/systemd/nispor.socket
15fe26
deleted file mode 100644
15fe26
index f7d681b..0000000
15fe26
--- a/src/varlink/systemd/nispor.socket
15fe26
+++ /dev/null
15fe26
@@ -1,10 +0,0 @@
15fe26
-[Unit]
15fe26
-Description=Network Inspector(nispor) varlink service
15fe26
-PartOf=nispor.service
15fe26
-
15fe26
-[Socket]
15fe26
-ListenStream=/run/nispor/nispor.so
15fe26
-SocketMode=0666
15fe26
-
15fe26
-[Install]
15fe26
-WantedBy=sockets.target
15fe26
-- 
15fe26
2.29.2
15fe26