diff options
author | joe <joe@jerkface.net> | 2013-06-18 03:28:58 -0400 |
---|---|---|
committer | joe <joe@jerkface.net> | 2013-06-18 03:28:58 -0400 |
commit | 946440e0ac31e8cb6b2fe873f27627d6d5fbd23f (patch) | |
tree | 32707609bd742910dd086bea87ee913aee1780c3 | |
parent | 74c5a3f6cf2404c4907b108699cda00eda0ccfb0 (diff) |
cleanup debug noise
-rw-r--r-- | Presence/LocalPeerCred.hs | 13 | ||||
-rw-r--r-- | Presence/main.hs | 60 |
2 files changed, 33 insertions, 40 deletions
diff --git a/Presence/LocalPeerCred.hs b/Presence/LocalPeerCred.hs index ecd77dae..b544af97 100644 --- a/Presence/LocalPeerCred.hs +++ b/Presence/LocalPeerCred.hs | |||
@@ -11,7 +11,6 @@ import Data.Bits | |||
11 | import Network.Socket | 11 | import Network.Socket |
12 | import System.Posix.Types | 12 | import System.Posix.Types |
13 | import Debug.Trace | 13 | import Debug.Trace |
14 | -- import System.Environment (getArgs) | ||
15 | 14 | ||
16 | xs ?? n | n < 0 = Nothing | 15 | xs ?? n | n < 0 = Nothing |
17 | [] ?? _ = Nothing | 16 | [] ?? _ = Nothing |
@@ -34,7 +33,8 @@ parseHex bs = L.concat . parseHex' $ bs | |||
34 | 33 | ||
35 | getLocalPeerCred' (SockAddrInet portn host) = do | 34 | getLocalPeerCred' (SockAddrInet portn host) = do |
36 | let port = fromEnum portn | 35 | let port = fromEnum portn |
37 | trace ("tcp4 "++show(port,host)) $ withFile "/proc/net/tcp" ReadMode (parseProcNet port host) | 36 | {- trace ("tcp4 "++show(port,host)) $ -} |
37 | withFile "/proc/net/tcp" ReadMode (parseProcNet port host) | ||
38 | 38 | ||
39 | getLocalPeerCred' (SockAddrInet6 portn flow host scope) = do | 39 | getLocalPeerCred' (SockAddrInet6 portn flow host scope) = do |
40 | let port = fromEnum portn | 40 | let port = fromEnum portn |
@@ -76,12 +76,15 @@ parseProcNet port host h = do | |||
76 | uid <- listToMaybe ys' | 76 | uid <- listToMaybe ys' |
77 | let peer = (port,decode addr) | 77 | let peer = (port,decode addr) |
78 | user = toEnum (read (unpack uid) ::Int) ::UserID -- CUid . fromIntegral $ (read (unpack uid)::Int) | 78 | user = toEnum (read (unpack uid) ::Int) ::UserID -- CUid . fromIntegral $ (read (unpack uid)::Int) |
79 | return $ trace ("peer:"++show(peer,user)) (peer,user) | 79 | return $ {- trace ("peer:"++show(peer,user)) -} (peer,user) |
80 | ) | 80 | ) |
81 | fmap snd . listToMaybe $ filter ((===(port,host)).fst) rs | 81 | fmap snd . listToMaybe $ filter ((==(port,host)).fst) rs |
82 | trace ("found:"++show u) $ u `seq` return u | 82 | {- trace ("found: "++show u) -} |
83 | u `seq` return u | ||
84 | {- | ||
83 | where | 85 | where |
84 | a === b = let r= a==b in trace ("Comparing "++show (a,b)++"-->"++show r) r | 86 | a === b = let r= a==b in trace ("Comparing "++show (a,b)++"-->"++show r) r |
87 | -} | ||
85 | 88 | ||
86 | {- | 89 | {- |
87 | main = do | 90 | main = do |
diff --git a/Presence/main.hs b/Presence/main.hs index 7bf9d117..cf5942df 100644 --- a/Presence/main.hs +++ b/Presence/main.hs | |||
@@ -46,11 +46,8 @@ import Prelude hiding (putStrLn) | |||
46 | 46 | ||
47 | -- | Jabber ID (JID) datatype | 47 | -- | Jabber ID (JID) datatype |
48 | data JID = JID { name :: Maybe ByteString | 48 | data JID = JID { name :: Maybe ByteString |
49 | -- ^ Account name | ||
50 | , server :: ByteString | 49 | , server :: ByteString |
51 | -- ^ Server adress | ||
52 | , resource :: Maybe ByteString | 50 | , resource :: Maybe ByteString |
53 | -- ^ Resource name | ||
54 | } | 51 | } |
55 | deriving (Ord,Eq) | 52 | deriving (Ord,Eq) |
56 | 53 | ||
@@ -60,32 +57,7 @@ instance Show JID where | |||
60 | instance NFData JID where | 57 | instance NFData JID where |
61 | rnf v@(JID n s r) = n `seq` s `seq` r `seq` () | 58 | rnf v@(JID n s r) = n `seq` s `seq` r `seq` () |
62 | 59 | ||
63 | jid user host rsrc = JID (Just user) host (Just rsrc) -- user <++> "@" <++> host <++> "/" <++> rsrc | 60 | jid user host rsrc = JID (Just user) host (Just rsrc) |
64 | |||
65 | toJabberId host (user,tty,_) = | ||
66 | if L.take 3 tty == "tty" | ||
67 | then Just (jid user host tty) | ||
68 | else Nothing | ||
69 | |||
70 | track_login :: MVar (ByteString,Set JID) -> t -> IO () | ||
71 | track_login tracked e = do | ||
72 | #ifndef NOUTMP | ||
73 | us <- users | ||
74 | #else | ||
75 | let us = [] | ||
76 | #endif | ||
77 | let ids = Set.fromList $ mapMaybe (toJabberId "localhost") us | ||
78 | (tty,state) <- modifyMVar tracked $ \(tty,st) -> | ||
79 | return ((tty,ids),(tty,st)) | ||
80 | let arrivals = ids \\ state | ||
81 | departures = state \\ ids | ||
82 | forM_ (Set.toList departures) $ \id -> do | ||
83 | putStrLn $ bshow id <++> " Offline." | ||
84 | forM_ (Set.toList arrivals) $ \jid -> do | ||
85 | case fmap (==tty) $ resource jid of | ||
86 | Just True -> putStrLn $ bshow jid <++> " Available." | ||
87 | Just False -> putStrLn $ bshow jid <++> " Away." | ||
88 | Nothing -> trace "Unexpected lack of resource" $ return () | ||
89 | 61 | ||
90 | data UnixSession = UnixSession { | 62 | data UnixSession = UnixSession { |
91 | unix_uid :: (IORef (Maybe UserID)), | 63 | unix_uid :: (IORef (Maybe UserID)), |
@@ -122,6 +94,30 @@ instance XMPPSession UnixSession where | |||
122 | return jid | 94 | return jid |
123 | closeSession _ = L.putStrLn "SESSION: close" | 95 | closeSession _ = L.putStrLn "SESSION: close" |
124 | 96 | ||
97 | track_login :: MVar (ByteString,Set JID) -> t -> IO () | ||
98 | track_login tracked e = do | ||
99 | #ifndef NOUTMP | ||
100 | us <- users | ||
101 | #else | ||
102 | let us = [] | ||
103 | #endif | ||
104 | let toJabberId host (user,tty,_) = | ||
105 | if L.take 3 tty == "tty" | ||
106 | then Just (jid user host tty) | ||
107 | else Nothing | ||
108 | ids = Set.fromList $ mapMaybe (toJabberId "localhost") us | ||
109 | (tty,state) <- modifyMVar tracked $ \(tty,st) -> | ||
110 | return ((tty,ids),(tty,st)) | ||
111 | let arrivals = ids \\ state | ||
112 | departures = state \\ ids | ||
113 | forM_ (Set.toList departures) $ \id -> do | ||
114 | putStrLn $ bshow id <++> " Offline." | ||
115 | forM_ (Set.toList arrivals) $ \jid -> do | ||
116 | case fmap (==tty) $ resource jid of | ||
117 | Just True -> putStrLn $ bshow jid <++> " Available." | ||
118 | Just False -> putStrLn $ bshow jid <++> " Away." | ||
119 | Nothing -> trace "Unexpected lack of resource" $ return () | ||
120 | |||
125 | on_chvt tracked vtnum = do | 121 | on_chvt tracked vtnum = do |
126 | let tty = L.snoc "tty" $ intToDigit (fromIntegral vtnum) | 122 | let tty = L.snoc "tty" $ intToDigit (fromIntegral vtnum) |
127 | L.putStrLn $ "VT switch: " <++> tty | 123 | L.putStrLn $ "VT switch: " <++> tty |
@@ -139,9 +135,7 @@ start = do | |||
139 | tracked <- newMVar ("",Set.empty) | 135 | tracked <- newMVar ("",Set.empty) |
140 | let dologin e = track_login tracked e | 136 | let dologin e = track_login tracked e |
141 | dologin :: t -> IO () | 137 | dologin :: t -> IO () |
142 | #ifndef NOUTMP | ||
143 | installHandler sigUSR1 (Catch (dologin (userError "signaled"))) Nothing | 138 | installHandler sigUSR1 (Catch (dologin (userError "signaled"))) Nothing |
144 | #endif | ||
145 | -- installHandler sigTERM (CatchOnce (dologin (userError "term signaled"))) Nothing | 139 | -- installHandler sigTERM (CatchOnce (dologin (userError "term signaled"))) Nothing |
146 | mtty <- monitorTTY (on_chvt tracked) | 140 | mtty <- monitorTTY (on_chvt tracked) |
147 | inotify <- initINotify | 141 | inotify <- initINotify |
@@ -158,10 +152,6 @@ start = do | |||
158 | dologin () | 152 | dologin () |
159 | putStrLn "\nHit enter to terminate...\n" | 153 | putStrLn "\nHit enter to terminate...\n" |
160 | getLine | 154 | getLine |
161 | {- | ||
162 | let doException (SomeException e) = Prelude.putStrLn ("\n\nexception: " ++ show e ++ "\n\n") | ||
163 | handle doException $ do | ||
164 | -} | ||
165 | sClose sock | 155 | sClose sock |
166 | -- threadDelay 1000 | 156 | -- threadDelay 1000 |
167 | putStrLn "closed listener." | 157 | putStrLn "closed listener." |