]> granicus.if.org Git - ejabberd/commitdiff
* odbc_queries: fix list_users query with prefix.
authorJérôme Sautret <jerome.sautret@process-one.net>
Tue, 12 Feb 2008 12:49:41 +0000 (12:49 +0000)
committerJérôme Sautret <jerome.sautret@process-one.net>
Tue, 12 Feb 2008 12:49:41 +0000 (12:49 +0000)
SVN Revision: 1187

src/odbc/odbc_queries.erl

index ff674505fe1500cf46ef3fb060c7817c1f8ae0ef..fe20fc972330c007d09ce09a95a47128a4b46ebc 100644 (file)
@@ -16,7 +16,7 @@
 %%% but WITHOUT ANY WARRANTY; without even the implied warranty of
 %%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 %%% General Public License for more details.
-%%%                         
+%%%
 %%% You should have received a copy of the GNU General Public License
 %%% along with this program; if not, write to the Free Software
 %%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
@@ -147,7 +147,7 @@ list_users(LServer, [{from, Start}, {to, End}]) when is_integer(Start) and
 list_users(LServer, [{prefix, Prefix}, {from, Start}, {to, End}]) when is_list(Prefix) and
                                                                        is_integer(Start) and
                                                                        is_integer(End) ->
-    list_users(LServer, [{prefix, Prefix}, {limit, End-Start}, {offset, Start}]);
+    list_users(LServer, [{prefix, Prefix}, {limit, End-Start}, {offset, Start-1}]);
 
 list_users(LServer, [{limit, Limit}, {offset, Offset}]) when is_integer(Limit) and
                                                              is_integer(Offset) ->
@@ -197,7 +197,7 @@ users_number(LServer, [{prefix, Prefix}]) when is_list(Prefix) ->
       LServer,
       io_lib:fwrite("select count(*) from users " ++
                     %% Warning: Escape prefix at higher level to prevent SQL
-                    %%          injection. 
+                    %%          injection.
                     "where username like '~s%'", [Prefix]));
 users_number(LServer, []) ->
     users_number(LServer).
@@ -356,15 +356,15 @@ set_private_data(_LServer, Username, LXMLNS, SData) ->
             ejabberd_odbc:sql_query_t(Query)
         end,
         set_private_data_sql(Username, LXMLNS, SData)).
-       
+
 set_private_data_sql(Username, LXMLNS, SData) ->
     [["delete from private_storage "
        "where username='", Username, "' and "
        "namespace='", LXMLNS, "';"],
       ["insert into private_storage(username, namespace, data) "
        "values ('", Username, "', '", LXMLNS, "', "
-       "'", SData, "');"]].    
-                                      
+       "'", SData, "');"]].
+
 get_private_data(LServer, Username, LXMLNS) ->
     ejabberd_odbc:sql_query(
                 LServer,
@@ -405,7 +405,7 @@ get_db_type() ->
 %% Queries can be either a fun or a list of queries
 sql_transaction(LServer, Queries) when is_list(Queries) ->
     %% SQL transaction based on a list of queries
-    %% This function automatically 
+    %% This function automatically
     F = fun() ->
        lists:foreach(fun(Query) ->
                ejabberd_odbc:sql_query(LServer, Query)
@@ -429,7 +429,7 @@ set_last_t(LServer, Username, Seconds, State) ->
 
 del_last(LServer, Username) ->
     ejabberd_odbc:sql_query(
-      LServer,      
+      LServer,
       ["EXECUTE dbo.del_last '", Username, "'"]).
 
 get_password(LServer, Username) ->
@@ -467,7 +467,7 @@ list_users(LServer) ->
 list_users(LServer, _) ->
     % scope listing not supported
     list_users(LServer).
-    
+
 users_number(LServer) ->
        ejabberd_odbc:sql_query(
              LServer,
@@ -520,7 +520,7 @@ get_roster_groups(LServer, Username, SJID) ->
     ejabberd_odbc:sql_query(
       LServer,
       ["EXECUTE dbo.get_roster_groups '", Username, "' , '", SJID, "'"]).
-    
+
 del_user_roster_t(LServer, Username) ->
     Result = ejabberd_odbc:sql_query(
                      LServer,
@@ -585,7 +585,7 @@ set_private_data(LServer, Username, LXMLNS, SData) ->
 
 set_private_data_sql(Username, LXMLNS, SData) ->
     ["EXECUTE dbo.set_private_data '", Username, "' , '", LXMLNS, "' , '", SData, "'"].
-           
+
 get_private_data(LServer, Username, LXMLNS) ->
     ejabberd_odbc:sql_query(
         LServer,