aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/OpenSim/Data/SQLite/SQLiteAuthenticationData.cs
diff options
context:
space:
mode:
Diffstat (limited to 'OpenSim/Data/SQLite/SQLiteAuthenticationData.cs')
-rw-r--r--OpenSim/Data/SQLite/SQLiteAuthenticationData.cs61
1 files changed, 47 insertions, 14 deletions
diff --git a/OpenSim/Data/SQLite/SQLiteAuthenticationData.cs b/OpenSim/Data/SQLite/SQLiteAuthenticationData.cs
index 271ed47..7dab6bf 100644
--- a/OpenSim/Data/SQLite/SQLiteAuthenticationData.cs
+++ b/OpenSim/Data/SQLite/SQLiteAuthenticationData.cs
@@ -52,12 +52,16 @@ namespace OpenSim.Data.SQLite
52 52
53 if (!m_initialized) 53 if (!m_initialized)
54 { 54 {
55 m_Connection = new SqliteConnection(connectionString);
56 m_Connection.Open();
57
55 using (SqliteConnection dbcon = new SqliteConnection(m_connectionString)) 58 using (SqliteConnection dbcon = new SqliteConnection(m_connectionString))
56 { 59 {
57 dbcon.Open(); 60 dbcon.Open();
58 Migration m = new Migration(dbcon, GetType().Assembly, "AuthStore"); 61 Migration m = new Migration(dbcon, GetType().Assembly, "AuthStore");
59 m.Update(); 62 m.Update();
60 } 63 }
64
61 m_initialized = true; 65 m_initialized = true;
62 } 66 }
63 } 67 }
@@ -105,7 +109,7 @@ namespace OpenSim.Data.SQLite
105 } 109 }
106 110
107 public bool Store(AuthenticationData data) 111 public bool Store(AuthenticationData data)
108 { 112 {
109 if (data.Data.ContainsKey("UUID")) 113 if (data.Data.ContainsKey("UUID"))
110 data.Data.Remove("UUID"); 114 data.Data.Remove("UUID");
111 115
@@ -117,31 +121,60 @@ namespace OpenSim.Data.SQLite
117 121
118 SqliteCommand cmd = new SqliteCommand(); 122 SqliteCommand cmd = new SqliteCommand();
119 123
120 string update = "update `"+m_Realm+"` set "; 124 if (Get(data.PrincipalID) != null)
121 bool first = true;
122 foreach (string field in fields)
123 { 125 {
124 if (!first)
125 update += ", ";
126 update += "`" + field + "` = " + data.Data[field];
127 126
128 first = false;
129 127
130 } 128 string update = "update `" + m_Realm + "` set ";
129 bool first = true;
130 foreach (string field in fields)
131 {
132 if (!first)
133 update += ", ";
134 update += "`" + field + "` = '" + data.Data[field] + "'";
131 135
132 update += " where UUID = '" + data.PrincipalID.ToString() + "'"; 136 first = false;
133 137
134 cmd.CommandText = update; 138 }
139
140 update += " where UUID = '" + data.PrincipalID.ToString() + "'";
141
142 cmd.CommandText = update;
143 Console.WriteLine("XXX " + cmd.CommandText);
144 try
145 {
146 if (ExecuteNonQuery(cmd) < 1)
147 {
148 cmd.Dispose();
149 return false;
150 }
151 }
152 catch
153 {
154 cmd.Dispose();
155 return false;
156 }
157 }
135 158
136 if (ExecuteNonQuery(cmd) < 1) 159 else
137 { 160 {
138 string insert = "insert into `" + m_Realm + "` (`UUID`, `" + 161 string insert = "insert into `" + m_Realm + "` (`UUID`, `" +
139 String.Join("`, `", fields) + 162 String.Join("`, `", fields) +
140 "`) values ('" + data.PrincipalID.ToString() + "', " + String.Join(", '", values) + "')"; 163 "`) values ('" + data.PrincipalID.ToString() + "', '" + String.Join("', '", values) + "')";
141 164
142 cmd.CommandText = insert; 165 cmd.CommandText = insert;
143 166
144 if (ExecuteNonQuery(cmd) < 1) 167 Console.WriteLine("XXX " + cmd.CommandText);
168
169 try
170 {
171 if (ExecuteNonQuery(cmd) < 1)
172 {
173 cmd.Dispose();
174 return false;
175 }
176 }
177 catch
145 { 178 {
146 cmd.Dispose(); 179 cmd.Dispose();
147 return false; 180 return false;