Added TODO. Strings contains needed?

This commit is contained in:
CornierKhan1 2019-12-20 13:16:10 +11:00
parent 191bcf319a
commit f9cd055951
4 changed files with 24 additions and 15 deletions

View File

@ -2,7 +2,7 @@
<Address>127.0.0.1:8080</Address>
<SQLAddress>127.0.0.1:3306</SQLAddress>
<SQLUser>username-here</SQLUser>
<SQLPass>password-here</SQLPass>
<SQLUser>username</SQLUser>
<SQLPass>password</SQLPass>
<SQLDB>wiisoap</SQLDB>
</Config>

5
go.mod
View File

@ -2,4 +2,7 @@ module github.com/Apfel/WiiSOAP
go 1.12
require github.com/go-sql-driver/mysql v1.4.1
require (
github.com/go-sql-driver/mysql v1.4.1
google.golang.org/appengine v1.6.5 // indirect
)

12
go.sum
View File

@ -1,7 +1,11 @@
github.com/go-sql-driver/mysql v1.4.1 h1:g24URVg0OFbNUTx9qqY1IRZ9D9z3iPyi5zKhQZpNwpA=
github.com/go-sql-driver/mysql v1.4.1/go.mod h1:zAC/RDZ24gD3HViQzih4MyKcchzm+sOG5ZlKdlhCg5w=
github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4=
github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
google.golang.org/appengine v1.4.0 h1:/wp5JvzpHIxhs/dumFmF7BXTf3Z+dd4uXta4kVyO508=
google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4=
golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
google.golang.org/appengine v1.6.5 h1:tycE03LOZYQNhDpS27tcQdAzLCVMaj7QT2SXxebnpCM=
google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc=

18
main.go
View File

@ -47,7 +47,7 @@ func checkError(err error) {
func main() {
// Initial Start.
fmt.Println("WiiSOAP 0.2.6 Kawauso\nReading the Config...")
fmt.Println("WiiSOAP 0.2.6 Kawauso\n[i] Reading the Config...")
// Check the Config.
configfile, err := os.Open("./config.xml")
@ -56,13 +56,14 @@ func main() {
checkError(err)
CON := Config{}
err = xml.Unmarshal([]byte(ioconfig), &CON)
fmt.Println(CON)
//fmt.Println(CON)
// ^ Printing this shows the password in the commandline, which may be insecure. ^
checkError(err)
fmt.Println("Initializing core...")
fmt.Println("[i] Initializing core...")
// Start SQL.
db, err := sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s)/%s)", CON.SQLUser, CON.SQLPass, CON.SQLAddress, CON.SQLDB))
db, err := sql.Open("mysql", fmt.Sprintf("%s:%s@tcp(%s)/%s", CON.SQLUser, CON.SQLPass, CON.SQLAddress, CON.SQLDB))
checkError(err)
// Close SQL after everything else is done.
@ -83,16 +84,17 @@ func handler(w http.ResponseWriter, r *http.Request) {
timestampnano := strconv.FormatInt(time.Now().UTC().Unix(), 10)
timestamp := timestampnano + "000"
fmt.Println("-=Incoming request!=-")
fmt.Println("[!] Incoming request.")
body, err := ioutil.ReadAll(r.Body)
if err != nil {
http.Error(w, "Error reading request body...", http.StatusInternalServerError)
http.Error(w, "[x] Error reading request body...", http.StatusInternalServerError)
}
// The switch converts the HTTP Body of the request into a string. There is no need to convert the cases to byte format.
switch string(body) {
// TODO: Make the case functions cleaner. (e.g. Should the response be a variable?)
// TODO: Update the responses so that they query the SQL Database for the proper information (e.g. Device Code, Token, etc).
// TODO: Use Strings.Contains otherwise the program assumes that the whole request MUST only be the keyword.
case "CheckDeviceStatus":
fmt.Println("CDS.")
@ -257,7 +259,7 @@ func handler(w http.ResponseWriter, r *http.Request) {
</CheckRegistrationResponse>
</soapenv:Body>
</soapenv:Envelope>`, CR.Version, CR.DeviceID, CR.DeviceID, timestamp, CR.SerialNo)
fmt.Println("Delivered response!")
fmt.Println("[i] Delivered response!")
case "GetRegistrationInfo":
fmt.Println("GRI.")
@ -359,5 +361,5 @@ func handler(w http.ResponseWriter, r *http.Request) {
}
// TODO: Add NUS and CAS SOAP to the case list.
fmt.Println("-=End of Request.=-" + "\n")
fmt.Println("[!] End of Request." + "\n")
}