From owner-freebsd-net@freebsd.org Sat Feb 22 04:23:20 2020 Return-Path: Delivered-To: freebsd-net@mailman.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mailman.nyi.freebsd.org (Postfix) with ESMTP id 7501524F611 for ; Sat, 22 Feb 2020 04:23:20 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) server-signature RSA-PSS (4096 bits) client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "Let's Encrypt Authority X3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 48PZvC5tYZz4By1; Sat, 22 Feb 2020 04:23:19 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: from reviews.nyi.freebsd.org (reviews.nyi.freebsd.org [IPv6:2610:1c1:1:607c::16:b]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id A86C01DE2F; Sat, 22 Feb 2020 04:23:19 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: by reviews.nyi.freebsd.org (Postfix, from userid 1346) id 616D534B37B; Sat, 22 Feb 2020 04:23:19 +0000 (UTC) Date: Sat, 22 Feb 2020 04:23:19 +0000 To: Phabricator From: "neel_neelc.org (Neel Chauhan)" Cc: freebsd-net@freebsd.org Reply-to: "neel_neelc.org (Neel Chauhan)" Subject: [Differential] D23788: DRAFT: ng_ksocket IPv6 address parsing and unparsing Message-ID: X-Priority: 3 X-Phabricator-Sent-This-Message: Yes X-Mail-Transport-Agent: MetaMTA X-Auto-Response-Suppress: All X-Phabricator-Mail-Tags: , , X-Herald-Rules: <28>, <125>, <128>, <67> X-Phabricator-Projects: <#network> X-Phabricator-To: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: X-Phabricator-Cc: Precedence: bulk Thread-Topic: PHID-DREV-isgti776xdsdvju2ufh3 X-Phabricator-Mail-ID: 1833224 X-Phabricator-Send-Attempt: 7mcxcsx4p62ja352 Thread-Index: MWQ0ZDVhYmNlZTMxYjNlZWMyN2FmZTk4Yjlh X-Phabricator-Stamps: actor(@neel_neelc.org) application(Differential) author(@neel_neelc.org) herald(H28) herald(H67) herald(H125) herald(H128) monogram(D23788) new() object-type(DREV) phid(PHID-DREV-isgti776xdsdvju2ufh3) revision-repository(rS) revision-status(needs-review) subscriber(#contributor_reviews_base) subscriber(@freebsd-net-list) subscriber(@imp) subscriber(@lutz_donnerhacke.de) subscriber(@melifaro) tag(#network) via(web) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_106a6720e3ad442c41e9405aa21e57ab" X-BeenThere: freebsd-net@freebsd.org X-Mailman-Version: 2.1.29 List-Id: Networking and TCP/IP with FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 22 Feb 2020 04:23:20 -0000 --b1_106a6720e3ad442c41e9405aa21e57ab Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: base64 bmVlbF9uZWVsYy5vcmcgY3JlYXRlZCB0aGlzIHJldmlzaW9uLgpuZWVsX25lZWxjLm9yZyBhZGRl ZCBhIHByb2plY3Q6IG5ldHdvcmsuCkhlcmFsZCBhZGRlZCBzdWJzY3JpYmVyczogQ29udHJpYnV0 b3IgUmV2aWV3cyAoYmFzZSksIG1lbGlmYXJvLCBsdXR6X2Rvbm5lcmhhY2tlLmRlLCBpbXAuCgpS RVZJU0lPTiBTVU1NQVJZCiAgQWRkIElQdjYgc3VwcG9ydCB0byBhZGRyZXNzIHBhcnNpbmcgYW5k IHVucGFyc2luZyB0byBuZ19rc29ja2V0LgogIAogIFN1Ym1pdHRlZCBieTogTmVlbCBDaGF1aGFu IDxuZWVsIEFUIG5lZWxjIERPVCBvcmc+CiAgCiAgS2VlcCBpbiBtaW5kIHRoYXQgdGhpcyBpcyBh IERSQUZULiBUaGluZ3Mgc3RpbGwgbmVlZCB0byBiZSBkb25lLCBpbmNsdWRpbmc6CiAgCiAgLSBG aXggdGhlICJuZ2N0bDogc2VuZCBtc2c6IEludmFsaWQgYXJndW1lbnQiIGVycm9yCiAgLSBTaG9y dGhhbmQgSVB2NgogIC0gQW55dGhpbmcgbW9yZSBjb21tZW50ZXJzIHdhbnQKClRFU1QgUExBTgog IERvIHNvbWV0aGluZyBsaWtlIHRoaXM6CiAgCiAgbmdjdGwKICA9PT09PQogIAogICsgbWtwZWVy IGtzb2NrZXQgbXlob29rMiBpbmV0Ni9zdHJlYW0vdGNwNgogICsgbXNnIC46bXlob29rMiBjb25u ZWN0IGluZXQ2L1swOjA6MDowOjA6MDowOjFdOjIyCiAgCiAgVGhlIGFkZHJlc3Mgc2hvdWxkIGJl IHNob3J0aGFuZCwgYnV0IHRoaXMgaXMgbm90IHN1cHBvcnRlZCB5ZXQuCgpSRVBPU0lUT1JZCiAg clMgRnJlZUJTRCBzcmMgcmVwb3NpdG9yeQoKUkVWSVNJT04gREVUQUlMCiAgaHR0cHM6Ly9yZXZp ZXdzLmZyZWVic2Qub3JnL0QyMzc4OAoKQUZGRUNURUQgRklMRVMKICBzeXMvbmV0Z3JhcGgvbmdf a3NvY2tldC5jCgpFTUFJTCBQUkVGRVJFTkNFUwogIGh0dHBzOi8vcmV2aWV3cy5mcmVlYnNkLm9y Zy9zZXR0aW5ncy9wYW5lbC9lbWFpbHByZWZlcmVuY2VzLwoKVG86IG5lZWxfbmVlbGMub3JnCkNj OiBpbXAsIGx1dHpfZG9ubmVyaGFja2UuZGUsIG1lbGlmYXJvLCAjY29udHJpYnV0b3JfcmV2aWV3 c19iYXNlLCBmcmVlYnNkLW5ldC1saXN0LCBtbWFjeSwga3ByYXZlZW4ubGttbF9nbWFpbC5jb20s IG1hcmNuYXJjX2dtYWlsLmNvbSwgc2ltb252ZWxsYV9nbWFpbC5jb20sIG5vdmljZV90ZWNoaWUu Y29tLCB0b21taS5wZXJuaWxhX2lraS5maQo= --b1_106a6720e3ad442c41e9405aa21e57ab Content-Type: text/x-patch; charset=utf-8; name="D23788.68661.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D23788.68661.patch" ZGlmZiAtLWdpdCBhL3N5cy9uZXRncmFwaC9uZ19rc29ja2V0LmMgYi9zeXMvbmV0Z3JhcGgvbmdf a3NvY2tldC5jCi0tLSBhL3N5cy9uZXRncmFwaC9uZ19rc29ja2V0LmMKKysrIGIvc3lzL25ldGdy YXBoL25nX2tzb2NrZXQuYwpAQCAtMTQ5LDYgKzE0OSwxOSBAQAogCXsgImVuY2FwIiwJSVBQUk9U T19FTkNBUCwJCVBGX0lORVQJCX0sCiAJeyAiZGl2ZXJ0IiwJSVBQUk9UT19ESVZFUlQsCQlQRl9J TkVUCQl9LAogCXsgInBpbSIsCUlQUFJPVE9fUElNLAkJUEZfSU5FVAkJfSwKKwl7ICJpcDYiLAlJ UFBST1RPX0lQVjYsCQlQRl9JTkVUNgl9LAorCXsgInJhdzYiLAlJUFBST1RPX1JBVywJCVBGX0lO RVQ2CX0sCisJeyAiaWNtcDYiLAlJUFBST1RPX0lDTVBWNiwJCVBGX0lORVQ2CX0sCisJeyAiaWdt cDYiLAlJUFBST1RPX0lHTVAsCQlQRl9JTkVUNgl9LAorCXsgInRjcDYiLAlJUFBST1RPX1RDUCwJ CVBGX0lORVQ2CX0sCisJeyAidWRwNiIsCUlQUFJPVE9fVURQLAkJUEZfSU5FVDYJfSwKKwl7ICJn cmU2IiwJSVBQUk9UT19HUkUsCQlQRl9JTkVUNgl9LAorCXsgImVzcDYiLAlJUFBST1RPX0VTUCwJ CVBGX0lORVQ2CX0sCisJeyAiYWg2IiwJSVBQUk9UT19BSCwJCVBGX0lORVQ2CX0sCisJeyAic3dp cGU2IiwJSVBQUk9UT19TV0lQRSwJCVBGX0lORVQ2CX0sCisJeyAiZW5jYXA2IiwJSVBQUk9UT19F TkNBUCwJCVBGX0lORVQ2CX0sCisJeyAiZGl2ZXJ0NiIsCUlQUFJPVE9fRElWRVJULAkJUEZfSU5F VDYJfSwKKwl7ICJwaW02IiwJSVBQUk9UT19QSU0sCQlQRl9JTkVUNgl9LAogCXsgTlVMTCwJCS0x CQkJCQl9LAogfTsKIApAQCAtMjk0LDE0ICszMDcsNTIgQEAKIAkJYnJlYWs7CiAJICAgIH0KIAot I2lmIDAKLQljYXNlIFBGX0lORVQ2OgkvKiBYWFggaW1wbGVtZW50IHRoaXMgc29tZWRheSAqLwot I2VuZGlmCisJY2FzZSBQRl9JTkVUNjoKKwkgICAgeworCQlzdHJ1Y3Qgc29ja2FkZHJfaW42ICpj b25zdCBzaW42ID0gKHN0cnVjdCBzb2NrYWRkcl9pbjYgKilzYTsKKwkJaW50IGkgPSAwOwogCisJ CXNpbjYtPnNpbjZfcG9ydCA9IDA7CisJCWlmIChzWypvZmZdID09ICdbJykKKwkJCSgqb2ZmKSsr OworCisJCWZvciAoaSA9IDA7IGkgPCA4OyBpKyspIHsKKwkJCXVfbG9uZyB2YWw7CisJCQljaGFy ICplcHRyOworCisJCQl2YWwgPSBzdHJ0b3VsKHMgKyAqb2ZmLCAmZXB0ciwgMTYpOworCQkJaWYg KHZhbCA+IDB4ZmZmZiB8fCBlcHRyID09IHMgKyAqb2ZmKQorCQkJCXJldHVybiAoRUlOVkFMKTsK KwkJCSpvZmYgKz0gKGVwdHIgLSAocyArICpvZmYpKTsKKwkJIAlzaW42LT5zaW42X2FkZHIuczZf YWRkcjE2W2ldID0gaHRvbnModmFsKTsKKwkJIAkvL3NpbjYtPnNpbjZfYWRkci5fX3U2X2FkZHIu X191Nl9hZGRyMTZbaV0gPSBodG9ucyh2YWwpOworCQkJaWYgKGkgPCA3KSB7CisJCQkJaWYgKHNb Km9mZl0gIT0gJzonKQorCQkJCQlyZXR1cm4gKEVJTlZBTCk7CisJCQkJKCpvZmYpKys7CisJCQl9 IGVsc2UgaWYgKHNbKm9mZl0gPT0gJ10nKSB7CisJCQkJKCpvZmYpKys7CisJCQkJaWYgKHNbKm9m Zl0gPT0gJzonKSB7CisJCQkJCSgqb2ZmKSsrOworCQkJCQl2YWwgPSBzdHJ0b3VsKHMgKyAqb2Zm LCAmZXB0ciwgMTApOworCQkJCQlpZiAodmFsID4gMHhmZmZmIHx8IGVwdHIgPT0gcyArICpvZmYp CisJCQkJCQlyZXR1cm4gKEVJTlZBTCk7CisJCQkJCSpvZmYgKz0gKGVwdHIgLSAocyArICpvZmYp KTsKKwkJCQkJc2luNi0+c2luNl9wb3J0ID0gaHRvbnModmFsKTsKKwkJCQl9CisJCQl9CisJCX0K KwkJYnJlYWs7CisJICAgIH0KKwogCWRlZmF1bHQ6CiAJCXJldHVybiAoRUlOVkFMKTsKIAl9CiAK KwlpZiAoc2EtPnNhX2ZhbWlseSA9PSBBRl9JTkVUNikgeworCQlzdHJ1Y3Qgc29ja2FkZHJfaW42 ICpjb25zdCBzaW42ID0gKHN0cnVjdCBzb2NrYWRkcl9pbjYgKilzYTsKKwkJcHJpbnRmKCJYJWh4 XG4iLCBudG9ocyhzaW42LT5zaW42X2FkZHIuczZfYWRkcjE2WzddKSk7CisJfQogCS8qIERvbmUg Ki8KIAkqYnVmbGVuID0gc2EtPnNhX2xlbjsKIAlyZXR1cm4gKDApOwpAQCAtMzU2LDkgKzQwNywy OSBAQAogCQlyZXR1cm4oMCk7CiAJICAgIH0KIAotI2lmIDAKLQljYXNlIFBGX0lORVQ2OgkvKiBY WFggaW1wbGVtZW50IHRoaXMgc29tZWRheSAqLwotI2VuZGlmCisJY2FzZSBQRl9JTkVUNjoKKwkg ICAgeworCQljb25zdCBzdHJ1Y3Qgc29ja2FkZHJfaW42ICpzaW42ID0gKGNvbnN0IHN0cnVjdCBz b2NrYWRkcl9pbjYgKilzYTsKKworCQlzbGVuICs9IHNucHJpbnRmKGNidWYsIGNidWZsZW4sICJp bmV0Ni9bJXU6JXU6JXU6JXU6JXU6JXU6JXU6JXVdIiwKKwkJICAoKGNvbnN0IHVfaW50ICopJnNp bjYtPnNpbjZfYWRkci5fX3U2X2FkZHIuX191Nl9hZGRyMTYpWzBdLAorCQkgICgoY29uc3QgdV9p bnQgKikmc2luNi0+c2luNl9hZGRyLl9fdTZfYWRkci5fX3U2X2FkZHIxNilbMV0sCisJCSAgKChj b25zdCB1X2ludCAqKSZzaW42LT5zaW42X2FkZHIuX191Nl9hZGRyLl9fdTZfYWRkcjE2KVsyXSwK KwkJICAoKGNvbnN0IHVfaW50ICopJnNpbjYtPnNpbjZfYWRkci5fX3U2X2FkZHIuX191Nl9hZGRy MTYpWzNdLAorCQkgICgoY29uc3QgdV9pbnQgKikmc2luNi0+c2luNl9hZGRyLl9fdTZfYWRkci5f X3U2X2FkZHIxNilbNF0sCisJCSAgKChjb25zdCB1X2ludCAqKSZzaW42LT5zaW42X2FkZHIuX191 Nl9hZGRyLl9fdTZfYWRkcjE2KVs1XSwKKwkJICAoKGNvbnN0IHVfaW50ICopJnNpbjYtPnNpbjZf YWRkci5fX3U2X2FkZHIuX191Nl9hZGRyMTYpWzZdLAorCQkgICgoY29uc3QgdV9pbnQgKikmc2lu Ni0+c2luNl9hZGRyLl9fdTZfYWRkci5fX3U2X2FkZHIxNilbN10pOworCQlpZiAoc2luNi0+c2lu Nl9wb3J0ICE9IDApIHsKKwkJCXNsZW4gKz0gc25wcmludGYoY2J1ZiArIHN0cmxlbihjYnVmKSwK KwkJCSAgICBjYnVmbGVuIC0gc3RybGVuKGNidWYpLCAiOiVkIiwKKwkJCSAgICAodV9pbnQpbnRv aHMoc2luNi0+c2luNl9wb3J0KSk7CisJCX0KKwkJaWYgKHNsZW4gPj0gY2J1ZmxlbikKKwkJCXJl dHVybiAoRVJBTkdFKTsKKwkJKm9mZiArPSBzaXplb2YoKnNpbjYpOworCQlyZXR1cm4oMCk7CisJ ICAgIH0KIAogCWRlZmF1bHQ6CiAJCXJldHVybiAoKm5nX2tzb2NrZXRfZ2VuZXJpY19zb2NrYWRk cl90eXBlLnN1cGVydHlwZS0+dW5wYXJzZSkKCg== --b1_106a6720e3ad442c41e9405aa21e57ab--