====== Roundcube Change Password Connection Error Directadmin Driver ======
Permasalahan kali ini terjadi ketika merubah password email di roundcube kemudian keluar error seperti ini
{{:roundcube:roundcube_change_password_directadmin_could_not_connect.jpg?nolink|}}
Padahal password sudah berhasil berubah. Bagaimana Solusinya?
===== - Analisa =====
Setelah menelusuri ternyata sumber permasalahan terdapat pada file driver password directadmin yaitu pada file
plugins/password/drivers/directadmin.php
kodenya seperti ini
if($Socket->result_status_code != 200)
return array('code' => PASSWORD_CONNECT_ERROR, 'message' => $Socket->error[0]);
elseif($response['error'] == 1)
return array('code' => PASSWORD_ERROR, 'message' => strip_tags($response['text']));
else
return PASSWORD_SUCCESS;
kode tersebut menyatakan jika result_status_code selain = 200 maka error. itulah sumber penyebabnya. \\
Hasil debug variable $Socket dan $response directadmin terputus :
Array ( ) HTTPSocket Object ( [version] => 2.8 [method] => POST [remote_host] => tcp://mail.domain.netaaa [remote_port] => 2222 [remote_uname] => [remote_passwd] => [result] => [result_header] => [result_body] => [result_status_code] => [lastTransferSpeed] => [bind_host] => [error] => Array ( [0] => Can't create socket connection to tcp://mail.domain.netaaa:2222. ) [warn] => Array ( ) [query_cache] => Array ( ) [doFollowLocationHeader] => 1 [redirectURL] => [extra_headers] => Array ( ) )
menyatakan **[result_status_code]** bernilai null
dan hasil debug $Socket dan $response directadmin terkoneksi :
Array ( ) HTTPSocket Object ( [version] => 2.8 [method] => POST [remote_host] => tcp://mail.domain.net [remote_port] => 2222 [remote_uname] => [remote_passwd] => [result] => HTTP/1.1 [result_header] => HTTP/1.1 [result_body] => [result_status_code] => [lastTransferSpeed] => 0.0087890625 [bind_host] => [error] => Array ( ) [warn] => Array ( ) [query_cache] => Array ( [0] => POST /CMD_CHANGE_EMAIL_PASSWORD HTTP/1.0 User-Agent: HTTPSocket/2.8 Host: mail.domain.net:2222 Accept: */* Connection: Close Content-type: application/x-www-form-urlencoded Content-length: 93 email=nama%40domain.net&oldpassword=passwdLama&password1=PasswdBaru&password2=PasswdBaru&api=1 ) [doFollowLocationHeader] => 1 [redirectURL] => [extra_headers] => Array ( ) )
menyatakan **[result_status_code]** bernilai null \\
itulah kenapa meskipun password sudah berubah tetap saja keluar error connection.
===== - Solusi =====
cukup merubah status [result_status_code] \\
edit file
plugins/password/drivers/directadmin.php
kemudian ubah kode diatas menjadi kode ini
if($Socket->result == "")
return array('code' => PASSWORD_CONNECT_ERROR, 'message' => $Socket->error[0]);
elseif($response['error'] == 1)
return array('code' => PASSWORD_ERROR, 'message' => strip_tags($response['text']));
else
return PASSWORD_SUCCESS;
Selesai.