12 handleCmd_NotEntered :: CmdHandler |
12 handleCmd_NotEntered :: CmdHandler |
13 |
13 |
14 handleCmd_NotEntered ["NICK", newNick] = do |
14 handleCmd_NotEntered ["NICK", newNick] = do |
15 (ci, irnc) <- ask |
15 (ci, irnc) <- ask |
16 let cl = irnc `client` ci |
16 let cl = irnc `client` ci |
17 if not . B.null $ nick cl then return [ProtocolError "Nickname already chosen"] |
17 if not . B.null $ nick cl then return [ProtocolError $ loc "Nickname already chosen"] |
18 else |
18 else |
19 if illegalName newNick then return [ByeClient "Illegal nickname"] |
19 if illegalName newNick then return [ByeClient $ loc "Illegal nickname"] |
20 else |
20 else |
21 return $ |
21 return $ |
22 ModifyClient (\c -> c{nick = newNick}) : |
22 ModifyClient (\c -> c{nick = newNick}) : |
23 AnswerClients [sendChan cl] ["NICK", newNick] : |
23 AnswerClients [sendChan cl] ["NICK", newNick] : |
24 [CheckRegistered | clientProto cl /= 0] |
24 [CheckRegistered | clientProto cl /= 0] |
25 |
25 |
26 handleCmd_NotEntered ["PROTO", protoNum] = do |
26 handleCmd_NotEntered ["PROTO", protoNum] = do |
27 (ci, irnc) <- ask |
27 (ci, irnc) <- ask |
28 let cl = irnc `client` ci |
28 let cl = irnc `client` ci |
29 if clientProto cl > 0 then return [ProtocolError "Protocol already known"] |
29 if clientProto cl > 0 then return [ProtocolError $ loc "Protocol already known"] |
30 else |
30 else |
31 if parsedProto == 0 then return [ProtocolError "Bad number"] |
31 if parsedProto == 0 then return [ProtocolError $ loc "Bad number"] |
32 else |
32 else |
33 return $ |
33 return $ |
34 ModifyClient (\c -> c{clientProto = parsedProto}) : |
34 ModifyClient (\c -> c{clientProto = parsedProto}) : |
35 AnswerClients [sendChan cl] ["PROTO", showB parsedProto] : |
35 AnswerClients [sendChan cl] ["PROTO", showB parsedProto] : |
36 [CheckRegistered | not . B.null $ nick cl] |
36 [CheckRegistered | not . B.null $ nick cl] |
51 #if defined(OFFICIAL_SERVER) |
51 #if defined(OFFICIAL_SERVER) |
52 handleCmd_NotEntered ["CHECKER", protoNum, newNick, password] = do |
52 handleCmd_NotEntered ["CHECKER", protoNum, newNick, password] = do |
53 (ci, irnc) <- ask |
53 (ci, irnc) <- ask |
54 let cl = irnc `client` ci |
54 let cl = irnc `client` ci |
55 |
55 |
56 if parsedProto == 0 then return [ProtocolError "Bad number"] |
56 if parsedProto == 0 then return [ProtocolError $ loc "Bad number"] |
57 else |
57 else |
58 return $ [ |
58 return $ [ |
59 ModifyClient (\c -> c{clientProto = parsedProto, nick = newNick, webPassword = password, isChecker = True}) |
59 ModifyClient (\c -> c{clientProto = parsedProto, nick = newNick, webPassword = password, isChecker = True}) |
60 , CheckRegistered] |
60 , CheckRegistered] |
61 where |
61 where |