pull/83/head
Niels Andriesse 5 years ago
parent 55344700d7
commit ab2b7528b4

@ -74,9 +74,9 @@ public class LokiDotNetAPI : NSObject {
throw error
}
// Send the request
let isLokiFileServer = server.contains("file.lokinet.org") || server.contains("file-dev.lokinet.org")
if isLokiFileServer {
LokiFileServerProxy(for: server).performLokiFileServerNSURLRequest(request as NSURLRequest).done { responseObject in
let isProxyingRequired = (server == LokiStorageAPI.server)
if isProxyingRequired {
let _ = LokiFileServerProxy(for: server).performLokiFileServerNSURLRequest(request as NSURLRequest).done { responseObject in
// Parse the server ID & download URL
guard let json = responseObject as? JSON, let data = json["data"] as? JSON, let serverID = data["id"] as? UInt64, let downloadURL = data["url"] as? String else {
print("[Loki] Couldn't parse attachment from: \(responseObject).")

@ -59,7 +59,7 @@ internal class LokiFileServerProxy : LokiHTTPClient {
let parametersAsData = try JSONSerialization.data(withJSONObject: tsRequest.parameters, options: [])
parametersAsString = !tsRequest.parameters.isEmpty ? String(bytes: parametersAsData, encoding: .utf8)! : "null"
} else {
if let parametersAsData = request.httpBody {
if let parametersAsInputStream = request.httpBodyStream, let parametersAsData = try? Data(from: parametersAsInputStream) {
parametersAsString = "{ \"fileUpload\" : \"\(String(data: parametersAsData.base64EncodedData(), encoding: .utf8) ?? "null")\" }"
} else {
parametersAsString = "null"

@ -0,0 +1,22 @@
extension Data {
init(from inputStream: InputStream) throws {
self.init()
inputStream.open()
defer { inputStream.close() }
let bufferSize = 1024
let buffer = UnsafeMutablePointer<UInt8>.allocate(capacity: bufferSize)
defer { buffer.deallocate() }
while inputStream.hasBytesAvailable {
let count = inputStream.read(buffer, maxLength: bufferSize)
if count < 0 {
throw inputStream.streamError!
} else if count == 0 {
break
} else {
append(buffer, count: count)
}
}
}
}
Loading…
Cancel
Save