upstream choice modules
diff --git a/src/mysql/ngx_http_mysql_test.c b/src/mysql/ngx_http_mysql_test.c
index 2f06000..ecc5cbf 100644
--- a/src/mysql/ngx_http_mysql_test.c
+++ b/src/mysql/ngx_http_mysql_test.c
@@ -10,7 +10,8 @@
 
 
 typedef struct {
-    ngx_peers_t  *peers;
+    ngx_peer_addr_t  *peers;
+    ngx_uint_t        npeers;
 } ngx_http_mysql_test_conf_t;
 
 
@@ -94,10 +95,15 @@
     m->passwd = &ngx_mysql_passwd;
     m->database = &ngx_mysql_database;
 
+    /* STUB */
+    m->peer.sockaddr = mtcf->peers[0].sockaddr;
+    m->peer.socklen = mtcf->peers[0].socklen;
+    m->peer.name = &mtcf->peers[0].name;
+    m->peer.tries = mtcf->npeers;
+    m->peer.get = ngx_event_get_peer;
+    /**/
     m->peer.log = r->connection->log;
     m->peer.log_error = NGX_ERROR_ERR;
-    m->peer.peers = mtcf->peers;
-    m->peer.tries = mtcf->peers->number;
 
     rc = ngx_mysql_connect(m);
 
@@ -190,7 +196,8 @@
         return NGX_CONF_ERROR;
     }
 
-    mtcf->peers = u.peers;
+    mtcf->peers = u.addrs;
+    mtcf->npeers = u.naddrs;
 
     return NGX_CONF_OK;
 }
diff --git a/src/mysql/ngx_mysql.c b/src/mysql/ngx_mysql.c
index daabcd8..2c1980d 100644
--- a/src/mysql/ngx_mysql.c
+++ b/src/mysql/ngx_mysql.c
@@ -150,8 +150,7 @@
 
     if (rev->timedout) {
         ngx_log_error(NGX_LOG_ERR, rev->log, NGX_ETIMEDOUT,
-                      "mysql server %V timed out",
-                      &m->peer.peers->peer[0].name);
+                      "mysql server %V timed out", m->peer.name);
 
         ngx_mysql_close(m, NGX_ERROR);
         return;
@@ -183,7 +182,7 @@
     if (ngx_m24toh(gr1->pktlen) > n - 4) {
         ngx_log_error(NGX_LOG_ERR, rev->log, 0,
                       "mysql server %V sent incomplete greeting packet",
-                      &m->peer.peers->peer[0].name);
+                      m->peer.name);
 
         ngx_mysql_close(m, NGX_ERROR);
         return;
@@ -192,7 +191,7 @@
     if (gr1->protocol < 10) {
         ngx_log_error(NGX_LOG_ERR, rev->log, 0,
                       "mysql server %V sent unsupported protocol version %ud",
-                      &m->peer.peers->peer[0].name, gr1->protocol);
+                      m->peer.name, gr1->protocol);
 
         ngx_mysql_close(m, NGX_ERROR);
         return;
@@ -273,7 +272,7 @@
     if (n < (ssize_t) len) {
         ngx_log_error(NGX_LOG_ERR, rev->log, 0,
                       "the incomplete packet was sent to mysql server %V",
-                      &m->peer.peers->peer[0].name);
+                      m->peer.name);
 
         ngx_mysql_close(m, NGX_ERROR);
         return;
@@ -329,7 +328,7 @@
     if (len > n - 4) {
         ngx_log_error(NGX_LOG_ERR, rev->log, 0,
                       "mysql server %V sent incomplete response packet",
-                      &m->peer.peers->peer[0].name);
+                      m->peer.name);
 
         ngx_mysql_close(m, NGX_ERROR);
         return;
@@ -353,7 +352,7 @@
 
     ngx_log_error(NGX_LOG_ERR, rev->log, 0,
                   "mysql server %V sent error (%ud): \"%V\"",
-                  &m->peer.peers->peer[0].name, ngx_m16toh(epkt->code), &msg);
+                  m->peer.name, ngx_m16toh(epkt->code), &msg);
 
     ngx_mysql_close(m, NGX_ERROR);
 }
@@ -376,7 +375,7 @@
     if (n < (ssize_t) m->query.len) {
         ngx_log_error(NGX_LOG_ERR, m->peer.log, 0,
                       "the incomplete packet was sent to mysql server %V",
-                      &m->peer.peers->peer[0].name);
+                      m->peer.name);
 
         ngx_mysql_close(m, NGX_ERROR);
         return NGX_OK;
@@ -427,7 +426,7 @@
     if (len > n - 4) {
         ngx_log_error(NGX_LOG_ERR, rev->log, 0,
                       "mysql server %V sent incomplete response packet",
-                      &m->peer.peers->peer[0].name);
+                      m->peer.name);
 
         ngx_mysql_close(m, NGX_ERROR);
         return;
@@ -451,7 +450,7 @@
 
     ngx_log_error(NGX_LOG_ERR, rev->log, 0,
                   "mysql server %V sent error (%ud): \"%V\"",
-                  &m->peer.peers->peer[0].name, ngx_m16toh(epkt->code), &msg);
+                  m->peer.name, ngx_m16toh(epkt->code), &msg);
 
     ngx_mysql_close(m, NGX_ERROR);
 }