From: Jeremy Evans Date: 2010-09-10T01:23:27+09:00 Subject: [ruby-core:32240] [Ruby 1.9-Bug#3811][Open] Support SOL_SOCKET SO_PEERCRED socket option on OpenBSD --mimepart_4c8909e8b0f27_eed901052865fc Content-Type: text/plain Content-Transfer-Encoding: Quoted-printable Content-Disposition: inline Bug #3811: Support SOL_SOCKET SO_PEERCRED socket option on OpenBSD http://redmine.ruby-lang.org/issues/show/3811 Author: Jeremy Evans Status: Open, Priority: Normal Category: ext ruby -v: ruby 1.9.2p0 (2010-08-18 revision 29036) [x86_64-openbsd4.8] This makes inspect_peercred in ext/socket/option.c work on OpenBSD-curren= t. OpenBSD added support for it on 2010-06-30. OpenBSD uses a struct so= ckpeercred instead of a struct ucred for storing the information, because= it has used struct ucred for something else since before 1995. See http:= //fxr.watson.org/fxr/source/sys/ucred.h?v=3DOPENBSD;im=3D3 and http://mar= c.info/?l=3Dopenbsd-cvs&m=3D127792847027664&w=3D2. I used a macro to do this, but a typedef would work as well. Tested on O= penBSD amd64, OpenBSD i386, and Linux i386. ---------------------------------------- http://redmine.ruby-lang.org --mimepart_4c8909e8b0f27_eed901052865fc Content-Type: application/octet-stream; name=patch-ext_socket_option_c Content-Transfer-Encoding: Base64 Content-Disposition: attachment; filename=patch-ext_socket_option_c LS0tIGV4dC9zb2NrZXQvb3B0aW9uLmMub3JpZwlXZWQgU2VwICA4IDE4OjI0 OjI4IDIwMTAKKysrIGV4dC9zb2NrZXQvb3B0aW9uLmMJV2VkIFNlcCAgOCAx ODoyNToyNSAyMDEwCkBAIC0zOTcsMTIgKzM5NywxNyBAQCBpbnNwZWN0X3Rp bWV2YWxfYXNfaW50ZXJ2YWwoaW50IGxldmVsLCBpbnQgb3B0bmFtZSwgVkEK IH0KIAogI2lmIGRlZmluZWQoU09MX1NPQ0tFVCkgJiYgZGVmaW5lZChTT19Q RUVSQ1JFRCkgLyogR05VL0xpbnV4ICovCisjaWYgZGVmaW5lZChfX09wZW5C U0RfXykKKyNkZWZpbmUgUlVCWV9TT0NLX1BFRVJDUkVEIHN0cnVjdCBzb2Nr cGVlcmNyZWQKKyNlbHNlCisjZGVmaW5lIFJVQllfU09DS19QRUVSQ1JFRCBz dHJ1Y3QgdWNyZWQKKyNlbmRpZgogc3RhdGljIGludAogaW5zcGVjdF9wZWVy Y3JlZChpbnQgbGV2ZWwsIGludCBvcHRuYW1lLCBWQUxVRSBkYXRhLCBWQUxV RSByZXQpCiB7Ci0gICAgaWYgKFJTVFJJTkdfTEVOKGRhdGEpID09IHNpemVv ZihzdHJ1Y3QgdWNyZWQpKSB7Ci0gICAgICAgIHN0cnVjdCB1Y3JlZCBjcmVk OwotICAgICAgICBtZW1jcHkoJmNyZWQsIFJTVFJJTkdfUFRSKGRhdGEpLCBz aXplb2Yoc3RydWN0IHVjcmVkKSk7CisgICAgaWYgKFJTVFJJTkdfTEVOKGRh dGEpID09IHNpemVvZihSVUJZX1NPQ0tfUEVFUkNSRUQpKSB7CisgICAgICAg IFJVQllfU09DS19QRUVSQ1JFRCBjcmVkOworICAgICAgICBtZW1jcHkoJmNy ZWQsIFJTVFJJTkdfUFRSKGRhdGEpLCBzaXplb2YoUlVCWV9TT0NLX1BFRVJD UkVEKSk7CiAgICAgICAgIHJiX3N0cl9jYXRmKHJldCwgIiBwaWQ9JXUgZXVp ZD0ldSBlZ2lkPSV1IiwKIAkJICAgICh1bnNpZ25lZCljcmVkLnBpZCwgKHVu c2lnbmVkKWNyZWQudWlkLCAodW5zaWduZWQpY3JlZC5naWQpOwogICAgICAg ICByYl9zdHJfY2F0MihyZXQsICIgKHVjcmVkKSIpOwo= --mimepart_4c8909e8b0f27_eed901052865fc--