summaryrefslogtreecommitdiff
path: root/apt-pkg/contrib
diff options
context:
space:
mode:
authorIgor Pashev <pashev.igor@gmail.com>2019-11-29 14:40:22 +0300
committerIgor Pashev <pashev.igor@gmail.com>2019-11-29 14:40:22 +0300
commit3263f4b47a7145e255563aa6970d0c248f7f1ca6 (patch)
tree903482119c868de7ecfc00e47ef3dada460653ed /apt-pkg/contrib
parentb0fec477a67e299f5ba1f3943d899edc31d20f5a (diff)
downloadapt-3263f4b47a7145e255563aa6970d0c248f7f1ca6.tar.gz
Use appropriate getservbyport_r()
Diffstat (limited to 'apt-pkg/contrib')
-rw-r--r--apt-pkg/contrib/srvrec.cc7
1 files changed, 6 insertions, 1 deletions
diff --git a/apt-pkg/contrib/srvrec.cc b/apt-pkg/contrib/srvrec.cc
index 7d9bf116e..522e8ab9c 100644
--- a/apt-pkg/contrib/srvrec.cc
+++ b/apt-pkg/contrib/srvrec.cc
@@ -49,10 +49,15 @@ bool GetSrvRecords(std::string host, int port, std::vector<SrvRec> &Result)
struct servent *s_ent = nullptr;
std::vector<char> buf(1024);
+#ifdef SOLARIS_GETSERVBYPORT_R
+ s_ent = getservbyport_r(htons(port), "tcp", &s_ent_buf, buf.data(), buf.size());
+ if (s_ent == nullptr)
+ return false;
+#else
res = getservbyport_r(htons(port), "tcp", &s_ent_buf, buf.data(), buf.size(), &s_ent);
if (res != 0 || s_ent == nullptr)
return false;
-
+#endif
strprintf(target, "_%s._tcp.%s", s_ent->s_name, host.c_str());
return GetSrvRecords(target, Result);
}