| CODENOTIFIER | HelpYou are not signed inSign in |
Project: ejabberd
Revision: 1596
Author: jsautret
Date: 03 Oct 2008 11:30:56
Changes:* src/mod_vcard_odbc: added vCard support for MS SQL Server 2005 (missing from previous commit)
Files:| ... | ...@@ -16,7 +16,7 @@ | |
| 16 | 16 | %%% but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 17 | 17 | %%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 18 | 18 | %%% General Public License for more details. |
| 19 | %%% | |
| 19 | %%% | |
| 20 | 20 | %%% You should have received a copy of the GNU General Public License |
| 21 | 21 | %%% along with this program; if not, write to the Free Software |
| 22 | 22 | %%% Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA |
| ... | ...@@ -96,7 +96,7 @@ | |
| 96 | 96 | |
| 97 | 97 | get_sm_features({error, _Error} = Acc, _From, _To, _Node, _Lang) -> |
| 98 | 98 | Acc; |
| 99 | ||
| 99 | ||
| 100 | 100 | get_sm_features(Acc, _From, _To, Node, _Lang) -> |
| 101 | 101 | case Node of |
| 102 | 102 | [] -> |
| ... | ...@@ -148,10 +148,7 @@ | |
| 148 | 148 | get -> |
| 149 | 149 | #jid{luser = LUser, lserver = LServer} = To, |
| 150 | 150 | Username = ejabberd_odbc:escape(LUser), |
| 151 | case catch ejabberd_odbc:sql_query( | |
| 152 | LServer, | |
| 153 | ["select vcard from vcard " | |
| 154 | "where username='", Username, "';"]) of | |
| 151 | case catch odbc_queries:get_vcard(LServer, Username) of | |
| 155 | 152 | {selected, ["vcard"], [{SVCARD}]} -> |
| 156 | 153 | case xml_stream:parse_element(SVCARD) of |
| 157 | 154 | {error, _Reason} -> |
| ... | ...@@ -244,30 +241,13 @@ | |
| 244 | 241 | SOrgUnit = ejabberd_odbc:escape(OrgUnit), |
| 245 | 242 | SLOrgUnit = ejabberd_odbc:escape(LOrgUnit), |
| 246 | 243 | |
| 247 | ejabberd_odbc:sql_transaction( | |
| 248 | LServer, | |
| 249 | [["delete from vcard where username='", LUsername, "';"], | |
| 250 | ["insert into vcard(username, vcard) " | |
| 251 | "values ('", LUsername, "', '", SVCARD, "');"], | |
| 252 | ["delete from vcard_search where lusername='", LUsername, "';"], | |
| 253 | ["insert into vcard_search(" | |
| 254 | " username, lusername, fn, lfn, family, lfamily," | |
| 255 | " given, lgiven, middle, lmiddle, nickname, lnickname," | |
| 256 | " bday, lbday, ctry, lctry, locality, llocality," | |
| 257 | " email, lemail, orgname, lorgname, orgunit, lorgunit)" | |
| 258 | "values (", | |
| 259 | " '", Username, "', '", LUsername, "'," | |
| 260 | " '", SFN, "', '", SLFN, "'," | |
| 261 | " '", SFamily, "', '", SLFamily, "'," | |
| 262 | " '", SGiven, "', '", SLGiven, "'," | |
| 263 | " '", SMiddle, "', '", SLMiddle, "'," | |
| 264 | " '", SNickname, "', '", SLNickname, "'," | |
| 265 | " '", SBDay, "', '", SLBDay, "'," | |
| 266 | " '", SCTRY, "', '", SLCTRY, "'," | |
| 267 | " '", SLocality, "', '", SLLocality, "'," | |
| 268 | " '", SEMail, "', '", SLEMail, "'," | |
| 269 | " '", SOrgName, "', '", SLOrgName, "'," | |
| 270 | " '", SOrgUnit, "', '", SLOrgUnit, "');"]]) | |
| 244 | odbc_queries:set_vcard(LServer, LUsername, SBDay, SCTRY, SEMail, | |
| 245 | SFN, SFamily, SGiven, SLBDay, SLCTRY, | |
| 246 | SLEMail, SLFN, SLFamily, SLGiven, | |
| 247 | SLLocality, SLMiddle, SLNickname, | |
| 248 | SLOrgName, SLOrgUnit, SLocality, | |
| 249 | SMiddle, SNickname, SOrgName, | |
| 250 | SOrgUnit, SVCARD, Username) | |
| 271 | 251 | end. |
| 272 | 252 | |
| 273 | 253 | -define(TLFIELD(Type, Label, Var), |
| ... | ...@@ -392,7 +372,7 @@ | |
| 392 | 372 | Packet, ?ERR_NOT_ALLOWED), |
| 393 | 373 | ejabberd_router:route(To, From, Err); |
| 394 | 374 | get -> |
| 395 | ResIQ = | |
| 375 | ResIQ = | |
| 396 | 376 | IQ#iq{type = result, |
| 397 | 377 | sub_el = [{xmlelement, |
| 398 | 378 | "query", |
| ... | ...@@ -403,7 +383,7 @@ | |
| 403 | 383 | jlib:iq_to_xml(ResIQ)) |
| 404 | 384 | end; |
| 405 | 385 | #iq{type = get, xmlns = ?NS_VCARD, lang = Lang} -> |
| 406 | ResIQ = | |
| 386 | ResIQ = | |
| 407 | 387 | IQ#iq{type = result, |
| 408 | 388 | sub_el = [{xmlelement, |
| 409 | 389 | "vCard", |
| ... | ...@@ -635,18 +615,18 @@ | |
| 635 | 615 | % true -> |
| 636 | 616 | % mnesia:write( |
| 637 | 617 | % #vcard_search{us = US, |
| 638 | % user = User, luser = LUser, | |
| 639 | % fn = FN, lfn = LFN, | |
| 640 | % family = Family, lfamily = LFamily, | |
| 641 | % given = Given, lgiven = LGiven, | |
| 642 | % middle = Middle, lmiddle = LMiddle, | |
| 643 | % nickname = Nickname, lnickname = LNickname, | |
| 644 | % bday = BDay, lbday = LBDay, | |
| 645 | % ctry = CTRY, lctry = LCTRY, | |
| 646 | % locality = Locality, llocality = LLocality, | |
| 647 | % email = EMail, lemail = LEMail, | |
| 648 | % orgname = OrgName, lorgname = LOrgName, | |
| 649 | % orgunit = OrgUnit, lorgunit = LOrgUnit | |
| 618 | % user = User, luser = LUser, | |
| 619 | % fn = FN, lfn = LFN, | |
| 620 | % family = Family, lfamily = LFamily, | |
| 621 | % given = Given, lgiven = LGiven, | |
| 622 | % middle = Middle, lmiddle = LMiddle, | |
| 623 | % nickname = Nickname, lnickname = LNickname, | |
| 624 | % bday = BDay, lbday = LBDay, | |
| 625 | % ctry = CTRY, lctry = LCTRY, | |
| 626 | % locality = Locality, llocality = LLocality, | |
| 627 | % email = EMail, lemail = LEMail, | |
| 628 | % orgname = OrgName, lorgname = LOrgName, | |
| 629 | % orgunit = OrgUnit, lorgunit = LOrgUnit | |
| 650 | 630 | % }) |
| 651 | 631 | % end. |
| 652 | 632 | % |
| ... | ...@@ -666,5 +646,3 @@ | |
| 666 | 646 | LServer, |
| 667 | 647 | [["delete from vcard where username='", Username, "';"], |
| 668 | 648 | ["delete from vcard_search where lusername='", Username, "';"]]). |
| 669 | ||
| 670 |