From: Eric Wong <yahns-public@yhbt.net> To: yahns-public@yhbt.net Subject: [PATCH] test_bin: SO_KEEPALIVE value only needs to be true Date: Mon, 3 Apr 2017 19:59:31 +0000 Message-ID: <20170403195931.24452-1-yahns-public@yhbt.net> (raw) From: Eric Wong <e@80x24.org> On FreeBSD 10.3 (and presumably other *BSD TCP stacks, the value of SO_KEEPALIVE returned by getsockopt is 8, even when set to '1' via setsockopt. Relax the test to only ensure the boolean value is interpreted as "true". Verified independently of Ruby using the following: --------8<--------- #include <sys/types.h> #include <sys/socket.h> #include <stdio.h> static int err(const char *msg) { perror(msg); return 1; } int main(void) { int sv[2]; int set = 1; int got; socklen_t len = (socklen_t) sizeof(int); int rc; rc = socketpair(PF_LOCAL, SOCK_STREAM, 0, sv); if (rc) return err("socketpair failed"); rc = setsockopt(sv[0], SOL_SOCKET, SO_KEEPALIVE, &set, len); if (rc) return err("setsockopt failed"); rc = getsockopt(sv[0], SOL_SOCKET, SO_KEEPALIVE, &got, &len); if (rc) return err("getsockopt failed"); printf("got: %d\n", got); return 0; } --- test/test_bin.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/test_bin.rb b/test/test_bin.rb index be1c024..af990ad 100644 --- a/test/test_bin.rb +++ b/test/test_bin.rb @@ -35,7 +35,7 @@ def test_listen_fd3 assert_equal "keep-alive", res["Connection"] end - assert_equal 1, @srv.getsockopt(:SOL_SOCKET, :SO_KEEPALIVE).int, + assert @srv.getsockopt(:SOL_SOCKET, :SO_KEEPALIVE).bool, 'ensure the inheriting process applies TCP socket options' ensure if pid -- EW
reply other threads:[~2017-04-03 19:59 UTC|newest] Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style List information: https://yhbt.net/yahns/README * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=20170403195931.24452-1-yahns-public@yhbt.net \ --to=yahns-public@yhbt.net \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: link
yahns Ruby server user/dev discussion This inbox may be cloned and mirrored by anyone: git clone --mirror https://yhbt.net/yahns-public git clone --mirror http://ou63pmih66umazou.onion/yahns-public # If you have public-inbox 1.1+ installed, you may # initialize and index your mirror using the following commands: public-inbox-init -V1 yahns-public yahns-public/ https://yhbt.net/yahns-public \ yahns-public@yhbt.net yahns-public@rubyforge.org public-inbox-index yahns-public Example config snippet for mirrors. Newsgroups are available over NNTP: nntp://news.public-inbox.org/inbox.comp.lang.ruby.yahns nntp://ou63pmih66umazou.onion/inbox.comp.lang.ruby.yahns note: .onion URLs require Tor: https://www.torproject.org/ code repositories for the project(s) associated with this inbox: ../../yahns.git AGPL code for this site: git clone http://ou63pmih66umazou.onion/public-inbox.git