summaryrefslogtreecommitdiff
path: root/ext/socket
diff options
context:
space:
mode:
authorakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-04-24 12:59:32 +0000
committerakr <akr@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2012-04-24 12:59:32 +0000
commit7c346a46d34332e52baa762f2e0dca978db5f8cf (patch)
treebb56d768abb43a51ac26d3966959ed1d71f75b73 /ext/socket
parent606208becf49fbfa8bb3d7e14acdb3c5bd947205 (diff)
* ext/socket/raddrinfo.c (init_unix_addrinfo): show actual path length
when it is too long for Unix socket. * ext/socket/unixsocket.c (rsock_init_unixsock): ditto. * ext/socket/socket.c (sock_s_pack_sockaddr_un): ditto. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@35465 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'ext/socket')
-rw-r--r--ext/socket/raddrinfo.c4
-rw-r--r--ext/socket/socket.c4
-rw-r--r--ext/socket/unixsocket.c4
3 files changed, 6 insertions, 6 deletions
diff --git a/ext/socket/raddrinfo.c b/ext/socket/raddrinfo.c
index 9212fc2bb5..bd4af34510 100644
--- a/ext/socket/raddrinfo.c
+++ b/ext/socket/raddrinfo.c
@@ -768,8 +768,8 @@ init_unix_addrinfo(rb_addrinfo_t *rai, VALUE path, int socktype)
StringValue(path);
if (sizeof(un.sun_path) <= (size_t)RSTRING_LEN(path))
- rb_raise(rb_eArgError, "too long unix socket path (max: %dbytes)",
- (int)sizeof(un.sun_path)-1);
+ rb_raise(rb_eArgError, "too long unix socket path (%ldbytes given but %dbytes max)",
+ RSTRING_LEN(path), (int)sizeof(un.sun_path)-1);
MEMZERO(&un, struct sockaddr_un, 1);
diff --git a/ext/socket/socket.c b/ext/socket/socket.c
index d2177e505d..383bc2983e 100644
--- a/ext/socket/socket.c
+++ b/ext/socket/socket.c
@@ -1429,8 +1429,8 @@ sock_s_pack_sockaddr_un(VALUE self, VALUE path)
sockaddr.sun_family = AF_UNIX;
sun_path = StringValueCStr(path);
if (sizeof(sockaddr.sun_path) <= strlen(sun_path)) {
- rb_raise(rb_eArgError, "too long unix socket path (max: %dbytes)",
- (int)sizeof(sockaddr.sun_path)-1);
+ rb_raise(rb_eArgError, "too long unix socket path (%ldbytes given but %dbytes max)",
+ RSTRING_LEN(path), (int)sizeof(sockaddr.sun_path)-1);
}
strncpy(sockaddr.sun_path, sun_path, sizeof(sockaddr.sun_path)-1);
addr = rb_str_new((char*)&sockaddr, sizeof(sockaddr));
diff --git a/ext/socket/unixsocket.c b/ext/socket/unixsocket.c
index afa47d54f6..24721fbe3d 100644
--- a/ext/socket/unixsocket.c
+++ b/ext/socket/unixsocket.c
@@ -40,8 +40,8 @@ rsock_init_unixsock(VALUE sock, VALUE path, int server)
MEMZERO(&sockaddr, struct sockaddr_un, 1);
sockaddr.sun_family = AF_UNIX;
if (sizeof(sockaddr.sun_path) <= (size_t)RSTRING_LEN(path)) {
- rb_raise(rb_eArgError, "too long unix socket path (max: %dbytes)",
- (int)sizeof(sockaddr.sun_path)-1);
+ rb_raise(rb_eArgError, "too long unix socket path (%ldbytes given but %dbytes max)",
+ RSTRING_LEN(path), (int)sizeof(sockaddr.sun_path)-1);
}
memcpy(sockaddr.sun_path, RSTRING_PTR(path), RSTRING_LEN(path));