         switch internalStatus {
         case .forwarding:
             delegate?.didWrite(data: data, by: self)
-        case .waitingIV:
+        case .sendingIV:
+            internalStatus = .forwarding
             observer?.signal(.readyForForward(self))
             delegate?.didBecomeReadyToForwardWith(socket: self)
         default:

        encryptData(&requestData)
        helloData.append(requestData)

        internalStatus = .waitingIV
        write(rawData: helloData)
    }


    public let port: Int

    let streamObfuscaterType: ShadowsocksStreamObfuscater.Type

    var internalStatus: ShadowsocksAdapterStatus = .invalid

