void get_system_time(uuid_time_t *uuid_time) { /* Offset between UUID formatted times and Unix formatted times. UUID UTC base time is October 15, 1582. Unix base time is January 1, 1970.*/ *uuid_time = ((unsigned64_t)my_time() * 10000) + 0x01B21DD213814000LL; }
int main(int argc, char **argv) { if (argc != 3) my_error("Error 1: You must enter two arguments to launch the client", 1); if (my_getnbr(argv[1]) <= 0) my_error("Error 2: You must enter a strict positive PID (arg 1)", 2); my_time(my_getnbr(argv[1])); my_send(my_getnbr(argv[1]), argv[2]); return (0); }
int Receiving_MSS_Reporter::get_received_throughput_kbps() { int result = 0; uint64_t now_ms = my_time(); if(timestampOfLastReceivingThroughtputGet_ms != 0 && now_ms > timestampOfLastReceivingThroughtputGet_ms) { uint64_t localTotalReceivedPacketSize = totalReceivedPacketSize; result = (localTotalReceivedPacketSize - lastReportedTotalReceivedPacketSize) * 8 / (now_ms - timestampOfLastReceivingThroughtputGet_ms); lastReportedTotalReceivedPacketSize = localTotalReceivedPacketSize; } timestampOfLastReceivingThroughtputGet_ms = now_ms; return result; }
time_t my_time_possible_from_micro(ulonglong microtime __attribute__((unused))) { #if defined(__WIN__) time_t t; while ((t= time(0)) == (time_t) -1) {} return t; #elif defined(HAVE_GETHRTIME) return my_time(0); /* Cached time */ #else return (time_t) (microtime / 1000000); #endif /* defined(__WIN__) */ }
void get_date(register char * to, int flag, time_t date) { reg2 struct tm *start_time; time_t skr; #if defined(HAVE_LOCALTIME_R) && defined(_REENTRANT) struct tm tm_tmp; #endif skr=date ? (time_t) date : my_time(0); #if defined(HAVE_LOCALTIME_R) && defined(_REENTRANT) if (flag & GETDATE_GMT) gmtime_r(&skr,&tm_tmp); else localtime_r(&skr,&tm_tmp); start_time= &tm_tmp; #else if (flag & GETDATE_GMT) start_time= gmtime(&skr); else start_time= localtime(&skr); #endif if (flag & GETDATE_SHORT_DATE) sprintf(to,"%02d%02d%02d", start_time->tm_year % 100, start_time->tm_mon+1, start_time->tm_mday); else sprintf(to, ((flag & GETDATE_FIXEDLENGTH) ? "%4d-%02d-%02d" : "%d-%02d-%02d"), start_time->tm_year+1900, start_time->tm_mon+1, start_time->tm_mday); if (flag & GETDATE_DATE_TIME) sprintf(strend(to), ((flag & GETDATE_FIXEDLENGTH) ? " %02d:%02d:%02d" : " %2d:%02d:%02d"), start_time->tm_hour, start_time->tm_min, start_time->tm_sec); else if (flag & GETDATE_HHMMSSTIME) sprintf(strend(to),"%02d%02d%02d", start_time->tm_hour, start_time->tm_min, start_time->tm_sec); } /* get_date */
int apc_rfc1867_progress(apc_rfc1867_data *rfc1867ApcData, unsigned int event, void *event_data, void **extra) { switch (event) { case MULTIPART_EVENT_START: { multipart_event_start *data = (multipart_event_start *) event_data; rfc1867ApcData->content_length = data->content_length; rfc1867ApcData->tracking_key.clear(); rfc1867ApcData->name.clear(); rfc1867ApcData->cancel_upload = 0; rfc1867ApcData->temp_filename = NULL; rfc1867ApcData->start_time = my_time(); rfc1867ApcData->bytes_processed = 0; rfc1867ApcData->prev_bytes_processed = 0; rfc1867ApcData->rate = 0; rfc1867ApcData->update_freq = RuntimeOption::Rfc1867Freq; if (rfc1867ApcData->update_freq < 0) { assert(false); // TODO: support percentage // frequency is a percentage, not bytes rfc1867ApcData->update_freq = rfc1867ApcData->content_length * RuntimeOption::Rfc1867Freq / 100; } break; } case MULTIPART_EVENT_FORMDATA: { multipart_event_formdata *data = (multipart_event_formdata *)event_data; if (data->name && !strncasecmp(data->name, RuntimeOption::Rfc1867Name.c_str(), RuntimeOption::Rfc1867Name.size()) && data->value && data->length && data->length < RFC1867_TRACKING_KEY_MAXLEN - RuntimeOption::Rfc1867Prefix.size()) { int len = RuntimeOption::Rfc1867Prefix.size(); if (len > RFC1867_TRACKING_KEY_MAXLEN) { len = RFC1867_TRACKING_KEY_MAXLEN; } rfc1867ApcData->tracking_key = string(RuntimeOption::Rfc1867Prefix.c_str(), len); len = strlen(*data->value); int rem = RFC1867_TRACKING_KEY_MAXLEN - rfc1867ApcData->tracking_key.size(); if (len > rem) len = rem; rfc1867ApcData->tracking_key += string(*data->value, len); rfc1867ApcData->bytes_processed = data->post_bytes_processed; } /* Facebook: Temporary fix for a bug in PHP's rfc1867 code, fixed here for convenience: http://cvs.php.net/viewvc.cgi/php-src/main/ rfc1867.c?r1=1.173.2.1.2.11&r2=1.173.2.1.2.12 */ (*data->newlength) = data->length; break; } case MULTIPART_EVENT_FILE_START: if (!rfc1867ApcData->tracking_key.empty()) { multipart_event_file_start *data = (multipart_event_file_start *)event_data; rfc1867ApcData->bytes_processed = data->post_bytes_processed; int len = strlen(*data->filename); if (len > RFC1867_FILENAME_MAXLEN) len = RFC1867_FILENAME_MAXLEN; rfc1867ApcData->filename = string(*data->filename, len); rfc1867ApcData->temp_filename = NULL; len = strlen(data->name); if (len > RFC1867_NAME_MAXLEN) len = RFC1867_NAME_MAXLEN; rfc1867ApcData->name = string(data->name, len); ArrayInit track(6); track.set(s_total, rfc1867ApcData->content_length); track.set(s_current, rfc1867ApcData->bytes_processed); track.set(s_filename, rfc1867ApcData->filename); track.set(s_name, rfc1867ApcData->name); track.set(s_done, 0); track.set(s_start_time, rfc1867ApcData->start_time); f_apc_store(rfc1867ApcData->tracking_key, track.create(), 3600); } break; case MULTIPART_EVENT_FILE_DATA: if (!rfc1867ApcData->tracking_key.empty()) { multipart_event_file_data *data = (multipart_event_file_data *) event_data; rfc1867ApcData->bytes_processed = data->post_bytes_processed; if (rfc1867ApcData->bytes_processed - rfc1867ApcData->prev_bytes_processed > rfc1867ApcData->update_freq) { Variant v; if (s_apc_store[0].get(rfc1867ApcData->tracking_key, v)) { if (v.is(KindOfArray)) { ArrayInit track(6); track.set(s_total, rfc1867ApcData->content_length); track.set(s_current, rfc1867ApcData->bytes_processed); track.set(s_filename, rfc1867ApcData->filename); track.set(s_name, rfc1867ApcData->name); track.set(s_done, 0); track.set(s_start_time, rfc1867ApcData->start_time); f_apc_store(rfc1867ApcData->tracking_key, track.create(), 3600); } rfc1867ApcData->prev_bytes_processed = rfc1867ApcData->bytes_processed; } } } break; case MULTIPART_EVENT_FILE_END: if (!rfc1867ApcData->tracking_key.empty()) { multipart_event_file_end *data = (multipart_event_file_end *)event_data; rfc1867ApcData->bytes_processed = data->post_bytes_processed; rfc1867ApcData->cancel_upload = data->cancel_upload; rfc1867ApcData->temp_filename = data->temp_filename; ArrayInit track(8); track.set(s_total, rfc1867ApcData->content_length); track.set(s_current, rfc1867ApcData->bytes_processed); track.set(s_filename, rfc1867ApcData->filename); track.set(s_name, rfc1867ApcData->name); track.set(s_temp_filename, rfc1867ApcData->temp_filename, CopyString); track.set(s_cancel_upload, rfc1867ApcData->cancel_upload); track.set(s_done, 0); track.set(s_start_time, rfc1867ApcData->start_time); f_apc_store(rfc1867ApcData->tracking_key, track.create(), 3600); } break; case MULTIPART_EVENT_END: if (!rfc1867ApcData->tracking_key.empty()) { double now = my_time(); multipart_event_end *data = (multipart_event_end *)event_data; rfc1867ApcData->bytes_processed = data->post_bytes_processed; if(now>rfc1867ApcData->start_time) { rfc1867ApcData->rate = 8.0*rfc1867ApcData->bytes_processed/(now-rfc1867ApcData->start_time); } else { rfc1867ApcData->rate = 8.0*rfc1867ApcData->bytes_processed; /* Too quick */ ArrayInit track(8); track.set(s_total, rfc1867ApcData->content_length); track.set(s_current, rfc1867ApcData->bytes_processed); track.set(s_rate, rfc1867ApcData->rate); track.set(s_filename, rfc1867ApcData->filename); track.set(s_name, rfc1867ApcData->name); track.set(s_cancel_upload, rfc1867ApcData->cancel_upload); track.set(s_done, 1); track.set(s_start_time, rfc1867ApcData->start_time); f_apc_store(rfc1867ApcData->tracking_key, track.create(), 3600); } } break; } return 0; }