diff options
Diffstat (limited to 'Presence/LocalPeerCred.hs')
-rw-r--r-- | Presence/LocalPeerCred.hs | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/Presence/LocalPeerCred.hs b/Presence/LocalPeerCred.hs index d3b8d189..b6ec9491 100644 --- a/Presence/LocalPeerCred.hs +++ b/Presence/LocalPeerCred.hs | |||
@@ -57,7 +57,7 @@ getLocalPeerCred sock = do | |||
57 | addr <- getPeerName sock | 57 | addr <- getPeerName sock |
58 | muid <- getLocalPeerCred' addr | 58 | muid <- getLocalPeerCred' addr |
59 | case muid of | 59 | case muid of |
60 | Just uid -> return (Just uid) | 60 | Just (uid,inode) -> return (Just uid) |
61 | Nothing -> trace "proc failed." $ fmap (validate . CUid . fromIntegral . sndOf3) (getPeerCred sock) | 61 | Nothing -> trace "proc failed." $ fmap (validate . CUid . fromIntegral . sndOf3) (getPeerCred sock) |
62 | where sndOf3 (pid,uid,gid) = uid | 62 | where sndOf3 (pid,uid,gid) = uid |
63 | where | 63 | where |
@@ -81,10 +81,12 @@ parseProcNet port host h = do | |||
81 | addr <- fmap parseHex $ listToMaybe zs | 81 | addr <- fmap parseHex $ listToMaybe zs |
82 | port <- fmap (fromIntegral . as16 . decode . parseHex) $ listToMaybe $ snd (Prelude.splitAt 1 zs) | 82 | port <- fmap (fromIntegral . as16 . decode . parseHex) $ listToMaybe $ snd (Prelude.splitAt 1 zs) |
83 | let ys' = snd (Prelude.splitAt 5 (tail ys)) | 83 | let ys' = snd (Prelude.splitAt 5 (tail ys)) |
84 | ys'' = snd (Prelude.splitAt 2 ys') | ||
84 | uid <- listToMaybe ys' | 85 | uid <- listToMaybe ys' |
86 | inode <- listToMaybe ys'' | ||
85 | let peer = (port,decode addr) | 87 | let peer = (port,decode addr) |
86 | user = toEnum (read (unpack uid) ::Int) ::UserID -- CUid . fromIntegral $ (read (unpack uid)::Int) | 88 | user = toEnum (read (unpack uid) ::Int) ::UserID -- CUid . fromIntegral $ (read (unpack uid)::Int) |
87 | return $ {- trace ("peer:"++show(peer,user)) -} (peer,user) | 89 | return $ {-trace ("peer:"++show(peer,user,inode))-} (peer,(user,inode)) |
88 | ) | 90 | ) |
89 | fmap snd . listToMaybe $ filter ((==(port,host)).fst) rs | 91 | fmap snd . listToMaybe $ filter ((==(port,host)).fst) rs |
90 | {- trace ("found: "++show u) -} | 92 | {- trace ("found: "++show u) -} |