@@ -35,12 +35,13 @@ import Data.Word
3535import qualified Data.Map as M
3636import qualified Data.Text.Lazy as TL
3737import Data.Maybe
38+ import Data.List
3839
3940import Text.Printf
4041import Text.Regex.Posix
4142import System.FilePath.Posix
4243import System.Posix.Syslog
43- import System.Process (system )
44+ import System.Process (system , readProcessWithExitCode )
4445
4546import Control.Monad.Trans
4647import Control.Monad.Error
@@ -172,6 +173,7 @@ implementNetworkSlaveInterfaces = do
172173 , comCitrixXenclientNetworkslaveNwConnectivity = runApp appState networkConnectivity
173174 , comCitrixXenclientNetworkslaveGetIcavmNetwork = runApp appState getIcavmNetwork
174175 , comCitrixXenclientNetworkslaveNmState = runApp appState $ liftRpc $ nmState
176+ , comCitrixXenclientNetworkslaveVifAdded = \ vif -> runApp appState $ vifAdded vif
175177 }
176178
177179createInternalNetworks :: Int -> App ()
@@ -230,3 +232,8 @@ listNetworks = do
230232 internalNws <- readMVar (internalNetworks appState)
231233 anyNw <- readMVar (anyNetwork appState)
232234 return ((M. keys wiredNws) ++ (M. keys wirelessNws) ++ (M. keys mobileNws) ++ (M. keys internalNws) ++ (anyNw: [] ))
235+
236+ vifAdded :: String -> App (Bool )
237+ vifAdded vif = do
238+ (exitCode,stdout,_) <- liftIO $ readProcessWithExitCode " brctl" [" show" ] []
239+ return $ isInfixOf vif stdout
0 commit comments