summaryrefslogtreecommitdiff
path: root/vio/viosocket.c
diff options
context:
space:
mode:
authorVladislav Vaintroub <wlad@mariadb.com>2018-02-06 12:55:58 +0000
committerVladislav Vaintroub <wlad@mariadb.com>2018-02-06 12:55:58 +0000
commit6c279ad6a71c63cb595fde7c951aadb31c3dbebc (patch)
tree3603f88e1b3bd1e622edb182cccd882dd31ddc8a /vio/viosocket.c
parentf271100836d8a91a775894ec36b869a66a3145e5 (diff)
downloadmariadb-git-6c279ad6a71c63cb595fde7c951aadb31c3dbebc.tar.gz
MDEV-15091 : Windows, 64bit: reenable and fix warning C4267 (conversion from 'size_t' to 'type', possible loss of data)
Handle string length as size_t, consistently (almost always:)) Change function prototypes to accept size_t, where in the past ulong or uint were used. change local/member variables to size_t when appropriate. This fix excludes rocksdb, spider,spider, sphinx and connect for now.
Diffstat (limited to 'vio/viosocket.c')
-rw-r--r--vio/viosocket.c26
1 files changed, 7 insertions, 19 deletions
diff --git a/vio/viosocket.c b/vio/viosocket.c
index 96bd729cfe8..75d3fc51db1 100644
--- a/vio/viosocket.c
+++ b/vio/viosocket.c
@@ -653,18 +653,15 @@ my_socket vio_fd(Vio* vio)
@param src_length [in] length of the src.
@param dst [out] a buffer to store normalized IP address
(sockaddr_storage).
- @param dst_length [out] actual length of the normalized IP address.
+ @param dst_length [out] optional - actual length of the normalized IP address.
*/
-void vio_get_normalized_ip(const struct sockaddr *src,
- int src_length,
- struct sockaddr *dst,
- int *dst_length)
+void vio_get_normalized_ip(const struct sockaddr *src, size_t src_length,
+ struct sockaddr *dst)
{
switch (src->sa_family) {
case AF_INET:
memcpy(dst, src, src_length);
- *dst_length= src_length;
break;
#ifdef HAVE_IPV6
@@ -683,9 +680,7 @@ void vio_get_normalized_ip(const struct sockaddr *src,
be converted to the IPv4 form.
*/
- *dst_length= sizeof (struct sockaddr_in);
-
- memset(dst_ip4, 0, *dst_length);
+ memset(dst_ip4, 0, sizeof (struct sockaddr_in));
dst_ip4->sin_family= AF_INET;
dst_ip4->sin_port= src_addr6->sin6_port;
@@ -699,9 +694,7 @@ void vio_get_normalized_ip(const struct sockaddr *src,
else
{
/* This is a "native" IPv6 address. */
-
memcpy(dst, src, src_length);
- *dst_length= src_length;
}
break;
@@ -732,17 +725,15 @@ void vio_get_normalized_ip(const struct sockaddr *src,
@retval FALSE on success.
*/
-my_bool vio_get_normalized_ip_string(const struct sockaddr *addr,
- int addr_length,
+my_bool vio_get_normalized_ip_string(const struct sockaddr *addr, size_t addr_length,
char *ip_string,
size_t ip_string_size)
{
struct sockaddr_storage norm_addr_storage;
struct sockaddr *norm_addr= (struct sockaddr *) &norm_addr_storage;
- int norm_addr_length;
int err_code;
- vio_get_normalized_ip(addr, addr_length, norm_addr, &norm_addr_length);
+ vio_get_normalized_ip(addr, addr_length, norm_addr);
err_code= vio_getnameinfo(norm_addr, ip_string, ip_string_size, NULL, 0,
NI_NUMERICHOST);
@@ -781,9 +772,7 @@ my_bool vio_peer_addr(Vio *vio, char *ip_buffer, uint16 *port,
address.
*/
struct in_addr *ip4= &((struct sockaddr_in *) &(vio->remote))->sin_addr;
-
vio->remote.ss_family= AF_INET;
- vio->addrLen= sizeof (struct sockaddr_in);
ip4->s_addr= htonl(INADDR_LOOPBACK);
@@ -800,7 +789,6 @@ my_bool vio_peer_addr(Vio *vio, char *ip_buffer, uint16 *port,
struct sockaddr_storage addr_storage;
struct sockaddr *addr= (struct sockaddr *) &addr_storage;
size_socket addr_length= sizeof (addr_storage);
-
/* Get sockaddr by socked fd. */
err_code= mysql_socket_getpeername(vio->mysql_socket, addr, &addr_length);
@@ -814,7 +802,7 @@ my_bool vio_peer_addr(Vio *vio, char *ip_buffer, uint16 *port,
/* Normalize IP address. */
vio_get_normalized_ip(addr, addr_length,
- (struct sockaddr *) &vio->remote, &vio->addrLen);
+ (struct sockaddr *) &vio->remote);
/* Get IP address & port number. */