- * Search a HTTP cookie field and check the existence of the cookie name.
- * @param http_header HTTP request header
- * @param cookie_name HTTP cookie name
- * @return char points to cookie value of found cookie name, or NULL.
- */
-extern char*
-http_search_header_cookie_value(char *http_header, char *cookie_name)
-{
- return _http_search_header_cookie_value(http_header, "Cookie", cookie_name);
-}
-
-/*!
- * Search a set HTTP cookie field and check the existence of the cookie name.
- * @param http_header HTTP request header
- * @param cookie_name HTTP cookie name
- * @return char points to cookie value of found cookie name, or NULL.
- */
-extern char*
-http_search_header_set_cookie_value(char *http_header, char *cookie_name)
-{
- return _http_search_header_cookie_value(http_header, "Set-Cookie", cookie_name);
-}
-
-char*
-_http_search_header_cookie_value(char *http_header, char *field, char *cookie_name)
-{
- int check;
- char *field_ptr;
-
- /* check NULL */
- if (http_header == NULL || field == NULL || cookie_name == NULL) {
- return NULL;
- }
-
- /* search cookie header field from HTTP request header */
- field_ptr = http_search_header_field(http_header, field);
- if (field_ptr == NULL) {
- return NULL;
- }
-
- while (1) {
- /* compare cookie field and cookie name */
- for (check = 0;
- field_ptr[check] == cookie_name[check] && cookie_name[check] != '\0';
- ++check);
-
- /* when header match the cookie name, next word of cookie name must be '=' */
- /* cf. CookieName'=' and CookieName'V'alue= */
- if (cookie_name[check] == '\0' && field_ptr[check] == '=') {
- /* matched cookie name completely! */
- ++check;
- /* return pointer of searched cookie name's value */
- return &field_ptr[check];
- }
-
- /* skip until next cookie's value */
- for ( ;
- field_ptr[check] != ';' && field_ptr[check] != ',';
- ++check) {
- if (field_ptr[check] == '\r' || field_ptr[check] == '\0') {
- return NULL;
- }
- }
-
- /* skip a space, tab, etc. */
- for ( ++check;
- !isgraph(field_ptr[check]) && field_ptr[check] != '\r' && field_ptr[check] != '\0';
- ++check );
-
- /* cookie name was not found */
- if (field_ptr[check] == '\r' || field_ptr[check] == '\0') {
- return NULL;
- }
-
- field_ptr += check;
- }
-}
-
-/*!