Skip to content

Commit 3428872

Browse files
committed
Remove netcat/utils, now in netcat/main.go
1 parent 2b9eae1 commit 3428872

File tree

3 files changed

+47
-149
lines changed

3 files changed

+47
-149
lines changed

netcat/main.go

Lines changed: 47 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,11 @@ import (
99
"strconv"
1010
"sync"
1111

12-
"github.com/netsec-ethz/scion-apps/netcat/utils"
12+
quic "github.com/lucas-clemente/quic-go"
13+
"github.com/netsec-ethz/scion-apps/lib/scionutil"
1314
"github.com/scionproto/scion/go/lib/log"
15+
"github.com/scionproto/scion/go/lib/snet"
16+
"github.com/scionproto/scion/go/lib/snet/squic"
1417
)
1518

1619
func printUsage() {
@@ -19,7 +22,7 @@ func printUsage() {
1922
fmt.Println("Example SCION address: 17-ffaa:1:bfd,[127.0.0.1]:42002")
2023
fmt.Println("Available flags:")
2124
fmt.Println(" -h: Show help")
22-
fmt.Println(" -local: Use IA when resolving SCIOND socket path")
25+
fmt.Println(" -local: Local SCION address (default localhost)")
2326
fmt.Println(" -b: Send an extra byte before sending the actual data")
2427
}
2528

@@ -28,13 +31,13 @@ func main() {
2831
log.Debug("Launching netcat")
2932

3033
var (
31-
serverAddress string
32-
port uint16
33-
useIASCIONDPath bool
34-
extraByte bool
34+
remoteAddressString string
35+
port uint16
36+
localAddrString string
37+
extraByte bool
3538
)
3639
flag.Usage = printUsage
37-
flag.BoolVar(&useIASCIONDPath, "local", false, "Use IA SCIOND Path")
40+
flag.StringVar(&remoteAddressString, "local", "", "Local address string")
3841
flag.BoolVar(&extraByte, "b", false, "Send extra byte")
3942
flag.Parse()
4043

@@ -44,29 +47,51 @@ func main() {
4447
golog.Panicf("Number of arguments is not two! Arguments: %v", tail)
4548
}
4649

47-
serverAddress = tail[0]
50+
remoteAddressString = tail[0]
4851
port64, err := strconv.ParseUint(tail[1], 10, 16)
4952
if err != nil {
5053
printUsage()
5154
golog.Panicf("Can't parse port string %v: %v", port64, err)
5255
}
5356
port = uint16(port64)
5457

58+
if localAddrString == "" {
59+
localAddrString, err = scionutil.GetLocalhostString()
60+
if err != nil {
61+
golog.Panicf("Error getting localhost: %v", err)
62+
}
63+
}
64+
65+
localAddr, err := snet.AddrFromString(localAddrString)
66+
if err != nil {
67+
golog.Panicf("Error parsing local address: %v", err)
68+
}
69+
5570
// Initialize SCION library
56-
err = utils.InitSCION("", "", useIASCIONDPath)
71+
err = scionutil.InitSCION(localAddr)
5772
if err != nil {
5873
golog.Panicf("Error initializing SCION connection: %v", err)
5974
}
6075

61-
conn, err := utils.DialSCION(fmt.Sprintf("%s:%v", serverAddress, port))
76+
remoteAddr, err := snet.AddrFromString(fmt.Sprintf("%s:%v", remoteAddressString, port))
6277
if err != nil {
63-
golog.Panicf("Error dialing remote: %v", err)
78+
golog.Panicf("Can't parse remote address %s: %v", remoteAddressString)
79+
}
80+
81+
sess, err := squic.DialSCION(nil, localAddr, remoteAddr, &quic.Config{KeepAlive: true})
82+
if err != nil {
83+
golog.Panicf("Can't dial remote address %s: %v", remoteAddressString, err)
84+
}
85+
86+
stream, err := sess.OpenStreamSync()
87+
if err != nil {
88+
golog.Panicf("Can't open stream: %v", err)
6489
}
6590

6691
log.Debug("Connected!")
6792

6893
if extraByte {
69-
_, err := conn.Write([]byte{71})
94+
_, err := stream.Write([]byte{71})
7095
if err != nil {
7196
golog.Panicf("Error writing extra byte: %v", err)
7297
}
@@ -75,15 +100,22 @@ func main() {
75100
}
76101

77102
close := func() {
78-
conn.Close()
103+
err := stream.Close()
104+
if err != nil {
105+
log.Warn("Error closing stream: %v", err)
106+
}
107+
err = sess.Close(nil)
108+
if err != nil {
109+
log.Warn("Error closing session: %v", err)
110+
}
79111
}
80112

81113
var once sync.Once
82114
go func() {
83-
io.Copy(os.Stdout, conn)
115+
io.Copy(os.Stdout, stream)
84116
once.Do(close)
85117
}()
86-
io.Copy(conn, os.Stdin)
118+
io.Copy(stream, os.Stdin)
87119
once.Do(close)
88120

89121
log.Debug("Exiting snetcat...")

netcat/utils/quicconn.go

Lines changed: 0 additions & 45 deletions
This file was deleted.

netcat/utils/scionutils.go

Lines changed: 0 additions & 89 deletions
This file was deleted.

0 commit comments

Comments
 (0)