bool Engine::executeDirective(std::string directive,HttpServerRequest &httpRequest, std::string &output) { std::string name; std::map<std::string,std::string> attributes; if ( !parseDirective(directive,name,attributes) ) { return false; } if ( name=="include" ) { std::string fileUri = attributes["file"]; if ( httpRequest.getSite()!=NULL && Util::UriUtil::isValid(fileUri) ) { if ( !Util::UriUtil::isAbsolute(fileUri) ) { fileUri = Util::UriUtil::getParentSegment(httpRequest.getUri()) + "/" + fileUri; } std::string filePath = httpRequest.getSite()->getRealPath(fileUri); FILE *file = fopen(filePath.c_str(),"rb"); if ( file!=NULL ) { std::string script; if ( parseFile(file,httpRequest,script) ) { output = script; } fclose(file); } return true; } } return false; }