diff options
author | Brian Cully <bjc@kublai.com> | 2008-03-01 18:02:49 -0500 |
---|---|---|
committer | Brian Cully <bjc@kublai.com> | 2008-03-01 18:02:49 -0500 |
commit | 76c6dd8f62ad737bc17e59f29904efe8c31ca7ea (patch) | |
tree | 1d810be7bc6baa72061ca33beae229576141b72f /src/mysqlerl.c | |
parent | 1c18deb43934fbba7d1d1ac3542d8e8d136f8e7d (diff) | |
download | mysqlerl-76c6dd8f62ad737bc17e59f29904efe8c31ca7ea.tar.gz mysqlerl-76c6dd8f62ad737bc17e59f29904efe8c31ca7ea.zip |
Normalize more code flow.
Diffstat (limited to 'src/mysqlerl.c')
-rw-r--r-- | src/mysqlerl.c | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/src/mysqlerl.c b/src/mysqlerl.c index 0ce2703..6a3a2e3 100644 --- a/src/mysqlerl.c +++ b/src/mysqlerl.c @@ -20,6 +20,8 @@ const char *LOGPATH = "/tmp/mysqlerl.log"; static FILE *logfile = NULL; const char *QUERY_MSG = "sql_query"; +const char *COMMIT_MSG = "sql_commit"; +const char *ROLLBACK_MSG = "sql_rollback"; typedef u_int32_t msglen_t; @@ -174,7 +176,8 @@ dispatch_db_cmd(MYSQL *dbh, msg_t *msg) ETERM *tag; tag = erl_element(1, msg->cmd); - if (strncmp((char *)ERL_ATOM_PTR(tag), QUERY_MSG, sizeof(QUERY_MSG)) == 0) { + if (strncmp((char *)ERL_ATOM_PTR(tag), + QUERY_MSG, strlen(QUERY_MSG)) == 0) { ETERM *query, *resp; char *q, *buf; int buflen; @@ -184,14 +187,39 @@ dispatch_db_cmd(MYSQL *dbh, msg_t *msg) erl_free_term(query); logmsg("DEBUG: got query msg: %s.", q); - resp = erl_format("{ok, ~s}", q); + resp = erl_format("{query, ~s}", q); erl_free(q); buflen = erl_term_len(resp); buf = (char *)malloc(buflen); erl_encode(resp, (unsigned char *)buf); erl_free_term(resp); + write_cmd(buf, buflen); + free(buf); + } else if (strncmp((char *)ERL_ATOM_PTR(tag), + COMMIT_MSG, strlen(COMMIT_MSG)) == 0) { + ETERM *resp; + char *buf; + int buflen; + resp = erl_format("{ok, commit}"); + buflen = erl_term_len(resp); + buf = (char *)malloc(buflen); + erl_encode(resp, (unsigned char *)buf); + erl_free_term(resp); + write_cmd(buf, buflen); + free(buf); + } else if (strncmp((char *)ERL_ATOM_PTR(tag), + ROLLBACK_MSG, strlen(ROLLBACK_MSG)) == 0) { + ETERM *resp; + char *buf; + int buflen; + + resp = erl_format("{ok, rollback}"); + buflen = erl_term_len(resp); + buf = (char *)malloc(buflen); + erl_encode(resp, (unsigned char *)buf); + erl_free_term(resp); write_cmd(buf, buflen); free(buf); } else { |