From owner-freebsd-net@freebsd.org Wed Feb 26 19:03:51 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 B7FB324125B for ; Wed, 26 Feb 2020 19:03:51 +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 48SQFM4PR5z443c; Wed, 26 Feb 2020 19:03:51 +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 9280A44D9; Wed, 26 Feb 2020 19:03:51 +0000 (UTC) (envelope-from daemon-user@freebsd.org) Received: by reviews.nyi.freebsd.org (Postfix, from userid 1346) id 919C43210BE; Wed, 26 Feb 2020 19:03:51 +0000 (UTC) Date: Wed, 26 Feb 2020 19:03:51 +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>, <8> X-Phabricator-Projects: <#network> X-Phabricator-To: X-Phabricator-To: 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: X-Phabricator-Cc: Precedence: bulk Thread-Topic: PHID-DREV-isgti776xdsdvju2ufh3 X-Phabricator-Mail-ID: 1840970 X-Phabricator-Send-Attempt: 75qubkfadj4567bn In-Reply-To: References: Thread-Index: MWQ0ZDVhYmNlZTMxYjNlZWMyN2FmZTk4YjlhIF5WwRc= X-Phabricator-Stamps: actor(@neel_neelc.org) application(Differential) author(@neel_neelc.org) herald(H8) herald(H28) herald(H67) herald(H125) herald(H128) monogram(D23788) object-type(DREV) phid(PHID-DREV-isgti776xdsdvju2ufh3) reviewer(#manpages) reviewer(@hrs) revision-repository(rS) revision-status(needs-review) subscriber(#contributor_reviews_base) subscriber(@freebsd-net-list) subscriber(@hrs) subscriber(@imp) subscriber(@lutz_donnerhacke.de) subscriber(@melifaro) tag(#network) via(web) MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_fb98b79466cc2c1743d1bafc53b3adc4" 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: Wed, 26 Feb 2020 19:03:51 -0000 --b1_fb98b79466cc2c1743d1bafc53b3adc4 Content-Type: text/plain; charset = "utf-8" Content-Transfer-Encoding: base64 bmVlbF9uZWVsYy5vcmcgdXBkYXRlZCB0aGlzIHJldmlzaW9uIHRvIERpZmYgNjg4NTAuCm5lZWxf bmVlbGMub3JnIGVkaXRlZCB0aGUgc3VtbWFyeSBvZiB0aGlzIHJldmlzaW9uLgpuZWVsX25lZWxj Lm9yZyBhZGRlZCBhIGNvbW1lbnQuCkhlcmFsZCBhZGRlZCBhIHJldmlld2VyOiBtYW5wYWdlcy4K CgogIExldCdzIGluY2x1ZGUgYSBtYW4gcGFnZS4KClJFUE9TSVRPUlkKICByUyBGcmVlQlNEIHNy YyByZXBvc2l0b3J5CgpDSEFOR0VTIFNJTkNFIExBU1QgVVBEQVRFCiAgaHR0cHM6Ly9yZXZpZXdz LmZyZWVic2Qub3JnL0QyMzc4OD92cz02ODczMCZpZD02ODg1MAoKQ0hBTkdFUyBTSU5DRSBMQVNU IEFDVElPTgogIGh0dHBzOi8vcmV2aWV3cy5mcmVlYnNkLm9yZy9EMjM3ODgvbmV3LwoKUkVWSVNJ T04gREVUQUlMCiAgaHR0cHM6Ly9yZXZpZXdzLmZyZWVic2Qub3JnL0QyMzc4OAoKQUZGRUNURUQg RklMRVMKICBzaGFyZS9tYW4vbWFuNC9uZ19rc29ja2V0LjQKICBzeXMvbmV0Z3JhcGgvbmdfa3Nv Y2tldC5jCgpFTUFJTCBQUkVGRVJFTkNFUwogIGh0dHBzOi8vcmV2aWV3cy5mcmVlYnNkLm9yZy9z ZXR0aW5ncy9wYW5lbC9lbWFpbHByZWZlcmVuY2VzLwoKVG86IG5lZWxfbmVlbGMub3JnLCBocnMs ICNtYW5wYWdlcwpDYzogaHJzLCBpbXAsIGx1dHpfZG9ubmVyaGFja2UuZGUsIG1lbGlmYXJvLCAj Y29udHJpYnV0b3JfcmV2aWV3c19iYXNlLCBmcmVlYnNkLW5ldC1saXN0LCBtbWFjeSwga3ByYXZl ZW4ubGttbF9nbWFpbC5jb20sIG1hcmNuYXJjX2dtYWlsLmNvbSwgc2ltb252ZWxsYV9nbWFpbC5j b20sIG5vdmljZV90ZWNoaWUuY29tLCB0b21taS5wZXJuaWxhX2lraS5maQo= --b1_fb98b79466cc2c1743d1bafc53b3adc4 Content-Type: text/x-patch; charset=utf-8; name="D23788.68850.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="D23788.68850.patch" ZGlmZiAtLWdpdCBhL3N5cy9uZXRncmFwaC9uZ19rc29ja2V0LmMgYi9zeXMvbmV0Z3JhcGgvbmdf a3NvY2tldC5jCi0tLSBhL3N5cy9uZXRncmFwaC9uZ19rc29ja2V0LmMKKysrIGIvc3lzL25ldGdy YXBoL25nX2tzb2NrZXQuYwpAQCAtNjAsNiArNjAsOSBAQAogI2luY2x1ZGUgPHN5cy91aW8uaD4K ICNpbmNsdWRlIDxzeXMvdW4uaD4KIAorI2luY2x1ZGUgPG5ldC9pZi5oPgorI2luY2x1ZGUgPG5l dC9pZl92YXIuaD4KKwogI2luY2x1ZGUgPG5ldGdyYXBoL25nX21lc3NhZ2UuaD4KICNpbmNsdWRl IDxuZXRncmFwaC9uZXRncmFwaC5oPgogI2luY2x1ZGUgPG5ldGdyYXBoL25nX3BhcnNlLmg+CkBA IC02OCw2ICs3MSw4IEBACiAjaW5jbHVkZSA8bmV0aW5ldC9pbi5oPgogI2luY2x1ZGUgPG5ldGlu ZXQvaXAuaD4KIAorI2luY2x1ZGUgPG5ldGluZXQ2L3Njb3BlNl92YXIuaD4KKwogI2lmZGVmIE5H X1NFUEFSQVRFX01BTExPQwogc3RhdGljIE1BTExPQ19ERUZJTkUoTV9ORVRHUkFQSF9LU09DS0VU LCAibmV0Z3JhcGhfa3NvY2siLAogICAgICJuZXRncmFwaCBrc29jayBub2RlIik7CkBAIC0xNDks NiArMTU0LDE5IEBACiAJeyAiZW5jYXAiLAlJUFBST1RPX0VOQ0FQLAkJUEZfSU5FVAkJfSwKIAl7 ICJkaXZlcnQiLAlJUFBST1RPX0RJVkVSVCwJCVBGX0lORVQJCX0sCiAJeyAicGltIiwJSVBQUk9U T19QSU0sCQlQRl9JTkVUCQl9LAorCXsgImlwNiIsCUlQUFJPVE9fSVBWNiwJCVBGX0lORVQ2CX0s CisJeyAicmF3NiIsCUlQUFJPVE9fUkFXLAkJUEZfSU5FVDYJfSwKKwl7ICJpY21wNiIsCUlQUFJP VE9fSUNNUFY2LAkJUEZfSU5FVDYJfSwKKwl7ICJpZ21wNiIsCUlQUFJPVE9fSUdNUCwJCVBGX0lO RVQ2CX0sCisJeyAidGNwNiIsCUlQUFJPVE9fVENQLAkJUEZfSU5FVDYJfSwKKwl7ICJ1ZHA2IiwJ SVBQUk9UT19VRFAsCQlQRl9JTkVUNgl9LAorCXsgImdyZTYiLAlJUFBST1RPX0dSRSwJCVBGX0lO RVQ2CX0sCisJeyAiZXNwNiIsCUlQUFJPVE9fRVNQLAkJUEZfSU5FVDYJfSwKKwl7ICJhaDYiLAlJ UFBST1RPX0FILAkJUEZfSU5FVDYJfSwKKwl7ICJzd2lwZTYiLAlJUFBST1RPX1NXSVBFLAkJUEZf SU5FVDYJfSwKKwl7ICJlbmNhcDYiLAlJUFBST1RPX0VOQ0FQLAkJUEZfSU5FVDYJfSwKKwl7ICJk aXZlcnQ2IiwJSVBQUk9UT19ESVZFUlQsCQlQRl9JTkVUNgl9LAorCXsgInBpbTYiLAlJUFBST1RP X1BJTSwJCVBGX0lORVQ2CX0sCiAJeyBOVUxMLAkJLTEJCQkJCX0sCiB9OwogCkBAIC0yOTQsMTAg KzMxMiw1MCBAQAogCQlicmVhazsKIAkgICAgfQogCi0jaWYgMAotCWNhc2UgUEZfSU5FVDY6CS8q IFhYWCBpbXBsZW1lbnQgdGhpcyBzb21lZGF5ICovCi0jZW5kaWYKKwljYXNlIFBGX0lORVQ2Ogor CSAgICB7CisJCXN0cnVjdCBzb2NrYWRkcl9pbjYgKmNvbnN0IHNpbjYgPSAoc3RydWN0IHNvY2th ZGRyX2luNiAqKXNhOworCQljaGFyICplcHRyOworCQljaGFyIGFkZHJbSU5FVDZfQUREUlNUUkxF Tl07CisJCWNoYXIgaWZuYW1lWzE2XTsKKwkJdV9sb25nIHBvcnQ7CisJCWJvb2wgaGFzaWZuYW1l ID0gdHJ1ZTsKIAorCQlpZiAoc1sqb2ZmXSA9PSAnWycpCisJCQkoKm9mZikrKzsKKwkJaWYgKChl cHRyID0gc3Ryc3RyKCZzWypvZmZdLCAiJSIpKSA9PSBOVUxMKSB7CisJCQloYXNpZm5hbWUgPSBm YWxzZTsKKwkJCWVwdHIgPSBzdHJzdHIoJnNbKm9mZl0sICJdIik7CisJCX0KKwkJc25wcmludGYo YWRkciwgZXB0ciAtIChzICsgKm9mZiksICIlcyIsICZzWypvZmZdKTsKKwkJKm9mZiArPSAoZXB0 ciAtIChzICsgKm9mZikpOworCQlpZiAoIWluZXRfcHRvbihBRl9JTkVUNiwgYWRkciwgJnNpbjYt PnNpbjZfYWRkcikpCisJCQlyZXR1cm4gKEVJTlZBTCk7CisKKwkJaWYgKGhhc2lmbmFtZSkgewor CQkJdWludDE2X3Qgc2NvcGU7CisKKwkJCWVwdHIgPSBzdHJzdHIoTlVMTCwgIl0iKTsKKwkJCXNu cHJpbnRmKGlmbmFtZSwgZXB0ciAtIChzICsgKm9mZiksICIlcyIsICZzWypvZmZdKTsKKwkJCSpv ZmYgKz0gKGVwdHIgLSAocyArICpvZmYpKTsKKworCQkJaWYgKG50b2hsKHNpbjYtPnNpbjZfYWRk ci5zNl9hZGRyMTZbMF0pICE9IDB4ZmU4MCkKKwkJCQlyZXR1cm4gKEVJTlZBTCk7CisJCQlzY29w ZSA9IGluNl9nZXRzY29wZSgmc2luNi0+c2luNl9hZGRyKTsKKwkJCXNpbjYtPnNpbjZfc2NvcGVf aWQgPQorCQkJICAgIGluNl9nZXRzY29wZXpvbmUoaWZ1bml0KGlmbmFtZSksIHNjb3BlKTsKKwkJ fQorCisJCWlmIChzWypvZmZdID09ICdbJykgeworCQkJKCpvZmYpKys7CisJCQlwb3J0ID0gc3Ry dG91bChzICsgKm9mZiwgJmVwdHIsIDEwKTsKKwkJCWlmIChwb3J0ID4gMHhmZmZmIHx8IGVwdHIg PT0gcyArICpvZmYpCisJCQkJcmV0dXJuIChFSU5WQUwpOworCQkJc2luNi0+c2luNl9wb3J0ID0g aHRvbnMocG9ydCk7CisJCX0KKwkJYnJlYWs7CisJICAgIH0KKwogCWRlZmF1bHQ6CiAJCXJldHVy biAoRUlOVkFMKTsKIAl9CkBAIC0zNTYsOSArNDE0LDIwIEBACiAJCXJldHVybigwKTsKIAkgICAg fQogCi0jaWYgMAotCWNhc2UgUEZfSU5FVDY6CS8qIFhYWCBpbXBsZW1lbnQgdGhpcyBzb21lZGF5 ICovCi0jZW5kaWYKKwljYXNlIFBGX0lORVQ2OgorCSAgICB7CisJCWNvbnN0IHN0cnVjdCBzb2Nr YWRkcl9pbjYgKnNpbjYgPSAoY29uc3Qgc3RydWN0IHNvY2thZGRyX2luNiAqKXNhOworCQljaGFy IGFkZHJbSU5FVDZfQUREUlNUUkxFTl07CisJCQorCQlpbmV0X250b3AoQUZfSU5FVDYsICZzaW42 LT5zaW42X2FkZHIsIGFkZHIsIElORVQ2X0FERFJTVFJMRU4pOworCQlzbGVuICs9IHNucHJpbnRm KGNidWYsIGNidWZsZW4sICJpbmV0Ni9bJXNdIiwgYWRkcik7CisKKwkJaWYgKHNpbjYtPnNpbjZf cG9ydCAhPSAwKSB7CisJCQlzbGVuICs9IHNucHJpbnRmKGNidWYgKyBzdHJsZW4oY2J1ZiksCisJ CQkgICAgY2J1ZmxlbiAtIHN0cmxlbihjYnVmKSwgIjolZCIsCisJCQkgICAgKHVfaW50KW50b2hz KHNpbjYtPnNpbjZfcG9ydCkpOworCQl9CisJICAgIH0KIAogCWRlZmF1bHQ6CiAJCXJldHVybiAo Km5nX2tzb2NrZXRfZ2VuZXJpY19zb2NrYWRkcl90eXBlLnN1cGVydHlwZS0+dW5wYXJzZSkKZGlm ZiAtLWdpdCBhL3NoYXJlL21hbi9tYW40L25nX2tzb2NrZXQuNCBiL3NoYXJlL21hbi9tYW40L25n X2tzb2NrZXQuNAotLS0gYS9zaGFyZS9tYW4vbWFuNC9uZ19rc29ja2V0LjQKKysrIGIvc2hhcmUv bWFuL21hbjQvbmdfa3NvY2tldC40CkBAIC0xODUsNyArMTg1LDggQEAKIGVxdWl2YWxlbnQgb2Yg dGhlIEMgc3RydWN0dXJlCiBpcyBhbiBhY2NlcHRhYmxlIGZvcm0uCiBGb3IgdGhlCi0uRHYgUEZf SU5FVAorLkR2IFBGX0lORVQgLAorLkR2IFBGX0lORVQ2CiBhbmQKIC5EdiBQRl9MT0NBTAogYWRk cmVzcyBmYW1pbGllcywgYSBtb3JlIGNvbnZlbmllbnQgZm9ybSBpcyBhbHNvIHVzZWQsIHdoaWNo IGlzCkBAIC0xOTMsOCArMTk0LDEyIEBACiBhZGRyZXNzLgogRm9yCiAuRHYgUEZfSU5FVCAsCi10 aGUgYWRkcmVzcyBpcyBhbiBJUCBhZGRyZXNzIGZvbGxvd2VkIGJ5IGFuIG9wdGlvbmFsIGNvbG9u IGFuZCBwb3J0IG51bWJlci4KK3RoZSBhZGRyZXNzIGlzIGFuIElQdjQgYWRkcmVzcyBmb2xsb3dl ZCBieSBhbiBvcHRpb25hbCBjb2xvbiBhbmQgcG9ydCBudW1iZXIuCiBGb3IKKy5EdiBQRl9JTkVU NiAsCit0aGUgYWRkcmVzcyBpcyBhbiBJUHY2IGFkZHJlc3MgcG9zc2libHkgZW5jbG9zZWQgaW4g c3F1YXJlIGJyYWNrZXRzIGZvbGxvd2VkCitieSBhbiBvcHRpb25hbCBjb2xvbiBhbmQgcG9ydCBu dW1iZXIuCitGb3IKIC5EdiBQRl9MT0NBTCAsCiB0aGUgYWRkcmVzcyBpcyB0aGUgcGF0aG5hbWUg YXMgYSBkb3VibHkgcXVvdGVkIHN0cmluZy4KIC5QcApAQCAtMjA0LDYgKzIwOSw4IEBACiBsb2Nh bC8iL3RtcC9mb28uc29ja2V0IgogLkl0IER2IFBGX0lORVQKIGluZXQvMTkyLjE2OC4xLjE6MTIz NAorLkl0IER2IFBGX0lORVQKK2luZXQ2L1syMDAxOjoxXToxMjM0CiAuSXQgT3RoZXIKIC5EdiAi XCZ7IGZhbWlseT0xNiBsZW49MTYgZGF0YT1bMHg3MCAweDAwIDB4MDEgMHgyM10gXCZ9IgogLkVs Cgo= --b1_fb98b79466cc2c1743d1bafc53b3adc4--