def processFile(flow, content, ext): try: url = flow.request.scheme + '://' + flow.request.host + ':' + str( flow.request.port) + flow.request.path name = os.path.splitext(flow.request.path_components[-1])[0] if len( flow.request.path_components) else 'index' hash = hashlib.md5(content).hexdigest() fileName = 'cache/' + flow.request.host + '/' + hash + '/' + name + '.' + ext instrumentedFileName = 'cache/' + flow.request.host + '/' + hash + '/' + name + '_jalangi_.' + ext if not os.path.exists('cache/' + flow.request.host + '/' + hash): os.makedirs('cache/' + flow.request.host + '/' + hash) if not useCache or not os.path.isfile(instrumentedFileName): print('Instrumenting: ' + fileName + ' from ' + url) with open(fileName, 'w') as file: file.write(sj.encode_input(content)) sub_env = {'JALANGI_URL': url} sj.execute( sj.INSTRUMENTATION_SCRIPT + ' ' + jalangiArgs + ' ' + fileName + ' --out ' + instrumentedFileName + ' --outDir ' + os.path.dirname(instrumentedFileName), None, sub_env) else: print('Already instrumented: ' + fileName + ' from ' + url) with open(instrumentedFileName, "r") as file: data = file.read() return data except: print('Exception in processFile() @ proxy.py') exc_type, exc_value, exc_traceback = sys.exc_info() lines = traceback.format_exception(exc_type, exc_value, exc_traceback) print(''.join(lines)) return content
def processFile (flow, content, ext): try: url = flow.request.scheme + '://' + flow.request.host + ':' + str(flow.request.port) + flow.request.path name = os.path.splitext(flow.request.path_components[-1])[0] if hasattr(flow.request,'path_components') and len(flow.request.path_components) else 'index' hash = hashlib.md5(content).hexdigest() fileName = 'cache/' + flow.request.host + '/' + hash + '/' + name + '.' + ext instrumentedFileName = 'cache/' + flow.request.host + '/' + hash + '/' + name + '_jalangi_.' + ext if not os.path.exists('cache/' + flow.request.host + '/' + hash): os.makedirs('cache/' + flow.request.host + '/' + hash) if not useCache or not os.path.isfile(instrumentedFileName): print('Instrumenting: ' + fileName + ' from ' + url) with open(fileName, 'w') as file: file.write(sj.encode_input(content)) sub_env = { 'JALANGI_URL': url } sj.execute(sj.INSTRUMENTATION_SCRIPT + ' ' + jalangiArgs + ' ' + fileName + ' --out ' + instrumentedFileName + ' --outDir ' + os.path.dirname(instrumentedFileName), None, sub_env) else: print('Already instrumented: ' + fileName + ' from ' + url) with open (instrumentedFileName, "r") as file: data = file.read() return data except: print('Exception in processFile() @ proxy.py') exc_type, exc_value, exc_traceback = sys.exc_info() lines = traceback.format_exception(exc_type, exc_value, exc_traceback) print(''.join(lines)) return content