int lua_apr_time_format(lua_State *L) { char formatted[1024]; apr_status_t status; const char *format; luaL_checktype(L, 1, LUA_TSTRING); format = lua_tostring(L, 1); if (strcmp(format, "ctime") == 0) { status = apr_ctime(formatted, time_check(L, 2)); if (status != APR_SUCCESS) return push_error_status(L, status); lua_pushlstring(L, formatted, APR_CTIME_LEN - 1); return 1; } else if (strcmp(format, "rfc822") == 0) { status = apr_rfc822_date(formatted, time_check(L, 2)); if (status != APR_SUCCESS) return push_error_status(L, status); lua_pushlstring(L, formatted, APR_RFC822_DATE_LEN - 1); return 1; } else { apr_time_exp_t components = { 0 }; apr_size_t length = count(formatted); time_check_exploded(L, 2, &components, 1); status = apr_strftime(formatted, &length, length, format, &components); if (status != APR_SUCCESS) return push_error_status(L, status); lua_pushlstring(L, formatted, length); return 1; } }
void util_ldap_compare_node_display(request_rec *r, util_ald_cache_t *cache, void *n) { util_compare_node_t *node = (util_compare_node_t *)n; char date_str[APR_CTIME_LEN+1]; char *buf, *cmp_result; apr_ctime(date_str, node->lastcompare); if (node->result == LDAP_COMPARE_TRUE) { cmp_result = "LDAP_COMPARE_TRUE"; } else if (node->result == LDAP_COMPARE_FALSE) { cmp_result = "LDAP_COMPARE_FALSE"; } else { cmp_result = apr_itoa(r->pool, node->result); } buf = apr_psprintf(r->pool, "<tr valign='top'>" "<td nowrap>%s</td>" "<td nowrap>%s</td>" "<td nowrap>%s</td>" "<td nowrap>%s</td>" "<td nowrap>%s</td>" "<tr>", node->dn, node->attrib, node->value, date_str, cmp_result); ap_rputs(buf, r); }
static int log_scripterror(request_rec *r, cgi_server_conf * conf, int ret, apr_status_t rv, char *error) { apr_file_t *f = NULL; apr_finfo_t finfo; char time_str[APR_CTIME_LEN]; int log_flags = rv ? APLOG_ERR : APLOG_ERR; ap_log_rerror(APLOG_MARK, log_flags, rv, r, "%s: %s", error, r->filename); /* XXX Very expensive mainline case! Open, then getfileinfo! */ if (!conf->logname || ((apr_stat(&finfo, conf->logname, APR_FINFO_SIZE, r->pool) == APR_SUCCESS) && (finfo.size > conf->logbytes)) || (apr_file_open(&f, conf->logname, APR_APPEND|APR_WRITE|APR_CREATE, APR_OS_DEFAULT, r->pool) != APR_SUCCESS)) { return ret; } /* "%% [Wed Jun 19 10:53:21 1996] GET /cgi-bin/printenv HTTP/1.0" */ apr_ctime(time_str, apr_time_now()); apr_file_printf(f, "%%%% [%s] %s %s%s%s %s\n", time_str, r->method, r->uri, r->args ? "?" : "", r->args ? r->args : "", r->protocol); /* "%% 500 /usr/local/apache/cgi-bin */ apr_file_printf(f, "%%%% %d %s\n", ret, r->filename); apr_file_printf(f, "%%error\n%s\n", error); apr_file_close(f); return ret; }
TCN_IMPLEMENT_CALL(jstring, Time, ctime)(TCN_STDARGS, jlong t) { char ts[APR_CTIME_LEN]; UNREFERENCED(o); if (apr_ctime(ts, J2T(t)) == APR_SUCCESS) return AJP_TO_JSTRING(ts); else return NULL; }
ls_status_t libswitch_postConfig(apr_pool_t* p, apr_pool_t* plog, apr_pool_t* ptemp, Config* config){ config_core* ccore=NULL; ce_error_list* errorList=NULL; char* error=NULL; char cbuf[APR_CTIME_LEN + 1]; // normalize paths config->config_core_file = apr_pstrcat(p, config->home_dir, "/", config->config_core_file, NULL); config->logfile_name = apr_pstrcat(p, config->home_dir, "/", config->logfile_name, NULL); logcore_openLogFile(p,config->logfile_name); logcore_truncateLogFile(); apr_time_t t1 = apr_time_now(); apr_ctime(cbuf, t1); logcore_printLog("\n°\t Initializing %s [%s][%s]\n",VERSION_ID,config->systemInfo,cbuf); fflush(stdout); http_init(); fflush(stdout); //printf("√ Success using the following configuration:\r\n"); fflush(stdout); //init Error Obj errorList=ce_newErrorListObj(p); //load crypto core logcore_printLog("\r\n\r\n"); ccore=cc_newConfigCoreObj(p); ccore->globals->homeDir=apr_pstrdup(p,config->home_dir); ccore->globals->logsDir=apr_pstrcat(p,config->home_dir,"/logs",NULL); ccore->refreshLogFile=apr_pstrdup(p,config->logfile_name); error=cc_loadConfigCoreFile(p, config->config_core_file, ccore); ce_addErrorWithType(p,errorList,"Config Core Load File",error); if(error==NULL){ cc_printConfigCoreDetails(p,ccore); error=cc_initializeConfigCore(p,ccore); ce_addErrorWithType(p,errorList,"Config Core Init",error); config->configCore=ccore; logcore_printLog("√ Config Core Initialized\n"); logcore_printLog("° Binding Config Core Services\n"); error=libswitch_postRefreshBind(p,config); ce_addErrorWithType(p,errorList,"Config Core Bind",error); } if(!ce_hasErrors(errorList)){ logcore_printLog("\r\n>> %s [%s] - Libswitch initialized <<\r\n",VERSION_ID,config->systemInfo); }else{ logcore_printLog("\r\n>> %s [%s] - Libswitch initialized WITH ERRORS<<\r\n",VERSION_ID,config->systemInfo); ce_printList(p,errorList); return LS_FAILURE; } return LS_SUCCESS; }
void util_ldap_url_node_display(request_rec *r, util_ald_cache_t *cache, void *n) { util_url_node_t *node = (util_url_node_t *)n; char date_str[APR_CTIME_LEN+1]; char *buf; const char *type_str; util_ald_cache_t *cache_node; int x; for (x=0;x<3;x++) { switch (x) { case 0: cache_node = node->search_cache; type_str = "Searches"; break; case 1: cache_node = node->compare_cache; type_str = "Compares"; break; case 2: cache_node = node->dn_compare_cache; type_str = "DN Compares"; break; } if (cache_node->marktime) { apr_ctime(date_str, cache_node->marktime); } else date_str[0] = 0; buf = apr_psprintf(r->pool, "<tr valign='top'>" "<td nowrap>%s (%s)</td>" "<td nowrap>%ld</td>" "<td nowrap>%ld</td>" "<td nowrap>%ld</td>" "<td nowrap>%ld</td>" "<td nowrap>%s</td>" "<tr>", node->url, type_str, cache_node->size, cache_node->maxentries, cache_node->numentries, cache_node->fullmark, date_str); ap_rputs(buf, r); } }
void util_ldap_compare_node_display(request_rec *r, util_ald_cache_t *cache, void *n) { util_compare_node_t *node = n; char date_str[APR_CTIME_LEN]; char *cmp_result; char *sub_groups_val; char *sub_groups_checked; apr_ctime(date_str, node->lastcompare); if (node->result == LDAP_COMPARE_TRUE) { cmp_result = "LDAP_COMPARE_TRUE"; } else if (node->result == LDAP_COMPARE_FALSE) { cmp_result = "LDAP_COMPARE_FALSE"; } else { cmp_result = apr_itoa(r->pool, node->result); } if (node->subgroupList) { sub_groups_val = "Yes"; } else { sub_groups_val = "No"; } if (node->sgl_processed) { sub_groups_checked = "Yes"; } else { sub_groups_checked = "No"; } ap_rprintf(r, "<tr valign='top'>" "<td nowrap>%s</td>" "<td nowrap>%s</td>" "<td nowrap>%s</td>" "<td nowrap>%s</td>" "<td nowrap>%s</td>" "<td nowrap>%s</td>" "<td nowrap>%s</td>" "</tr>", node->dn, node->attrib, node->value, date_str, cmp_result, sub_groups_val, sub_groups_checked); }
void util_ldap_url_node_display(request_rec *r, util_ald_cache_t *cache, void *n) { util_url_node_t *node = n; char date_str[APR_CTIME_LEN]; const char *type_str; util_ald_cache_t *cache_node; int x; for (x=0;x<3;x++) { switch (x) { case 0: cache_node = node->search_cache; type_str = "Searches"; break; case 1: cache_node = node->compare_cache; type_str = "Compares"; break; case 2: default: cache_node = node->dn_compare_cache; type_str = "DN Compares"; break; } if (cache_node->marktime) { apr_ctime(date_str, cache_node->marktime); } else date_str[0] = 0; ap_rprintf(r, "<tr valign='top'>" "<td nowrap>%s (%s)</td>" "<td nowrap>%ld</td>" "<td nowrap>%ld</td>" "<td nowrap>%ld</td>" "<td nowrap>%" APR_TIME_T_FMT "</td>" "<td nowrap>%ld</td>" "<td nowrap>%s</td>" "</tr>", node->url, type_str, cache_node->size, cache_node->maxentries, cache_node->numentries, apr_time_sec(cache_node->ttl), cache_node->fullmark, date_str); } }
static int JK_METHOD jk2_logger_file_jkVLog(jk_env_t *env, jk_logger_t *l, const char *file, int line, int level, const char *fmt, va_list args) { int rc = 0; char *buf; char *fmt1; apr_pool_t *aprPool = env->tmpPool->_private; char rfctime[APR_RFC822_DATE_LEN]; apr_time_t time = apr_time_now(); if (!file || !args) return -1; if (l->logger_private == NULL || l->level <= level) { char *f = (char *)(file + strlen(file) - 1); char *slevel; switch (level){ case JK_LOG_INFO_LEVEL: slevel = JK_LOG_INFO_VERB; break; case JK_LOG_ERROR_LEVEL: slevel = JK_LOG_ERROR_VERB; break; case JK_LOG_EMERG_LEVEL: slevel = JK_LOG_EMERG_VERB; break; case JK_LOG_DEBUG_LEVEL: default: slevel = JK_LOG_DEBUG_VERB; break; } while (f != file && *f != '\\' && *f != '/') f--; if (f != file) ++f; /* XXX rfc822_date or apr_ctime ? */ apr_ctime(rfctime, time); fmt1 = apr_psprintf(aprPool, "[%s] (%5s ) [%s (%d)] %s", rfctime, slevel, f, line, fmt); buf = apr_pvsprintf(aprPool, fmt1, args); l->log(env, l, level, buf); } return rc; }
AP_DECLARE(void) ap_log_assert(const char *szExp, const char *szFile, int nLine) { char time_str[APR_CTIME_LEN]; apr_ctime(time_str, apr_time_now()); ap_log_error(APLOG_MARK, APLOG_CRIT, 0, NULL, "[%s] file %s, line %d, assertion \"%s\" failed", time_str, szFile, nLine, szExp); #if defined(WIN32) DebugBreak(); #else /* unix assert does an abort leading to a core dump */ abort(); #endif }
void util_ldap_search_node_display(request_rec *r, util_ald_cache_t *cache, void *n) { util_search_node_t *node = n; char date_str[APR_CTIME_LEN]; apr_ctime(date_str, node->lastbind); ap_rprintf(r, "<tr valign='top'>" "<td nowrap>%s</td>" "<td nowrap>%s</td>" "<td nowrap>%s</td>" "</tr>", node->username, node->dn, date_str); }
static void test_ctime(CuTest *tc) { apr_status_t rv; char apr_str[STR_SIZE]; char libc_str[STR_SIZE]; time_t posix_sec = (time_t)apr_time_sec(now); rv = apr_ctime(apr_str, now); if (rv == APR_ENOTIMPL) { CuNotImpl(tc, "apr_ctime"); } CuAssertTrue(tc, rv == APR_SUCCESS); strcpy(libc_str, ctime(&posix_sec)); *strchr(libc_str, '\n') = '\0'; CuAssertStrEquals(tc, libc_str, apr_str); }
static process_rec *init_process(int *argc, const char * const * *argv) { process_rec *process; apr_pool_t *cntx; apr_status_t stat; const char *failed = "apr_app_initialize()"; stat = apr_app_initialize(argc, argv, NULL); if (stat == APR_SUCCESS) { failed = "apr_pool_create()"; stat = apr_pool_create(&cntx, NULL); } if (stat != APR_SUCCESS) { /* For all intents and purposes, this is impossibly unlikely, * but APR doesn't exist yet, we can't use it for reporting * these earliest two failures; */ char ctimebuff[APR_CTIME_LEN]; apr_ctime(ctimebuff, apr_time_now()); fprintf(stderr, "[%s] [crit] (%d) %s: %s failed " "to initial context, exiting\n", ctimebuff, stat, (*argv)[0], failed); apr_terminate(); exit(1); } apr_pool_tag(cntx, "process"); ap_open_stderr_log(cntx); /* Now we have initialized apr and our logger, no more * exceptional error reporting required for the lifetime * of this server process. */ process = apr_palloc(cntx, sizeof(process_rec)); process->pool = cntx; apr_pool_create(&process->pconf, process->pool); apr_pool_tag(process->pconf, "pconf"); process->argc = *argc; process->argv = *argv; process->short_name = apr_filepath_name_get((*argv)[0]); return process; }
void logging_log(mm_logger* log,const char* a_format, ...) { va_list va; //int i=0; apr_time_t tnow; char tbuf[64]; char buffer[BUFFERSIZE]; memset(buffer, '\0', BUFFERSIZE); if(log->maxLogFileSizeMB>0) logging_rotateLogFile(log); va_start(va, a_format); vsnprintf(buffer, BUFFERSIZE-1, a_format, va); tnow=apr_time_now(); memset(tbuf,'\0',64); apr_ctime(tbuf,tnow); apr_file_printf(log->file,"%s mm.monitor.refresh [%d] %s\r\n",tbuf,getpid(),buffer); va_end(va); }
void util_ldap_search_node_display(request_rec *r, util_ald_cache_t *cache, void *n) { util_search_node_t *node = (util_search_node_t *)n; char date_str[APR_CTIME_LEN+1]; char *buf; apr_ctime(date_str, node->lastbind); buf = apr_psprintf(r->pool, "<tr valign='top'>" "<td nowrap>%s</td>" "<td nowrap>%s</td>" "<td nowrap>%s</td>" "<tr>", node->username, node->dn, date_str); ap_rputs(buf, r); }
static char* cc_refreshConfigCore(pool* p,database_core* dbLogCore,config_core* conf){ int i; service_module_template* serviceModule=NULL; cc_service_descriptor* svc=NULL; void* moduleConfig=NULL; char* error=NULL; // alerts_core* alertsCore=NULL; // diagnostics_core* diagCore=NULL; char cbuf[APR_CTIME_LEN + 1]; long timeTakenMillis; logcore_openLogFile(p,conf->refreshLogFile); logcore_truncateLogFile(); apr_time_t t1 = apr_time_now(); apr_ctime(cbuf, t1); logcore_printLog("\n°\t Refreshing config [%s]\n", cbuf); fflush(stdout); if(conf->services->nelts>0){ shmdata_BeginTagging(conf->sheap); for(i=0;i<conf->services->nelts;i++){ svc=(cc_service_descriptor*)getElement(conf->services,i); serviceModule=cc_findServiceTemplate(svc->id); if(serviceModule!=NULL){ if(serviceModule->refresh_func!=NULL){ error=(*serviceModule->refresh_func)(p,conf->sheap,conf->globals,svc,&moduleConfig); if(error!=NULL){ dbcore_logError(p,dbLogCore,serviceModule->id,"REFRESH",error); logcore_closeLogFile(); return apr_pstrcat(p,"[",serviceModule->id,"] Service failed to refresh: ",error,NULL); }else{ //set as initialized if(moduleConfig!=NULL){ apr_hash_set(conf->service_id_configs,svc->id,APR_HASH_KEY_STRING,moduleConfig); if(svc->name!=NULL){ apr_hash_set(conf->service_name_configs,svc->name,APR_HASH_KEY_STRING,moduleConfig); } } } } }else{ logcore_closeLogFile(); return apr_pstrcat(p,"Service: \"",svc->id,"\" not found",NULL); } } //publish bash segment if(error==NULL){ shmdata_PublishBackSeg(conf->sheap); cc_syncSelf(p,conf); } } timeTakenMillis = ((apr_time_now() - t1) / 1000); logcore_printLog("\n°\t Refresh complete [time taken : %d milliseconds]\n", timeTakenMillis); fflush(stdout); logcore_closeLogFile(); return error; }
static int log_script(request_rec *r, cgi_server_conf * conf, int ret, char *dbuf, const char *sbuf, apr_bucket_brigade *bb, apr_file_t *script_err) { const apr_array_header_t *hdrs_arr = apr_table_elts(r->headers_in); const apr_table_entry_t *hdrs = (const apr_table_entry_t *) hdrs_arr->elts; char argsbuffer[HUGE_STRING_LEN]; apr_file_t *f = NULL; apr_bucket *e; const char *buf; apr_size_t len; apr_status_t rv; int first; int i; apr_finfo_t finfo; char time_str[APR_CTIME_LEN]; /* XXX Very expensive mainline case! Open, then getfileinfo! */ if (!conf->logname || ((apr_stat(&finfo, conf->logname, APR_FINFO_SIZE, r->pool) == APR_SUCCESS) && (finfo.size > conf->logbytes)) || (apr_file_open(&f, conf->logname, APR_APPEND|APR_WRITE|APR_CREATE, APR_OS_DEFAULT, r->pool) != APR_SUCCESS)) { /* Soak up script output */ discard_script_output(bb); log_script_err(r, script_err); return ret; } /* "%% [Wed Jun 19 10:53:21 1996] GET /cgi-bin/printenv HTTP/1.0" */ apr_ctime(time_str, apr_time_now()); apr_file_printf(f, "%%%% [%s] %s %s%s%s %s\n", time_str, r->method, r->uri, r->args ? "?" : "", r->args ? r->args : "", r->protocol); /* "%% 500 /usr/local/apache/cgi-bin" */ apr_file_printf(f, "%%%% %d %s\n", ret, r->filename); apr_file_puts("%request\n", f); for (i = 0; i < hdrs_arr->nelts; ++i) { if (!hdrs[i].key) continue; apr_file_printf(f, "%s: %s\n", hdrs[i].key, hdrs[i].val); } if ((r->method_number == M_POST || r->method_number == M_PUT) && *dbuf) { apr_file_printf(f, "\n%s\n", dbuf); } apr_file_puts("%response\n", f); hdrs_arr = apr_table_elts(r->err_headers_out); hdrs = (const apr_table_entry_t *) hdrs_arr->elts; for (i = 0; i < hdrs_arr->nelts; ++i) { if (!hdrs[i].key) continue; apr_file_printf(f, "%s: %s\n", hdrs[i].key, hdrs[i].val); } if (sbuf && *sbuf) apr_file_printf(f, "%s\n", sbuf); first = 1; for (e = APR_BRIGADE_FIRST(bb); e != APR_BRIGADE_SENTINEL(bb); e = APR_BUCKET_NEXT(e)) { if (APR_BUCKET_IS_EOS(e)) { break; } rv = apr_bucket_read(e, &buf, &len, APR_BLOCK_READ); if (rv != APR_SUCCESS || (len == 0)) { break; } if (first) { apr_file_puts("%stdout\n", f); first = 0; } apr_file_write(f, buf, &len); apr_file_puts("\n", f); } if (apr_file_gets(argsbuffer, HUGE_STRING_LEN, script_err) == APR_SUCCESS) { apr_file_puts("%stderr\n", f); apr_file_puts(argsbuffer, f); while (apr_file_gets(argsbuffer, HUGE_STRING_LEN, script_err) == APR_SUCCESS) { apr_file_puts(argsbuffer, f); } apr_file_puts("\n", f); } apr_brigade_destroy(bb); apr_file_close(script_err); apr_file_close(f); return ret; }
void ls_format_entry(tbx_log_fd_t *ifd, ls_entry_t *lse) { char *dtype; char *perms; char *owner; char dt_create[128], dt_modify[128]; apr_time_t dt; int64_t n; long int fsize; int nlink; //printf("lsfe: ftype=%d fname=%s\n", lse->ftype, lse->fname); if ((lse->ftype & OS_OBJECT_SYMLINK) > 0) { if ((lse->ftype & OS_OBJECT_BROKEN_LINK) > 0) { perms = "L---------"; } else { perms = "l---------"; } } else if ((lse->ftype & OS_OBJECT_DIR) > 0) { perms = "d---------"; } else { perms = "----------"; } dtype = ((lse->ftype & OS_OBJECT_DIR) > 0) ? "/" : ""; owner = lse->vals[0]; if (owner == NULL) owner = "root"; n = 0; if (lse->vals[1] != NULL) sscanf(lse->vals[1], I64T, &n); fsize = n; memset(dt_create, '-', 24); dt_create[24] = 0; n = -1; if (lse->vals[3] != NULL) sscanf(lse->vals[3], I64T, &n); if (n>0) { n = apr_time_from_sec(n); apr_ctime(dt_create, n); } memcpy(dt_modify, dt_create, 25); n = -1; if (lse->vals[2] != NULL) sscanf(lse->vals[2], I64T, &n); if (n > 0) { dt = apr_time_from_sec(n); apr_ctime(dt_modify, dt); } nlink = 1; if (lse->vals[4] != NULL) sscanf(lse->vals[4], "%d", &nlink); if (lse->link == NULL) { info_printf(ifd, 0, "%s %3d %10s %10ld %s %s %s%s\n", perms, nlink, owner, fsize, dt_create, dt_modify, lse->fname, dtype); } else { info_printf(ifd, 0, "%s %3d %10s %10ld %s %s %s%s -> %s\n", perms, nlink, owner, fsize, dt_create, dt_modify, lse->fname, dtype, lse->link); } return; }