summaryrefslogtreecommitdiff
path: root/Presence/Presence.hs
diff options
context:
space:
mode:
Diffstat (limited to 'Presence/Presence.hs')
-rw-r--r--Presence/Presence.hs32
1 files changed, 10 insertions, 22 deletions
diff --git a/Presence/Presence.hs b/Presence/Presence.hs
index 697c1476..af6597b6 100644
--- a/Presence/Presence.hs
+++ b/Presence/Presence.hs
@@ -6,32 +6,27 @@
6module Presence where 6module Presence where
7 7
8import System.Directory 8import System.Directory
9import System.Environment
10import System.IO.Error 9import System.IO.Error
11import System.Posix.Signals 10#ifndef THREAD_DEBUG
12import Control.Concurrent (threadDelay,forkIO,forkOS,killThread,throwTo) 11import Control.Concurrent
12#else
13import Control.Concurrent.Lifted.Instrument
14#endif
15
13import Control.Concurrent.STM 16import Control.Concurrent.STM
14import Control.Concurrent.STM.TMVar
15import Control.Monad.Trans 17import Control.Monad.Trans
16import Control.Monad.IO.Class (MonadIO, liftIO) 18import Network.Socket ( SockAddr(..) )
17import Network.Socket ( SockAddr(..), PortNumber )
18import System.Endian (fromBE32)
19import Data.Char 19import Data.Char
20import Data.List (nub, (\\), intersect, groupBy, sort, sortBy ) 20import Data.List (nub, (\\), intersect, groupBy, sort, sortBy )
21import Data.Ord (comparing ) 21import Data.Ord (comparing )
22import Data.Monoid ( (<>), Sum(..), getSum ) 22import Data.Monoid ((<>))
23import qualified Data.Text as Text 23import qualified Data.Text as Text
24import qualified Data.Text.IO as Text
25import qualified Data.Text.Encoding as Text 24import qualified Data.Text.Encoding as Text
26import Control.Monad 25import Control.Monad
27import Control.Monad.Fix
28import qualified Network.BSD as BSD
29import qualified Data.Text as Text
30import Data.Text (Text) 26import Data.Text (Text)
31import qualified Data.Map as Map 27import qualified Data.Map as Map
32import Data.Map (Map) 28import Data.Map (Map)
33import Control.Exception ({-evaluate,-}handle,SomeException(..),bracketOnError,ErrorCall(..)) 29import Control.Exception ({-evaluate,-}handle,SomeException(..))
34import System.IO.Error (isDoesNotExistError)
35import System.Posix.User (getUserEntryForID,userName) 30import System.Posix.User (getUserEntryForID,userName)
36import qualified Data.ByteString.Lazy.Char8 as L 31import qualified Data.ByteString.Lazy.Char8 as L
37import qualified ConfigFiles 32import qualified ConfigFiles
@@ -41,14 +36,7 @@ import Data.Int (Int8)
41import Data.XML.Types (Event) 36import Data.XML.Types (Event)
42import System.Posix.Types (UserID,CPid) 37import System.Posix.Types (UserID,CPid)
43import Control.Applicative 38import Control.Applicative
44#ifdef CRYPTONITE_BACKPORT
45import Crypto.Error.Types (CryptoFailable (..))
46#else
47import Crypto.Error
48#endif
49import Crypto.PubKey.Curve25519 (SecretKey,toPublic) 39import Crypto.PubKey.Curve25519 (SecretKey,toPublic)
50import Text.Read (readMaybe)
51import System.IO
52 40
53import ControlMaybe 41import ControlMaybe
54import LockedChan (LockedChan) 42import LockedChan (LockedChan)
@@ -61,7 +49,7 @@ import ConsoleWriter
61import ClientState 49import ClientState
62import Util 50import Util
63import qualified Connection 51import qualified Connection
64import Network.Tox.NodeId (id2key,key2id) 52import Network.Tox.NodeId (key2id)
65import Crypto.Tox (decodeSecret) 53import Crypto.Tox (decodeSecret)
66import DPut 54import DPut
67 55