Merge pull request #60 from drbrain/test_io_setup_failure

Test io setup failure
This commit is contained in:
Tomoyuki Sahara
2016-06-21 09:52:30 +09:00
committed by GitHub
+5 -2
View File
@@ -1,4 +1,5 @@
#include <sys/types.h>
#include <errno.h>
#if defined(_WIN32) || defined(_WIN64)
#include <winsock.h>
@@ -24,7 +25,7 @@ mrb_io_test_io_setup(mrb_state *mrb, mrb_value self)
char rfname[] = "tmp.mruby-io-test.XXXXXXXX";
char wfname[] = "tmp.mruby-io-test.XXXXXXXX";
char symlinkname[] = "tmp.mruby-io-test.XXXXXXXX";
char socketname[] = "tmp.mruby-io-test.XXXXXXXX";
char socketname[] = "/tmp/mruby-io-test.XXXXXXXX";
char msg[] = "mruby io test\n";
mode_t mask;
int fd0, fd1, fd2, fd3;
@@ -84,7 +85,9 @@ mrb_io_test_io_setup(mrb_state *mrb, mrb_value self)
sun0.sun_family = AF_UNIX;
snprintf(sun0.sun_path, sizeof(sun0.sun_path), "%s", socketname);
if (bind(fd3, (struct sockaddr *)&sun0, sizeof(sun0)) == -1) {
mrb_raise(mrb, E_RUNTIME_ERROR, "can't make a socket bi");
mrb_raisef(mrb, E_RUNTIME_ERROR, "can't bind AF_UNIX socket to %S: %S",
mrb_str_new_cstr(mrb, sun0.sun_path),
mrb_fixnum_value(errno));
}
close(fd3);
#endif