X-Git-Url: https://git.mdrn.pl/redakcja.git/blobdiff_plain/04b05946ab640eaf9135a73772b704dd41c323e7..717c14c014e3c988bcb392599a47ffa92630da78:/platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/util/.svn/text-base/SocketHelper.as.svn-base diff --git a/platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/util/.svn/text-base/SocketHelper.as.svn-base b/platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/util/.svn/text-base/SocketHelper.as.svn-base new file mode 100644 index 00000000..feb494b3 --- /dev/null +++ b/platforma/static/filebrowser/uploadify/com/adobe/protocols/dict/util/.svn/text-base/SocketHelper.as.svn-base @@ -0,0 +1,49 @@ +package com.adobe.protocols.dict.util +{ + import com.adobe.net.proxies.RFC2817Socket; + import flash.events.ProgressEvent; + + public class SocketHelper + extends RFC2817Socket + { + private var terminator:String = "\r\n.\r\n"; + private var buffer:String; + public static var COMPLETE_RESPONSE:String = "completeResponse"; + + public function SocketHelper() + { + super(); + buffer = new String(); + addEventListener(ProgressEvent.SOCKET_DATA, incomingData); + } + + private function incomingData(event:ProgressEvent):void + { + buffer += readUTFBytes(bytesAvailable); + buffer = buffer.replace(/250[^\r\n]+\r\n/, ""); // Get rid of all 250s. Don't need them. + var codeStr:String = buffer.substring(0, 3); + if (!isNaN(parseInt(codeStr))) + { + var code:uint = uint(codeStr); + if (code == 150 || code >= 200) + { + buffer = buffer.replace("\r\n", this.terminator); + } + } + + while (buffer.indexOf(this.terminator) != -1) + { + var chunk:String = buffer.substring(0, buffer.indexOf(this.terminator)); + buffer = buffer.substring(chunk.length + this.terminator.length, buffer.length); + throwResponseEvent(chunk); + } + } + + private function throwResponseEvent(response:String):void + { + var responseEvent:CompleteResponseEvent = new CompleteResponseEvent(); + responseEvent.response = response; + dispatchEvent(responseEvent); + } + } +} \ No newline at end of file