Ignore:
Timestamp:
Sep 12, 2014, 11:14:11 AM (10 years ago)
Author:
alloc
Message:

fixes

Location:
binary-improvements/7dtd-server-fixes/src/NetConnections
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • binary-improvements/7dtd-server-fixes/src/NetConnections/ConsoleOutputSeparator.cs

    r132 r189  
    2828                        Log.Out ("Executed command \"" + _command + "\" from player \"" + _playerID + "\"");
    2929
    30                         object obj = netCommandQueue;
    31                         Monitor.Enter (obj);
    32                         try {
     30                        lock (netCommandQueue) {
    3331                                isCurrentCommandFromClient = true;
    3432                                console.issuerOfCurrentClientCommand = _networkPlayer;
    3533                                console.ExecuteClientCmdInternal (_playerID, _command);
    3634                                isCurrentCommandFromClient = false;
    37                         } finally {
    38                                 Monitor.Exit (obj);
    3935                        }
    4036
     
    6157                {
    6258                        if (netCommandQueue.Count > 0) {
    63                                 object obj = netCommandQueue;
    64                                 Monitor.Enter (obj);
    65                                 try {
     59                                lock (netCommandQueue) {
    6660                                        issuerOfCurrentCommand = netCommandQueue [0].client;
    67                                         console.ExecuteRemoteCmdInternal (netCommandQueue [0].command, false);
     61                                        try {
     62                                                console.ExecuteRemoteCmdInternal (netCommandQueue [0].command, false);
     63                                        } catch (Exception e) {
     64                                                Log.Out("Exception while executing command: " + e);
     65                                        }
    6866                                        netCommandQueue.RemoveAt (0);
    6967                                        issuerOfCurrentCommand = null;
    70                                 } finally {
    71                                         Monitor.Exit (obj);
    7268                                }
    7369                        }
     
    7672                public static void QueueNetCommand (string _line, IConnection _con)
    7773                {
    78                         object obj = netCommandQueue;
    79                         Monitor.Enter (obj);
    80                         try {
     74                        lock (netCommandQueue) {
    8175                                netCommandQueue.Add (new NetCommand (_line, _con));
    82                         } finally {
    83                                 Monitor.Exit (obj);
    8476                        }
    8577                }
  • binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Telnet/TelnetConnection.cs

    r187 r189  
    3838
    3939                        if (endpoint is IPEndPoint) {
    40                                 endpointAddressHash = ((IPEndPoint)endpoint).Address.GetHashCode();
     40                                endpointAddressHash = ((IPEndPoint)endpoint).Address.GetHashCode ();
    4141                                //Log.Out ("Hash: " + endpointAddressHash);
    4242                        } else {
    43                                 Log.Out ("EndPoint is not an IPEndPoint but: " + endpoint.GetType().ToString());
     43                                Log.Out ("EndPoint is not an IPEndPoint but: " + endpoint.GetType ().ToString ());
    4444                        }
    4545
     
    7878                                        while (!IsClosed()) {
    7979                                                string line = reader.ReadLine ();
    80                                                 if (line != null) {
     80                                                if (line != null && line.Length > 0) {
    8181                                                        line = line.Trim ();
    82 
    83                                                         if (!IsAuthenticated ()) {
    84                                                                 if (line.Equals (GamePrefs.GetString (EnumGamePrefs.TelnetPassword))) {
    85                                                                         authenticated = true;
    86                                                                         WriteLine ("Logon successful.");
    87                                                                         WriteLine (string.Empty);
    88                                                                         WriteLine (string.Empty);
    89                                                                         WriteLine (string.Empty);
    90                                                                         LoginMessage ();
     82                                                        if (line.Length > 0) {
     83                                                                if (!IsAuthenticated ()) {
     84                                                                        if (line.Equals (GamePrefs.GetString (EnumGamePrefs.TelnetPassword))) {
     85                                                                                authenticated = true;
     86                                                                                WriteLine ("Logon successful.");
     87                                                                                WriteLine (string.Empty);
     88                                                                                WriteLine (string.Empty);
     89                                                                                WriteLine (string.Empty);
     90                                                                                LoginMessage ();
     91                                                                        } else {
     92                                                                                if (owner.RegisterFailedLogin (endpointAddressHash)) {
     93                                                                                        WriteLine ("Password incorrect, please enter password:");
     94                                                                                } else {
     95                                                                                        WriteLine ("Too many failed login attempts!");
     96                                                                                        Thread.Sleep (100);
     97                                                                                        Close ();
     98                                                                                        Log.Out ("Telnet connection closed for too many login attempts: " + endpoint);
     99                                                                                        break;
     100                                                                                }
     101                                                                        }
    91102                                                                } else {
    92                                                                         if (owner.RegisterFailedLogin(endpointAddressHash)) {
    93                                                                                 WriteLine ("Password incorrect, please enter password:");
    94                                                                         } else {
    95                                                                                 WriteLine ("Too many failed login attempts!");
    96                                                                                 Thread.Sleep(100);
     103                                                                        if (line.ToLower ().Equals ("exit")) {
     104                                                                                Log.Out ("Telnet connection closed by client: " + endpoint);
    97105                                                                                Close ();
    98                                                                                 Log.Out ("Telnet connection closed for too many login attempts: " + endpoint);
    99106                                                                                break;
    100107                                                                        }
     108                                                                        Log.Out ("Telnet executed \"" + line + "\" from: " + endpoint);
     109                                                                        ConsoleOutputSeparator.QueueNetCommand (line, this);
    101110                                                                }
    102                                                         } else {
    103                                                                 if (line.ToLower ().Equals ("exit")) {
    104                                                                         Log.Out ("Telnet connection closed by client: " + endpoint);
    105                                                                         Close ();
    106                                                                         break;
    107                                                                 }
    108                                                                 Log.Out ("Telnet executed \"" + line + "\" from: " + endpoint);
    109                                                                 ConsoleOutputSeparator.QueueNetCommand (line, this);
    110111                                                        }
    111112                                                }
  • binary-improvements/7dtd-server-fixes/src/NetConnections/Servers/Web/StaticHandler.cs

    r154 r189  
    3030                                byte[] content;
    3131                                if (cache) {
    32                                         Monitor.Enter (fileCache);
    33                                         try {
     32                                        lock (fileCache) {
    3433                                                if (!fileCache.ContainsKey (fn)) {
    3534                                                        if (!File.Exists (datapath + "/" + fn)) {
     
    4140
    4241                                                content = fileCache [fn];
    43                                         } finally {
    44                                                 Monitor.Exit (fileCache);
    4542                                        }
    4643                                } else {
     
    5552                                resp.ContentLength64 = content.Length;
    5653                                resp.OutputStream.Write (content, 0, content.Length);
    57                         } catch (FileNotFoundException e) {
     54                        } catch (FileNotFoundException) {
    5855                                resp.StatusCode = (int)HttpStatusCode.NotFound;
    5956                                if (logMissingFiles)
Note: See TracChangeset for help on using the changeset viewer.