| 312 | } |
| 313 | |
| 314 | int parseconnusername(char *username, struct clientparam *param, int extpasswd, unsigned short port){ |
| 315 | char *sb, *se; |
| 316 | if(!username || !*username) return 1; |
| 317 | if ((sb=strchr(username, conf.delimchar)) == NULL){ |
| 318 | if(!param->hostname && param->remsock == INVALID_SOCKET) return 2; |
| 319 | if(param->hostname)parsehostname((char *)param->hostname, param, port); |
| 320 | return parseusername(username, param, extpasswd); |
| 321 | } |
| 322 | while ((se=strchr(sb+1, conf.delimchar)))sb=se; |
| 323 | *(sb) = 0; |
| 324 | if(parseusername(username, param, extpasswd)) return 3; |
| 325 | *(sb) = conf.delimchar; |
| 326 | if(parsehostname(sb+1, param, port)) return 4; |
| 327 | return 0; |
| 328 | } |
| 329 | |
| 330 | void clearstat(struct clientparam * param) { |
| 331 |
no test coverage detected