52 char timestamp[18], telem[5];
56 memset(&tm, 0,
sizeof(
struct tm));
61 if((ret = storage_get(mod->
mm->
sm->
st,
"motd-message", domain, NULL, &os)) == st_SUCCESS) {
63 o = os_iter_object(os);
64 if(os_object_get_nad(os, o,
"xml", &nad)) {
73 telem[0] = timestamp[0];
74 telem[1] = timestamp[1];
75 telem[2] = timestamp[2];
76 telem[3] = timestamp[3];
78 tm.tm_year = atoi(telem) - 1900;
81 telem[0] = timestamp[4];
82 telem[1] = timestamp[5];
84 tm.tm_mon = atoi(telem) - 1;
87 telem[0] = timestamp[6];
88 telem[1] = timestamp[7];
89 tm.tm_mday = atoi(telem);
92 telem[0] = timestamp[9];
93 telem[1] = timestamp[10];
94 tm.tm_hour = atoi(telem);
97 telem[0] = timestamp[12];
98 telem[1] = timestamp[13];
99 tm.tm_min = atoi(telem);
102 telem[0] = timestamp[15];
103 telem[1] = timestamp[16];
104 tm.tm_sec = atoi(telem);
106 data->
t = timegm(&tm);
113 if(data->
tos != NULL)
115 data->
tos = os_new();
116 os_object_put(os_object_new(data->
tos),
"time", &data->
t, os_type_INTEGER);
129 if(data->
nad == NULL) {
133 if(data->
nad == NULL)
141 storage_get(sess->
user->
sm->
st,
"motd-times",
jid_user(sess->
jid), NULL, &os) == st_SUCCESS) {
143 o = os_iter_object(os);
144 os_object_get_time(os, o,
"time", &t);
180 for(sess = user->
sessions; sess != NULL; sess = sess->
next) {
248 store =
pkt_dup(pkt, NULL, NULL);
254 o = os_object_new(os);
256 os_object_put(o,
"xml", store->nad, os_type_NAD);
259 ret = storage_replace(mod->
mm->
sm->
st,
"motd-message", pkt->
to->
domain, NULL, os);
276 if(data->
nad != NULL)
278 data->
nad = store->nad;
285 if(data->
tos != NULL)
287 data->
tos = os_new();
288 os_object_put(os_object_new(data->
tos),
"time", &t, os_type_INTEGER);
291 else if(strcmp(&(pkt->
to->
resource[8]),
"/online") != 0) {
314 storage_delete(mi->
sm->
st,
"motd-times",
jid_user(jid), NULL);
321 if(data->
tos != NULL) os_free(data->
tos);
329 if(mod->
init)
return 0;