a134177ed9f82189504191d90f3ed9e97c2b47cbTinderbox User * Copyright (C) 1999-2002, 2004, 2007, 2009, 2011-2017 Internet Systems Consortium, Inc. ("ISC")
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * This Source Code Form is subject to the terms of the Mozilla Public
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * License, v. 2.0. If a copy of the MPL was not distributed with this
0c27b3fe77ac1d5094ba3521e8142d9e7973133fMark Andrews * file, You can obtain one at http://mozilla.org/MPL/2.0/.
f31f0b63cbe841720f154c570bcdede9d79e64b8Michael Graff/* Reviewed: Fri Mar 17 15:01:49 PST 2000 by explorer */
b9e911c71cf0fbdc054b5bc7ef1a3233e2b4a4faAutomatic Updater RUNTIME_CHECK(isc_mutex_init(&wks_lock) == ISC_R_SUCCESS);
cae06bceda6c5d415f740574a64f42bf5f561d61Mark Andrewsmygetprotobyname(const char *name, long *proto) {
cae06bceda6c5d415f740574a64f42bf5f561d61Mark Andrewsmygetservbyname(const char *name, const char *proto, long *port) {
44a966dff66061ac3f266c6b451a70733eb78e82Mark Andrews unsigned int n;
cae06bceda6c5d415f740574a64f42bf5f561d61Mark Andrews RUNTIME_CHECK(isc_once_do(&once, init_lock) == ISC_R_SUCCESS);
82a50a619afa73ae9a212399505b9f1b327128cdMark Andrews err = WSAStartup(wVersionRequested, &wsaData );
34b394b43e2207e8f8f3703f0402422121455638David Lawrence * IPv4 dotted quad.
82a50a619afa73ae9a212399505b9f1b327128cdMark Andrews CHECK(isc_lex_getmastertoken(lexer, &token, isc_tokentype_string,
c46f10e4a1702191b003cf8f8fc5059c15d29c48Mark Andrews if (getquad(DNS_AS_STR(token), &addr, lexer, callbacks) != 1)
82a50a619afa73ae9a212399505b9f1b327128cdMark Andrews CHECK(isc_lex_getmastertoken(lexer, &token, isc_tokentype_string,
5d15501996f597d9bbb734d88d4549828e28000bMark Andrews if (*e == 0)
cae06bceda6c5d415f740574a64f42bf5f561d61Mark Andrews else if (!mygetprotobyname(DNS_AS_STR(token), &proto))
251705f6831d3d1357627ba2d54fc898487dec09Mark Andrews * Lowercase the service string as some getservbyname() are
251705f6831d3d1357627ba2d54fc898487dec09Mark Andrews * case sensitive and the database is usually in lowercase.
c46f10e4a1702191b003cf8f8fc5059c15d29c48Mark Andrews strncpy(service, DNS_AS_STR(token), sizeof(service));
5d15501996f597d9bbb734d88d4549828e28000bMark Andrews if (*e == 0)
cae06bceda6c5d415f740574a64f42bf5f561d61Mark Andrews else if (!mygetservbyname(service, ps, &port) &&
cae06bceda6c5d415f740574a64f42bf5f561d61Mark Andrews !mygetservbyname(DNS_AS_STR(token), ps, &port))
19c5c23ef6e38965949c996592bd92478da0612cMark Andrews } while (1);
34b394b43e2207e8f8f3703f0402422121455638David Lawrence * Let upper layer handle eol/eof.
44a966dff66061ac3f266c6b451a70733eb78e82Mark Andrews unsigned int i, j;
b0ba1a6059b6d6c4b3aa77d8bc84cc443b981e01Mukund Sivaraman REQUIRE(rdata->rdclass == dns_rdataclass_in);
f1b68725503ff3e46001eee5a1751e29a43a09d1Andreas Gustafsson for (j = 0; j < 8; j++)
b0ba1a6059b6d6c4b3aa77d8bc84cc443b981e01Mukund Sivaraman REQUIRE(rdata->rdclass == dns_rdataclass_in);
44a966dff66061ac3f266c6b451a70733eb78e82Mark Andrews return (mem_tobuffer(target, sr.base, sr.length));
4529cdaedaf1a0a5f8ff89aeca510b7a4475446cBob Halleystatic inline int
b0ba1a6059b6d6c4b3aa77d8bc84cc443b981e01Mukund Sivaraman REQUIRE(rdata1->type == dns_rdatatype_wks);
b0ba1a6059b6d6c4b3aa77d8bc84cc443b981e01Mukund Sivaraman REQUIRE(rdata1->rdclass == dns_rdataclass_in);
e502b133d630bda0ee64c1e2ce6729d96750d8abMark Andrews REQUIRE((wks->map != NULL && wks->map_len <= 8*1024) ||
373ce67419680a398ba3dc51a14a486caaf0afb0Mark Andrews return (mem_tobuffer(target, wks->map, wks->map_len));
b0ba1a6059b6d6c4b3aa77d8bc84cc443b981e01Mukund Sivaraman REQUIRE(rdata->rdclass == dns_rdataclass_in);
85bdc128fcda11c89ec1d76ea4221f4fa8e4fc24Mark Andrews wks->map = mem_maybedup(mctx, region.base, region.length);
4529cdaedaf1a0a5f8ff89aeca510b7a4475446cBob Halleystatic inline void
b0ba1a6059b6d6c4b3aa77d8bc84cc443b981e01Mukund Sivaraman REQUIRE(wks->common.rdtype == dns_rdatatype_wks);
b0ba1a6059b6d6c4b3aa77d8bc84cc443b981e01Mukund Sivaraman REQUIRE(wks->common.rdclass == dns_rdataclass_in);
b0ba1a6059b6d6c4b3aa77d8bc84cc443b981e01Mukund Sivaraman REQUIRE(rdata->rdclass == dns_rdataclass_in);
b0ba1a6059b6d6c4b3aa77d8bc84cc443b981e01Mukund Sivaraman REQUIRE(rdata->rdclass == dns_rdataclass_in);
b0ba1a6059b6d6c4b3aa77d8bc84cc443b981e01Mukund Sivaraman REQUIRE(rdata->rdclass == dns_rdataclass_in);
3d17a3ba61a303d5c4d9867068d0fbe9f24d2988Mark Andrewsstatic inline int
854d0238dbc2908490197984b3b9d558008a53dfMark Andrews#endif /* RDATA_IN_1_WKS_11_C */