summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjoe <joe@jerkface.net>2013-06-18 03:28:58 -0400
committerjoe <joe@jerkface.net>2013-06-18 03:28:58 -0400
commit946440e0ac31e8cb6b2fe873f27627d6d5fbd23f (patch)
tree32707609bd742910dd086bea87ee913aee1780c3
parent74c5a3f6cf2404c4907b108699cda00eda0ccfb0 (diff)
cleanup debug noise
-rw-r--r--Presence/LocalPeerCred.hs13
-rw-r--r--Presence/main.hs60
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
11import Network.Socket 11import Network.Socket
12import System.Posix.Types 12import System.Posix.Types
13import Debug.Trace 13import Debug.Trace
14-- import System.Environment (getArgs)
15 14
16xs ?? n | n < 0 = Nothing 15xs ?? n | n < 0 = Nothing
17[] ?? _ = Nothing 16[] ?? _ = Nothing
@@ -34,7 +33,8 @@ parseHex bs = L.concat . parseHex' $ bs
34 33
35getLocalPeerCred' (SockAddrInet portn host) = do 34getLocalPeerCred' (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
39getLocalPeerCred' (SockAddrInet6 portn flow host scope) = do 39getLocalPeerCred' (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{-
87main = do 90main = 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
48data JID = JID { name :: Maybe ByteString 48data 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
60instance NFData JID where 57instance 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
63jid user host rsrc = JID (Just user) host (Just rsrc) -- user <++> "@" <++> host <++> "/" <++> rsrc 60jid user host rsrc = JID (Just user) host (Just rsrc)
64
65toJabberId host (user,tty,_) =
66 if L.take 3 tty == "tty"
67 then Just (jid user host tty)
68 else Nothing
69
70track_login :: MVar (ByteString,Set JID) -> t -> IO ()
71track_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
90data UnixSession = UnixSession { 62data 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
97track_login :: MVar (ByteString,Set JID) -> t -> IO ()
98track_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
125on_chvt tracked vtnum = do 121on_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."