| | |
| | | } |
| | | if ($bye && strncmp($string, '* BYE ', 6) == 0) { |
| | | return true; |
| | | |
| | | } |
| | | return false; |
| | | } |
| | |
| | | } |
| | | |
| | | return false; |
| | | } |
| | | |
| | | function iil_C_ClearCapability(&$conn) |
| | | { |
| | | $conn->capability = array(); |
| | | $conn->capability_readed = false; |
| | | } |
| | | |
| | | function iil_C_Authenticate(&$conn, $user, $pass, $encChallenge) { |
| | |
| | | |
| | | $result = false; |
| | | |
| | | //initialize connection |
| | | // initialize connection |
| | | $conn = new iilConnection; |
| | | $conn->error = ''; |
| | | $conn->errorNum = 0; |
| | |
| | | $iil_errornum = -1; |
| | | return false; |
| | | } |
| | | |
| | | if (!$ICL_PORT) { |
| | | $ICL_PORT = 143; |
| | | } |
| | | |
| | | //check for SSL |
| | | if ($ICL_SSL) { |
| | | if ($ICL_SSL && $ICL_SSL != 'tls') { |
| | | $host = $ICL_SSL . '://' . $host; |
| | | } |
| | | |
| | | //open socket connection |
| | | |
| | | $conn->fp = fsockopen($host, $ICL_PORT, $errno, $errstr, 10); |
| | | if (!$conn->fp) { |
| | | $iil_error = "Could not connect to $host at port $ICL_PORT: $errstr"; |
| | |
| | | |
| | | $conn->message .= $line; |
| | | |
| | | // TLS connection |
| | | if ($ICL_SSL == 'tls' && iil_C_GetCapability($conn, 'STARTTLS')) { |
| | | if (version_compare(PHP_VERSION, '5.1.0', '>=')) { |
| | | iil_PutLine($conn->fp, 'stls000 STARTTLS'); |
| | | |
| | | $line = iil_ReadLine($conn->fp, 4096); |
| | | if (!iil_StartsWith($line, 'stls000 OK')) { |
| | | $iil_error = "Server responded to STARTTLS with: $line"; |
| | | $iil_errornum = -2; |
| | | return false; |
| | | } |
| | | |
| | | if (!stream_socket_enable_crypto($conn->fp, true, STREAM_CRYPTO_METHOD_TLS_CLIENT)) { |
| | | $iil_error = "Unable to negotiate TLS"; |
| | | $iil_errornum = -2; |
| | | return false; |
| | | } |
| | | |
| | | // Now we're authenticated, capabilities need to be reread |
| | | iil_C_ClearCapability($conn); |
| | | } |
| | | } |
| | | |
| | | if (strcasecmp($auth_method, "check") == 0) { |
| | | //check for supported auth methods |
| | | if (iil_C_GetCapability($conn, 'AUTH=CRAM-MD5') || iil_C_GetCapability($conn, 'AUTH=CRAM_MD5')) { |