summaryrefslogtreecommitdiff
path: root/src/server.go
diff options
context:
space:
mode:
authorjwijenbergh <jeroenwijenbergh@protonmail.com>2022-02-14 11:41:12 +0100
committerjwijenbergh <jeroenwijenbergh@protonmail.com>2022-04-05 12:26:11 +0200
commitd306d7b27ee1df60bf32f03b6160856e78d1b02c (patch)
tree17ead8a0b05fe02817c5be954782fdb53c5fb7ac /src/server.go
parentabe952080b01be4524fd03462236b6a3e63589f8 (diff)
Expose list retrieval by returning a JSON string
Signed-off-by: jwijenbergh <jeroenwijenbergh@protonmail.com>
Diffstat (limited to 'src/server.go')
-rw-r--r--src/server.go20
1 files changed, 12 insertions, 8 deletions
diff --git a/src/server.go b/src/server.go
index 37a8f62..e39f4c7 100644
--- a/src/server.go
+++ b/src/server.go
@@ -29,13 +29,13 @@ func getFileUrl(url string) ([]byte, error) {
// Helper function that gets a disco json
// TODO: Verify signature
-func getDiscoFile(jsonFile string) ([]byte, error) {
+func getDiscoFile(jsonFile string) (string, error) {
// Get json data
fileUrl := "https://disco.eduvpn.org/v2/" + jsonFile
fileBody, error := getFileUrl(fileUrl)
if error != nil {
- return nil, error
+ return "", error
}
// Get signature
@@ -43,7 +43,7 @@ func getDiscoFile(jsonFile string) ([]byte, error) {
sigBody, error := getFileUrl(sigUrl)
if error != nil {
- return nil, error
+ return "", error
}
// Verify signature
@@ -54,19 +54,23 @@ func getDiscoFile(jsonFile string) ([]byte, error) {
verifySuccess, verifyErr := Verify(string(sigBody), fileBody, jsonFile, previousSigTime, forcePrehash)
if !verifySuccess || verifyErr != nil {
- return nil, detailedVPNError{errVerifySigError, "Signature is not valid", verifyErr}
+ return "", detailedVPNError{errVerifySigError, "Signature is not valid", verifyErr}
}
- return fileBody, nil
+ return string(fileBody), nil
}
// Get the organization list
-func GetOrganizationsList() ([]byte, error) {
- return getDiscoFile("organization_list.json")
+func GetOrganizationsList() (string, error) {
+ body, err := getDiscoFile("organization_list.json")
+ if err != nil {
+ return "", err.(detailedRequestError).ToVerifyError()
+ }
+ return body, nil
}
// Get the server list
-func getServersList() ([]byte, error) {
+func GetServersList() (string, error) {
return getDiscoFile("server_list.json")
}