2017-06-28 13:42:38 +02:00
package main
2017-05-07 21:51:37 +02:00
import (
"fmt"
2017-06-28 13:42:38 +02:00
"net"
2017-05-17 07:58:40 +02:00
"github.com/NyaaPantsu/nyaa/config"
2017-07-02 16:54:55 +02:00
"github.com/NyaaPantsu/nyaa/utils/log"
2017-05-07 21:51:37 +02:00
"github.com/majestrate/i2p-tools/lib/i2p"
)
// CreateHTTPListener creates a net.Listener for main http webapp given main config
2017-05-29 11:01:52 +02:00
func CreateHTTPListener ( conf * config . Config ) ( net . Listener , error ) {
if conf . I2P != nil {
2017-05-07 21:51:37 +02:00
s := i2p . NewSession ( conf . I2P . Name , conf . I2P . Addr , conf . I2P . Keyfile )
2017-05-29 11:01:52 +02:00
err := s . Open ( )
2017-05-07 21:51:37 +02:00
if s != nil {
log . Infof ( "i2p address: %s" , s . B32Addr ( ) )
}
2017-05-29 11:01:52 +02:00
return s , err
2017-05-07 21:51:37 +02:00
}
2017-05-29 11:01:52 +02:00
return net . Listen ( "tcp" , fmt . Sprintf ( "%s:%d" , conf . Host , conf . Port ) )
2017-05-07 21:51:37 +02:00
}
2017-05-10 19:29:35 +02:00
// CreateScraperSocket creates a UDP Scraper socket
2017-05-29 11:01:52 +02:00
func CreateScraperSocket ( conf * config . Config ) ( net . PacketConn , error ) {
if conf . I2P != nil {
2017-05-10 19:29:35 +02:00
log . Fatal ( "i2p udp scraper not supported" )
}
2017-05-29 11:01:52 +02:00
var laddr * net . UDPAddr
laddr , err := net . ResolveUDPAddr ( "udp" , conf . Scrape . Addr )
if err != nil {
return nil , err
}
return net . ListenUDP ( "udp" , laddr )
2017-05-10 19:29:35 +02:00
}