Spec-Zone .ru
спецификации, руководства, описания, API
|
Handshake information is sent by the server to the client after the initial connection (through connect_server()
) has been made. The handshake information contains details about
the MySQL version, the ID of the thread that will handle the connection information, and the IP address of the
client and server. This information is exposed through the proxy.connection
structure.
proxy.connection.server.mysqld_version
: The version of
the MySQL server.
proxy.connection.server.thread_id
: The thread ID.
proxy.connection.server.scramble_buffer
: The password
scramble buffer.
proxy.connection.server.dst.name
: The IP address of the
server.
proxy.connection.client.src.name
: The IP address of the
client.
For example, you can print out the handshake data and refuse clients by IP address with the following function:
function read_handshake() print("<-- let's send him some information about us") print(" mysqld-version: " .. proxy.connection.server.mysqld_version) print(" thread-id : " .. proxy.connection.server.thread_id) print(" scramble-buf : " .. string.format("%q",proxy.connection.server.scramble_buffer)) print(" server-addr : " .. proxy.connection.server.dst.name) print(" client-addr : " .. proxy.connection.client.dst.name) if not proxy.connection.client.src.name:match("^127.0.0.1:") then proxy.response.type = proxy.MYSQLD_PACKET_ERR proxy.response.errmsg = "only local connects are allowed" print("we don't like this client"); return proxy.PROXY_SEND_RESULT endend
Note that you must return an error packet to the client by using proxy.PROXY_SEND_RESULT
.