add (WebAgent::CookieManager)

    # File lib/httpclient/cookie.rb, line 326
        def add(cookie)
          url = cookie.url
          name, value = cookie.name, cookie.value
          expires, domain, path =
            cookie.expires, cookie.domain, cookie.path
          secure, domain_orig, path_orig =
            cookie.secure?, cookie.domain_orig?, cookie.path_orig?
          discard, override =
            cookie.discard?, cookie.override?

          domainname = url.host
          domain_orig, path_orig = domain, path
          use_security = override

          if domain

            # [DRAFT 12] s. 4.2.2 (does not apply in the case that
            # host name is the same as domain attribute for version 0
            # cookie)
            # I think that this rule has almost the same effect as the
            # tail match of [NETSCAPE].
            if domain !~ /^\./ && domainname != domain
              domain = '.'+domain
            end

            # [NETSCAPE] rule
            if @netscape_rule
              n = total_dot_num(domain)
              if n < 2
                cookie_error(SpecialError.new(), override)
              elsif n == 2
                ## [NETSCAPE] rule
                ok = SPECIAL_DOMAIN.select{|sdomain|
                  sdomain == domain[-(sdomain.length)..-1]
                }
                if ok.empty?
                  cookie_error(SpecialError.new(), override)
                end
              end
            end

            # this implementation does not check RFC2109 4.3.2 case 2;
            # the portion of host not in domain does not contain a dot.
            # according to nsCookieService.cpp in Firefox 3.0.4, Firefox 3.0.4
            # and IE does not check, too.
          end

          path ||= url.path.sub(%r|/[^/]*|, '')
          domain ||= domainname
          @cookies.synchronize do
            cookie = find_cookie_info(domain, path, name)
            if !cookie
              cookie = WebAgent::Cookie.new()
              cookie.use = true
              @cookies << cookie
            end
            check_expired_cookies()
          end

          cookie.url = url
          cookie.name = name
          cookie.value = value
          cookie.expires = expires
          cookie.domain = domain
          cookie.path = path

          ## for flag
          cookie.secure = secure
          cookie.domain_orig = domain_orig
          cookie.path_orig = path_orig
          if discard || cookie.expires == nil
            cookie.discard = true
          else
            cookie.discard = false
            @is_saved = false
          end
        end