403Webshell
Server IP : 217.160.0.212  /  Your IP : 216.73.216.141
Web Server : Apache
System : Linux www 6.18.51-i1-ampere #1196 SMP Fri Sep 11 20:43:55 CEST 2026 aarch64
User : sws1073854427 ( 1073854427)
PHP Version : 8.4.23
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /usr/share/go/src/runtime/internal/wasitest/testdata/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/share/go/src/runtime/internal/wasitest/testdata/tcpecho.go
// Copyright 2023 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

package main

import (
	"errors"
	"net"
	"os"
	"syscall"
)

func main() {
	if err := run(); err != nil {
		println(err)
		os.Exit(1)
	}
}

func run() error {
	l, err := findListener()
	if err != nil {
		return err
	}
	if l == nil {
		return errors.New("no pre-opened sockets available")
	}
	defer l.Close()

	c, err := l.Accept()
	if err != nil {
		return err
	}
	return handleConn(c)
}

func handleConn(c net.Conn) error {
	defer c.Close()

	var buf [128]byte
	n, err := c.Read(buf[:])
	if err != nil {
		return err
	}
	if _, err := c.Write(buf[:n]); err != nil {
		return err
	}
	if err := c.(*net.TCPConn).CloseWrite(); err != nil {
		return err
	}
	return c.Close()
}

func findListener() (net.Listener, error) {
	// We start looking for pre-opened sockets at fd=3 because 0, 1, and 2
	// are reserved for stdio. Pre-opened directors also start at fd=3, so
	// we skip fds that aren't sockets. Once we reach EBADF we know there
	// are no more pre-opens.
	for preopenFd := uintptr(3); ; preopenFd++ {
		f := os.NewFile(preopenFd, "")
		l, err := net.FileListener(f)
		f.Close()

		var se syscall.Errno
		switch errors.As(err, &se); se {
		case syscall.ENOTSOCK:
			continue
		case syscall.EBADF:
			err = nil
		}
		return l, err
	}
}

Youez - 2016 - github.com/yon3zu
LinuXploit