src: use macros to reduce code duplication is cares_wrap · nodejs/node@065e8cd · GitHub
Skip to content

Commit 065e8cd

Browse files
jasnelladuh95
authored andcommitted
src: use macros to reduce code duplication is cares_wrap
PR-URL: #57937 Reviewed-By: Yagiz Nizipli <yagiz@nizipli.com>
1 parent 39af5d6 commit 065e8cd

3 files changed

Lines changed: 48 additions & 152 deletions

File tree

src/README.md

Lines changed: 1 addition & 1 deletion

src/cares_wrap.cc

Lines changed: 15 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1612,7 +1612,7 @@ Maybe<int> SoaTraits::Parse(QuerySoaWrap* wrap,
16121612
return Just<int>(ARES_SUCCESS);
16131613
}
16141614

1615-
int ReverseTraits::Send(GetHostByAddrWrap* wrap, const char* name) {
1615+
int ReverseTraits::Send(QueryReverseWrap* wrap, const char* name) {
16161616
int length, family;
16171617
char address_buffer[sizeof(struct in6_addr)];
16181618

@@ -1631,17 +1631,16 @@ int ReverseTraits::Send(GetHostByAddrWrap* wrap, const char* name) {
16311631
"name", TRACE_STR_COPY(name),
16321632
"family", family == AF_INET ? "ipv4" : "ipv6");
16331633

1634-
ares_gethostbyaddr(
1635-
wrap->channel()->cares_channel(),
1636-
address_buffer,
1637-
length,
1638-
family,
1639-
GetHostByAddrWrap::Callback,
1640-
wrap->MakeCallbackPointer());
1634+
ares_gethostbyaddr(wrap->channel()->cares_channel(),
1635+
address_buffer,
1636+
length,
1637+
family,
1638+
QueryReverseWrap::Callback,
1639+
wrap->MakeCallbackPointer());
16411640
return ARES_SUCCESS;
16421641
}
16431642

1644-
Maybe<int> ReverseTraits::Parse(GetHostByAddrWrap* wrap,
1643+
Maybe<int> ReverseTraits::Parse(QueryReverseWrap* wrap,
16451644
const std::unique_ptr<ResponseData>& response) {
16461645
if (!response->is_host) [[unlikely]] {
16471646
return Just<int>(ARES_EBADRESP);
@@ -2220,21 +2219,10 @@ void Initialize(Local<Object> target,
22202219
ChannelWrap::kInternalFieldCount);
22212220
channel_wrap->Inherit(AsyncWrap::GetConstructorTemplate(env));
22222221

2223-
SetProtoMethod(isolate, channel_wrap, "queryAny", Query<QueryAnyWrap>);
2224-
SetProtoMethod(isolate, channel_wrap, "queryA", Query<QueryAWrap>);
2225-
SetProtoMethod(isolate, channel_wrap, "queryAaaa", Query<QueryAaaaWrap>);
2226-
SetProtoMethod(isolate, channel_wrap, "queryCaa", Query<QueryCaaWrap>);
2227-
SetProtoMethod(isolate, channel_wrap, "queryCname", Query<QueryCnameWrap>);
2228-
SetProtoMethod(isolate, channel_wrap, "queryMx", Query<QueryMxWrap>);
2229-
SetProtoMethod(isolate, channel_wrap, "queryNs", Query<QueryNsWrap>);
2230-
SetProtoMethod(isolate, channel_wrap, "queryTlsa", Query<QueryTlsaWrap>);
2231-
SetProtoMethod(isolate, channel_wrap, "queryTxt", Query<QueryTxtWrap>);
2232-
SetProtoMethod(isolate, channel_wrap, "querySrv", Query<QuerySrvWrap>);
2233-
SetProtoMethod(isolate, channel_wrap, "queryPtr", Query<QueryPtrWrap>);
2234-
SetProtoMethod(isolate, channel_wrap, "queryNaptr", Query<QueryNaptrWrap>);
2235-
SetProtoMethod(isolate, channel_wrap, "querySoa", Query<QuerySoaWrap>);
2236-
SetProtoMethod(
2237-
isolate, channel_wrap, "getHostByAddr", Query<GetHostByAddrWrap>);
2222+
#define V(Name, _, JS) \
2223+
SetProtoMethod(isolate, channel_wrap, #JS, Query<Query##Name##Wrap>);
2224+
QUERY_TYPES(V)
2225+
#undef V
22382226

22392227
SetProtoMethodNoSideEffect(isolate, channel_wrap, "getServers", GetServers);
22402228
SetProtoMethod(isolate, channel_wrap, "setServers", SetServers);
@@ -2252,20 +2240,9 @@ void RegisterExternalReferences(ExternalReferenceRegistry* registry) {
22522240
registry->Register(StrError);
22532241
registry->Register(ChannelWrap::New);
22542242

2255-
registry->Register(Query<QueryAnyWrap>);
2256-
registry->Register(Query<QueryAWrap>);
2257-
registry->Register(Query<QueryAaaaWrap>);
2258-
registry->Register(Query<QueryCaaWrap>);
2259-
registry->Register(Query<QueryCnameWrap>);
2260-
registry->Register(Query<QueryMxWrap>);
2261-
registry->Register(Query<QueryNsWrap>);
2262-
registry->Register(Query<QueryTlsaWrap>);
2263-
registry->Register(Query<QueryTxtWrap>);
2264-
registry->Register(Query<QuerySrvWrap>);
2265-
registry->Register(Query<QueryPtrWrap>);
2266-
registry->Register(Query<QueryNaptrWrap>);
2267-
registry->Register(Query<QuerySoaWrap>);
2268-
registry->Register(Query<GetHostByAddrWrap>);
2243+
#define V(Name, _, __) registry->Register(Query<Query##Name##Wrap>);
2244+
QUERY_TYPES(V)
2245+
#undef V
22692246

22702247
registry->Register(GetServers);
22712248
registry->Register(SetServers);

src/cares_wrap.h

Lines changed: 32 additions & 113 deletions

0 commit comments

Comments
 (0)