====== 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.