aboutsummaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs24
-rw-r--r--OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs28
-rwxr-xr-xbin/OpenSim.ini.example11
3 files changed, 34 insertions, 29 deletions
diff --git a/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs b/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs
index 9255791..e91e8b9 100644
--- a/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs
+++ b/OpenSim/Region/CoreModules/Scripting/EMailModules/EmailModule.cs
@@ -64,6 +64,8 @@ namespace OpenSim.Region.CoreModules.Scripting.EmailModules
64 private TimeSpan m_QueueTimeout = new TimeSpan(2, 0, 0); // 2 hours without llGetNextEmail drops the queue 64 private TimeSpan m_QueueTimeout = new TimeSpan(2, 0, 0); // 2 hours without llGetNextEmail drops the queue
65 private string m_InterObjectHostname = "lsl.opensim.local"; 65 private string m_InterObjectHostname = "lsl.opensim.local";
66 66
67 private int m_MaxEmailSize = 4096; // largest email allowed by default, as per lsl docs.
68
67 // Scenes by Region Handle 69 // Scenes by Region Handle
68 private Dictionary<ulong, Scene> m_Scenes = 70 private Dictionary<ulong, Scene> m_Scenes =
69 new Dictionary<ulong, Scene>(); 71 new Dictionary<ulong, Scene>();
@@ -127,6 +129,7 @@ namespace OpenSim.Region.CoreModules.Scripting.EmailModules
127 SMTP_SERVER_PORT = SMTPConfig.GetInt("SMTP_SERVER_PORT", SMTP_SERVER_PORT); 129 SMTP_SERVER_PORT = SMTPConfig.GetInt("SMTP_SERVER_PORT", SMTP_SERVER_PORT);
128 SMTP_SERVER_LOGIN = SMTPConfig.GetString("SMTP_SERVER_LOGIN", SMTP_SERVER_LOGIN); 130 SMTP_SERVER_LOGIN = SMTPConfig.GetString("SMTP_SERVER_LOGIN", SMTP_SERVER_LOGIN);
129 SMTP_SERVER_PASSWORD = SMTPConfig.GetString("SMTP_SERVER_PASSWORD", SMTP_SERVER_PASSWORD); 131 SMTP_SERVER_PASSWORD = SMTPConfig.GetString("SMTP_SERVER_PASSWORD", SMTP_SERVER_PASSWORD);
132 m_MaxEmailSize = SMTPConfig.GetInt("email_max_size", m_MaxEmailSize);
130 } 133 }
131 catch (Exception e) 134 catch (Exception e)
132 { 135 {
@@ -176,18 +179,6 @@ namespace OpenSim.Region.CoreModules.Scripting.EmailModules
176 get { return true; } 179 get { return true; }
177 } 180 }
178 181
179 /// <summary>
180 /// Delay function using thread in seconds
181 /// </summary>
182 /// <param name="seconds"></param>
183 private void DelayInSeconds(int delay)
184 {
185 delay = (int)((float)delay * 1000);
186 if (delay == 0)
187 return;
188 System.Threading.Thread.Sleep(delay);
189 }
190
191 private bool IsLocal(UUID objectID) 182 private bool IsLocal(UUID objectID)
192 { 183 {
193 string unused; 184 string unused;
@@ -267,10 +258,9 @@ namespace OpenSim.Region.CoreModules.Scripting.EmailModules
267 m_log.Error("[EMAIL] REGEX Problem in EMail Address: "+address); 258 m_log.Error("[EMAIL] REGEX Problem in EMail Address: "+address);
268 return; 259 return;
269 } 260 }
270 //FIXME:Check if subject + body = 4096 Byte 261 if ((subject.Length + body.Length) > m_MaxEmailSize)
271 if ((subject.Length + body.Length) > 1024)
272 { 262 {
273 m_log.Error("[EMAIL] subject + body > 1024 Byte"); 263 m_log.Error("[EMAIL] subject + body larger than limit of " + m_MaxEmailSize + " bytes");
274 return; 264 return;
275 } 265 }
276 266
@@ -345,10 +335,6 @@ namespace OpenSim.Region.CoreModules.Scripting.EmailModules
345 // TODO FIX 335 // TODO FIX
346 } 336 }
347 } 337 }
348
349 //DONE: Message as Second Life style
350 //20 second delay - AntiSpam System - for now only 10 seconds
351 DelayInSeconds(10);
352 } 338 }
353 339
354 /// <summary> 340 /// <summary>
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
index 5b5cab8..5bff2e9 100644
--- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
+++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs
@@ -106,6 +106,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
106 protected IUrlModule m_UrlModule = null; 106 protected IUrlModule m_UrlModule = null;
107 protected Dictionary<UUID, UserInfoCacheEntry> m_userInfoCache = 107 protected Dictionary<UUID, UserInfoCacheEntry> m_userInfoCache =
108 new Dictionary<UUID, UserInfoCacheEntry>(); 108 new Dictionary<UUID, UserInfoCacheEntry>();
109 protected int EMAIL_PAUSE_TIME = 20; // documented delay value for smtp.
109 110
110 public void Initialize(IScriptEngine ScriptEngine, SceneObjectPart host, TaskInventoryItem item) 111 public void Initialize(IScriptEngine ScriptEngine, SceneObjectPart host, TaskInventoryItem item)
111 { 112 {
@@ -113,6 +114,18 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
113 m_host = host; 114 m_host = host;
114 m_item = item; 115 m_item = item;
115 116
117 LoadLimits(); // read script limits from config.
118
119 m_TransferModule =
120 m_ScriptEngine.World.RequestModuleInterface<IMessageTransferModule>();
121 m_UrlModule = m_ScriptEngine.World.RequestModuleInterface<IUrlModule>();
122
123 AsyncCommands = new AsyncCommandManager(ScriptEngine);
124 }
125
126 /* load configuration items that affect script, object and run-time behavior. */
127 private void LoadLimits()
128 {
116 m_ScriptDelayFactor = 129 m_ScriptDelayFactor =
117 m_ScriptEngine.Config.GetFloat("ScriptDelayFactor", 1.0f); 130 m_ScriptEngine.Config.GetFloat("ScriptDelayFactor", 1.0f);
118 m_ScriptDistanceFactor = 131 m_ScriptDistanceFactor =
@@ -125,12 +138,12 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
125 m_ScriptEngine.Config.GetInt("NotecardLineReadCharsMax", 255); 138 m_ScriptEngine.Config.GetInt("NotecardLineReadCharsMax", 255);
126 if (m_notecardLineReadCharsMax > 65535) 139 if (m_notecardLineReadCharsMax > 65535)
127 m_notecardLineReadCharsMax = 65535; 140 m_notecardLineReadCharsMax = 65535;
128 141 // load limits for particular subsystems.
129 m_TransferModule = 142 IConfig SMTPConfig;
130 m_ScriptEngine.World.RequestModuleInterface<IMessageTransferModule>(); 143 if ((SMTPConfig = m_ScriptEngine.ConfigSource.Configs["SMTP"]) != null) {
131 m_UrlModule = m_ScriptEngine.World.RequestModuleInterface<IUrlModule>(); 144 // there's an smtp config, so load in the snooze time.
132 145 EMAIL_PAUSE_TIME = SMTPConfig.GetInt("email_pause_time", EMAIL_PAUSE_TIME);
133 AsyncCommands = new AsyncCommandManager(ScriptEngine); 146 }
134 } 147 }
135 148
136 public override Object InitializeLifetimeService() 149 public override Object InitializeLifetimeService()
@@ -2877,6 +2890,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
2877 2890
2878 public virtual void llSleep(double sec) 2891 public virtual void llSleep(double sec)
2879 { 2892 {
2893// m_log.Info("llSleep snoozing " + sec + "s.");
2880 m_host.AddScriptLPS(1); 2894 m_host.AddScriptLPS(1);
2881 Thread.Sleep((int)(sec * 1000)); 2895 Thread.Sleep((int)(sec * 1000));
2882 } 2896 }
@@ -3130,7 +3144,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
3130 } 3144 }
3131 3145
3132 emailModule.SendEmail(m_host.UUID, address, subject, message); 3146 emailModule.SendEmail(m_host.UUID, address, subject, message);
3133 ScriptSleep(20000); 3147 llSleep(EMAIL_PAUSE_TIME);
3134 } 3148 }
3135 3149
3136 public void llGetNextEmail(string address, string subject) 3150 public void llGetNextEmail(string address, string subject)
diff --git a/bin/OpenSim.ini.example b/bin/OpenSim.ini.example
index 50366a6..8e7e459 100755
--- a/bin/OpenSim.ini.example
+++ b/bin/OpenSim.ini.example
@@ -273,6 +273,12 @@
273 ;# {host_domain_header_from} {[Startup]emailmodule:DefaultEmailModule enabled:true} {From address to use in the sent email header?} {} 127.0.0.1 273 ;# {host_domain_header_from} {[Startup]emailmodule:DefaultEmailModule enabled:true} {From address to use in the sent email header?} {} 127.0.0.1
274 ; host_domain_header_from = "127.0.0.1" 274 ; host_domain_header_from = "127.0.0.1"
275 275
276 ;# {email_pause_time} {[Startup]emailmodule:DefaultEmailModule enabled:true} {Period in seconds to delay after an email is sent.} {} 20
277 ; email_pause_time = 20
278
279 ;# {email_max_size} {[Startup]emailmodule:DefaultEmailModule enabled:true} {Maximum total size of email in bytes.} {} 4096
280 ; email_max_size = 4096
281
276 ;# {SMTP_SERVER_HOSTNAME} {[Startup]emailmodule:DefaultEmailModule enabled:true} {SMTP server name?} {} 127.0.0.1 282 ;# {SMTP_SERVER_HOSTNAME} {[Startup]emailmodule:DefaultEmailModule enabled:true} {SMTP server name?} {} 127.0.0.1
277 ; SMTP_SERVER_HOSTNAME = "127.0.0.1" 283 ; SMTP_SERVER_HOSTNAME = "127.0.0.1"
278 284
@@ -285,7 +291,6 @@
285 ;# {SMTP_SERVER_PASSWORD} {[Startup]emailmodule:DefaultEmailModule enabled:true} {SMTP server password} {} 291 ;# {SMTP_SERVER_PASSWORD} {[Startup]emailmodule:DefaultEmailModule enabled:true} {SMTP server password} {}
286 ; SMTP_SERVER_PASSWORD = "" 292 ; SMTP_SERVER_PASSWORD = ""
287 293
288
289[Network] 294[Network]
290 ;; Configure the remote console user here. This will not actually be used 295 ;; Configure the remote console user here. This will not actually be used
291 ;; unless you use -console=rest at startup. 296 ;; unless you use -console=rest at startup.
@@ -677,7 +682,7 @@
677 ;; Sets the multiplier for the scripting delays 682 ;; Sets the multiplier for the scripting delays
678 ; ScriptDelayFactor = 1.0 683 ; ScriptDelayFactor = 1.0
679 684
680 ;; The factor the 10 m distances llimits are multiplied by 685 ;; The factor the 10 m distances limits are multiplied by
681 ; ScriptDistanceLimitFactor = 1.0 686 ; ScriptDistanceLimitFactor = 1.0
682 687
683 ;; Maximum length of notecard line read 688 ;; Maximum length of notecard line read
@@ -780,7 +785,7 @@
780 ;; groups service if the service is using these keys 785 ;; groups service if the service is using these keys
781 ; XmlRpcServiceReadKey = 1234 786 ; XmlRpcServiceReadKey = 1234
782 ; XmlRpcServiceWriteKey = 1234 787 ; XmlRpcServiceWriteKey = 1234
783 788
784[InterestManagement] 789[InterestManagement]
785 ;# {UpdatePrioritizationScheme} {} {Update prioritization scheme?} {BestAvatarResponsiveness Time Distance SimpleAngularDistance FrontBack} BestAvatarResponsiveness 790 ;# {UpdatePrioritizationScheme} {} {Update prioritization scheme?} {BestAvatarResponsiveness Time Distance SimpleAngularDistance FrontBack} BestAvatarResponsiveness
786 ;; This section controls how state updates are prioritized for each client 791 ;; This section controls how state updates are prioritized for each client