30 #define uri_VCARD "vcard-temp"
33 #define VCARD_MAX_FIELD_SIZE (16384)
52 "N/FAMILY",
"n-family",
54 "N/MIDDLE",
"n-middle",
55 "N/PREFIX",
"n-prefix",
56 "N/SUFFIX",
"n-suffix",
57 "NICKNAME",
"nickname",
58 "PHOTO/TYPE",
"photo-type",
59 "PHOTO/BINVAL",
"photo-binval",
60 "PHOTO/EXTVAL",
"photo-extval",
62 "ADR/POBOX",
"adr-pobox",
63 "ADR/EXTADD",
"adr-extadd",
64 "ADR/STREET",
"adr-street",
65 "ADR/LOCALITY",
"adr-locality",
66 "ADR/REGION",
"adr-region",
67 "ADR/PCODE",
"adr-pcode",
68 "ADR/CTRY",
"adr-country",
70 "EMAIL/USERID",
"email",
71 "JABBERID",
"jabberid",
78 "LOGO/TYPE",
"logo-type",
79 "LOGO/BINVAL",
"logo-binval",
80 "LOGO/EXTVAL",
"logo-extval",
81 "AGENT/EXTVAL",
"agent-extval",
82 "ORG/ORGNAME",
"org-orgname",
83 "ORG/ORGUNIT",
"org-orgunit",
86 "SORT-STRING",
"sort-string",
87 "SOUND/PHONETIC",
"sound-phonetic",
88 "SOUND/BINVAL",
"sound-binval",
89 "SOUND/EXTVAL",
"sound-extval",
93 "KEY/TYPE",
"key-type",
94 "KEY/CRED",
"key-cred",
102 char ekey[10], *cdata;
103 const char *vkey, *dkey, *vskey;
110 o = os_object_new(os);
118 if( !strcmp(vkey,
"PHOTO/BINVAL") ) {
124 vskey = strchr(vkey,
'/');
129 sprintf(ekey,
"%.*s", (
int) (vskey - vkey), vkey);
142 cdata = malloc(fieldsize);
145 cdata[fieldsize-1] =
'\0';
146 os_object_put(o, dkey, cdata, os_type_STRING);
158 char ekey[10], *dval;
159 const char *vkey, *dkey, *vskey;
163 pkt =
pkt_create(sm,
"iq",
"result", NULL, NULL);
166 if(!os_iter_first(os))
168 o = os_iter_object(os);
176 if(!os_object_get_str(os, o, dkey, &dval))
179 vskey = strchr(vkey,
'/');
184 sprintf(ekey,
"%.*s", (
int) (vskey - vkey), vkey);
191 log_debug(
ZONE,
"extracted dbkey %s val '%s' for vcard key %s", dkey, dval, vkey);
300 ret = storage_get(mi->
sm->
st,
"vcard", pkt->
to->
domain, NULL, &os);
351 ret = storage_get(user->
sm->
st,
"vcard",
jid_user(user->
jid), NULL, &os);
389 storage_delete(mi->
sm->
st,
"vcard",
jid_user(jid), NULL);
402 if(mod->
init)
return 0;