diff options
author | Sean Dague | 2007-07-16 15:40:11 +0000 |
---|---|---|
committer | Sean Dague | 2007-07-16 15:40:11 +0000 |
commit | 2a3c79df83e800d5dfe75a1a3b140ed81da2b1d6 (patch) | |
tree | e3f80ad51736cf17e856547b1bcf956010927434 /OpenSim/Region/Storage/LocalStorageSQLite/SQLiteLocalStorage.cs | |
parent | *Trunk compiles now (diff) | |
download | opensim-SC_OLD-2a3c79df83e800d5dfe75a1a3b140ed81da2b1d6.zip opensim-SC_OLD-2a3c79df83e800d5dfe75a1a3b140ed81da2b1d6.tar.gz opensim-SC_OLD-2a3c79df83e800d5dfe75a1a3b140ed81da2b1d6.tar.bz2 opensim-SC_OLD-2a3c79df83e800d5dfe75a1a3b140ed81da2b1d6.tar.xz |
changed to native line ending encoding
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Storage/LocalStorageSQLite/SQLiteLocalStorage.cs | 394 |
1 files changed, 197 insertions, 197 deletions
diff --git a/OpenSim/Region/Storage/LocalStorageSQLite/SQLiteLocalStorage.cs b/OpenSim/Region/Storage/LocalStorageSQLite/SQLiteLocalStorage.cs index 9900a98..599ff6c 100644 --- a/OpenSim/Region/Storage/LocalStorageSQLite/SQLiteLocalStorage.cs +++ b/OpenSim/Region/Storage/LocalStorageSQLite/SQLiteLocalStorage.cs | |||
@@ -1,198 +1,198 @@ | |||
1 | /* | 1 | /* |
2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ | 2 | * Copyright (c) Contributors, http://www.openmetaverse.org/ |
3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. | 3 | * See CONTRIBUTORS.TXT for a full list of copyright holders. |
4 | * | 4 | * |
5 | * Redistribution and use in source and binary forms, with or without | 5 | * Redistribution and use in source and binary forms, with or without |
6 | * modification, are permitted provided that the following conditions are met: | 6 | * modification, are permitted provided that the following conditions are met: |
7 | * * Redistributions of source code must retain the above copyright | 7 | * * Redistributions of source code must retain the above copyright |
8 | * notice, this list of conditions and the following disclaimer. | 8 | * notice, this list of conditions and the following disclaimer. |
9 | * * Redistributions in binary form must reproduce the above copyright | 9 | * * Redistributions in binary form must reproduce the above copyright |
10 | * notice, this list of conditions and the following disclaimer in the | 10 | * notice, this list of conditions and the following disclaimer in the |
11 | * documentation and/or other materials provided with the distribution. | 11 | * documentation and/or other materials provided with the distribution. |
12 | * * Neither the name of the OpenSim Project nor the | 12 | * * Neither the name of the OpenSim Project nor the |
13 | * names of its contributors may be used to endorse or promote products | 13 | * names of its contributors may be used to endorse or promote products |
14 | * derived from this software without specific prior written permission. | 14 | * derived from this software without specific prior written permission. |
15 | * | 15 | * |
16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY | 16 | * THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS AND ANY |
17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED | 17 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE | 18 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY | 19 | * DISCLAIMED. IN NO EVENT SHALL THE CONTRIBUTORS BE LIABLE FOR ANY |
20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES | 20 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; | 21 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND | 22 | * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT | 23 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | 24 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS |
25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | 25 | * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
26 | * | 26 | * |
27 | */ | 27 | */ |
28 | 28 | ||
29 | // SQLite Support | 29 | // SQLite Support |
30 | // A bad idea, but the IRC people told me to! | 30 | // A bad idea, but the IRC people told me to! |
31 | 31 | ||
32 | using System; | 32 | using System; |
33 | using System.Data; | 33 | using System.Data; |
34 | using System.Data.SQLite; | 34 | using System.Data.SQLite; |
35 | using libsecondlife; | 35 | using libsecondlife; |
36 | using OpenSim.Framework.Console; | 36 | using OpenSim.Framework.Console; |
37 | using OpenSim.Framework.Interfaces; | 37 | using OpenSim.Framework.Interfaces; |
38 | using OpenSim.Framework.Types; | 38 | using OpenSim.Framework.Types; |
39 | 39 | ||
40 | namespace OpenSim.Region.Storage.LocalStorageSQLite | 40 | namespace OpenSim.Region.Storage.LocalStorageSQLite |
41 | { | 41 | { |
42 | public class SQLiteLocalStorage : ILocalStorage | 42 | public class SQLiteLocalStorage : ILocalStorage |
43 | { | 43 | { |
44 | IDbConnection db; | 44 | IDbConnection db; |
45 | 45 | ||
46 | public SQLiteLocalStorage() | 46 | public SQLiteLocalStorage() |
47 | { | 47 | { |
48 | try | 48 | try |
49 | { | 49 | { |
50 | string connectionstring = "URI=file:localsim.sdb"; | 50 | string connectionstring = "URI=file:localsim.sdb"; |
51 | db = (IDbConnection)new SQLiteConnection(connectionstring); | 51 | db = (IDbConnection)new SQLiteConnection(connectionstring); |
52 | db.Open(); | 52 | db.Open(); |
53 | } | 53 | } |
54 | catch (Exception e) | 54 | catch (Exception e) |
55 | { | 55 | { |
56 | db.Close(); | 56 | db.Close(); |
57 | MainLog.Instance.Warn("SQLiteLocalStorage :Constructor - Exception occured"); | 57 | MainLog.Instance.Warn("SQLiteLocalStorage :Constructor - Exception occured"); |
58 | MainLog.Instance.Warn(e.ToString()); | 58 | MainLog.Instance.Warn(e.ToString()); |
59 | } | 59 | } |
60 | } | 60 | } |
61 | 61 | ||
62 | public void Initialise(string file) | 62 | public void Initialise(string file) |
63 | { | 63 | { |
64 | // Blank | 64 | // Blank |
65 | } | 65 | } |
66 | 66 | ||
67 | public void StorePrim(PrimData prim) | 67 | public void StorePrim(PrimData prim) |
68 | { | 68 | { |
69 | IDbCommand cmd = db.CreateCommand(); | 69 | IDbCommand cmd = db.CreateCommand(); |
70 | 70 | ||
71 | //SECURITY WARNING: | 71 | //SECURITY WARNING: |
72 | // These parameters wont produce SQL injections since they are all integer based, however. | 72 | // These parameters wont produce SQL injections since they are all integer based, however. |
73 | // if inserting strings such as name or description, you will need to use appropriate | 73 | // if inserting strings such as name or description, you will need to use appropriate |
74 | // measures to prevent SQL injection (although the value of SQL injection in this is limited). | 74 | // measures to prevent SQL injection (although the value of SQL injection in this is limited). |
75 | 75 | ||
76 | string sql = "REPLACE INTO prim (OwnerID,PCode,PathBegin,PathEnd,PathScaleX,PathScaleY,PathShearX,PathShearY,PathSkew,ProfileBegin,ProfileEnd,Scale,PathCurve,ProfileCurve,ParentID,ProfileHollow,PathRadiusOffset,PathRevolutions,PathTaperX,PathTaperY,PathTwist,PathTwistBegin,Texture,CreationDate,OwnerMask,NextOwnerMask,GroupMask,EveryoneMask,BaseMask,Position,Rotation,LocalID,FullID) "; | 76 | string sql = "REPLACE INTO prim (OwnerID,PCode,PathBegin,PathEnd,PathScaleX,PathScaleY,PathShearX,PathShearY,PathSkew,ProfileBegin,ProfileEnd,Scale,PathCurve,ProfileCurve,ParentID,ProfileHollow,PathRadiusOffset,PathRevolutions,PathTaperX,PathTaperY,PathTwist,PathTwistBegin,Texture,CreationDate,OwnerMask,NextOwnerMask,GroupMask,EveryoneMask,BaseMask,Position,Rotation,LocalID,FullID) "; |
77 | sql += "VALUES ("; | 77 | sql += "VALUES ("; |
78 | sql += "\"" + prim.OwnerID.ToStringHyphenated() + "\","; // KILL ME NOW! | 78 | sql += "\"" + prim.OwnerID.ToStringHyphenated() + "\","; // KILL ME NOW! |
79 | sql += "\"" + prim.PCode.ToString() + "\","; | 79 | sql += "\"" + prim.PCode.ToString() + "\","; |
80 | sql += "\"" + prim.PathBegin.ToString() + "\","; | 80 | sql += "\"" + prim.PathBegin.ToString() + "\","; |
81 | sql += "\"" + prim.PathEnd.ToString() + "\","; | 81 | sql += "\"" + prim.PathEnd.ToString() + "\","; |
82 | sql += "\"" + prim.PathScaleX.ToString() + "\","; | 82 | sql += "\"" + prim.PathScaleX.ToString() + "\","; |
83 | sql += "\"" + prim.PathScaleY.ToString() + "\","; | 83 | sql += "\"" + prim.PathScaleY.ToString() + "\","; |
84 | sql += "\"" + prim.PathShearX.ToString() + "\","; | 84 | sql += "\"" + prim.PathShearX.ToString() + "\","; |
85 | sql += "\"" + prim.PathShearY.ToString() + "\","; | 85 | sql += "\"" + prim.PathShearY.ToString() + "\","; |
86 | sql += "\"" + prim.PathSkew.ToString() + "\","; | 86 | sql += "\"" + prim.PathSkew.ToString() + "\","; |
87 | sql += "\"" + prim.ProfileBegin.ToString() + "\","; | 87 | sql += "\"" + prim.ProfileBegin.ToString() + "\","; |
88 | sql += "\"" + prim.ProfileEnd.ToString() + "\","; | 88 | sql += "\"" + prim.ProfileEnd.ToString() + "\","; |
89 | sql += "\"" + prim.Scale.ToString() + "\","; | 89 | sql += "\"" + prim.Scale.ToString() + "\","; |
90 | sql += "\"" + prim.PathCurve.ToString() + "\","; | 90 | sql += "\"" + prim.PathCurve.ToString() + "\","; |
91 | sql += "\"" + prim.ProfileCurve.ToString() + "\","; | 91 | sql += "\"" + prim.ProfileCurve.ToString() + "\","; |
92 | sql += "\"" + prim.ParentID.ToString() + "\","; | 92 | sql += "\"" + prim.ParentID.ToString() + "\","; |
93 | sql += "\"" + prim.ProfileHollow.ToString() + "\","; | 93 | sql += "\"" + prim.ProfileHollow.ToString() + "\","; |
94 | sql += "\"" + prim.PathRadiusOffset.ToString() + "\","; | 94 | sql += "\"" + prim.PathRadiusOffset.ToString() + "\","; |
95 | sql += "\"" + prim.PathRevolutions.ToString() + "\","; | 95 | sql += "\"" + prim.PathRevolutions.ToString() + "\","; |
96 | sql += "\"" + prim.PathTaperX.ToString() + "\","; | 96 | sql += "\"" + prim.PathTaperX.ToString() + "\","; |
97 | sql += "\"" + prim.PathTaperY.ToString() + "\","; | 97 | sql += "\"" + prim.PathTaperY.ToString() + "\","; |
98 | sql += "\"" + prim.PathTwist.ToString() + "\","; | 98 | sql += "\"" + prim.PathTwist.ToString() + "\","; |
99 | sql += "\"" + prim.PathTwistBegin.ToString() + "\","; | 99 | sql += "\"" + prim.PathTwistBegin.ToString() + "\","; |
100 | sql += "\"" + prim.TextureEntry.ToString() + "\","; | 100 | sql += "\"" + prim.TextureEntry.ToString() + "\","; |
101 | sql += "\"" + prim.CreationDate.ToString() + "\","; | 101 | sql += "\"" + prim.CreationDate.ToString() + "\","; |
102 | sql += "\"" + prim.OwnerMask.ToString() + "\","; | 102 | sql += "\"" + prim.OwnerMask.ToString() + "\","; |
103 | sql += "\"" + prim.NextOwnerMask.ToString() + "\","; | 103 | sql += "\"" + prim.NextOwnerMask.ToString() + "\","; |
104 | sql += "\"" + prim.GroupMask.ToString() + "\","; | 104 | sql += "\"" + prim.GroupMask.ToString() + "\","; |
105 | sql += "\"" + prim.EveryoneMask.ToString() + "\","; | 105 | sql += "\"" + prim.EveryoneMask.ToString() + "\","; |
106 | sql += "\"" + prim.BaseMask.ToString() + "\","; | 106 | sql += "\"" + prim.BaseMask.ToString() + "\","; |
107 | sql += "\"" + prim.Position.ToString() + "\","; | 107 | sql += "\"" + prim.Position.ToString() + "\","; |
108 | sql += "\"" + prim.Rotation.ToString() + "\","; | 108 | sql += "\"" + prim.Rotation.ToString() + "\","; |
109 | sql += "\"" + prim.LocalID.ToString() + "\","; | 109 | sql += "\"" + prim.LocalID.ToString() + "\","; |
110 | sql += "\"" + prim.FullID.ToString() + "\")"; | 110 | sql += "\"" + prim.FullID.ToString() + "\")"; |
111 | 111 | ||
112 | cmd.CommandText = sql; | 112 | cmd.CommandText = sql; |
113 | 113 | ||
114 | try | 114 | try |
115 | { | 115 | { |
116 | cmd.ExecuteNonQuery(); | 116 | cmd.ExecuteNonQuery(); |
117 | } | 117 | } |
118 | catch (Exception e) | 118 | catch (Exception e) |
119 | { | 119 | { |
120 | MainLog.Instance.Warn("SQLiteLocalStorage :StorePrim - Exception occured"); | 120 | MainLog.Instance.Warn("SQLiteLocalStorage :StorePrim - Exception occured"); |
121 | MainLog.Instance.Warn(e.ToString()); | 121 | MainLog.Instance.Warn(e.ToString()); |
122 | } | 122 | } |
123 | 123 | ||
124 | cmd.Dispose(); | 124 | cmd.Dispose(); |
125 | cmd = null; | 125 | cmd = null; |
126 | } | 126 | } |
127 | 127 | ||
128 | public void RemovePrim(LLUUID primID) | 128 | public void RemovePrim(LLUUID primID) |
129 | { | 129 | { |
130 | IDbCommand cmd = db.CreateCommand(); | 130 | IDbCommand cmd = db.CreateCommand(); |
131 | 131 | ||
132 | //SECURITY WARNING: | 132 | //SECURITY WARNING: |
133 | // These parameters wont produce SQL injections since they are all integer based, however. | 133 | // These parameters wont produce SQL injections since they are all integer based, however. |
134 | // if inserting strings such as name or description, you will need to use appropriate | 134 | // if inserting strings such as name or description, you will need to use appropriate |
135 | // measures to prevent SQL injection (although the value of SQL injection in this is limited). | 135 | // measures to prevent SQL injection (although the value of SQL injection in this is limited). |
136 | 136 | ||
137 | string sql = "DELETE FROM prim WHERE FullID = \"" + primID.ToStringHyphenated() + "\""; | 137 | string sql = "DELETE FROM prim WHERE FullID = \"" + primID.ToStringHyphenated() + "\""; |
138 | 138 | ||
139 | cmd.CommandText = sql; | 139 | cmd.CommandText = sql; |
140 | 140 | ||
141 | try | 141 | try |
142 | { | 142 | { |
143 | cmd.ExecuteNonQuery(); | 143 | cmd.ExecuteNonQuery(); |
144 | } | 144 | } |
145 | catch (Exception e) | 145 | catch (Exception e) |
146 | { | 146 | { |
147 | MainLog.Instance.Warn("SQLiteLocalStorage :RemovePrim - Exception occured"); | 147 | MainLog.Instance.Warn("SQLiteLocalStorage :RemovePrim - Exception occured"); |
148 | MainLog.Instance.Warn(e.ToString()); | 148 | MainLog.Instance.Warn(e.ToString()); |
149 | } | 149 | } |
150 | 150 | ||
151 | cmd.Dispose(); | 151 | cmd.Dispose(); |
152 | cmd = null; | 152 | cmd = null; |
153 | } | 153 | } |
154 | 154 | ||
155 | public void LoadPrimitives(ILocalStorageReceiver receiver) | 155 | public void LoadPrimitives(ILocalStorageReceiver receiver) |
156 | { | 156 | { |
157 | 157 | ||
158 | } | 158 | } |
159 | 159 | ||
160 | public float[] LoadWorld() | 160 | public float[] LoadWorld() |
161 | { | 161 | { |
162 | return new float[65536]; | 162 | return new float[65536]; |
163 | } | 163 | } |
164 | 164 | ||
165 | public void SaveMap(float[] heightmap) | 165 | public void SaveMap(float[] heightmap) |
166 | { | 166 | { |
167 | 167 | ||
168 | } | 168 | } |
169 | 169 | ||
170 | public void SaveParcels(ParcelData[] parcel_manager) | 170 | public void SaveParcels(ParcelData[] parcel_manager) |
171 | { | 171 | { |
172 | 172 | ||
173 | } | 173 | } |
174 | 174 | ||
175 | public void SaveParcel(ParcelData parcel) | 175 | public void SaveParcel(ParcelData parcel) |
176 | { | 176 | { |
177 | } | 177 | } |
178 | 178 | ||
179 | public void RemoveParcel(ParcelData parcel) | 179 | public void RemoveParcel(ParcelData parcel) |
180 | { | 180 | { |
181 | } | 181 | } |
182 | 182 | ||
183 | public void RemoveAllParcels() | 183 | public void RemoveAllParcels() |
184 | { | 184 | { |
185 | } | 185 | } |
186 | 186 | ||
187 | public void LoadParcels(ILocalStorageParcelReceiver recv) | 187 | public void LoadParcels(ILocalStorageParcelReceiver recv) |
188 | { | 188 | { |
189 | recv.NoParcelDataFromStorage(); | 189 | recv.NoParcelDataFromStorage(); |
190 | } | 190 | } |
191 | 191 | ||
192 | public void ShutDown() | 192 | public void ShutDown() |
193 | { | 193 | { |
194 | db.Close(); | 194 | db.Close(); |
195 | db = null; | 195 | db = null; |
196 | } | 196 | } |
197 | } | 197 | } |
198 | } \ No newline at end of file | 198 | } \ No newline at end of file |