+ if (e.SocketErrorCode != SocketError.AddressAlreadyInUse)\r
+ throw;\r
+ if (WarnConflictPortNumber("プロキシサーバー", _config.Proxy.Listen, _config.Proxy.Auto) == DialogResult.No ||\r
+ !_config.Proxy.Auto)\r
+ {\r
+ _systemProxy.RestoreSettings();\r
+ return false;\r
+ }\r
+ HttpProxy.Startup(0, false, false);\r
+ _config.Proxy.Listen = HttpProxy.LocalPort;\r
+ }\r
+ return true;\r
+ }\r
+\r
+ private DialogResult WarnConflictPortNumber(string name, int port, bool auto)\r
+ {\r
+ var msg = $"{name}のポート番号{port}は他のアプリケーションが使用中です。";\r
+ var cap = "ポート番号の衝突";\r
+ return auto\r
+ ? MessageBox.Show(this, msg + "自動的に別の番号を割り当てますか?", cap,\r
+ MessageBoxButtons.YesNo, MessageBoxIcon.Question)\r
+ : MessageBox.Show(this, msg + "設定ダイアログでポート番号を変更してください。", cap,\r
+ MessageBoxButtons.OK, MessageBoxIcon.Exclamation);\r
+ }\r
+\r
+ public bool ApplyLogSetting()\r
+ {\r
+ var result = true;\r
+ if (_config.Log.ServerOn)\r
+ {\r
+ result = StartLogServer();\r
+ }\r
+ else\r
+ {\r
+ _logServer?.Stop();\r
+ _logServer = null;\r