Copyright | Will Thompson, Iñaki García Etxebarria and Jonas Platte |
---|---|
License | LGPL-2.1 |
Maintainer | Iñaki García Etxebarria (garetxe@gmail.com) |
Safe Haskell | None |
Language | Haskell2010 |
SRV (service) records are used by some network protocols to provide service-specific aliasing and load-balancing. For example, XMPP (Jabber) uses SRV records to locate the XMPP server for a domain; rather than connecting directly to "example.com" or assuming a specific server hostname like "xmpp.example.com", an XMPP client would look up the "xmpp-client" SRV record for "example.com", and then connect to whatever host was pointed to by that record.
You can use resolverLookupService
or
resolverLookupServiceAsync
to find the GSrvTargets
for a given service. However, if you are simply planning to connect
to the remote service, you can use 'GI.Gio.Objects.NetworkService.NetworkService'\'s
SocketConnectable
interface and not need to worry about
SrvTarget
at all.
- newtype SrvTarget = SrvTarget (ManagedPtr SrvTarget)
- noSrvTarget :: Maybe SrvTarget
- data SrvTargetCopyMethodInfo
- srvTargetCopy :: (HasCallStack, MonadIO m) => SrvTarget -> m SrvTarget
- data SrvTargetFreeMethodInfo
- srvTargetFree :: (HasCallStack, MonadIO m) => SrvTarget -> m ()
- data SrvTargetGetHostnameMethodInfo
- srvTargetGetHostname :: (HasCallStack, MonadIO m) => SrvTarget -> m Text
- data SrvTargetGetPortMethodInfo
- srvTargetGetPort :: (HasCallStack, MonadIO m) => SrvTarget -> m Word16
- data SrvTargetGetPriorityMethodInfo
- srvTargetGetPriority :: (HasCallStack, MonadIO m) => SrvTarget -> m Word16
- data SrvTargetGetWeightMethodInfo
- srvTargetGetWeight :: (HasCallStack, MonadIO m) => SrvTarget -> m Word16
- srvTargetNew :: (HasCallStack, MonadIO m) => Text -> Word16 -> Word16 -> Word16 -> m SrvTarget
Exported types
Methods
copy
data SrvTargetCopyMethodInfo Source #
((~) * signature (m SrvTarget), MonadIO m) => MethodInfo * SrvTargetCopyMethodInfo SrvTarget signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> SrvTarget |
|
-> m SrvTarget | Returns: a copy of |
Copies target
Since: 2.22
free
data SrvTargetFreeMethodInfo Source #
((~) * signature (m ()), MonadIO m) => MethodInfo * SrvTargetFreeMethodInfo SrvTarget signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> SrvTarget |
|
-> m () |
Frees target
Since: 2.22
getHostname
data SrvTargetGetHostnameMethodInfo Source #
((~) * signature (m Text), MonadIO m) => MethodInfo * SrvTargetGetHostnameMethodInfo SrvTarget signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> SrvTarget |
|
-> m Text | Returns: |
Gets target
's hostname (in ASCII form; if you are going to present
this to the user, you should use hostnameIsAsciiEncoded
to
check if it contains encoded Unicode segments, and use
hostnameToUnicode
to convert it if it does.)
Since: 2.22
getPort
data SrvTargetGetPortMethodInfo Source #
((~) * signature (m Word16), MonadIO m) => MethodInfo * SrvTargetGetPortMethodInfo SrvTarget signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> SrvTarget |
|
-> m Word16 | Returns: |
Gets target
's port
Since: 2.22
getPriority
data SrvTargetGetPriorityMethodInfo Source #
((~) * signature (m Word16), MonadIO m) => MethodInfo * SrvTargetGetPriorityMethodInfo SrvTarget signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> SrvTarget |
|
-> m Word16 | Returns: |
Gets target
's priority. You should not need to look at this;
Resolver
already sorts the targets according to the algorithm in
RFC 2782.
Since: 2.22
getWeight
data SrvTargetGetWeightMethodInfo Source #
((~) * signature (m Word16), MonadIO m) => MethodInfo * SrvTargetGetWeightMethodInfo SrvTarget signature Source # | |
:: (HasCallStack, MonadIO m) | |
=> SrvTarget |
|
-> m Word16 | Returns: |
Gets target
's weight. You should not need to look at this;
Resolver
already sorts the targets according to the algorithm in
RFC 2782.
Since: 2.22