|
|
@ -587,7 +587,10 @@ namespace proxy |
|
|
|
EnterState(GET5_USER_SIZE); |
|
|
|
EnterState(GET5_USER_SIZE); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case GET5_USER_SIZE: |
|
|
|
case GET5_USER_SIZE: |
|
|
|
|
|
|
|
if (*sock_buff) |
|
|
|
EnterState(GET5_USER, *sock_buff); |
|
|
|
EnterState(GET5_USER, *sock_buff); |
|
|
|
|
|
|
|
else // empty user
|
|
|
|
|
|
|
|
EnterState(GET5_PASSWD_SIZE); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case GET5_USER: |
|
|
|
case GET5_USER: |
|
|
|
// skip user for now
|
|
|
|
// skip user for now
|
|
|
@ -595,7 +598,13 @@ namespace proxy |
|
|
|
if (m_parseleft == 0) EnterState(GET5_PASSWD_SIZE); |
|
|
|
if (m_parseleft == 0) EnterState(GET5_PASSWD_SIZE); |
|
|
|
break; |
|
|
|
break; |
|
|
|
case GET5_PASSWD_SIZE: |
|
|
|
case GET5_PASSWD_SIZE: |
|
|
|
|
|
|
|
if (*sock_buff) |
|
|
|
EnterState(GET5_PASSWD, *sock_buff); |
|
|
|
EnterState(GET5_PASSWD, *sock_buff); |
|
|
|
|
|
|
|
else // empty password
|
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Socks5UserPasswdResponse (); |
|
|
|
|
|
|
|
EnterState(GET5_REQUESTV); |
|
|
|
|
|
|
|
} |
|
|
|
break; |
|
|
|
break; |
|
|
|
case GET5_PASSWD: |
|
|
|
case GET5_PASSWD: |
|
|
|
// skip passwd for now
|
|
|
|
// skip passwd for now
|
|
|
|