private void InjectPayloadFields(RequestHeader requestHeader, ResponseHeader responseSession) { string fname = requestHeader.Target.Path; string mime = mimeMapper.GetMime(fname); long len = htdocsSystem.GetLength(fname, EncodingType.Identity); responseSession.Add(new ContentLengthHf(len)); responseSession.Add(new ContentTypeHf(mime)); }
public void Start(Session session) { do { session.TakeNextHeader(); RequestHeader requestHeader = session.CurrentHeader; ResponseHeader responseSession = new ResponseHeader(); bool sendPayload = GoPayloadIgnoreFilters(requestHeader, responseSession); if (sendPayload) { GoInjectFilters(requestHeader, responseSession); } InjectCommonFields(requestHeader, responseSession); if (sendPayload) { responseSession.StatusCode = StatusCode.OK; InjectPayloadFields(requestHeader, responseSession); } else { responseSession.Add(new ContentLengthHf(0)); } SendHeader(session, responseSession); if (sendPayload & requestHeader.Method == HttpMethod.GET) { SendPayload(session, responseSession); } } while (KeepConnection(session)); }
public void InjectField(RequestHeader requestHeader, ResponseHeader responseSession) { Regex r = new Regex(RegexFileName); string path = requestHeader.Target.Path; if (r.IsMatch(path)) { Match m = r.Match(path); responseSession.Add(new UndefinedHf("Content-Disposition", "attachment; filename=\"" + path.Replace('/', '_') + "\"")); } }
public bool Check(RequestHeader requestHeader, ResponseHeader response) { Regex regex = new Regex(RegexPath); if (regex.IsMatch(requestHeader.Target.Path)) { response.StatusCode = (StatusCode)Status; response.Add(new LocationHf(Location)); return(false); } return(true); }
public bool Check(RequestHeader requestHeader, ResponseHeader response) { Regex r = new Regex(PathRegexMatch); if (r.IsMatch(requestHeader.Target.Path)) { if (requestHeader.Contains(HFType.Authorization)) { AuthorizationHf authHf = requestHeader.GetSingleField <AuthorizationHf>(HFType.Authorization); if (authHf.UserName == UserName && Password == authHf.Password) { return(true); } } response.StatusCode = StatusCode.Unauthorized; response.Add(new WWWAuthenticateHf("authorization", "UTF-8")); return(false); } else { return(true); } }
private void InjectCommonFields(RequestHeader requestHeader, ResponseHeader responseSession) { responseSession.Add(new ServerHf("Vinca/0.8")); responseSession.Add(new DateHf(DateTime.Now)); }
public void InjectField(RequestHeader requestHeader, ResponseHeader responseSession) { responseSession.Add(headerFields); }