abyss_bool HandleTime(TSession *r) { char z[50]; time_t ltime; TDate date; const char * dateString; const char * answer; if (strcmp(r->uri,"/time")!=0) return FALSE; if (!RequestAuth(r,"Mot de passe","moez","hello")) return TRUE; time(<ime); DateFromGMT(&date, ltime); DateToString(&date, &dateString); xmlrpc_asprintf(&answer, "The time is %s", dateString); Answer(r, 200, answer); xmlrpc_strfree(dateString); xmlrpc_strfree(answer); return TRUE; }
abyss_bool DateInit(void) { time_t t; TDate gmt,local,*d; time(&t); if (DateFromGMT(&gmt,t)) { d=localtime(&t); if (d) { local=*d; _DateTimeBias = (local.tm_sec-gmt.tm_sec)+(local.tm_min-gmt.tm_min)*60 +(local.tm_hour-gmt.tm_hour)*3600; sprintf(_DateTimeBiasStr, "%+03d%02d", _DateTimeBias/3600,(abs(_DateTimeBias) % 3600)/60); return TRUE; }; } return FALSE; }
abyss_bool DateFromLocal(TDate *d,time_t t) { return DateFromGMT(d,t+_DateTimeBias*2); }