diff options
Diffstat (limited to 'src/astmanproxy.c')
-rw-r--r-- | src/astmanproxy.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/astmanproxy.c b/src/astmanproxy.c index f6c0cd5..b84fdad 100644 --- a/src/astmanproxy.c +++ b/src/astmanproxy.c @@ -280,14 +280,17 @@ void *session_do(struct mansession *s) actionid = astman_get_header(&m, ACTION_ID); action = astman_get_header(&m, "Action"); if ( !strcasecmp(action, "Login") ) - ProxyLogin(s, &m); + if (!s->authenticated) + ProxyLogin(s, &m); + else + break; else if ( !strcasecmp(action, "Logoff") ) ProxyLogoff(s); else if ( !strcasecmp(action, "Challenge") ) ProxyChallenge(s, &m); else if ( !(*proxyaction == '\0') ) proxyaction_do(proxyaction, &m, s); - else if ( ValidateAction(&m, s ,0) ) { + else if ( ValidateAction(&m, s, 0) ) { if ( !(*actionid == '\0') ) setactionid(actionid, &m, s); if ( !WriteAsterisk(&m) ) |