diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-12-07 18:23:01 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-12-07 18:23:01 +0900 |
| commit | 842e6945f2d0a519d7cf0525016830246cd337ab (patch) | |
| tree | 1192758a69fa06a5f2cb3fa7c4e4030fcd41897e /mrbgems/mruby-socket/src/socket.c | |
| parent | 73ef548c6386a1101b5d95654bcb142ab83149c7 (diff) | |
| download | mruby-842e6945f2d0a519d7cf0525016830246cd337ab.tar.gz mruby-842e6945f2d0a519d7cf0525016830246cd337ab.zip | |
Fix type casting errors when `mruby-socket` compiled by C++.
Also `bool` is a reserved word in C++.
Diffstat (limited to 'mrbgems/mruby-socket/src/socket.c')
| -rw-r--r-- | mrbgems/mruby-socket/src/socket.c | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/mrbgems/mruby-socket/src/socket.c b/mrbgems/mruby-socket/src/socket.c index 758d3a311..b81dfa402 100644 --- a/mrbgems/mruby-socket/src/socket.c +++ b/mrbgems/mruby-socket/src/socket.c @@ -143,7 +143,7 @@ mrb_addrinfo_getaddrinfo(mrb_state *mrb, mrb_value klass) lastai = mrb_cv_get(mrb, klass, mrb_intern_lit(mrb, "_lastai")); if (mrb_cptr_p(lastai)) { - freeaddrinfo(mrb_cptr(lastai)); + freeaddrinfo((struct addrinfo*)mrb_cptr(lastai)); mrb_cv_set(mrb, klass, mrb_intern_lit(mrb, "_lastai"), mrb_nil_value()); } @@ -154,7 +154,7 @@ mrb_addrinfo_getaddrinfo(mrb_state *mrb, mrb_value klass) mrb_cv_set(mrb, klass, mrb_intern_lit(mrb, "_lastai"), mrb_cptr_value(mrb, res0)); for (res = res0; res != NULL; res = res->ai_next) { - sa = mrb_str_new(mrb, (void *)res->ai_addr, res->ai_addrlen); + sa = mrb_str_new(mrb, (char*)res->ai_addr, res->ai_addrlen); ai = mrb_funcall(mrb, klass, "new", 4, sa, mrb_fixnum_value(res->ai_family), mrb_fixnum_value(res->ai_socktype), mrb_fixnum_value(res->ai_protocol)); mrb_ary_push(mrb, ary, ai); mrb_gc_arena_restore(mrb, arena_idx); @@ -291,7 +291,7 @@ mrb_basicsocket_getpeername(mrb_state *mrb, mrb_value self) if (getpeername(socket_fd(mrb, self), (struct sockaddr *)&ss, &salen) != 0) mrb_sys_fail(mrb, "getpeername"); - return mrb_str_new(mrb, (void *)&ss, salen); + return mrb_str_new(mrb, (char*)&ss, salen); } static mrb_value @@ -304,7 +304,7 @@ mrb_basicsocket_getsockname(mrb_state *mrb, mrb_value self) if (getsockname(socket_fd(mrb, self), (struct sockaddr *)&ss, &salen) != 0) mrb_sys_fail(mrb, "getsockname"); - return mrb_str_new(mrb, (void *)&ss, salen); + return mrb_str_new(mrb, (char*)&ss, salen); } static mrb_value @@ -378,7 +378,7 @@ mrb_basicsocket_send(mrb_state *mrb, mrb_value self) if (mrb_nil_p(dest)) { n = send(socket_fd(mrb, self), RSTRING_PTR(mesg), RSTRING_LEN(mesg), flags); } else { - n = sendto(socket_fd(mrb, self), RSTRING_PTR(mesg), RSTRING_LEN(mesg), flags, (const void *)RSTRING_PTR(dest), RSTRING_LEN(dest)); + n = sendto(socket_fd(mrb, self), RSTRING_PTR(mesg), RSTRING_LEN(mesg), flags, (const struct sockaddr*)RSTRING_PTR(dest), RSTRING_LEN(dest)); } if (n == -1) mrb_sys_fail(mrb, "send"); @@ -389,12 +389,12 @@ static mrb_value mrb_basicsocket_setnonblock(mrb_state *mrb, mrb_value self) { int fd, flags; - mrb_value bool; + mrb_bool nonblocking; #ifdef _WIN32 u_long mode = 1; #endif - mrb_get_args(mrb, "o", &bool); + mrb_get_args(mrb, "b", &nonblocking); fd = socket_fd(mrb, self); #ifdef _WIN32 flags = ioctlsocket(fd, FIONBIO, &mode); @@ -404,7 +404,7 @@ mrb_basicsocket_setnonblock(mrb_state *mrb, mrb_value self) flags = fcntl(fd, F_GETFL, 0); if (flags == 1) mrb_sys_fail(mrb, "fcntl"); - if (mrb_test(bool)) + if (nonblocking) flags |= O_NONBLOCK; else flags &= ~O_NONBLOCK; @@ -431,14 +431,14 @@ mrb_basicsocket_setsockopt(mrb_state *mrb, mrb_value self) /* that's good */ } else if (mrb_type(optval) == MRB_TT_TRUE || mrb_type(optval) == MRB_TT_FALSE) { mrb_int i = mrb_test(optval) ? 1 : 0; - optval = mrb_str_new(mrb, (char *)&i, sizeof(i)); + optval = mrb_str_new(mrb, (char*)&i, sizeof(i)); } else if (mrb_fixnum_p(optval)) { if (optname == IP_MULTICAST_TTL || optname == IP_MULTICAST_LOOP) { char uc = mrb_fixnum(optval); optval = mrb_str_new(mrb, &uc, sizeof(uc)); } else { mrb_int i = mrb_fixnum(optval); - optval = mrb_str_new(mrb, (char *)&i, sizeof(i)); + optval = mrb_str_new(mrb, (char*)&i, sizeof(i)); } } else { mrb_raise(mrb, E_ARGUMENT_ERROR, "optval should be true, false, an integer, or a string"); @@ -500,12 +500,12 @@ mrb_ipsocket_pton(mrb_state *mrb, mrb_value klass) struct in_addr in; if (inet_pton(AF_INET, buf, (void *)&in.s_addr) != 1) goto invalid; - return mrb_str_new(mrb, (char *)&in.s_addr, 4); + return mrb_str_new(mrb, (char*)&in.s_addr, 4); } else if (af == AF_INET6) { struct in6_addr in6; if (inet_pton(AF_INET6, buf, (void *)&in6.s6_addr) != 1) goto invalid; - return mrb_str_new(mrb, (char *)&in6.s6_addr, 16); + return mrb_str_new(mrb, (char*)&in6.s6_addr, 16); } else mrb_raise(mrb, E_ARGUMENT_ERROR, "unsupported address family"); @@ -894,7 +894,7 @@ mrb_mruby_socket_gem_final(mrb_state* mrb) mrb_value ai; ai = mrb_mod_cv_get(mrb, mrb_class_get(mrb, "Addrinfo"), mrb_intern_lit(mrb, "_lastai")); if (mrb_cptr_p(ai)) { - freeaddrinfo(mrb_cptr(ai)); + freeaddrinfo((struct addrinfo*)mrb_cptr(ai)); } #ifdef _WIN32 WSACleanup(); |
