net

package
v1.6.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 9, 2019 License: AGPL-3.0 Imports: 9 Imported by: 0

Documentation

Overview

  • Copyright (c) 2019. Abstrium SAS <team (at) pydio.com>
  • This file is part of Pydio Cells. *
  • Pydio Cells is free software: you can redistribute it and/or modify
  • it under the terms of the GNU Affero General Public License as published by
  • the Free Software Foundation, either version 3 of the License, or
  • (at your option) any later version. *
  • Pydio Cells is distributed in the hope that it will be useful,
  • but WITHOUT ANY WARRANTY; without even the implied warranty of
  • MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  • GNU Affero General Public License for more details. *
  • You should have received a copy of the GNU Affero General Public License
  • along with Pydio Cells. If not, see <http://www.gnu.org/licenses/>. *
  • The latest code can be found at <https://pydio.com>.

Package net provides tools for reading IPs, available Ports, extending HTTP requests, etc.

  • Copyright (c) 2019. Abstrium SAS <team (at) pydio.com>
  • This file is part of Pydio Cells. *
  • Pydio Cells is free software: you can redistribute it and/or modify
  • it under the terms of the GNU Affero General Public License as published by
  • the Free Software Foundation, either version 3 of the License, or
  • (at your option) any later version. *
  • Pydio Cells is distributed in the hope that it will be useful,
  • but WITHOUT ANY WARRANTY; without even the implied warranty of
  • MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  • GNU Affero General Public License for more details. *
  • You should have received a copy of the GNU Affero General Public License
  • along with Pydio Cells. If not, see <http://www.gnu.org/licenses/>. *
  • The latest code can be found at <https://pydio.com>.

Index

Constants

This section is empty.

Variables

View Source
var (
	DefaultAdvertiseAddress string
)

Functions

func BodyWithProgressMonitor

func BodyWithProgressMonitor(resp *http.Response, progress chan float64, done chan bool) io.Reader

BodyWithProgressMonitor creates a ProgressMonitor directly from an http.Response

func DetectHasPrivateIP

func DetectHasPrivateIP() (bool, string, error)

func GetAvailableIPs

func GetAvailableIPs() (ips []net.IP, e error)

GetExternalIP retrieves the preferred outbound ip of this machine by scanning the network interfaces of this (virtual) machine

func GetAvailablePort

func GetAvailablePort() int

GetAvailablePort finds an available TCP port on which to listen to.

func GetExternalIP

func GetExternalIP() (net.IP, error)

GetExternalIP retrieves the preferred outbound ip of this machine by scanning the network interfaces of this (virtual) machine

func GetOutboundIP

func GetOutboundIP() (net.IP, error)

GetOutboundIP restrieves the preferred outbound ip of this machine by simply connecting to a well known ip of the internet.

func GetTimeFromNtp

func GetTimeFromNtp() (time.Time, error)

func PeerAddressIsLocal

func PeerAddressIsLocal(address string) bool

PeerAddressIsLocal compares and address (can be an IP or Hostname) to the current server values

Types

type ProgressMonitor

type ProgressMonitor struct {
	SizeChan chan uint64
	// contains filtered or unexported fields
}

ProgressMonitor provides a TeeReader to wrap a reader and send a progress inside a dedicated channel

func NewProgressMonitor

func NewProgressMonitor(expected uint64, progress chan float64, done chan bool) *ProgressMonitor

NewProgressMonitor initialize a ProgressMonitor with the channels

func (*ProgressMonitor) Write

func (m *ProgressMonitor) Write(p []byte) (int, error)

Write implements the io.Writer interface to be used by a TeeReader

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL