MCPcopy Create free account
hub / github.com/acl-dev/acl / doLogin

Method doLogin

app/master/tools/master_dispatch/manager/client_servlet.cpp:178–252  ·  view source on GitHub ↗

ʹ�� POP �˻�����������֤

Source from the content-addressed store, hash-verified

176
177// ʹ�� POP �˻�����������֤
178bool client_servlet::doLogin(const char* user, const char* pass)
179{
180 acl::socket_stream conn;
181 if (conn.open(var_cfg_pop_server, var_cfg_conn_timeout,
182 var_cfg_rw_timeout) == false)
183 {
184 logger_error("connect pop server: %s error, user: %s",
185 var_cfg_pop_server, user);
186 return false;
187 }
188
189 acl::string line;
190 if (conn.gets(line) == false)
191 {
192 logger_error("gets banner from pop server: %s error, user: %s",
193 var_cfg_pop_server, user);
194 return false;
195 }
196
197 if (line.ncompare("+OK", 3, false) != 0)
198 {
199 logger_error("pop server: %s, banner: %s error, user: %s",
200 var_cfg_pop_server, line.c_str(), user);
201 return false;
202 }
203
204 //////////////////////////////////////////////////////////////////////
205 // for USER cmd
206 //
207 if (conn.format("USER %s\r\n", user) < 0)
208 {
209 logger_error("write USER cmd to pop server: %s error, user: %s",
210 var_cfg_pop_server, user);
211 return false;
212 }
213
214 line.clear();
215 if (conn.gets(line) == false)
216 {
217 logger_error("gets USER's reply error, pop: %s, user: %s",
218 var_cfg_pop_server, user);
219 return false;
220 }
221 if (line.ncompare("+OK", 3, false) != 0)
222 {
223 logger_error("USER's reply: %s error, pop: %s, user: %s",
224 line.c_str(), var_cfg_pop_server, user);
225 return false;
226 }
227
228 //////////////////////////////////////////////////////////////////////
229 // for PASS cmd
230 //
231 if (conn.format("PASS %s\r\n", pass) < 0)
232 {
233 logger_error("write PASS cmd error, pop: %s, user: %s",
234 var_cfg_pop_server, user);
235 return false;

Callers

nothing calls this directly

Calls 6

getsMethod · 0.80
ncompareMethod · 0.80
openMethod · 0.45
c_strMethod · 0.45
formatMethod · 0.45
clearMethod · 0.45

Tested by

no test coverage detected