@@ -179,22 +179,7 @@ public NetEndPoint LocalEndPoint
179179 get { return _localEndPoint ; }
180180 }
181181
182- internal void EnqueueEvent ( NetEndPoint remoteEndPoint , byte [ ] data , NetEventType type )
183- {
184- EnqueueEvent ( null , remoteEndPoint , data , type ) ;
185- }
186-
187- internal void EnqueueEvent ( NetPeer peer , byte [ ] data , NetEventType type )
188- {
189- EnqueueEvent ( peer , peer . EndPoint , data , type ) ;
190- }
191-
192- internal void EnqueueEvent ( NetEventType type )
193- {
194- EnqueueEvent ( null , null , null , type ) ;
195- }
196-
197- internal void EnqueueEvent ( NetPeer peer , NetEndPoint remoteEndPoint , byte [ ] data , NetEventType type )
182+ internal NetEvent CreateEvent ( NetEventType type )
198183 {
199184 NetEvent evt ;
200185 if ( _netEventsPool . Count > 0 )
@@ -209,12 +194,12 @@ internal void EnqueueEvent(NetPeer peer, NetEndPoint remoteEndPoint, byte[] data
209194 evt = new NetEvent ( ) ;
210195 evt . DataReader = new NetDataReader ( ) ;
211196 }
212- if ( data != null )
213- evt . DataReader . SetSource ( data ) ;
214-
215- evt . Peer = peer ;
216197 evt . Type = type ;
217- evt . RemoteEndPoint = remoteEndPoint ;
198+ return evt ;
199+ }
200+
201+ internal void EnqueueEvent ( NetEvent evt )
202+ {
218203 lock ( _netEventsQueue )
219204 {
220205 _netEventsQueue . Enqueue ( evt ) ;
@@ -227,6 +212,8 @@ public void Recycle(NetEvent netEvent)
227212 {
228213 netEvent . DataReader . Clear ( ) ;
229214 netEvent . Peer = null ;
215+ netEvent . AdditionalInfo = string . Empty ;
216+ netEvent . RemoteEndPoint = null ;
230217 _netEventsPool . Push ( netEvent ) ;
231218 }
232219 }
@@ -293,7 +280,7 @@ private void ReceiveLogic()
293280 if ( errorCode != 10054 )
294281 {
295282 NetUtils . DebugWrite ( ConsoleColor . Red , "(NB)Socket error!" ) ;
296- ProcessError ( ) ;
283+ ProcessError ( "Receive socket error: " + errorCode ) ;
297284 Stop ( ) ;
298285 return ;
299286 }
@@ -314,7 +301,12 @@ private void DataReceived(byte[] reusableBuffer, int count, NetEndPoint remoteEn
314301 {
315302 case PacketProperty . UnconnectedMessage :
316303 if ( UnconnectedMessagesEnabled )
317- EnqueueEvent ( remoteEndPoint , NetPacket . GetUnconnectedData ( reusableBuffer , count ) , NetEventType . ReceiveUnconnected ) ;
304+ {
305+ var netEvent = CreateEvent ( NetEventType . ReceiveUnconnected ) ;
306+ netEvent . RemoteEndPoint = remoteEndPoint ;
307+ netEvent . DataReader . SetSource ( NetPacket . GetUnconnectedData ( reusableBuffer , count ) ) ;
308+ EnqueueEvent ( netEvent ) ;
309+ }
318310 return ;
319311 case PacketProperty . NatIntroduction :
320312 case PacketProperty . NatIntroductionRequest :
@@ -328,12 +320,12 @@ private void DataReceived(byte[] reusableBuffer, int count, NetEndPoint remoteEn
328320 ReceiveFromSocket ( reusableBuffer , count , remoteEndPoint ) ;
329321 }
330322
331- protected abstract void ProcessError ( ) ;
323+ protected abstract void ProcessError ( string errorMessage ) ;
332324
333325 protected abstract void ReceiveFromSocket ( byte [ ] reusableBuffer , int count , NetEndPoint remoteEndPoint ) ;
334326 protected abstract void PostProcessEvent ( int deltaTime ) ;
335327
336328 internal abstract void ReceiveFromPeer ( NetPacket packet , NetEndPoint endPoint ) ;
337- internal abstract void ProcessSendError ( NetEndPoint endPoint ) ;
329+ internal abstract void ProcessSendError ( NetEndPoint endPoint , string errorMessage ) ;
338330 }
339331}
0 commit comments