2 * Copyright 2001-2007 Internet2
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
20 * Interface to HTTP requests
24 #include "HTTPRequest.h"
26 using namespace xmltooling;
29 const char* HTTPRequest::getCookie(const char* name) const
31 if (m_cookieMap.empty()) {
32 string cookies=getHeader("Cookie");
34 string::size_type pos=0,cname,namelen,val,vallen;
35 while (pos !=string::npos && pos < cookies.length()) {
36 while (isspace(cookies[pos])) pos++;
38 pos=cookies.find_first_of("=",pos);
39 if (pos == string::npos)
43 if (pos==cookies.length())
46 pos=cookies.find_first_of(";",pos);
47 if (pos != string::npos) {
50 m_cookieMap.insert(make_pair(cookies.substr(cname,namelen),cookies.substr(val,vallen)));
53 m_cookieMap.insert(make_pair(cookies.substr(cname,namelen),cookies.substr(val)));
56 map<string,string>::const_iterator lookup=m_cookieMap.find(name);
57 return (lookup==m_cookieMap.end()) ? NULL : lookup->second.c_str();