Revision 5e671e0e

b/src/Ganeti/Query/Server.hs
356 356
  return ()
357 357

  
358 358
-- | Type alias for prepMain results
359
type PrepResult = (FilePath, Server, IORef (Result ConfigData), JQStatus)
359
type PrepResult = (Server, IORef (Result ConfigData), JQStatus)
360 360

  
361 361
-- | Check function for luxid.
362 362
checkMain :: CheckFn ()
......
371 371
         Nothing (Just socket_path) $ getLuxiServer True socket_path
372 372
  cref <- newIORef (Bad "Configuration not yet loaded")
373 373
  jq <- emptyJQStatus 
374
  return (socket_path, s, cref, jq)
374
  return (s, cref, jq)
375 375

  
376 376
-- | Main function.
377 377
main :: MainFn () PrepResult
378
main _ _ (socket_path, server, cref, jq) = do
378
main _ _ (server, cref, jq) = do
379 379
  initConfigReader id cref
380 380
  let creader = readIORef cref
381 381
  initJQScheduler jq
......
386 386

  
387 387
  finally
388 388
    (forever $ listener qlock jq creader server)
389
    (closeServer socket_path server)
389
    (closeServer server)
b/src/Ganeti/UDSServer.hs
116 116

  
117 117
-- | A server encapsulation.
118 118
data Server = Server { sSocket :: S.Socket        -- ^ The bound server socket
119
                     , sPath :: FilePath          -- ^ The scoket's path
119 120
                     , serverConfig :: ConnectConfig
120 121
                     }
121 122

  
......
142 143
  when setOwner . setOwnerAndGroupFromNames path (connDaemon conf) $
143 144
    ExtraGroup DaemonsGroup
144 145
  S.listen s 5 -- 5 is the max backlog
145
  return Server { sSocket=s, serverConfig=conf }
146
  return Server { sSocket=s, sPath=path, serverConfig=conf }
146 147

  
147 148
-- | Closes a server endpoint.
148 149
-- FIXME: this should be encapsulated into a nicer type.
149
closeServer :: FilePath -> Server -> IO ()
150
closeServer path server = do
150
closeServer :: Server -> IO ()
151
closeServer server = do
151 152
  S.sClose (sSocket server)
152
  removeFile path
153
  removeFile (sPath server)
153 154

  
154 155
-- | Accepts a client
155 156
acceptClient :: Server -> IO Client
b/test/hs/Test/Ganeti/Luxi.hs
136 136
  _ <- run . forkIO $
137 137
    bracket
138 138
      (Luxi.acceptClient server)
139
      (\c -> Luxi.closeClient c >> Luxi.closeServer fpath server)
139
      (\c -> Luxi.closeClient c >> Luxi.closeServer server)
140 140
      luxiServerPong
141 141
  replies <- run $
142 142
    bracket

Also available in: Unified diff