go fmt + some other stuff i do not really remember now.
parent
5e6591591f
commit
98e56152a5
146
gorepost.go
146
gorepost.go
|
@ -1,102 +1,102 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"log"
|
||||
"fmt"
|
||||
"os"
|
||||
"time"
|
||||
"math/rand"
|
||||
"fmt"
|
||||
"log"
|
||||
"math/rand"
|
||||
"os"
|
||||
"time"
|
||||
|
||||
"github.com/arachnist/gorepost/config"
|
||||
"github.com/sorcix/irc"
|
||||
"github.com/arachnist/gorepost/config"
|
||||
"github.com/sorcix/irc"
|
||||
)
|
||||
|
||||
type Connection struct {
|
||||
Network string
|
||||
Input chan irc.Message
|
||||
Output chan irc.Message
|
||||
IRCConn *irc.Conn
|
||||
QuitSend chan struct{}
|
||||
QuitRecv chan struct{}
|
||||
Network string
|
||||
Input chan irc.Message
|
||||
Output chan irc.Message
|
||||
IRCConn *irc.Conn
|
||||
QuitSend chan struct{}
|
||||
QuitRecv chan struct{}
|
||||
}
|
||||
|
||||
func (c *Connection) Sender() {
|
||||
for {
|
||||
select {
|
||||
case msg := <-c.Input:
|
||||
c.IRCConn.Encode(&msg)
|
||||
case <-c.QuitSend:
|
||||
log.Println(c.Network, "closing Sender")
|
||||
close(c.Input)
|
||||
close(c.QuitSend)
|
||||
return
|
||||
}
|
||||
}
|
||||
for {
|
||||
select {
|
||||
case msg := <-c.Input:
|
||||
c.IRCConn.Encode(&msg)
|
||||
case <-c.QuitSend:
|
||||
log.Println(c.Network, "closing Sender")
|
||||
close(c.Input)
|
||||
close(c.QuitSend)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func (c *Connection) Receiver() {
|
||||
for {
|
||||
msg, err := c.IRCConn.Decode()
|
||||
if err != nil {
|
||||
log.Println(c.Network, "error decoding message", err.Error())
|
||||
}
|
||||
select {
|
||||
case c.Output <- *msg:
|
||||
case <-c.QuitRecv:
|
||||
log.Println(c.Network, "closing receiver")
|
||||
close(c.Output)
|
||||
close(c.QuitRecv)
|
||||
return
|
||||
}
|
||||
}
|
||||
for {
|
||||
msg, err := c.IRCConn.Decode()
|
||||
if err != nil {
|
||||
log.Println(c.Network, "error decoding message", err.Error())
|
||||
}
|
||||
select {
|
||||
case c.Output <- *msg:
|
||||
case <-c.QuitRecv:
|
||||
log.Println(c.Network, "closing receiver")
|
||||
close(c.Output)
|
||||
close(c.QuitRecv)
|
||||
return
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func SetupConn(network string, config config.Config, connection *Connection) (error) {
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
server := config.Servers[network][rand.Intn(len(config.Servers[network]))]
|
||||
func SetupConn(network string, config config.Config, connection *Connection) error {
|
||||
rand.Seed(time.Now().UnixNano())
|
||||
server := config.Servers[network][rand.Intn(len(config.Servers[network]))]
|
||||
|
||||
conn, err := irc.Dial(server)
|
||||
if err != nil {
|
||||
log.Println("Cannot connect to", network, "server:", server, "error:", err.Error())
|
||||
return err
|
||||
}
|
||||
connection.IRCConn = conn
|
||||
conn, err := irc.Dial(server)
|
||||
if err != nil {
|
||||
log.Println("Cannot connect to", network, "server:", server, "error:", err.Error())
|
||||
return err
|
||||
}
|
||||
connection.IRCConn = conn
|
||||
|
||||
go connection.Sender()
|
||||
go connection.Receiver()
|
||||
go connection.Sender()
|
||||
go connection.Receiver()
|
||||
|
||||
// Initial commands sent to IRC server
|
||||
connection.Input <- irc.Message{
|
||||
Command: "NICK",
|
||||
Trailing: config.Nick,
|
||||
}
|
||||
connection.Input <- irc.Message{
|
||||
Command: "USER",
|
||||
Params: []string{config.Nick, "3", "*"},
|
||||
Trailing: config.Nick,
|
||||
}
|
||||
// Initial commands sent to IRC server
|
||||
connection.Input <- irc.Message{
|
||||
Command: "NICK",
|
||||
Trailing: config.Nick,
|
||||
}
|
||||
connection.Input <- irc.Message{
|
||||
Command: "USER",
|
||||
Params: []string{config.Nick, "3", "*"},
|
||||
Trailing: config.Nick,
|
||||
}
|
||||
|
||||
return nil
|
||||
return nil
|
||||
}
|
||||
|
||||
func ConnectionKeeper(connection *Connection) {
|
||||
for {
|
||||
for {
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
func main() {
|
||||
config, err := config.ReadConfig(os.Args[1])
|
||||
if err != nil {
|
||||
fmt.Println("Error reading configuration from", os.Args[1], "error:", err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
config, err := config.ReadConfig(os.Args[1])
|
||||
if err != nil {
|
||||
fmt.Println("Error reading configuration from", os.Args[1], "error:", err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
logfile, err := os.OpenFile(config.Logpath, os.O_RDWR | os.O_CREATE | os.O_APPEND, 0666)
|
||||
if err != nil {
|
||||
fmt.Println("Error opening", config.Logpath,"for writing, error:", err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
log.SetOutput(logfile)
|
||||
logfile, err := os.OpenFile(config.Logpath, os.O_RDWR|os.O_CREATE|os.O_APPEND, 0666)
|
||||
if err != nil {
|
||||
fmt.Println("Error opening", config.Logpath, "for writing, error:", err.Error())
|
||||
os.Exit(1)
|
||||
}
|
||||
log.SetOutput(logfile)
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue