diff options
author | Brian Cully <bjc@kublai.com> | 2012-02-09 16:02:41 -0500 |
---|---|---|
committer | Brian Cully <bjc@kublai.com> | 2012-02-09 16:02:41 -0500 |
commit | 3f739d918f99f0324b9b8ad9ea9c7bd5888c46f7 (patch) | |
tree | 21801e8e8bcf7f45a52bbf1509c4f07441c45251 | |
parent | b9892e56efff45f76d505337fc03f3e04f7c6073 (diff) | |
download | mysqlerl-3f739d918f99f0324b9b8ad9ea9c7bd5888c46f7.tar.gz mysqlerl-3f739d918f99f0324b9b8ad9ea9c7bd5888c46f7.zip |
Return errors when connecting fails.
-rw-r--r-- | c_src/mysqlerl.c | 6 | ||||
-rw-r--r-- | src/mysqlerl_connection.erl | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/c_src/mysqlerl.c b/c_src/mysqlerl.c index 5c67517..37be2e4 100644 --- a/c_src/mysqlerl.c +++ b/c_src/mysqlerl.c @@ -248,8 +248,10 @@ handle_connect(ETERM *msg) logmsg("INFO: Connecting to %s on %s:%d as %s", db_name, host, port, user); if (mysql_real_connect(&dbh, host, user, passwd, db_name, port, NULL, 0) == NULL) { - logmsg("ERROR: Failed to connect to database %s as %s: %s.", - db_name, user, mysql_error(&dbh)); + resp = erl_format("{error, {mysql_error, ~i, ~s}}", + mysql_errno(&dbh), mysql_error(&dbh)); + write_msg(resp); + erl_free_term(resp); exit(2); } diff --git a/src/mysqlerl_connection.erl b/src/mysqlerl_connection.erl index 46d9fd3..bfff97d 100644 --- a/src/mysqlerl_connection.erl +++ b/src/mysqlerl_connection.erl @@ -37,6 +37,8 @@ init([Owner, Host, Port, Database, User, Password, Options]) -> case send_port_cmd(Ref, ConnectArgs, ?CONNECT_TIMEOUT) of {data, ok} -> {ok, #state{port = Ref, owner = Owner}}; + {data, {error, Error}} -> + {stop, Error}; {'EXIT', Ref, Reason} -> {stop, {port_closed, Reason}} end. |