mirror of
https://github.com/moonlight-stream/moonlight-android.git
synced 2025-07-20 03:23:07 +00:00
Fail quitApp() if the session isn't ours
This commit is contained in:
parent
92d534a9c3
commit
5b355a3e73
@ -417,6 +417,19 @@ public class NvHTTP {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean isCurrentClient(String serverInfo) throws XmlPullParserException, IOException {
|
||||||
|
String currentClient = getXmlString(serverInfo, "CurrentClient");
|
||||||
|
if (currentClient != null) {
|
||||||
|
return !currentClient.trim().equals("0");
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
// For versions of GFE that lack this field, we'll assume we are
|
||||||
|
// the current client. If we're not, we'll get a response error that
|
||||||
|
// will let us know.
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public NvApp getAppById(int appId) throws IOException, XmlPullParserException {
|
public NvApp getAppById(int appId) throws IOException, XmlPullParserException {
|
||||||
LinkedList<NvApp> appList = getAppList();
|
LinkedList<NvApp> appList = getAppList();
|
||||||
for (NvApp appFromList : appList) {
|
for (NvApp appFromList : appList) {
|
||||||
@ -583,6 +596,14 @@ public class NvHTTP {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public boolean quitApp() throws IOException, XmlPullParserException {
|
public boolean quitApp() throws IOException, XmlPullParserException {
|
||||||
|
// First check if this client is allowed to quit the app. Newer GFE versions
|
||||||
|
// will just return success even if quitting fails if we're not the original requestor.
|
||||||
|
if (!isCurrentClient(getServerInfo())) {
|
||||||
|
// Generate a synthetic GfeResponseException letting the caller know
|
||||||
|
// that they can't kill someone else's stream.
|
||||||
|
throw new GfeHttpResponseException(599, "");
|
||||||
|
}
|
||||||
|
|
||||||
String xmlStr = openHttpConnectionToString(baseUrlHttps + "/cancel?" + buildUniqueIdUuidString(), false);
|
String xmlStr = openHttpConnectionToString(baseUrlHttps + "/cancel?" + buildUniqueIdUuidString(), false);
|
||||||
String cancel = getXmlString(xmlStr, "cancel");
|
String cancel = getXmlString(xmlStr, "cancel");
|
||||||
return Integer.parseInt(cancel) != 0;
|
return Integer.parseInt(cancel) != 0;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user