gi-soup-2.4.11: Libsoup bindings

CopyrightWill Thompson, Iñaki García Etxebarria and Jonas Platte
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria (garetxe@gmail.com)
Safe HaskellNone
LanguageHaskell2010

GI.Soup.Structs.Cookie

Contents

Description

An HTTP cookie.

name and value will be set for all cookies. If the cookie is generated from a string that appears to have no name, then name will be the empty string.

domain and path give the host or domain, and path within that host/domain, to restrict this cookie to. If domain starts with ".", that indicates a domain (which matches the string after the ".", or any hostname that has domain as a suffix). Otherwise, it is a hostname and must match exactly.

expires will be non-Nothing if the cookie uses either the original "expires" attribute, or the newer "max-age" attribute. If expires is Nothing, it indicates that neither "expires" nor "max-age" was specified, and the cookie expires at the end of the session.

If httpOnly is set, the cookie should not be exposed to untrusted code (eg, javascript), so as to minimize the danger posed by cross-site scripting attacks.

Synopsis

Exported types

newtype Cookie Source #

Constructors

Cookie (ManagedPtr Cookie) 

Instances

BoxedObject Cookie Source # 

Methods

boxedType :: Cookie -> IO GType #

(~) AttrOpTag tag AttrSet => Constructible Cookie tag Source # 

Methods

new :: MonadIO m => (ManagedPtr Cookie -> Cookie) -> [AttrOp Cookie tag] -> m Cookie #

((~) * info (ResolveCookieMethod t Cookie), MethodInfo * info Cookie p) => IsLabel t (Cookie -> p) Source # 

Methods

fromLabel :: Proxy# Symbol t -> Cookie -> p #

((~) * info (ResolveCookieMethod t Cookie), MethodInfo * info Cookie p) => IsLabelProxy t (Cookie -> p) Source # 

Methods

fromLabelProxy :: Proxy Symbol t -> Cookie -> p #

HasAttributeList * Cookie Source # 
((~) * signature (m Text), MonadIO m) => MethodInfo * CookieToSetCookieHeaderMethodInfo Cookie signature Source # 
((~) * signature (m Text), MonadIO m) => MethodInfo * CookieToCookieHeaderMethodInfo Cookie signature Source # 
((~) * signature (Text -> m ()), MonadIO m) => MethodInfo * CookieSetValueMethodInfo Cookie signature Source # 
((~) * signature (Bool -> m ()), MonadIO m) => MethodInfo * CookieSetSecureMethodInfo Cookie signature Source # 
((~) * signature (Text -> m ()), MonadIO m) => MethodInfo * CookieSetPathMethodInfo Cookie signature Source # 
((~) * signature (Text -> m ()), MonadIO m) => MethodInfo * CookieSetNameMethodInfo Cookie signature Source # 
((~) * signature (Int32 -> m ()), MonadIO m) => MethodInfo * CookieSetMaxAgeMethodInfo Cookie signature Source # 
((~) * signature (Bool -> m ()), MonadIO m) => MethodInfo * CookieSetHttpOnlyMethodInfo Cookie signature Source # 
((~) * signature (Date -> m ()), MonadIO m) => MethodInfo * CookieSetExpiresMethodInfo Cookie signature Source # 
((~) * signature (Text -> m ()), MonadIO m) => MethodInfo * CookieSetDomainMethodInfo Cookie signature Source # 
((~) * signature (m Text), MonadIO m) => MethodInfo * CookieGetValueMethodInfo Cookie signature Source # 
((~) * signature (m Bool), MonadIO m) => MethodInfo * CookieGetSecureMethodInfo Cookie signature Source # 
((~) * signature (m Text), MonadIO m) => MethodInfo * CookieGetPathMethodInfo Cookie signature Source # 
((~) * signature (m Text), MonadIO m) => MethodInfo * CookieGetNameMethodInfo Cookie signature Source # 
((~) * signature (m Bool), MonadIO m) => MethodInfo * CookieGetHttpOnlyMethodInfo Cookie signature Source # 
((~) * signature (m Date), MonadIO m) => MethodInfo * CookieGetExpiresMethodInfo Cookie signature Source # 
((~) * signature (m Text), MonadIO m) => MethodInfo * CookieGetDomainMethodInfo Cookie signature Source # 
((~) * signature (m ()), MonadIO m) => MethodInfo * CookieFreeMethodInfo Cookie signature Source # 
((~) * signature (Cookie -> m Bool), MonadIO m) => MethodInfo * CookieEqualMethodInfo Cookie signature Source # 
((~) * signature (Text -> m Bool), MonadIO m) => MethodInfo * CookieDomainMatchesMethodInfo Cookie signature Source # 
((~) * signature (m Cookie), MonadIO m) => MethodInfo * CookieCopyMethodInfo Cookie signature Source # 
((~) * signature (URI -> m Bool), MonadIO m) => MethodInfo * CookieAppliesToUriMethodInfo Cookie signature Source # 
type AttributeList Cookie Source # 

newZeroCookie :: MonadIO m => m Cookie Source #

Construct a Cookie struct initialized to zero.

Methods

appliesToUri

cookieAppliesToUri Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> URI

uri: a URI

-> m Bool

Returns: True if cookie should be sent to uri, False if not

Tests if cookie should be sent to uri.

(At the moment, this does not check that cookie's domain matches uri, because it assumes that the caller has already done that. But don't rely on that; it may change in the future.)

Since: 2.24

copy

data CookieCopyMethodInfo Source #

Instances

((~) * signature (m Cookie), MonadIO m) => MethodInfo * CookieCopyMethodInfo Cookie signature Source # 

cookieCopy Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> m Cookie

Returns: a copy of cookie

Copies cookie.

Since: 2.24

domainMatches

cookieDomainMatches Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> Text

host: a URI

-> m Bool

Returns: True if the domains match, False otherwise

Checks if the cookie's domain and host match in the sense that cookie should be sent when making a request to host, or that cookie should be accepted when receiving a response from host.

Since: 2.30

equal

data CookieEqualMethodInfo Source #

Instances

((~) * signature (Cookie -> m Bool), MonadIO m) => MethodInfo * CookieEqualMethodInfo Cookie signature Source # 

cookieEqual Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie1: a Cookie

-> Cookie

cookie2: a Cookie

-> m Bool

Returns: whether the cookies are equal.

Tests if cookie1 and cookie2 are equal.

Note that currently, this does not check that the cookie domains match. This may change in the future.

Since: 2.24

free

data CookieFreeMethodInfo Source #

Instances

((~) * signature (m ()), MonadIO m) => MethodInfo * CookieFreeMethodInfo Cookie signature Source # 

cookieFree Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> m () 

Frees cookie

Since: 2.24

getDomain

cookieGetDomain Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> m Text

Returns: cookie's domain

Gets cookie's domain

Since: 2.32

getExpires

cookieGetExpires Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> m Date

Returns: cookie's expiration time, which is owned by cookie and should not be modified or freed.

Gets cookie's expiration time

Since: 2.32

getHttpOnly

cookieGetHttpOnly Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> m Bool

Returns: cookie's HttpOnly attribute

Gets cookie's HttpOnly attribute

Since: 2.32

getName

cookieGetName Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> m Text

Returns: cookie's name

Gets cookie's name

Since: 2.32

getPath

cookieGetPath Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> m Text

Returns: cookie's path

Gets cookie's path

Since: 2.32

getSecure

cookieGetSecure Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> m Bool

Returns: cookie's secure attribute

Gets cookie's secure attribute

Since: 2.32

getValue

cookieGetValue Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> m Text

Returns: cookie's value

Gets cookie's value

Since: 2.32

new

cookieNew Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Text

name: cookie name

-> Text

value: cookie value

-> Text

domain: cookie domain or hostname

-> Text

path: cookie path, or Nothing

-> Int32

maxAge: max age of the cookie, or -1 for a session cookie

-> m Cookie

Returns: a new Cookie.

Creates a new Cookie with the given attributes. (Use cookieSetSecure and cookieSetHttpOnly if you need to set those attributes on the returned cookie.)

If domain starts with ".", that indicates a domain (which matches the string after the ".", or any hostname that has domain as a suffix). Otherwise, it is a hostname and must match exactly.

maxAge is used to set the "expires" attribute on the cookie; pass -1 to not include the attribute (indicating that the cookie expires with the current session), 0 for an already-expired cookie, or a lifetime in seconds. You can use the constants COOKIE_MAX_AGE_ONE_HOUR, COOKIE_MAX_AGE_ONE_DAY, COOKIE_MAX_AGE_ONE_WEEK and COOKIE_MAX_AGE_ONE_YEAR (or multiples thereof) to calculate this value. (If you really care about setting the exact time that the cookie will expire, use cookieSetExpires.)

Since: 2.24

parse

cookieParse Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Text

header: a cookie string (eg, the value of a Set-Cookie header)

-> URI

origin: origin of the cookie, or Nothing

-> m (Maybe Cookie)

Returns: a new Cookie, or Nothing if it could not be parsed, or contained an illegal "domain" attribute for a cookie originating from origin.

Parses header and returns a Cookie. (If header contains multiple cookies, only the first one will be parsed.)

If header does not have "path" or "domain" attributes, they will be defaulted from origin. If origin is Nothing, path will default to "/", but domain will be left as Nothing. Note that this is not a valid state for a Cookie, and you will need to fill in some appropriate string for the domain if you want to actually make use of the cookie.

Since: 2.24

setDomain

cookieSetDomain Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> Text

domain: the new domain

-> m () 

Sets cookie's domain to domain

Since: 2.24

setExpires

cookieSetExpires Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> Date

expires: the new expiration time, or Nothing

-> m () 

Sets cookie's expiration time to expires. If expires is Nothing, cookie will be a session cookie and will expire at the end of the client's session.

(This sets the same property as cookieSetMaxAge.)

Since: 2.24

setHttpOnly

cookieSetHttpOnly Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> Bool

httpOnly: the new value for the HttpOnly attribute

-> m () 

Sets cookie's HttpOnly attribute to httpOnly. If True, cookie will be marked as "http only", meaning it should not be exposed to web page scripts or other untrusted code.

Since: 2.24

setMaxAge

cookieSetMaxAge Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> Int32

maxAge: the new max age

-> m () 

Sets cookie's max age to maxAge. If maxAge is -1, the cookie is a session cookie, and will expire at the end of the client's session. Otherwise, it is the number of seconds until the cookie expires. You can use the constants COOKIE_MAX_AGE_ONE_HOUR, COOKIE_MAX_AGE_ONE_DAY, COOKIE_MAX_AGE_ONE_WEEK and COOKIE_MAX_AGE_ONE_YEAR (or multiples thereof) to calculate this value. (A value of 0 indicates that the cookie should be considered already-expired.)

(This sets the same property as cookieSetExpires.)

Since: 2.24

setName

data CookieSetNameMethodInfo Source #

Instances

((~) * signature (Text -> m ()), MonadIO m) => MethodInfo * CookieSetNameMethodInfo Cookie signature Source # 

cookieSetName Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> Text

name: the new name

-> m () 

Sets cookie's name to name

Since: 2.24

setPath

data CookieSetPathMethodInfo Source #

Instances

((~) * signature (Text -> m ()), MonadIO m) => MethodInfo * CookieSetPathMethodInfo Cookie signature Source # 

cookieSetPath Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> Text

path: the new path

-> m () 

Sets cookie's path to path

Since: 2.24

setSecure

cookieSetSecure Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> Bool

secure: the new value for the secure attribute

-> m () 

Sets cookie's secure attribute to secure. If True, cookie will only be transmitted from the client to the server over secure (https) connections.

Since: 2.24

setValue

data CookieSetValueMethodInfo Source #

Instances

((~) * signature (Text -> m ()), MonadIO m) => MethodInfo * CookieSetValueMethodInfo Cookie signature Source # 

cookieSetValue Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> Text

value: the new value

-> m () 

Sets cookie's value to value

Since: 2.24

toCookieHeader

cookieToCookieHeader Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> m Text

Returns: the header

Serializes cookie in the format used by the Cookie header (ie, for returning a cookie from a Session to a server).

Since: 2.24

toSetCookieHeader

cookieToSetCookieHeader Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> m Text

Returns: the header

Serializes cookie in the format used by the Set-Cookie header (ie, for sending a cookie from a Server to a client).

Since: 2.24

Properties

domain

expires

httpOnly

name

path

secure

value