-
Notifications
You must be signed in to change notification settings - Fork 0
/
net.go
44 lines (36 loc) · 754 Bytes
/
net.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/*
* Author: fasion
* Created time: 2023-05-14 11:41:33
* Last Modified by: fasion
* Last Modified time: 2023-05-14 12:47:47
*/
package baseutils
import (
"fmt"
"strconv"
"strings"
)
func ParseNetloc(loc string, defaultAddr string, defaultPort int) (addr string, port int, err error) {
loc = strings.TrimSpace(loc)
parts := strings.Split(loc, ":")
if len(parts) > 2 {
err = fmt.Errorf("bad smtp server: %s", loc)
return
}
if len(parts) == 1 {
addr = parts[0]
port = defaultPort
return
}
if portstr := parts[1]; portstr == "" {
port = defaultPort
} else if port, err = strconv.Atoi(portstr); err != nil {
return
}
if addrstr := parts[0]; addrstr == "" {
addr = defaultAddr
} else {
addr = addrstr
}
return
}