From f9da80c8cdd1edf224e9563e14a74b0c32059f9b Mon Sep 17 00:00:00 2001 From: Sandeep Mistry Date: Mon, 16 May 2016 11:48:22 -0400 Subject: [PATCH] Use array to track allowed SSH boards Signed-off-by: Sandeep Mistry --- programmer.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/programmer.go b/programmer.go index 668a5553f..428a95420 100644 --- a/programmer.go +++ b/programmer.go @@ -13,6 +13,7 @@ import ( "path/filepath" "regexp" "runtime" + "sort" "strconv" "strings" "time" @@ -25,12 +26,18 @@ import ( ) var compiling = false +var allowedSshBoards = []string{"arduino:avr:yun"} func colonToUnderscore(input string) string { output := strings.Replace(input, ":", "_", -1) return output } +func sshProgramAllowed(boardname string) bool { + sort.Strings(allowedSshBoards) + return sort.SearchStrings(allowedSshBoards, boardname) != len(allowedSshBoards) +} + type basicAuthData struct { Username string `json:"username"` Password string `json:"password"` @@ -267,8 +274,8 @@ func spProgramRW(portname string, boardname string, filePath string, commandline if extraInfo.Network { err = spProgramNetwork(portname, boardname, filePath, extraInfo.Auth) - if err != nil && boardname == "arduino:avr:yun" { - // http method failed, try ssh upload (Yun only) + if err != nil && sshProgramAllowed(boardname) { + // http method failed, try ssh upload if allowed err = spProgramSSHNetwork(portname, boardname, filePath, commandline, extraInfo.Auth) } } else {