private void TrySendBrokerRequest() { if (this.brokerUniqueSocketId > 0L) { while (this.brokerPendingRequests.get_Count() > 0) { Logger.DEBUG(string.Empty); PendingRequest pendingRequest = this.brokerPendingRequests.Dequeue() as PendingRequest; this.netFrame.SendPacket(this.brokerUniqueSocketId, pendingRequest.data); } } else { int num = Utils.NowSeconds(); while (this.brokerPendingRequests.get_Count() > 0) { PendingRequest pendingRequest2 = this.brokerPendingRequests.Peek() as PendingRequest; if (num <= pendingRequest2.createTime + 5) { break; } Logger.WARN(string.Empty); this.brokerPendingRequests.Dequeue(); } } }
public static void LogCallback(int level, [MarshalAs(20)] string logMsg) { try { switch (level) { case 0: Logger.DEBUG(logMsg); break; case 1: Logger.INFO(logMsg); break; case 2: Logger.WARN(logMsg); break; case 3: Logger.ERROR(logMsg); break; } } catch (Exception var_0_4E) { } }
private void ProcessBrokerHeartbeat() { int num = Utils.NowSeconds(); if (this.lastRecvBrokerHeartbeatRspTime >= this.lastSendBrokerHeartbeatReqTime) { if (num >= this.lastSendBrokerHeartbeatReqTime + NetLogic.brokerHeartbeatIntervalInSecs) { this.SendHeartbeatToBroker(); } } else if (num >= this.lastSendBrokerHeartbeatReqTime + NetLogic.brokerHeartbeatTimeoutInSecs) { if (this.brokerHeartbeatTimeoutRetryCnt < NetLogic.maxBrokerHeartbeatTimeoutRetryCnt) { Logger.WARN("Broker heartbeat is timeout, try again later, retryCnt=" + this.brokerHeartbeatTimeoutRetryCnt); this.SendHeartbeatToBroker(); this.brokerHeartbeatTimeoutRetryCnt++; } else { Logger.ERROR("Broker heartbeat is timeout, the connection to broker will be closed"); this.Close(this.brokerUniqueSocketId); this.ResetBrokerHeartbeatVars(); } } }
public static void AddCommand(Command cmd) { try { if (cmd is AddSocketCommand) { AddSocketCommand addSocketCommand = cmd as AddSocketCommand; long theUniqueSocketId = addSocketCommand.theUniqueSocketId; TCPSocketContext tCPSocketContext = new TCPSocketContext(addSocketCommand.theUniqueSocketId, addSocketCommand.theHandler); if (!NetLib.dictSocketContext.ContainsKey(theUniqueSocketId)) { Logger.DEBUG(theUniqueSocketId.ToString() + " added"); NetLib.dictSocketContext.Add(theUniqueSocketId, tCPSocketContext); } else { TCPSocketContext tCPSocketContext2 = NetLib.dictSocketContext.get_Item(theUniqueSocketId); Logger.ERROR("NetThread::ProcessCommands socket handle conflict " + tCPSocketContext.GetUniqueSocketId().ToString() + " VS " + tCPSocketContext2.GetUniqueSocketId().ToString()); } } else if (cmd is SendPacketCommand) { SendPacketCommand sendPacketCommand = cmd as SendPacketCommand; long theUniqueSocketId2 = sendPacketCommand.theUniqueSocketId; if (NetLib.dictSocketContext.ContainsKey(theUniqueSocketId2)) { TCPSocketContext tCPSocketContext3 = NetLib.dictSocketContext.get_Item(theUniqueSocketId2); Packet packet = new Packet(); packet.theCreateTimeMS = sendPacketCommand.theCreateTimeMS; packet.theContent = (sendPacketCommand.theContent.Clone() as byte[]); tCPSocketContext3.Enqueue(packet); NetLib.pendingPacketsLength += (long)packet.theContent.Length; } } else { CloseSocketCommand closeSocketCommand = cmd as CloseSocketCommand; long theUniqueSocketId3 = closeSocketCommand.theUniqueSocketId; if (NetLib.dictSocketContext.ContainsKey(theUniqueSocketId3)) { TCPSocketContext tCPSocketContext4 = NetLib.dictSocketContext.get_Item(theUniqueSocketId3); Logger.DEBUG(theUniqueSocketId3.ToString() + " removed"); int num = 0; tCPSocketContext4.HandleClose(out num); NetLib.pendingPacketsLength -= (long)num; NetLib.dictSocketContext.Remove(theUniqueSocketId3); NetLib.PandoraNet_Close(theUniqueSocketId3); } else { Logger.WARN("uniqueSocketId=" + theUniqueSocketId3.ToString() + " alreay missing"); } } } catch (Exception ex) { Logger.ERROR(ex.get_StackTrace()); } }
private string GetLocationUrl(byte[] receivedData, int dataLen) { Logger.DEBUG(string.Empty); int num = -1; int num2 = -1; int num3 = -1; for (int i = 0; i < dataLen - DownloadHandler.redirectionField.Length + 1; i++) { bool flag = true; for (int j = 0; j < DownloadHandler.redirectionField.Length; j++) { if (receivedData[i + j] != DownloadHandler.redirectionField[j]) { flag = false; break; } } if (flag) { num = i; break; } } if (num < 0) { Logger.WARN(string.Empty); return(string.Empty); } for (int k = num + DownloadHandler.redirectionField.Length; k < dataLen; k++) { if (receivedData[k] != 58 && receivedData[k] != 32 && num2 < 0) { num2 = k; } if (num2 >= 0 && receivedData[k] == 13) { num3 = k; break; } } if (num2 < 0 || num3 < 0 || num2 >= num3) { Logger.ERROR(string.Empty); return(string.Empty); } string @string = Encoding.get_UTF8().GetString(receivedData, num2, num3 - num2); Logger.DEBUG(@string); return(@string); }
public static string ReadCookie(string fileName) { string result; try { string text = Pandora.Instance.GetCookiePath() + "/" + fileName; result = File.ReadAllText(text); } catch (Exception ex) { Logger.WARN(ex.get_Message()); result = string.Empty; } return(result); }
private int GetContentLength(byte[] receivedData, int dataLen) { Logger.DEBUG(string.Empty); int num = -1; int num2 = -1; int num3 = -1; for (int i = 0; i < dataLen - DownloadHandler.contentLengthField.Length + 1; i++) { bool flag = true; for (int j = 0; j < DownloadHandler.contentLengthField.Length; j++) { if (receivedData[i + j] != DownloadHandler.contentLengthField[j]) { flag = false; break; } } if (flag) { num = i; break; } } if (num < 0) { Logger.WARN(string.Empty); return(-1); } for (int k = num + DownloadHandler.contentLengthField.Length; k < dataLen; k++) { if (receivedData[k] >= 48 && receivedData[k] <= 57) { if (num2 < 0) { num2 = k; } } else if (num2 >= 0 && num3 < 0) { num3 = k; break; } } if (num2 < 0 || num3 < 0 || num2 >= num3) { Logger.ERROR(string.Empty); return(-1); } int result; try { string @string = Encoding.get_UTF8().GetString(receivedData, num2, num3 - num2); int num4 = Convert.ToInt32(@string); if (num4 > 0) { result = num4; } else { Logger.ERROR(string.Empty); result = -1; } } catch (Exception ex) { Logger.ERROR(ex.get_StackTrace()); result = -1; } return(result); }