gi-soup-2.4.24: Libsoup bindings
CopyrightWill Thompson Iñaki García Etxebarria and Jonas Platte
LicenseLGPL-2.1
MaintainerIñaki García Etxebarria
Safe HaskellSafe-Inferred
LanguageHaskell2010

GI.Soup.Structs.Cookie

Description

Cookie implements HTTP cookies, as described by <ulink url="http://tools.ietf.org/html/rfc6265.txt">RFC 6265</ulink>.

To have a Session handle cookies for your appliction automatically, use a CookieJar.

Since: 2.24

Synopsis

Exported types

newtype Cookie Source #

Memory-managed wrapper type.

Constructors

Cookie (ManagedPtr Cookie) 

Instances

Instances details
Eq Cookie Source # 
Instance details

Defined in GI.Soup.Structs.Cookie

Methods

(==) :: Cookie -> Cookie -> Bool #

(/=) :: Cookie -> Cookie -> Bool #

GBoxed Cookie Source # 
Instance details

Defined in GI.Soup.Structs.Cookie

ManagedPtrNewtype Cookie Source # 
Instance details

Defined in GI.Soup.Structs.Cookie

Methods

toManagedPtr :: Cookie -> ManagedPtr Cookie

TypedObject Cookie Source # 
Instance details

Defined in GI.Soup.Structs.Cookie

Methods

glibType :: IO GType

HasParentTypes Cookie Source # 
Instance details

Defined in GI.Soup.Structs.Cookie

tag ~ 'AttrSet => Constructible Cookie tag Source # 
Instance details

Defined in GI.Soup.Structs.Cookie

Methods

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

IsGValue (Maybe Cookie) Source #

Convert Cookie to and from GValue. See toGValue and fromGValue.

Instance details

Defined in GI.Soup.Structs.Cookie

Methods

gvalueGType_ :: IO GType

gvalueSet_ :: Ptr GValue -> Maybe Cookie -> IO ()

gvalueGet_ :: Ptr GValue -> IO (Maybe Cookie)

type ParentTypes Cookie Source # 
Instance details

Defined in GI.Soup.Structs.Cookie

type ParentTypes Cookie = '[] :: [Type]

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

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

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

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 (Maybe 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

getSameSitePolicy

cookieGetSameSitePolicy Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> m SameSitePolicy

Returns: a SameSitePolicy

No description available in the introspection data.

Since: 2.70

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

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

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

setSameSitePolicy

cookieSetSameSitePolicy Source #

Arguments

:: (HasCallStack, MonadIO m) 
=> Cookie

cookie: a Cookie

-> SameSitePolicy

policy: a SameSitePolicy

-> m () 

When used in conjunction with cookieJarGetCookieListWithSameSiteInfo this sets the policy of when this cookie should be exposed.

Since: 2.70

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

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

the "domain" attribute, or else the hostname that the cookie came from.

clearCookieDomain :: MonadIO m => Cookie -> m () Source #

Set the value of the “domain” field to Nothing. When overloading is enabled, this is equivalent to

clear #domain

getCookieDomain :: MonadIO m => Cookie -> m (Maybe Text) Source #

Get the value of the “domain” field. When overloading is enabled, this is equivalent to

get cookie #domain

setCookieDomain :: MonadIO m => Cookie -> CString -> m () Source #

Set the value of the “domain” field. When overloading is enabled, this is equivalent to

set cookie [ #domain := value ]

expires

the cookie expiration time, or Nothing for a session cookie

clearCookieExpires :: MonadIO m => Cookie -> m () Source #

Set the value of the “expires” field to Nothing. When overloading is enabled, this is equivalent to

clear #expires

getCookieExpires :: MonadIO m => Cookie -> m (Maybe Date) Source #

Get the value of the “expires” field. When overloading is enabled, this is equivalent to

get cookie #expires

setCookieExpires :: MonadIO m => Cookie -> Ptr Date -> m () Source #

Set the value of the “expires” field. When overloading is enabled, this is equivalent to

set cookie [ #expires := value ]

httpOnly

True if the cookie should not be exposed to scripts

getCookieHttpOnly :: MonadIO m => Cookie -> m Bool Source #

Get the value of the “http_only” field. When overloading is enabled, this is equivalent to

get cookie #httpOnly

setCookieHttpOnly :: MonadIO m => Cookie -> Bool -> m () Source #

Set the value of the “http_only” field. When overloading is enabled, this is equivalent to

set cookie [ #httpOnly := value ]

name

the cookie name

clearCookieName :: MonadIO m => Cookie -> m () Source #

Set the value of the “name” field to Nothing. When overloading is enabled, this is equivalent to

clear #name

getCookieName :: MonadIO m => Cookie -> m (Maybe Text) Source #

Get the value of the “name” field. When overloading is enabled, this is equivalent to

get cookie #name

setCookieName :: MonadIO m => Cookie -> CString -> m () Source #

Set the value of the “name” field. When overloading is enabled, this is equivalent to

set cookie [ #name := value ]

path

the "path" attribute, or Nothing

clearCookiePath :: MonadIO m => Cookie -> m () Source #

Set the value of the “path” field to Nothing. When overloading is enabled, this is equivalent to

clear #path

getCookiePath :: MonadIO m => Cookie -> m (Maybe Text) Source #

Get the value of the “path” field. When overloading is enabled, this is equivalent to

get cookie #path

setCookiePath :: MonadIO m => Cookie -> CString -> m () Source #

Set the value of the “path” field. When overloading is enabled, this is equivalent to

set cookie [ #path := value ]

secure

True if the cookie should only be tranferred over SSL

getCookieSecure :: MonadIO m => Cookie -> m Bool Source #

Get the value of the “secure” field. When overloading is enabled, this is equivalent to

get cookie #secure

setCookieSecure :: MonadIO m => Cookie -> Bool -> m () Source #

Set the value of the “secure” field. When overloading is enabled, this is equivalent to

set cookie [ #secure := value ]

value

the cookie value

clearCookieValue :: MonadIO m => Cookie -> m () Source #

Set the value of the “value” field to Nothing. When overloading is enabled, this is equivalent to

clear #value

getCookieValue :: MonadIO m => Cookie -> m (Maybe Text) Source #

Get the value of the “value” field. When overloading is enabled, this is equivalent to

get cookie #value

setCookieValue :: MonadIO m => Cookie -> CString -> m () Source #

Set the value of the “value” field. When overloading is enabled, this is equivalent to

set cookie [ #value := value ]