static int process_request(request_rec* r) { char message[MESSAGE_LEN]; sprintf(message, "Starting Tractis auth module process for url %s\n", r->uri); log_debug(message); char *enabled = is_enabled(r); //Not enabled if (enabled == NULL || strcmp(enabled,"true") !=0) { char buff[MESSAGE_LEN]; sprintf(buff,"Module not enabled for given url"); log_debug(buff); return DECLINED; } else { char buff[MESSAGE_LEN]; sprintf(buff,"Module enabled for given url"); log_debug(buff); } //Recover credentials char *user = get_username(r); char *password = get_password(r); char *api_key = get_api_key(r); if (is_debug_enabled()) { char debug_message[MESSAGE_LEN]; sprintf(debug_message, "Credentials are %s:%s and api key is %s", user,password,api_key); log_debug(debug_message); } char* certificate = (char*)apr_table_get(r->subprocess_env, "SSL_CLIENT_CERT"); //The certificate is not present so the client is not allowed to use the service if (!certificate) { char error_message[MESSAGE_LEN]; log_error(401, "No certificate has been provided"); return 401; //HTTP unauthorized } else { if (is_debug_enabled()) { char message[MESSAGE_LEN + strlen(certificate)]; sprintf(message, "User provided certificate \n->%s<-",certificate); log_debug(message); } } int certificate_status = validate_certificate(r,certificate, user, password, api_key); if (certificate_status == VALID) return OK; else { if(is_info_enabled()) { char validation_result[MESSAGE_LEN]; sprintf(validation_result, "The provided certificate reported unsuccessful validation, result code is %d", certificate_status); log_info(validation_result); } //Non valid auth return 401; } }
void procman_debug_real(const char *file, int line, const char *func, const char *format, ...) { va_list args; char *msg; if (G_LIKELY(!is_debug_enabled())) return; va_start(args, format); msg = g_strdup_vprintf(format, args); va_end(args); g_debug("[%.3f %s:%d %s] %s", get_relative_time(), file, line, func, msg); g_free(msg); }
// Public Methods MhProtoClient::MhProtoClient(int *sd , int numClient, int64_t chunk_size, bool verbose) { // Constructor sem_ = new Semaphore(1); CreateSharedMemory(); client_sd_ = sd; numClient_ = numClient; *kill_proc_ = 0; main_proc_ = true; verbose_ = verbose; if (is_debug_enabled()) verbose_ = false; if (chunk_size == 0) chunk_size_ = CHUNK_SIZE; else chunk_size_ = chunk_size; }
void print_data_buffer(struct data_buffer* data_buf) { if (!is_debug_enabled()) return; uint32_t data_len = data_buf->data_len; uint32_t i; int offset = 0; int size = 1000; char buffer[1000]; offset += snprintf_buffer(buffer + offset, size - offset, "buffer长度: %d\n", data_len); for (i = 0; i < data_len && offset < size - 1; i++) { offset += snprintf_buffer(buffer + offset, size - offset, "%02x ", data_buf->data[i]); } buffer[size - 1] = '\0'; log_debug("%s", buffer); }