Skip to content

Commit 76391e3

Browse files
authored
Merge pull request #27 from intersystems-community/getIP_fix
getting remote IP
2 parents 96e8eb5 + 2d0b1f5 commit 76391e3

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

src/cls/ZPM/REST/Base.cls

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -109,4 +109,14 @@ ClassMethod SwaggerSpec() As %Status
109109
Return ..%ProcessResult($$$OK, swagger)
110110
}
111111

112+
ClassMethod GetRemoteAddr() As %String
113+
{
114+
If (%request.GetCgiEnv("REMOTE_ADDR")'="") {
115+
Return %request.GetCgiEnv("REMOTE_ADDR")
116+
} Else {
117+
Return $Piece(%request.GetCgiEnv("HTTP_X_FORWARDED_FOR"),",",1)
118+
}
119+
Return ""
120+
}
121+
112122
}

src/cls/ZPM/Registry.cls

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ ClassMethod GetArchive(pkg, fileName) As %Status
182182
RETURN ..ReportHttpStatusCode(..#HTTP404NOTFOUND)
183183
}
184184

185-
Do ##class(ZPM.Analytics.Event).SaveEvent("download", %request.GetCgiEnv("REMOTE_ADDR"), {"name":(package.name),"version":(package.version)})
185+
Do ##class(ZPM.Analytics.Event).SaveEvent("download", ..GetRemoteAddr(), {"name":(package.name),"version":(package.version)})
186186
Set token = ##class(%PopulateUtils).StringMin(16,16)
187187
Set ^IRIS.TempZPMRInst(token) = $Listbuild(pkg, version)
188188
Do %response.SetHeader("INSTALLTOKEN",token)
@@ -226,7 +226,7 @@ ClassMethod CollectAnalytics(action As %String = "") As %Status
226226
Set token = %request.GetCgiEnv("HTTP_INSTALLTOKEN")
227227
If token'="", $Data(^IRIS.TempZPMRInst(token)) {
228228
Kill ^IRIS.TempZPMRInst(token)
229-
Return ##class(ZPM.Analytics.Event).SaveEvent(action, %request.GetCgiEnv("REMOTE_ADDR"), %request.Content)
229+
Return ##class(ZPM.Analytics.Event).SaveEvent(action, ..GetRemoteAddr(), %request.Content)
230230
}
231231
Return $$$ERROR(5001, "Invalid token")
232232
}

0 commit comments

Comments
 (0)