aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/c-ares
diff options
context:
space:
mode:
authorneksard <neksard@yandex-team.ru>2022-02-10 16:45:33 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:45:33 +0300
commit1d9c550e7c38e051d7961f576013a482003a70d9 (patch)
treeb2cc84ee7850122e7ccf51d0ea21e4fa7e7a5685 /contrib/libs/c-ares
parent8f7cf138264e0caa318144bf8a2c950e0b0a8593 (diff)
downloadydb-1d9c550e7c38e051d7961f576013a482003a70d9.tar.gz
Restoring authorship annotation for <neksard@yandex-team.ru>. Commit 2 of 2.
Diffstat (limited to 'contrib/libs/c-ares')
-rw-r--r--contrib/libs/c-ares/AUTHORS116
-rw-r--r--contrib/libs/c-ares/CHANGES3978
-rw-r--r--contrib/libs/c-ares/INSTALL.md200
-rw-r--r--contrib/libs/c-ares/NEWS42
-rw-r--r--contrib/libs/c-ares/README.cares10
-rw-r--r--contrib/libs/c-ares/README.md84
-rw-r--r--contrib/libs/c-ares/README.msvc282
-rw-r--r--contrib/libs/c-ares/RELEASE-NOTES10
-rw-r--r--contrib/libs/c-ares/TODO46
-rw-r--r--contrib/libs/c-ares/acountry.c1216
-rw-r--r--contrib/libs/c-ares/adig.c1650
-rw-r--r--contrib/libs/c-ares/ahost.c372
-rw-r--r--contrib/libs/c-ares/ares.h1166
-rw-r--r--contrib/libs/c-ares/ares__close_sockets.c112
-rw-r--r--contrib/libs/c-ares/ares__get_hostent.c488
-rw-r--r--contrib/libs/c-ares/ares__read_line.c132
-rw-r--r--contrib/libs/c-ares/ares__timeval.c220
-rw-r--r--contrib/libs/c-ares/ares_build.h150
-rw-r--r--contrib/libs/c-ares/ares_cancel.c126
-rw-r--r--contrib/libs/c-ares/ares_config.h1020
-rw-r--r--contrib/libs/c-ares/ares_create_query.c322
-rw-r--r--contrib/libs/c-ares/ares_data.c292
-rw-r--r--contrib/libs/c-ares/ares_data.h126
-rw-r--r--contrib/libs/c-ares/ares_destroy.c194
-rw-r--r--contrib/libs/c-ares/ares_dns.h206
-rw-r--r--contrib/libs/c-ares/ares_expand_name.c380
-rw-r--r--contrib/libs/c-ares/ares_expand_string.c136
-rw-r--r--contrib/libs/c-ares/ares_fds.c118
-rw-r--r--contrib/libs/c-ares/ares_free_hostent.c70
-rw-r--r--contrib/libs/c-ares/ares_free_string.c48
-rw-r--r--contrib/libs/c-ares/ares_getenv.c56
-rw-r--r--contrib/libs/c-ares/ares_getenv.h52
-rw-r--r--contrib/libs/c-ares/ares_gethostbyaddr.c582
-rw-r--r--contrib/libs/c-ares/ares_gethostbyname.c1000
-rw-r--r--contrib/libs/c-ares/ares_getnameinfo.c778
-rw-r--r--contrib/libs/c-ares/ares_getopt.c244
-rw-r--r--contrib/libs/c-ares/ares_getopt.h106
-rw-r--r--contrib/libs/c-ares/ares_getsock.c126
-rw-r--r--contrib/libs/c-ares/ares_inet_net_pton.h50
-rw-r--r--contrib/libs/c-ares/ares_init.c3506
-rw-r--r--contrib/libs/c-ares/ares_iphlpapi.h442
-rw-r--r--contrib/libs/c-ares/ares_ipv6.h148
-rw-r--r--contrib/libs/c-ares/ares_library_init.c246
-rw-r--r--contrib/libs/c-ares/ares_library_init.h82
-rw-r--r--contrib/libs/c-ares/ares_llist.c126
-rw-r--r--contrib/libs/c-ares/ares_llist.h78
-rw-r--r--contrib/libs/c-ares/ares_mkquery.c48
-rw-r--r--contrib/libs/c-ares/ares_nowarn.c472
-rw-r--r--contrib/libs/c-ares/ares_nowarn.h118
-rw-r--r--contrib/libs/c-ares/ares_options.c516
-rw-r--r--contrib/libs/c-ares/ares_parse_a_reply.c176
-rw-r--r--contrib/libs/c-ares/ares_parse_aaaa_reply.c182
-rw-r--r--contrib/libs/c-ares/ares_parse_mx_reply.c330
-rw-r--r--contrib/libs/c-ares/ares_parse_naptr_reply.c364
-rw-r--r--contrib/libs/c-ares/ares_parse_ns_reply.c328
-rw-r--r--contrib/libs/c-ares/ares_parse_ptr_reply.c374
-rw-r--r--contrib/libs/c-ares/ares_parse_soa_reply.c172
-rw-r--r--contrib/libs/c-ares/ares_parse_srv_reply.c348
-rw-r--r--contrib/libs/c-ares/ares_parse_txt_reply.c360
-rw-r--r--contrib/libs/c-ares/ares_platform.c22070
-rw-r--r--contrib/libs/c-ares/ares_platform.h86
-rw-r--r--contrib/libs/c-ares/ares_private.h674
-rw-r--r--contrib/libs/c-ares/ares_process.c2486
-rw-r--r--contrib/libs/c-ares/ares_query.c366
-rw-r--r--contrib/libs/c-ares/ares_rules.h246
-rw-r--r--contrib/libs/c-ares/ares_search.c584
-rw-r--r--contrib/libs/c-ares/ares_send.c248
-rw-r--r--contrib/libs/c-ares/ares_setup.h432
-rw-r--r--contrib/libs/c-ares/ares_strcasecmp.c132
-rw-r--r--contrib/libs/c-ares/ares_strcasecmp.h60
-rw-r--r--contrib/libs/c-ares/ares_strdup.c56
-rw-r--r--contrib/libs/c-ares/ares_strdup.h48
-rw-r--r--contrib/libs/c-ares/ares_strerror.c112
-rw-r--r--contrib/libs/c-ares/ares_timeout.c160
-rw-r--r--contrib/libs/c-ares/ares_version.c22
-rw-r--r--contrib/libs/c-ares/ares_version.h40
-rw-r--r--contrib/libs/c-ares/ares_writev.c150
-rw-r--r--contrib/libs/c-ares/ares_writev.h70
-rw-r--r--contrib/libs/c-ares/bitncmp.c116
-rw-r--r--contrib/libs/c-ares/bitncmp.h52
-rw-r--r--contrib/libs/c-ares/config-dos.h216
-rw-r--r--contrib/libs/c-ares/config-win32.h680
-rw-r--r--contrib/libs/c-ares/inet_net_pton.c894
-rw-r--r--contrib/libs/c-ares/inet_ntop.c410
-rw-r--r--contrib/libs/c-ares/nameser.h422
-rw-r--r--contrib/libs/c-ares/setup_once.h1098
-rw-r--r--contrib/libs/c-ares/windows_port.c44
-rw-r--r--contrib/libs/c-ares/ya.make116
88 files changed, 28406 insertions, 28406 deletions
diff --git a/contrib/libs/c-ares/AUTHORS b/contrib/libs/c-ares/AUTHORS
index 3a4e66f13b..7db6584c91 100644
--- a/contrib/libs/c-ares/AUTHORS
+++ b/contrib/libs/c-ares/AUTHORS
@@ -1,84 +1,84 @@
-c-ares is based on ares, and these are the people that have worked on it since
-the fork was made:
-
-Albert Chin
+c-ares is based on ares, and these are the people that have worked on it since
+the fork was made:
+
+Albert Chin
Alex Loukissas
Alexander Klauer
-Alexander Lazic
-Alexey Simak
-Andreas Rieke
+Alexander Lazic
+Alexey Simak
+Andreas Rieke
Andrew Andkjar
Andrew Ayer
-Andrew C. Morrow
-Ashish Sharma
-Ben Greear
-Ben Noordhuis
-BogDan Vatra
-Brad House
-Brad Spencer
-Bram Matthys
+Andrew C. Morrow
+Ashish Sharma
+Ben Greear
+Ben Noordhuis
+BogDan Vatra
+Brad House
+Brad Spencer
+Bram Matthys
Chris Araman
-Dan Fandrich
-Daniel Johnson
-Daniel Stenberg
+Dan Fandrich
+Daniel Johnson
+Daniel Stenberg
David Drysdale
-David Stuart
-Denis Bilenko
-Dima Tisnek
-Dirk Manske
-Dominick Meglio
-Doug Goldstein
+David Stuart
+Denis Bilenko
+Dima Tisnek
+Dirk Manske
+Dominick Meglio
+Doug Goldstein
Doug Kwan
-Duncan Wilcox
-Eino Tuominen
-Erik Kline
+Duncan Wilcox
+Eino Tuominen
+Erik Kline
Fedor Indutny
Frederic Germain
Geert Uytterhoeven
-George Neill
-Gisle Vanem
+George Neill
+Gisle Vanem
Google LLC
Gregor Jasny
-Guenter Knauf
-Guilherme Balena Versiani
-Gunter Knauf
-Henrik Stoerner
-Jakub Hrozek
-James Bursa
-Jérémy Lal
+Guenter Knauf
+Guilherme Balena Versiani
+Gunter Knauf
+Henrik Stoerner
+Jakub Hrozek
+James Bursa
+Jérémy Lal
John Schember
Keith Shaw
Lei Shi
-Marko Kreen
-Michael Wallner
-Mike Crowe
-Nick Alcock
-Nick Mathewson
+Marko Kreen
+Michael Wallner
+Mike Crowe
+Nick Alcock
+Nick Mathewson
Nicolas "Pixel" Noble
Ning Dong
Oleg Pudeyev
Patrick Valsecchi
-Patrik Thunstrom
+Patrik Thunstrom
Paul Saab
-Peter Pentchev
-Phil Blundell
-Poul Thomas Lomholt
-Ravi Pratap
-Robin Cornelius
+Peter Pentchev
+Phil Blundell
+Poul Thomas Lomholt
+Ravi Pratap
+Robin Cornelius
Saúl Ibarra Corretgé
-Sebastian at basti79.de
-Shmulik Regev
-Stefan Bühler
-Steinar H. Gunderson
+Sebastian at basti79.de
+Shmulik Regev
+Stefan Bühler
+Steinar H. Gunderson
Svante Karlsson
-Tofu Linden
-Tom Hughes
-Tor Arntsen
+Tofu Linden
+Tom Hughes
+Tor Arntsen
Viktor Szakats
-Vlad Dinulescu
-William Ahern
-Yang Tse
+Vlad Dinulescu
+William Ahern
+Yang Tse
hpopescu at ixiacom.com
-liren at vivisimo.com
+liren at vivisimo.com
nordsturm
saghul
diff --git a/contrib/libs/c-ares/CHANGES b/contrib/libs/c-ares/CHANGES
index 090c2e7d1c..f6652caaa0 100644
--- a/contrib/libs/c-ares/CHANGES
+++ b/contrib/libs/c-ares/CHANGES
@@ -1,5 +1,5 @@
- Changelog for the c-ares project. Generated with git2changes.pl
-
+ Changelog for the c-ares project. Generated with git2changes.pl
+
Version 1.16.1 (11 May 2020)
Brad House (11 May 2020)
@@ -2734,1990 +2734,1990 @@ Daniel Stenberg (12 May 2013)
- bump: start working towards 1.10.1
-Version 1.10.0 (12 May 2013)
-
-Daniel Stenberg (12 May 2013)
-- RELEASE-NOTES: two more bug fixes
-
-- [Keith Shaw brought this change]
-
- ares_set_servers_csv: fixed IPv6 address parsing
-
- Fixed bug that caused the last part of an IPv6 address to be parsed as
- the port number when the last part is all numeric.
-
-- nroff: fix two syntax mistakes
-
- ares_parse_a_reply and ares_parse_aaaa_reply both had two \fB instead of
- \fP
-
- Reported-by: Alexander Klauer
- Bug: http://c-ares.haxx.se/mail/c-ares-archive-2013-03/0010.shtml
-
-- [Alex Loukissas brought this change]
-
- build: fix build on msvc11
-
-- Makefile.am: increment -version-info for 1.10.0 release
-
-- README: remove unnecessary comment
-
-- ares_version.h: copyright end range year is now 2013
-
-- RELEASE-NOTES: synced with fb0737f3a0a1c37
-
-- [Paul Saab brought this change]
-
- ares_parse_aaaa_reply: Plug memory leak
-
- This change is similar to ares_parse_a_reply.c in commit
- bffd67f16a8f42fe6dbf79ab2e39d92eea05c8a6
-
-- [Patrick Valsecchi brought this change]
-
- ares_parse_txt_reply: return a ares_txt_reply node for each sub-string
-
- Previously, the function would wrongly return all substrings merged into
- one.
-
-- [Alexander Klauer brought this change]
-
- library init: documentation update
-
- This commit updates the documentation of ares_library_init() and
- ares_library_cleanup() with regard to the newly introduced reference
- counting of initializations and deinitializations.
-
-- [Alexander Klauer brought this change]
-
- library init: be recursive
-
- Previously, a single call to ares_library_cleanup() would deinitialise
- the c-ares library, regardless of how many times ares_library_init() was
- called. This behaviour may cause problems in programs linking two or
- more libraries which, in turn, use c-ares. The present commit fixes this
- problem, deinitializing the library only after a number of calls to
- ares_library_cleanup() matching the number of calls to
- ares_library_init().
-
-- [Patrick Valsecchi brought this change]
-
- protocol parsing: check input data stricter
-
- ... so that bad length fields aren't blindly accepted
-
- Bug: http://c-ares.haxx.se/mail/c-ares-archive-2013-04/0016.shtml
-
-Guenter Knauf (11 Apr 2013)
-- Create ares_build.h when buidling from Git.
-
-- Added -DCARES_STATICLIB to CFLAGS.
-
- Currently this static makefile does only support building the
- static library libcares.a.
-
-Daniel Stenberg (8 Apr 2013)
-- [Alexander Klauer brought this change]
-
- .gitignore: ignore patch files
-
- This commit adds a line to .gitignore to the effect that patch files
- generated by 'git format-patch' are excluded from the repository.
-
-- [Alexander Klauer brought this change]
-
- ares_destroy() documentation: no new requests
-
- Clarify that no new requests may be added to a resolver channel that is
- currently being destroyed.
-
-- [Alexander Klauer brought this change]
-
- Documentation: properly document ARES_ECANCELLED
-
- This commit clarifies the behaviour of ares_cancel() with respect to
- callbacks and adds missing documentation of ARES_ECANCELLED to the man
- pages of the affected functions.
-
-- [Alexander Klauer brought this change]
-
- ares_cancel(): cancel requests safely
-
- An invocation of ares_cancel() walks through the request list, calling
- the callbacks of all pending requests on a channel. Previously, if such
- a callback added a new request to the channel, the request list might
- not end up empty, causing an abort by assertion failure. The present
- commit ensures that precisely all requests present upon entry of
- ares_cancel() are cancelled, and that adding new requests through
- callbacks is safe.
-
-Yang Tse (10 Mar 2013)
-- ares.h: stricter CARES_EXTERN linkage decorations logic
-
- No API change involved.
-
-- ares_build.h.dist: enhance non-configure GCC ABI detection logic
-
- GCC specific adjustments:
-
- - check __ILP32__ before 32 and 64bit processor architectures in
- order to detect ILP32 programming model on 64 bit processors
- which, of course, also support LP64 programming model, when using
- gcc 4.7 or newer.
-
- - keep 32bit processor architecture checks in order to support gcc
- versions older than 4.7 which don't define __ILP32__
-
- - check __LP64__ for gcc 3.3 and newer, while keeping 64bit processor
- architecture checks for older versions which don't define __LP64__
-
-Daniel Stenberg (9 Mar 2013)
-- ares.h: there is no ares_free_soa function
-
-Yang Tse (9 Mar 2013)
-- Makefile.am: empty AM_LDFLAGS definition for automake 1.7 compatibility
-
-- ares_inet_ntop.3: s/socklen_t/ares_socklen_t
-
-- configure: use XC_LIBTOOL for portability across libtool versions
-
-- xc-lt-iface.m4: provide XC_LIBTOOL macro
-
-- Makefile.am: use AM_CPPFLAGS instead of INCLUDES
-
-- inet_ntop.c: s/socklen_t/ares_socklen_t
-
-- inet_ntop.c: s/socklen_t/ares_socklen_t for portability
-
-Daniel Stenberg (19 Feb 2013)
-- ares.h: s/socklen_t/ares_socklen_t for portability
-
-- ares_inet_ntop.3: 4th argument is socklen_t!
-
-- spell inet correctly!
-
-- ares_inet_pton/ntop: cleanup
-
- Make sure that the symbols are always exported and present in c-ares.
-
- Make the headers prefixed with 'ares'.
-
- Removed the inet_ntop.h version as it no longer features any content.
-
-- ares_inet_ntop/ares_inet_pton: added man pages
-
-Yang Tse (15 Feb 2013)
-- [Gisle Vanem brought this change]
-
- curl_setup_once.h: definition of HAVE_CLOSE_S defines sclose() to close_s()
-
-- [Gisle Vanem brought this change]
-
- config-dos.h: define HAVE_CLOSE_S for MSDOS/Watt-32
-
-- [Gisle Vanem brought this change]
-
- config-dos.h: define strerror() to strerror_s_() for High-C
-
-Daniel Stenberg (13 Feb 2013)
-- ares_get_datatype: removed unused function
-
- it was also wrongly named as internal functions require two underscores
-
-- ares__bitncmp: use two underscores for private functions
-
- It used a single one previously making it look like a public one
-
-- ares__generate_new_id: moved to ares_query.c
-
- ... and ares__rc4 is turned into a local static function.
-
-- ares__swap_lists: make private and static
-
- ... since there's only one user, make it static within ares_process.c
-
-Yang Tse (13 Feb 2013)
-- Makefile.msvc: add four VS version strings
-
-Daniel Stenberg (13 Feb 2013)
-- ares_expand_name.3: clarify how to free the data
-
-Yang Tse (30 Jan 2013)
-- zz40-xc-ovr.m4: fix 'wc' detection - follow-up 2
-
- - Fix a pair of single quotes to double quotes.
-
- URL: http://curl.haxx.se/mail/lib-2013-01/0355.html
- Reported by: Tor Arntsen
-
-- zz40-xc-ovr.m4: fix 'wc' detection - follow-up
-
- - Take into account that 'wc' may return leading spaces and/or tabs.
-
- - Set initial IFS to space, tab and newline.
-
-- zz40-xc-ovr.m4: fix 'wc' detection
-
- - Take into account that 'wc' may return leading spaces.
-
- - Set internationalization behavior variables.
-
- Tor Arntsen analyzed and reported the issue.
-
- URL: http://curl.haxx.se/mail/lib-2013-01/0351.html
-
-- zz40-xc-ovr.m4: check another three basic utilities
-
-- zz40-xc-ovr.m4: 1.0 interface stabilization
-
- - Stabilization results in 4 public interface m4 macros:
- XC_CONFIGURE_PREAMBLE
- XC_CONFIGURE_PREAMBLE_VER_MAJOR
- XC_CONFIGURE_PREAMBLE_VER_MINOR
- XC_CHECK_PATH_SEPARATOR
- - Avoid one level of internal indirection
- - Update comments
- - Drop XC_OVR_ZZ40 macro
-
-- zz40-xc-ovr.m4: emit witness message in configure BODY
-
- This avoids witness message in output when running configure --help,
- while sending the message to config.log for other configure runs.
-
-- zz40-xc-ovr.m4: truly do version conditional overriding
-
- - version conditional overriding
- - catch unexpanded XC macros
- - fix double words in comments
-
-- zz40-xc-ovr.m4: fix variable assignment of subshell output bashism
-
- Tor Arntsen analyzed and reported the issue.
-
- URL: http://curl.haxx.se/mail/lib-2013-01/0306.html
-
-- zz40-xc-ovr.m4: reinstate strict AC_REQUIRE macro dependencies
-
-- zz40-xc-ovr.m4: avoid double single-quote usage
-
-- zz40-xc-ovr.m4: parentheses balancing of 'case' statements
-
- m4 quadrigraph shell comment technique allows proper autoconf
- parentheses balancing in shell 'case' statements. The presence
- of unbalanced parentheses may otherwise trigger expansion bugs.
-
-- zz40-xc-ovr.m4: internals overhauling
-
- - Update comments
- - Execute commands in subshells
- - Faster path separator check
- - Fix missing 'test' command
- - Rename private macros
- - Minimize AC_REQUIRE usage
-
-- zz40-xc-ovr.m4: redirect errors and warnings to stderr
-
-- configure: use XC_CONFIGURE_PREAMBLE early checks
-
- Some basic checks we make were placed early enough in generated
- configure script when using autoconf 2.5X versions. Newer autoconf
- versions expand these checks much further into the configure script,
- rendering them useless. Using XC_CONFIGURE_PREAMBLE fixes placement
- of early intended checks across all our autoconf supported versions.
-
-- zz40-xc-ovr.m4: provide XC_CONFIGURE_PREAMBLE macro
-
-- configure: autotools compatibility fixes - step I
-
- Fix proper macro expansion order across autotools versions for
- C compiler and preprocessor program checks.
-
-- configure: fix automake 1.13 compatibility
-
- Tested with:
-
- buildconf: autoconf version 2.69
- buildconf: autom4te version 2.69
- buildconf: autoheader version 2.69
- buildconf: automake version 1.13.1
- buildconf: aclocal version 1.13.1
- buildconf: libtool version 2.4
- buildconf: GNU m4 version 1.4.16
-
-- ares_private.h: use again memdebug.h instead of curl_memdebug.h
-
-- configure.ac: replace AM_CONFIG_HEADER with AC_CONFIG_HEADERS
-
- automake 1.13 errors if AM_CONFIG_HEADER is used in configure script.
-
-- cares-override.m4: provide AC_CONFIG_MACRO_DIR definition conditionally
-
- Provide a 'traceable' AC_CONFIG_MACRO_DIR definition only when using
- an autoconf version that does not provide it, instead of what we were
- doing up to now of providing and overriding AC_CONFIG_MACRO_DIR for
- all autoconf versions.
-
-- ares_private.h: use curl_memdebug.h instead of memdebug.h
-
-- vc6cares.dsp: add ares_create_query.c and ares_parse_soa_reply.c
-
-- cares-functions.m4: improve gethostname arg 2 data type check
-
-- setup_once.h: HP-UX specific 'bool', 'false' and 'true' definitions.
-
- Also reverts commit bceb40095a
-
-- configure: check if compiler halts on function prototype mismatch
-
-- cares-functions.m4: add gethostname arg 2 data type check and definition
-
-- cares-functions.m4: update thread-safeness detection of getaddrinfo()
-
- Take in account that POSIX standard Issue 7 drops h_errno support. Now, we also
- consider getaddrinfo() to be thread-safe when (_POSIX_C_SOURCE >= 200809L) or
- (_XOPEN_SOURCE >= 700) independently of whether h_errno exists or not.
-
- Take in account that h_errno might be a modifiable lvalue not defined as
- a C preprocessor macro.
-
-- setup_once.h: HP-UX <sys/socket.h> issue workaround
-
- Issue: When building a 32bit target with large file support HP-UX
- <sys/socket.h> header file may simultaneously provide two different
- sets of declarations for sendfile and sendpath functions, one with
- static and another with external linkage. Given that we do not use
- mentioned functions we really don't care which linkage is the
- appropriate one, but on the other hand, the double declaration emmits
- warnings when using the HP-UX compiler and errors when using modern
- gcc versions resulting in fatal compilation errors.
-
- Mentioned issue is now fixed as long as we don't use sendfile nor
- sendpath functions.
-
-- setup_once.h: refactor inclusion of <unistd.h> and <sys/socket.h>
-
- Inclusion of these two header files now done in setup_once.h
-
-- Header inclusion clean-up
-
- Remove header inclusions already done in setup_once.h
-
-- setup_once.h: HP-UX specific TRUE and FALSE definitions
-
- Some HP-UX system headers require TRUE defined to 1 and FALSE to 0.
-
-- ares_timeout.c: fix compiler warning
-
-- ares_create_query.c: IRIX compilation fix
-
-- c-ares/nameser.h: add some T_* defines for ns_t_* values
-
-Daniel Stenberg (7 Nov 2012)
-- Revert "ares_parse_aaaa_reply: fix memory leak"
-
- This reverts commit 50f25d8a4b2d16f4c5e0ef620238688b7a315c7a.
-
-- ares_parse_aaaa_reply: fix memory leak
-
- an allocated buffer was not freed in the successful case.
-
-- [Gisle Vanem brought this change]
-
- adig: perror() doesn't work for socket errors on windows
-
- ... so print the SOCKERRNO instead
-
-- get_DNS_AdaptersAddresses: fix IPv6 parsing
-
- Use of the wrong define made the function not parse IPv6 addresses
- properly.
-
- Bug: http://c-ares.haxx.se/mail/c-ares-archive-2012-06/0028.shtml
- Reported by: Saúl Ibarra Corretgé
-
-- version: bumped to 1.10.0
-
- Due to the newly added function: ares_create_query()
-
-- AUTHORS: synced with 83093ac450
-
- Added 21 authors since this document was last updated
-
-- ares_create_query.3: mention when this is added
-
-- [hpopescu@ixiacom.com brought this change]
-
- Added new feature (rfc2671)
-
-- code police: fix indents, < 80 columns, reflowed comments
-
-Guenter Knauf (11 Jul 2012)
-- Cleaned up version awk script.
-
-Daniel Stenberg (30 Jun 2012)
-- [Gisle Vanem brought this change]
-
- read_udp_packets: bail out loop on bad sockets
-
- I can see that recvfrom() in ares_process.c many times is called with
- 'udp_socket' == ARES_SOCKET_BAD. The code takes care not to call
- recv/recvfrom with ARES_SOCKET_BAD in the outer-loop. So should the
- inner-loop.
-
-Yang Tse (29 Jun 2012)
-- cares-compilers.m4: remove -Wstrict-aliasing=3 from clang
-
- Currently it is unknown if there is any version of clang that
- actually supports -Wstrict-aliasing. What is known is that there
- are several that don't support it.
-
-- cares-compilers.m4: -Wstrict-aliasing=3 for warning enabled gcc and clang builds
-
-Daniel Stenberg (18 Jun 2012)
-- version: work towards 1.9.2 (at least)
-
-Version 1.9.1 (18 Jun 2012)
-
-Daniel Stenberg (18 Jun 2012)
-- RELEASE-NOTES: 1.9.1 coming up
-
-Version 1.9.0 (16 Jun 2012)
-
-Daniel Stenberg (16 Jun 2012)
-- ares_version.h: next version is 1.9.0
-
-- [Marko Kreen brought this change]
-
- ares_data.h: ARES_DATATYPE_SOA_REPLY is added in 1.9.0
-
-- RELEASE-NOTES: synced with 979bf951d
-
- Next release deemed to become 1.9.0 due to the new function
-
-- [Marko Kreen brought this change]
-
- SOA parser added
-
- I need to do SOA queries, so here is a parser for them.
-
- - ares_soa_reply: new struct
- - ares_malloc_data/ares_free_soa: ARES_DATATYPE_SOA_REPLY
- - ares_parse_soa_reply: actual function
-
-Yang Tse (14 Jun 2012)
-- Kill compiler warning
-
-- Fix libcares.pc generation for static MingW* cross builds
-
-Daniel Stenberg (21 May 2012)
-- [Nick Alcock brought this change]
-
- Fix UDP and TCP port byte order in saved options.
-
- The UDP and TCP port are stored in network byte order in the
- ares_channeldata, but are passed in to ares_init_options() in host byte
- order. Thus we must return them from ares_save_options() in host byte
- order too, or a duplicated channel will convert them again, leading to a
- nonfunctional channel and a mysterious connection refused error from
- ares_gethostbyname(). This breaks ares_dup(), thus the curl easy API
- when c-ares is used by curl, and thus all the curl easy API's users.
-
-Yang Tse (28 Apr 2012)
-- version: start working on 1.8.1-DEV
-
-Version 1.8.0 (27 Apr 2012)
-
-Daniel Stenberg (27 Apr 2012)
-- RELEASE-NOTES: call next 1.8 instead
-
- Since we added a function, let's use a stricter bumping scheme
-
-Yang Tse (25 Apr 2012)
-- INSTALL: some adjustments
-
-Daniel Stenberg (25 Apr 2012)
-- GIT-INFO: mention buildconf
-
-Yang Tse (25 Apr 2012)
-- INSTALL: remove more sections that don't apply to c-ares
-
-- ares_timeout.c: fix compiler warning
-
-Daniel Stenberg (25 Apr 2012)
-- [Ben Noordhuis brought this change]
-
- Makefile.m32: fix mingw32 build
-
- * add . to include path so ares_build.h is picked up
- * make ar configurable to ease cross-compiling
-
-- RELEASE-NOTES: added what's happened since 1.7.5
-
-Guenter Knauf (22 Apr 2012)
-- Updated copyright year.
-
-Yang Tse (21 Apr 2012)
-- ares_init.c: Further refactoring of Windows system's DNS fetching code
-
-Guenter Knauf (20 Apr 2012)
-- Android: small changes to dns property part.
-
- Prefix prop vars; kill var; use DNS_PROP_NAME_PREFIX macro.
-
-- Handle CNAME-only in ares_parse_aaaa_reply().
-
- posted to the c-ares list by Peter Griess <pg@std.in>.
-
-- Add support for multiple DNS servers on Android.
-
- Before, c-ares always used the first DNS server on Android, causing
- network problems if this DNS server was not available.
-
- Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
-
-- Added INSTALL so it gets into tarballs.
-
-- Added some more ifdefs to silent compiler warnings.
-
-Yang Tse (17 Apr 2012)
-- INSTALL: remove a non c-ares section
-
-- cares-compilers.m4: -Wno-pedantic-ms-format for Windows gcc 4.5 builds
-
- When building a Windows target with gcc 4.5 or newer and strict compiler
- warnings enabled use -Wno-pedantic-ms-format in addition to other flags.
-
-- setup_once.h: tighten requirements for stdbool.h header inclusion
-
- Include stdbool.h only when it is available and configure is capable of
- detecting a proper 'bool' data type when the header is included.
-
-- configure: NATIVE_WINDOWS no longer defined in config file
-
-- cares-compilers.m4: double underscore decoration for visibility attribute
-
-- build adjustments: CARES_SYMBOL_HIDING no longer defined in config files
-
- configure script now provides conditional definitions for Makefile.am
- that result in CARES_SYMBOL_HIDING being defined by resulting makefiles
- when appropriate.
-
-- configure: Windows cross-compilation fixes
-
- CARES_BUILDING_LIBRARY and CARES_STATICLIB no longer defined in ares_config.h,
- configure will generate appropriate conditionals so that mentioned symbols
- get defined and used in Makefile derived from Makefile.am at compilation time.
-
-Guenter Knauf (17 Apr 2012)
-- Added INSTALL file adapted from libcurl.
-
- Not yet ready, and needs further edits.
-
-Yang Tse (16 Apr 2012)
-- ares_init.c: get_iphlpapi_dns_info() refactoring
-
-Guenter Knauf (16 Apr 2012)
-- Kill some more compiler warnings.
-
-- Kill compiler warning about unused var.
-
-- Fixed my last commit: wrong preprocessor directive.
-
-- Check for __ANDROID__ in addition to ANDROID macro.
-
-- Check for __ANDROID__ in addition to ANDROID macro.
-
- Posted to c-ares list by Wayne.
-
-- Fix for Android to disable useless arpa/nameser.h.
-
-- Fix for Android to include sys/select.h for fd_set.
-
-Yang Tse (17 Mar 2012)
-- ares_data.c: some NAPTR related fixes
-
-Daniel Stenberg (16 Mar 2012)
-- port numbers: convert them to network order!
-
- When the config options ARES_OPT_UDP_PORT or ARES_OPT_TCP_PORT are used,
- make sure to convert them to network byte order!
-
- Bug: http://c-ares.haxx.se/mail/c-ares-archive-2012-02/0004.shtml
-
-- white space cleanup
-
- - Keep code within 80 columns
-
- - Removed funny spaces after open paren and before closing paren
-
-- [Poul Thomas Lomholt brought this change]
-
- get_iphlpapi_dns_info: fix buffer overrun
-
- I experienced a buffer overrun exception in c-ares on Windows and
- tracked it down to be an error in the calculation of the 'left' variable
- in get_iphlpapi_dns_info().
-
- I changed the variable type of 'left' to a _signed_ type because of the
- subtraction arithmetic; not sure if a long is the best choice
-
-- Merge pull request #7 from saghul/naptr
-
- Added support for parsing NAPTR records
-
-saghul (23 Feb 2012)
-- Added support for parsing NAPTR records
-
-Yang Tse (19 Jan 2012)
-- ares_init.c: fix compiler warning on winsock builds
-
-- configure: libtool 1.5 tweaks
-
-Daniel Stenberg (19 Dec 2011)
-- ares_timeout.3: fix the NAME section
-
- It was clearly a copy n' paste error
-
-Yang Tse (27 Sep 2011)
-- [Albert Chin brought this change]
-
- configure - m4: make CURL_CHECK_DEF ignore leading whitespace on symbol def
-
- When using Sun C compiler the preprocessor somehow inserts an extra space
- in front of replaced symbol, breaking CURL_CHECK_DEF macro. To workaround
- this, macro CURL_CHECK_DEF now ignores all leading whitespace in front of
- symbol substitution result.
-
-- ares_init.c: fix segfault triggered in ares_init_options() upon previous
- failure of init_by_defaults() and incomplete cleanup there.
-
-- ares_process.c: fix compiler warning
-
-- fix MSVC compiler warning 'conditional expression is constant'
-
-- setup_once.h cleanup and sync
-
-- [Denis Bilenko brought this change]
-
- ares_getnameinfo: fix random results with c-ares 1.7.5
-
- In ares_getnameinfo memcpy did not copy enough bytes, causing
- it to return arbitrary memory contents as a result.
-
-- warnings: fix another 'conversion may lose significant bits' compiler warning
-
-- ares_dns.h: adjust DNS__16BIT and DNS__32BIT macro definitions
-
- Fixing compiler warnings existing definitions triggered on these.
-
-- ares_destroy.c: fix segfault in ares_destroy_options()
-
-Daniel Stenberg (21 Aug 2011)
-- ares_parse_srv_reply: silence compiler warnings
-
- ... by adding ugly typecasts.
-
-- CHANGES: generate from script
-
- The CHANGES file is now generated automatically with 'git2changes.pl',
- invoked by the maketgz script which is used to build release archives.
-
- The former human edited CHANGES file was renamed to CHANGES.0 in git.
-
-Yang Tse (21 Aug 2011)
-- Makefile.netware: SIZEOF_SHORT definition
-
-- warnings: fix some 'conversion may lose significant bits' compiler warnings
-
-- configure: fix symbol hiding usability check
-
- A more thorough test is done now in order to determine visibility attribute
- usability, given that some compilers don't support visibility attribute on
- all configurations.
-
-Daniel Stenberg (16 Aug 2011)
-- 1.7.6: start working...
-
-Version 1.7.5 (16 Aug 2011)
-
-Daniel Stenberg (16 Aug 2011)
-- CHANGES: synced for 1.7.5 release
-
-- RELEASE-NOTES: synced with bb4096effef7f000
-
-Jakub Hrozek (15 Aug 2011)
-- Only fall back to AF_INET searches when looking for AF_UNSPEC addresses
-
-Yang Tse (10 Aug 2011)
-- [Gisle Vanem brought this change]
-
- ares_iphlpapi.h: Watcom C fix
-
- Added "!defined(_WS2DEF_)" since Watcom doesn't have
- a per type guard for the typedefs 'CSADDR_INFO' (that MingW has) or
- 'SOCKET_ADDRESS' (that MSVC has). But we can use the header-guard for
- <ws2def.h> instead.
-
-- [Gisle Vanem brought this change]
-
- Makefile.Watcom:
- * The 'NTDDI_VERSION' needs to be raised to 0x05010000
- in order for SOCKADDR_STORAGE etc. to be typedefed.
- * Replaced '-dUSE_WATT32' with '-dWATT32'.
- * Added $(DEMOS) to the 'all' target and removed the 'demos'
- target to be consistent with e.g. Makefile.msvc etc.
- * 'ENABLE_IPV6' is no longer used. Hence removed the '%use_ipv6' construct.
- * object-file order seems to be important (Watcom v.19). Hence
- 'ares_getopt.obj' must be put after the .obj that references getopt().
-
-- cares-compilers.m4: CARES_CONVERT_INCLUDE_TO_ISYSTEM adjustments
-
- Add CARES_CHECK_COMPILER as a requirement.
-
- Ensure macro does nothing unless GNU_C or CLANG compiler is used.
-
- This should allow usage of this macro in unforeseen placements.
-
-- config-win32.h: comments adjustments - followup
-
-- config-win32.h: comments adjustments
-
-Daniel Stenberg (5 Aug 2011)
-- [Tom Hughes brought this change]
-
- ares_parse_a_reply: fix memleak
-
-Yang Tse (29 Jul 2011)
-- cares-functions.m4 serial # bump
-
-- Revert "configure: additional flag checks for fcntl() and socket()"
-
- This reverts commit 5f2a3b0e48f26d24cb1fefea0dccb92d417dcbf7.
-
-- configure: additional flag checks for fcntl() and socket()
-
-- xc-translit.m4 fix quoting
-
-- configure: avoid direct usage of AS_TR_* macros
-
-- xc-translit.m4 provides transliteration macros with well defined behavior.
-
-Jakub Hrozek (15 Jun 2011)
-- Revert "Only fall back to AF_INET searches when looking for AF_UNSPEC addresses"
-
- This reverts commit b5823d65706af687c0e5110af8f0cfdcd068997d.
-
- This patch was not reviewed properly before pushing
-
-- Revert "Do not use sized constants in public headers"
-
- This reverts commit 22c01e96f7b2ae9923e1baa50bfe3c0d22297a7d.
-
- This is a Red Hat specific patch that does not belong into upstream
-
-- Use correct sizeof in ares_getnameinfo()
-
-- Do not leak rr_name on failures inside ares_parse_ptr_reply
-
-- Do not leak rr_name on failures inside ares_parse_a_reply
-
-- Do not leak rr_name on failures inside ares_parse_aaaa_reply
-
-- Do not leak rr_name on failures inside ares_parse_ns_reply
-
-- Fix incorrect sizeof() in ares_save_options
-
-- Fix incorrect allocation in ares_parse_ptr_reply()
-
-- Only fall back to AF_INET searches when looking for AF_UNSPEC addresses
-
-- Do not use sized constants in public headers
-
-Daniel Stenberg (13 Jun 2011)
-- [Jakub Hrozek brought this change]
-
- ares_free_hostent(NULL) should be a noop
-
-Yang Tse (8 Jun 2011)
-- configure: fix recvfrom 5th arg type qualifier detection (followup)
-
-- configure: fix recvfrom 5th arg type qualifier detection
-
- Additionally remove whitespace from EOL
-
-Daniel Stenberg (4 Jun 2011)
-- strlen: use size_t to receive the return
-
-Yang Tse (4 Jun 2011)
-- xlc: avoid preprocessor definition usage when linking
-
-- ares_nowarn: icc 9.1 workaround
-
-- ares_nowarn: header inclusion fix
-
-- ares_init: make ares_private.h last included header again
-
-- compiler warning: fix
-
- Fix compiler warning: conversion may lose significant bits
-
-- compiler warning: fix
-
- Fix compiler warning: variable was set but never used
-
- Fix compiler warning: clobber ignored
-
-- ares_iphlpapi: fix compiler warnings
-
-- winsock: compilation fixes
-
- Provide winsock iphlpapi alternative definitions to prevent compilation
- failures when using a variety of winsock header implementations.
-
-Daniel Stenberg (17 May 2011)
-- [David Stuart brought this change]
-
- IPv6-on-windows: find DNS servers correctly
-
-- man pages: docs for the c-ares utility programs
-
-- ares_parse_ns_reply.c: remove CVSism
-
-Yang Tse (27 Mar 2011)
-- build: fix header inclusion
-
-- getservbyport replacement for Win CE
-
-- renamed getplatform() to ares__getplatform() to avoid namespace pollution
-
-- configure: fix libtool warning
-
- Recent versions of libtool are now tracing usage of AC_CONFIG_MACRO_DIR
- macro and warn heavily when not used in configure script along with
- ACLOCAL_AMFLAGS in Makefile.am. So in order to make libtool happy
- while keeping backwards compatibility this is added.
-
-- adig: RFC4034 resource record type detection
-
- Can be tested with: adig -s 8.8.8.8 -t ANY example.com
-
-- nameser.h: RFC4034 resource record type definitions
-
-- build: move platform stuff to ares_platform.c and ares_platform.h
-
-- build: find out windows platform using GetVersionEx()
-
-- build: use getenv() replacement function for systems which lack it
-
-- setup_once: system error codes for Windows CE
-
-- ares_search: use ERRNO macro for portability sake
-
-- System's errno.h inclusion cleanup follow-up.
-
- System's errno.h is conditionally included from setup_once.h
-
-- Windows CE specific adjustment
-
- All versions of Windows CE support Winsock 1.1
-
-- System's errno.h inclusion cleanup.
-
- System's errno.h is conditionally included from setup_once.h
-
-- ares_init: fix gethostname error detection on winsock platforms
-
-- configure: r-enable temporarily disabled detection of system's inet_ntop()
-
- Detection was temporarily disabled in commit 674e044ccb21f2f63537da53565fce868f
-
-Daniel Stenberg (15 Mar 2011)
-- configure: stop using the deprecated AM_INIT_AUTOMAKE syntax
-
-- [Gisle Vanem brought this change]
-
- Watt-32: use errno
-
- Make sure Watt-32 programs use 'errno' even on Win32 targets
-
-Guenter Knauf (18 Feb 2011)
-- Removed commented CLFAGS no longer needed.
-
-- Fixed CFLAGS for NetWare.
-
- Added -m32 to enable compilation with x86_64 compilers;
- added conditional to set -fpcc-struct-return only for gcc compiler.
-
-Daniel Stenberg (18 Feb 2011)
-- [Gisle Vanem brought this change]
-
- Watt32: fix server init
-
- Somewhere in the process, programs using the Watt-32 tcp/ip stack
- stopped working.
-
-- [Dima Tisnek brought this change]
-
- config_sortlist: (win32) missing else
-
- Without an else there, contents of "pat" that could have been
- successfully set just above, may be clobbered by successive unsuccessful
- calls to "xxx_pton" or "ip_addr".
-
-Yang Tse (17 Jan 2011)
-- Makefile.msvc: add a couple of VS version strings
-
-- Makefile.msvc: add a couple of VS version strings
-
-- build: add install target to Makefile.msvc
-
-Daniel Stenberg (27 Dec 2010)
-- ares_set_servers_csv: remove unused variables
-
-- init_by_resolv_conf: fix compiler warnings
-
- The code received the return codes in the 'status' variable without
- using it. Instead we just ignore those particular errors.
-
-- getv4: Value stored to 'dst' is never read
-
-- advance_tcp_send_queue: avoid NULL ptr dereference
-
- If given a too large 'num_bytes' value, it would cause a NULL ptr
- dereference. Instead the code will now break out of the loop at the end
- of the list.
-
-- [Peter Pentchev brought this change]
-
- configure: fix a bashism
-
-- cleanup: avoid unsafe typecasts
-
- Avoid the risk of reading 16bit data from an unaligned address by using
- a macro that is adapted for this.
-
-- [Stefan Bühler brought this change]
-
- ares_expand_name: Fix encoded length for indirect root
-
-Yang Tse (18 Dec 2010)
-- build: add some explicit file references to VS project files
-
-- config-win32: provide HAVE_ASSERT_H definition
-
-- build: include ares_nowarn in sample program VS project files
-
-- build: include ares_nowarn among SAMPLESOURCES and SAMPLEHEADERS
-
-- configure: temporarily disable detection of system's inet_ntop()
-
- This is done to allow compilation of ares_inet_ntop() by some daily
- builds picky compilers that otherwise do not need this function.
-
-- changes: mention last fix
-
-- ares_inet_ntop: remove definition and usage of macro SPRINTF
-
- Existing definition of SPRINTF always resulted in sprintf() being used,
- and sprintf() returning 'int' is already used throughout the library.
-
-- ares_inet_ntop: reapply changes from previous c-ares version (III)
-
- - Replace 'u_char' with 'unsigned char'.
- - Replace 'u_int' with 'unsigned int'.
- - use macros ERRNO and SET_ERRNO() for errno handling.
-
-- ares_inet_ntop: reapply changes from previous c-ares version (II)
-
- - Remove rcsid.
- - Adjust header file inclusions.
- - ares_inet_ntop used only on systems without a proper inet_ntop function.
-
-- ares_inet_ntop: reapply changes from previous c-ares version (I)
-
- - Replace tabs with spaces.
- - Use ANSI C style for function declarations and definitions.
- - Use sizeof with parentheses.
-
-- ares_inet_ntop: fix off by one error triggering out of bounds write
-
- ares_inet_ntop would trigger an out of bounds write when the representation
- of the address required 15 characters, due to not taking in account null
- termination character.
-
- Full import of inet_ntop.c from bind-9.5.3rc1 to pull additional fixes.
-
-- ares_nowarn: add conditional inclusion of assert.h header
-
-- fix compiler warning: conversion may lose significant bits
-
-- ares_inet_net_pton: fix non-rejection of some malformed literals
-
- ares_inet_net_pton would return wrong values when excessively large,
- and invalid, netmasks are used. Fixes are from bind-9.5.3rc1,
- issue also described in the WLB-2008080064 advisory.
-
-- setup_once: provide ISASCII macro
-
-- configure: inet_net_pton function check adjustments
-
- Define HAVE_INET_NET_PTON only when system's inet_net_pton function is IPv6
- capable and is not affected by the WLB-2008080064 advisory.
-
- HAVE_INET_NET_PTON_IPV6 is no longer defined nor used.
-
-- ares_init: fix detection of semicolon comments in resolv.conf
-
- File resolv.conf may either use a hash '#' or a semicolon ';' character as an
- indication that the rest of the line is a comment. This fixes not recognizing
- the semicolon as a valid comment indicator in resolv.conf.
-
-- version: start working on 1.7.5
-
-Version 1.7.4 (8 Dec 2010)
-
-Daniel Stenberg (8 Dec 2010)
-- release-preps: CHANGES and RELEASE-NOTES synced
-
-- ares_set_local_*: added in 1.7.4, not before
-
-Yang Tse (3 Dec 2010)
-- build: provide SIZEOF_SIZE_T definition for non-configure builds
-
-- build: config.dos renamed to config-dos.h
-
-- build: provide SIZEOF_SIZE_T netware definition
-
-- ares_gethostbyaddr: fix compiler warning: conversion may lose significant bits
-
-- configure: undo using autobuilds to temporarily verify strict aliasing warnings.
-
-- fix compiler warning: rounding, sign extension, or loss of accuracy may result
-
-Daniel Stenberg (2 Dec 2010)
-- [Ben Noordhuis brought this change]
-
- ares_parse_a_reply: fix CNAME response parsing
-
- Reply to a CNAME query doesn't contain addresses, causing
- ares_parse_a_reply() to bail out with ARES_ENODATA
-
- Bug: http://groups.google.com/group/nodejs/browse_thread/thread/a1268c9ea5e9ad9b
-
-Yang Tse (1 Dec 2010)
-- fix compiler warning: conversion may lose significant bits
-
-- atoi: remove atoi usage
-
-- ares_init: fix compiler warning: conversion may lose significant bits
-
-- configure: fix autoconf warning
-
-- inet_pton: fix compiler warning
-
-- configure: use autobuilds to temporarily verify strict aliasing warnings.
-
- Temporarily, When cross-compiling with gcc 3.0 or later, enable strict aliasing
- rules and warnings. Given that cross-compiled targets autobuilds do not run the
- test-suite, there is no risk of running code that violates strict aliasing rules
-
-- ares_getnameinfo: Partially revert commit 85520d66e0ac7ac73411bc25e98769a88b2f
-
- Upon socket address family and length validation failure return ARES_ENOTIMP
- in callback again, this is the error code documented in man page and used
- mostly all over the library.
-
-- ares_getnameinfo: Validate socket address family and length.
-
- Validate socket address family and that the socket address length is appropriate
- for the specified family. Failure is reported with ARES_EBADFAMILY in callback.
-
-- ares_getnameinfo: fix two compiler warnings
-
-- Added another VS10 version string
-
-- Fix GCC 4 compiler warning 'dereferencing type-punned pointer might break strict-aliasing rules'.
-
-- Revert commit 494274e653936335c255a47599970de3df21e7c4
-
-- configure: fix autoconf 2.68 warning: no AC_LANG_SOURCE call detected in body
-
-- Fix compiler warning: array subscript has type 'char'
-
-- Fix GCC 4 compiler warning 'dereferencing type-punned pointer might break strict-aliasing rules'.
-
-- Revert following commits:
- 07bc7ea79509bcc9ef6e09151e81766ed00d3392
- 3392a50ea3f8573ea4b7a9d82b9833dab60cb0e9
- 9912637d32c9987719a1ea12db591aee2941891c
-
- The purpose of the whole patch was to silence a compiler warning triggered
- with GCC 4 on file ares_process.c The specific compiler warning was
- 'dereferencing type-punned pointer might break strict-aliasing rules'.
-
- A simpler patch will follow to equally silence the warning.
-
-- ares_options: reorder header inclusions to make inclusion of
- ares_private.h the last included one again.
-
-Daniel Stenberg (12 Nov 2010)
-- [Patrik Thunstrom brought this change]
-
- adig: fix NAPTR parsing
-
- I ran across a small "issue" in your adig example.
-
- It is simply the last part of the NAPTR record, the replacement element,
- which is not a string, as currently handled in adig, but a domain name.
-
-- ares_save_options: assignments instead of memcpy
-
-- init_by_options: don't copy an empty sortlist
-
- If there aren't any sort items to copy, don't bother. Without this
- little precaution it would do a malloc(0) which causes undefined
- behaviors and is frowned upon by curl's memdebug-system.
-
-Guenter Knauf (3 Oct 2010)
-- Minor Watcom makefile tweaks.
-
-Daniel Stenberg (30 Sep 2010)
-- [Mike Crowe brought this change]
-
- Fix lookup with HOSTALIASES set.
-
- ares__read_line returns ARES_EOF when it reaches the end of the
- file. This will happen every time when reading to the end of the
- HOSTALIASES file. Unfortunately single_domain treats this error as
- being fatal.
-
- Signed-off-by: Mike Crowe <mac@mcrowe.com>
-
-Ben Greear (24 Aug 2010)
-- Add missing break that caused get_ares_servers to fail.
-
- Reported-by: Ning Dong <flintning@163.com>
- Signed-off-by: Ben Greear <greearb@candelatech.com>
-
-Yang Tse (11 Aug 2010)
-- configure: werror related adjustments
-
-Guenter Knauf (8 Aug 2010)
-- Added copyright string to ares_version.h and make use of it in other files.
-
-- Block created ares_build.h for NetWare to avoid usage from other platforms.
-
-- Fix to overwrite default libname.
-
-- Some more Watcom makefile massage ...
-
-- Some more Watcom makefile massage ...
-
-Ben Greear (4 Aug 2010)
-- sock-addr-storage: Detect and deal with lack of .ss_family member.
-
- AIX, at least, does not have sockaddr_storage.ss_family member.
- Detect this in the configure logic and use proper #ifdefs in the
- ares_process logic.
-
- Signed-off-by: Ben Greear <greearb@candelatech.com>
- Tested-by: Tor Arntsen <tor@spacetec.no>
-
-Guenter Knauf (3 Aug 2010)
-- Added Watcom makefile based on libcurl's Makefile.Watcom.
-
-Ben Greear (31 Jul 2010)
-- typo: Fix compile bug for platforms that don't have sockaddr_storage.
-
- Bug was introduced by me in previous commit.
-
- Signed-off-by: Ben Greear <greearb@candelatech.com>
-
-- Fix aliasing warning in gcc 4.4.4 (at least).
-
- Should be no functional change, though the code gets a bit
- ugglier.
-
- Signed-off-by: Ben Greear <greearb@candelatech.com>
-
-Daniel Stenberg (31 Jul 2010)
-- ares_set_servers_csv: use ISDIGIT
-
- The IS*() set of macros are preferred to the regular is*() functions as
- they help us avoid the most common pitfalls.
-
-Ben Greear (30 Jul 2010)
-- cast arg to isdigit to int
-
- Looks like it might silence a warning on Netware build.
-
- Signed-off-by: Ben Greear <greearb@candelatech.com>
-
-- remove all uses of uint32_t
-
- Previous fix forgot a few.
-
- Signed-off-by: Ben Greear <greearb@candelatech.com>
-
-- fix signed v/s unsigned casts warning in ares_gethostbyaddr.c
-
- Signed-off-by: Ben Greear <greearb@candelatech.com>
-
-- local-bind-fixup: Fix inet_pton warning.
-
- Conditionally include <arpa/inet.h> for inet_pton
- headers.
-
- Signed-off-by: Ben Greear <greearb@candelatech.com>
-
-- build: Enable compiling with -Werror.
-
- This helps find compile warnings because they simply break
- the build.
-
- To use:
- ./configure --enable-warnings --enable-werror
-
- Signed-off-by: Ben Greear <greearb@candelatech.com>
-
-- ipv6: Fix some build issues related to the local-bind feature.
-
- Signed-off-by: Ben Greear <greearb@candelatech.com>
-
-Guenter Knauf (29 Jul 2010)
-- Replaced uint32_t with unsigned int to fix broken builds on a couple of platforms.
-
-Daniel Stenberg (18 Jul 2010)
-- [Ben Greear brought this change]
-
- local-bind: Support binding to local interface/IPs
-
- Add 3 new functions to set the local binding for the out-going
- socket connection, and add ares_set_servers_csv() to set a
- list of servers at once as a comma-separated string.
-
- Signed-off-by: Ben Greear <greearb@candelatech.com>
-
-- version: now start on 1.7.4
-
-- [Andrew C. Morrow brought this change]
-
- fix memory leak in ares_getnameinfo
-
-Version 1.7.3 (11 Jun 2010)
-
-Daniel Stenberg (11 Jun 2010)
-- changelogs: updated for 1.7.3
-
-- [BogDan Vatra brought this change]
-
- init: allow c-ares to work on Android OS
-
-- changelog: fill in the 1.7.2 changes
-
-- added another pdf to ignore
-
-Yang Tse (11 Jun 2010)
-- add ares_parse_mx_reply.c to VS dsp file
-
-Daniel Stenberg (10 Jun 2010)
-- tarball: add $(CSOURCES) $(HHEADERS) to EXTRA_DIST
-
- It's not clear to me why we need this, but we apparently may
- otherwise not get all files bundled in the dist tarball.
-
-- version: start working on 1.7.3
-
-Version 1.7.2 (10 Jun 2010)
-
-Daniel Stenberg (10 Jun 2010)
-- RELEASE-NOTES: 1.7.2 details added
-
-- [Jakub Hrozek brought this change]
-
- ares_init: Last, not first instance of domain or search should win
-
-- style: make code less than 80 columns wide
-
-Yang Tse (31 May 2010)
-- [Tor Arntsen brought this change]
-
- improve alternative definition of bool to use enum instead of unsigned char
-
-- fix VS2010 compiler warnings
-
-Daniel Stenberg (18 Apr 2010)
-- [Jérémy Lal brought this change]
-
- added ares_parse_mx_reply
-
-- repair the file mode
-
-- remove all $Id$ lines
-
-- remove all .cvsignore files
-
-- spell fix
-
- reported by Gregor Jasny on the mailing list
-
-- [Peter Pentchev brought this change]
-
- Fix a couple of typos and grammar nits.
-
-- ignore the GPG signature files too
-
-- start the journey towards 1.7.2
-
-- no longer CVS tagging
-
-- ignore generated PDFs
-
-Version 1.7.1 (23 Mar 2010)
-
-Daniel Stenberg (23 Mar 2010)
-- 1.7.1
-
-- made README the primary readme file
-
- ... and did README.cares to contain a historic reason etc.
-
-- s/CVS/git
-
-- git now, not CVS
-
-- ignore lots of generated files
-
-- [Daniel Johnson brought this change]
-
- Fix warnings for clang
-
-Yang Tse (17 Mar 2010)
-- replaced intel compiler option -no-ansi-alias with -fno-strict-aliasing
-
-- update outdated serial number
-
-- fix compiler warning
-
-- watt32 compilation fix
-
-- Added another VS10 version string
-
-- fix line break
-
-- removed usage of 's6_addr', fixing compilation issue triggered with no
- longer using 'in6_addr' but only our 'ares_in6_addr' struct
-
-Daniel Stenberg (5 Mar 2010)
-- Daniel Johnson provided fixes for building with the clang compiler
-
-Yang Tse (5 Mar 2010)
-- Added IPv6 name servers support
-
-Gisle Vanem (5 Mar 2010)
-- Ops!. Readded ares_nowarn.h.
-
-- Added ares_nowarn.c.
-
-Yang Tse (28 Feb 2010)
-- Added SIZEOF_INT and SIZEOF_SHORT definitions for non-configure systems
-
-- Added ares_nowarn.* to VC6 project file
-
-- Added SIZEOF_INT definition
-
-- fix compiler warning
-
-- fix compiler warning
-
-- fix compiler warning
-
-Daniel Stenberg (17 Feb 2010)
-- ares_reinit()
-
- - To allow an app to force a re-read of /etc/resolv.conf etc, pretty much
- like the res_init() resolver function offers
-
-- - Tommie Gannert pointed out a silly bug in ares_process_fd() since it didn't
- check for broken connections like ares_process() did. Based on that, I
- merged the two functions into a single generic one with two front-ends.
-
-Yang Tse (30 Dec 2009)
-- VMS specific preprocessor symbol checking adjustments
-
-- Mention last changes
-
-- - Fix configure_socket() to use ares_socket_t instead of int data type.
-
-- - Where run-time error checks enabling compiler option /GZ was used it is now
- replaced with equivalent /RTCsu for Visual Studio 2003 and newer versions.
-
- - Compiler option /GX is now replaced with equivalent /EHsc for all versions.
-
-- - Ingmar Runge noticed that Windows config-win32.h configuration file
- did not include a definition for HAVE_CLOSESOCKET which resulted in
- function close() being inappropriately used to close sockets.
-
-Daniel Stenberg (30 Nov 2009)
-- start working on 1.7.1
-
-Version 1.7.0 (27 Nov 2009)
-
-Yang Tse (27 Nov 2009)
-- Preserve empty line following last target
-
-- - Larry Lansing fixed ares_parse_srv_reply to properly parse replies
- which might contain non-SRV answers, skipping over potential non-SRV
- ones such as CNAMEs.
-
-- When using icc, compile with -fpic and link with intel dynamic libraries.
-
-- Added 'currently' in italics to insist on transient situation.
-
-- Fix language
-
-- Daniel wants upcoming release to be 1.7.0
-
-- Mention last changes
-
-- - Removed from external interface preprocessor symbol definition for
- CARES_HAVE_ARES_FREE_DATA. Current functionality of ares_free_data()
- makes it unnecessary.
-
-- Added README.msvc
-
-- Changed c-ares naming conventions when using MSVC as described in README.msvc
-
-- - Mention other recent changes
-
-- - Jakub Hrozek renamed addrttl and addr6ttl structs to ares_addrttl and
- ares_addr6ttl in order to prevent name space pollution, along with
- necessary changes to code base and man pages.This change does not break
- ABI, there is no need to recompile existing applications. But existing
- applications using these structs with the old name will need source code
- adjustments when recompiled using c-ares 1.6.1.
-
-- - Jakub Hrozek fixed more function prototypes in man pages to sync them
- with the ones declared in ares.h
-
-- Make configure remove the ares_build.h file included in distribution tarballs.
-
-- Fix macro redefinition.
-
-- Fix name space pollution.
-
-- Allow using different extra import libraries for debug and release builds.
-
-- Add manifest stuff to msvc makefile
-
-- Sync man page with reality
-
-- Add missing external API decoration for ares_set_socket_callback()
-
-- Add ares_free_data() man page.
-
-- - Provide in external interface preprocessor symbol definitions for
- CARES_HAVE_ARES_FREE_DATA as an indication of function availability.
-
-- Remove typecast
-
-- Fix comment
-
-- Add ares_data.c and ares_data.h
-
-- Jakub Hrozek modified ares_parse_srv_reply() and ares_parse_txt_reply() API
- to return a linked lists of results. These were also modified to internally
- use the ares_data memory struct and as such its result must be free'ed with
- ares_free_data().
-
-- Initial support for the generic ares_free_data() function that will allow
- applications to free memory allocated and returned by some c-ares funtions.
-
-- Make usage of calloc()'s arguments consistent with rest of code base
-
-- workaround icc 9.1 optimizer issue
-
-- Add icc fvisibility bug test
-
-- Fix icc 9.0 compiler warning: external definition with no prior declaration
-
-- Fix three var names
-
-- Add check for assert.h header file
-
-- getaddrinfo is fully thread safe on solaris versions which
- implement the function even when h_errno is not a macro.
-
- The h_errno macro test now only done on systems for which there
- is no hard coded knowledge about getaddrinfo's thread safeness.
-
-- Remove files generated on previous buildconf/configure run
-
-- Remove enable-thread / disable-thread configure option. These were only placebo
- options. The library is always built as thread safe as possible on every system.
-
-- Refactor how preprocessor symbol _THREAD_SAFE definition is done.
-
-- Assume that getaddrinfo is thread safe, unless hard coded
- knowledge says the contrary or h_errno is not defined.
-
-- Related with the threadsafe capability of getaddrinfo:
-
- - Constantine Sapuntzakis reported that Darwin 6.0 a.k.a. MAC OS X 10.2
- and newer have a threadsafe getaddrinfo.
-
- - Fix Dragonfly BSD triplet detection.
-
- - In case the hard-coded knowledge says that getaddrinfo is threadsafe,
- an additional check is done to verify that h_errno is also defined.
- If h_errno isn't defined, we finally assume that it isn't threadsafe.
- Jamie Lokier provided the inspiration for this extra check.
-
-- AIX 5.2 and newer have threadsafe getaddrinfo.
-
- Add some comments to better understand what the regex's pretend to achieve.
-
-- HP-UX 11.11 and later have threadsafe getaddrinfo
-
-- Check if getaddrinfo is threadsafe when function check allows it to be used
-
-- Renamed fpGetNetworkParams and fpSystemFunction036 to avoid namespace pollution with static library
-
-- Add kernel32.lib
-
-- Mention last changes
-
-- Reinstate copyright symbol lost in previous commit
-
-- Make some strings different in resource file for debug or release builds
-
-- Ignore more subdirs
-
-- Fix compiler warning: conditional expression is constant
-
-- Sync linker and resource compiler options with Makefile.msvc
-
-- Follow Makefile.msvc subdirectory naming scheme, and sync compiler options
-
-- Updated MSVC makefile that allows building dynamic and static
- c-ares libraries in debug and release flavours.
-
- Additionally each of the three sample programs is built against
- each of the four possible c-ares libraries, generating all this
- a total number of 12 executables and 4 libraries.
-
-- Test for USE_WINSOCK since it is more restrictive than WIN32
-
-- Make header inclusion depend on HAVE_*_H definition
-
-- Remove unneeded preprocessor directives
-
-- Adjust c-ares include paths for memory tracking enabled (--enable-curldebug) builds
-
-- source files used by sample programs
-
-- Renamed c-ares setup.h to ares_setup.h
-
-- Adjust include paths to take in account that currently:
-
- c-ares with --enable-curldebug uses memdebug.h from libcurl's lib subdirectory.
-
- memdebug.h needs access to libcurl's setup.h from libcurl's lib subdirectory
- and also needs access to libcurl's generated curl_config.h
-
-- Undo old temporary change once used for testing purposes
-
-- Mention many changes
-
-- Mention --enable-symbol-hiding configure option
-
-- Symbol hiding configure options renamed to the hopefully less ambiguous
- --enable-symbol-hiding and --disable-symbol-hiding as well as related
- macro names and some internal variables used for them.
-
- Related configuration file preprocessor symbols named to
- CARES_SYMBOL_HIDING and CARES_SYMBOL_SCOPE_EXTERN.
-
-- Header inclusion depending on HAVE_* symbol.
- Fix two typos.
-
-- Comparison of the Initial revision of this file with ares_parse_a_reply.c
- shows that this one is actually a modified copy of ares_parse_a_reply.c.
-
- In order to comply with ares_parse_a_reply.c's M.I.T. license, the old
- 1998 M.I.T. copyright notice is now also preserved in this file the same
- as it is done in other ares_parse_*.c files.
-
-- Add CVS Id tag.
- Fix identation of some license lines.
-
-- Add CVS Id tag.
-
-- Fix comment
-
-- In no particular order, changed/fixed all of the following in
- ares_parse_txt_reply() current version:
-
- - Fixed a couple of potential double free's.
-
- - Fixed memory leaks upon out of memory condition.
-
- - Fixed pointer arithmetic.
-
- - Setting ntxtreply to zero upon entry for all failure cases.
-
- - Changed data type to size_t for variables substr_len, str_len and
- the length member of ares_txt_reply struct.
-
- - Avoided a couple of memcpy() calls.
-
- - Changed i data type to unsigned int to prevent compiler warnings.
-
- - Adjusted a comment.
-
- - Use ARES_SUCCESS literal for successfull completion.
-
- - Added CVS Id tag.
-
-- Add c-ares DLL resource file to distribution archive
-
-- ignore files
-
-- Empty subdir
-
-- Updated MSVC 6.0 workspace and project files that allows building
- dynamic and static c-ares libraries in debug and release flavours.
-
- Additionally each of the three sample programs is built against
- each of the four possible c-ares libraries, generating all this
- a total number of 12 executables and 4 libraries.
-
-Daniel Stenberg (29 Oct 2009)
-- no need to check for NULL pointers before dereferencing, as the pointers
- MUST be valid and they are dereferenced further down in the function
- unconditionally!
-
-- shorten the descriptions somewhat
-
-- update to the new struct name
-
-- Jakub Hrozek added ares_parse_txt_reply() for TXT parsing
-
-- use 'ares_srv_reply' for proper name-spacing
-
-Yang Tse (29 Oct 2009)
-- Add reference for ares_parse_srv_reply.pdf
-
-- Add reference for ares_parse_srv_reply docs
-
-- External API function linkage decoration adjustment
-
-- External API function linkage decoration adjustment
-
-- Initial step towards the ability to reduce c-ares exported symbols
- based on the 'visibility' attribute for GNUC and __global for Sun
- compilers, taking also in account __declspec function decoration
- for Win32 and Symbian DLL's.
-
- Introducing configure options --enable-hidden-symbols and
- --disable-hidden-symbols following libcurl's naming.
-
-- Fix comment
-
-- Fix spelling
-
-- Fix Pelles C Win32 target compilation issues
-
-- John Engelhart noticed an unreleased problem relative to a duplicate
- ARES_ECANCELLED error code value and missing error code description.
-
-- Fix compiler warning: local variable may be used without having been initialized
-
-- Use *_CHECK_PATH_SEPARATOR_REQUIRED to ensure that *_CHECK_PATH_SEPARATOR
- is only expanded and included once in the configure script.
-
-- Our _AS_PATH_SEPARATOR_PREPARE override is now m4_defun'd instead of m4_define'd
- due to autoconf 2.64 m4_require'ing it in _AS_SHELL_SANITIZE indirectly through
- _AS_PATH_WALK.
-
-- Fix compiler warning: argument is incompatible with corresponding format string conversion
-
-- Fix potential out-of-bounds read
-
-- Fix compiler warning: loop without body
-
-- Fix compiler warning
-
-- Fix compiler warning
-
-- Fix compiler warning
-
-- Fix compiler warning: addition result could be truncated before cast to bigger sized type
-
-- Overhauled ares__get_hostent()
-
- - Fixing out of bounds memory overwrite triggered with malformed /etc/hosts file.
- - Improving parsing of /etc/hosts file.
- - Validating requested address family.
- - Ensuring that failures always return a NULL pointer.
- - Adjusting header inclusions.
-
-- Fix ssize_t redefinition errors on WIN64 reported by Alexey Simak
-
-- more files to ignore
-
-- Check if _REENTRANT definition is required to
- make errno available as a preprocessor macro.
-
-- Attempt to silence bogus compiler warning: "Potential null pointer dereference"
-
-- ignore more files
-
-Gisle Vanem (7 Sep 2009)
-- Suppress warnings about unused prototypes in Watt32 and Win32 programs.
-
-- Update email address.
-
-- Update my email address. Add ares_config.h as dependency for 'make depend'.
-
-Yang Tse (6 Sep 2009)
-- T_SRV portability check
-
-Gunter Knauf (5 Sep 2009)
-- changed includes to match style how we do with all other *.c files.
-
-- changed u_int16_t to unsigned short because it is the only place within ares and curl where such a type would be used;
- also it broke many autobuilds. We should probably introduce an ares_port_t if we want to use a type here.
-
-Gisle Vanem (5 Sep 2009)
-- Replace 'uint16_t' with 'u_int16_t' since the latter is used in ares.h.
-
-- Added 'ares_parse_srv_reply.obj'. Added definition of 'u_int16_t'. This is I don't like; we should not depend on such non-universal types in a public header. But this is just a quick fix.
-
-Daniel Stenberg (4 Sep 2009)
-- - Jakub Hrozek added ares_parse_srv_reply() for SRV parsing
-
-Steinar H. Gunderson (27 Aug 2009)
-- Support lookup of IPv4 literals in ares_gethostbyname(), even when the address family is set to AF_INET6.
-
-Gisle Vanem (3 Aug 2009)
-- Remove call to LoadLibrary(). (leftover from debugging).
-
-- Fix bad sentence.
-
-Daniel Stenberg (3 Aug 2009)
-- - Timo Teras changed the reason code used in the resolve callback done when
- ares_cancel() is used, to be ARES_ECANCELLED instead of ARES_ETIMEOUT to
- better allow the callback to know what's happening.
-
-- - Joshua Kwan fixed the init routine to fill in the defaults for stuff that
- fails to get inited by other means. This fixes a case of when the c-ares
- init fails when internet access is fone.
-
-Gunter Knauf (16 Jul 2009)
-- test if adding ../lib to includes can fix the current break ...
-
-- renamed generated config.h to ares_config.h in order to avoid clashes when libcurl is used with other projects which also have a config.h.
-
-Yang Tse (21 Jun 2009)
-- Refactor how libraries are checked for connect() function, follow-up.
-
-- Refactor how libraries are checked for connect() function,
- and check for connect() as it is done for other functions.
-
-Gisle Vanem (20 Jun 2009)
-- Remove unneeded defines.
-
-- Use select_s() and not select().
-
-Yang Tse (19 Jun 2009)
-- sclose() function-like macro definition used to close a socket,
- now solely based on HAVE_CLOSESOCKET and HAVE_CLOSESOCKET_CAMEL
- config file preprocessor definitions.
-
-- add CloseSocket camel case function check
-
-- check for socket() and closesocket() as it is done for other functions
-
-- Remove HAVE_CONFIG_H definition from here,
- CFLAGS from common.dj already defines it.
-
-- initial step towards decoupling c-ares from libcurl for DOS
-
-- don't ignore these subdirs, they must be removed first
-
-- Remove DEBUGBUILD symbol definition, is not required for programs using the library.
-
-- DEBUGBUILD symbol definition for debug builds
-
-- ignore some subdirs
-
-- fix comment
-
-- Try to make more clear that --enable-curldebug has nothing to do with --enable-debug for this library.
-
-- Revert last change, it is inappropriate.
-
-Gisle Vanem (12 Jun 2009)
-- Replace CURLDEBUG with DEBUGBUILD.
-
-Yang Tse (11 Jun 2009)
-- when running automake copy missing files instead of symlinking them
-
-- Adjusted to take in account that...
-
- With the curl memory tracking feature decoupled from the debug build feature,
- CURLDEBUG and DEBUGBUILD preprocessor symbol definitions are used as follows:
-
- CURLDEBUG used for curl debug memory tracking specific code (--enable-curldebug)
-
- DEBUGBUILD used for debug enabled specific code (--enable-debug)
-
-- c-ares' --enable-debug --enable-curldebug decoupling follow-up
-
-- mention last changes
-
-- Remove buildconf.bat from release and daily snapshot archives.
-
- buildconf.bat is only for CVS tree builds.
-
-- Ensure that buildconf.bat does nothing unless it is used with a CVS checkout.
-
-- CVS-INFO file only present in CVS tree, never in release nor daily snapshot
- archives. Used as a sentinel file in buildconf.bat to differentiate CVS builds.
-
-Gisle Vanem (8 Jun 2009)
-- Update comment about "ML". Removed "-D_USE_32BIT_TIME_T" (not a requirement).
-
-Yang Tse (8 Jun 2009)
-- just comment it out
-
-- For debugging purposes...
-
- Disable the '-export-symbols-regex' to discard this as the origin
- of link failures related with shared libraries and non-GNU linkers.
-
-- c-ares Makefile.am back to using $(top_builddir) for *_LDADD
-
-- c-ares' -no-undefined and --enable-curldebug adjustments
-
-- Use relative path to built c-ares tree libtool library
-
-- John E. Malmberg noticed that the configure script was failing to detect the
- timeval struct on VMS when building with _XOPEN_SOURCE_EXTENDED undefined due
- to definition taking place in socket.h instead of time.h
-
-- Fix compiler warning: out of bound access
-
-- fix compilation on AIX
-
-- c-ares' --enable-curldebug adjustments
-
-- Remove temporarily introduced memory leak.
-
-- Temporarily introduce a memory leak to verify curl debug memory tracking works.
-
-- Allow curl debug memory tracking when building a shared library on
- systems which support external, undefined, symbols in shared libraries.
-
-Daniel Stenberg (26 May 2009)
-- language fix
-
-Yang Tse (26 May 2009)
-- Make ares_init(), ares_dup() and ares_init_options() return ARES_ENOTINITIALIZED
- if library initialization has not been performed calling ares_library_init().
-
-- c-ares's --enable-curldebug configure option decoupled from c-ares's --enable-debug
-
-- Prevent copying 'sourced' manpages for build targets that don't use them.
-
-Daniel Stenberg (23 May 2009)
-- minor edits
-
-Yang Tse (21 May 2009)
-- Include .pdf versions of c-ares man pages in distribution tarball.
-
-- Allow generation of .html and .pdf versions of c-ares man pages.
-
-Gisle Vanem (21 May 2009)
-- $(OBJ_DIR)/ares_getopt.o must be cleaned explicitly.
-
-Yang Tse (20 May 2009)
-- Mention last changes
-
-- Initial ares_library_cleanup(3) man page
-
-- Update man page
-
-- Update man page
-
-- Initial ares_library_init(3) man page attempt
-
-- Force revision update, to force CVS to update the $Id date string format
-
-- Add same copyright notice as other c-ares files
-
-- Fix case
-
-- Remove run-time requirement for advapi32.dll since
- c-ares can work even with no advapi32.dll at all.
-
-- Intentionally avoid checking if the address of SystemFunction036, a.k.a.
- RtlGenRandom, has been located or not. This function is only available on
- WinXP and later. When unavailable c-ares uses portable rand() function.
-
-- - Provide in external interface preprocessor symbol definitions for
- CARES_HAVE_ARES_LIBRARY_INIT and CARES_HAVE_ARES_LIBRARY_CLEANUP
- to ease the use of new capabilities.
-
- - Move ares_version() prototype to ares.h
-
-- Introduction of ares_library_init() and ares_library_cleanup()
-
-- Introduction of ares_library_init() and ares_library_cleanup()
-
-- remove outdated comment
-
-- Fix preprocessor conditional expression
-
-- fiX *__SOCKLEN_T definitions for remaining targets
-
-- *__SOCKLEN_T definitions for OS400 already fixed
-
-- fIX *__SOCKLEN_T definitions for SYMBIAN32 and VMS targets
-
-Daniel Stenberg (11 May 2009)
-- - Gregor Jasny made c-ares link with libtool 's -export-symbols-regex option to
- only expose functions starting with ares_.
-
-Yang Tse (11 May 2009)
-- Remove experimental check. Currently there's no need for it.
-
-- Fix an m4 overquoting triggering a spurious 'AS_TR_CPP' symbol definition
- attempt in generated config.h
-
-- Proper naming for the experimental compiler test and moved to *-compilers.m4
-
-- Moved *_CHECK_COMPILER_HALT_ON_ERROR and *_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE to *-compilers.m4 along with other *_CHECK_COMPILER_*
-
-- fIX *__SOCKLEN_T definitions for OS400 and generic GCC targets
-
-- fIX *__SOCKLEN_T definitions for MVS and 370 targets
-
-- fIX *__SOCKLEN_T definitions for several Windows target tool-chains
-
-- HP-UX's X/Open network library requirement check follow-up
-
-- HP-UX's X/Open network library requirement check follow-up
-
-- Use build-time configured ares_socklen_t instead of socklen_t
-
-- David McCreedy's "TPF-platform specific changes to various files" patch follow-up
-
-Daniel Stenberg (1 May 2009)
-- s/libcurl/c-ares
-
-- version number typo fix
-
-Yang Tse (1 May 2009)
-- David McCreedy's "TPF-platform specific changes to various files" patch
+Version 1.10.0 (12 May 2013)
+
+Daniel Stenberg (12 May 2013)
+- RELEASE-NOTES: two more bug fixes
+
+- [Keith Shaw brought this change]
+
+ ares_set_servers_csv: fixed IPv6 address parsing
+
+ Fixed bug that caused the last part of an IPv6 address to be parsed as
+ the port number when the last part is all numeric.
+
+- nroff: fix two syntax mistakes
+
+ ares_parse_a_reply and ares_parse_aaaa_reply both had two \fB instead of
+ \fP
+
+ Reported-by: Alexander Klauer
+ Bug: http://c-ares.haxx.se/mail/c-ares-archive-2013-03/0010.shtml
+
+- [Alex Loukissas brought this change]
+
+ build: fix build on msvc11
+
+- Makefile.am: increment -version-info for 1.10.0 release
+
+- README: remove unnecessary comment
+
+- ares_version.h: copyright end range year is now 2013
+
+- RELEASE-NOTES: synced with fb0737f3a0a1c37
+
+- [Paul Saab brought this change]
+
+ ares_parse_aaaa_reply: Plug memory leak
+
+ This change is similar to ares_parse_a_reply.c in commit
+ bffd67f16a8f42fe6dbf79ab2e39d92eea05c8a6
+
+- [Patrick Valsecchi brought this change]
+
+ ares_parse_txt_reply: return a ares_txt_reply node for each sub-string
+
+ Previously, the function would wrongly return all substrings merged into
+ one.
+
+- [Alexander Klauer brought this change]
+
+ library init: documentation update
+
+ This commit updates the documentation of ares_library_init() and
+ ares_library_cleanup() with regard to the newly introduced reference
+ counting of initializations and deinitializations.
+
+- [Alexander Klauer brought this change]
+
+ library init: be recursive
+
+ Previously, a single call to ares_library_cleanup() would deinitialise
+ the c-ares library, regardless of how many times ares_library_init() was
+ called. This behaviour may cause problems in programs linking two or
+ more libraries which, in turn, use c-ares. The present commit fixes this
+ problem, deinitializing the library only after a number of calls to
+ ares_library_cleanup() matching the number of calls to
+ ares_library_init().
+
+- [Patrick Valsecchi brought this change]
+
+ protocol parsing: check input data stricter
+
+ ... so that bad length fields aren't blindly accepted
+
+ Bug: http://c-ares.haxx.se/mail/c-ares-archive-2013-04/0016.shtml
+
+Guenter Knauf (11 Apr 2013)
+- Create ares_build.h when buidling from Git.
+
+- Added -DCARES_STATICLIB to CFLAGS.
+
+ Currently this static makefile does only support building the
+ static library libcares.a.
+
+Daniel Stenberg (8 Apr 2013)
+- [Alexander Klauer brought this change]
+
+ .gitignore: ignore patch files
+
+ This commit adds a line to .gitignore to the effect that patch files
+ generated by 'git format-patch' are excluded from the repository.
+
+- [Alexander Klauer brought this change]
+
+ ares_destroy() documentation: no new requests
+
+ Clarify that no new requests may be added to a resolver channel that is
+ currently being destroyed.
+
+- [Alexander Klauer brought this change]
+
+ Documentation: properly document ARES_ECANCELLED
+
+ This commit clarifies the behaviour of ares_cancel() with respect to
+ callbacks and adds missing documentation of ARES_ECANCELLED to the man
+ pages of the affected functions.
+
+- [Alexander Klauer brought this change]
+
+ ares_cancel(): cancel requests safely
+
+ An invocation of ares_cancel() walks through the request list, calling
+ the callbacks of all pending requests on a channel. Previously, if such
+ a callback added a new request to the channel, the request list might
+ not end up empty, causing an abort by assertion failure. The present
+ commit ensures that precisely all requests present upon entry of
+ ares_cancel() are cancelled, and that adding new requests through
+ callbacks is safe.
+
+Yang Tse (10 Mar 2013)
+- ares.h: stricter CARES_EXTERN linkage decorations logic
+
+ No API change involved.
+
+- ares_build.h.dist: enhance non-configure GCC ABI detection logic
+
+ GCC specific adjustments:
+
+ - check __ILP32__ before 32 and 64bit processor architectures in
+ order to detect ILP32 programming model on 64 bit processors
+ which, of course, also support LP64 programming model, when using
+ gcc 4.7 or newer.
+
+ - keep 32bit processor architecture checks in order to support gcc
+ versions older than 4.7 which don't define __ILP32__
+
+ - check __LP64__ for gcc 3.3 and newer, while keeping 64bit processor
+ architecture checks for older versions which don't define __LP64__
+
+Daniel Stenberg (9 Mar 2013)
+- ares.h: there is no ares_free_soa function
+
+Yang Tse (9 Mar 2013)
+- Makefile.am: empty AM_LDFLAGS definition for automake 1.7 compatibility
+
+- ares_inet_ntop.3: s/socklen_t/ares_socklen_t
+
+- configure: use XC_LIBTOOL for portability across libtool versions
+
+- xc-lt-iface.m4: provide XC_LIBTOOL macro
+
+- Makefile.am: use AM_CPPFLAGS instead of INCLUDES
+
+- inet_ntop.c: s/socklen_t/ares_socklen_t
+
+- inet_ntop.c: s/socklen_t/ares_socklen_t for portability
+
+Daniel Stenberg (19 Feb 2013)
+- ares.h: s/socklen_t/ares_socklen_t for portability
+
+- ares_inet_ntop.3: 4th argument is socklen_t!
+
+- spell inet correctly!
+
+- ares_inet_pton/ntop: cleanup
+
+ Make sure that the symbols are always exported and present in c-ares.
+
+ Make the headers prefixed with 'ares'.
+
+ Removed the inet_ntop.h version as it no longer features any content.
+
+- ares_inet_ntop/ares_inet_pton: added man pages
+
+Yang Tse (15 Feb 2013)
+- [Gisle Vanem brought this change]
+
+ curl_setup_once.h: definition of HAVE_CLOSE_S defines sclose() to close_s()
+
+- [Gisle Vanem brought this change]
+
+ config-dos.h: define HAVE_CLOSE_S for MSDOS/Watt-32
+
+- [Gisle Vanem brought this change]
+
+ config-dos.h: define strerror() to strerror_s_() for High-C
+
+Daniel Stenberg (13 Feb 2013)
+- ares_get_datatype: removed unused function
+
+ it was also wrongly named as internal functions require two underscores
+
+- ares__bitncmp: use two underscores for private functions
+
+ It used a single one previously making it look like a public one
+
+- ares__generate_new_id: moved to ares_query.c
+
+ ... and ares__rc4 is turned into a local static function.
+
+- ares__swap_lists: make private and static
+
+ ... since there's only one user, make it static within ares_process.c
+
+Yang Tse (13 Feb 2013)
+- Makefile.msvc: add four VS version strings
+
+Daniel Stenberg (13 Feb 2013)
+- ares_expand_name.3: clarify how to free the data
+
+Yang Tse (30 Jan 2013)
+- zz40-xc-ovr.m4: fix 'wc' detection - follow-up 2
+
+ - Fix a pair of single quotes to double quotes.
+
+ URL: http://curl.haxx.se/mail/lib-2013-01/0355.html
+ Reported by: Tor Arntsen
+
+- zz40-xc-ovr.m4: fix 'wc' detection - follow-up
+
+ - Take into account that 'wc' may return leading spaces and/or tabs.
+
+ - Set initial IFS to space, tab and newline.
+
+- zz40-xc-ovr.m4: fix 'wc' detection
+
+ - Take into account that 'wc' may return leading spaces.
+
+ - Set internationalization behavior variables.
+
+ Tor Arntsen analyzed and reported the issue.
+
+ URL: http://curl.haxx.se/mail/lib-2013-01/0351.html
+
+- zz40-xc-ovr.m4: check another three basic utilities
+
+- zz40-xc-ovr.m4: 1.0 interface stabilization
+
+ - Stabilization results in 4 public interface m4 macros:
+ XC_CONFIGURE_PREAMBLE
+ XC_CONFIGURE_PREAMBLE_VER_MAJOR
+ XC_CONFIGURE_PREAMBLE_VER_MINOR
+ XC_CHECK_PATH_SEPARATOR
+ - Avoid one level of internal indirection
+ - Update comments
+ - Drop XC_OVR_ZZ40 macro
+
+- zz40-xc-ovr.m4: emit witness message in configure BODY
+
+ This avoids witness message in output when running configure --help,
+ while sending the message to config.log for other configure runs.
+
+- zz40-xc-ovr.m4: truly do version conditional overriding
+
+ - version conditional overriding
+ - catch unexpanded XC macros
+ - fix double words in comments
+
+- zz40-xc-ovr.m4: fix variable assignment of subshell output bashism
+
+ Tor Arntsen analyzed and reported the issue.
+
+ URL: http://curl.haxx.se/mail/lib-2013-01/0306.html
+
+- zz40-xc-ovr.m4: reinstate strict AC_REQUIRE macro dependencies
+
+- zz40-xc-ovr.m4: avoid double single-quote usage
+
+- zz40-xc-ovr.m4: parentheses balancing of 'case' statements
+
+ m4 quadrigraph shell comment technique allows proper autoconf
+ parentheses balancing in shell 'case' statements. The presence
+ of unbalanced parentheses may otherwise trigger expansion bugs.
+
+- zz40-xc-ovr.m4: internals overhauling
+
+ - Update comments
+ - Execute commands in subshells
+ - Faster path separator check
+ - Fix missing 'test' command
+ - Rename private macros
+ - Minimize AC_REQUIRE usage
+
+- zz40-xc-ovr.m4: redirect errors and warnings to stderr
+
+- configure: use XC_CONFIGURE_PREAMBLE early checks
+
+ Some basic checks we make were placed early enough in generated
+ configure script when using autoconf 2.5X versions. Newer autoconf
+ versions expand these checks much further into the configure script,
+ rendering them useless. Using XC_CONFIGURE_PREAMBLE fixes placement
+ of early intended checks across all our autoconf supported versions.
+
+- zz40-xc-ovr.m4: provide XC_CONFIGURE_PREAMBLE macro
+
+- configure: autotools compatibility fixes - step I
+
+ Fix proper macro expansion order across autotools versions for
+ C compiler and preprocessor program checks.
+
+- configure: fix automake 1.13 compatibility
+
+ Tested with:
+
+ buildconf: autoconf version 2.69
+ buildconf: autom4te version 2.69
+ buildconf: autoheader version 2.69
+ buildconf: automake version 1.13.1
+ buildconf: aclocal version 1.13.1
+ buildconf: libtool version 2.4
+ buildconf: GNU m4 version 1.4.16
+
+- ares_private.h: use again memdebug.h instead of curl_memdebug.h
+
+- configure.ac: replace AM_CONFIG_HEADER with AC_CONFIG_HEADERS
+
+ automake 1.13 errors if AM_CONFIG_HEADER is used in configure script.
+
+- cares-override.m4: provide AC_CONFIG_MACRO_DIR definition conditionally
+
+ Provide a 'traceable' AC_CONFIG_MACRO_DIR definition only when using
+ an autoconf version that does not provide it, instead of what we were
+ doing up to now of providing and overriding AC_CONFIG_MACRO_DIR for
+ all autoconf versions.
+
+- ares_private.h: use curl_memdebug.h instead of memdebug.h
+
+- vc6cares.dsp: add ares_create_query.c and ares_parse_soa_reply.c
+
+- cares-functions.m4: improve gethostname arg 2 data type check
+
+- setup_once.h: HP-UX specific 'bool', 'false' and 'true' definitions.
+
+ Also reverts commit bceb40095a
+
+- configure: check if compiler halts on function prototype mismatch
+
+- cares-functions.m4: add gethostname arg 2 data type check and definition
+
+- cares-functions.m4: update thread-safeness detection of getaddrinfo()
+
+ Take in account that POSIX standard Issue 7 drops h_errno support. Now, we also
+ consider getaddrinfo() to be thread-safe when (_POSIX_C_SOURCE >= 200809L) or
+ (_XOPEN_SOURCE >= 700) independently of whether h_errno exists or not.
+
+ Take in account that h_errno might be a modifiable lvalue not defined as
+ a C preprocessor macro.
+
+- setup_once.h: HP-UX <sys/socket.h> issue workaround
+
+ Issue: When building a 32bit target with large file support HP-UX
+ <sys/socket.h> header file may simultaneously provide two different
+ sets of declarations for sendfile and sendpath functions, one with
+ static and another with external linkage. Given that we do not use
+ mentioned functions we really don't care which linkage is the
+ appropriate one, but on the other hand, the double declaration emmits
+ warnings when using the HP-UX compiler and errors when using modern
+ gcc versions resulting in fatal compilation errors.
+
+ Mentioned issue is now fixed as long as we don't use sendfile nor
+ sendpath functions.
+
+- setup_once.h: refactor inclusion of <unistd.h> and <sys/socket.h>
+
+ Inclusion of these two header files now done in setup_once.h
+
+- Header inclusion clean-up
+
+ Remove header inclusions already done in setup_once.h
+
+- setup_once.h: HP-UX specific TRUE and FALSE definitions
+
+ Some HP-UX system headers require TRUE defined to 1 and FALSE to 0.
+
+- ares_timeout.c: fix compiler warning
+
+- ares_create_query.c: IRIX compilation fix
+
+- c-ares/nameser.h: add some T_* defines for ns_t_* values
+
+Daniel Stenberg (7 Nov 2012)
+- Revert "ares_parse_aaaa_reply: fix memory leak"
+
+ This reverts commit 50f25d8a4b2d16f4c5e0ef620238688b7a315c7a.
+
+- ares_parse_aaaa_reply: fix memory leak
+
+ an allocated buffer was not freed in the successful case.
+
+- [Gisle Vanem brought this change]
+
+ adig: perror() doesn't work for socket errors on windows
+
+ ... so print the SOCKERRNO instead
+
+- get_DNS_AdaptersAddresses: fix IPv6 parsing
+
+ Use of the wrong define made the function not parse IPv6 addresses
+ properly.
+
+ Bug: http://c-ares.haxx.se/mail/c-ares-archive-2012-06/0028.shtml
+ Reported by: Saúl Ibarra Corretgé
+
+- version: bumped to 1.10.0
+
+ Due to the newly added function: ares_create_query()
+
+- AUTHORS: synced with 83093ac450
+
+ Added 21 authors since this document was last updated
+
+- ares_create_query.3: mention when this is added
+
+- [hpopescu@ixiacom.com brought this change]
+
+ Added new feature (rfc2671)
+
+- code police: fix indents, < 80 columns, reflowed comments
+
+Guenter Knauf (11 Jul 2012)
+- Cleaned up version awk script.
+
+Daniel Stenberg (30 Jun 2012)
+- [Gisle Vanem brought this change]
+
+ read_udp_packets: bail out loop on bad sockets
+
+ I can see that recvfrom() in ares_process.c many times is called with
+ 'udp_socket' == ARES_SOCKET_BAD. The code takes care not to call
+ recv/recvfrom with ARES_SOCKET_BAD in the outer-loop. So should the
+ inner-loop.
+
+Yang Tse (29 Jun 2012)
+- cares-compilers.m4: remove -Wstrict-aliasing=3 from clang
+
+ Currently it is unknown if there is any version of clang that
+ actually supports -Wstrict-aliasing. What is known is that there
+ are several that don't support it.
+
+- cares-compilers.m4: -Wstrict-aliasing=3 for warning enabled gcc and clang builds
+
+Daniel Stenberg (18 Jun 2012)
+- version: work towards 1.9.2 (at least)
+
+Version 1.9.1 (18 Jun 2012)
+
+Daniel Stenberg (18 Jun 2012)
+- RELEASE-NOTES: 1.9.1 coming up
+
+Version 1.9.0 (16 Jun 2012)
+
+Daniel Stenberg (16 Jun 2012)
+- ares_version.h: next version is 1.9.0
+
+- [Marko Kreen brought this change]
+
+ ares_data.h: ARES_DATATYPE_SOA_REPLY is added in 1.9.0
+
+- RELEASE-NOTES: synced with 979bf951d
+
+ Next release deemed to become 1.9.0 due to the new function
+
+- [Marko Kreen brought this change]
+
+ SOA parser added
+
+ I need to do SOA queries, so here is a parser for them.
+
+ - ares_soa_reply: new struct
+ - ares_malloc_data/ares_free_soa: ARES_DATATYPE_SOA_REPLY
+ - ares_parse_soa_reply: actual function
+
+Yang Tse (14 Jun 2012)
+- Kill compiler warning
+
+- Fix libcares.pc generation for static MingW* cross builds
+
+Daniel Stenberg (21 May 2012)
+- [Nick Alcock brought this change]
+
+ Fix UDP and TCP port byte order in saved options.
+
+ The UDP and TCP port are stored in network byte order in the
+ ares_channeldata, but are passed in to ares_init_options() in host byte
+ order. Thus we must return them from ares_save_options() in host byte
+ order too, or a duplicated channel will convert them again, leading to a
+ nonfunctional channel and a mysterious connection refused error from
+ ares_gethostbyname(). This breaks ares_dup(), thus the curl easy API
+ when c-ares is used by curl, and thus all the curl easy API's users.
+
+Yang Tse (28 Apr 2012)
+- version: start working on 1.8.1-DEV
+
+Version 1.8.0 (27 Apr 2012)
+
+Daniel Stenberg (27 Apr 2012)
+- RELEASE-NOTES: call next 1.8 instead
+
+ Since we added a function, let's use a stricter bumping scheme
+
+Yang Tse (25 Apr 2012)
+- INSTALL: some adjustments
+
+Daniel Stenberg (25 Apr 2012)
+- GIT-INFO: mention buildconf
+
+Yang Tse (25 Apr 2012)
+- INSTALL: remove more sections that don't apply to c-ares
+
+- ares_timeout.c: fix compiler warning
+
+Daniel Stenberg (25 Apr 2012)
+- [Ben Noordhuis brought this change]
+
+ Makefile.m32: fix mingw32 build
+
+ * add . to include path so ares_build.h is picked up
+ * make ar configurable to ease cross-compiling
+
+- RELEASE-NOTES: added what's happened since 1.7.5
+
+Guenter Knauf (22 Apr 2012)
+- Updated copyright year.
+
+Yang Tse (21 Apr 2012)
+- ares_init.c: Further refactoring of Windows system's DNS fetching code
+
+Guenter Knauf (20 Apr 2012)
+- Android: small changes to dns property part.
+
+ Prefix prop vars; kill var; use DNS_PROP_NAME_PREFIX macro.
+
+- Handle CNAME-only in ares_parse_aaaa_reply().
+
+ posted to the c-ares list by Peter Griess <pg@std.in>.
+
+- Add support for multiple DNS servers on Android.
+
+ Before, c-ares always used the first DNS server on Android, causing
+ network problems if this DNS server was not available.
+
+ Signed-off-by: Geert Uytterhoeven <Geert.Uytterhoeven@sonycom.com>
+
+- Added INSTALL so it gets into tarballs.
+
+- Added some more ifdefs to silent compiler warnings.
+
+Yang Tse (17 Apr 2012)
+- INSTALL: remove a non c-ares section
+
+- cares-compilers.m4: -Wno-pedantic-ms-format for Windows gcc 4.5 builds
+
+ When building a Windows target with gcc 4.5 or newer and strict compiler
+ warnings enabled use -Wno-pedantic-ms-format in addition to other flags.
+
+- setup_once.h: tighten requirements for stdbool.h header inclusion
+
+ Include stdbool.h only when it is available and configure is capable of
+ detecting a proper 'bool' data type when the header is included.
+
+- configure: NATIVE_WINDOWS no longer defined in config file
+
+- cares-compilers.m4: double underscore decoration for visibility attribute
+
+- build adjustments: CARES_SYMBOL_HIDING no longer defined in config files
+
+ configure script now provides conditional definitions for Makefile.am
+ that result in CARES_SYMBOL_HIDING being defined by resulting makefiles
+ when appropriate.
+
+- configure: Windows cross-compilation fixes
+
+ CARES_BUILDING_LIBRARY and CARES_STATICLIB no longer defined in ares_config.h,
+ configure will generate appropriate conditionals so that mentioned symbols
+ get defined and used in Makefile derived from Makefile.am at compilation time.
+
+Guenter Knauf (17 Apr 2012)
+- Added INSTALL file adapted from libcurl.
+
+ Not yet ready, and needs further edits.
+
+Yang Tse (16 Apr 2012)
+- ares_init.c: get_iphlpapi_dns_info() refactoring
+
+Guenter Knauf (16 Apr 2012)
+- Kill some more compiler warnings.
+
+- Kill compiler warning about unused var.
+
+- Fixed my last commit: wrong preprocessor directive.
+
+- Check for __ANDROID__ in addition to ANDROID macro.
+
+- Check for __ANDROID__ in addition to ANDROID macro.
+
+ Posted to c-ares list by Wayne.
+
+- Fix for Android to disable useless arpa/nameser.h.
+
+- Fix for Android to include sys/select.h for fd_set.
+
+Yang Tse (17 Mar 2012)
+- ares_data.c: some NAPTR related fixes
+
+Daniel Stenberg (16 Mar 2012)
+- port numbers: convert them to network order!
+
+ When the config options ARES_OPT_UDP_PORT or ARES_OPT_TCP_PORT are used,
+ make sure to convert them to network byte order!
+
+ Bug: http://c-ares.haxx.se/mail/c-ares-archive-2012-02/0004.shtml
+
+- white space cleanup
+
+ - Keep code within 80 columns
+
+ - Removed funny spaces after open paren and before closing paren
+
+- [Poul Thomas Lomholt brought this change]
+
+ get_iphlpapi_dns_info: fix buffer overrun
+
+ I experienced a buffer overrun exception in c-ares on Windows and
+ tracked it down to be an error in the calculation of the 'left' variable
+ in get_iphlpapi_dns_info().
+
+ I changed the variable type of 'left' to a _signed_ type because of the
+ subtraction arithmetic; not sure if a long is the best choice
+
+- Merge pull request #7 from saghul/naptr
+
+ Added support for parsing NAPTR records
+
+saghul (23 Feb 2012)
+- Added support for parsing NAPTR records
+
+Yang Tse (19 Jan 2012)
+- ares_init.c: fix compiler warning on winsock builds
+
+- configure: libtool 1.5 tweaks
+
+Daniel Stenberg (19 Dec 2011)
+- ares_timeout.3: fix the NAME section
+
+ It was clearly a copy n' paste error
+
+Yang Tse (27 Sep 2011)
+- [Albert Chin brought this change]
+
+ configure - m4: make CURL_CHECK_DEF ignore leading whitespace on symbol def
+
+ When using Sun C compiler the preprocessor somehow inserts an extra space
+ in front of replaced symbol, breaking CURL_CHECK_DEF macro. To workaround
+ this, macro CURL_CHECK_DEF now ignores all leading whitespace in front of
+ symbol substitution result.
+
+- ares_init.c: fix segfault triggered in ares_init_options() upon previous
+ failure of init_by_defaults() and incomplete cleanup there.
+
+- ares_process.c: fix compiler warning
+
+- fix MSVC compiler warning 'conditional expression is constant'
+
+- setup_once.h cleanup and sync
+
+- [Denis Bilenko brought this change]
+
+ ares_getnameinfo: fix random results with c-ares 1.7.5
+
+ In ares_getnameinfo memcpy did not copy enough bytes, causing
+ it to return arbitrary memory contents as a result.
+
+- warnings: fix another 'conversion may lose significant bits' compiler warning
+
+- ares_dns.h: adjust DNS__16BIT and DNS__32BIT macro definitions
+
+ Fixing compiler warnings existing definitions triggered on these.
+
+- ares_destroy.c: fix segfault in ares_destroy_options()
+
+Daniel Stenberg (21 Aug 2011)
+- ares_parse_srv_reply: silence compiler warnings
+
+ ... by adding ugly typecasts.
+
+- CHANGES: generate from script
+
+ The CHANGES file is now generated automatically with 'git2changes.pl',
+ invoked by the maketgz script which is used to build release archives.
+
+ The former human edited CHANGES file was renamed to CHANGES.0 in git.
+
+Yang Tse (21 Aug 2011)
+- Makefile.netware: SIZEOF_SHORT definition
+
+- warnings: fix some 'conversion may lose significant bits' compiler warnings
+
+- configure: fix symbol hiding usability check
+
+ A more thorough test is done now in order to determine visibility attribute
+ usability, given that some compilers don't support visibility attribute on
+ all configurations.
+
+Daniel Stenberg (16 Aug 2011)
+- 1.7.6: start working...
+
+Version 1.7.5 (16 Aug 2011)
+
+Daniel Stenberg (16 Aug 2011)
+- CHANGES: synced for 1.7.5 release
+
+- RELEASE-NOTES: synced with bb4096effef7f000
+
+Jakub Hrozek (15 Aug 2011)
+- Only fall back to AF_INET searches when looking for AF_UNSPEC addresses
+
+Yang Tse (10 Aug 2011)
+- [Gisle Vanem brought this change]
+
+ ares_iphlpapi.h: Watcom C fix
+
+ Added "!defined(_WS2DEF_)" since Watcom doesn't have
+ a per type guard for the typedefs 'CSADDR_INFO' (that MingW has) or
+ 'SOCKET_ADDRESS' (that MSVC has). But we can use the header-guard for
+ <ws2def.h> instead.
+
+- [Gisle Vanem brought this change]
+
+ Makefile.Watcom:
+ * The 'NTDDI_VERSION' needs to be raised to 0x05010000
+ in order for SOCKADDR_STORAGE etc. to be typedefed.
+ * Replaced '-dUSE_WATT32' with '-dWATT32'.
+ * Added $(DEMOS) to the 'all' target and removed the 'demos'
+ target to be consistent with e.g. Makefile.msvc etc.
+ * 'ENABLE_IPV6' is no longer used. Hence removed the '%use_ipv6' construct.
+ * object-file order seems to be important (Watcom v.19). Hence
+ 'ares_getopt.obj' must be put after the .obj that references getopt().
+
+- cares-compilers.m4: CARES_CONVERT_INCLUDE_TO_ISYSTEM adjustments
+
+ Add CARES_CHECK_COMPILER as a requirement.
+
+ Ensure macro does nothing unless GNU_C or CLANG compiler is used.
+
+ This should allow usage of this macro in unforeseen placements.
+
+- config-win32.h: comments adjustments - followup
+
+- config-win32.h: comments adjustments
+
+Daniel Stenberg (5 Aug 2011)
+- [Tom Hughes brought this change]
+
+ ares_parse_a_reply: fix memleak
+
+Yang Tse (29 Jul 2011)
+- cares-functions.m4 serial # bump
+
+- Revert "configure: additional flag checks for fcntl() and socket()"
+
+ This reverts commit 5f2a3b0e48f26d24cb1fefea0dccb92d417dcbf7.
+
+- configure: additional flag checks for fcntl() and socket()
+
+- xc-translit.m4 fix quoting
+
+- configure: avoid direct usage of AS_TR_* macros
+
+- xc-translit.m4 provides transliteration macros with well defined behavior.
+
+Jakub Hrozek (15 Jun 2011)
+- Revert "Only fall back to AF_INET searches when looking for AF_UNSPEC addresses"
+
+ This reverts commit b5823d65706af687c0e5110af8f0cfdcd068997d.
+
+ This patch was not reviewed properly before pushing
+
+- Revert "Do not use sized constants in public headers"
+
+ This reverts commit 22c01e96f7b2ae9923e1baa50bfe3c0d22297a7d.
+
+ This is a Red Hat specific patch that does not belong into upstream
+
+- Use correct sizeof in ares_getnameinfo()
+
+- Do not leak rr_name on failures inside ares_parse_ptr_reply
+
+- Do not leak rr_name on failures inside ares_parse_a_reply
+
+- Do not leak rr_name on failures inside ares_parse_aaaa_reply
+
+- Do not leak rr_name on failures inside ares_parse_ns_reply
+
+- Fix incorrect sizeof() in ares_save_options
+
+- Fix incorrect allocation in ares_parse_ptr_reply()
+
+- Only fall back to AF_INET searches when looking for AF_UNSPEC addresses
+
+- Do not use sized constants in public headers
+
+Daniel Stenberg (13 Jun 2011)
+- [Jakub Hrozek brought this change]
+
+ ares_free_hostent(NULL) should be a noop
+
+Yang Tse (8 Jun 2011)
+- configure: fix recvfrom 5th arg type qualifier detection (followup)
+
+- configure: fix recvfrom 5th arg type qualifier detection
+
+ Additionally remove whitespace from EOL
+
+Daniel Stenberg (4 Jun 2011)
+- strlen: use size_t to receive the return
+
+Yang Tse (4 Jun 2011)
+- xlc: avoid preprocessor definition usage when linking
+
+- ares_nowarn: icc 9.1 workaround
+
+- ares_nowarn: header inclusion fix
+
+- ares_init: make ares_private.h last included header again
+
+- compiler warning: fix
+
+ Fix compiler warning: conversion may lose significant bits
+
+- compiler warning: fix
+
+ Fix compiler warning: variable was set but never used
+
+ Fix compiler warning: clobber ignored
+
+- ares_iphlpapi: fix compiler warnings
+
+- winsock: compilation fixes
+
+ Provide winsock iphlpapi alternative definitions to prevent compilation
+ failures when using a variety of winsock header implementations.
+
+Daniel Stenberg (17 May 2011)
+- [David Stuart brought this change]
+
+ IPv6-on-windows: find DNS servers correctly
+
+- man pages: docs for the c-ares utility programs
+
+- ares_parse_ns_reply.c: remove CVSism
+
+Yang Tse (27 Mar 2011)
+- build: fix header inclusion
+
+- getservbyport replacement for Win CE
+
+- renamed getplatform() to ares__getplatform() to avoid namespace pollution
+
+- configure: fix libtool warning
+
+ Recent versions of libtool are now tracing usage of AC_CONFIG_MACRO_DIR
+ macro and warn heavily when not used in configure script along with
+ ACLOCAL_AMFLAGS in Makefile.am. So in order to make libtool happy
+ while keeping backwards compatibility this is added.
+
+- adig: RFC4034 resource record type detection
+
+ Can be tested with: adig -s 8.8.8.8 -t ANY example.com
+
+- nameser.h: RFC4034 resource record type definitions
+
+- build: move platform stuff to ares_platform.c and ares_platform.h
+
+- build: find out windows platform using GetVersionEx()
+
+- build: use getenv() replacement function for systems which lack it
+
+- setup_once: system error codes for Windows CE
+
+- ares_search: use ERRNO macro for portability sake
+
+- System's errno.h inclusion cleanup follow-up.
+
+ System's errno.h is conditionally included from setup_once.h
+
+- Windows CE specific adjustment
+
+ All versions of Windows CE support Winsock 1.1
+
+- System's errno.h inclusion cleanup.
+
+ System's errno.h is conditionally included from setup_once.h
+
+- ares_init: fix gethostname error detection on winsock platforms
+
+- configure: r-enable temporarily disabled detection of system's inet_ntop()
+
+ Detection was temporarily disabled in commit 674e044ccb21f2f63537da53565fce868f
+
+Daniel Stenberg (15 Mar 2011)
+- configure: stop using the deprecated AM_INIT_AUTOMAKE syntax
+
+- [Gisle Vanem brought this change]
+
+ Watt-32: use errno
+
+ Make sure Watt-32 programs use 'errno' even on Win32 targets
+
+Guenter Knauf (18 Feb 2011)
+- Removed commented CLFAGS no longer needed.
+
+- Fixed CFLAGS for NetWare.
+
+ Added -m32 to enable compilation with x86_64 compilers;
+ added conditional to set -fpcc-struct-return only for gcc compiler.
+
+Daniel Stenberg (18 Feb 2011)
+- [Gisle Vanem brought this change]
+
+ Watt32: fix server init
+
+ Somewhere in the process, programs using the Watt-32 tcp/ip stack
+ stopped working.
+
+- [Dima Tisnek brought this change]
+
+ config_sortlist: (win32) missing else
+
+ Without an else there, contents of "pat" that could have been
+ successfully set just above, may be clobbered by successive unsuccessful
+ calls to "xxx_pton" or "ip_addr".
+
+Yang Tse (17 Jan 2011)
+- Makefile.msvc: add a couple of VS version strings
+
+- Makefile.msvc: add a couple of VS version strings
+
+- build: add install target to Makefile.msvc
+
+Daniel Stenberg (27 Dec 2010)
+- ares_set_servers_csv: remove unused variables
+
+- init_by_resolv_conf: fix compiler warnings
+
+ The code received the return codes in the 'status' variable without
+ using it. Instead we just ignore those particular errors.
+
+- getv4: Value stored to 'dst' is never read
+
+- advance_tcp_send_queue: avoid NULL ptr dereference
+
+ If given a too large 'num_bytes' value, it would cause a NULL ptr
+ dereference. Instead the code will now break out of the loop at the end
+ of the list.
+
+- [Peter Pentchev brought this change]
+
+ configure: fix a bashism
+
+- cleanup: avoid unsafe typecasts
+
+ Avoid the risk of reading 16bit data from an unaligned address by using
+ a macro that is adapted for this.
+
+- [Stefan Bühler brought this change]
+
+ ares_expand_name: Fix encoded length for indirect root
+
+Yang Tse (18 Dec 2010)
+- build: add some explicit file references to VS project files
+
+- config-win32: provide HAVE_ASSERT_H definition
+
+- build: include ares_nowarn in sample program VS project files
+
+- build: include ares_nowarn among SAMPLESOURCES and SAMPLEHEADERS
+
+- configure: temporarily disable detection of system's inet_ntop()
+
+ This is done to allow compilation of ares_inet_ntop() by some daily
+ builds picky compilers that otherwise do not need this function.
+
+- changes: mention last fix
+
+- ares_inet_ntop: remove definition and usage of macro SPRINTF
+
+ Existing definition of SPRINTF always resulted in sprintf() being used,
+ and sprintf() returning 'int' is already used throughout the library.
+
+- ares_inet_ntop: reapply changes from previous c-ares version (III)
+
+ - Replace 'u_char' with 'unsigned char'.
+ - Replace 'u_int' with 'unsigned int'.
+ - use macros ERRNO and SET_ERRNO() for errno handling.
+
+- ares_inet_ntop: reapply changes from previous c-ares version (II)
+
+ - Remove rcsid.
+ - Adjust header file inclusions.
+ - ares_inet_ntop used only on systems without a proper inet_ntop function.
+
+- ares_inet_ntop: reapply changes from previous c-ares version (I)
+
+ - Replace tabs with spaces.
+ - Use ANSI C style for function declarations and definitions.
+ - Use sizeof with parentheses.
+
+- ares_inet_ntop: fix off by one error triggering out of bounds write
+
+ ares_inet_ntop would trigger an out of bounds write when the representation
+ of the address required 15 characters, due to not taking in account null
+ termination character.
+
+ Full import of inet_ntop.c from bind-9.5.3rc1 to pull additional fixes.
+
+- ares_nowarn: add conditional inclusion of assert.h header
+
+- fix compiler warning: conversion may lose significant bits
+
+- ares_inet_net_pton: fix non-rejection of some malformed literals
+
+ ares_inet_net_pton would return wrong values when excessively large,
+ and invalid, netmasks are used. Fixes are from bind-9.5.3rc1,
+ issue also described in the WLB-2008080064 advisory.
+
+- setup_once: provide ISASCII macro
+
+- configure: inet_net_pton function check adjustments
+
+ Define HAVE_INET_NET_PTON only when system's inet_net_pton function is IPv6
+ capable and is not affected by the WLB-2008080064 advisory.
+
+ HAVE_INET_NET_PTON_IPV6 is no longer defined nor used.
+
+- ares_init: fix detection of semicolon comments in resolv.conf
+
+ File resolv.conf may either use a hash '#' or a semicolon ';' character as an
+ indication that the rest of the line is a comment. This fixes not recognizing
+ the semicolon as a valid comment indicator in resolv.conf.
+
+- version: start working on 1.7.5
+
+Version 1.7.4 (8 Dec 2010)
+
+Daniel Stenberg (8 Dec 2010)
+- release-preps: CHANGES and RELEASE-NOTES synced
+
+- ares_set_local_*: added in 1.7.4, not before
+
+Yang Tse (3 Dec 2010)
+- build: provide SIZEOF_SIZE_T definition for non-configure builds
+
+- build: config.dos renamed to config-dos.h
+
+- build: provide SIZEOF_SIZE_T netware definition
+
+- ares_gethostbyaddr: fix compiler warning: conversion may lose significant bits
+
+- configure: undo using autobuilds to temporarily verify strict aliasing warnings.
+
+- fix compiler warning: rounding, sign extension, or loss of accuracy may result
+
+Daniel Stenberg (2 Dec 2010)
+- [Ben Noordhuis brought this change]
+
+ ares_parse_a_reply: fix CNAME response parsing
+
+ Reply to a CNAME query doesn't contain addresses, causing
+ ares_parse_a_reply() to bail out with ARES_ENODATA
+
+ Bug: http://groups.google.com/group/nodejs/browse_thread/thread/a1268c9ea5e9ad9b
+
+Yang Tse (1 Dec 2010)
+- fix compiler warning: conversion may lose significant bits
+
+- atoi: remove atoi usage
+
+- ares_init: fix compiler warning: conversion may lose significant bits
+
+- configure: fix autoconf warning
+
+- inet_pton: fix compiler warning
+
+- configure: use autobuilds to temporarily verify strict aliasing warnings.
+
+ Temporarily, When cross-compiling with gcc 3.0 or later, enable strict aliasing
+ rules and warnings. Given that cross-compiled targets autobuilds do not run the
+ test-suite, there is no risk of running code that violates strict aliasing rules
+
+- ares_getnameinfo: Partially revert commit 85520d66e0ac7ac73411bc25e98769a88b2f
+
+ Upon socket address family and length validation failure return ARES_ENOTIMP
+ in callback again, this is the error code documented in man page and used
+ mostly all over the library.
+
+- ares_getnameinfo: Validate socket address family and length.
+
+ Validate socket address family and that the socket address length is appropriate
+ for the specified family. Failure is reported with ARES_EBADFAMILY in callback.
+
+- ares_getnameinfo: fix two compiler warnings
+
+- Added another VS10 version string
+
+- Fix GCC 4 compiler warning 'dereferencing type-punned pointer might break strict-aliasing rules'.
+
+- Revert commit 494274e653936335c255a47599970de3df21e7c4
+
+- configure: fix autoconf 2.68 warning: no AC_LANG_SOURCE call detected in body
+
+- Fix compiler warning: array subscript has type 'char'
+
+- Fix GCC 4 compiler warning 'dereferencing type-punned pointer might break strict-aliasing rules'.
+
+- Revert following commits:
+ 07bc7ea79509bcc9ef6e09151e81766ed00d3392
+ 3392a50ea3f8573ea4b7a9d82b9833dab60cb0e9
+ 9912637d32c9987719a1ea12db591aee2941891c
+
+ The purpose of the whole patch was to silence a compiler warning triggered
+ with GCC 4 on file ares_process.c The specific compiler warning was
+ 'dereferencing type-punned pointer might break strict-aliasing rules'.
+
+ A simpler patch will follow to equally silence the warning.
+
+- ares_options: reorder header inclusions to make inclusion of
+ ares_private.h the last included one again.
+
+Daniel Stenberg (12 Nov 2010)
+- [Patrik Thunstrom brought this change]
+
+ adig: fix NAPTR parsing
+
+ I ran across a small "issue" in your adig example.
+
+ It is simply the last part of the NAPTR record, the replacement element,
+ which is not a string, as currently handled in adig, but a domain name.
+
+- ares_save_options: assignments instead of memcpy
+
+- init_by_options: don't copy an empty sortlist
+
+ If there aren't any sort items to copy, don't bother. Without this
+ little precaution it would do a malloc(0) which causes undefined
+ behaviors and is frowned upon by curl's memdebug-system.
+
+Guenter Knauf (3 Oct 2010)
+- Minor Watcom makefile tweaks.
+
+Daniel Stenberg (30 Sep 2010)
+- [Mike Crowe brought this change]
+
+ Fix lookup with HOSTALIASES set.
+
+ ares__read_line returns ARES_EOF when it reaches the end of the
+ file. This will happen every time when reading to the end of the
+ HOSTALIASES file. Unfortunately single_domain treats this error as
+ being fatal.
+
+ Signed-off-by: Mike Crowe <mac@mcrowe.com>
+
+Ben Greear (24 Aug 2010)
+- Add missing break that caused get_ares_servers to fail.
+
+ Reported-by: Ning Dong <flintning@163.com>
+ Signed-off-by: Ben Greear <greearb@candelatech.com>
+
+Yang Tse (11 Aug 2010)
+- configure: werror related adjustments
+
+Guenter Knauf (8 Aug 2010)
+- Added copyright string to ares_version.h and make use of it in other files.
+
+- Block created ares_build.h for NetWare to avoid usage from other platforms.
+
+- Fix to overwrite default libname.
+
+- Some more Watcom makefile massage ...
+
+- Some more Watcom makefile massage ...
+
+Ben Greear (4 Aug 2010)
+- sock-addr-storage: Detect and deal with lack of .ss_family member.
+
+ AIX, at least, does not have sockaddr_storage.ss_family member.
+ Detect this in the configure logic and use proper #ifdefs in the
+ ares_process logic.
+
+ Signed-off-by: Ben Greear <greearb@candelatech.com>
+ Tested-by: Tor Arntsen <tor@spacetec.no>
+
+Guenter Knauf (3 Aug 2010)
+- Added Watcom makefile based on libcurl's Makefile.Watcom.
+
+Ben Greear (31 Jul 2010)
+- typo: Fix compile bug for platforms that don't have sockaddr_storage.
+
+ Bug was introduced by me in previous commit.
+
+ Signed-off-by: Ben Greear <greearb@candelatech.com>
+
+- Fix aliasing warning in gcc 4.4.4 (at least).
+
+ Should be no functional change, though the code gets a bit
+ ugglier.
+
+ Signed-off-by: Ben Greear <greearb@candelatech.com>
+
+Daniel Stenberg (31 Jul 2010)
+- ares_set_servers_csv: use ISDIGIT
+
+ The IS*() set of macros are preferred to the regular is*() functions as
+ they help us avoid the most common pitfalls.
+
+Ben Greear (30 Jul 2010)
+- cast arg to isdigit to int
+
+ Looks like it might silence a warning on Netware build.
+
+ Signed-off-by: Ben Greear <greearb@candelatech.com>
+
+- remove all uses of uint32_t
+
+ Previous fix forgot a few.
+
+ Signed-off-by: Ben Greear <greearb@candelatech.com>
+
+- fix signed v/s unsigned casts warning in ares_gethostbyaddr.c
+
+ Signed-off-by: Ben Greear <greearb@candelatech.com>
+
+- local-bind-fixup: Fix inet_pton warning.
+
+ Conditionally include <arpa/inet.h> for inet_pton
+ headers.
+
+ Signed-off-by: Ben Greear <greearb@candelatech.com>
+
+- build: Enable compiling with -Werror.
+
+ This helps find compile warnings because they simply break
+ the build.
+
+ To use:
+ ./configure --enable-warnings --enable-werror
+
+ Signed-off-by: Ben Greear <greearb@candelatech.com>
+
+- ipv6: Fix some build issues related to the local-bind feature.
+
+ Signed-off-by: Ben Greear <greearb@candelatech.com>
+
+Guenter Knauf (29 Jul 2010)
+- Replaced uint32_t with unsigned int to fix broken builds on a couple of platforms.
+
+Daniel Stenberg (18 Jul 2010)
+- [Ben Greear brought this change]
+
+ local-bind: Support binding to local interface/IPs
+
+ Add 3 new functions to set the local binding for the out-going
+ socket connection, and add ares_set_servers_csv() to set a
+ list of servers at once as a comma-separated string.
+
+ Signed-off-by: Ben Greear <greearb@candelatech.com>
+
+- version: now start on 1.7.4
+
+- [Andrew C. Morrow brought this change]
+
+ fix memory leak in ares_getnameinfo
+
+Version 1.7.3 (11 Jun 2010)
+
+Daniel Stenberg (11 Jun 2010)
+- changelogs: updated for 1.7.3
+
+- [BogDan Vatra brought this change]
+
+ init: allow c-ares to work on Android OS
+
+- changelog: fill in the 1.7.2 changes
+
+- added another pdf to ignore
+
+Yang Tse (11 Jun 2010)
+- add ares_parse_mx_reply.c to VS dsp file
+
+Daniel Stenberg (10 Jun 2010)
+- tarball: add $(CSOURCES) $(HHEADERS) to EXTRA_DIST
+
+ It's not clear to me why we need this, but we apparently may
+ otherwise not get all files bundled in the dist tarball.
+
+- version: start working on 1.7.3
+
+Version 1.7.2 (10 Jun 2010)
+
+Daniel Stenberg (10 Jun 2010)
+- RELEASE-NOTES: 1.7.2 details added
+
+- [Jakub Hrozek brought this change]
+
+ ares_init: Last, not first instance of domain or search should win
+
+- style: make code less than 80 columns wide
+
+Yang Tse (31 May 2010)
+- [Tor Arntsen brought this change]
+
+ improve alternative definition of bool to use enum instead of unsigned char
+
+- fix VS2010 compiler warnings
+
+Daniel Stenberg (18 Apr 2010)
+- [Jérémy Lal brought this change]
+
+ added ares_parse_mx_reply
+
+- repair the file mode
+
+- remove all $Id$ lines
+
+- remove all .cvsignore files
+
+- spell fix
+
+ reported by Gregor Jasny on the mailing list
+
+- [Peter Pentchev brought this change]
+
+ Fix a couple of typos and grammar nits.
+
+- ignore the GPG signature files too
+
+- start the journey towards 1.7.2
+
+- no longer CVS tagging
+
+- ignore generated PDFs
+
+Version 1.7.1 (23 Mar 2010)
+
+Daniel Stenberg (23 Mar 2010)
+- 1.7.1
+
+- made README the primary readme file
+
+ ... and did README.cares to contain a historic reason etc.
+
+- s/CVS/git
+
+- git now, not CVS
+
+- ignore lots of generated files
+
+- [Daniel Johnson brought this change]
+
+ Fix warnings for clang
+
+Yang Tse (17 Mar 2010)
+- replaced intel compiler option -no-ansi-alias with -fno-strict-aliasing
+
+- update outdated serial number
+
+- fix compiler warning
+
+- watt32 compilation fix
+
+- Added another VS10 version string
+
+- fix line break
+
+- removed usage of 's6_addr', fixing compilation issue triggered with no
+ longer using 'in6_addr' but only our 'ares_in6_addr' struct
+
+Daniel Stenberg (5 Mar 2010)
+- Daniel Johnson provided fixes for building with the clang compiler
+
+Yang Tse (5 Mar 2010)
+- Added IPv6 name servers support
+
+Gisle Vanem (5 Mar 2010)
+- Ops!. Readded ares_nowarn.h.
+
+- Added ares_nowarn.c.
+
+Yang Tse (28 Feb 2010)
+- Added SIZEOF_INT and SIZEOF_SHORT definitions for non-configure systems
+
+- Added ares_nowarn.* to VC6 project file
+
+- Added SIZEOF_INT definition
+
+- fix compiler warning
+
+- fix compiler warning
+
+- fix compiler warning
+
+Daniel Stenberg (17 Feb 2010)
+- ares_reinit()
+
+ - To allow an app to force a re-read of /etc/resolv.conf etc, pretty much
+ like the res_init() resolver function offers
+
+- - Tommie Gannert pointed out a silly bug in ares_process_fd() since it didn't
+ check for broken connections like ares_process() did. Based on that, I
+ merged the two functions into a single generic one with two front-ends.
+
+Yang Tse (30 Dec 2009)
+- VMS specific preprocessor symbol checking adjustments
+
+- Mention last changes
+
+- - Fix configure_socket() to use ares_socket_t instead of int data type.
+
+- - Where run-time error checks enabling compiler option /GZ was used it is now
+ replaced with equivalent /RTCsu for Visual Studio 2003 and newer versions.
+
+ - Compiler option /GX is now replaced with equivalent /EHsc for all versions.
+
+- - Ingmar Runge noticed that Windows config-win32.h configuration file
+ did not include a definition for HAVE_CLOSESOCKET which resulted in
+ function close() being inappropriately used to close sockets.
+
+Daniel Stenberg (30 Nov 2009)
+- start working on 1.7.1
+
+Version 1.7.0 (27 Nov 2009)
+
+Yang Tse (27 Nov 2009)
+- Preserve empty line following last target
+
+- - Larry Lansing fixed ares_parse_srv_reply to properly parse replies
+ which might contain non-SRV answers, skipping over potential non-SRV
+ ones such as CNAMEs.
+
+- When using icc, compile with -fpic and link with intel dynamic libraries.
+
+- Added 'currently' in italics to insist on transient situation.
+
+- Fix language
+
+- Daniel wants upcoming release to be 1.7.0
+
+- Mention last changes
+
+- - Removed from external interface preprocessor symbol definition for
+ CARES_HAVE_ARES_FREE_DATA. Current functionality of ares_free_data()
+ makes it unnecessary.
+
+- Added README.msvc
+
+- Changed c-ares naming conventions when using MSVC as described in README.msvc
+
+- - Mention other recent changes
+
+- - Jakub Hrozek renamed addrttl and addr6ttl structs to ares_addrttl and
+ ares_addr6ttl in order to prevent name space pollution, along with
+ necessary changes to code base and man pages.This change does not break
+ ABI, there is no need to recompile existing applications. But existing
+ applications using these structs with the old name will need source code
+ adjustments when recompiled using c-ares 1.6.1.
+
+- - Jakub Hrozek fixed more function prototypes in man pages to sync them
+ with the ones declared in ares.h
+
+- Make configure remove the ares_build.h file included in distribution tarballs.
+
+- Fix macro redefinition.
+
+- Fix name space pollution.
+
+- Allow using different extra import libraries for debug and release builds.
+
+- Add manifest stuff to msvc makefile
+
+- Sync man page with reality
+
+- Add missing external API decoration for ares_set_socket_callback()
+
+- Add ares_free_data() man page.
+
+- - Provide in external interface preprocessor symbol definitions for
+ CARES_HAVE_ARES_FREE_DATA as an indication of function availability.
+
+- Remove typecast
+
+- Fix comment
+
+- Add ares_data.c and ares_data.h
+
+- Jakub Hrozek modified ares_parse_srv_reply() and ares_parse_txt_reply() API
+ to return a linked lists of results. These were also modified to internally
+ use the ares_data memory struct and as such its result must be free'ed with
+ ares_free_data().
+
+- Initial support for the generic ares_free_data() function that will allow
+ applications to free memory allocated and returned by some c-ares funtions.
+
+- Make usage of calloc()'s arguments consistent with rest of code base
+
+- workaround icc 9.1 optimizer issue
+
+- Add icc fvisibility bug test
+
+- Fix icc 9.0 compiler warning: external definition with no prior declaration
+
+- Fix three var names
+
+- Add check for assert.h header file
+
+- getaddrinfo is fully thread safe on solaris versions which
+ implement the function even when h_errno is not a macro.
+
+ The h_errno macro test now only done on systems for which there
+ is no hard coded knowledge about getaddrinfo's thread safeness.
+
+- Remove files generated on previous buildconf/configure run
+
+- Remove enable-thread / disable-thread configure option. These were only placebo
+ options. The library is always built as thread safe as possible on every system.
+
+- Refactor how preprocessor symbol _THREAD_SAFE definition is done.
+
+- Assume that getaddrinfo is thread safe, unless hard coded
+ knowledge says the contrary or h_errno is not defined.
+
+- Related with the threadsafe capability of getaddrinfo:
+
+ - Constantine Sapuntzakis reported that Darwin 6.0 a.k.a. MAC OS X 10.2
+ and newer have a threadsafe getaddrinfo.
+
+ - Fix Dragonfly BSD triplet detection.
+
+ - In case the hard-coded knowledge says that getaddrinfo is threadsafe,
+ an additional check is done to verify that h_errno is also defined.
+ If h_errno isn't defined, we finally assume that it isn't threadsafe.
+ Jamie Lokier provided the inspiration for this extra check.
+
+- AIX 5.2 and newer have threadsafe getaddrinfo.
+
+ Add some comments to better understand what the regex's pretend to achieve.
+
+- HP-UX 11.11 and later have threadsafe getaddrinfo
+
+- Check if getaddrinfo is threadsafe when function check allows it to be used
+
+- Renamed fpGetNetworkParams and fpSystemFunction036 to avoid namespace pollution with static library
+
+- Add kernel32.lib
+
+- Mention last changes
+
+- Reinstate copyright symbol lost in previous commit
+
+- Make some strings different in resource file for debug or release builds
+
+- Ignore more subdirs
+
+- Fix compiler warning: conditional expression is constant
+
+- Sync linker and resource compiler options with Makefile.msvc
+
+- Follow Makefile.msvc subdirectory naming scheme, and sync compiler options
+
+- Updated MSVC makefile that allows building dynamic and static
+ c-ares libraries in debug and release flavours.
+
+ Additionally each of the three sample programs is built against
+ each of the four possible c-ares libraries, generating all this
+ a total number of 12 executables and 4 libraries.
+
+- Test for USE_WINSOCK since it is more restrictive than WIN32
+
+- Make header inclusion depend on HAVE_*_H definition
+
+- Remove unneeded preprocessor directives
+
+- Adjust c-ares include paths for memory tracking enabled (--enable-curldebug) builds
+
+- source files used by sample programs
+
+- Renamed c-ares setup.h to ares_setup.h
+
+- Adjust include paths to take in account that currently:
+
+ c-ares with --enable-curldebug uses memdebug.h from libcurl's lib subdirectory.
+
+ memdebug.h needs access to libcurl's setup.h from libcurl's lib subdirectory
+ and also needs access to libcurl's generated curl_config.h
+
+- Undo old temporary change once used for testing purposes
+
+- Mention many changes
+
+- Mention --enable-symbol-hiding configure option
+
+- Symbol hiding configure options renamed to the hopefully less ambiguous
+ --enable-symbol-hiding and --disable-symbol-hiding as well as related
+ macro names and some internal variables used for them.
+
+ Related configuration file preprocessor symbols named to
+ CARES_SYMBOL_HIDING and CARES_SYMBOL_SCOPE_EXTERN.
+
+- Header inclusion depending on HAVE_* symbol.
+ Fix two typos.
+
+- Comparison of the Initial revision of this file with ares_parse_a_reply.c
+ shows that this one is actually a modified copy of ares_parse_a_reply.c.
+
+ In order to comply with ares_parse_a_reply.c's M.I.T. license, the old
+ 1998 M.I.T. copyright notice is now also preserved in this file the same
+ as it is done in other ares_parse_*.c files.
+
+- Add CVS Id tag.
+ Fix identation of some license lines.
+
+- Add CVS Id tag.
+
+- Fix comment
+
+- In no particular order, changed/fixed all of the following in
+ ares_parse_txt_reply() current version:
+
+ - Fixed a couple of potential double free's.
+
+ - Fixed memory leaks upon out of memory condition.
+
+ - Fixed pointer arithmetic.
+
+ - Setting ntxtreply to zero upon entry for all failure cases.
+
+ - Changed data type to size_t for variables substr_len, str_len and
+ the length member of ares_txt_reply struct.
+
+ - Avoided a couple of memcpy() calls.
+
+ - Changed i data type to unsigned int to prevent compiler warnings.
+
+ - Adjusted a comment.
+
+ - Use ARES_SUCCESS literal for successfull completion.
+
+ - Added CVS Id tag.
+
+- Add c-ares DLL resource file to distribution archive
+
+- ignore files
+
+- Empty subdir
+
+- Updated MSVC 6.0 workspace and project files that allows building
+ dynamic and static c-ares libraries in debug and release flavours.
+
+ Additionally each of the three sample programs is built against
+ each of the four possible c-ares libraries, generating all this
+ a total number of 12 executables and 4 libraries.
+
+Daniel Stenberg (29 Oct 2009)
+- no need to check for NULL pointers before dereferencing, as the pointers
+ MUST be valid and they are dereferenced further down in the function
+ unconditionally!
+
+- shorten the descriptions somewhat
+
+- update to the new struct name
+
+- Jakub Hrozek added ares_parse_txt_reply() for TXT parsing
+
+- use 'ares_srv_reply' for proper name-spacing
+
+Yang Tse (29 Oct 2009)
+- Add reference for ares_parse_srv_reply.pdf
+
+- Add reference for ares_parse_srv_reply docs
+
+- External API function linkage decoration adjustment
+
+- External API function linkage decoration adjustment
+
+- Initial step towards the ability to reduce c-ares exported symbols
+ based on the 'visibility' attribute for GNUC and __global for Sun
+ compilers, taking also in account __declspec function decoration
+ for Win32 and Symbian DLL's.
+
+ Introducing configure options --enable-hidden-symbols and
+ --disable-hidden-symbols following libcurl's naming.
+
+- Fix comment
+
+- Fix spelling
+
+- Fix Pelles C Win32 target compilation issues
+
+- John Engelhart noticed an unreleased problem relative to a duplicate
+ ARES_ECANCELLED error code value and missing error code description.
+
+- Fix compiler warning: local variable may be used without having been initialized
+
+- Use *_CHECK_PATH_SEPARATOR_REQUIRED to ensure that *_CHECK_PATH_SEPARATOR
+ is only expanded and included once in the configure script.
+
+- Our _AS_PATH_SEPARATOR_PREPARE override is now m4_defun'd instead of m4_define'd
+ due to autoconf 2.64 m4_require'ing it in _AS_SHELL_SANITIZE indirectly through
+ _AS_PATH_WALK.
+
+- Fix compiler warning: argument is incompatible with corresponding format string conversion
+
+- Fix potential out-of-bounds read
+
+- Fix compiler warning: loop without body
+
+- Fix compiler warning
+
+- Fix compiler warning
+
+- Fix compiler warning
+
+- Fix compiler warning: addition result could be truncated before cast to bigger sized type
+
+- Overhauled ares__get_hostent()
+
+ - Fixing out of bounds memory overwrite triggered with malformed /etc/hosts file.
+ - Improving parsing of /etc/hosts file.
+ - Validating requested address family.
+ - Ensuring that failures always return a NULL pointer.
+ - Adjusting header inclusions.
+
+- Fix ssize_t redefinition errors on WIN64 reported by Alexey Simak
+
+- more files to ignore
+
+- Check if _REENTRANT definition is required to
+ make errno available as a preprocessor macro.
+
+- Attempt to silence bogus compiler warning: "Potential null pointer dereference"
+
+- ignore more files
+
+Gisle Vanem (7 Sep 2009)
+- Suppress warnings about unused prototypes in Watt32 and Win32 programs.
+
+- Update email address.
+
+- Update my email address. Add ares_config.h as dependency for 'make depend'.
+
+Yang Tse (6 Sep 2009)
+- T_SRV portability check
+
+Gunter Knauf (5 Sep 2009)
+- changed includes to match style how we do with all other *.c files.
+
+- changed u_int16_t to unsigned short because it is the only place within ares and curl where such a type would be used;
+ also it broke many autobuilds. We should probably introduce an ares_port_t if we want to use a type here.
+
+Gisle Vanem (5 Sep 2009)
+- Replace 'uint16_t' with 'u_int16_t' since the latter is used in ares.h.
+
+- Added 'ares_parse_srv_reply.obj'. Added definition of 'u_int16_t'. This is I don't like; we should not depend on such non-universal types in a public header. But this is just a quick fix.
+
+Daniel Stenberg (4 Sep 2009)
+- - Jakub Hrozek added ares_parse_srv_reply() for SRV parsing
+
+Steinar H. Gunderson (27 Aug 2009)
+- Support lookup of IPv4 literals in ares_gethostbyname(), even when the address family is set to AF_INET6.
+
+Gisle Vanem (3 Aug 2009)
+- Remove call to LoadLibrary(). (leftover from debugging).
+
+- Fix bad sentence.
+
+Daniel Stenberg (3 Aug 2009)
+- - Timo Teras changed the reason code used in the resolve callback done when
+ ares_cancel() is used, to be ARES_ECANCELLED instead of ARES_ETIMEOUT to
+ better allow the callback to know what's happening.
+
+- - Joshua Kwan fixed the init routine to fill in the defaults for stuff that
+ fails to get inited by other means. This fixes a case of when the c-ares
+ init fails when internet access is fone.
+
+Gunter Knauf (16 Jul 2009)
+- test if adding ../lib to includes can fix the current break ...
+
+- renamed generated config.h to ares_config.h in order to avoid clashes when libcurl is used with other projects which also have a config.h.
+
+Yang Tse (21 Jun 2009)
+- Refactor how libraries are checked for connect() function, follow-up.
+
+- Refactor how libraries are checked for connect() function,
+ and check for connect() as it is done for other functions.
+
+Gisle Vanem (20 Jun 2009)
+- Remove unneeded defines.
+
+- Use select_s() and not select().
+
+Yang Tse (19 Jun 2009)
+- sclose() function-like macro definition used to close a socket,
+ now solely based on HAVE_CLOSESOCKET and HAVE_CLOSESOCKET_CAMEL
+ config file preprocessor definitions.
+
+- add CloseSocket camel case function check
+
+- check for socket() and closesocket() as it is done for other functions
+
+- Remove HAVE_CONFIG_H definition from here,
+ CFLAGS from common.dj already defines it.
+
+- initial step towards decoupling c-ares from libcurl for DOS
+
+- don't ignore these subdirs, they must be removed first
+
+- Remove DEBUGBUILD symbol definition, is not required for programs using the library.
+
+- DEBUGBUILD symbol definition for debug builds
+
+- ignore some subdirs
+
+- fix comment
+
+- Try to make more clear that --enable-curldebug has nothing to do with --enable-debug for this library.
+
+- Revert last change, it is inappropriate.
+
+Gisle Vanem (12 Jun 2009)
+- Replace CURLDEBUG with DEBUGBUILD.
+
+Yang Tse (11 Jun 2009)
+- when running automake copy missing files instead of symlinking them
+
+- Adjusted to take in account that...
+
+ With the curl memory tracking feature decoupled from the debug build feature,
+ CURLDEBUG and DEBUGBUILD preprocessor symbol definitions are used as follows:
+
+ CURLDEBUG used for curl debug memory tracking specific code (--enable-curldebug)
+
+ DEBUGBUILD used for debug enabled specific code (--enable-debug)
+
+- c-ares' --enable-debug --enable-curldebug decoupling follow-up
+
+- mention last changes
+
+- Remove buildconf.bat from release and daily snapshot archives.
+
+ buildconf.bat is only for CVS tree builds.
+
+- Ensure that buildconf.bat does nothing unless it is used with a CVS checkout.
+
+- CVS-INFO file only present in CVS tree, never in release nor daily snapshot
+ archives. Used as a sentinel file in buildconf.bat to differentiate CVS builds.
+
+Gisle Vanem (8 Jun 2009)
+- Update comment about "ML". Removed "-D_USE_32BIT_TIME_T" (not a requirement).
+
+Yang Tse (8 Jun 2009)
+- just comment it out
+
+- For debugging purposes...
+
+ Disable the '-export-symbols-regex' to discard this as the origin
+ of link failures related with shared libraries and non-GNU linkers.
+
+- c-ares Makefile.am back to using $(top_builddir) for *_LDADD
+
+- c-ares' -no-undefined and --enable-curldebug adjustments
+
+- Use relative path to built c-ares tree libtool library
+
+- John E. Malmberg noticed that the configure script was failing to detect the
+ timeval struct on VMS when building with _XOPEN_SOURCE_EXTENDED undefined due
+ to definition taking place in socket.h instead of time.h
+
+- Fix compiler warning: out of bound access
+
+- fix compilation on AIX
+
+- c-ares' --enable-curldebug adjustments
+
+- Remove temporarily introduced memory leak.
+
+- Temporarily introduce a memory leak to verify curl debug memory tracking works.
+
+- Allow curl debug memory tracking when building a shared library on
+ systems which support external, undefined, symbols in shared libraries.
+
+Daniel Stenberg (26 May 2009)
+- language fix
+
+Yang Tse (26 May 2009)
+- Make ares_init(), ares_dup() and ares_init_options() return ARES_ENOTINITIALIZED
+ if library initialization has not been performed calling ares_library_init().
+
+- c-ares's --enable-curldebug configure option decoupled from c-ares's --enable-debug
+
+- Prevent copying 'sourced' manpages for build targets that don't use them.
+
+Daniel Stenberg (23 May 2009)
+- minor edits
+
+Yang Tse (21 May 2009)
+- Include .pdf versions of c-ares man pages in distribution tarball.
+
+- Allow generation of .html and .pdf versions of c-ares man pages.
+
+Gisle Vanem (21 May 2009)
+- $(OBJ_DIR)/ares_getopt.o must be cleaned explicitly.
+
+Yang Tse (20 May 2009)
+- Mention last changes
+
+- Initial ares_library_cleanup(3) man page
+
+- Update man page
+
+- Update man page
+
+- Initial ares_library_init(3) man page attempt
+
+- Force revision update, to force CVS to update the $Id date string format
+
+- Add same copyright notice as other c-ares files
+
+- Fix case
+
+- Remove run-time requirement for advapi32.dll since
+ c-ares can work even with no advapi32.dll at all.
+
+- Intentionally avoid checking if the address of SystemFunction036, a.k.a.
+ RtlGenRandom, has been located or not. This function is only available on
+ WinXP and later. When unavailable c-ares uses portable rand() function.
+
+- - Provide in external interface preprocessor symbol definitions for
+ CARES_HAVE_ARES_LIBRARY_INIT and CARES_HAVE_ARES_LIBRARY_CLEANUP
+ to ease the use of new capabilities.
+
+ - Move ares_version() prototype to ares.h
+
+- Introduction of ares_library_init() and ares_library_cleanup()
+
+- Introduction of ares_library_init() and ares_library_cleanup()
+
+- remove outdated comment
+
+- Fix preprocessor conditional expression
+
+- fiX *__SOCKLEN_T definitions for remaining targets
+
+- *__SOCKLEN_T definitions for OS400 already fixed
+
+- fIX *__SOCKLEN_T definitions for SYMBIAN32 and VMS targets
+
+Daniel Stenberg (11 May 2009)
+- - Gregor Jasny made c-ares link with libtool 's -export-symbols-regex option to
+ only expose functions starting with ares_.
+
+Yang Tse (11 May 2009)
+- Remove experimental check. Currently there's no need for it.
+
+- Fix an m4 overquoting triggering a spurious 'AS_TR_CPP' symbol definition
+ attempt in generated config.h
+
+- Proper naming for the experimental compiler test and moved to *-compilers.m4
+
+- Moved *_CHECK_COMPILER_HALT_ON_ERROR and *_CHECK_COMPILER_ARRAY_SIZE_NEGATIVE to *-compilers.m4 along with other *_CHECK_COMPILER_*
+
+- fIX *__SOCKLEN_T definitions for OS400 and generic GCC targets
+
+- fIX *__SOCKLEN_T definitions for MVS and 370 targets
+
+- fIX *__SOCKLEN_T definitions for several Windows target tool-chains
+
+- HP-UX's X/Open network library requirement check follow-up
+
+- HP-UX's X/Open network library requirement check follow-up
+
+- Use build-time configured ares_socklen_t instead of socklen_t
+
+- David McCreedy's "TPF-platform specific changes to various files" patch follow-up
+
+Daniel Stenberg (1 May 2009)
+- s/libcurl/c-ares
+
+- version number typo fix
+
+Yang Tse (1 May 2009)
+- David McCreedy's "TPF-platform specific changes to various files" patch
diff --git a/contrib/libs/c-ares/INSTALL.md b/contrib/libs/c-ares/INSTALL.md
index d00ae856be..cbf1fc8f9b 100644
--- a/contrib/libs/c-ares/INSTALL.md
+++ b/contrib/libs/c-ares/INSTALL.md
@@ -1,115 +1,115 @@
-** This file is adapted from libcurl and not yet fully rewritten for c-ares! **
-
+** This file is adapted from libcurl and not yet fully rewritten for c-ares! **
+
```
___ __ _ _ __ ___ ___
- / __| ___ / _` | '__/ _ \/ __|
- | (_ |___| (_| | | | __/\__ \
- \___| \__,_|_| \___||___/
-
- How To Compile
+ / __| ___ / _` | '__/ _ \/ __|
+ | (_ |___| (_| | | | __/\__ \
+ \___| \__,_|_| \___||___/
+
+ How To Compile
```
-
-Installing Binary Packages
-==========================
-
+
+Installing Binary Packages
+==========================
+
Lots of people download binary distributions of c-ares. This document
does not describe how to install c-ares using such a binary package.
This document describes how to compile, build and install c-ares from
source code.
-
+
Building from Git
-=================
-
+=================
+
If you get your code off a Git repository rather than an official
release tarball, see the [GIT-INFO](GIT-INFO) file in the root directory
for specific instructions on how to proceed.
-
+
In particular, if not using CMake you will need to run `./buildconf` (Unix) or
`buildconf.bat` (Windows) to generate build files, and for the former
you will need a local installation of Autotools. If using CMake the steps are
the same for both Git and official release tarballs.
-
+
AutoTools Build
===============
-
+
### General Information, works on most Unix Platforms (Linux, FreeBSD, etc)
-
+
A normal Unix installation is made in three or four steps (after you've
unpacked the source archive):
-
+
./configure
make
make ahost adig acountry (optional)
make install
-
+
You probably need to be root when doing the last command.
-
+
If you have checked out the sources from the git repository, read the
[GIT-INFO](GIT_INFO) on how to proceed.
-
+
Get a full listing of all available configure options by invoking it like:
-
+
./configure --help
-
+
If you want to install c-ares in a different file hierarchy than /usr/local,
you need to specify that already when running configure:
-
+
./configure --prefix=/path/to/c-ares/tree
-
+
If you happen to have write permission in that directory, you can do `make
install` without being root. An example of this would be to make a local
install in your own home directory:
-
+
./configure --prefix=$HOME
make
make install
-
+
### More Options
-
+
To force configure to use the standard cc compiler if both cc and gcc are
present, run configure like
-
+
CC=cc ./configure
# or
env CC=cc ./configure
-
+
To force a static library compile, disable the shared library creation
by running configure like:
-
+
./configure --disable-shared
-
+
If you're a c-ares developer and use gcc, you might want to enable more
debug options with the `--enable-debug` option.
-
+
### Special Cases
-
+
Some versions of uClibc require configuring with `CPPFLAGS=-D_GNU_SOURCE=1`
to get correct large file support.
-
+
The Open Watcom C compiler on Linux requires configuring with the variables:
-
+
./configure CC=owcc AR="$WATCOM/binl/wlib" AR_FLAGS=-q \
RANLIB=/bin/true STRIP="$WATCOM/binl/wstrip" CFLAGS=-Wextra
-
-
+
+
### CROSS COMPILE
-
+
(This section was graciously brought to us by Jim Duey, with additions by
Dan Fandrich)
-
+
Download and unpack the c-ares package.
-
+
`cd` to the new directory. (e.g. `cd c-ares-1.7.6`)
-
+
Set environment variables to point to the cross-compile toolchain and call
configure with any options you need. Be sure and specify the `--host` and
`--build` parameters at configuration time. The following script is an
example of cross-compiling for the IBM 405GP PowerPC processor using the
toolchain from MonteVista for Hardhat Linux.
-
+
```sh
#! /bin/sh
-
+
export PATH=$PATH:/opt/hardhat/devkit/ppc/405/bin
export CPPFLAGS="-I/opt/hardhat/devkit/ppc/405/target/usr/include"
export AR=ppc_405-ar
@@ -118,84 +118,84 @@ export LD=ppc_405-ld
export RANLIB=ppc_405-ranlib
export CC=ppc_405-gcc
export NM=ppc_405-nm
-
+
./configure --target=powerpc-hardhat-linux \
--host=powerpc-hardhat-linux \
--build=i586-pc-linux-gnu \
--prefix=/opt/hardhat/devkit/ppc/405/target/usr/local \
--exec-prefix=/usr/local
```
-
+
You may also need to provide a parameter like `--with-random=/dev/urandom`
to configure as it cannot detect the presence of a random number
generating device for a target system. The `--prefix` parameter
specifies where c-ares will be installed. If `configure` completes
successfully, do `make` and `make install` as usual.
-
+
In some cases, you may be able to simplify the above commands to as
little as:
-
+
./configure --host=ARCH-OS
-
-
+
+
### Cygwin (Windows)
-
+
Almost identical to the unix installation. Run the configure script in the
c-ares root with `sh configure`. Make sure you have the sh executable in
`/bin/` or you'll see the configure fail toward the end.
-
+
Run `make`
-
-
+
+
### QNX
-
+
(This section was graciously brought to us by David Bentham)
-
+
As QNX is targeted for resource constrained environments, the QNX headers
set conservative limits. This includes the `FD_SETSIZE` macro, set by default
to 32. Socket descriptors returned within the c-ares library may exceed this,
resulting in memory faults/SIGSEGV crashes when passed into `select(..)`
calls using `fd_set` macros.
-
+
A good all-round solution to this is to override the default when building
c-ares, by overriding `CFLAGS` during configure, example:
-
+
# configure CFLAGS='-DFD_SETSIZE=64 -g -O2'
-
-
+
+
### RISC OS
-
+
The library can be cross-compiled using gccsdk as follows:
-
+
CC=riscos-gcc AR=riscos-ar RANLIB='riscos-ar -s' ./configure \
--host=arm-riscos-aof --without-random --disable-shared
make
-
+
where `riscos-gcc` and `riscos-ar` are links to the gccsdk tools.
You can then link your program with `c-ares/lib/.libs/libcares.a`.
-
-
+
+
### Android
-
+
Method using a configure cross-compile (tested with Android NDK r7b):
-
+
- prepare the toolchain of the Android NDK for standalone use; this can
be done by invoking the script:
-
+
./tools/make-standalone-toolchain.sh
-
+
which creates a usual cross-compile toolchain. Lets assume that you put
this toolchain below `/opt` then invoke configure with something
like:
-
+
```
export PATH=/opt/arm-linux-androideabi-4.4.3/bin:$PATH
./configure --host=arm-linux-androideabi [more configure options]
- make
+ make
```
- if you want to compile directly from our GIT repo you might run into
this issue with older automake stuff:
-
+
```
checking host system type...
Invalid configuration `arm-linux-androideabi':
@@ -208,17 +208,17 @@ Method using a configure cross-compile (tested with Android NDK r7b):
you need to replace your system-own versions which usually can be
found in your automake folder:
`find /usr -name config.sub`
-
-
+
+
CMake builds
============
-
+
Current releases of c-ares introduce a CMake v3+ build system that has been
tested on most platforms including Windows, Linux, FreeBSD, MacOS, AIX and
Solaris.
-
+
In the most basic form, building with CMake might look like:
-
+
```sh
cd /path/to/cmake/source
mkdir build
@@ -227,26 +227,26 @@ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/cares ..
make
sudo make install
```
-
+
Options
-------
-
+
Options to CMake are passed on the command line using "-D${OPTION}=${VALUE}".
The values defined are all boolean and take values like On, Off, True, False.
-
+
* CARES_STATIC - Build the static library (off by default)
* CARES_SHARED - Build the shared library (on by default)
* CARES_INSTALL - Hook in installation, useful to disable if chain building
* CARES_STATIC_PIC - Build the static library as position-independent (off by
default)
-
-
+
+
Ninja
-----
-
+
Ninja is the next-generation build system meant for generators like CMake that
heavily parallize builds. Its use is very similar to the normal build:
-
+
```sh
cd /path/to/cmake/source
mkdir build
@@ -255,10 +255,10 @@ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local/cares -G "Nin
ninja
sudo ninja install
```
-
+
Windows MSVC Command Line
-------------------------
-
+
```
cd \path\to\cmake\source
mkdir build
@@ -267,7 +267,7 @@ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=C:\cares -G "NMake Makef
nmake
nmake install
```
-
+
Windows MinGW-w64 Command Line via MSYS
---------------------------------------
```
@@ -278,16 +278,16 @@ cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=C:\cares -G "MSYS Makefi
make
make install
```
-
-
+
+
Platform-specific build systems
===============================
-
+
Win32
-----
-
+
### Building Windows DLLs and C run-time (CRT) linkage issues
-
+
As a general rule, building a DLL with static CRT linkage is highly
discouraged, and intermixing CRTs in the same app is something to
avoid at any cost.
@@ -389,13 +389,13 @@ sure that the var `OSTYPE` contains the string 'linux'; set the var
`make -f Makefile.netware` from the top source directory;
-PORTS
-=====
-
+PORTS
+=====
+
This is a probably incomplete list of known hardware and operating systems
that c-ares has been compiled for. If you know a system c-ares compiles and
runs on, that isn't listed, please let us know!
-
+
- Alpha Tru64 v5.0 5.1
- ARM Android 1.5, 2.1, 2.3
- MIPS IRIX 6.2, 6.5
@@ -406,9 +406,9 @@ runs on, that isn't listed, please let us know!
- x86_64 Linux
-Useful URLs
-===========
-
+Useful URLs
+===========
+
- c-ares: https://c-ares.haxx.se/
- MingW: http://www.mingw.org/
- MinGW-w64: http://mingw-w64.sourceforge.net/
diff --git a/contrib/libs/c-ares/NEWS b/contrib/libs/c-ares/NEWS
index 5cad119ee2..95a2eeea27 100644
--- a/contrib/libs/c-ares/NEWS
+++ b/contrib/libs/c-ares/NEWS
@@ -1,21 +1,21 @@
-Major changes since:
-* see the CHANGES file
-
-Major changes in release 1.1.1:
-* ares should now compile as C++ code (no longer uses reserved word
- "class").
-* Added SRV support to adig test program.
-* Fixed a few error handling bugs in query processing.
-
-Major changes in release 1.1.0:
-* Added ares_free_string() function so that memory can be freed in the
- same layer as it is allocated, a desirable feature in some
- environments.
-* A few of the ares_dns.h macros are fixed to use the proper bitwise
- operator.
-* Fixed a couple of fenceposts fixed in ares_expand_name()'s
- bounds-checking.
-* In process_timeouts(), extract query->next before calling
- next_server() and possibly freeing the query structure.
-* Casted arguments to ctype macros casted to unsigned char, since not
- all char values are valid inputs to those macros according to ANSI.
+Major changes since:
+* see the CHANGES file
+
+Major changes in release 1.1.1:
+* ares should now compile as C++ code (no longer uses reserved word
+ "class").
+* Added SRV support to adig test program.
+* Fixed a few error handling bugs in query processing.
+
+Major changes in release 1.1.0:
+* Added ares_free_string() function so that memory can be freed in the
+ same layer as it is allocated, a desirable feature in some
+ environments.
+* A few of the ares_dns.h macros are fixed to use the proper bitwise
+ operator.
+* Fixed a couple of fenceposts fixed in ares_expand_name()'s
+ bounds-checking.
+* In process_timeouts(), extract query->next before calling
+ next_server() and possibly freeing the query structure.
+* Casted arguments to ctype macros casted to unsigned char, since not
+ all char values are valid inputs to those macros according to ANSI.
diff --git a/contrib/libs/c-ares/README.cares b/contrib/libs/c-ares/README.cares
index 0b89783826..4dee46eabf 100644
--- a/contrib/libs/c-ares/README.cares
+++ b/contrib/libs/c-ares/README.cares
@@ -1,14 +1,14 @@
-c-ares
-======
-
+c-ares
+======
+
This package is based on ares 1.1.1 (written by Greg Hudson). Daniel Stenberg
decided to fork and release a separate project since the original ares author
didn't want the improvements that were vital for our use of it.
-
+
This package is dubbed 'c-ares' since Daniel wanted this for use within the
curl project (hence the letter C) and it makes a nice pun. c-ares is not API
compatible with ares: a new name makes that more obvious to the public.
-
+
The original libares was distributed at
ftp://athena-dist.mit.edu:pub/ATHENA/ares (which seems to not be alive
anymore). A local copy of the original ares package is kept here:
diff --git a/contrib/libs/c-ares/README.md b/contrib/libs/c-ares/README.md
index ed8e0f1a51..148338f9e1 100644
--- a/contrib/libs/c-ares/README.md
+++ b/contrib/libs/c-ares/README.md
@@ -1,6 +1,6 @@
-c-ares
-======
-
+c-ares
+======
+
[![Build Status](https://travis-ci.org/c-ares/c-ares.svg?branch=master)](https://travis-ci.org/c-ares/c-ares)
[![Windows Build Status](https://ci.appveyor.com/api/projects/status/aevgc5914tm72pvs/branch/master?svg=true)](https://ci.appveyor.com/project/c-ares/c-ares/branch/master)
[![Coverage Status](https://coveralls.io/repos/c-ares/c-ares/badge.svg?branch=master&service=github)](https://coveralls.io/github/c-ares/c-ares?branch=master)
@@ -8,60 +8,60 @@ c-ares
[![Fuzzing Status](https://oss-fuzz-build-logs.storage.googleapis.com/badges/c-ares.svg)](https://bugs.chromium.org/p/oss-fuzz/issues/list?sort=-opened&can=1&q=proj:c-ares)
[![Releases](https://coderelease.io/badge/c-ares/c-ares)](https://coderelease.io/github/repository/c-ares/c-ares)
-This is c-ares, an asynchronous resolver library. It is intended for
-applications which need to perform DNS queries without blocking, or need to
-perform multiple DNS queries in parallel. The primary examples of such
-applications are servers which communicate with multiple clients and programs
-with graphical user interfaces.
-
+This is c-ares, an asynchronous resolver library. It is intended for
+applications which need to perform DNS queries without blocking, or need to
+perform multiple DNS queries in parallel. The primary examples of such
+applications are servers which communicate with multiple clients and programs
+with graphical user interfaces.
+
The full source code is available in the ['c-ares' release archives](https://c-ares.haxx.se/download/),
and in a git repository: http://github.com/c-ares/c-ares. See the
[INSTALL.md](INSTALL.md) file for build information.
-
-If you find bugs, correct flaws, have questions or have comments in general in
-regard to c-ares (or by all means the original ares too), get in touch with us
-on the c-ares mailing list: http://cool.haxx.se/mailman/listinfo/c-ares
-
-c-ares is of course distributed under the same MIT-style license as the
-original ares.
-
-You'll find all c-ares details and news here:
+
+If you find bugs, correct flaws, have questions or have comments in general in
+regard to c-ares (or by all means the original ares too), get in touch with us
+on the c-ares mailing list: http://cool.haxx.se/mailman/listinfo/c-ares
+
+c-ares is of course distributed under the same MIT-style license as the
+original ares.
+
+You'll find all c-ares details and news here:
https://c-ares.haxx.se/
-
-
+
+
Notes for c-ares hackers
------------------------
-
+
* The distributed `ares_build.h` file is only intended to be used on systems
- which can not run the also distributed configure script.
-
+ which can not run the also distributed configure script.
+
* The distributed `ares_build.h` file is generated as a copy of `ares_build.h.dist`
- when the c-ares source code distribution archive file is originally created.
-
-* If you check out from git on a non-configure platform, you must run the
+ when the c-ares source code distribution archive file is originally created.
+
+* If you check out from git on a non-configure platform, you must run the
appropriate `buildconf*` script to set up `ares_build.h` and other local files
before being able to compile the library.
-
+
* On systems capable of running the `configure` script, the `configure` process
will overwrite the distributed `ares_build.h` file with one that is suitable
- and specific to the library being configured and built, this new file is
+ and specific to the library being configured and built, this new file is
generated from the `ares_build.h.in` template file.
-
+
* If you intend to distribute an already compiled c-ares library you **MUST**
also distribute along with it the generated `ares_build.h` which has been
- used to compile it. Otherwise the library will be of no use for the users of
+ used to compile it. Otherwise the library will be of no use for the users of
the library that you have built. It is **your** responsibility to provide this
- file. No one at the c-ares project can know how you have built the library.
-
+ file. No one at the c-ares project can know how you have built the library.
+
* File `ares_build.h` includes platform and configuration dependent info,
- and must not be modified by anyone. Configure script generates it for you.
-
-* We cannot assume anything else but very basic compiler features being
- present. While c-ares requires an ANSI C compiler to build, some of the
- earlier ANSI compilers clearly can't deal with some preprocessor operators.
-
-* Newlines must remain unix-style for older compilers' sake.
-
-* Comments must be written in the old-style /* unnested C-fashion */
-
+ and must not be modified by anyone. Configure script generates it for you.
+
+* We cannot assume anything else but very basic compiler features being
+ present. While c-ares requires an ANSI C compiler to build, some of the
+ earlier ANSI compilers clearly can't deal with some preprocessor operators.
+
+* Newlines must remain unix-style for older compilers' sake.
+
+* Comments must be written in the old-style /* unnested C-fashion */
+
* Try to keep line lengths below 80 columns.
diff --git a/contrib/libs/c-ares/README.msvc b/contrib/libs/c-ares/README.msvc
index dfb48a06fa..4ff8700cb8 100644
--- a/contrib/libs/c-ares/README.msvc
+++ b/contrib/libs/c-ares/README.msvc
@@ -1,142 +1,142 @@
+
+
+ ___ __ _ _ __ ___ ___
+ / __| ___ / _` | '__/ _ \/ __|
+ | (_ |___| (_| | | | __/\__ \
+ \___| \__,_|_| \___||___/
+
+
+ How to build c-ares using MSVC or Visual Studio
+ =================================================
+
+
+
+ How to build using MSVC from the command line
+ ---------------------------------------------
+
+ Open a command prompt window and ensure that the environment is properly
+ set up in order to use MSVC or Visual Studio compiler tools.
+
+ Change to c-ares source folder where Makefile.msvc file is located and run:
+
+ > nmake -f Makefile.msvc
+
+ This will build all c-ares libraries as well as three sample programs.
+
+ Once the above command has finished a new folder named MSVCXX will exist
+ below the folder where makefile.msvc is found. The name of the folder
+ depends on the MSVC compiler version being used to build c-ares.
+
+ Below the MSVCXX folder there will exist four folders named 'cares',
+ 'ahost', 'acountry', and 'adig'. The 'cares' folder is the one that
+ holds the c-ares libraries you have just generated, the other three
+ hold sample programs that use the libraries.
+
+ The above command builds four versions of the c-ares library, dynamic
+ and static versions and each one in release and debug flavours. Each
+ of these is found in folders named dll-release, dll-debug, lib-release,
+ and lib-debug, which hang from the 'cares' folder mentioned above. Each
+ sample program also has folders with the same names to reflect which
+ library version it is using.
+
+
+ How to install using MSVC from the command line
+ -----------------------------------------------
+
+ In order to allow easy usage of c-ares libraries it may be convenient to
+ install c-ares libraries and header files to a common subdirectory tree.
+
+ Once that c-ares libraries have been built using procedure described above,
+ use same command prompt window to define environment variable INSTALL_DIR
+ to designate the top subdirectory where installation of c-ares libraries and
+ header files will be done.
+
+ > set INSTALL_DIR=c:\c-ares
+
+ Afterwards, run following command to actually perform the installation:
+
+ > nmake -f Makefile.msvc install
+
+ Installation procedure will copy c-ares libraries to subdirectory 'lib' and
+ c-ares header files to subdirectory 'include' below the INSTALL_DIR subdir.
+
+ When environment variable INSTALL_DIR is not defined, installation is done
+ to c-ares source folder where Makefile.msvc file is located.
+
+
+ How to build using Visual Studio 6 IDE
+ --------------------------------------
+
+ A VC++ 6.0 reference workspace (vc6aws.dsw) is available within the 'vc'
+ folder to allow proper building of the library and sample programs.
+
+ 1) Open the vc6aws.dsw workspace with MSVC6's IDE.
+ 2) Select 'Build' from top menu.
+ 3) Select 'Batch Build' from dropdown menu.
+ 4) Make sure that the sixteen project configurations are 'checked'.
+ 5) Click on the 'Build' button.
+ 6) Once the sixteen project configurations are built you are done.
+
+ Dynamic and static c-ares libraries are built in debug and release flavours,
+ and can be located each one in its own subdirectory, dll-debug, dll-release,
+ lib-debug and lib-release, all of them below the 'vc\cares' subdirectory.
+
+ In the same way four executable versions of each sample program are built,
+ each using its respective library. The resulting sample executables are
+ located in its own subdirectory, dll-debug, dll-release, lib-debug and
+ lib-release, below the 'vc\acountry', 'vc\adig' and 'vc\ahost'folders.
+
+ These reference VC++ 6.0 configurations are generated using the dynamic CRT.
+
+
+ How to build using Visual Studio 2003 or newer IDE
+ --------------------------------------------------
+
+ First you have to convert the VC++ 6.0 reference workspace and project files
+ to the Visual Studio IDE version you are using, following next steps:
+
+ 1) Open vc\vc6aws.dsw with VS20XX.
+ 2) Allow VS20XX to update all projects and workspaces.
+ 3) Save ALL and close VS20XX.
+ 4) Open vc\vc6aws.sln with VS20XX.
+ 5) Select batch build, check 'all' projects and click 'build' button.
+
+ Same comments relative to generated files and folders as done above for
+ Visual Studio 6 IDE apply here.
+
+
+ Relationship between c-ares library file names and versions
+ -----------------------------------------------------------
+
+ c-ares static release library version files:
+
+ libcares.lib -> static release library
+
+ c-ares static debug library version files:
+
+ libcaresd.lib -> static debug library
+
+ c-ares dynamic release library version files:
+
+ cares.dll -> dynamic release library
+ cares.lib -> import library for the dynamic release library
+ cares.exp -> export file for the dynamic release library
+
+ c-ares dynamic debug library version files:
+
+ caresd.dll -> dynamic debug library
+ caresd.lib -> import library for the dynamic debug library
+ caresd.exp -> export file for the dynamic debug library
+ caresd.pdb -> debug symbol file for the dynamic debug library
+
+
+ How to use c-ares static libraries
+ ----------------------------------
+
+ When using the c-ares static library in your program, you will have to
+ define preprocessor symbol CARES_STATICLIB while building your program,
+ otherwise you will get errors at linkage stage.
+
+
+Have Fun!
-
- ___ __ _ _ __ ___ ___
- / __| ___ / _` | '__/ _ \/ __|
- | (_ |___| (_| | | | __/\__ \
- \___| \__,_|_| \___||___/
-
-
- How to build c-ares using MSVC or Visual Studio
- =================================================
-
-
-
- How to build using MSVC from the command line
- ---------------------------------------------
-
- Open a command prompt window and ensure that the environment is properly
- set up in order to use MSVC or Visual Studio compiler tools.
-
- Change to c-ares source folder where Makefile.msvc file is located and run:
-
- > nmake -f Makefile.msvc
-
- This will build all c-ares libraries as well as three sample programs.
-
- Once the above command has finished a new folder named MSVCXX will exist
- below the folder where makefile.msvc is found. The name of the folder
- depends on the MSVC compiler version being used to build c-ares.
-
- Below the MSVCXX folder there will exist four folders named 'cares',
- 'ahost', 'acountry', and 'adig'. The 'cares' folder is the one that
- holds the c-ares libraries you have just generated, the other three
- hold sample programs that use the libraries.
-
- The above command builds four versions of the c-ares library, dynamic
- and static versions and each one in release and debug flavours. Each
- of these is found in folders named dll-release, dll-debug, lib-release,
- and lib-debug, which hang from the 'cares' folder mentioned above. Each
- sample program also has folders with the same names to reflect which
- library version it is using.
-
-
- How to install using MSVC from the command line
- -----------------------------------------------
-
- In order to allow easy usage of c-ares libraries it may be convenient to
- install c-ares libraries and header files to a common subdirectory tree.
-
- Once that c-ares libraries have been built using procedure described above,
- use same command prompt window to define environment variable INSTALL_DIR
- to designate the top subdirectory where installation of c-ares libraries and
- header files will be done.
-
- > set INSTALL_DIR=c:\c-ares
-
- Afterwards, run following command to actually perform the installation:
-
- > nmake -f Makefile.msvc install
-
- Installation procedure will copy c-ares libraries to subdirectory 'lib' and
- c-ares header files to subdirectory 'include' below the INSTALL_DIR subdir.
-
- When environment variable INSTALL_DIR is not defined, installation is done
- to c-ares source folder where Makefile.msvc file is located.
-
-
- How to build using Visual Studio 6 IDE
- --------------------------------------
-
- A VC++ 6.0 reference workspace (vc6aws.dsw) is available within the 'vc'
- folder to allow proper building of the library and sample programs.
-
- 1) Open the vc6aws.dsw workspace with MSVC6's IDE.
- 2) Select 'Build' from top menu.
- 3) Select 'Batch Build' from dropdown menu.
- 4) Make sure that the sixteen project configurations are 'checked'.
- 5) Click on the 'Build' button.
- 6) Once the sixteen project configurations are built you are done.
-
- Dynamic and static c-ares libraries are built in debug and release flavours,
- and can be located each one in its own subdirectory, dll-debug, dll-release,
- lib-debug and lib-release, all of them below the 'vc\cares' subdirectory.
-
- In the same way four executable versions of each sample program are built,
- each using its respective library. The resulting sample executables are
- located in its own subdirectory, dll-debug, dll-release, lib-debug and
- lib-release, below the 'vc\acountry', 'vc\adig' and 'vc\ahost'folders.
-
- These reference VC++ 6.0 configurations are generated using the dynamic CRT.
-
-
- How to build using Visual Studio 2003 or newer IDE
- --------------------------------------------------
-
- First you have to convert the VC++ 6.0 reference workspace and project files
- to the Visual Studio IDE version you are using, following next steps:
-
- 1) Open vc\vc6aws.dsw with VS20XX.
- 2) Allow VS20XX to update all projects and workspaces.
- 3) Save ALL and close VS20XX.
- 4) Open vc\vc6aws.sln with VS20XX.
- 5) Select batch build, check 'all' projects and click 'build' button.
-
- Same comments relative to generated files and folders as done above for
- Visual Studio 6 IDE apply here.
-
-
- Relationship between c-ares library file names and versions
- -----------------------------------------------------------
-
- c-ares static release library version files:
-
- libcares.lib -> static release library
-
- c-ares static debug library version files:
-
- libcaresd.lib -> static debug library
-
- c-ares dynamic release library version files:
-
- cares.dll -> dynamic release library
- cares.lib -> import library for the dynamic release library
- cares.exp -> export file for the dynamic release library
-
- c-ares dynamic debug library version files:
-
- caresd.dll -> dynamic debug library
- caresd.lib -> import library for the dynamic debug library
- caresd.exp -> export file for the dynamic debug library
- caresd.pdb -> debug symbol file for the dynamic debug library
-
-
- How to use c-ares static libraries
- ----------------------------------
-
- When using the c-ares static library in your program, you will have to
- define preprocessor symbol CARES_STATICLIB while building your program,
- otherwise you will get errors at linkage stage.
-
-
-Have Fun!
-
diff --git a/contrib/libs/c-ares/RELEASE-NOTES b/contrib/libs/c-ares/RELEASE-NOTES
index 00295ee4af..7a9d75fe78 100644
--- a/contrib/libs/c-ares/RELEASE-NOTES
+++ b/contrib/libs/c-ares/RELEASE-NOTES
@@ -1,11 +1,11 @@
c-ares version 1.16.1
-
+
Security:
o Prevent possible use-after-free and double-free in ares_getaddrinfo() if
ares_destroy() is called prior to ares_getaddrinfo() completing. Reported
by Jann Horn at Google Project Zero.
-Changes:
+Changes:
o Allow TXT records on CHAOS qclass. Used for retriving things like
version.bind, version.server, authoris.bind, hostname.bind, and id.server.
[3]
@@ -18,12 +18,12 @@ Bug fixes:
o CMake build system should populate the INCLUDE_DIRECTORIES property of
installed targets [2]
o Correct macros in use for the ares_getaddrinfo.3 man page
-
-Thanks go to these friendly people for their efforts and contributions:
+
+Thanks go to these friendly people for their efforts and contributions:
Brad House (@bradh352), Daniel Stenberg (@bagder), Dmitry Igrishin (@dmitigr),
Jann Horn, Shelly Vohr, Teemu R (@rytilahti)
(6 contributors)
-
+
References to bug reports and discussions on issues:
[1] = https://github.com/c-ares/c-ares/pull/328
[2] = https://github.com/c-ares/c-ares/pull/323
diff --git a/contrib/libs/c-ares/TODO b/contrib/libs/c-ares/TODO
index 7b4e0d4975..fa31cea6fb 100644
--- a/contrib/libs/c-ares/TODO
+++ b/contrib/libs/c-ares/TODO
@@ -1,23 +1,23 @@
-TODO
-====
-
-ares_reinit()
-
-- To allow an app to force a re-read of /etc/resolv.conf etc, pretty much
- like the res_init() resolver function offers
-
-ares_gethostbyname
-
-- When built to support IPv6, it needs to also support PF_UNSPEC or similar,
- so that an application can ask for any protocol and then c-ares would return
- all known resolves and not just explicitly IPv4 _or_ IPv6 resolves.
-
-ares_process
-
-- Upon next ABI breakage ares_process() should be changed to return 'int'
- and return ARES_ENOTINITIALIZED if ares_library_init() has not been called.
-
-ares_process_fd
-
-- Upon next ABI breakage ares_process_fd() should be changed to return
- 'int' and return ARES_ENOTINITIALIZED if library has not been initialized.
+TODO
+====
+
+ares_reinit()
+
+- To allow an app to force a re-read of /etc/resolv.conf etc, pretty much
+ like the res_init() resolver function offers
+
+ares_gethostbyname
+
+- When built to support IPv6, it needs to also support PF_UNSPEC or similar,
+ so that an application can ask for any protocol and then c-ares would return
+ all known resolves and not just explicitly IPv4 _or_ IPv6 resolves.
+
+ares_process
+
+- Upon next ABI breakage ares_process() should be changed to return 'int'
+ and return ARES_ENOTINITIALIZED if ares_library_init() has not been called.
+
+ares_process_fd
+
+- Upon next ABI breakage ares_process_fd() should be changed to return
+ 'int' and return ARES_ENOTINITIALIZED if library has not been initialized.
diff --git a/contrib/libs/c-ares/acountry.c b/contrib/libs/c-ares/acountry.c
index 9fcfc4bab6..c486824434 100644
--- a/contrib/libs/c-ares/acountry.c
+++ b/contrib/libs/c-ares/acountry.c
@@ -1,626 +1,626 @@
-/*
- *
- * IP-address/hostname to country converter.
- *
- * Problem; you want to know where IP a.b.c.d is located.
- *
- * Use ares_gethostbyname ("d.c.b.a.zz.countries.nerd.dk")
- * and get the CNAME (host->h_name). Result will be:
- * CNAME = zz<CC>.countries.nerd.dk with address 127.0.x.y (ver 1) or
- * CNAME = <a.b.c.d>.zz.countries.nerd.dk with address 127.0.x.y (ver 2)
- *
- * The 2 letter country code is in <CC> and the ISO-3166 country
- * number is in x.y (number = x*256 + y). Version 2 of the protocol is missing
- * the <CC> number.
- *
- * Ref: http://countries.nerd.dk/more.html
- *
+/*
+ *
+ * IP-address/hostname to country converter.
+ *
+ * Problem; you want to know where IP a.b.c.d is located.
+ *
+ * Use ares_gethostbyname ("d.c.b.a.zz.countries.nerd.dk")
+ * and get the CNAME (host->h_name). Result will be:
+ * CNAME = zz<CC>.countries.nerd.dk with address 127.0.x.y (ver 1) or
+ * CNAME = <a.b.c.d>.zz.countries.nerd.dk with address 127.0.x.y (ver 2)
+ *
+ * The 2 letter country code is in <CC> and the ISO-3166 country
+ * number is in x.y (number = x*256 + y). Version 2 of the protocol is missing
+ * the <CC> number.
+ *
+ * Ref: http://countries.nerd.dk/more.html
+ *
* Written by G. Vanem <gvanem@yahoo.no> 2006, 2007
- *
- * NB! This program may not be big-endian aware.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-
-#if defined(WIN32) && !defined(WATT32)
- #include <winsock.h>
-#else
- #include <arpa/inet.h>
- #include <netinet/in.h>
- #include <netdb.h>
-#endif
-
-#include "ares.h"
-#include "ares_getopt.h"
-#include "ares_nowarn.h"
-
-#ifndef HAVE_STRDUP
-# include "ares_strdup.h"
-# define strdup(ptr) ares_strdup(ptr)
-#endif
-
-#ifndef HAVE_STRCASECMP
-# include "ares_strcasecmp.h"
-# define strcasecmp(p1,p2) ares_strcasecmp(p1,p2)
-#endif
-
-#ifndef HAVE_STRNCASECMP
-# include "ares_strcasecmp.h"
-# define strncasecmp(p1,p2,n) ares_strncasecmp(p1,p2,n)
-#endif
-
-#ifndef INADDR_NONE
-#define INADDR_NONE 0xffffffff
-#endif
-
+ *
+ * NB! This program may not be big-endian aware.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#if defined(WIN32) && !defined(WATT32)
+ #include <winsock.h>
+#else
+ #include <arpa/inet.h>
+ #include <netinet/in.h>
+ #include <netdb.h>
+#endif
+
+#include "ares.h"
+#include "ares_getopt.h"
+#include "ares_nowarn.h"
+
+#ifndef HAVE_STRDUP
+# include "ares_strdup.h"
+# define strdup(ptr) ares_strdup(ptr)
+#endif
+
+#ifndef HAVE_STRCASECMP
+# include "ares_strcasecmp.h"
+# define strcasecmp(p1,p2) ares_strcasecmp(p1,p2)
+#endif
+
+#ifndef HAVE_STRNCASECMP
+# include "ares_strcasecmp.h"
+# define strncasecmp(p1,p2,n) ares_strncasecmp(p1,p2,n)
+#endif
+
+#ifndef INADDR_NONE
+#define INADDR_NONE 0xffffffff
+#endif
+
/* By using a double cast, we can get rid of the bogus warning of
* warning: cast from 'const struct sockaddr *' to 'const struct sockaddr_in6 *' increases required alignment from 1 to 4 [-Wcast-align]
*/
#define CARES_INADDR_CAST(type, var) ((type)((void *)var))
static const char *usage = "acountry [-?hdv] {host|addr} ...\n";
-static const char nerd_fmt[] = "%u.%u.%u.%u.zz.countries.nerd.dk";
+static const char nerd_fmt[] = "%u.%u.%u.%u.zz.countries.nerd.dk";
static const char *nerd_ver1 = nerd_fmt + 14; /* .countries.nerd.dk */
static const char *nerd_ver2 = nerd_fmt + 11; /* .zz.countries.nerd.dk */
-static int verbose = 0;
-
-#define TRACE(fmt) do { \
- if (verbose > 0) \
- printf fmt ; \
- } WHILE_FALSE
-
-static void wait_ares(ares_channel channel);
-static void callback(void *arg, int status, int timeouts, struct hostent *host);
-static void callback2(void *arg, int status, int timeouts, struct hostent *host);
-static void find_country_from_cname(const char *cname, struct in_addr addr);
-
-static void Abort(const char *fmt, ...)
-{
- va_list args;
- va_start(args, fmt);
- vfprintf(stderr, fmt, args);
- va_end(args);
- exit(1);
-}
-
-int main(int argc, char **argv)
-{
- ares_channel channel;
- int ch, status;
-
-#if defined(WIN32) && !defined(WATT32)
- WORD wVersionRequested = MAKEWORD(USE_WINSOCK,USE_WINSOCK);
- WSADATA wsaData;
- WSAStartup(wVersionRequested, &wsaData);
-#endif
-
- status = ares_library_init(ARES_LIB_INIT_ALL);
- if (status != ARES_SUCCESS)
- {
- fprintf(stderr, "ares_library_init: %s\n", ares_strerror(status));
- return 1;
- }
-
- while ((ch = ares_getopt(argc, argv, "dvh?")) != -1)
- switch (ch)
- {
- case 'd':
-#ifdef WATT32
- dbug_init();
-#endif
- break;
- case 'v':
- verbose++;
- break;
- case 'h':
- case '?':
- default:
- Abort(usage);
- }
-
- argc -= optind;
- argv += optind;
- if (argc < 1)
- Abort(usage);
-
- status = ares_init(&channel);
- if (status != ARES_SUCCESS)
- {
- fprintf(stderr, "ares_init: %s\n", ares_strerror(status));
- return 1;
- }
-
- /* Initiate the queries, one per command-line argument. */
- for ( ; *argv; argv++)
- {
- struct in_addr addr;
- char buf[100];
-
- /* If this fails, assume '*argv' is a host-name that
- * must be resolved first
- */
- if (ares_inet_pton(AF_INET, *argv, &addr) != 1)
- {
- ares_gethostbyname(channel, *argv, AF_INET, callback2, &addr);
- wait_ares(channel);
- if (addr.s_addr == INADDR_NONE)
- {
- printf("Failed to lookup %s\n", *argv);
- continue;
- }
- }
-
- sprintf(buf, nerd_fmt,
- (unsigned int)(addr.s_addr >> 24),
- (unsigned int)((addr.s_addr >> 16) & 255),
- (unsigned int)((addr.s_addr >> 8) & 255),
- (unsigned int)(addr.s_addr & 255));
- TRACE(("Looking up %s...", buf));
- fflush(stdout);
- ares_gethostbyname(channel, buf, AF_INET, callback, buf);
- }
-
- wait_ares(channel);
- ares_destroy(channel);
-
- ares_library_cleanup();
-
-#if defined(WIN32) && !defined(WATT32)
- WSACleanup();
-#endif
-
- return 0;
-}
-
-/*
- * Wait for the queries to complete.
- */
-static void wait_ares(ares_channel channel)
-{
- for (;;)
- {
- struct timeval *tvp, tv;
- fd_set read_fds, write_fds;
- int nfds;
-
- FD_ZERO(&read_fds);
- FD_ZERO(&write_fds);
- nfds = ares_fds(channel, &read_fds, &write_fds);
- if (nfds == 0)
- break;
- tvp = ares_timeout(channel, NULL, &tv);
+static int verbose = 0;
+
+#define TRACE(fmt) do { \
+ if (verbose > 0) \
+ printf fmt ; \
+ } WHILE_FALSE
+
+static void wait_ares(ares_channel channel);
+static void callback(void *arg, int status, int timeouts, struct hostent *host);
+static void callback2(void *arg, int status, int timeouts, struct hostent *host);
+static void find_country_from_cname(const char *cname, struct in_addr addr);
+
+static void Abort(const char *fmt, ...)
+{
+ va_list args;
+ va_start(args, fmt);
+ vfprintf(stderr, fmt, args);
+ va_end(args);
+ exit(1);
+}
+
+int main(int argc, char **argv)
+{
+ ares_channel channel;
+ int ch, status;
+
+#if defined(WIN32) && !defined(WATT32)
+ WORD wVersionRequested = MAKEWORD(USE_WINSOCK,USE_WINSOCK);
+ WSADATA wsaData;
+ WSAStartup(wVersionRequested, &wsaData);
+#endif
+
+ status = ares_library_init(ARES_LIB_INIT_ALL);
+ if (status != ARES_SUCCESS)
+ {
+ fprintf(stderr, "ares_library_init: %s\n", ares_strerror(status));
+ return 1;
+ }
+
+ while ((ch = ares_getopt(argc, argv, "dvh?")) != -1)
+ switch (ch)
+ {
+ case 'd':
+#ifdef WATT32
+ dbug_init();
+#endif
+ break;
+ case 'v':
+ verbose++;
+ break;
+ case 'h':
+ case '?':
+ default:
+ Abort(usage);
+ }
+
+ argc -= optind;
+ argv += optind;
+ if (argc < 1)
+ Abort(usage);
+
+ status = ares_init(&channel);
+ if (status != ARES_SUCCESS)
+ {
+ fprintf(stderr, "ares_init: %s\n", ares_strerror(status));
+ return 1;
+ }
+
+ /* Initiate the queries, one per command-line argument. */
+ for ( ; *argv; argv++)
+ {
+ struct in_addr addr;
+ char buf[100];
+
+ /* If this fails, assume '*argv' is a host-name that
+ * must be resolved first
+ */
+ if (ares_inet_pton(AF_INET, *argv, &addr) != 1)
+ {
+ ares_gethostbyname(channel, *argv, AF_INET, callback2, &addr);
+ wait_ares(channel);
+ if (addr.s_addr == INADDR_NONE)
+ {
+ printf("Failed to lookup %s\n", *argv);
+ continue;
+ }
+ }
+
+ sprintf(buf, nerd_fmt,
+ (unsigned int)(addr.s_addr >> 24),
+ (unsigned int)((addr.s_addr >> 16) & 255),
+ (unsigned int)((addr.s_addr >> 8) & 255),
+ (unsigned int)(addr.s_addr & 255));
+ TRACE(("Looking up %s...", buf));
+ fflush(stdout);
+ ares_gethostbyname(channel, buf, AF_INET, callback, buf);
+ }
+
+ wait_ares(channel);
+ ares_destroy(channel);
+
+ ares_library_cleanup();
+
+#if defined(WIN32) && !defined(WATT32)
+ WSACleanup();
+#endif
+
+ return 0;
+}
+
+/*
+ * Wait for the queries to complete.
+ */
+static void wait_ares(ares_channel channel)
+{
+ for (;;)
+ {
+ struct timeval *tvp, tv;
+ fd_set read_fds, write_fds;
+ int nfds;
+
+ FD_ZERO(&read_fds);
+ FD_ZERO(&write_fds);
+ nfds = ares_fds(channel, &read_fds, &write_fds);
+ if (nfds == 0)
+ break;
+ tvp = ares_timeout(channel, NULL, &tv);
nfds = select(nfds, &read_fds, &write_fds, NULL, tvp);
if (nfds < 0)
continue;
- ares_process(channel, &read_fds, &write_fds);
- }
-}
-
-/*
- * This is the callback used when we have the IP-address of interest.
- * Extract the CNAME and figure out the country-code from it.
- */
-static void callback(void *arg, int status, int timeouts, struct hostent *host)
-{
- const char *name = (const char*)arg;
- const char *cname;
- char buf[20];
-
- (void)timeouts;
-
- if (!host || status != ARES_SUCCESS)
- {
- printf("Failed to lookup %s: %s\n", name, ares_strerror(status));
- return;
- }
-
- TRACE(("\nFound address %s, name %s\n",
- ares_inet_ntop(AF_INET,(const char*)host->h_addr,buf,sizeof(buf)),
- host->h_name));
-
- cname = host->h_name; /* CNAME gets put here */
- if (!cname)
- printf("Failed to get CNAME for %s\n", name);
- else
+ ares_process(channel, &read_fds, &write_fds);
+ }
+}
+
+/*
+ * This is the callback used when we have the IP-address of interest.
+ * Extract the CNAME and figure out the country-code from it.
+ */
+static void callback(void *arg, int status, int timeouts, struct hostent *host)
+{
+ const char *name = (const char*)arg;
+ const char *cname;
+ char buf[20];
+
+ (void)timeouts;
+
+ if (!host || status != ARES_SUCCESS)
+ {
+ printf("Failed to lookup %s: %s\n", name, ares_strerror(status));
+ return;
+ }
+
+ TRACE(("\nFound address %s, name %s\n",
+ ares_inet_ntop(AF_INET,(const char*)host->h_addr,buf,sizeof(buf)),
+ host->h_name));
+
+ cname = host->h_name; /* CNAME gets put here */
+ if (!cname)
+ printf("Failed to get CNAME for %s\n", name);
+ else
find_country_from_cname(cname, *(CARES_INADDR_CAST(struct in_addr *, host->h_addr)));
-}
-
-/*
- * This is the callback used to obtain the IP-address of the host of interest.
- */
-static void callback2(void *arg, int status, int timeouts, struct hostent *host)
-{
- struct in_addr *addr = (struct in_addr*) arg;
-
- (void)timeouts;
- if (!host || status != ARES_SUCCESS)
- memset(addr, INADDR_NONE, sizeof(*addr));
- else
- memcpy(addr, host->h_addr, sizeof(*addr));
-}
-
-struct search_list {
- int country_number; /* ISO-3166 country number */
- char short_name[3]; /* A2 short country code */
- const char *long_name; /* normal country name */
- };
-
-static const struct search_list *list_lookup(int number, const struct search_list *list, int num)
-{
- while (num > 0 && list->long_name)
- {
- if (list->country_number == number)
- return (list);
- num--;
- list++;
- }
- return (NULL);
-}
-
-/*
- * Ref: ftp://ftp.ripe.net/iso3166-countrycodes.txt
- */
-static const struct search_list country_list[] = {
- { 4, "af", "Afghanistan" },
+}
+
+/*
+ * This is the callback used to obtain the IP-address of the host of interest.
+ */
+static void callback2(void *arg, int status, int timeouts, struct hostent *host)
+{
+ struct in_addr *addr = (struct in_addr*) arg;
+
+ (void)timeouts;
+ if (!host || status != ARES_SUCCESS)
+ memset(addr, INADDR_NONE, sizeof(*addr));
+ else
+ memcpy(addr, host->h_addr, sizeof(*addr));
+}
+
+struct search_list {
+ int country_number; /* ISO-3166 country number */
+ char short_name[3]; /* A2 short country code */
+ const char *long_name; /* normal country name */
+ };
+
+static const struct search_list *list_lookup(int number, const struct search_list *list, int num)
+{
+ while (num > 0 && list->long_name)
+ {
+ if (list->country_number == number)
+ return (list);
+ num--;
+ list++;
+ }
+ return (NULL);
+}
+
+/*
+ * Ref: ftp://ftp.ripe.net/iso3166-countrycodes.txt
+ */
+static const struct search_list country_list[] = {
+ { 4, "af", "Afghanistan" },
{ 248, "ax", "Åland Island" },
- { 8, "al", "Albania" },
- { 12, "dz", "Algeria" },
- { 16, "as", "American Samoa" },
- { 20, "ad", "Andorra" },
- { 24, "ao", "Angola" },
- { 660, "ai", "Anguilla" },
- { 10, "aq", "Antarctica" },
- { 28, "ag", "Antigua & Barbuda" },
- { 32, "ar", "Argentina" },
- { 51, "am", "Armenia" },
- { 533, "aw", "Aruba" },
- { 36, "au", "Australia" },
- { 40, "at", "Austria" },
- { 31, "az", "Azerbaijan" },
- { 44, "bs", "Bahamas" },
- { 48, "bh", "Bahrain" },
- { 50, "bd", "Bangladesh" },
- { 52, "bb", "Barbados" },
- { 112, "by", "Belarus" },
- { 56, "be", "Belgium" },
- { 84, "bz", "Belize" },
- { 204, "bj", "Benin" },
- { 60, "bm", "Bermuda" },
- { 64, "bt", "Bhutan" },
- { 68, "bo", "Bolivia" },
- { 70, "ba", "Bosnia & Herzegowina" },
- { 72, "bw", "Botswana" },
- { 74, "bv", "Bouvet Island" },
- { 76, "br", "Brazil" },
- { 86, "io", "British Indian Ocean Territory" },
- { 96, "bn", "Brunei Darussalam" },
- { 100, "bg", "Bulgaria" },
- { 854, "bf", "Burkina Faso" },
- { 108, "bi", "Burundi" },
- { 116, "kh", "Cambodia" },
- { 120, "cm", "Cameroon" },
- { 124, "ca", "Canada" },
- { 132, "cv", "Cape Verde" },
- { 136, "ky", "Cayman Islands" },
- { 140, "cf", "Central African Republic" },
- { 148, "td", "Chad" },
- { 152, "cl", "Chile" },
- { 156, "cn", "China" },
- { 162, "cx", "Christmas Island" },
- { 166, "cc", "Cocos Islands" },
- { 170, "co", "Colombia" },
- { 174, "km", "Comoros" },
- { 178, "cg", "Congo" },
- { 180, "cd", "Congo" },
- { 184, "ck", "Cook Islands" },
- { 188, "cr", "Costa Rica" },
- { 384, "ci", "Cote d'Ivoire" },
- { 191, "hr", "Croatia" },
- { 192, "cu", "Cuba" },
- { 196, "cy", "Cyprus" },
- { 203, "cz", "Czech Republic" },
- { 208, "dk", "Denmark" },
- { 262, "dj", "Djibouti" },
- { 212, "dm", "Dominica" },
- { 214, "do", "Dominican Republic" },
- { 218, "ec", "Ecuador" },
- { 818, "eg", "Egypt" },
- { 222, "sv", "El Salvador" },
- { 226, "gq", "Equatorial Guinea" },
- { 232, "er", "Eritrea" },
- { 233, "ee", "Estonia" },
- { 231, "et", "Ethiopia" },
- { 238, "fk", "Falkland Islands" },
- { 234, "fo", "Faroe Islands" },
- { 242, "fj", "Fiji" },
- { 246, "fi", "Finland" },
- { 250, "fr", "France" },
- { 249, "fx", "France, Metropolitan" },
- { 254, "gf", "French Guiana" },
- { 258, "pf", "French Polynesia" },
- { 260, "tf", "French Southern Territories" },
- { 266, "ga", "Gabon" },
- { 270, "gm", "Gambia" },
- { 268, "ge", "Georgia" },
- { 276, "de", "Germany" },
- { 288, "gh", "Ghana" },
- { 292, "gi", "Gibraltar" },
- { 300, "gr", "Greece" },
- { 304, "gl", "Greenland" },
- { 308, "gd", "Grenada" },
- { 312, "gp", "Guadeloupe" },
- { 316, "gu", "Guam" },
- { 320, "gt", "Guatemala" },
- { 324, "gn", "Guinea" },
- { 624, "gw", "Guinea-Bissau" },
- { 328, "gy", "Guyana" },
- { 332, "ht", "Haiti" },
- { 334, "hm", "Heard & Mc Donald Islands" },
- { 336, "va", "Vatican City" },
- { 340, "hn", "Honduras" },
- { 344, "hk", "Hong kong" },
- { 348, "hu", "Hungary" },
- { 352, "is", "Iceland" },
- { 356, "in", "India" },
- { 360, "id", "Indonesia" },
- { 364, "ir", "Iran" },
- { 368, "iq", "Iraq" },
- { 372, "ie", "Ireland" },
- { 376, "il", "Israel" },
- { 380, "it", "Italy" },
- { 388, "jm", "Jamaica" },
- { 392, "jp", "Japan" },
- { 400, "jo", "Jordan" },
- { 398, "kz", "Kazakhstan" },
- { 404, "ke", "Kenya" },
- { 296, "ki", "Kiribati" },
- { 408, "kp", "Korea (north)" },
- { 410, "kr", "Korea (south)" },
- { 414, "kw", "Kuwait" },
- { 417, "kg", "Kyrgyzstan" },
- { 418, "la", "Laos" },
- { 428, "lv", "Latvia" },
- { 422, "lb", "Lebanon" },
- { 426, "ls", "Lesotho" },
- { 430, "lr", "Liberia" },
- { 434, "ly", "Libya" },
- { 438, "li", "Liechtenstein" },
- { 440, "lt", "Lithuania" },
- { 442, "lu", "Luxembourg" },
- { 446, "mo", "Macao" },
- { 807, "mk", "Macedonia" },
- { 450, "mg", "Madagascar" },
- { 454, "mw", "Malawi" },
- { 458, "my", "Malaysia" },
- { 462, "mv", "Maldives" },
- { 466, "ml", "Mali" },
- { 470, "mt", "Malta" },
- { 584, "mh", "Marshall Islands" },
- { 474, "mq", "Martinique" },
- { 478, "mr", "Mauritania" },
- { 480, "mu", "Mauritius" },
- { 175, "yt", "Mayotte" },
- { 484, "mx", "Mexico" },
- { 583, "fm", "Micronesia" },
- { 498, "md", "Moldova" },
- { 492, "mc", "Monaco" },
- { 496, "mn", "Mongolia" },
- { 500, "ms", "Montserrat" },
- { 504, "ma", "Morocco" },
- { 508, "mz", "Mozambique" },
- { 104, "mm", "Myanmar" },
- { 516, "na", "Namibia" },
- { 520, "nr", "Nauru" },
- { 524, "np", "Nepal" },
- { 528, "nl", "Netherlands" },
- { 530, "an", "Netherlands Antilles" },
- { 540, "nc", "New Caledonia" },
- { 554, "nz", "New Zealand" },
- { 558, "ni", "Nicaragua" },
- { 562, "ne", "Niger" },
- { 566, "ng", "Nigeria" },
- { 570, "nu", "Niue" },
- { 574, "nf", "Norfolk Island" },
- { 580, "mp", "Northern Mariana Islands" },
- { 578, "no", "Norway" },
- { 512, "om", "Oman" },
- { 586, "pk", "Pakistan" },
- { 585, "pw", "Palau" },
- { 275, "ps", "Palestinian Territory" },
- { 591, "pa", "Panama" },
- { 598, "pg", "Papua New Guinea" },
- { 600, "py", "Paraguay" },
- { 604, "pe", "Peru" },
- { 608, "ph", "Philippines" },
- { 612, "pn", "Pitcairn" },
- { 616, "pl", "Poland" },
- { 620, "pt", "Portugal" },
- { 630, "pr", "Puerto Rico" },
- { 634, "qa", "Qatar" },
- { 638, "re", "Reunion" },
- { 642, "ro", "Romania" },
- { 643, "ru", "Russia" },
- { 646, "rw", "Rwanda" },
- { 659, "kn", "Saint Kitts & Nevis" },
- { 662, "lc", "Saint Lucia" },
- { 670, "vc", "Saint Vincent" },
- { 882, "ws", "Samoa" },
- { 674, "sm", "San Marino" },
- { 678, "st", "Sao Tome & Principe" },
- { 682, "sa", "Saudi Arabia" },
- { 686, "sn", "Senegal" },
- { 891, "cs", "Serbia and Montenegro" },
- { 690, "sc", "Seychelles" },
- { 694, "sl", "Sierra Leone" },
- { 702, "sg", "Singapore" },
- { 703, "sk", "Slovakia" },
- { 705, "si", "Slovenia" },
- { 90, "sb", "Solomon Islands" },
- { 706, "so", "Somalia" },
- { 710, "za", "South Africa" },
- { 239, "gs", "South Georgia" },
- { 724, "es", "Spain" },
- { 144, "lk", "Sri Lanka" },
- { 654, "sh", "St. Helena" },
- { 666, "pm", "St. Pierre & Miquelon" },
- { 736, "sd", "Sudan" },
- { 740, "sr", "Suriname" },
- { 744, "sj", "Svalbard & Jan Mayen Islands" },
- { 748, "sz", "Swaziland" },
- { 752, "se", "Sweden" },
- { 756, "ch", "Switzerland" },
- { 760, "sy", "Syrian Arab Republic" },
- { 626, "tl", "Timor-Leste" },
- { 158, "tw", "Taiwan" },
- { 762, "tj", "Tajikistan" },
- { 834, "tz", "Tanzania" },
- { 764, "th", "Thailand" },
- { 768, "tg", "Togo" },
- { 772, "tk", "Tokelau" },
- { 776, "to", "Tonga" },
- { 780, "tt", "Trinidad & Tobago" },
- { 788, "tn", "Tunisia" },
- { 792, "tr", "Turkey" },
- { 795, "tm", "Turkmenistan" },
- { 796, "tc", "Turks & Caicos Islands" },
- { 798, "tv", "Tuvalu" },
- { 800, "ug", "Uganda" },
- { 804, "ua", "Ukraine" },
- { 784, "ae", "United Arab Emirates" },
- { 826, "gb", "United Kingdom" },
- { 840, "us", "United States" },
- { 581, "um", "United States Minor Outlying Islands" },
- { 858, "uy", "Uruguay" },
- { 860, "uz", "Uzbekistan" },
- { 548, "vu", "Vanuatu" },
- { 862, "ve", "Venezuela" },
- { 704, "vn", "Vietnam" },
- { 92, "vg", "Virgin Islands (British)" },
- { 850, "vi", "Virgin Islands (US)" },
- { 876, "wf", "Wallis & Futuna Islands" },
- { 732, "eh", "Western Sahara" },
- { 887, "ye", "Yemen" },
- { 894, "zm", "Zambia" },
- { 716, "zw", "Zimbabwe" }
- };
-
-/*
- * Check if start of 'str' is simply an IPv4 address.
- */
-#define BYTE_OK(x) ((x) >= 0 && (x) <= 255)
-
-static int is_addr(char *str, char **end)
-{
- int a0, a1, a2, a3, num, rc = 0, length = 0;
-
- num = sscanf(str,"%3d.%3d.%3d.%3d%n",&a0,&a1,&a2,&a3,&length);
- if( (num == 4) &&
- BYTE_OK(a0) && BYTE_OK(a1) && BYTE_OK(a2) && BYTE_OK(a3) &&
- length >= (3+4))
- {
- rc = 1;
- *end = str + length;
- }
- return rc;
-}
-
-/*
- * Find the country-code and name from the CNAME. E.g.:
- * version 1: CNAME = zzno.countries.nerd.dk with address 127.0.2.66
- * yields ccode_A" = "no" and cnumber 578 (2.66).
- * version 2: CNAME = <a.b.c.d>.zz.countries.nerd.dk with address 127.0.2.66
- * yields cnumber 578 (2.66). ccode_A is "";
- */
-static void find_country_from_cname(const char *cname, struct in_addr addr)
-{
- const struct search_list *country;
- char ccode_A2[3], *ccopy, *dot_4;
- int cnumber, z0, z1, ver_1, ver_2;
- unsigned long ip;
-
- ip = ntohl(addr.s_addr);
- z0 = TOLOWER(cname[0]);
- z1 = TOLOWER(cname[1]);
- ccopy = strdup(cname);
- dot_4 = NULL;
-
- ver_1 = (z0 == 'z' && z1 == 'z' && !strcasecmp(cname+4,nerd_ver1));
- ver_2 = (is_addr(ccopy,&dot_4) && !strcasecmp(dot_4,nerd_ver2));
-
- if (ver_1)
- {
- const char *dot = strchr(cname, '.');
+ { 8, "al", "Albania" },
+ { 12, "dz", "Algeria" },
+ { 16, "as", "American Samoa" },
+ { 20, "ad", "Andorra" },
+ { 24, "ao", "Angola" },
+ { 660, "ai", "Anguilla" },
+ { 10, "aq", "Antarctica" },
+ { 28, "ag", "Antigua & Barbuda" },
+ { 32, "ar", "Argentina" },
+ { 51, "am", "Armenia" },
+ { 533, "aw", "Aruba" },
+ { 36, "au", "Australia" },
+ { 40, "at", "Austria" },
+ { 31, "az", "Azerbaijan" },
+ { 44, "bs", "Bahamas" },
+ { 48, "bh", "Bahrain" },
+ { 50, "bd", "Bangladesh" },
+ { 52, "bb", "Barbados" },
+ { 112, "by", "Belarus" },
+ { 56, "be", "Belgium" },
+ { 84, "bz", "Belize" },
+ { 204, "bj", "Benin" },
+ { 60, "bm", "Bermuda" },
+ { 64, "bt", "Bhutan" },
+ { 68, "bo", "Bolivia" },
+ { 70, "ba", "Bosnia & Herzegowina" },
+ { 72, "bw", "Botswana" },
+ { 74, "bv", "Bouvet Island" },
+ { 76, "br", "Brazil" },
+ { 86, "io", "British Indian Ocean Territory" },
+ { 96, "bn", "Brunei Darussalam" },
+ { 100, "bg", "Bulgaria" },
+ { 854, "bf", "Burkina Faso" },
+ { 108, "bi", "Burundi" },
+ { 116, "kh", "Cambodia" },
+ { 120, "cm", "Cameroon" },
+ { 124, "ca", "Canada" },
+ { 132, "cv", "Cape Verde" },
+ { 136, "ky", "Cayman Islands" },
+ { 140, "cf", "Central African Republic" },
+ { 148, "td", "Chad" },
+ { 152, "cl", "Chile" },
+ { 156, "cn", "China" },
+ { 162, "cx", "Christmas Island" },
+ { 166, "cc", "Cocos Islands" },
+ { 170, "co", "Colombia" },
+ { 174, "km", "Comoros" },
+ { 178, "cg", "Congo" },
+ { 180, "cd", "Congo" },
+ { 184, "ck", "Cook Islands" },
+ { 188, "cr", "Costa Rica" },
+ { 384, "ci", "Cote d'Ivoire" },
+ { 191, "hr", "Croatia" },
+ { 192, "cu", "Cuba" },
+ { 196, "cy", "Cyprus" },
+ { 203, "cz", "Czech Republic" },
+ { 208, "dk", "Denmark" },
+ { 262, "dj", "Djibouti" },
+ { 212, "dm", "Dominica" },
+ { 214, "do", "Dominican Republic" },
+ { 218, "ec", "Ecuador" },
+ { 818, "eg", "Egypt" },
+ { 222, "sv", "El Salvador" },
+ { 226, "gq", "Equatorial Guinea" },
+ { 232, "er", "Eritrea" },
+ { 233, "ee", "Estonia" },
+ { 231, "et", "Ethiopia" },
+ { 238, "fk", "Falkland Islands" },
+ { 234, "fo", "Faroe Islands" },
+ { 242, "fj", "Fiji" },
+ { 246, "fi", "Finland" },
+ { 250, "fr", "France" },
+ { 249, "fx", "France, Metropolitan" },
+ { 254, "gf", "French Guiana" },
+ { 258, "pf", "French Polynesia" },
+ { 260, "tf", "French Southern Territories" },
+ { 266, "ga", "Gabon" },
+ { 270, "gm", "Gambia" },
+ { 268, "ge", "Georgia" },
+ { 276, "de", "Germany" },
+ { 288, "gh", "Ghana" },
+ { 292, "gi", "Gibraltar" },
+ { 300, "gr", "Greece" },
+ { 304, "gl", "Greenland" },
+ { 308, "gd", "Grenada" },
+ { 312, "gp", "Guadeloupe" },
+ { 316, "gu", "Guam" },
+ { 320, "gt", "Guatemala" },
+ { 324, "gn", "Guinea" },
+ { 624, "gw", "Guinea-Bissau" },
+ { 328, "gy", "Guyana" },
+ { 332, "ht", "Haiti" },
+ { 334, "hm", "Heard & Mc Donald Islands" },
+ { 336, "va", "Vatican City" },
+ { 340, "hn", "Honduras" },
+ { 344, "hk", "Hong kong" },
+ { 348, "hu", "Hungary" },
+ { 352, "is", "Iceland" },
+ { 356, "in", "India" },
+ { 360, "id", "Indonesia" },
+ { 364, "ir", "Iran" },
+ { 368, "iq", "Iraq" },
+ { 372, "ie", "Ireland" },
+ { 376, "il", "Israel" },
+ { 380, "it", "Italy" },
+ { 388, "jm", "Jamaica" },
+ { 392, "jp", "Japan" },
+ { 400, "jo", "Jordan" },
+ { 398, "kz", "Kazakhstan" },
+ { 404, "ke", "Kenya" },
+ { 296, "ki", "Kiribati" },
+ { 408, "kp", "Korea (north)" },
+ { 410, "kr", "Korea (south)" },
+ { 414, "kw", "Kuwait" },
+ { 417, "kg", "Kyrgyzstan" },
+ { 418, "la", "Laos" },
+ { 428, "lv", "Latvia" },
+ { 422, "lb", "Lebanon" },
+ { 426, "ls", "Lesotho" },
+ { 430, "lr", "Liberia" },
+ { 434, "ly", "Libya" },
+ { 438, "li", "Liechtenstein" },
+ { 440, "lt", "Lithuania" },
+ { 442, "lu", "Luxembourg" },
+ { 446, "mo", "Macao" },
+ { 807, "mk", "Macedonia" },
+ { 450, "mg", "Madagascar" },
+ { 454, "mw", "Malawi" },
+ { 458, "my", "Malaysia" },
+ { 462, "mv", "Maldives" },
+ { 466, "ml", "Mali" },
+ { 470, "mt", "Malta" },
+ { 584, "mh", "Marshall Islands" },
+ { 474, "mq", "Martinique" },
+ { 478, "mr", "Mauritania" },
+ { 480, "mu", "Mauritius" },
+ { 175, "yt", "Mayotte" },
+ { 484, "mx", "Mexico" },
+ { 583, "fm", "Micronesia" },
+ { 498, "md", "Moldova" },
+ { 492, "mc", "Monaco" },
+ { 496, "mn", "Mongolia" },
+ { 500, "ms", "Montserrat" },
+ { 504, "ma", "Morocco" },
+ { 508, "mz", "Mozambique" },
+ { 104, "mm", "Myanmar" },
+ { 516, "na", "Namibia" },
+ { 520, "nr", "Nauru" },
+ { 524, "np", "Nepal" },
+ { 528, "nl", "Netherlands" },
+ { 530, "an", "Netherlands Antilles" },
+ { 540, "nc", "New Caledonia" },
+ { 554, "nz", "New Zealand" },
+ { 558, "ni", "Nicaragua" },
+ { 562, "ne", "Niger" },
+ { 566, "ng", "Nigeria" },
+ { 570, "nu", "Niue" },
+ { 574, "nf", "Norfolk Island" },
+ { 580, "mp", "Northern Mariana Islands" },
+ { 578, "no", "Norway" },
+ { 512, "om", "Oman" },
+ { 586, "pk", "Pakistan" },
+ { 585, "pw", "Palau" },
+ { 275, "ps", "Palestinian Territory" },
+ { 591, "pa", "Panama" },
+ { 598, "pg", "Papua New Guinea" },
+ { 600, "py", "Paraguay" },
+ { 604, "pe", "Peru" },
+ { 608, "ph", "Philippines" },
+ { 612, "pn", "Pitcairn" },
+ { 616, "pl", "Poland" },
+ { 620, "pt", "Portugal" },
+ { 630, "pr", "Puerto Rico" },
+ { 634, "qa", "Qatar" },
+ { 638, "re", "Reunion" },
+ { 642, "ro", "Romania" },
+ { 643, "ru", "Russia" },
+ { 646, "rw", "Rwanda" },
+ { 659, "kn", "Saint Kitts & Nevis" },
+ { 662, "lc", "Saint Lucia" },
+ { 670, "vc", "Saint Vincent" },
+ { 882, "ws", "Samoa" },
+ { 674, "sm", "San Marino" },
+ { 678, "st", "Sao Tome & Principe" },
+ { 682, "sa", "Saudi Arabia" },
+ { 686, "sn", "Senegal" },
+ { 891, "cs", "Serbia and Montenegro" },
+ { 690, "sc", "Seychelles" },
+ { 694, "sl", "Sierra Leone" },
+ { 702, "sg", "Singapore" },
+ { 703, "sk", "Slovakia" },
+ { 705, "si", "Slovenia" },
+ { 90, "sb", "Solomon Islands" },
+ { 706, "so", "Somalia" },
+ { 710, "za", "South Africa" },
+ { 239, "gs", "South Georgia" },
+ { 724, "es", "Spain" },
+ { 144, "lk", "Sri Lanka" },
+ { 654, "sh", "St. Helena" },
+ { 666, "pm", "St. Pierre & Miquelon" },
+ { 736, "sd", "Sudan" },
+ { 740, "sr", "Suriname" },
+ { 744, "sj", "Svalbard & Jan Mayen Islands" },
+ { 748, "sz", "Swaziland" },
+ { 752, "se", "Sweden" },
+ { 756, "ch", "Switzerland" },
+ { 760, "sy", "Syrian Arab Republic" },
+ { 626, "tl", "Timor-Leste" },
+ { 158, "tw", "Taiwan" },
+ { 762, "tj", "Tajikistan" },
+ { 834, "tz", "Tanzania" },
+ { 764, "th", "Thailand" },
+ { 768, "tg", "Togo" },
+ { 772, "tk", "Tokelau" },
+ { 776, "to", "Tonga" },
+ { 780, "tt", "Trinidad & Tobago" },
+ { 788, "tn", "Tunisia" },
+ { 792, "tr", "Turkey" },
+ { 795, "tm", "Turkmenistan" },
+ { 796, "tc", "Turks & Caicos Islands" },
+ { 798, "tv", "Tuvalu" },
+ { 800, "ug", "Uganda" },
+ { 804, "ua", "Ukraine" },
+ { 784, "ae", "United Arab Emirates" },
+ { 826, "gb", "United Kingdom" },
+ { 840, "us", "United States" },
+ { 581, "um", "United States Minor Outlying Islands" },
+ { 858, "uy", "Uruguay" },
+ { 860, "uz", "Uzbekistan" },
+ { 548, "vu", "Vanuatu" },
+ { 862, "ve", "Venezuela" },
+ { 704, "vn", "Vietnam" },
+ { 92, "vg", "Virgin Islands (British)" },
+ { 850, "vi", "Virgin Islands (US)" },
+ { 876, "wf", "Wallis & Futuna Islands" },
+ { 732, "eh", "Western Sahara" },
+ { 887, "ye", "Yemen" },
+ { 894, "zm", "Zambia" },
+ { 716, "zw", "Zimbabwe" }
+ };
+
+/*
+ * Check if start of 'str' is simply an IPv4 address.
+ */
+#define BYTE_OK(x) ((x) >= 0 && (x) <= 255)
+
+static int is_addr(char *str, char **end)
+{
+ int a0, a1, a2, a3, num, rc = 0, length = 0;
+
+ num = sscanf(str,"%3d.%3d.%3d.%3d%n",&a0,&a1,&a2,&a3,&length);
+ if( (num == 4) &&
+ BYTE_OK(a0) && BYTE_OK(a1) && BYTE_OK(a2) && BYTE_OK(a3) &&
+ length >= (3+4))
+ {
+ rc = 1;
+ *end = str + length;
+ }
+ return rc;
+}
+
+/*
+ * Find the country-code and name from the CNAME. E.g.:
+ * version 1: CNAME = zzno.countries.nerd.dk with address 127.0.2.66
+ * yields ccode_A" = "no" and cnumber 578 (2.66).
+ * version 2: CNAME = <a.b.c.d>.zz.countries.nerd.dk with address 127.0.2.66
+ * yields cnumber 578 (2.66). ccode_A is "";
+ */
+static void find_country_from_cname(const char *cname, struct in_addr addr)
+{
+ const struct search_list *country;
+ char ccode_A2[3], *ccopy, *dot_4;
+ int cnumber, z0, z1, ver_1, ver_2;
+ unsigned long ip;
+
+ ip = ntohl(addr.s_addr);
+ z0 = TOLOWER(cname[0]);
+ z1 = TOLOWER(cname[1]);
+ ccopy = strdup(cname);
+ dot_4 = NULL;
+
+ ver_1 = (z0 == 'z' && z1 == 'z' && !strcasecmp(cname+4,nerd_ver1));
+ ver_2 = (is_addr(ccopy,&dot_4) && !strcasecmp(dot_4,nerd_ver2));
+
+ if (ver_1)
+ {
+ const char *dot = strchr(cname, '.');
if (dot != cname+4)
- {
- printf("Unexpected CNAME %s (ver_1)\n", cname);
+ {
+ printf("Unexpected CNAME %s (ver_1)\n", cname);
free(ccopy);
- return;
- }
- }
- else if (ver_2)
- {
- z0 = TOLOWER(dot_4[1]);
- z1 = TOLOWER(dot_4[2]);
- if (z0 != 'z' && z1 != 'z')
- {
- printf("Unexpected CNAME %s (ver_2)\n", cname);
+ return;
+ }
+ }
+ else if (ver_2)
+ {
+ z0 = TOLOWER(dot_4[1]);
+ z1 = TOLOWER(dot_4[2]);
+ if (z0 != 'z' && z1 != 'z')
+ {
+ printf("Unexpected CNAME %s (ver_2)\n", cname);
free(ccopy);
- return;
- }
- }
- else
- {
- printf("Unexpected CNAME %s (ver?)\n", cname);
+ return;
+ }
+ }
+ else
+ {
+ printf("Unexpected CNAME %s (ver?)\n", cname);
free(ccopy);
- return;
- }
-
- if (ver_1)
- {
- ccode_A2[0] = (char)TOLOWER(cname[2]);
- ccode_A2[1] = (char)TOLOWER(cname[3]);
- ccode_A2[2] = '\0';
- }
- else
- ccode_A2[0] = '\0';
-
- cnumber = ip & 0xFFFF;
-
- TRACE(("Found country-code `%s', number %d\n",
- ver_1 ? ccode_A2 : "<n/a>", cnumber));
-
- country = list_lookup(cnumber, country_list,
- sizeof(country_list) / sizeof(country_list[0]));
- if (!country)
- printf("Name for country-number %d not found.\n", cnumber);
- else
- {
- if (ver_1)
- {
- if ((country->short_name[0] != ccode_A2[0]) ||
- (country->short_name[1] != ccode_A2[1]) ||
- (country->short_name[2] != ccode_A2[2]))
- printf("short-name mismatch; %s vs %s\n",
- country->short_name, ccode_A2);
- }
- printf("%s (%s), number %d.\n",
- country->long_name, country->short_name, cnumber);
- }
- free(ccopy);
-}
+ return;
+ }
+
+ if (ver_1)
+ {
+ ccode_A2[0] = (char)TOLOWER(cname[2]);
+ ccode_A2[1] = (char)TOLOWER(cname[3]);
+ ccode_A2[2] = '\0';
+ }
+ else
+ ccode_A2[0] = '\0';
+
+ cnumber = ip & 0xFFFF;
+
+ TRACE(("Found country-code `%s', number %d\n",
+ ver_1 ? ccode_A2 : "<n/a>", cnumber));
+
+ country = list_lookup(cnumber, country_list,
+ sizeof(country_list) / sizeof(country_list[0]));
+ if (!country)
+ printf("Name for country-number %d not found.\n", cnumber);
+ else
+ {
+ if (ver_1)
+ {
+ if ((country->short_name[0] != ccode_A2[0]) ||
+ (country->short_name[1] != ccode_A2[1]) ||
+ (country->short_name[2] != ccode_A2[2]))
+ printf("short-name mismatch; %s vs %s\n",
+ country->short_name, ccode_A2);
+ }
+ printf("%s (%s), number %d.\n",
+ country->long_name, country->short_name, cnumber);
+ }
+ free(ccopy);
+}
diff --git a/contrib/libs/c-ares/adig.c b/contrib/libs/c-ares/adig.c
index 17db9d3868..2d5cb8c876 100644
--- a/contrib/libs/c-ares/adig.c
+++ b/contrib/libs/c-ares/adig.c
@@ -1,827 +1,827 @@
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-# include <arpa/inet.h>
-#endif
-#ifdef HAVE_NETDB_H
-# include <netdb.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-# include <arpa/nameser_compat.h>
-#endif
-
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-
-#include "ares.h"
-#include "ares_dns.h"
-#include "ares_getopt.h"
-#include "ares_nowarn.h"
-
-#ifndef HAVE_STRDUP
-# include "ares_strdup.h"
-# define strdup(ptr) ares_strdup(ptr)
-#endif
-
-#ifndef HAVE_STRCASECMP
-# include "ares_strcasecmp.h"
-# define strcasecmp(p1,p2) ares_strcasecmp(p1,p2)
-#endif
-
-#ifndef HAVE_STRNCASECMP
-# include "ares_strcasecmp.h"
-# define strncasecmp(p1,p2,n) ares_strncasecmp(p1,p2,n)
-#endif
-
-#ifdef WATT32
-#undef WIN32 /* Redefined in MingW headers */
-#endif
-
-#ifndef T_SRV
-# define T_SRV 33 /* Server selection */
-#endif
-#ifndef T_NAPTR
-# define T_NAPTR 35 /* Naming authority pointer */
-#endif
-#ifndef T_DS
-# define T_DS 43 /* Delegation Signer (RFC4034) */
-#endif
-#ifndef T_SSHFP
-# define T_SSHFP 44 /* SSH Key Fingerprint (RFC4255) */
-#endif
-#ifndef T_RRSIG
-# define T_RRSIG 46 /* Resource Record Signature (RFC4034) */
-#endif
-#ifndef T_NSEC
-# define T_NSEC 47 /* Next Secure (RFC4034) */
-#endif
-#ifndef T_DNSKEY
-# define T_DNSKEY 48 /* DNS Public Key (RFC4034) */
-#endif
-
-struct nv {
- const char *name;
- int value;
-};
-
-static const struct nv flags[] = {
- { "usevc", ARES_FLAG_USEVC },
- { "primary", ARES_FLAG_PRIMARY },
- { "igntc", ARES_FLAG_IGNTC },
- { "norecurse", ARES_FLAG_NORECURSE },
- { "stayopen", ARES_FLAG_STAYOPEN },
- { "noaliases", ARES_FLAG_NOALIASES }
-};
-static const int nflags = sizeof(flags) / sizeof(flags[0]);
-
-static const struct nv classes[] = {
- { "IN", C_IN },
- { "CHAOS", C_CHAOS },
- { "HS", C_HS },
- { "ANY", C_ANY }
-};
-static const int nclasses = sizeof(classes) / sizeof(classes[0]);
-
-static const struct nv types[] = {
- { "A", T_A },
- { "NS", T_NS },
- { "MD", T_MD },
- { "MF", T_MF },
- { "CNAME", T_CNAME },
- { "SOA", T_SOA },
- { "MB", T_MB },
- { "MG", T_MG },
- { "MR", T_MR },
- { "NULL", T_NULL },
- { "WKS", T_WKS },
- { "PTR", T_PTR },
- { "HINFO", T_HINFO },
- { "MINFO", T_MINFO },
- { "MX", T_MX },
- { "TXT", T_TXT },
- { "RP", T_RP },
- { "AFSDB", T_AFSDB },
- { "X25", T_X25 },
- { "ISDN", T_ISDN },
- { "RT", T_RT },
- { "NSAP", T_NSAP },
- { "NSAP_PTR", T_NSAP_PTR },
- { "SIG", T_SIG },
- { "KEY", T_KEY },
- { "PX", T_PX },
- { "GPOS", T_GPOS },
- { "AAAA", T_AAAA },
- { "LOC", T_LOC },
- { "SRV", T_SRV },
- { "AXFR", T_AXFR },
- { "MAILB", T_MAILB },
- { "MAILA", T_MAILA },
- { "NAPTR", T_NAPTR },
- { "DS", T_DS },
- { "SSHFP", T_SSHFP },
- { "RRSIG", T_RRSIG },
- { "NSEC", T_NSEC },
- { "DNSKEY", T_DNSKEY },
- { "ANY", T_ANY }
-};
-static const int ntypes = sizeof(types) / sizeof(types[0]);
-
-static const char *opcodes[] = {
- "QUERY", "IQUERY", "STATUS", "(reserved)", "NOTIFY",
- "(unknown)", "(unknown)", "(unknown)", "(unknown)",
- "UPDATEA", "UPDATED", "UPDATEDA", "UPDATEM", "UPDATEMA",
- "ZONEINIT", "ZONEREF"
-};
-
-static const char *rcodes[] = {
- "NOERROR", "FORMERR", "SERVFAIL", "NXDOMAIN", "NOTIMP", "REFUSED",
- "(unknown)", "(unknown)", "(unknown)", "(unknown)", "(unknown)",
- "(unknown)", "(unknown)", "(unknown)", "(unknown)", "NOCHANGE"
-};
-
-static void callback(void *arg, int status, int timeouts,
- unsigned char *abuf, int alen);
-static const unsigned char *display_question(const unsigned char *aptr,
- const unsigned char *abuf,
- int alen);
-static const unsigned char *display_rr(const unsigned char *aptr,
- const unsigned char *abuf, int alen);
-static const char *type_name(int type);
-static const char *class_name(int dnsclass);
-static void usage(void);
-static void destroy_addr_list(struct ares_addr_node *head);
-static void append_addr_list(struct ares_addr_node **head,
- struct ares_addr_node *node);
-
-int main(int argc, char **argv)
-{
- ares_channel channel;
- int c, i, optmask = ARES_OPT_FLAGS, dnsclass = C_IN, type = T_A;
- int status, nfds, count;
- struct ares_options options;
- struct hostent *hostent;
- fd_set read_fds, write_fds;
- struct timeval *tvp, tv;
- struct ares_addr_node *srvr, *servers = NULL;
-
-#ifdef USE_WINSOCK
- WORD wVersionRequested = MAKEWORD(USE_WINSOCK,USE_WINSOCK);
- WSADATA wsaData;
- WSAStartup(wVersionRequested, &wsaData);
-#endif
-
- status = ares_library_init(ARES_LIB_INIT_ALL);
- if (status != ARES_SUCCESS)
- {
- fprintf(stderr, "ares_library_init: %s\n", ares_strerror(status));
- return 1;
- }
-
- options.flags = ARES_FLAG_NOCHECKRESP;
- options.servers = NULL;
- options.nservers = 0;
- while ((c = ares_getopt(argc, argv, "df:s:c:t:T:U:")) != -1)
- {
- switch (c)
- {
- case 'd':
-#ifdef WATT32
- dbug_init();
-#endif
- break;
-
- case 'f':
- /* Add a flag. */
- for (i = 0; i < nflags; i++)
- {
- if (strcmp(flags[i].name, optarg) == 0)
- break;
- }
- if (i < nflags)
- options.flags |= flags[i].value;
- else
- usage();
- break;
-
- case 's':
- /* User-specified name servers override default ones. */
- srvr = malloc(sizeof(struct ares_addr_node));
- if (!srvr)
- {
- fprintf(stderr, "Out of memory!\n");
- destroy_addr_list(servers);
- return 1;
- }
- append_addr_list(&servers, srvr);
- if (ares_inet_pton(AF_INET, optarg, &srvr->addr.addr4) > 0)
- srvr->family = AF_INET;
- else if (ares_inet_pton(AF_INET6, optarg, &srvr->addr.addr6) > 0)
- srvr->family = AF_INET6;
- else
- {
- hostent = gethostbyname(optarg);
- if (!hostent)
- {
- fprintf(stderr, "adig: server %s not found.\n", optarg);
- destroy_addr_list(servers);
- return 1;
- }
- switch (hostent->h_addrtype)
- {
- case AF_INET:
- srvr->family = AF_INET;
- memcpy(&srvr->addr.addr4, hostent->h_addr,
- sizeof(srvr->addr.addr4));
- break;
- case AF_INET6:
- srvr->family = AF_INET6;
- memcpy(&srvr->addr.addr6, hostent->h_addr,
- sizeof(srvr->addr.addr6));
- break;
- default:
- fprintf(stderr,
- "adig: server %s unsupported address family.\n", optarg);
- destroy_addr_list(servers);
- return 1;
- }
- }
- /* Notice that calling ares_init_options() without servers in the
- * options struct and with ARES_OPT_SERVERS set simultaneously in
- * the options mask, results in an initialization with no servers.
- * When alternative name servers have been specified these are set
- * later calling ares_set_servers() overriding any existing server
- * configuration. To prevent initial configuration with default
- * servers that will be discarded later, ARES_OPT_SERVERS is set.
- * If this flag is not set here the result shall be the same but
- * ares_init_options() will do needless work. */
- optmask |= ARES_OPT_SERVERS;
- break;
-
- case 'c':
- /* Set the query class. */
- for (i = 0; i < nclasses; i++)
- {
- if (strcasecmp(classes[i].name, optarg) == 0)
- break;
- }
- if (i < nclasses)
- dnsclass = classes[i].value;
- else
- usage();
- break;
-
- case 't':
- /* Set the query type. */
- for (i = 0; i < ntypes; i++)
- {
- if (strcasecmp(types[i].name, optarg) == 0)
- break;
- }
- if (i < ntypes)
- type = types[i].value;
- else
- usage();
- break;
-
- case 'T':
- /* Set the TCP port number. */
- if (!ISDIGIT(*optarg))
- usage();
- options.tcp_port = (unsigned short)strtol(optarg, NULL, 0);
- optmask |= ARES_OPT_TCP_PORT;
- break;
-
- case 'U':
- /* Set the UDP port number. */
- if (!ISDIGIT(*optarg))
- usage();
- options.udp_port = (unsigned short)strtol(optarg, NULL, 0);
- optmask |= ARES_OPT_UDP_PORT;
- break;
- }
- }
- argc -= optind;
- argv += optind;
- if (argc == 0)
- usage();
-
- status = ares_init_options(&channel, &options, optmask);
-
- if (status != ARES_SUCCESS)
- {
- fprintf(stderr, "ares_init_options: %s\n",
- ares_strerror(status));
- return 1;
- }
-
- if(servers)
- {
- status = ares_set_servers(channel, servers);
- destroy_addr_list(servers);
- if (status != ARES_SUCCESS)
- {
- fprintf(stderr, "ares_init_options: %s\n",
- ares_strerror(status));
- return 1;
- }
- }
-
- /* Initiate the queries, one per command-line argument. If there is
- * only one query to do, supply NULL as the callback argument;
- * otherwise, supply the query name as an argument so we can
- * distinguish responses for the user when printing them out.
- */
- if (argc == 1)
- ares_query(channel, *argv, dnsclass, type, callback, (char *) NULL);
- else
- {
- for (; *argv; argv++)
- ares_query(channel, *argv, dnsclass, type, callback, *argv);
- }
-
- /* Wait for all queries to complete. */
- for (;;)
- {
- FD_ZERO(&read_fds);
- FD_ZERO(&write_fds);
- nfds = ares_fds(channel, &read_fds, &write_fds);
- if (nfds == 0)
- break;
- tvp = ares_timeout(channel, NULL, &tv);
- count = select(nfds, &read_fds, &write_fds, NULL, tvp);
- if (count < 0 && (status = SOCKERRNO) != EINVAL)
- {
- printf("select fail: %d", status);
- return 1;
- }
- ares_process(channel, &read_fds, &write_fds);
- }
-
- ares_destroy(channel);
-
- ares_library_cleanup();
-
-#ifdef USE_WINSOCK
- WSACleanup();
-#endif
-
- return 0;
-}
-
-static void callback(void *arg, int status, int timeouts,
- unsigned char *abuf, int alen)
-{
- char *name = (char *) arg;
- int id, qr, opcode, aa, tc, rd, ra, rcode;
- unsigned int qdcount, ancount, nscount, arcount, i;
- const unsigned char *aptr;
-
- (void) timeouts;
-
- /* Display the query name if given. */
- if (name)
- printf("Answer for query %s:\n", name);
-
- /* Display an error message if there was an error, but only stop if
- * we actually didn't get an answer buffer.
- */
- if (status != ARES_SUCCESS)
- {
- printf("%s\n", ares_strerror(status));
- if (!abuf)
- return;
- }
-
- /* Won't happen, but check anyway, for safety. */
- if (alen < HFIXEDSZ)
- return;
-
- /* Parse the answer header. */
- id = DNS_HEADER_QID(abuf);
- qr = DNS_HEADER_QR(abuf);
- opcode = DNS_HEADER_OPCODE(abuf);
- aa = DNS_HEADER_AA(abuf);
- tc = DNS_HEADER_TC(abuf);
- rd = DNS_HEADER_RD(abuf);
- ra = DNS_HEADER_RA(abuf);
- rcode = DNS_HEADER_RCODE(abuf);
- qdcount = DNS_HEADER_QDCOUNT(abuf);
- ancount = DNS_HEADER_ANCOUNT(abuf);
- nscount = DNS_HEADER_NSCOUNT(abuf);
- arcount = DNS_HEADER_ARCOUNT(abuf);
-
- /* Display the answer header. */
- printf("id: %d\n", id);
- printf("flags: %s%s%s%s%s\n",
- qr ? "qr " : "",
- aa ? "aa " : "",
- tc ? "tc " : "",
- rd ? "rd " : "",
- ra ? "ra " : "");
- printf("opcode: %s\n", opcodes[opcode]);
- printf("rcode: %s\n", rcodes[rcode]);
-
- /* Display the questions. */
- printf("Questions:\n");
- aptr = abuf + HFIXEDSZ;
- for (i = 0; i < qdcount; i++)
- {
- aptr = display_question(aptr, abuf, alen);
- if (aptr == NULL)
- return;
- }
-
- /* Display the answers. */
- printf("Answers:\n");
- for (i = 0; i < ancount; i++)
- {
- aptr = display_rr(aptr, abuf, alen);
- if (aptr == NULL)
- return;
- }
-
- /* Display the NS records. */
- printf("NS records:\n");
- for (i = 0; i < nscount; i++)
- {
- aptr = display_rr(aptr, abuf, alen);
- if (aptr == NULL)
- return;
- }
-
- /* Display the additional records. */
- printf("Additional records:\n");
- for (i = 0; i < arcount; i++)
- {
- aptr = display_rr(aptr, abuf, alen);
- if (aptr == NULL)
- return;
- }
-}
-
-static const unsigned char *display_question(const unsigned char *aptr,
- const unsigned char *abuf,
- int alen)
-{
- char *name;
- int type, dnsclass, status;
- long len;
-
- /* Parse the question name. */
- status = ares_expand_name(aptr, abuf, alen, &name, &len);
- if (status != ARES_SUCCESS)
- return NULL;
- aptr += len;
-
- /* Make sure there's enough data after the name for the fixed part
- * of the question.
- */
- if (aptr + QFIXEDSZ > abuf + alen)
- {
- ares_free_string(name);
- return NULL;
- }
-
- /* Parse the question type and class. */
- type = DNS_QUESTION_TYPE(aptr);
- dnsclass = DNS_QUESTION_CLASS(aptr);
- aptr += QFIXEDSZ;
-
- /* Display the question, in a format sort of similar to how we will
- * display RRs.
- */
- printf("\t%-15s.\t", name);
- if (dnsclass != C_IN)
- printf("\t%s", class_name(dnsclass));
- printf("\t%s\n", type_name(type));
- ares_free_string(name);
- return aptr;
-}
-
-static const unsigned char *display_rr(const unsigned char *aptr,
- const unsigned char *abuf, int alen)
-{
- const unsigned char *p;
- int type, dnsclass, ttl, dlen, status;
- long len;
- char addr[46];
- union {
- unsigned char * as_uchar;
- char * as_char;
- } name;
-
- /* Parse the RR name. */
- status = ares_expand_name(aptr, abuf, alen, &name.as_char, &len);
- if (status != ARES_SUCCESS)
- return NULL;
- aptr += len;
-
- /* Make sure there is enough data after the RR name for the fixed
- * part of the RR.
- */
- if (aptr + RRFIXEDSZ > abuf + alen)
- {
- ares_free_string(name.as_char);
- return NULL;
- }
-
- /* Parse the fixed part of the RR, and advance to the RR data
- * field. */
- type = DNS_RR_TYPE(aptr);
- dnsclass = DNS_RR_CLASS(aptr);
- ttl = DNS_RR_TTL(aptr);
- dlen = DNS_RR_LEN(aptr);
- aptr += RRFIXEDSZ;
- if (aptr + dlen > abuf + alen)
- {
- ares_free_string(name.as_char);
- return NULL;
- }
-
- /* Display the RR name, class, and type. */
- printf("\t%-15s.\t%d", name.as_char, ttl);
- if (dnsclass != C_IN)
- printf("\t%s", class_name(dnsclass));
- printf("\t%s", type_name(type));
- ares_free_string(name.as_char);
-
- /* Display the RR data. Don't touch aptr. */
- switch (type)
- {
- case T_CNAME:
- case T_MB:
- case T_MD:
- case T_MF:
- case T_MG:
- case T_MR:
- case T_NS:
- case T_PTR:
- /* For these types, the RR data is just a domain name. */
- status = ares_expand_name(aptr, abuf, alen, &name.as_char, &len);
- if (status != ARES_SUCCESS)
- return NULL;
- printf("\t%s.", name.as_char);
- ares_free_string(name.as_char);
- break;
-
- case T_HINFO:
- /* The RR data is two length-counted character strings. */
- p = aptr;
- len = *p;
- if (p + len + 1 > aptr + dlen)
- return NULL;
- status = ares_expand_string(p, abuf, alen, &name.as_uchar, &len);
- if (status != ARES_SUCCESS)
- return NULL;
- printf("\t%s", name.as_char);
- ares_free_string(name.as_char);
- p += len;
- len = *p;
- if (p + len + 1 > aptr + dlen)
- return NULL;
- status = ares_expand_string(p, abuf, alen, &name.as_uchar, &len);
- if (status != ARES_SUCCESS)
- return NULL;
- printf("\t%s", name.as_char);
- ares_free_string(name.as_char);
- break;
-
- case T_MINFO:
- /* The RR data is two domain names. */
- p = aptr;
- status = ares_expand_name(p, abuf, alen, &name.as_char, &len);
- if (status != ARES_SUCCESS)
- return NULL;
- printf("\t%s.", name.as_char);
- ares_free_string(name.as_char);
- p += len;
- status = ares_expand_name(p, abuf, alen, &name.as_char, &len);
- if (status != ARES_SUCCESS)
- return NULL;
- printf("\t%s.", name.as_char);
- ares_free_string(name.as_char);
- break;
-
- case T_MX:
- /* The RR data is two bytes giving a preference ordering, and
- * then a domain name.
- */
- if (dlen < 2)
- return NULL;
- printf("\t%d", (int)DNS__16BIT(aptr));
- status = ares_expand_name(aptr + 2, abuf, alen, &name.as_char, &len);
- if (status != ARES_SUCCESS)
- return NULL;
- printf("\t%s.", name.as_char);
- ares_free_string(name.as_char);
- break;
-
- case T_SOA:
- /* The RR data is two domain names and then five four-byte
- * numbers giving the serial number and some timeouts.
- */
- p = aptr;
- status = ares_expand_name(p, abuf, alen, &name.as_char, &len);
- if (status != ARES_SUCCESS)
- return NULL;
- printf("\t%s.\n", name.as_char);
- ares_free_string(name.as_char);
- p += len;
- status = ares_expand_name(p, abuf, alen, &name.as_char, &len);
- if (status != ARES_SUCCESS)
- return NULL;
- printf("\t\t\t\t\t\t%s.\n", name.as_char);
- ares_free_string(name.as_char);
- p += len;
- if (p + 20 > aptr + dlen)
- return NULL;
- printf("\t\t\t\t\t\t( %u %u %u %u %u )",
- DNS__32BIT(p), DNS__32BIT(p+4),
- DNS__32BIT(p+8), DNS__32BIT(p+12),
- DNS__32BIT(p+16));
- break;
-
- case T_TXT:
- /* The RR data is one or more length-counted character
- * strings. */
- p = aptr;
- while (p < aptr + dlen)
- {
- len = *p;
- if (p + len + 1 > aptr + dlen)
- return NULL;
- status = ares_expand_string(p, abuf, alen, &name.as_uchar, &len);
- if (status != ARES_SUCCESS)
- return NULL;
- printf("\t%s", name.as_char);
- ares_free_string(name.as_char);
- p += len;
- }
- break;
-
- case T_A:
- /* The RR data is a four-byte Internet address. */
- if (dlen != 4)
- return NULL;
- printf("\t%s", ares_inet_ntop(AF_INET,aptr,addr,sizeof(addr)));
- break;
-
- case T_AAAA:
- /* The RR data is a 16-byte IPv6 address. */
- if (dlen != 16)
- return NULL;
- printf("\t%s", ares_inet_ntop(AF_INET6,aptr,addr,sizeof(addr)));
- break;
-
- case T_WKS:
- /* Not implemented yet */
- break;
-
- case T_SRV:
- /* The RR data is three two-byte numbers representing the
- * priority, weight, and port, followed by a domain name.
- */
-
- printf("\t%d", (int)DNS__16BIT(aptr));
- printf(" %d", (int)DNS__16BIT(aptr + 2));
- printf(" %d", (int)DNS__16BIT(aptr + 4));
-
- status = ares_expand_name(aptr + 6, abuf, alen, &name.as_char, &len);
- if (status != ARES_SUCCESS)
- return NULL;
- printf("\t%s.", name.as_char);
- ares_free_string(name.as_char);
- break;
-
- case T_NAPTR:
-
- printf("\t%d", (int)DNS__16BIT(aptr)); /* order */
- printf(" %d\n", (int)DNS__16BIT(aptr + 2)); /* preference */
-
- p = aptr + 4;
- status = ares_expand_string(p, abuf, alen, &name.as_uchar, &len);
- if (status != ARES_SUCCESS)
- return NULL;
- printf("\t\t\t\t\t\t%s\n", name.as_char);
- ares_free_string(name.as_char);
- p += len;
-
- status = ares_expand_string(p, abuf, alen, &name.as_uchar, &len);
- if (status != ARES_SUCCESS)
- return NULL;
- printf("\t\t\t\t\t\t%s\n", name.as_char);
- ares_free_string(name.as_char);
- p += len;
-
- status = ares_expand_string(p, abuf, alen, &name.as_uchar, &len);
- if (status != ARES_SUCCESS)
- return NULL;
- printf("\t\t\t\t\t\t%s\n", name.as_char);
- ares_free_string(name.as_char);
- p += len;
-
- status = ares_expand_name(p, abuf, alen, &name.as_char, &len);
- if (status != ARES_SUCCESS)
- return NULL;
- printf("\t\t\t\t\t\t%s", name.as_char);
- ares_free_string(name.as_char);
- break;
-
- case T_DS:
- case T_SSHFP:
- case T_RRSIG:
- case T_NSEC:
- case T_DNSKEY:
- printf("\t[RR type parsing unavailable]");
- break;
-
- default:
- printf("\t[Unknown RR; cannot parse]");
- break;
- }
- printf("\n");
-
- return aptr + dlen;
-}
-
-static const char *type_name(int type)
-{
- int i;
-
- for (i = 0; i < ntypes; i++)
- {
- if (types[i].value == type)
- return types[i].name;
- }
- return "(unknown)";
-}
-
-static const char *class_name(int dnsclass)
-{
- int i;
-
- for (i = 0; i < nclasses; i++)
- {
- if (classes[i].value == dnsclass)
- return classes[i].name;
- }
- return "(unknown)";
-}
-
-static void usage(void)
-{
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+#endif
+#ifdef HAVE_NETDB_H
+# include <netdb.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
+# include <arpa/nameser_compat.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+
+#include "ares.h"
+#include "ares_dns.h"
+#include "ares_getopt.h"
+#include "ares_nowarn.h"
+
+#ifndef HAVE_STRDUP
+# include "ares_strdup.h"
+# define strdup(ptr) ares_strdup(ptr)
+#endif
+
+#ifndef HAVE_STRCASECMP
+# include "ares_strcasecmp.h"
+# define strcasecmp(p1,p2) ares_strcasecmp(p1,p2)
+#endif
+
+#ifndef HAVE_STRNCASECMP
+# include "ares_strcasecmp.h"
+# define strncasecmp(p1,p2,n) ares_strncasecmp(p1,p2,n)
+#endif
+
+#ifdef WATT32
+#undef WIN32 /* Redefined in MingW headers */
+#endif
+
+#ifndef T_SRV
+# define T_SRV 33 /* Server selection */
+#endif
+#ifndef T_NAPTR
+# define T_NAPTR 35 /* Naming authority pointer */
+#endif
+#ifndef T_DS
+# define T_DS 43 /* Delegation Signer (RFC4034) */
+#endif
+#ifndef T_SSHFP
+# define T_SSHFP 44 /* SSH Key Fingerprint (RFC4255) */
+#endif
+#ifndef T_RRSIG
+# define T_RRSIG 46 /* Resource Record Signature (RFC4034) */
+#endif
+#ifndef T_NSEC
+# define T_NSEC 47 /* Next Secure (RFC4034) */
+#endif
+#ifndef T_DNSKEY
+# define T_DNSKEY 48 /* DNS Public Key (RFC4034) */
+#endif
+
+struct nv {
+ const char *name;
+ int value;
+};
+
+static const struct nv flags[] = {
+ { "usevc", ARES_FLAG_USEVC },
+ { "primary", ARES_FLAG_PRIMARY },
+ { "igntc", ARES_FLAG_IGNTC },
+ { "norecurse", ARES_FLAG_NORECURSE },
+ { "stayopen", ARES_FLAG_STAYOPEN },
+ { "noaliases", ARES_FLAG_NOALIASES }
+};
+static const int nflags = sizeof(flags) / sizeof(flags[0]);
+
+static const struct nv classes[] = {
+ { "IN", C_IN },
+ { "CHAOS", C_CHAOS },
+ { "HS", C_HS },
+ { "ANY", C_ANY }
+};
+static const int nclasses = sizeof(classes) / sizeof(classes[0]);
+
+static const struct nv types[] = {
+ { "A", T_A },
+ { "NS", T_NS },
+ { "MD", T_MD },
+ { "MF", T_MF },
+ { "CNAME", T_CNAME },
+ { "SOA", T_SOA },
+ { "MB", T_MB },
+ { "MG", T_MG },
+ { "MR", T_MR },
+ { "NULL", T_NULL },
+ { "WKS", T_WKS },
+ { "PTR", T_PTR },
+ { "HINFO", T_HINFO },
+ { "MINFO", T_MINFO },
+ { "MX", T_MX },
+ { "TXT", T_TXT },
+ { "RP", T_RP },
+ { "AFSDB", T_AFSDB },
+ { "X25", T_X25 },
+ { "ISDN", T_ISDN },
+ { "RT", T_RT },
+ { "NSAP", T_NSAP },
+ { "NSAP_PTR", T_NSAP_PTR },
+ { "SIG", T_SIG },
+ { "KEY", T_KEY },
+ { "PX", T_PX },
+ { "GPOS", T_GPOS },
+ { "AAAA", T_AAAA },
+ { "LOC", T_LOC },
+ { "SRV", T_SRV },
+ { "AXFR", T_AXFR },
+ { "MAILB", T_MAILB },
+ { "MAILA", T_MAILA },
+ { "NAPTR", T_NAPTR },
+ { "DS", T_DS },
+ { "SSHFP", T_SSHFP },
+ { "RRSIG", T_RRSIG },
+ { "NSEC", T_NSEC },
+ { "DNSKEY", T_DNSKEY },
+ { "ANY", T_ANY }
+};
+static const int ntypes = sizeof(types) / sizeof(types[0]);
+
+static const char *opcodes[] = {
+ "QUERY", "IQUERY", "STATUS", "(reserved)", "NOTIFY",
+ "(unknown)", "(unknown)", "(unknown)", "(unknown)",
+ "UPDATEA", "UPDATED", "UPDATEDA", "UPDATEM", "UPDATEMA",
+ "ZONEINIT", "ZONEREF"
+};
+
+static const char *rcodes[] = {
+ "NOERROR", "FORMERR", "SERVFAIL", "NXDOMAIN", "NOTIMP", "REFUSED",
+ "(unknown)", "(unknown)", "(unknown)", "(unknown)", "(unknown)",
+ "(unknown)", "(unknown)", "(unknown)", "(unknown)", "NOCHANGE"
+};
+
+static void callback(void *arg, int status, int timeouts,
+ unsigned char *abuf, int alen);
+static const unsigned char *display_question(const unsigned char *aptr,
+ const unsigned char *abuf,
+ int alen);
+static const unsigned char *display_rr(const unsigned char *aptr,
+ const unsigned char *abuf, int alen);
+static const char *type_name(int type);
+static const char *class_name(int dnsclass);
+static void usage(void);
+static void destroy_addr_list(struct ares_addr_node *head);
+static void append_addr_list(struct ares_addr_node **head,
+ struct ares_addr_node *node);
+
+int main(int argc, char **argv)
+{
+ ares_channel channel;
+ int c, i, optmask = ARES_OPT_FLAGS, dnsclass = C_IN, type = T_A;
+ int status, nfds, count;
+ struct ares_options options;
+ struct hostent *hostent;
+ fd_set read_fds, write_fds;
+ struct timeval *tvp, tv;
+ struct ares_addr_node *srvr, *servers = NULL;
+
+#ifdef USE_WINSOCK
+ WORD wVersionRequested = MAKEWORD(USE_WINSOCK,USE_WINSOCK);
+ WSADATA wsaData;
+ WSAStartup(wVersionRequested, &wsaData);
+#endif
+
+ status = ares_library_init(ARES_LIB_INIT_ALL);
+ if (status != ARES_SUCCESS)
+ {
+ fprintf(stderr, "ares_library_init: %s\n", ares_strerror(status));
+ return 1;
+ }
+
+ options.flags = ARES_FLAG_NOCHECKRESP;
+ options.servers = NULL;
+ options.nservers = 0;
+ while ((c = ares_getopt(argc, argv, "df:s:c:t:T:U:")) != -1)
+ {
+ switch (c)
+ {
+ case 'd':
+#ifdef WATT32
+ dbug_init();
+#endif
+ break;
+
+ case 'f':
+ /* Add a flag. */
+ for (i = 0; i < nflags; i++)
+ {
+ if (strcmp(flags[i].name, optarg) == 0)
+ break;
+ }
+ if (i < nflags)
+ options.flags |= flags[i].value;
+ else
+ usage();
+ break;
+
+ case 's':
+ /* User-specified name servers override default ones. */
+ srvr = malloc(sizeof(struct ares_addr_node));
+ if (!srvr)
+ {
+ fprintf(stderr, "Out of memory!\n");
+ destroy_addr_list(servers);
+ return 1;
+ }
+ append_addr_list(&servers, srvr);
+ if (ares_inet_pton(AF_INET, optarg, &srvr->addr.addr4) > 0)
+ srvr->family = AF_INET;
+ else if (ares_inet_pton(AF_INET6, optarg, &srvr->addr.addr6) > 0)
+ srvr->family = AF_INET6;
+ else
+ {
+ hostent = gethostbyname(optarg);
+ if (!hostent)
+ {
+ fprintf(stderr, "adig: server %s not found.\n", optarg);
+ destroy_addr_list(servers);
+ return 1;
+ }
+ switch (hostent->h_addrtype)
+ {
+ case AF_INET:
+ srvr->family = AF_INET;
+ memcpy(&srvr->addr.addr4, hostent->h_addr,
+ sizeof(srvr->addr.addr4));
+ break;
+ case AF_INET6:
+ srvr->family = AF_INET6;
+ memcpy(&srvr->addr.addr6, hostent->h_addr,
+ sizeof(srvr->addr.addr6));
+ break;
+ default:
+ fprintf(stderr,
+ "adig: server %s unsupported address family.\n", optarg);
+ destroy_addr_list(servers);
+ return 1;
+ }
+ }
+ /* Notice that calling ares_init_options() without servers in the
+ * options struct and with ARES_OPT_SERVERS set simultaneously in
+ * the options mask, results in an initialization with no servers.
+ * When alternative name servers have been specified these are set
+ * later calling ares_set_servers() overriding any existing server
+ * configuration. To prevent initial configuration with default
+ * servers that will be discarded later, ARES_OPT_SERVERS is set.
+ * If this flag is not set here the result shall be the same but
+ * ares_init_options() will do needless work. */
+ optmask |= ARES_OPT_SERVERS;
+ break;
+
+ case 'c':
+ /* Set the query class. */
+ for (i = 0; i < nclasses; i++)
+ {
+ if (strcasecmp(classes[i].name, optarg) == 0)
+ break;
+ }
+ if (i < nclasses)
+ dnsclass = classes[i].value;
+ else
+ usage();
+ break;
+
+ case 't':
+ /* Set the query type. */
+ for (i = 0; i < ntypes; i++)
+ {
+ if (strcasecmp(types[i].name, optarg) == 0)
+ break;
+ }
+ if (i < ntypes)
+ type = types[i].value;
+ else
+ usage();
+ break;
+
+ case 'T':
+ /* Set the TCP port number. */
+ if (!ISDIGIT(*optarg))
+ usage();
+ options.tcp_port = (unsigned short)strtol(optarg, NULL, 0);
+ optmask |= ARES_OPT_TCP_PORT;
+ break;
+
+ case 'U':
+ /* Set the UDP port number. */
+ if (!ISDIGIT(*optarg))
+ usage();
+ options.udp_port = (unsigned short)strtol(optarg, NULL, 0);
+ optmask |= ARES_OPT_UDP_PORT;
+ break;
+ }
+ }
+ argc -= optind;
+ argv += optind;
+ if (argc == 0)
+ usage();
+
+ status = ares_init_options(&channel, &options, optmask);
+
+ if (status != ARES_SUCCESS)
+ {
+ fprintf(stderr, "ares_init_options: %s\n",
+ ares_strerror(status));
+ return 1;
+ }
+
+ if(servers)
+ {
+ status = ares_set_servers(channel, servers);
+ destroy_addr_list(servers);
+ if (status != ARES_SUCCESS)
+ {
+ fprintf(stderr, "ares_init_options: %s\n",
+ ares_strerror(status));
+ return 1;
+ }
+ }
+
+ /* Initiate the queries, one per command-line argument. If there is
+ * only one query to do, supply NULL as the callback argument;
+ * otherwise, supply the query name as an argument so we can
+ * distinguish responses for the user when printing them out.
+ */
+ if (argc == 1)
+ ares_query(channel, *argv, dnsclass, type, callback, (char *) NULL);
+ else
+ {
+ for (; *argv; argv++)
+ ares_query(channel, *argv, dnsclass, type, callback, *argv);
+ }
+
+ /* Wait for all queries to complete. */
+ for (;;)
+ {
+ FD_ZERO(&read_fds);
+ FD_ZERO(&write_fds);
+ nfds = ares_fds(channel, &read_fds, &write_fds);
+ if (nfds == 0)
+ break;
+ tvp = ares_timeout(channel, NULL, &tv);
+ count = select(nfds, &read_fds, &write_fds, NULL, tvp);
+ if (count < 0 && (status = SOCKERRNO) != EINVAL)
+ {
+ printf("select fail: %d", status);
+ return 1;
+ }
+ ares_process(channel, &read_fds, &write_fds);
+ }
+
+ ares_destroy(channel);
+
+ ares_library_cleanup();
+
+#ifdef USE_WINSOCK
+ WSACleanup();
+#endif
+
+ return 0;
+}
+
+static void callback(void *arg, int status, int timeouts,
+ unsigned char *abuf, int alen)
+{
+ char *name = (char *) arg;
+ int id, qr, opcode, aa, tc, rd, ra, rcode;
+ unsigned int qdcount, ancount, nscount, arcount, i;
+ const unsigned char *aptr;
+
+ (void) timeouts;
+
+ /* Display the query name if given. */
+ if (name)
+ printf("Answer for query %s:\n", name);
+
+ /* Display an error message if there was an error, but only stop if
+ * we actually didn't get an answer buffer.
+ */
+ if (status != ARES_SUCCESS)
+ {
+ printf("%s\n", ares_strerror(status));
+ if (!abuf)
+ return;
+ }
+
+ /* Won't happen, but check anyway, for safety. */
+ if (alen < HFIXEDSZ)
+ return;
+
+ /* Parse the answer header. */
+ id = DNS_HEADER_QID(abuf);
+ qr = DNS_HEADER_QR(abuf);
+ opcode = DNS_HEADER_OPCODE(abuf);
+ aa = DNS_HEADER_AA(abuf);
+ tc = DNS_HEADER_TC(abuf);
+ rd = DNS_HEADER_RD(abuf);
+ ra = DNS_HEADER_RA(abuf);
+ rcode = DNS_HEADER_RCODE(abuf);
+ qdcount = DNS_HEADER_QDCOUNT(abuf);
+ ancount = DNS_HEADER_ANCOUNT(abuf);
+ nscount = DNS_HEADER_NSCOUNT(abuf);
+ arcount = DNS_HEADER_ARCOUNT(abuf);
+
+ /* Display the answer header. */
+ printf("id: %d\n", id);
+ printf("flags: %s%s%s%s%s\n",
+ qr ? "qr " : "",
+ aa ? "aa " : "",
+ tc ? "tc " : "",
+ rd ? "rd " : "",
+ ra ? "ra " : "");
+ printf("opcode: %s\n", opcodes[opcode]);
+ printf("rcode: %s\n", rcodes[rcode]);
+
+ /* Display the questions. */
+ printf("Questions:\n");
+ aptr = abuf + HFIXEDSZ;
+ for (i = 0; i < qdcount; i++)
+ {
+ aptr = display_question(aptr, abuf, alen);
+ if (aptr == NULL)
+ return;
+ }
+
+ /* Display the answers. */
+ printf("Answers:\n");
+ for (i = 0; i < ancount; i++)
+ {
+ aptr = display_rr(aptr, abuf, alen);
+ if (aptr == NULL)
+ return;
+ }
+
+ /* Display the NS records. */
+ printf("NS records:\n");
+ for (i = 0; i < nscount; i++)
+ {
+ aptr = display_rr(aptr, abuf, alen);
+ if (aptr == NULL)
+ return;
+ }
+
+ /* Display the additional records. */
+ printf("Additional records:\n");
+ for (i = 0; i < arcount; i++)
+ {
+ aptr = display_rr(aptr, abuf, alen);
+ if (aptr == NULL)
+ return;
+ }
+}
+
+static const unsigned char *display_question(const unsigned char *aptr,
+ const unsigned char *abuf,
+ int alen)
+{
+ char *name;
+ int type, dnsclass, status;
+ long len;
+
+ /* Parse the question name. */
+ status = ares_expand_name(aptr, abuf, alen, &name, &len);
+ if (status != ARES_SUCCESS)
+ return NULL;
+ aptr += len;
+
+ /* Make sure there's enough data after the name for the fixed part
+ * of the question.
+ */
+ if (aptr + QFIXEDSZ > abuf + alen)
+ {
+ ares_free_string(name);
+ return NULL;
+ }
+
+ /* Parse the question type and class. */
+ type = DNS_QUESTION_TYPE(aptr);
+ dnsclass = DNS_QUESTION_CLASS(aptr);
+ aptr += QFIXEDSZ;
+
+ /* Display the question, in a format sort of similar to how we will
+ * display RRs.
+ */
+ printf("\t%-15s.\t", name);
+ if (dnsclass != C_IN)
+ printf("\t%s", class_name(dnsclass));
+ printf("\t%s\n", type_name(type));
+ ares_free_string(name);
+ return aptr;
+}
+
+static const unsigned char *display_rr(const unsigned char *aptr,
+ const unsigned char *abuf, int alen)
+{
+ const unsigned char *p;
+ int type, dnsclass, ttl, dlen, status;
+ long len;
+ char addr[46];
+ union {
+ unsigned char * as_uchar;
+ char * as_char;
+ } name;
+
+ /* Parse the RR name. */
+ status = ares_expand_name(aptr, abuf, alen, &name.as_char, &len);
+ if (status != ARES_SUCCESS)
+ return NULL;
+ aptr += len;
+
+ /* Make sure there is enough data after the RR name for the fixed
+ * part of the RR.
+ */
+ if (aptr + RRFIXEDSZ > abuf + alen)
+ {
+ ares_free_string(name.as_char);
+ return NULL;
+ }
+
+ /* Parse the fixed part of the RR, and advance to the RR data
+ * field. */
+ type = DNS_RR_TYPE(aptr);
+ dnsclass = DNS_RR_CLASS(aptr);
+ ttl = DNS_RR_TTL(aptr);
+ dlen = DNS_RR_LEN(aptr);
+ aptr += RRFIXEDSZ;
+ if (aptr + dlen > abuf + alen)
+ {
+ ares_free_string(name.as_char);
+ return NULL;
+ }
+
+ /* Display the RR name, class, and type. */
+ printf("\t%-15s.\t%d", name.as_char, ttl);
+ if (dnsclass != C_IN)
+ printf("\t%s", class_name(dnsclass));
+ printf("\t%s", type_name(type));
+ ares_free_string(name.as_char);
+
+ /* Display the RR data. Don't touch aptr. */
+ switch (type)
+ {
+ case T_CNAME:
+ case T_MB:
+ case T_MD:
+ case T_MF:
+ case T_MG:
+ case T_MR:
+ case T_NS:
+ case T_PTR:
+ /* For these types, the RR data is just a domain name. */
+ status = ares_expand_name(aptr, abuf, alen, &name.as_char, &len);
+ if (status != ARES_SUCCESS)
+ return NULL;
+ printf("\t%s.", name.as_char);
+ ares_free_string(name.as_char);
+ break;
+
+ case T_HINFO:
+ /* The RR data is two length-counted character strings. */
+ p = aptr;
+ len = *p;
+ if (p + len + 1 > aptr + dlen)
+ return NULL;
+ status = ares_expand_string(p, abuf, alen, &name.as_uchar, &len);
+ if (status != ARES_SUCCESS)
+ return NULL;
+ printf("\t%s", name.as_char);
+ ares_free_string(name.as_char);
+ p += len;
+ len = *p;
+ if (p + len + 1 > aptr + dlen)
+ return NULL;
+ status = ares_expand_string(p, abuf, alen, &name.as_uchar, &len);
+ if (status != ARES_SUCCESS)
+ return NULL;
+ printf("\t%s", name.as_char);
+ ares_free_string(name.as_char);
+ break;
+
+ case T_MINFO:
+ /* The RR data is two domain names. */
+ p = aptr;
+ status = ares_expand_name(p, abuf, alen, &name.as_char, &len);
+ if (status != ARES_SUCCESS)
+ return NULL;
+ printf("\t%s.", name.as_char);
+ ares_free_string(name.as_char);
+ p += len;
+ status = ares_expand_name(p, abuf, alen, &name.as_char, &len);
+ if (status != ARES_SUCCESS)
+ return NULL;
+ printf("\t%s.", name.as_char);
+ ares_free_string(name.as_char);
+ break;
+
+ case T_MX:
+ /* The RR data is two bytes giving a preference ordering, and
+ * then a domain name.
+ */
+ if (dlen < 2)
+ return NULL;
+ printf("\t%d", (int)DNS__16BIT(aptr));
+ status = ares_expand_name(aptr + 2, abuf, alen, &name.as_char, &len);
+ if (status != ARES_SUCCESS)
+ return NULL;
+ printf("\t%s.", name.as_char);
+ ares_free_string(name.as_char);
+ break;
+
+ case T_SOA:
+ /* The RR data is two domain names and then five four-byte
+ * numbers giving the serial number and some timeouts.
+ */
+ p = aptr;
+ status = ares_expand_name(p, abuf, alen, &name.as_char, &len);
+ if (status != ARES_SUCCESS)
+ return NULL;
+ printf("\t%s.\n", name.as_char);
+ ares_free_string(name.as_char);
+ p += len;
+ status = ares_expand_name(p, abuf, alen, &name.as_char, &len);
+ if (status != ARES_SUCCESS)
+ return NULL;
+ printf("\t\t\t\t\t\t%s.\n", name.as_char);
+ ares_free_string(name.as_char);
+ p += len;
+ if (p + 20 > aptr + dlen)
+ return NULL;
+ printf("\t\t\t\t\t\t( %u %u %u %u %u )",
+ DNS__32BIT(p), DNS__32BIT(p+4),
+ DNS__32BIT(p+8), DNS__32BIT(p+12),
+ DNS__32BIT(p+16));
+ break;
+
+ case T_TXT:
+ /* The RR data is one or more length-counted character
+ * strings. */
+ p = aptr;
+ while (p < aptr + dlen)
+ {
+ len = *p;
+ if (p + len + 1 > aptr + dlen)
+ return NULL;
+ status = ares_expand_string(p, abuf, alen, &name.as_uchar, &len);
+ if (status != ARES_SUCCESS)
+ return NULL;
+ printf("\t%s", name.as_char);
+ ares_free_string(name.as_char);
+ p += len;
+ }
+ break;
+
+ case T_A:
+ /* The RR data is a four-byte Internet address. */
+ if (dlen != 4)
+ return NULL;
+ printf("\t%s", ares_inet_ntop(AF_INET,aptr,addr,sizeof(addr)));
+ break;
+
+ case T_AAAA:
+ /* The RR data is a 16-byte IPv6 address. */
+ if (dlen != 16)
+ return NULL;
+ printf("\t%s", ares_inet_ntop(AF_INET6,aptr,addr,sizeof(addr)));
+ break;
+
+ case T_WKS:
+ /* Not implemented yet */
+ break;
+
+ case T_SRV:
+ /* The RR data is three two-byte numbers representing the
+ * priority, weight, and port, followed by a domain name.
+ */
+
+ printf("\t%d", (int)DNS__16BIT(aptr));
+ printf(" %d", (int)DNS__16BIT(aptr + 2));
+ printf(" %d", (int)DNS__16BIT(aptr + 4));
+
+ status = ares_expand_name(aptr + 6, abuf, alen, &name.as_char, &len);
+ if (status != ARES_SUCCESS)
+ return NULL;
+ printf("\t%s.", name.as_char);
+ ares_free_string(name.as_char);
+ break;
+
+ case T_NAPTR:
+
+ printf("\t%d", (int)DNS__16BIT(aptr)); /* order */
+ printf(" %d\n", (int)DNS__16BIT(aptr + 2)); /* preference */
+
+ p = aptr + 4;
+ status = ares_expand_string(p, abuf, alen, &name.as_uchar, &len);
+ if (status != ARES_SUCCESS)
+ return NULL;
+ printf("\t\t\t\t\t\t%s\n", name.as_char);
+ ares_free_string(name.as_char);
+ p += len;
+
+ status = ares_expand_string(p, abuf, alen, &name.as_uchar, &len);
+ if (status != ARES_SUCCESS)
+ return NULL;
+ printf("\t\t\t\t\t\t%s\n", name.as_char);
+ ares_free_string(name.as_char);
+ p += len;
+
+ status = ares_expand_string(p, abuf, alen, &name.as_uchar, &len);
+ if (status != ARES_SUCCESS)
+ return NULL;
+ printf("\t\t\t\t\t\t%s\n", name.as_char);
+ ares_free_string(name.as_char);
+ p += len;
+
+ status = ares_expand_name(p, abuf, alen, &name.as_char, &len);
+ if (status != ARES_SUCCESS)
+ return NULL;
+ printf("\t\t\t\t\t\t%s", name.as_char);
+ ares_free_string(name.as_char);
+ break;
+
+ case T_DS:
+ case T_SSHFP:
+ case T_RRSIG:
+ case T_NSEC:
+ case T_DNSKEY:
+ printf("\t[RR type parsing unavailable]");
+ break;
+
+ default:
+ printf("\t[Unknown RR; cannot parse]");
+ break;
+ }
+ printf("\n");
+
+ return aptr + dlen;
+}
+
+static const char *type_name(int type)
+{
+ int i;
+
+ for (i = 0; i < ntypes; i++)
+ {
+ if (types[i].value == type)
+ return types[i].name;
+ }
+ return "(unknown)";
+}
+
+static const char *class_name(int dnsclass)
+{
+ int i;
+
+ for (i = 0; i < nclasses; i++)
+ {
+ if (classes[i].value == dnsclass)
+ return classes[i].name;
+ }
+ return "(unknown)";
+}
+
+static void usage(void)
+{
fprintf(stderr, "usage: adig [-h] [-d] [-f flag] [-s server] [-c class] "
"[-t type] [-T|U port] name ...\n");
- exit(1);
-}
-
-static void destroy_addr_list(struct ares_addr_node *head)
-{
- while(head)
- {
- struct ares_addr_node *detached = head;
- head = head->next;
- free(detached);
- }
-}
-
-static void append_addr_list(struct ares_addr_node **head,
- struct ares_addr_node *node)
-{
- struct ares_addr_node *last;
- node->next = NULL;
- if(*head)
- {
- last = *head;
- while(last->next)
- last = last->next;
- last->next = node;
- }
- else
- *head = node;
-}
+ exit(1);
+}
+
+static void destroy_addr_list(struct ares_addr_node *head)
+{
+ while(head)
+ {
+ struct ares_addr_node *detached = head;
+ head = head->next;
+ free(detached);
+ }
+}
+
+static void append_addr_list(struct ares_addr_node **head,
+ struct ares_addr_node *node)
+{
+ struct ares_addr_node *last;
+ node->next = NULL;
+ if(*head)
+ {
+ last = *head;
+ while(last->next)
+ last = last->next;
+ last->next = node;
+ }
+ else
+ *head = node;
+}
diff --git a/contrib/libs/c-ares/ahost.c b/contrib/libs/c-ares/ahost.c
index 114fa22dbf..89a7c14fcb 100644
--- a/contrib/libs/c-ares/ahost.c
+++ b/contrib/libs/c-ares/ahost.c
@@ -1,90 +1,90 @@
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#if !defined(WIN32) || defined(WATT32)
-#include <netinet/in.h>
-#include <arpa/inet.h>
-#include <netdb.h>
-#endif
-
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-
-#include "ares.h"
-#include "ares_dns.h"
-#include "ares_getopt.h"
-#include "ares_ipv6.h"
-#include "ares_nowarn.h"
-
-#ifndef HAVE_STRDUP
-# include "ares_strdup.h"
-# define strdup(ptr) ares_strdup(ptr)
-#endif
-
-#ifndef HAVE_STRCASECMP
-# include "ares_strcasecmp.h"
-# define strcasecmp(p1,p2) ares_strcasecmp(p1,p2)
-#endif
-
-#ifndef HAVE_STRNCASECMP
-# include "ares_strcasecmp.h"
-# define strncasecmp(p1,p2,n) ares_strncasecmp(p1,p2,n)
-#endif
-
-static void callback(void *arg, int status, int timeouts, struct hostent *host);
-static void usage(void);
-
-int main(int argc, char **argv)
-{
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#if !defined(WIN32) || defined(WATT32)
+#include <netinet/in.h>
+#include <arpa/inet.h>
+#include <netdb.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#include "ares.h"
+#include "ares_dns.h"
+#include "ares_getopt.h"
+#include "ares_ipv6.h"
+#include "ares_nowarn.h"
+
+#ifndef HAVE_STRDUP
+# include "ares_strdup.h"
+# define strdup(ptr) ares_strdup(ptr)
+#endif
+
+#ifndef HAVE_STRCASECMP
+# include "ares_strcasecmp.h"
+# define strcasecmp(p1,p2) ares_strcasecmp(p1,p2)
+#endif
+
+#ifndef HAVE_STRNCASECMP
+# include "ares_strcasecmp.h"
+# define strncasecmp(p1,p2,n) ares_strncasecmp(p1,p2,n)
+#endif
+
+static void callback(void *arg, int status, int timeouts, struct hostent *host);
+static void usage(void);
+
+int main(int argc, char **argv)
+{
struct ares_options options;
int optmask = 0;
- ares_channel channel;
- int status, nfds, c, addr_family = AF_INET;
- fd_set read_fds, write_fds;
- struct timeval *tvp, tv;
- struct in_addr addr4;
- struct ares_in6_addr addr6;
-
-#ifdef USE_WINSOCK
- WORD wVersionRequested = MAKEWORD(USE_WINSOCK,USE_WINSOCK);
- WSADATA wsaData;
- WSAStartup(wVersionRequested, &wsaData);
-#endif
-
+ ares_channel channel;
+ int status, nfds, c, addr_family = AF_INET;
+ fd_set read_fds, write_fds;
+ struct timeval *tvp, tv;
+ struct in_addr addr4;
+ struct ares_in6_addr addr6;
+
+#ifdef USE_WINSOCK
+ WORD wVersionRequested = MAKEWORD(USE_WINSOCK,USE_WINSOCK);
+ WSADATA wsaData;
+ WSAStartup(wVersionRequested, &wsaData);
+#endif
+
memset(&options, 0, sizeof(options));
- status = ares_library_init(ARES_LIB_INIT_ALL);
- if (status != ARES_SUCCESS)
- {
- fprintf(stderr, "ares_library_init: %s\n", ares_strerror(status));
- return 1;
- }
-
+ status = ares_library_init(ARES_LIB_INIT_ALL);
+ if (status != ARES_SUCCESS)
+ {
+ fprintf(stderr, "ares_library_init: %s\n", ares_strerror(status));
+ return 1;
+ }
+
while ((c = ares_getopt(argc,argv,"dt:hs:")) != -1)
- {
- switch (c)
- {
- case 'd':
-#ifdef WATT32
- dbug_init();
-#endif
- break;
+ {
+ switch (c)
+ {
+ case 'd':
+#ifdef WATT32
+ dbug_init();
+#endif
+ break;
case 's':
optmask |= ARES_OPT_DOMAINS;
options.ndomains++;
@@ -92,115 +92,115 @@ int main(int argc, char **argv)
options.ndomains * sizeof(char *));
options.domains[options.ndomains - 1] = strdup(optarg);
break;
- case 't':
- if (!strcasecmp(optarg,"a"))
- addr_family = AF_INET;
- else if (!strcasecmp(optarg,"aaaa"))
- addr_family = AF_INET6;
+ case 't':
+ if (!strcasecmp(optarg,"a"))
+ addr_family = AF_INET;
+ else if (!strcasecmp(optarg,"aaaa"))
+ addr_family = AF_INET6;
else if (!strcasecmp(optarg,"u"))
addr_family = AF_UNSPEC;
- else
- usage();
- break;
- case 'h':
- default:
- usage();
- break;
- }
- }
-
- argc -= optind;
- argv += optind;
- if (argc < 1)
- usage();
-
+ else
+ usage();
+ break;
+ case 'h':
+ default:
+ usage();
+ break;
+ }
+ }
+
+ argc -= optind;
+ argv += optind;
+ if (argc < 1)
+ usage();
+
status = ares_init_options(&channel, &options, optmask);
- if (status != ARES_SUCCESS)
- {
- fprintf(stderr, "ares_init: %s\n", ares_strerror(status));
- return 1;
- }
-
- /* Initiate the queries, one per command-line argument. */
- for ( ; *argv; argv++)
- {
- if (ares_inet_pton(AF_INET, *argv, &addr4) == 1)
- {
- ares_gethostbyaddr(channel, &addr4, sizeof(addr4), AF_INET, callback,
- *argv);
- }
- else if (ares_inet_pton(AF_INET6, *argv, &addr6) == 1)
- {
- ares_gethostbyaddr(channel, &addr6, sizeof(addr6), AF_INET6, callback,
- *argv);
- }
- else
- {
- ares_gethostbyname(channel, *argv, addr_family, callback, *argv);
- }
- }
-
- /* Wait for all queries to complete. */
- for (;;)
- {
+ if (status != ARES_SUCCESS)
+ {
+ fprintf(stderr, "ares_init: %s\n", ares_strerror(status));
+ return 1;
+ }
+
+ /* Initiate the queries, one per command-line argument. */
+ for ( ; *argv; argv++)
+ {
+ if (ares_inet_pton(AF_INET, *argv, &addr4) == 1)
+ {
+ ares_gethostbyaddr(channel, &addr4, sizeof(addr4), AF_INET, callback,
+ *argv);
+ }
+ else if (ares_inet_pton(AF_INET6, *argv, &addr6) == 1)
+ {
+ ares_gethostbyaddr(channel, &addr6, sizeof(addr6), AF_INET6, callback,
+ *argv);
+ }
+ else
+ {
+ ares_gethostbyname(channel, *argv, addr_family, callback, *argv);
+ }
+ }
+
+ /* Wait for all queries to complete. */
+ for (;;)
+ {
int res;
- FD_ZERO(&read_fds);
- FD_ZERO(&write_fds);
- nfds = ares_fds(channel, &read_fds, &write_fds);
- if (nfds == 0)
- break;
- tvp = ares_timeout(channel, NULL, &tv);
+ FD_ZERO(&read_fds);
+ FD_ZERO(&write_fds);
+ nfds = ares_fds(channel, &read_fds, &write_fds);
+ if (nfds == 0)
+ break;
+ tvp = ares_timeout(channel, NULL, &tv);
res = select(nfds, &read_fds, &write_fds, NULL, tvp);
if (-1 == res)
break;
- ares_process(channel, &read_fds, &write_fds);
- }
-
- ares_destroy(channel);
-
- ares_library_cleanup();
-
-#ifdef USE_WINSOCK
- WSACleanup();
-#endif
-
- return 0;
-}
-
-static void callback(void *arg, int status, int timeouts, struct hostent *host)
-{
- char **p;
-
- (void)timeouts;
-
- if (status != ARES_SUCCESS)
- {
- fprintf(stderr, "%s: %s\n", (char *) arg, ares_strerror(status));
- return;
- }
-
- for (p = host->h_addr_list; *p; p++)
- {
- char addr_buf[46] = "??";
-
- ares_inet_ntop(host->h_addrtype, *p, addr_buf, sizeof(addr_buf));
- printf("%-32s\t%s", host->h_name, addr_buf);
-#if 0
- if (host->h_aliases[0])
- {
- int i;
-
- printf (", Aliases: ");
- for (i = 0; host->h_aliases[i]; i++)
- printf("%s ", host->h_aliases[i]);
- }
-#endif
- puts("");
- }
-}
-
-static void usage(void)
-{
+ ares_process(channel, &read_fds, &write_fds);
+ }
+
+ ares_destroy(channel);
+
+ ares_library_cleanup();
+
+#ifdef USE_WINSOCK
+ WSACleanup();
+#endif
+
+ return 0;
+}
+
+static void callback(void *arg, int status, int timeouts, struct hostent *host)
+{
+ char **p;
+
+ (void)timeouts;
+
+ if (status != ARES_SUCCESS)
+ {
+ fprintf(stderr, "%s: %s\n", (char *) arg, ares_strerror(status));
+ return;
+ }
+
+ for (p = host->h_addr_list; *p; p++)
+ {
+ char addr_buf[46] = "??";
+
+ ares_inet_ntop(host->h_addrtype, *p, addr_buf, sizeof(addr_buf));
+ printf("%-32s\t%s", host->h_name, addr_buf);
+#if 0
+ if (host->h_aliases[0])
+ {
+ int i;
+
+ printf (", Aliases: ");
+ for (i = 0; host->h_aliases[i]; i++)
+ printf("%s ", host->h_aliases[i]);
+ }
+#endif
+ puts("");
+ }
+}
+
+static void usage(void)
+{
fprintf(stderr, "usage: ahost [-h] [-d] [-s {domain}] [-t {a|aaaa|u}] {host|addr} ...\n");
- exit(1);
-}
+ exit(1);
+}
diff --git a/contrib/libs/c-ares/ares.h b/contrib/libs/c-ares/ares.h
index a8d91bc787..3f8a6954d0 100644
--- a/contrib/libs/c-ares/ares.h
+++ b/contrib/libs/c-ares/ares.h
@@ -1,319 +1,319 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- * Copyright (C) 2007-2013 by Daniel Stenberg
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#ifndef ARES__H
-#define ARES__H
-
-#include "ares_version.h" /* c-ares version defines */
-#include "ares_build.h" /* c-ares build definitions */
-#include "ares_rules.h" /* c-ares rules enforcement */
-
-/*
- * Define WIN32 when build target is Win32 API
- */
-
-#if (defined(_WIN32) || defined(__WIN32__)) && \
- !defined(WIN32) && !defined(__SYMBIAN32__)
-# define WIN32
-#endif
-
-#include <sys/types.h>
-
-/* HP-UX systems version 9, 10 and 11 lack sys/select.h and so does oldish
- libc5-based Linux systems. Only include it on system that are known to
- require it! */
-#if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \
- defined(__minix) || defined(__SYMBIAN32__) || defined(__INTEGRITY) || \
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ * Copyright (C) 2007-2013 by Daniel Stenberg
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#ifndef ARES__H
+#define ARES__H
+
+#include "ares_version.h" /* c-ares version defines */
+#include "ares_build.h" /* c-ares build definitions */
+#include "ares_rules.h" /* c-ares rules enforcement */
+
+/*
+ * Define WIN32 when build target is Win32 API
+ */
+
+#if (defined(_WIN32) || defined(__WIN32__)) && \
+ !defined(WIN32) && !defined(__SYMBIAN32__)
+# define WIN32
+#endif
+
+#include <sys/types.h>
+
+/* HP-UX systems version 9, 10 and 11 lack sys/select.h and so does oldish
+ libc5-based Linux systems. Only include it on system that are known to
+ require it! */
+#if defined(_AIX) || defined(__NOVELL_LIBC__) || defined(__NetBSD__) || \
+ defined(__minix) || defined(__SYMBIAN32__) || defined(__INTEGRITY) || \
defined(ANDROID) || defined(__ANDROID__) || defined(__OpenBSD__) || \
defined(__QNXNTO__)
-#include <sys/select.h>
-#endif
-#if (defined(NETWARE) && !defined(__NOVELL_LIBC__))
-#include <sys/bsdskt.h>
-#endif
-
-#if defined(WATT32)
-# include <netinet/in.h>
-# include <sys/socket.h>
-# include <tcp.h>
-#elif defined(_WIN32_WCE)
-# ifndef WIN32_LEAN_AND_MEAN
-# define WIN32_LEAN_AND_MEAN
-# endif
-# include <windows.h>
-# include <winsock.h>
-#elif defined(WIN32)
-# ifndef WIN32_LEAN_AND_MEAN
-# define WIN32_LEAN_AND_MEAN
-# endif
-# include <windows.h>
-# include <winsock2.h>
-# include <ws2tcpip.h>
-#else
-# include <sys/socket.h>
-# include <netinet/in.h>
-#endif
-
+#include <sys/select.h>
+#endif
+#if (defined(NETWARE) && !defined(__NOVELL_LIBC__))
+#include <sys/bsdskt.h>
+#endif
+
+#if defined(WATT32)
+# include <netinet/in.h>
+# include <sys/socket.h>
+# include <tcp.h>
+#elif defined(_WIN32_WCE)
+# ifndef WIN32_LEAN_AND_MEAN
+# define WIN32_LEAN_AND_MEAN
+# endif
+# include <windows.h>
+# include <winsock.h>
+#elif defined(WIN32)
+# ifndef WIN32_LEAN_AND_MEAN
+# define WIN32_LEAN_AND_MEAN
+# endif
+# include <windows.h>
+# include <winsock2.h>
+# include <ws2tcpip.h>
+#else
+# include <sys/socket.h>
+# include <netinet/in.h>
+#endif
+
#if defined(ANDROID) || defined(__ANDROID__)
#include <jni.h>
#endif
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/*
-** c-ares external API function linkage decorations.
-*/
-
-#ifdef CARES_STATICLIB
-# define CARES_EXTERN
-#elif defined(WIN32) || defined(_WIN32) || defined(__SYMBIAN32__)
-# if defined(CARES_BUILDING_LIBRARY)
-# define CARES_EXTERN __declspec(dllexport)
-# else
-# define CARES_EXTERN
-# endif
-#elif defined(CARES_BUILDING_LIBRARY) && defined(CARES_SYMBOL_HIDING)
-# define CARES_EXTERN CARES_SYMBOL_SCOPE_EXTERN
-#else
-# define CARES_EXTERN
-#endif
-
-
-#define ARES_SUCCESS 0
-
-/* Server error codes (ARES_ENODATA indicates no relevant answer) */
-#define ARES_ENODATA 1
-#define ARES_EFORMERR 2
-#define ARES_ESERVFAIL 3
-#define ARES_ENOTFOUND 4
-#define ARES_ENOTIMP 5
-#define ARES_EREFUSED 6
-
-/* Locally generated error codes */
-#define ARES_EBADQUERY 7
-#define ARES_EBADNAME 8
-#define ARES_EBADFAMILY 9
-#define ARES_EBADRESP 10
-#define ARES_ECONNREFUSED 11
-#define ARES_ETIMEOUT 12
-#define ARES_EOF 13
-#define ARES_EFILE 14
-#define ARES_ENOMEM 15
-#define ARES_EDESTRUCTION 16
-#define ARES_EBADSTR 17
-
-/* ares_getnameinfo error codes */
-#define ARES_EBADFLAGS 18
-
-/* ares_getaddrinfo error codes */
-#define ARES_ENONAME 19
-#define ARES_EBADHINTS 20
-
-/* Uninitialized library error code */
-#define ARES_ENOTINITIALIZED 21 /* introduced in 1.7.0 */
-
-/* ares_library_init error codes */
-#define ARES_ELOADIPHLPAPI 22 /* introduced in 1.7.0 */
-#define ARES_EADDRGETNETWORKPARAMS 23 /* introduced in 1.7.0 */
-
-/* More error codes */
-#define ARES_ECANCELLED 24 /* introduced in 1.7.0 */
-
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/*
+** c-ares external API function linkage decorations.
+*/
+
+#ifdef CARES_STATICLIB
+# define CARES_EXTERN
+#elif defined(WIN32) || defined(_WIN32) || defined(__SYMBIAN32__)
+# if defined(CARES_BUILDING_LIBRARY)
+# define CARES_EXTERN __declspec(dllexport)
+# else
+# define CARES_EXTERN
+# endif
+#elif defined(CARES_BUILDING_LIBRARY) && defined(CARES_SYMBOL_HIDING)
+# define CARES_EXTERN CARES_SYMBOL_SCOPE_EXTERN
+#else
+# define CARES_EXTERN
+#endif
+
+
+#define ARES_SUCCESS 0
+
+/* Server error codes (ARES_ENODATA indicates no relevant answer) */
+#define ARES_ENODATA 1
+#define ARES_EFORMERR 2
+#define ARES_ESERVFAIL 3
+#define ARES_ENOTFOUND 4
+#define ARES_ENOTIMP 5
+#define ARES_EREFUSED 6
+
+/* Locally generated error codes */
+#define ARES_EBADQUERY 7
+#define ARES_EBADNAME 8
+#define ARES_EBADFAMILY 9
+#define ARES_EBADRESP 10
+#define ARES_ECONNREFUSED 11
+#define ARES_ETIMEOUT 12
+#define ARES_EOF 13
+#define ARES_EFILE 14
+#define ARES_ENOMEM 15
+#define ARES_EDESTRUCTION 16
+#define ARES_EBADSTR 17
+
+/* ares_getnameinfo error codes */
+#define ARES_EBADFLAGS 18
+
+/* ares_getaddrinfo error codes */
+#define ARES_ENONAME 19
+#define ARES_EBADHINTS 20
+
+/* Uninitialized library error code */
+#define ARES_ENOTINITIALIZED 21 /* introduced in 1.7.0 */
+
+/* ares_library_init error codes */
+#define ARES_ELOADIPHLPAPI 22 /* introduced in 1.7.0 */
+#define ARES_EADDRGETNETWORKPARAMS 23 /* introduced in 1.7.0 */
+
+/* More error codes */
+#define ARES_ECANCELLED 24 /* introduced in 1.7.0 */
+
/* More ares_getaddrinfo error codes */
#define ARES_ESERVICE 25 /* introduced in 1.?.0 */
-/* Flag values */
-#define ARES_FLAG_USEVC (1 << 0)
-#define ARES_FLAG_PRIMARY (1 << 1)
-#define ARES_FLAG_IGNTC (1 << 2)
-#define ARES_FLAG_NORECURSE (1 << 3)
-#define ARES_FLAG_STAYOPEN (1 << 4)
-#define ARES_FLAG_NOSEARCH (1 << 5)
-#define ARES_FLAG_NOALIASES (1 << 6)
-#define ARES_FLAG_NOCHECKRESP (1 << 7)
-#define ARES_FLAG_EDNS (1 << 8)
-
-/* Option mask values */
-#define ARES_OPT_FLAGS (1 << 0)
-#define ARES_OPT_TIMEOUT (1 << 1)
-#define ARES_OPT_TRIES (1 << 2)
-#define ARES_OPT_NDOTS (1 << 3)
-#define ARES_OPT_UDP_PORT (1 << 4)
-#define ARES_OPT_TCP_PORT (1 << 5)
-#define ARES_OPT_SERVERS (1 << 6)
-#define ARES_OPT_DOMAINS (1 << 7)
-#define ARES_OPT_LOOKUPS (1 << 8)
-#define ARES_OPT_SOCK_STATE_CB (1 << 9)
-#define ARES_OPT_SORTLIST (1 << 10)
-#define ARES_OPT_SOCK_SNDBUF (1 << 11)
-#define ARES_OPT_SOCK_RCVBUF (1 << 12)
-#define ARES_OPT_TIMEOUTMS (1 << 13)
-#define ARES_OPT_ROTATE (1 << 14)
-#define ARES_OPT_EDNSPSZ (1 << 15)
+/* Flag values */
+#define ARES_FLAG_USEVC (1 << 0)
+#define ARES_FLAG_PRIMARY (1 << 1)
+#define ARES_FLAG_IGNTC (1 << 2)
+#define ARES_FLAG_NORECURSE (1 << 3)
+#define ARES_FLAG_STAYOPEN (1 << 4)
+#define ARES_FLAG_NOSEARCH (1 << 5)
+#define ARES_FLAG_NOALIASES (1 << 6)
+#define ARES_FLAG_NOCHECKRESP (1 << 7)
+#define ARES_FLAG_EDNS (1 << 8)
+
+/* Option mask values */
+#define ARES_OPT_FLAGS (1 << 0)
+#define ARES_OPT_TIMEOUT (1 << 1)
+#define ARES_OPT_TRIES (1 << 2)
+#define ARES_OPT_NDOTS (1 << 3)
+#define ARES_OPT_UDP_PORT (1 << 4)
+#define ARES_OPT_TCP_PORT (1 << 5)
+#define ARES_OPT_SERVERS (1 << 6)
+#define ARES_OPT_DOMAINS (1 << 7)
+#define ARES_OPT_LOOKUPS (1 << 8)
+#define ARES_OPT_SOCK_STATE_CB (1 << 9)
+#define ARES_OPT_SORTLIST (1 << 10)
+#define ARES_OPT_SOCK_SNDBUF (1 << 11)
+#define ARES_OPT_SOCK_RCVBUF (1 << 12)
+#define ARES_OPT_TIMEOUTMS (1 << 13)
+#define ARES_OPT_ROTATE (1 << 14)
+#define ARES_OPT_EDNSPSZ (1 << 15)
#define ARES_OPT_NOROTATE (1 << 16)
#define ARES_OPT_RESOLVCONF (1 << 17)
#define ARES_OPT_MAXTIMEOUTMS (1 << 18)
#define ARES_OPT_JITTER (1 << 19)
-
-/* Nameinfo flag values */
-#define ARES_NI_NOFQDN (1 << 0)
-#define ARES_NI_NUMERICHOST (1 << 1)
-#define ARES_NI_NAMEREQD (1 << 2)
-#define ARES_NI_NUMERICSERV (1 << 3)
-#define ARES_NI_DGRAM (1 << 4)
-#define ARES_NI_TCP 0
-#define ARES_NI_UDP ARES_NI_DGRAM
-#define ARES_NI_SCTP (1 << 5)
-#define ARES_NI_DCCP (1 << 6)
-#define ARES_NI_NUMERICSCOPE (1 << 7)
-#define ARES_NI_LOOKUPHOST (1 << 8)
-#define ARES_NI_LOOKUPSERVICE (1 << 9)
-/* Reserved for future use */
-#define ARES_NI_IDN (1 << 10)
-#define ARES_NI_IDN_ALLOW_UNASSIGNED (1 << 11)
-#define ARES_NI_IDN_USE_STD3_ASCII_RULES (1 << 12)
-
-/* Addrinfo flag values */
-#define ARES_AI_CANONNAME (1 << 0)
-#define ARES_AI_NUMERICHOST (1 << 1)
-#define ARES_AI_PASSIVE (1 << 2)
-#define ARES_AI_NUMERICSERV (1 << 3)
-#define ARES_AI_V4MAPPED (1 << 4)
-#define ARES_AI_ALL (1 << 5)
-#define ARES_AI_ADDRCONFIG (1 << 6)
+
+/* Nameinfo flag values */
+#define ARES_NI_NOFQDN (1 << 0)
+#define ARES_NI_NUMERICHOST (1 << 1)
+#define ARES_NI_NAMEREQD (1 << 2)
+#define ARES_NI_NUMERICSERV (1 << 3)
+#define ARES_NI_DGRAM (1 << 4)
+#define ARES_NI_TCP 0
+#define ARES_NI_UDP ARES_NI_DGRAM
+#define ARES_NI_SCTP (1 << 5)
+#define ARES_NI_DCCP (1 << 6)
+#define ARES_NI_NUMERICSCOPE (1 << 7)
+#define ARES_NI_LOOKUPHOST (1 << 8)
+#define ARES_NI_LOOKUPSERVICE (1 << 9)
+/* Reserved for future use */
+#define ARES_NI_IDN (1 << 10)
+#define ARES_NI_IDN_ALLOW_UNASSIGNED (1 << 11)
+#define ARES_NI_IDN_USE_STD3_ASCII_RULES (1 << 12)
+
+/* Addrinfo flag values */
+#define ARES_AI_CANONNAME (1 << 0)
+#define ARES_AI_NUMERICHOST (1 << 1)
+#define ARES_AI_PASSIVE (1 << 2)
+#define ARES_AI_NUMERICSERV (1 << 3)
+#define ARES_AI_V4MAPPED (1 << 4)
+#define ARES_AI_ALL (1 << 5)
+#define ARES_AI_ADDRCONFIG (1 << 6)
#define ARES_AI_NOSORT (1 << 7)
#define ARES_AI_ENVHOSTS (1 << 8)
-/* Reserved for future use */
-#define ARES_AI_IDN (1 << 10)
-#define ARES_AI_IDN_ALLOW_UNASSIGNED (1 << 11)
-#define ARES_AI_IDN_USE_STD3_ASCII_RULES (1 << 12)
-#define ARES_AI_CANONIDN (1 << 13)
-
-#define ARES_AI_MASK (ARES_AI_CANONNAME|ARES_AI_NUMERICHOST|ARES_AI_PASSIVE| \
- ARES_AI_NUMERICSERV|ARES_AI_V4MAPPED|ARES_AI_ALL| \
- ARES_AI_ADDRCONFIG)
-#define ARES_GETSOCK_MAXNUM 16 /* ares_getsock() can return info about this
- many sockets */
-#define ARES_GETSOCK_READABLE(bits,num) (bits & (1<< (num)))
-#define ARES_GETSOCK_WRITABLE(bits,num) (bits & (1 << ((num) + \
- ARES_GETSOCK_MAXNUM)))
-
-/* c-ares library initialization flag values */
-#define ARES_LIB_INIT_NONE (0)
-#define ARES_LIB_INIT_WIN32 (1 << 0)
-#define ARES_LIB_INIT_ALL (ARES_LIB_INIT_WIN32)
-
-
-/*
- * Typedef our socket type
- */
-
-#ifndef ares_socket_typedef
-#ifdef WIN32
-typedef SOCKET ares_socket_t;
-#define ARES_SOCKET_BAD INVALID_SOCKET
-#else
-typedef int ares_socket_t;
-#define ARES_SOCKET_BAD -1
-#endif
-#define ares_socket_typedef
-#endif /* ares_socket_typedef */
-
-typedef void (*ares_sock_state_cb)(void *data,
- ares_socket_t socket_fd,
- int readable,
- int writable);
-
-struct apattern;
-
-/* NOTE about the ares_options struct to users and developers.
-
- This struct will remain looking like this. It will not be extended nor
- shrunk in future releases, but all new options will be set by ares_set_*()
- options instead of with the ares_init_options() function.
-
- Eventually (in a galaxy far far away), all options will be settable by
- ares_set_*() options and the ares_init_options() function will become
- deprecated.
-
- When new options are added to c-ares, they are not added to this
- struct. And they are not "saved" with the ares_save_options() function but
- instead we encourage the use of the ares_dup() function. Needless to say,
- if you add config options to c-ares you need to make sure ares_dup()
- duplicates this new option.
-
- */
-struct ares_options {
- int flags;
- int timeout; /* in seconds or milliseconds, depending on options */
+/* Reserved for future use */
+#define ARES_AI_IDN (1 << 10)
+#define ARES_AI_IDN_ALLOW_UNASSIGNED (1 << 11)
+#define ARES_AI_IDN_USE_STD3_ASCII_RULES (1 << 12)
+#define ARES_AI_CANONIDN (1 << 13)
+
+#define ARES_AI_MASK (ARES_AI_CANONNAME|ARES_AI_NUMERICHOST|ARES_AI_PASSIVE| \
+ ARES_AI_NUMERICSERV|ARES_AI_V4MAPPED|ARES_AI_ALL| \
+ ARES_AI_ADDRCONFIG)
+#define ARES_GETSOCK_MAXNUM 16 /* ares_getsock() can return info about this
+ many sockets */
+#define ARES_GETSOCK_READABLE(bits,num) (bits & (1<< (num)))
+#define ARES_GETSOCK_WRITABLE(bits,num) (bits & (1 << ((num) + \
+ ARES_GETSOCK_MAXNUM)))
+
+/* c-ares library initialization flag values */
+#define ARES_LIB_INIT_NONE (0)
+#define ARES_LIB_INIT_WIN32 (1 << 0)
+#define ARES_LIB_INIT_ALL (ARES_LIB_INIT_WIN32)
+
+
+/*
+ * Typedef our socket type
+ */
+
+#ifndef ares_socket_typedef
+#ifdef WIN32
+typedef SOCKET ares_socket_t;
+#define ARES_SOCKET_BAD INVALID_SOCKET
+#else
+typedef int ares_socket_t;
+#define ARES_SOCKET_BAD -1
+#endif
+#define ares_socket_typedef
+#endif /* ares_socket_typedef */
+
+typedef void (*ares_sock_state_cb)(void *data,
+ ares_socket_t socket_fd,
+ int readable,
+ int writable);
+
+struct apattern;
+
+/* NOTE about the ares_options struct to users and developers.
+
+ This struct will remain looking like this. It will not be extended nor
+ shrunk in future releases, but all new options will be set by ares_set_*()
+ options instead of with the ares_init_options() function.
+
+ Eventually (in a galaxy far far away), all options will be settable by
+ ares_set_*() options and the ares_init_options() function will become
+ deprecated.
+
+ When new options are added to c-ares, they are not added to this
+ struct. And they are not "saved" with the ares_save_options() function but
+ instead we encourage the use of the ares_dup() function. Needless to say,
+ if you add config options to c-ares you need to make sure ares_dup()
+ duplicates this new option.
+
+ */
+struct ares_options {
+ int flags;
+ int timeout; /* in seconds or milliseconds, depending on options */
int maxtimeout; /* in milliseconds */
int jitter; /* in .001 */
unsigned int jitter_rand_seed;
- int tries;
- int ndots;
- unsigned short udp_port;
- unsigned short tcp_port;
- int socket_send_buffer_size;
- int socket_receive_buffer_size;
- struct in_addr *servers;
- int nservers;
- char **domains;
- int ndomains;
- char *lookups;
- ares_sock_state_cb sock_state_cb;
- void *sock_state_cb_data;
- struct apattern *sortlist;
- int nsort;
- int ednspsz;
+ int tries;
+ int ndots;
+ unsigned short udp_port;
+ unsigned short tcp_port;
+ int socket_send_buffer_size;
+ int socket_receive_buffer_size;
+ struct in_addr *servers;
+ int nservers;
+ char **domains;
+ int ndomains;
+ char *lookups;
+ ares_sock_state_cb sock_state_cb;
+ void *sock_state_cb_data;
+ struct apattern *sortlist;
+ int nsort;
+ int ednspsz;
char *resolvconf_path;
-};
-
-struct hostent;
-struct timeval;
-struct sockaddr;
-struct ares_channeldata;
+};
+
+struct hostent;
+struct timeval;
+struct sockaddr;
+struct ares_channeldata;
struct ares_addrinfo;
struct ares_addrinfo_hints;
-
-typedef struct ares_channeldata *ares_channel;
-
-typedef void (*ares_callback)(void *arg,
- int status,
- int timeouts,
- unsigned char *abuf,
- int alen);
-
-typedef void (*ares_host_callback)(void *arg,
- int status,
- int timeouts,
- struct hostent *hostent);
-
-typedef void (*ares_nameinfo_callback)(void *arg,
- int status,
- int timeouts,
- char *node,
- char *service);
-
-typedef int (*ares_sock_create_callback)(ares_socket_t socket_fd,
- int type,
- void *data);
-
+
+typedef struct ares_channeldata *ares_channel;
+
+typedef void (*ares_callback)(void *arg,
+ int status,
+ int timeouts,
+ unsigned char *abuf,
+ int alen);
+
+typedef void (*ares_host_callback)(void *arg,
+ int status,
+ int timeouts,
+ struct hostent *hostent);
+
+typedef void (*ares_nameinfo_callback)(void *arg,
+ int status,
+ int timeouts,
+ char *node,
+ char *service);
+
+typedef int (*ares_sock_create_callback)(ares_socket_t socket_fd,
+ int type,
+ void *data);
+
typedef int (*ares_sock_config_callback)(ares_socket_t socket_fd,
int type,
void *data);
@@ -323,8 +323,8 @@ typedef void (*ares_addrinfo_callback)(void *arg,
int timeouts,
struct ares_addrinfo *res);
-CARES_EXTERN int ares_library_init(int flags);
-
+CARES_EXTERN int ares_library_init(int flags);
+
CARES_EXTERN int ares_library_init_mem(int flags,
void *(*amalloc)(size_t size),
void (*afree)(void *ptr),
@@ -338,47 +338,47 @@ CARES_EXTERN int ares_library_android_initialized(void);
CARES_EXTERN int ares_library_initialized(void);
-CARES_EXTERN void ares_library_cleanup(void);
-
-CARES_EXTERN const char *ares_version(int *version);
-
-CARES_EXTERN int ares_init(ares_channel *channelptr);
-
-CARES_EXTERN int ares_init_options(ares_channel *channelptr,
- struct ares_options *options,
- int optmask);
-
-CARES_EXTERN int ares_save_options(ares_channel channel,
- struct ares_options *options,
- int *optmask);
-
-CARES_EXTERN void ares_destroy_options(struct ares_options *options);
-
-CARES_EXTERN int ares_dup(ares_channel *dest,
- ares_channel src);
-
-CARES_EXTERN void ares_destroy(ares_channel channel);
-
-CARES_EXTERN void ares_cancel(ares_channel channel);
-
-/* These next 3 configure local binding for the out-going socket
- * connection. Use these to specify source IP and/or network device
- * on multi-homed systems.
- */
-CARES_EXTERN void ares_set_local_ip4(ares_channel channel, unsigned int local_ip);
-
-/* local_ip6 should be 16 bytes in length */
-CARES_EXTERN void ares_set_local_ip6(ares_channel channel,
- const unsigned char* local_ip6);
-
-/* local_dev_name should be null terminated. */
-CARES_EXTERN void ares_set_local_dev(ares_channel channel,
- const char* local_dev_name);
-
-CARES_EXTERN void ares_set_socket_callback(ares_channel channel,
- ares_sock_create_callback callback,
- void *user_data);
-
+CARES_EXTERN void ares_library_cleanup(void);
+
+CARES_EXTERN const char *ares_version(int *version);
+
+CARES_EXTERN int ares_init(ares_channel *channelptr);
+
+CARES_EXTERN int ares_init_options(ares_channel *channelptr,
+ struct ares_options *options,
+ int optmask);
+
+CARES_EXTERN int ares_save_options(ares_channel channel,
+ struct ares_options *options,
+ int *optmask);
+
+CARES_EXTERN void ares_destroy_options(struct ares_options *options);
+
+CARES_EXTERN int ares_dup(ares_channel *dest,
+ ares_channel src);
+
+CARES_EXTERN void ares_destroy(ares_channel channel);
+
+CARES_EXTERN void ares_cancel(ares_channel channel);
+
+/* These next 3 configure local binding for the out-going socket
+ * connection. Use these to specify source IP and/or network device
+ * on multi-homed systems.
+ */
+CARES_EXTERN void ares_set_local_ip4(ares_channel channel, unsigned int local_ip);
+
+/* local_ip6 should be 16 bytes in length */
+CARES_EXTERN void ares_set_local_ip6(ares_channel channel,
+ const unsigned char* local_ip6);
+
+/* local_dev_name should be null terminated. */
+CARES_EXTERN void ares_set_local_dev(ares_channel channel,
+ const char* local_dev_name);
+
+CARES_EXTERN void ares_set_socket_callback(ares_channel channel,
+ ares_sock_create_callback callback,
+ void *user_data);
+
CARES_EXTERN void ares_set_socket_configure_callback(ares_channel channel,
ares_sock_config_callback callback,
void *user_data);
@@ -416,146 +416,146 @@ CARES_EXTERN void ares_set_socket_functions(ares_channel channel,
const struct ares_socket_functions * funcs,
void *user_data);
-CARES_EXTERN void ares_send(ares_channel channel,
- const unsigned char *qbuf,
- int qlen,
- ares_callback callback,
- void *arg);
-
-CARES_EXTERN void ares_query(ares_channel channel,
- const char *name,
- int dnsclass,
- int type,
- ares_callback callback,
- void *arg);
-
-CARES_EXTERN void ares_search(ares_channel channel,
- const char *name,
- int dnsclass,
- int type,
- ares_callback callback,
- void *arg);
-
-CARES_EXTERN void ares_gethostbyname(ares_channel channel,
- const char *name,
- int family,
- ares_host_callback callback,
- void *arg);
-
-CARES_EXTERN int ares_gethostbyname_file(ares_channel channel,
- const char *name,
- int family,
- struct hostent **host);
-
-CARES_EXTERN void ares_gethostbyaddr(ares_channel channel,
- const void *addr,
- int addrlen,
- int family,
- ares_host_callback callback,
- void *arg);
-
-CARES_EXTERN void ares_getnameinfo(ares_channel channel,
- const struct sockaddr *sa,
- ares_socklen_t salen,
- int flags,
- ares_nameinfo_callback callback,
- void *arg);
-
-CARES_EXTERN int ares_fds(ares_channel channel,
- fd_set *read_fds,
- fd_set *write_fds);
-
-CARES_EXTERN int ares_getsock(ares_channel channel,
- ares_socket_t *socks,
- int numsocks);
-
-CARES_EXTERN struct timeval *ares_timeout(ares_channel channel,
- struct timeval *maxtv,
- struct timeval *tv);
-
-CARES_EXTERN void ares_process(ares_channel channel,
- fd_set *read_fds,
- fd_set *write_fds);
-
-CARES_EXTERN void ares_process_fd(ares_channel channel,
- ares_socket_t read_fd,
- ares_socket_t write_fd);
-
-CARES_EXTERN int ares_create_query(const char *name,
- int dnsclass,
- int type,
- unsigned short id,
- int rd,
- unsigned char **buf,
- int *buflen,
- int max_udp_size);
-
-CARES_EXTERN int ares_mkquery(const char *name,
- int dnsclass,
- int type,
- unsigned short id,
- int rd,
- unsigned char **buf,
- int *buflen);
-
-CARES_EXTERN int ares_expand_name(const unsigned char *encoded,
- const unsigned char *abuf,
- int alen,
- char **s,
- long *enclen);
-
-CARES_EXTERN int ares_expand_string(const unsigned char *encoded,
- const unsigned char *abuf,
- int alen,
- unsigned char **s,
- long *enclen);
-
-/*
- * NOTE: before c-ares 1.7.0 we would most often use the system in6_addr
- * struct below when ares itself was built, but many apps would use this
- * private version since the header checked a HAVE_* define for it. Starting
- * with 1.7.0 we always declare and use our own to stop relying on the
- * system's one.
- */
-struct ares_in6_addr {
- union {
- unsigned char _S6_u8[16];
- } _S6_un;
-};
-
-struct ares_addrttl {
- struct in_addr ipaddr;
- int ttl;
-};
-
-struct ares_addr6ttl {
- struct ares_in6_addr ip6addr;
- int ttl;
-};
-
-struct ares_srv_reply {
- struct ares_srv_reply *next;
- char *host;
- unsigned short priority;
- unsigned short weight;
- unsigned short port;
+CARES_EXTERN void ares_send(ares_channel channel,
+ const unsigned char *qbuf,
+ int qlen,
+ ares_callback callback,
+ void *arg);
+
+CARES_EXTERN void ares_query(ares_channel channel,
+ const char *name,
+ int dnsclass,
+ int type,
+ ares_callback callback,
+ void *arg);
+
+CARES_EXTERN void ares_search(ares_channel channel,
+ const char *name,
+ int dnsclass,
+ int type,
+ ares_callback callback,
+ void *arg);
+
+CARES_EXTERN void ares_gethostbyname(ares_channel channel,
+ const char *name,
+ int family,
+ ares_host_callback callback,
+ void *arg);
+
+CARES_EXTERN int ares_gethostbyname_file(ares_channel channel,
+ const char *name,
+ int family,
+ struct hostent **host);
+
+CARES_EXTERN void ares_gethostbyaddr(ares_channel channel,
+ const void *addr,
+ int addrlen,
+ int family,
+ ares_host_callback callback,
+ void *arg);
+
+CARES_EXTERN void ares_getnameinfo(ares_channel channel,
+ const struct sockaddr *sa,
+ ares_socklen_t salen,
+ int flags,
+ ares_nameinfo_callback callback,
+ void *arg);
+
+CARES_EXTERN int ares_fds(ares_channel channel,
+ fd_set *read_fds,
+ fd_set *write_fds);
+
+CARES_EXTERN int ares_getsock(ares_channel channel,
+ ares_socket_t *socks,
+ int numsocks);
+
+CARES_EXTERN struct timeval *ares_timeout(ares_channel channel,
+ struct timeval *maxtv,
+ struct timeval *tv);
+
+CARES_EXTERN void ares_process(ares_channel channel,
+ fd_set *read_fds,
+ fd_set *write_fds);
+
+CARES_EXTERN void ares_process_fd(ares_channel channel,
+ ares_socket_t read_fd,
+ ares_socket_t write_fd);
+
+CARES_EXTERN int ares_create_query(const char *name,
+ int dnsclass,
+ int type,
+ unsigned short id,
+ int rd,
+ unsigned char **buf,
+ int *buflen,
+ int max_udp_size);
+
+CARES_EXTERN int ares_mkquery(const char *name,
+ int dnsclass,
+ int type,
+ unsigned short id,
+ int rd,
+ unsigned char **buf,
+ int *buflen);
+
+CARES_EXTERN int ares_expand_name(const unsigned char *encoded,
+ const unsigned char *abuf,
+ int alen,
+ char **s,
+ long *enclen);
+
+CARES_EXTERN int ares_expand_string(const unsigned char *encoded,
+ const unsigned char *abuf,
+ int alen,
+ unsigned char **s,
+ long *enclen);
+
+/*
+ * NOTE: before c-ares 1.7.0 we would most often use the system in6_addr
+ * struct below when ares itself was built, but many apps would use this
+ * private version since the header checked a HAVE_* define for it. Starting
+ * with 1.7.0 we always declare and use our own to stop relying on the
+ * system's one.
+ */
+struct ares_in6_addr {
+ union {
+ unsigned char _S6_u8[16];
+ } _S6_un;
+};
+
+struct ares_addrttl {
+ struct in_addr ipaddr;
+ int ttl;
+};
+
+struct ares_addr6ttl {
+ struct ares_in6_addr ip6addr;
+ int ttl;
+};
+
+struct ares_srv_reply {
+ struct ares_srv_reply *next;
+ char *host;
+ unsigned short priority;
+ unsigned short weight;
+ unsigned short port;
int ttl;
-};
-
-struct ares_mx_reply {
- struct ares_mx_reply *next;
- char *host;
- unsigned short priority;
+};
+
+struct ares_mx_reply {
+ struct ares_mx_reply *next;
+ char *host;
+ unsigned short priority;
int ttl;
-};
-
-struct ares_txt_reply {
- struct ares_txt_reply *next;
- unsigned char *txt;
- size_t length; /* length excludes null termination */
+};
+
+struct ares_txt_reply {
+ struct ares_txt_reply *next;
+ unsigned char *txt;
+ size_t length; /* length excludes null termination */
int ttl;
-};
-
+};
+
/* NOTE: This structure is a superset of ares_txt_reply
*/
struct ares_txt_ext {
@@ -568,29 +568,29 @@ struct ares_txt_ext {
int ttl;
};
-struct ares_naptr_reply {
- struct ares_naptr_reply *next;
- unsigned char *flags;
- unsigned char *service;
- unsigned char *regexp;
- char *replacement;
- unsigned short order;
- unsigned short preference;
+struct ares_naptr_reply {
+ struct ares_naptr_reply *next;
+ unsigned char *flags;
+ unsigned char *service;
+ unsigned char *regexp;
+ char *replacement;
+ unsigned short order;
+ unsigned short preference;
int ttl;
-};
-
-struct ares_soa_reply {
- char *nsname;
- char *hostmaster;
- unsigned int serial;
- unsigned int refresh;
- unsigned int retry;
- unsigned int expire;
- unsigned int minttl;
+};
+
+struct ares_soa_reply {
+ char *nsname;
+ char *hostmaster;
+ unsigned int serial;
+ unsigned int refresh;
+ unsigned int retry;
+ unsigned int expire;
+ unsigned int minttl;
int ttl;
-};
-
-/*
+};
+
+/*
* Similar to addrinfo, but with extra ttl and missing canonname.
*/
struct ares_addrinfo_node {
@@ -629,78 +629,78 @@ struct ares_addrinfo_hints {
};
/*
-** Parse the buffer, starting at *abuf and of length alen bytes, previously
-** obtained from an ares_search call. Put the results in *host, if nonnull.
-** Also, if addrttls is nonnull, put up to *naddrttls IPv4 addresses along with
-** their TTLs in that array, and set *naddrttls to the number of addresses
-** so written.
-*/
-
-CARES_EXTERN int ares_parse_a_reply(const unsigned char *abuf,
- int alen,
- struct hostent **host,
- struct ares_addrttl *addrttls,
- int *naddrttls);
-
-CARES_EXTERN int ares_parse_aaaa_reply(const unsigned char *abuf,
- int alen,
- struct hostent **host,
- struct ares_addr6ttl *addrttls,
- int *naddrttls);
-
-CARES_EXTERN int ares_parse_ptr_reply(const unsigned char *abuf,
- int alen,
- const void *addr,
- int addrlen,
- int family,
+** Parse the buffer, starting at *abuf and of length alen bytes, previously
+** obtained from an ares_search call. Put the results in *host, if nonnull.
+** Also, if addrttls is nonnull, put up to *naddrttls IPv4 addresses along with
+** their TTLs in that array, and set *naddrttls to the number of addresses
+** so written.
+*/
+
+CARES_EXTERN int ares_parse_a_reply(const unsigned char *abuf,
+ int alen,
+ struct hostent **host,
+ struct ares_addrttl *addrttls,
+ int *naddrttls);
+
+CARES_EXTERN int ares_parse_aaaa_reply(const unsigned char *abuf,
+ int alen,
+ struct hostent **host,
+ struct ares_addr6ttl *addrttls,
+ int *naddrttls);
+
+CARES_EXTERN int ares_parse_ptr_reply(const unsigned char *abuf,
+ int alen,
+ const void *addr,
+ int addrlen,
+ int family,
struct hostent **host,
int *hostttl);
-
-CARES_EXTERN int ares_parse_ns_reply(const unsigned char *abuf,
- int alen,
- struct hostent **host);
-
-CARES_EXTERN int ares_parse_srv_reply(const unsigned char* abuf,
- int alen,
- struct ares_srv_reply** srv_out);
-
-CARES_EXTERN int ares_parse_mx_reply(const unsigned char* abuf,
- int alen,
- struct ares_mx_reply** mx_out);
-
-CARES_EXTERN int ares_parse_txt_reply(const unsigned char* abuf,
- int alen,
- struct ares_txt_reply** txt_out);
-
+
+CARES_EXTERN int ares_parse_ns_reply(const unsigned char *abuf,
+ int alen,
+ struct hostent **host);
+
+CARES_EXTERN int ares_parse_srv_reply(const unsigned char* abuf,
+ int alen,
+ struct ares_srv_reply** srv_out);
+
+CARES_EXTERN int ares_parse_mx_reply(const unsigned char* abuf,
+ int alen,
+ struct ares_mx_reply** mx_out);
+
+CARES_EXTERN int ares_parse_txt_reply(const unsigned char* abuf,
+ int alen,
+ struct ares_txt_reply** txt_out);
+
CARES_EXTERN int ares_parse_txt_reply_ext(const unsigned char* abuf,
int alen,
struct ares_txt_ext** txt_out);
-CARES_EXTERN int ares_parse_naptr_reply(const unsigned char* abuf,
- int alen,
- struct ares_naptr_reply** naptr_out);
-
-CARES_EXTERN int ares_parse_soa_reply(const unsigned char* abuf,
- int alen,
- struct ares_soa_reply** soa_out);
-
-CARES_EXTERN void ares_free_string(void *str);
-
-CARES_EXTERN void ares_free_hostent(struct hostent *host);
-
-CARES_EXTERN void ares_free_data(void *dataptr);
-
-CARES_EXTERN const char *ares_strerror(int code);
-
-struct ares_addr_node {
- struct ares_addr_node *next;
- int family;
- union {
- struct in_addr addr4;
- struct ares_in6_addr addr6;
- } addr;
-};
-
+CARES_EXTERN int ares_parse_naptr_reply(const unsigned char* abuf,
+ int alen,
+ struct ares_naptr_reply** naptr_out);
+
+CARES_EXTERN int ares_parse_soa_reply(const unsigned char* abuf,
+ int alen,
+ struct ares_soa_reply** soa_out);
+
+CARES_EXTERN void ares_free_string(void *str);
+
+CARES_EXTERN void ares_free_hostent(struct hostent *host);
+
+CARES_EXTERN void ares_free_data(void *dataptr);
+
+CARES_EXTERN const char *ares_strerror(int code);
+
+struct ares_addr_node {
+ struct ares_addr_node *next;
+ int family;
+ union {
+ struct in_addr addr4;
+ struct ares_in6_addr addr6;
+ } addr;
+};
+
struct ares_addr_port_node {
struct ares_addr_port_node *next;
int family;
@@ -712,30 +712,30 @@ struct ares_addr_port_node {
int tcp_port;
};
-CARES_EXTERN int ares_set_servers(ares_channel channel,
- struct ares_addr_node *servers);
+CARES_EXTERN int ares_set_servers(ares_channel channel,
+ struct ares_addr_node *servers);
CARES_EXTERN int ares_set_servers_ports(ares_channel channel,
struct ares_addr_port_node *servers);
-
-/* Incomming string format: host[:port][,host[:port]]... */
-CARES_EXTERN int ares_set_servers_csv(ares_channel channel,
- const char* servers);
+
+/* Incomming string format: host[:port][,host[:port]]... */
+CARES_EXTERN int ares_set_servers_csv(ares_channel channel,
+ const char* servers);
CARES_EXTERN int ares_set_servers_ports_csv(ares_channel channel,
const char* servers);
-
-CARES_EXTERN int ares_get_servers(ares_channel channel,
- struct ares_addr_node **servers);
+
+CARES_EXTERN int ares_get_servers(ares_channel channel,
+ struct ares_addr_node **servers);
CARES_EXTERN int ares_get_servers_ports(ares_channel channel,
struct ares_addr_port_node **servers);
-
-CARES_EXTERN const char *ares_inet_ntop(int af, const void *src, char *dst,
- ares_socklen_t size);
-
-CARES_EXTERN int ares_inet_pton(int af, const char *src, void *dst);
-
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif /* ARES__H */
+
+CARES_EXTERN const char *ares_inet_ntop(int af, const void *src, char *dst,
+ ares_socklen_t size);
+
+CARES_EXTERN int ares_inet_pton(int af, const char *src, void *dst);
+
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* ARES__H */
diff --git a/contrib/libs/c-ares/ares__close_sockets.c b/contrib/libs/c-ares/ares__close_sockets.c
index 1aadde58a8..0477174e3e 100644
--- a/contrib/libs/c-ares/ares__close_sockets.c
+++ b/contrib/libs/c-ares/ares__close_sockets.c
@@ -1,61 +1,61 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#include "ares.h"
-#include "ares_private.h"
-
-void ares__close_sockets(ares_channel channel, struct server_state *server)
-{
- struct send_request *sendreq;
-
- /* Free all pending output buffers. */
- while (server->qhead)
- {
- /* Advance server->qhead; pull out query as we go. */
- sendreq = server->qhead;
- server->qhead = sendreq->next;
- if (sendreq->data_storage != NULL)
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#include "ares.h"
+#include "ares_private.h"
+
+void ares__close_sockets(ares_channel channel, struct server_state *server)
+{
+ struct send_request *sendreq;
+
+ /* Free all pending output buffers. */
+ while (server->qhead)
+ {
+ /* Advance server->qhead; pull out query as we go. */
+ sendreq = server->qhead;
+ server->qhead = sendreq->next;
+ if (sendreq->data_storage != NULL)
ares_free(sendreq->data_storage);
ares_free(sendreq);
- }
- server->qtail = NULL;
-
- /* Reset any existing input buffer. */
- if (server->tcp_buffer)
+ }
+ server->qtail = NULL;
+
+ /* Reset any existing input buffer. */
+ if (server->tcp_buffer)
ares_free(server->tcp_buffer);
- server->tcp_buffer = NULL;
- server->tcp_lenbuf_pos = 0;
-
- /* Reset brokenness */
- server->is_broken = 0;
-
- /* Close the TCP and UDP sockets. */
- if (server->tcp_socket != ARES_SOCKET_BAD)
- {
- SOCK_STATE_CALLBACK(channel, server->tcp_socket, 0, 0);
+ server->tcp_buffer = NULL;
+ server->tcp_lenbuf_pos = 0;
+
+ /* Reset brokenness */
+ server->is_broken = 0;
+
+ /* Close the TCP and UDP sockets. */
+ if (server->tcp_socket != ARES_SOCKET_BAD)
+ {
+ SOCK_STATE_CALLBACK(channel, server->tcp_socket, 0, 0);
ares__close_socket(channel, server->tcp_socket);
- server->tcp_socket = ARES_SOCKET_BAD;
- server->tcp_connection_generation = ++channel->tcp_connection_generation;
- }
- if (server->udp_socket != ARES_SOCKET_BAD)
- {
- SOCK_STATE_CALLBACK(channel, server->udp_socket, 0, 0);
+ server->tcp_socket = ARES_SOCKET_BAD;
+ server->tcp_connection_generation = ++channel->tcp_connection_generation;
+ }
+ if (server->udp_socket != ARES_SOCKET_BAD)
+ {
+ SOCK_STATE_CALLBACK(channel, server->udp_socket, 0, 0);
ares__close_socket(channel, server->udp_socket);
- server->udp_socket = ARES_SOCKET_BAD;
- }
-}
+ server->udp_socket = ARES_SOCKET_BAD;
+ }
+}
diff --git a/contrib/libs/c-ares/ares__get_hostent.c b/contrib/libs/c-ares/ares__get_hostent.c
index d8bb6e367a..367f39037b 100644
--- a/contrib/libs/c-ares/ares__get_hostent.c
+++ b/contrib/libs/c-ares/ares__get_hostent.c
@@ -1,260 +1,260 @@
-
-/* Copyright 1998, 2011 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_NETDB_H
-# include <netdb.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-# include <arpa/inet.h>
-#endif
-
-#include "ares.h"
-#include "ares_inet_net_pton.h"
-#include "ares_nowarn.h"
-#include "ares_private.h"
-
-int ares__get_hostent(FILE *fp, int family, struct hostent **host)
-{
- char *line = NULL, *p, *q, **alias;
- char *txtaddr, *txthost, *txtalias;
- int status;
- size_t addrlen, linesize, naliases;
- struct ares_addr addr;
- struct hostent *hostent = NULL;
-
- *host = NULL; /* Assume failure */
-
- /* Validate family */
- switch (family) {
- case AF_INET:
- case AF_INET6:
- case AF_UNSPEC:
- break;
- default:
- return ARES_EBADFAMILY;
- }
-
- while ((status = ares__read_line(fp, &line, &linesize)) == ARES_SUCCESS)
- {
-
- /* Trim line comment. */
- p = line;
- while (*p && (*p != '#'))
- p++;
- *p = '\0';
-
- /* Trim trailing whitespace. */
- q = p - 1;
- while ((q >= line) && ISSPACE(*q))
- q--;
- *++q = '\0';
-
- /* Skip leading whitespace. */
- p = line;
- while (*p && ISSPACE(*p))
- p++;
- if (!*p)
- /* Ignore line if empty. */
- continue;
-
- /* Pointer to start of IPv4 or IPv6 address part. */
- txtaddr = p;
-
- /* Advance past address part. */
- while (*p && !ISSPACE(*p))
- p++;
- if (!*p)
- /* Ignore line if reached end of line. */
- continue;
-
- /* Null terminate address part. */
- *p = '\0';
-
- /* Advance to host name */
- p++;
- while (*p && ISSPACE(*p))
- p++;
- if (!*p)
- /* Ignore line if reached end of line. */
+
+/* Copyright 1998, 2011 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_NETDB_H
+# include <netdb.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+#endif
+
+#include "ares.h"
+#include "ares_inet_net_pton.h"
+#include "ares_nowarn.h"
+#include "ares_private.h"
+
+int ares__get_hostent(FILE *fp, int family, struct hostent **host)
+{
+ char *line = NULL, *p, *q, **alias;
+ char *txtaddr, *txthost, *txtalias;
+ int status;
+ size_t addrlen, linesize, naliases;
+ struct ares_addr addr;
+ struct hostent *hostent = NULL;
+
+ *host = NULL; /* Assume failure */
+
+ /* Validate family */
+ switch (family) {
+ case AF_INET:
+ case AF_INET6:
+ case AF_UNSPEC:
+ break;
+ default:
+ return ARES_EBADFAMILY;
+ }
+
+ while ((status = ares__read_line(fp, &line, &linesize)) == ARES_SUCCESS)
+ {
+
+ /* Trim line comment. */
+ p = line;
+ while (*p && (*p != '#'))
+ p++;
+ *p = '\0';
+
+ /* Trim trailing whitespace. */
+ q = p - 1;
+ while ((q >= line) && ISSPACE(*q))
+ q--;
+ *++q = '\0';
+
+ /* Skip leading whitespace. */
+ p = line;
+ while (*p && ISSPACE(*p))
+ p++;
+ if (!*p)
+ /* Ignore line if empty. */
+ continue;
+
+ /* Pointer to start of IPv4 or IPv6 address part. */
+ txtaddr = p;
+
+ /* Advance past address part. */
+ while (*p && !ISSPACE(*p))
+ p++;
+ if (!*p)
+ /* Ignore line if reached end of line. */
+ continue;
+
+ /* Null terminate address part. */
+ *p = '\0';
+
+ /* Advance to host name */
+ p++;
+ while (*p && ISSPACE(*p))
+ p++;
+ if (!*p)
+ /* Ignore line if reached end of line. */
continue; /* LCOV_EXCL_LINE: trailing whitespace already stripped */
-
- /* Pointer to start of host name. */
- txthost = p;
-
- /* Advance past host name. */
- while (*p && !ISSPACE(*p))
- p++;
-
- /* Pointer to start of first alias. */
- txtalias = NULL;
- if (*p)
- {
- q = p + 1;
- while (*q && ISSPACE(*q))
- q++;
- if (*q)
- txtalias = q;
- }
-
- /* Null terminate host name. */
- *p = '\0';
-
- /* find out number of aliases. */
- naliases = 0;
- if (txtalias)
- {
- p = txtalias;
- while (*p)
- {
- while (*p && !ISSPACE(*p))
- p++;
- while (*p && ISSPACE(*p))
- p++;
- naliases++;
- }
- }
-
- /* Convert address string to network address for the requested family. */
- addrlen = 0;
- addr.family = AF_UNSPEC;
- addr.addrV4.s_addr = INADDR_NONE;
- if ((family == AF_INET) || (family == AF_UNSPEC))
- {
+
+ /* Pointer to start of host name. */
+ txthost = p;
+
+ /* Advance past host name. */
+ while (*p && !ISSPACE(*p))
+ p++;
+
+ /* Pointer to start of first alias. */
+ txtalias = NULL;
+ if (*p)
+ {
+ q = p + 1;
+ while (*q && ISSPACE(*q))
+ q++;
+ if (*q)
+ txtalias = q;
+ }
+
+ /* Null terminate host name. */
+ *p = '\0';
+
+ /* find out number of aliases. */
+ naliases = 0;
+ if (txtalias)
+ {
+ p = txtalias;
+ while (*p)
+ {
+ while (*p && !ISSPACE(*p))
+ p++;
+ while (*p && ISSPACE(*p))
+ p++;
+ naliases++;
+ }
+ }
+
+ /* Convert address string to network address for the requested family. */
+ addrlen = 0;
+ addr.family = AF_UNSPEC;
+ addr.addrV4.s_addr = INADDR_NONE;
+ if ((family == AF_INET) || (family == AF_UNSPEC))
+ {
if (ares_inet_pton(AF_INET, txtaddr, &addr.addrV4) > 0)
- {
- /* Actual network address family and length. */
- addr.family = AF_INET;
- addrlen = sizeof(addr.addrV4);
- }
- }
- if ((family == AF_INET6) || ((family == AF_UNSPEC) && (!addrlen)))
- {
- if (ares_inet_pton(AF_INET6, txtaddr, &addr.addrV6) > 0)
- {
- /* Actual network address family and length. */
- addr.family = AF_INET6;
- addrlen = sizeof(addr.addrV6);
- }
- }
- if (!addrlen)
- /* Ignore line if invalid address string for the requested family. */
- continue;
-
- /*
- ** Actual address family possible values are AF_INET and AF_INET6 only.
- */
-
- /* Allocate memory for the hostent structure. */
+ {
+ /* Actual network address family and length. */
+ addr.family = AF_INET;
+ addrlen = sizeof(addr.addrV4);
+ }
+ }
+ if ((family == AF_INET6) || ((family == AF_UNSPEC) && (!addrlen)))
+ {
+ if (ares_inet_pton(AF_INET6, txtaddr, &addr.addrV6) > 0)
+ {
+ /* Actual network address family and length. */
+ addr.family = AF_INET6;
+ addrlen = sizeof(addr.addrV6);
+ }
+ }
+ if (!addrlen)
+ /* Ignore line if invalid address string for the requested family. */
+ continue;
+
+ /*
+ ** Actual address family possible values are AF_INET and AF_INET6 only.
+ */
+
+ /* Allocate memory for the hostent structure. */
hostent = ares_malloc(sizeof(struct hostent));
- if (!hostent)
- break;
-
- /* Initialize fields for out of memory condition. */
- hostent->h_aliases = NULL;
- hostent->h_addr_list = NULL;
-
- /* Copy official host name. */
+ if (!hostent)
+ break;
+
+ /* Initialize fields for out of memory condition. */
+ hostent->h_aliases = NULL;
+ hostent->h_addr_list = NULL;
+
+ /* Copy official host name. */
hostent->h_name = ares_strdup(txthost);
- if (!hostent->h_name)
- break;
-
- /* Copy network address. */
+ if (!hostent->h_name)
+ break;
+
+ /* Copy network address. */
hostent->h_addr_list = ares_malloc(2 * sizeof(char *));
- if (!hostent->h_addr_list)
- break;
- hostent->h_addr_list[1] = NULL;
+ if (!hostent->h_addr_list)
+ break;
+ hostent->h_addr_list[1] = NULL;
hostent->h_addr_list[0] = ares_malloc(addrlen);
- if (!hostent->h_addr_list[0])
- break;
- if (addr.family == AF_INET)
- memcpy(hostent->h_addr_list[0], &addr.addrV4, sizeof(addr.addrV4));
- else
- memcpy(hostent->h_addr_list[0], &addr.addrV6, sizeof(addr.addrV6));
-
- /* Copy aliases. */
+ if (!hostent->h_addr_list[0])
+ break;
+ if (addr.family == AF_INET)
+ memcpy(hostent->h_addr_list[0], &addr.addrV4, sizeof(addr.addrV4));
+ else
+ memcpy(hostent->h_addr_list[0], &addr.addrV6, sizeof(addr.addrV6));
+
+ /* Copy aliases. */
hostent->h_aliases = ares_malloc((naliases + 1) * sizeof(char *));
- if (!hostent->h_aliases)
- break;
- alias = hostent->h_aliases;
- while (naliases)
- *(alias + naliases--) = NULL;
- *alias = NULL;
- while (txtalias)
- {
- p = txtalias;
- while (*p && !ISSPACE(*p))
- p++;
- q = p;
- while (*q && ISSPACE(*q))
- q++;
- *p = '\0';
+ if (!hostent->h_aliases)
+ break;
+ alias = hostent->h_aliases;
+ while (naliases)
+ *(alias + naliases--) = NULL;
+ *alias = NULL;
+ while (txtalias)
+ {
+ p = txtalias;
+ while (*p && !ISSPACE(*p))
+ p++;
+ q = p;
+ while (*q && ISSPACE(*q))
+ q++;
+ *p = '\0';
if ((*alias = ares_strdup(txtalias)) == NULL)
- break;
- alias++;
- txtalias = *q ? q : NULL;
- }
- if (txtalias)
- /* Alias memory allocation failure. */
- break;
-
- /* Copy actual network address family and length. */
- hostent->h_addrtype = aresx_sitoss(addr.family);
- hostent->h_length = aresx_uztoss(addrlen);
-
- /* Free line buffer. */
+ break;
+ alias++;
+ txtalias = *q ? q : NULL;
+ }
+ if (txtalias)
+ /* Alias memory allocation failure. */
+ break;
+
+ /* Copy actual network address family and length. */
+ hostent->h_addrtype = aresx_sitoss(addr.family);
+ hostent->h_length = aresx_uztoss(addrlen);
+
+ /* Free line buffer. */
ares_free(line);
-
- /* Return hostent successfully */
- *host = hostent;
- return ARES_SUCCESS;
-
- }
-
- /* If allocated, free line buffer. */
- if (line)
+
+ /* Return hostent successfully */
+ *host = hostent;
+ return ARES_SUCCESS;
+
+ }
+
+ /* If allocated, free line buffer. */
+ if (line)
ares_free(line);
-
- if (status == ARES_SUCCESS)
- {
- /* Memory allocation failure; clean up. */
- if (hostent)
- {
- if (hostent->h_name)
+
+ if (status == ARES_SUCCESS)
+ {
+ /* Memory allocation failure; clean up. */
+ if (hostent)
+ {
+ if (hostent->h_name)
ares_free((char *) hostent->h_name);
- if (hostent->h_aliases)
- {
- for (alias = hostent->h_aliases; *alias; alias++)
+ if (hostent->h_aliases)
+ {
+ for (alias = hostent->h_aliases; *alias; alias++)
ares_free(*alias);
ares_free(hostent->h_aliases);
- }
- if (hostent->h_addr_list)
- {
- if (hostent->h_addr_list[0])
+ }
+ if (hostent->h_addr_list)
+ {
+ if (hostent->h_addr_list[0])
ares_free(hostent->h_addr_list[0]);
ares_free(hostent->h_addr_list);
- }
+ }
ares_free(hostent);
- }
- return ARES_ENOMEM;
- }
-
- return status;
-}
+ }
+ return ARES_ENOMEM;
+ }
+
+ return status;
+}
diff --git a/contrib/libs/c-ares/ares__read_line.c b/contrib/libs/c-ares/ares__read_line.c
index 2cdca0147c..c62ad2a2b4 100644
--- a/contrib/libs/c-ares/ares__read_line.c
+++ b/contrib/libs/c-ares/ares__read_line.c
@@ -1,73 +1,73 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#include "ares.h"
-#include "ares_nowarn.h"
-#include "ares_private.h"
-
-/* This is an internal function. Its contract is to read a line from
- * a file into a dynamically allocated buffer, zeroing the trailing
- * newline if there is one. The calling routine may call
- * ares__read_line multiple times with the same buf and bufsize
- * pointers; *buf will be reallocated and *bufsize adjusted as
- * appropriate. The initial value of *buf should be NULL. After the
- * calling routine is done reading lines, it should free *buf.
- */
-int ares__read_line(FILE *fp, char **buf, size_t *bufsize)
-{
- char *newbuf;
- size_t offset = 0;
- size_t len;
-
- if (*buf == NULL)
- {
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#include "ares.h"
+#include "ares_nowarn.h"
+#include "ares_private.h"
+
+/* This is an internal function. Its contract is to read a line from
+ * a file into a dynamically allocated buffer, zeroing the trailing
+ * newline if there is one. The calling routine may call
+ * ares__read_line multiple times with the same buf and bufsize
+ * pointers; *buf will be reallocated and *bufsize adjusted as
+ * appropriate. The initial value of *buf should be NULL. After the
+ * calling routine is done reading lines, it should free *buf.
+ */
+int ares__read_line(FILE *fp, char **buf, size_t *bufsize)
+{
+ char *newbuf;
+ size_t offset = 0;
+ size_t len;
+
+ if (*buf == NULL)
+ {
*buf = ares_malloc(128);
- if (!*buf)
- return ARES_ENOMEM;
- *bufsize = 128;
- }
-
- for (;;)
- {
- int bytestoread = aresx_uztosi(*bufsize - offset);
-
- if (!fgets(*buf + offset, bytestoread, fp))
- return (offset != 0) ? 0 : (ferror(fp)) ? ARES_EFILE : ARES_EOF;
- len = offset + strlen(*buf + offset);
- if ((*buf)[len - 1] == '\n')
- {
- (*buf)[len - 1] = 0;
- break;
- }
- offset = len;
- if(len < *bufsize - 1)
- continue;
-
- /* Allocate more space. */
+ if (!*buf)
+ return ARES_ENOMEM;
+ *bufsize = 128;
+ }
+
+ for (;;)
+ {
+ int bytestoread = aresx_uztosi(*bufsize - offset);
+
+ if (!fgets(*buf + offset, bytestoread, fp))
+ return (offset != 0) ? 0 : (ferror(fp)) ? ARES_EFILE : ARES_EOF;
+ len = offset + strlen(*buf + offset);
+ if ((*buf)[len - 1] == '\n')
+ {
+ (*buf)[len - 1] = 0;
+ break;
+ }
+ offset = len;
+ if(len < *bufsize - 1)
+ continue;
+
+ /* Allocate more space. */
newbuf = ares_realloc(*buf, *bufsize * 2);
- if (!newbuf)
+ if (!newbuf)
{
ares_free(*buf);
*buf = NULL;
return ARES_ENOMEM;
}
- *buf = newbuf;
- *bufsize *= 2;
- }
- return ARES_SUCCESS;
-}
+ *buf = newbuf;
+ *bufsize *= 2;
+ }
+ return ARES_SUCCESS;
+}
diff --git a/contrib/libs/c-ares/ares__timeval.c b/contrib/libs/c-ares/ares__timeval.c
index 4d889ee7df..94efb7db1e 100644
--- a/contrib/libs/c-ares/ares__timeval.c
+++ b/contrib/libs/c-ares/ares__timeval.c
@@ -1,111 +1,111 @@
-
-/* Copyright (C) 2008 by Daniel Stenberg et al
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. M.I.T. makes no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-#include "ares.h"
-#include "ares_private.h"
-
-#if defined(WIN32) && !defined(MSDOS)
-
-struct timeval ares__tvnow(void)
-{
- /*
- ** GetTickCount() is available on _all_ Windows versions from W95 up
- ** to nowadays. Returns milliseconds elapsed since last system boot,
- ** increases monotonically and wraps once 49.7 days have elapsed.
- */
- struct timeval now;
- DWORD milliseconds = GetTickCount();
- now.tv_sec = milliseconds / 1000;
- now.tv_usec = (milliseconds % 1000) * 1000;
- return now;
-}
-
-#elif defined(HAVE_CLOCK_GETTIME_MONOTONIC)
-
-struct timeval ares__tvnow(void)
-{
- /*
- ** clock_gettime() is granted to be increased monotonically when the
- ** monotonic clock is queried. Time starting point is unspecified, it
- ** could be the system start-up time, the Epoch, or something else,
- ** in any case the time starting point does not change once that the
- ** system has started up.
- */
- struct timeval now;
- struct timespec tsnow;
- if(0 == clock_gettime(CLOCK_MONOTONIC, &tsnow)) {
- now.tv_sec = tsnow.tv_sec;
- now.tv_usec = tsnow.tv_nsec / 1000;
- }
- /*
- ** Even when the configure process has truly detected monotonic clock
- ** availability, it might happen that it is not actually available at
- ** run-time. When this occurs simply fallback to other time source.
- */
-#ifdef HAVE_GETTIMEOFDAY
- else
+
+/* Copyright (C) 2008 by Daniel Stenberg et al
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. M.I.T. makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+#include "ares.h"
+#include "ares_private.h"
+
+#if defined(WIN32) && !defined(MSDOS)
+
+struct timeval ares__tvnow(void)
+{
+ /*
+ ** GetTickCount() is available on _all_ Windows versions from W95 up
+ ** to nowadays. Returns milliseconds elapsed since last system boot,
+ ** increases monotonically and wraps once 49.7 days have elapsed.
+ */
+ struct timeval now;
+ DWORD milliseconds = GetTickCount();
+ now.tv_sec = milliseconds / 1000;
+ now.tv_usec = (milliseconds % 1000) * 1000;
+ return now;
+}
+
+#elif defined(HAVE_CLOCK_GETTIME_MONOTONIC)
+
+struct timeval ares__tvnow(void)
+{
+ /*
+ ** clock_gettime() is granted to be increased monotonically when the
+ ** monotonic clock is queried. Time starting point is unspecified, it
+ ** could be the system start-up time, the Epoch, or something else,
+ ** in any case the time starting point does not change once that the
+ ** system has started up.
+ */
+ struct timeval now;
+ struct timespec tsnow;
+ if(0 == clock_gettime(CLOCK_MONOTONIC, &tsnow)) {
+ now.tv_sec = tsnow.tv_sec;
+ now.tv_usec = tsnow.tv_nsec / 1000;
+ }
+ /*
+ ** Even when the configure process has truly detected monotonic clock
+ ** availability, it might happen that it is not actually available at
+ ** run-time. When this occurs simply fallback to other time source.
+ */
+#ifdef HAVE_GETTIMEOFDAY
+ else
(void)gettimeofday(&now, NULL); /* LCOV_EXCL_LINE */
-#else
- else {
- now.tv_sec = (long)time(NULL);
- now.tv_usec = 0;
- }
-#endif
- return now;
-}
-
-#elif defined(HAVE_GETTIMEOFDAY)
-
-struct timeval ares__tvnow(void)
-{
- /*
- ** gettimeofday() is not granted to be increased monotonically, due to
- ** clock drifting and external source time synchronization it can jump
- ** forward or backward in time.
- */
- struct timeval now;
- (void)gettimeofday(&now, NULL);
- return now;
-}
-
-#else
-
-struct timeval ares__tvnow(void)
-{
- /*
- ** time() returns the value of time in seconds since the Epoch.
- */
- struct timeval now;
- now.tv_sec = (long)time(NULL);
- now.tv_usec = 0;
- return now;
-}
-
-#endif
-
-#if 0 /* Not used */
-/*
- * Make sure that the first argument is the more recent time, as otherwise
- * we'll get a weird negative time-diff back...
- *
- * Returns: the time difference in number of milliseconds.
- */
-long ares__tvdiff(struct timeval newer, struct timeval older)
-{
- return (newer.tv_sec-older.tv_sec)*1000+
- (newer.tv_usec-older.tv_usec)/1000;
-}
-#endif
-
+#else
+ else {
+ now.tv_sec = (long)time(NULL);
+ now.tv_usec = 0;
+ }
+#endif
+ return now;
+}
+
+#elif defined(HAVE_GETTIMEOFDAY)
+
+struct timeval ares__tvnow(void)
+{
+ /*
+ ** gettimeofday() is not granted to be increased monotonically, due to
+ ** clock drifting and external source time synchronization it can jump
+ ** forward or backward in time.
+ */
+ struct timeval now;
+ (void)gettimeofday(&now, NULL);
+ return now;
+}
+
+#else
+
+struct timeval ares__tvnow(void)
+{
+ /*
+ ** time() returns the value of time in seconds since the Epoch.
+ */
+ struct timeval now;
+ now.tv_sec = (long)time(NULL);
+ now.tv_usec = 0;
+ return now;
+}
+
+#endif
+
+#if 0 /* Not used */
+/*
+ * Make sure that the first argument is the more recent time, as otherwise
+ * we'll get a weird negative time-diff back...
+ *
+ * Returns: the time difference in number of milliseconds.
+ */
+long ares__tvdiff(struct timeval newer, struct timeval older)
+{
+ return (newer.tv_sec-older.tv_sec)*1000+
+ (newer.tv_usec-older.tv_usec)/1000;
+}
+#endif
+
diff --git a/contrib/libs/c-ares/ares_build.h b/contrib/libs/c-ares/ares_build.h
index 0b6e80c50d..e0a2ed784b 100644
--- a/contrib/libs/c-ares/ares_build.h
+++ b/contrib/libs/c-ares/ares_build.h
@@ -1,28 +1,28 @@
-#ifndef __CARES_BUILD_H
-#define __CARES_BUILD_H
-
-
+#ifndef __CARES_BUILD_H
+#define __CARES_BUILD_H
+
+
/* Copyright (C) 2009 - 2013 by Daniel Stenberg et al
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. M.I.T. makes no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-/* ================================================================ */
-/* NOTES FOR CONFIGURE CAPABLE SYSTEMS */
-/* ================================================================ */
-
-/*
- * NOTE 1:
- * -------
- *
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. M.I.T. makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+/* ================================================================ */
+/* NOTES FOR CONFIGURE CAPABLE SYSTEMS */
+/* ================================================================ */
+
+/*
+ * NOTE 1:
+ * -------
+ *
* See file ares_build.h.in, run configure, and forget that this file
* exists it is only used for non-configure systems.
* But you can keep reading if you want ;-)
@@ -37,13 +37,13 @@
* NOTE 1:
* -------
*
- * Nothing in this file is intended to be modified or adjusted by the
- * c-ares library user nor by the c-ares library builder.
- *
- * If you think that something actually needs to be changed, adjusted
- * or fixed in this file, then, report it on the c-ares development
- * mailing list: http://cool.haxx.se/mailman/listinfo/c-ares/
- *
+ * Nothing in this file is intended to be modified or adjusted by the
+ * c-ares library user nor by the c-ares library builder.
+ *
+ * If you think that something actually needs to be changed, adjusted
+ * or fixed in this file, then, report it on the c-ares development
+ * mailing list: http://cool.haxx.se/mailman/listinfo/c-ares/
+ *
* Try to keep one section per platform, compiler and architecture,
* otherwise, if an existing section is reused for a different one and
* later on the original is adjusted, probably the piggybacking one can
@@ -52,46 +52,46 @@
* In order to differentiate between platforms/compilers/architectures
* use only compiler built in predefined preprocessor symbols.
*
- * This header file shall only export symbols which are 'cares' or 'CARES'
- * prefixed, otherwise public name space would be polluted.
- *
- * NOTE 2:
- * -------
- *
+ * This header file shall only export symbols which are 'cares' or 'CARES'
+ * prefixed, otherwise public name space would be polluted.
+ *
+ * NOTE 2:
+ * -------
+ *
* Right now you might be staring at file ares_build.h.dist or ares_build.h,
* this is due to the following reason: file ares_build.h.dist is renamed
* to ares_build.h when the c-ares source code distribution archive file is
* created.
- *
+ *
* File ares_build.h.dist is not included in the distribution archive.
* File ares_build.h is not present in the git tree.
*
* The distributed ares_build.h file is only intended to be used on systems
* which can not run the also distributed configure script.
*
- * On systems capable of running the configure script, the configure process
- * will overwrite the distributed ares_build.h file with one that is suitable
- * and specific to the library being configured and built, which is generated
- * from the ares_build.h.in template file.
- *
+ * On systems capable of running the configure script, the configure process
+ * will overwrite the distributed ares_build.h file with one that is suitable
+ * and specific to the library being configured and built, which is generated
+ * from the ares_build.h.in template file.
+ *
* If you check out from git on a non-configure platform, you must run the
* appropriate buildconf* script to set up ares_build.h and other local files.
*
- */
-
-/* ================================================================ */
-/* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */
-/* ================================================================ */
-
-#ifdef CARES_TYPEOF_ARES_SOCKLEN_T
-# error "CARES_TYPEOF_ARES_SOCKLEN_T shall not be defined except in ares_build.h"
- Error Compilation_aborted_CARES_TYPEOF_ARES_SOCKLEN_T_already_defined
-#endif
-
-/* ================================================================ */
+ */
+
+/* ================================================================ */
+/* DEFINITION OF THESE SYMBOLS SHALL NOT TAKE PLACE ANYWHERE ELSE */
+/* ================================================================ */
+
+#ifdef CARES_TYPEOF_ARES_SOCKLEN_T
+# error "CARES_TYPEOF_ARES_SOCKLEN_T shall not be defined except in ares_build.h"
+ Error Compilation_aborted_CARES_TYPEOF_ARES_SOCKLEN_T_already_defined
+#endif
+
+/* ================================================================ */
/* EXTERNAL INTERFACE SETTINGS FOR NON-CONFIGURE SYSTEMS ONLY */
-/* ================================================================ */
-
+/* ================================================================ */
+
#if defined(__DJGPP__) || defined(__GO32__)
# define CARES_TYPEOF_ARES_SOCKLEN_T int
@@ -133,7 +133,7 @@
# define CARES_TYPEOF_ARES_SOCKLEN_T socklen_t
# define CARES_PULL_SYS_TYPES_H 1
# define CARES_PULL_SYS_SOCKET_H 1
-# endif
+# endif
#elif defined(__MVS__)
# if defined(__IBMC__) || defined(__IBMCPP__)
@@ -171,24 +171,24 @@
#else
# error "Unknown non-configure build target!"
Error Compilation_aborted_Unknown_non_configure_build_target
-#endif
-
+#endif
+
/* CARES_PULL_SYS_TYPES_H is defined above when inclusion of header file */
/* sys/types.h is required here to properly make type definitions below. */
-#ifdef CARES_PULL_SYS_TYPES_H
-# include <sys/types.h>
-#endif
-
+#ifdef CARES_PULL_SYS_TYPES_H
+# include <sys/types.h>
+#endif
+
/* CARES_PULL_SYS_SOCKET_H is defined above when inclusion of header file */
/* sys/socket.h is required here to properly make type definitions below. */
-#ifdef CARES_PULL_SYS_SOCKET_H
-#ifdef _WIN32
-# include <ws2tcpip.h>
-#else
-# include <sys/socket.h>
-#endif
-#endif
-
+#ifdef CARES_PULL_SYS_SOCKET_H
+#ifdef _WIN32
+# include <ws2tcpip.h>
+#else
+# include <sys/socket.h>
+#endif
+#endif
+
/* Data type definition of ares_socklen_t. */
#ifdef CARES_TYPEOF_ARES_SOCKLEN_T
@@ -205,7 +205,7 @@
#else
# define CARES_TYPEOF_ARES_SSIZE_T ssize_t
#endif
-
+
typedef CARES_TYPEOF_ARES_SSIZE_T ares_ssize_t;
-
-#endif /* __CARES_BUILD_H */
+
+#endif /* __CARES_BUILD_H */
diff --git a/contrib/libs/c-ares/ares_cancel.c b/contrib/libs/c-ares/ares_cancel.c
index e891259d5d..465cc9e95e 100644
--- a/contrib/libs/c-ares/ares_cancel.c
+++ b/contrib/libs/c-ares/ares_cancel.c
@@ -1,63 +1,63 @@
-
-/* Copyright (C) 2004 by Daniel Stenberg et al
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. M.I.T. makes no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-#include <assert.h>
-
-#include "ares.h"
-#include "ares_private.h"
-
-/*
- * ares_cancel() cancels all ongoing requests/resolves that might be going on
- * on the given channel. It does NOT kill the channel, use ares_destroy() for
- * that.
- */
-void ares_cancel(ares_channel channel)
-{
- struct query *query;
- struct list_node list_head_copy;
- struct list_node* list_head;
- struct list_node* list_node;
- int i;
-
- if (!ares__is_list_empty(&(channel->all_queries)))
- {
- /* Swap list heads, so that only those queries which were present on entry
- * into this function are cancelled. New queries added by callbacks of
- * queries being cancelled will not be cancelled themselves.
- */
- list_head = &(channel->all_queries);
- list_head_copy.prev = list_head->prev;
- list_head_copy.next = list_head->next;
- list_head_copy.prev->next = &list_head_copy;
- list_head_copy.next->prev = &list_head_copy;
- list_head->prev = list_head;
- list_head->next = list_head;
- for (list_node = list_head_copy.next; list_node != &list_head_copy; )
- {
- query = list_node->data;
- list_node = list_node->next; /* since we're deleting the query */
- query->callback(query->arg, ARES_ECANCELLED, 0, NULL, 0);
- ares__free_query(query);
- }
- }
- if (!(channel->flags & ARES_FLAG_STAYOPEN) && ares__is_list_empty(&(channel->all_queries)))
- {
- if (channel->servers)
- {
- for (i = 0; i < channel->nservers; i++)
- ares__close_sockets(channel, &channel->servers[i]);
- }
- }
-}
+
+/* Copyright (C) 2004 by Daniel Stenberg et al
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. M.I.T. makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+#include <assert.h>
+
+#include "ares.h"
+#include "ares_private.h"
+
+/*
+ * ares_cancel() cancels all ongoing requests/resolves that might be going on
+ * on the given channel. It does NOT kill the channel, use ares_destroy() for
+ * that.
+ */
+void ares_cancel(ares_channel channel)
+{
+ struct query *query;
+ struct list_node list_head_copy;
+ struct list_node* list_head;
+ struct list_node* list_node;
+ int i;
+
+ if (!ares__is_list_empty(&(channel->all_queries)))
+ {
+ /* Swap list heads, so that only those queries which were present on entry
+ * into this function are cancelled. New queries added by callbacks of
+ * queries being cancelled will not be cancelled themselves.
+ */
+ list_head = &(channel->all_queries);
+ list_head_copy.prev = list_head->prev;
+ list_head_copy.next = list_head->next;
+ list_head_copy.prev->next = &list_head_copy;
+ list_head_copy.next->prev = &list_head_copy;
+ list_head->prev = list_head;
+ list_head->next = list_head;
+ for (list_node = list_head_copy.next; list_node != &list_head_copy; )
+ {
+ query = list_node->data;
+ list_node = list_node->next; /* since we're deleting the query */
+ query->callback(query->arg, ARES_ECANCELLED, 0, NULL, 0);
+ ares__free_query(query);
+ }
+ }
+ if (!(channel->flags & ARES_FLAG_STAYOPEN) && ares__is_list_empty(&(channel->all_queries)))
+ {
+ if (channel->servers)
+ {
+ for (i = 0; i < channel->nservers; i++)
+ ares__close_sockets(channel, &channel->servers[i]);
+ }
+ }
+}
diff --git a/contrib/libs/c-ares/ares_config.h b/contrib/libs/c-ares/ares_config.h
index b16dff33fc..6695a6ad21 100644
--- a/contrib/libs/c-ares/ares_config.h
+++ b/contrib/libs/c-ares/ares_config.h
@@ -1,123 +1,123 @@
-/* ares_config.h. Generated from ares_config.h.in by configure. */
-/* ares_config.h.in. Generated from configure.ac by autoheader. */
-
-/* Define if building universal (internal helper macro) */
-/* #undef AC_APPLE_UNIVERSAL_BUILD */
-
-/* define this if ares is built for a big endian system */
-/* #undef ARES_BIG_ENDIAN */
-
-/* when building as static part of libcurl */
-/* #undef BUILDING_LIBCURL */
-
-/* Definition to make a library symbol externally visible. */
-#define CARES_SYMBOL_SCOPE_EXTERN __attribute__ ((__visibility__ ("default")))
-
-/* if a /etc/inet dir is being used */
-/* #undef ETC_INET */
-
-/* Define to the type of arg 2 for gethostname. */
-#define GETHOSTNAME_TYPE_ARG2 size_t
-
-/* Define to the type qualifier of arg 1 for getnameinfo. */
-#define GETNAMEINFO_QUAL_ARG1 const
-
-/* Define to the type of arg 1 for getnameinfo. */
-#define GETNAMEINFO_TYPE_ARG1 struct sockaddr *
-
-/* Define to the type of arg 2 for getnameinfo. */
-#define GETNAMEINFO_TYPE_ARG2 socklen_t
-
-/* Define to the type of args 4 and 6 for getnameinfo. */
-#define GETNAMEINFO_TYPE_ARG46 socklen_t
-
-/* Define to the type of arg 7 for getnameinfo. */
-#define GETNAMEINFO_TYPE_ARG7 int
-
-/* Specifies the number of arguments to getservbyport_r */
-#define GETSERVBYPORT_R_ARGS 6
-
-/* Specifies the size of the buffer to pass to getservbyport_r */
-#define GETSERVBYPORT_R_BUFSIZE 4096
-
-/* Define to 1 if you have AF_INET6. */
-#define HAVE_AF_INET6 1
-
-/* Define to 1 if you have the <arpa/inet.h> header file. */
-#define HAVE_ARPA_INET_H 1
-
+/* ares_config.h. Generated from ares_config.h.in by configure. */
+/* ares_config.h.in. Generated from configure.ac by autoheader. */
+
+/* Define if building universal (internal helper macro) */
+/* #undef AC_APPLE_UNIVERSAL_BUILD */
+
+/* define this if ares is built for a big endian system */
+/* #undef ARES_BIG_ENDIAN */
+
+/* when building as static part of libcurl */
+/* #undef BUILDING_LIBCURL */
+
+/* Definition to make a library symbol externally visible. */
+#define CARES_SYMBOL_SCOPE_EXTERN __attribute__ ((__visibility__ ("default")))
+
+/* if a /etc/inet dir is being used */
+/* #undef ETC_INET */
+
+/* Define to the type of arg 2 for gethostname. */
+#define GETHOSTNAME_TYPE_ARG2 size_t
+
+/* Define to the type qualifier of arg 1 for getnameinfo. */
+#define GETNAMEINFO_QUAL_ARG1 const
+
+/* Define to the type of arg 1 for getnameinfo. */
+#define GETNAMEINFO_TYPE_ARG1 struct sockaddr *
+
+/* Define to the type of arg 2 for getnameinfo. */
+#define GETNAMEINFO_TYPE_ARG2 socklen_t
+
+/* Define to the type of args 4 and 6 for getnameinfo. */
+#define GETNAMEINFO_TYPE_ARG46 socklen_t
+
+/* Define to the type of arg 7 for getnameinfo. */
+#define GETNAMEINFO_TYPE_ARG7 int
+
+/* Specifies the number of arguments to getservbyport_r */
+#define GETSERVBYPORT_R_ARGS 6
+
+/* Specifies the size of the buffer to pass to getservbyport_r */
+#define GETSERVBYPORT_R_BUFSIZE 4096
+
+/* Define to 1 if you have AF_INET6. */
+#define HAVE_AF_INET6 1
+
+/* Define to 1 if you have the <arpa/inet.h> header file. */
+#define HAVE_ARPA_INET_H 1
+
#if defined(__ANDROID__)
#else
-/* Define to 1 if you have the <arpa/nameser_compat.h> header file. */
-#define HAVE_ARPA_NAMESER_COMPAT_H 1
+/* Define to 1 if you have the <arpa/nameser_compat.h> header file. */
+#define HAVE_ARPA_NAMESER_COMPAT_H 1
#endif
-
-/* Define to 1 if you have the <arpa/nameser.h> header file. */
-#define HAVE_ARPA_NAMESER_H 1
-
-/* Define to 1 if you have the <assert.h> header file. */
-#define HAVE_ASSERT_H 1
-
-/* Define to 1 if you have the `bitncmp' function. */
-/* #undef HAVE_BITNCMP */
-
-/* Define to 1 if bool is an available type. */
-#define HAVE_BOOL_T 1
-
-/* Define to 1 if you have the clock_gettime function and monotonic timer. */
-// #define HAVE_CLOCK_GETTIME_MONOTONIC 1
-
-/* Define to 1 if you have the closesocket function. */
-/* #undef HAVE_CLOSESOCKET */
-
-/* Define to 1 if you have the CloseSocket camel case function. */
-/* #undef HAVE_CLOSESOCKET_CAMEL */
-
-/* Define to 1 if you have the connect function. */
-#define HAVE_CONNECT 1
-
-/* Define to 1 if you have the <dlfcn.h> header file. */
-#define HAVE_DLFCN_H 1
-
-/* Define to 1 if you have the <errno.h> header file. */
-#define HAVE_ERRNO_H 1
-
-/* Define to 1 if you have the fcntl function. */
-#define HAVE_FCNTL 1
-
-/* Define to 1 if you have the <fcntl.h> header file. */
-#define HAVE_FCNTL_H 1
-
-/* Define to 1 if you have a working fcntl O_NONBLOCK function. */
-#define HAVE_FCNTL_O_NONBLOCK 1
-
-/* Define to 1 if you have the freeaddrinfo function. */
-#define HAVE_FREEADDRINFO 1
-
-/* Define to 1 if you have a working getaddrinfo function. */
-#define HAVE_GETADDRINFO 1
-
-/* Define to 1 if the getaddrinfo function is threadsafe. */
-#define HAVE_GETADDRINFO_THREADSAFE 1
-
-/* Define to 1 if you have the getenv function. */
-#define HAVE_GETENV 1
-
-/* Define to 1 if you have the gethostbyaddr function. */
-#define HAVE_GETHOSTBYADDR 1
-
-/* Define to 1 if you have the gethostbyname function. */
-#define HAVE_GETHOSTBYNAME 1
-
-/* Define to 1 if you have the gethostname function. */
-#define HAVE_GETHOSTNAME 1
-
-/* Define to 1 if you have the getnameinfo function. */
-#define HAVE_GETNAMEINFO 1
-
-/* Define to 1 if you have the getservbyport_r function. */
-#define HAVE_GETSERVBYPORT_R 1
-
+
+/* Define to 1 if you have the <arpa/nameser.h> header file. */
+#define HAVE_ARPA_NAMESER_H 1
+
+/* Define to 1 if you have the <assert.h> header file. */
+#define HAVE_ASSERT_H 1
+
+/* Define to 1 if you have the `bitncmp' function. */
+/* #undef HAVE_BITNCMP */
+
+/* Define to 1 if bool is an available type. */
+#define HAVE_BOOL_T 1
+
+/* Define to 1 if you have the clock_gettime function and monotonic timer. */
+// #define HAVE_CLOCK_GETTIME_MONOTONIC 1
+
+/* Define to 1 if you have the closesocket function. */
+/* #undef HAVE_CLOSESOCKET */
+
+/* Define to 1 if you have the CloseSocket camel case function. */
+/* #undef HAVE_CLOSESOCKET_CAMEL */
+
+/* Define to 1 if you have the connect function. */
+#define HAVE_CONNECT 1
+
+/* Define to 1 if you have the <dlfcn.h> header file. */
+#define HAVE_DLFCN_H 1
+
+/* Define to 1 if you have the <errno.h> header file. */
+#define HAVE_ERRNO_H 1
+
+/* Define to 1 if you have the fcntl function. */
+#define HAVE_FCNTL 1
+
+/* Define to 1 if you have the <fcntl.h> header file. */
+#define HAVE_FCNTL_H 1
+
+/* Define to 1 if you have a working fcntl O_NONBLOCK function. */
+#define HAVE_FCNTL_O_NONBLOCK 1
+
+/* Define to 1 if you have the freeaddrinfo function. */
+#define HAVE_FREEADDRINFO 1
+
+/* Define to 1 if you have a working getaddrinfo function. */
+#define HAVE_GETADDRINFO 1
+
+/* Define to 1 if the getaddrinfo function is threadsafe. */
+#define HAVE_GETADDRINFO_THREADSAFE 1
+
+/* Define to 1 if you have the getenv function. */
+#define HAVE_GETENV 1
+
+/* Define to 1 if you have the gethostbyaddr function. */
+#define HAVE_GETHOSTBYADDR 1
+
+/* Define to 1 if you have the gethostbyname function. */
+#define HAVE_GETHOSTBYNAME 1
+
+/* Define to 1 if you have the gethostname function. */
+#define HAVE_GETHOSTNAME 1
+
+/* Define to 1 if you have the getnameinfo function. */
+#define HAVE_GETNAMEINFO 1
+
+/* Define to 1 if you have the getservbyport_r function. */
+#define HAVE_GETSERVBYPORT_R 1
+
#if defined(__APPLE__)
#undef HAVE_GETSERVBYPORT_R
#endif
@@ -126,412 +126,412 @@
#undef HAVE_GETSERVBYPORT_R
#endif
-/* Define to 1 if you have the `gettimeofday' function. */
-#define HAVE_GETTIMEOFDAY 1
-
-/* Define to 1 if you have the `if_indextoname' function. */
-#define HAVE_IF_INDEXTONAME 1
-
-/* Define to 1 if you have a IPv6 capable working inet_net_pton function. */
-/* #undef HAVE_INET_NET_PTON */
-
-/* Define to 1 if you have a IPv6 capable working inet_ntop function. */
-#define HAVE_INET_NTOP 1
-
-/* Define to 1 if you have a IPv6 capable working inet_pton function. */
-// #define HAVE_INET_PTON 1
-
-/* Define to 1 if you have the <inttypes.h> header file. */
-#define HAVE_INTTYPES_H 1
-
-/* Define to 1 if you have the ioctl function. */
-#define HAVE_IOCTL 1
-
-/* Define to 1 if you have the ioctlsocket function. */
-/* #undef HAVE_IOCTLSOCKET */
-
-/* Define to 1 if you have the IoctlSocket camel case function. */
-/* #undef HAVE_IOCTLSOCKET_CAMEL */
-
-/* Define to 1 if you have a working IoctlSocket camel case FIONBIO function.
- */
-/* #undef HAVE_IOCTLSOCKET_CAMEL_FIONBIO */
-
-/* Define to 1 if you have a working ioctlsocket FIONBIO function. */
-/* #undef HAVE_IOCTLSOCKET_FIONBIO */
-
-/* Define to 1 if you have a working ioctl FIONBIO function. */
-#define HAVE_IOCTL_FIONBIO 1
-
-/* Define to 1 if you have a working ioctl SIOCGIFADDR function. */
-#define HAVE_IOCTL_SIOCGIFADDR 1
-
-/* Define to 1 if you have the `resolve' library (-lresolve). */
-/* #undef HAVE_LIBRESOLVE */
-
-/* Define to 1 if you have the <limits.h> header file. */
-#define HAVE_LIMITS_H 1
-
-/* if your compiler supports LL */
-#define HAVE_LL 1
-
-/* Define to 1 if the compiler supports the 'long long' data type. */
-#define HAVE_LONGLONG 1
-
-/* Define to 1 if you have the malloc.h header file. */
-#define HAVE_MALLOC_H 1
-
-/* Define to 1 if you have the memory.h header file. */
-#define HAVE_MEMORY_H 1
-
-/* Define to 1 if you have the MSG_NOSIGNAL flag. */
-#if defined(__FreeBSD__) && (__FreeBSD__ < 5)
-/* #undef HAVE_MSG_NOSIGNAL */
-#else
-#define HAVE_MSG_NOSIGNAL 1
-#endif
-
-/* Define to 1 if you have the <netdb.h> header file. */
-#define HAVE_NETDB_H 1
-
-/* Define to 1 if you have the <netinet/in.h> header file. */
-#define HAVE_NETINET_IN_H 1
-
-/* Define to 1 if you have the <netinet/tcp.h> header file. */
-#define HAVE_NETINET_TCP_H 1
-
-/* Define to 1 if you have the <net/if.h> header file. */
-#define HAVE_NET_IF_H 1
-
-/* Define to 1 if you have PF_INET6. */
-#define HAVE_PF_INET6 1
-
-/* Define to 1 if you have the recv function. */
-#define HAVE_RECV 1
-
-/* Define to 1 if you have the recvfrom function. */
-#define HAVE_RECVFROM 1
-
-/* Define to 1 if you have the send function. */
-#define HAVE_SEND 1
-
-/* Define to 1 if you have the setsockopt function. */
-#define HAVE_SETSOCKOPT 1
-
-/* Define to 1 if you have a working setsockopt SO_NONBLOCK function. */
-/* #undef HAVE_SETSOCKOPT_SO_NONBLOCK */
-
-/* Define to 1 if you have the <signal.h> header file. */
-#define HAVE_SIGNAL_H 1
-
-/* Define to 1 if sig_atomic_t is an available typedef. */
-#define HAVE_SIG_ATOMIC_T 1
-
-/* Define to 1 if sig_atomic_t is already defined as volatile. */
-/* #undef HAVE_SIG_ATOMIC_T_VOLATILE */
-
-/* Define to 1 if your struct sockaddr_in6 has sin6_scope_id. */
-#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1
-
-/* Define to 1 if you have the socket function. */
-#define HAVE_SOCKET 1
-
-/* Define to 1 if you have the <socket.h> header file. */
-/* #undef HAVE_SOCKET_H */
-
-/* Define to 1 if you have the <stdbool.h> header file. */
-#define HAVE_STDBOOL_H 1
-
-/* Define to 1 if you have the <stdint.h> header file. */
-#define HAVE_STDINT_H 1
-
-/* Define to 1 if you have the <stdlib.h> header file. */
-#define HAVE_STDLIB_H 1
-
-/* Define to 1 if you have the strcasecmp function. */
-#define HAVE_STRCASECMP 1
-
-/* Define to 1 if you have the strcmpi function. */
-/* #undef HAVE_STRCMPI */
-
+/* Define to 1 if you have the `gettimeofday' function. */
+#define HAVE_GETTIMEOFDAY 1
+
+/* Define to 1 if you have the `if_indextoname' function. */
+#define HAVE_IF_INDEXTONAME 1
+
+/* Define to 1 if you have a IPv6 capable working inet_net_pton function. */
+/* #undef HAVE_INET_NET_PTON */
+
+/* Define to 1 if you have a IPv6 capable working inet_ntop function. */
+#define HAVE_INET_NTOP 1
+
+/* Define to 1 if you have a IPv6 capable working inet_pton function. */
+// #define HAVE_INET_PTON 1
+
+/* Define to 1 if you have the <inttypes.h> header file. */
+#define HAVE_INTTYPES_H 1
+
+/* Define to 1 if you have the ioctl function. */
+#define HAVE_IOCTL 1
+
+/* Define to 1 if you have the ioctlsocket function. */
+/* #undef HAVE_IOCTLSOCKET */
+
+/* Define to 1 if you have the IoctlSocket camel case function. */
+/* #undef HAVE_IOCTLSOCKET_CAMEL */
+
+/* Define to 1 if you have a working IoctlSocket camel case FIONBIO function.
+ */
+/* #undef HAVE_IOCTLSOCKET_CAMEL_FIONBIO */
+
+/* Define to 1 if you have a working ioctlsocket FIONBIO function. */
+/* #undef HAVE_IOCTLSOCKET_FIONBIO */
+
+/* Define to 1 if you have a working ioctl FIONBIO function. */
+#define HAVE_IOCTL_FIONBIO 1
+
+/* Define to 1 if you have a working ioctl SIOCGIFADDR function. */
+#define HAVE_IOCTL_SIOCGIFADDR 1
+
+/* Define to 1 if you have the `resolve' library (-lresolve). */
+/* #undef HAVE_LIBRESOLVE */
+
+/* Define to 1 if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* if your compiler supports LL */
+#define HAVE_LL 1
+
+/* Define to 1 if the compiler supports the 'long long' data type. */
+#define HAVE_LONGLONG 1
+
+/* Define to 1 if you have the malloc.h header file. */
+#define HAVE_MALLOC_H 1
+
+/* Define to 1 if you have the memory.h header file. */
+#define HAVE_MEMORY_H 1
+
+/* Define to 1 if you have the MSG_NOSIGNAL flag. */
+#if defined(__FreeBSD__) && (__FreeBSD__ < 5)
+/* #undef HAVE_MSG_NOSIGNAL */
+#else
+#define HAVE_MSG_NOSIGNAL 1
+#endif
+
+/* Define to 1 if you have the <netdb.h> header file. */
+#define HAVE_NETDB_H 1
+
+/* Define to 1 if you have the <netinet/in.h> header file. */
+#define HAVE_NETINET_IN_H 1
+
+/* Define to 1 if you have the <netinet/tcp.h> header file. */
+#define HAVE_NETINET_TCP_H 1
+
+/* Define to 1 if you have the <net/if.h> header file. */
+#define HAVE_NET_IF_H 1
+
+/* Define to 1 if you have PF_INET6. */
+#define HAVE_PF_INET6 1
+
+/* Define to 1 if you have the recv function. */
+#define HAVE_RECV 1
+
+/* Define to 1 if you have the recvfrom function. */
+#define HAVE_RECVFROM 1
+
+/* Define to 1 if you have the send function. */
+#define HAVE_SEND 1
+
+/* Define to 1 if you have the setsockopt function. */
+#define HAVE_SETSOCKOPT 1
+
+/* Define to 1 if you have a working setsockopt SO_NONBLOCK function. */
+/* #undef HAVE_SETSOCKOPT_SO_NONBLOCK */
+
+/* Define to 1 if you have the <signal.h> header file. */
+#define HAVE_SIGNAL_H 1
+
+/* Define to 1 if sig_atomic_t is an available typedef. */
+#define HAVE_SIG_ATOMIC_T 1
+
+/* Define to 1 if sig_atomic_t is already defined as volatile. */
+/* #undef HAVE_SIG_ATOMIC_T_VOLATILE */
+
+/* Define to 1 if your struct sockaddr_in6 has sin6_scope_id. */
+#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+
+/* Define to 1 if you have the socket function. */
+#define HAVE_SOCKET 1
+
+/* Define to 1 if you have the <socket.h> header file. */
+/* #undef HAVE_SOCKET_H */
+
+/* Define to 1 if you have the <stdbool.h> header file. */
+#define HAVE_STDBOOL_H 1
+
+/* Define to 1 if you have the <stdint.h> header file. */
+#define HAVE_STDINT_H 1
+
+/* Define to 1 if you have the <stdlib.h> header file. */
+#define HAVE_STDLIB_H 1
+
+/* Define to 1 if you have the strcasecmp function. */
+#define HAVE_STRCASECMP 1
+
+/* Define to 1 if you have the strcmpi function. */
+/* #undef HAVE_STRCMPI */
+
/* Potential ares_malloc/ares_free mismatch in ares_strdup.c/ares_strsplit.c. */
/* #undef HAVE_STRDUP */
-
-/* Define to 1 if you have the stricmp function. */
-/* #undef HAVE_STRICMP */
-
-/* Define to 1 if you have the <strings.h> header file. */
-#define HAVE_STRINGS_H 1
-
-/* Define to 1 if you have the <string.h> header file. */
-#define HAVE_STRING_H 1
-
-/* Define to 1 if you have the strncasecmp function. */
-#define HAVE_STRNCASECMP 1
-
-/* Define to 1 if you have the strncmpi function. */
-/* #undef HAVE_STRNCMPI */
-
-/* Define to 1 if you have the strnicmp function. */
-/* #undef HAVE_STRNICMP */
-
-/* Define to 1 if you have the <stropts.h> header file. */
-#define HAVE_STROPTS_H 1
-
-/* Define to 1 if you have struct addrinfo. */
-#define HAVE_STRUCT_ADDRINFO 1
-
-/* Define to 1 if you have struct in6_addr. */
-#define HAVE_STRUCT_IN6_ADDR 1
-
-/* Define to 1 if you have struct sockaddr_in6. */
-#define HAVE_STRUCT_SOCKADDR_IN6 1
-
-/* if struct sockaddr_storage is defined */
-#define HAVE_STRUCT_SOCKADDR_STORAGE 1
-
-/* Define to 1 if you have the timeval struct. */
-#define HAVE_STRUCT_TIMEVAL 1
-
-/* Define to 1 if you have the <sys/ioctl.h> header file. */
-#define HAVE_SYS_IOCTL_H 1
-
-/* Define to 1 if you have the <sys/param.h> header file. */
-#define HAVE_SYS_PARAM_H 1
-
-/* Define to 1 if you have the <sys/select.h> header file. */
-#define HAVE_SYS_SELECT_H 1
-
-/* Define to 1 if you have the <sys/socket.h> header file. */
-#define HAVE_SYS_SOCKET_H 1
-
-/* Define to 1 if you have the <sys/stat.h> header file. */
-#define HAVE_SYS_STAT_H 1
-
-/* Define to 1 if you have the <sys/time.h> header file. */
-#define HAVE_SYS_TIME_H 1
-
-/* Define to 1 if you have the <sys/types.h> header file. */
-#define HAVE_SYS_TYPES_H 1
-
-/* Define to 1 if you have the <sys/uio.h> header file. */
-#define HAVE_SYS_UIO_H 1
-
-/* Define to 1 if you have the <time.h> header file. */
-#define HAVE_TIME_H 1
-
-/* Define to 1 if you have the <unistd.h> header file. */
-#define HAVE_UNISTD_H 1
-
-/* Define to 1 if you have the windows.h header file. */
-/* #undef HAVE_WINDOWS_H */
-
-/* Define to 1 if you have the winsock2.h header file. */
-/* #undef HAVE_WINSOCK2_H */
-
-/* Define to 1 if you have the winsock.h header file. */
-/* #undef HAVE_WINSOCK_H */
-
-/* Define to 1 if you have the writev function. */
-#define HAVE_WRITEV 1
-
-/* Define to 1 if you have the ws2tcpip.h header file. */
-/* #undef HAVE_WS2TCPIP_H */
-
-/* Define to the sub-directory in which libtool stores uninstalled libraries.
- */
-#define LT_OBJDIR ".libs/"
-
-/* Define to 1 if you need the malloc.h header file even with stdlib.h */
-/* #undef NEED_MALLOC_H */
-
-/* Define to 1 if you need the memory.h header file even with stdlib.h */
-/* #undef NEED_MEMORY_H */
-
-/* Define to 1 if _REENTRANT preprocessor symbol must be defined. */
-/* #undef NEED_REENTRANT */
-
-/* Define to 1 if _THREAD_SAFE preprocessor symbol must be defined. */
-/* #undef NEED_THREAD_SAFE */
-
-/* Define to 1 if your C compiler doesn't accept -c and -o together. */
-/* #undef NO_MINUS_C_MINUS_O */
-
-/* cpu-machine-OS */
-#define OS "x86_64-unknown-linux-gnu"
-
-/* Name of package */
-#define PACKAGE "c-ares"
-
-/* Define to the address where bug reports for this package should be sent. */
-#define PACKAGE_BUGREPORT "c-ares mailing list: http://cool.haxx.se/mailman/listinfo/c-ares"
-
-/* Define to the full name of this package. */
-#define PACKAGE_NAME "c-ares"
-
-/* Define to the full name and version of this package. */
+
+/* Define to 1 if you have the stricmp function. */
+/* #undef HAVE_STRICMP */
+
+/* Define to 1 if you have the <strings.h> header file. */
+#define HAVE_STRINGS_H 1
+
+/* Define to 1 if you have the <string.h> header file. */
+#define HAVE_STRING_H 1
+
+/* Define to 1 if you have the strncasecmp function. */
+#define HAVE_STRNCASECMP 1
+
+/* Define to 1 if you have the strncmpi function. */
+/* #undef HAVE_STRNCMPI */
+
+/* Define to 1 if you have the strnicmp function. */
+/* #undef HAVE_STRNICMP */
+
+/* Define to 1 if you have the <stropts.h> header file. */
+#define HAVE_STROPTS_H 1
+
+/* Define to 1 if you have struct addrinfo. */
+#define HAVE_STRUCT_ADDRINFO 1
+
+/* Define to 1 if you have struct in6_addr. */
+#define HAVE_STRUCT_IN6_ADDR 1
+
+/* Define to 1 if you have struct sockaddr_in6. */
+#define HAVE_STRUCT_SOCKADDR_IN6 1
+
+/* if struct sockaddr_storage is defined */
+#define HAVE_STRUCT_SOCKADDR_STORAGE 1
+
+/* Define to 1 if you have the timeval struct. */
+#define HAVE_STRUCT_TIMEVAL 1
+
+/* Define to 1 if you have the <sys/ioctl.h> header file. */
+#define HAVE_SYS_IOCTL_H 1
+
+/* Define to 1 if you have the <sys/param.h> header file. */
+#define HAVE_SYS_PARAM_H 1
+
+/* Define to 1 if you have the <sys/select.h> header file. */
+#define HAVE_SYS_SELECT_H 1
+
+/* Define to 1 if you have the <sys/socket.h> header file. */
+#define HAVE_SYS_SOCKET_H 1
+
+/* Define to 1 if you have the <sys/stat.h> header file. */
+#define HAVE_SYS_STAT_H 1
+
+/* Define to 1 if you have the <sys/time.h> header file. */
+#define HAVE_SYS_TIME_H 1
+
+/* Define to 1 if you have the <sys/types.h> header file. */
+#define HAVE_SYS_TYPES_H 1
+
+/* Define to 1 if you have the <sys/uio.h> header file. */
+#define HAVE_SYS_UIO_H 1
+
+/* Define to 1 if you have the <time.h> header file. */
+#define HAVE_TIME_H 1
+
+/* Define to 1 if you have the <unistd.h> header file. */
+#define HAVE_UNISTD_H 1
+
+/* Define to 1 if you have the windows.h header file. */
+/* #undef HAVE_WINDOWS_H */
+
+/* Define to 1 if you have the winsock2.h header file. */
+/* #undef HAVE_WINSOCK2_H */
+
+/* Define to 1 if you have the winsock.h header file. */
+/* #undef HAVE_WINSOCK_H */
+
+/* Define to 1 if you have the writev function. */
+#define HAVE_WRITEV 1
+
+/* Define to 1 if you have the ws2tcpip.h header file. */
+/* #undef HAVE_WS2TCPIP_H */
+
+/* Define to the sub-directory in which libtool stores uninstalled libraries.
+ */
+#define LT_OBJDIR ".libs/"
+
+/* Define to 1 if you need the malloc.h header file even with stdlib.h */
+/* #undef NEED_MALLOC_H */
+
+/* Define to 1 if you need the memory.h header file even with stdlib.h */
+/* #undef NEED_MEMORY_H */
+
+/* Define to 1 if _REENTRANT preprocessor symbol must be defined. */
+/* #undef NEED_REENTRANT */
+
+/* Define to 1 if _THREAD_SAFE preprocessor symbol must be defined. */
+/* #undef NEED_THREAD_SAFE */
+
+/* Define to 1 if your C compiler doesn't accept -c and -o together. */
+/* #undef NO_MINUS_C_MINUS_O */
+
+/* cpu-machine-OS */
+#define OS "x86_64-unknown-linux-gnu"
+
+/* Name of package */
+#define PACKAGE "c-ares"
+
+/* Define to the address where bug reports for this package should be sent. */
+#define PACKAGE_BUGREPORT "c-ares mailing list: http://cool.haxx.se/mailman/listinfo/c-ares"
+
+/* Define to the full name of this package. */
+#define PACKAGE_NAME "c-ares"
+
+/* Define to the full name and version of this package. */
#define PACKAGE_STRING "c-ares 1.15.0"
-
-/* Define to the one symbol short name of this package. */
-#define PACKAGE_TARNAME "c-ares"
-
-/* Define to the home page for this package. */
-#define PACKAGE_URL ""
-
-/* Define to the version of this package. */
+
+/* Define to the one symbol short name of this package. */
+#define PACKAGE_TARNAME "c-ares"
+
+/* Define to the home page for this package. */
+#define PACKAGE_URL ""
+
+/* Define to the version of this package. */
#define PACKAGE_VERSION "1.15.0"
-
-/* a suitable file/device to read random data from */
-#define RANDOM_FILE "/dev/urandom"
-
-/* Define to the type qualifier pointed by arg 5 for recvfrom. */
+
+/* a suitable file/device to read random data from */
+#define RANDOM_FILE "/dev/urandom"
+
+/* Define to the type qualifier pointed by arg 5 for recvfrom. */
#define RECVFROM_QUAL_ARG5
-
-/* Define to the type of arg 1 for recvfrom. */
-#define RECVFROM_TYPE_ARG1 int
-
-/* Define to the type pointed by arg 2 for recvfrom. */
-#define RECVFROM_TYPE_ARG2 void
-
-/* Define to 1 if the type pointed by arg 2 for recvfrom is void. */
-#define RECVFROM_TYPE_ARG2_IS_VOID 1
-
-/* Define to the type of arg 3 for recvfrom. */
-#define RECVFROM_TYPE_ARG3 size_t
-
-/* Define to the type of arg 4 for recvfrom. */
-#define RECVFROM_TYPE_ARG4 int
-
-/* Define to the type pointed by arg 5 for recvfrom. */
-#define RECVFROM_TYPE_ARG5 struct sockaddr
-
-/* Define to 1 if the type pointed by arg 5 for recvfrom is void. */
-/* #undef RECVFROM_TYPE_ARG5_IS_VOID */
-
-/* Define to the type pointed by arg 6 for recvfrom. */
-#define RECVFROM_TYPE_ARG6 socklen_t
-
-/* Define to 1 if the type pointed by arg 6 for recvfrom is void. */
-/* #undef RECVFROM_TYPE_ARG6_IS_VOID */
-
-/* Define to the function return type for recvfrom. */
-#define RECVFROM_TYPE_RETV ssize_t
-
-/* Define to the type of arg 1 for recv. */
-#define RECV_TYPE_ARG1 int
-
-/* Define to the type of arg 2 for recv. */
-#define RECV_TYPE_ARG2 void *
-
-/* Define to the type of arg 3 for recv. */
-#define RECV_TYPE_ARG3 size_t
-
-/* Define to the type of arg 4 for recv. */
-#define RECV_TYPE_ARG4 int
-
-/* Define to the function return type for recv. */
-#define RECV_TYPE_RETV ssize_t
-
-/* Define as the return type of signal handlers (`int' or `void'). */
-#define RETSIGTYPE void
-
-/* Define to the type qualifier of arg 2 for send. */
-#define SEND_QUAL_ARG2 const
-
-/* Define to the type of arg 1 for send. */
-#define SEND_TYPE_ARG1 int
-
-/* Define to the type of arg 2 for send. */
-#define SEND_TYPE_ARG2 void *
-
-/* Define to the type of arg 3 for send. */
-#define SEND_TYPE_ARG3 size_t
-
-/* Define to the type of arg 4 for send. */
-#define SEND_TYPE_ARG4 int
-
-/* Define to the function return type for send. */
-#define SEND_TYPE_RETV ssize_t
-
-/* The size of `int', as computed by sizeof. */
-#define SIZEOF_INT 4
-
+
+/* Define to the type of arg 1 for recvfrom. */
+#define RECVFROM_TYPE_ARG1 int
+
+/* Define to the type pointed by arg 2 for recvfrom. */
+#define RECVFROM_TYPE_ARG2 void
+
+/* Define to 1 if the type pointed by arg 2 for recvfrom is void. */
+#define RECVFROM_TYPE_ARG2_IS_VOID 1
+
+/* Define to the type of arg 3 for recvfrom. */
+#define RECVFROM_TYPE_ARG3 size_t
+
+/* Define to the type of arg 4 for recvfrom. */
+#define RECVFROM_TYPE_ARG4 int
+
+/* Define to the type pointed by arg 5 for recvfrom. */
+#define RECVFROM_TYPE_ARG5 struct sockaddr
+
+/* Define to 1 if the type pointed by arg 5 for recvfrom is void. */
+/* #undef RECVFROM_TYPE_ARG5_IS_VOID */
+
+/* Define to the type pointed by arg 6 for recvfrom. */
+#define RECVFROM_TYPE_ARG6 socklen_t
+
+/* Define to 1 if the type pointed by arg 6 for recvfrom is void. */
+/* #undef RECVFROM_TYPE_ARG6_IS_VOID */
+
+/* Define to the function return type for recvfrom. */
+#define RECVFROM_TYPE_RETV ssize_t
+
+/* Define to the type of arg 1 for recv. */
+#define RECV_TYPE_ARG1 int
+
+/* Define to the type of arg 2 for recv. */
+#define RECV_TYPE_ARG2 void *
+
+/* Define to the type of arg 3 for recv. */
+#define RECV_TYPE_ARG3 size_t
+
+/* Define to the type of arg 4 for recv. */
+#define RECV_TYPE_ARG4 int
+
+/* Define to the function return type for recv. */
+#define RECV_TYPE_RETV ssize_t
+
+/* Define as the return type of signal handlers (`int' or `void'). */
+#define RETSIGTYPE void
+
+/* Define to the type qualifier of arg 2 for send. */
+#define SEND_QUAL_ARG2 const
+
+/* Define to the type of arg 1 for send. */
+#define SEND_TYPE_ARG1 int
+
+/* Define to the type of arg 2 for send. */
+#define SEND_TYPE_ARG2 void *
+
+/* Define to the type of arg 3 for send. */
+#define SEND_TYPE_ARG3 size_t
+
+/* Define to the type of arg 4 for send. */
+#define SEND_TYPE_ARG4 int
+
+/* Define to the function return type for send. */
+#define SEND_TYPE_RETV ssize_t
+
+/* The size of `int', as computed by sizeof. */
+#define SIZEOF_INT 4
+
#if defined(_MSC_VER)
#define SIZEOF_LONG 4
#elif defined(__SIZEOF_LONG__)
#define SIZEOF_LONG __SIZEOF_LONG__
#else
-/* The size of `long', as computed by sizeof. */
-#define SIZEOF_LONG 8
+/* The size of `long', as computed by sizeof. */
+#define SIZEOF_LONG 8
#endif
-
-/* The size of `short', as computed by sizeof. */
-#define SIZEOF_SHORT 2
-
+
+/* The size of `short', as computed by sizeof. */
+#define SIZEOF_SHORT 2
+
#if defined(__SIZEOF_SIZE_T__)
#define SIZEOF_SIZE_T __SIZEOF_SIZE_T__
#else
-/* The size of `size_t', as computed by sizeof. */
-#define SIZEOF_SIZE_T 8
+/* The size of `size_t', as computed by sizeof. */
+#define SIZEOF_SIZE_T 8
#endif
-
-/* The size of `struct in6_addr', as computed by sizeof. */
-#define SIZEOF_STRUCT_IN6_ADDR 16
-
-/* The size of `struct in_addr', as computed by sizeof. */
-#define SIZEOF_STRUCT_IN_ADDR 4
-
-/* Define to 1 if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
-#define TIME_WITH_SYS_TIME 1
-
-/* Define to disable non-blocking sockets. */
-/* #undef USE_BLOCKING_SOCKETS */
-
-/* Version number of package */
+
+/* The size of `struct in6_addr', as computed by sizeof. */
+#define SIZEOF_STRUCT_IN6_ADDR 16
+
+/* The size of `struct in_addr', as computed by sizeof. */
+#define SIZEOF_STRUCT_IN_ADDR 4
+
+/* Define to 1 if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define to 1 if you can safely include both <sys/time.h> and <time.h>. */
+#define TIME_WITH_SYS_TIME 1
+
+/* Define to disable non-blocking sockets. */
+/* #undef USE_BLOCKING_SOCKETS */
+
+/* Version number of package */
#define VERSION "1.15.0"
-
-/* Define to avoid automatic inclusion of winsock.h */
-/* #undef WIN32_LEAN_AND_MEAN */
-
-/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
- significant byte first (like Motorola and SPARC, unlike Intel). */
-#if defined AC_APPLE_UNIVERSAL_BUILD
-# if defined __BIG_ENDIAN__
-# define WORDS_BIGENDIAN 1
-# endif
-#else
-# ifndef WORDS_BIGENDIAN
-/* # undef WORDS_BIGENDIAN */
-# endif
-#endif
-
-/* Define to 1 if OS is AIX. */
-#ifndef _ALL_SOURCE
-/* # undef _ALL_SOURCE */
-#endif
-
-/* Enable large inode numbers on Mac OS X 10.5. */
-#ifndef _DARWIN_USE_64_BIT_INODE
-# define _DARWIN_USE_64_BIT_INODE 1
-#endif
-
-/* Number of bits in a file offset, on hosts where this is settable. */
-/* #undef _FILE_OFFSET_BITS */
-
-/* Define for large files, on AIX-style hosts. */
-/* #undef _LARGE_FILES */
-
-/* Define to empty if `const' does not conform to ANSI C. */
-/* #undef const */
-
-/* Type to use in place of in_addr_t when system does not provide it. */
-/* #undef in_addr_t */
-
-/* Define to `unsigned int' if <sys/types.h> does not define. */
-/* #undef size_t */
-
-/* the signed version of size_t */
-/* #undef ssize_t */
+
+/* Define to avoid automatic inclusion of winsock.h */
+/* #undef WIN32_LEAN_AND_MEAN */
+
+/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most
+ significant byte first (like Motorola and SPARC, unlike Intel). */
+#if defined AC_APPLE_UNIVERSAL_BUILD
+# if defined __BIG_ENDIAN__
+# define WORDS_BIGENDIAN 1
+# endif
+#else
+# ifndef WORDS_BIGENDIAN
+/* # undef WORDS_BIGENDIAN */
+# endif
+#endif
+
+/* Define to 1 if OS is AIX. */
+#ifndef _ALL_SOURCE
+/* # undef _ALL_SOURCE */
+#endif
+
+/* Enable large inode numbers on Mac OS X 10.5. */
+#ifndef _DARWIN_USE_64_BIT_INODE
+# define _DARWIN_USE_64_BIT_INODE 1
+#endif
+
+/* Number of bits in a file offset, on hosts where this is settable. */
+/* #undef _FILE_OFFSET_BITS */
+
+/* Define for large files, on AIX-style hosts. */
+/* #undef _LARGE_FILES */
+
+/* Define to empty if `const' does not conform to ANSI C. */
+/* #undef const */
+
+/* Type to use in place of in_addr_t when system does not provide it. */
+/* #undef in_addr_t */
+
+/* Define to `unsigned int' if <sys/types.h> does not define. */
+/* #undef size_t */
+
+/* the signed version of size_t */
+/* #undef ssize_t */
diff --git a/contrib/libs/c-ares/ares_create_query.c b/contrib/libs/c-ares/ares_create_query.c
index c372b3678d..9efce17cfa 100644
--- a/contrib/libs/c-ares/ares_create_query.c
+++ b/contrib/libs/c-ares/ares_create_query.c
@@ -1,99 +1,99 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-# include <arpa/nameser_compat.h>
-#endif
-
-#include "ares.h"
-#include "ares_dns.h"
-#include "ares_private.h"
-
-#ifndef T_OPT
-# define T_OPT 41 /* EDNS0 option (meta-RR) */
-#endif
-
-/* Header format, from RFC 1035:
- * 1 1 1 1 1 1
- * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
- * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
- * | ID |
- * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
- * |QR| Opcode |AA|TC|RD|RA| Z | RCODE |
- * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
- * | QDCOUNT |
- * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
- * | ANCOUNT |
- * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
- * | NSCOUNT |
- * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
- * | ARCOUNT |
- * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
- *
- * AA, TC, RA, and RCODE are only set in responses. Brief description
- * of the remaining fields:
- * ID Identifier to match responses with queries
- * QR Query (0) or response (1)
- * Opcode For our purposes, always QUERY
- * RD Recursion desired
- * Z Reserved (zero)
- * QDCOUNT Number of queries
- * ANCOUNT Number of answers
- * NSCOUNT Number of name server records
- * ARCOUNT Number of additional records
- *
- * Question format, from RFC 1035:
- * 1 1 1 1 1 1
- * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
- * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
- * | |
- * / QNAME /
- * / /
- * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
- * | QTYPE |
- * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
- * | QCLASS |
- * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
- *
- * The query name is encoded as a series of labels, each represented
- * as a one-byte length (maximum 63) followed by the text of the
- * label. The list is terminated by a label of length zero (which can
- * be thought of as the root domain).
- */
-
-int ares_create_query(const char *name, int dnsclass, int type,
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
+# include <arpa/nameser_compat.h>
+#endif
+
+#include "ares.h"
+#include "ares_dns.h"
+#include "ares_private.h"
+
+#ifndef T_OPT
+# define T_OPT 41 /* EDNS0 option (meta-RR) */
+#endif
+
+/* Header format, from RFC 1035:
+ * 1 1 1 1 1 1
+ * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ * | ID |
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ * |QR| Opcode |AA|TC|RD|RA| Z | RCODE |
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ * | QDCOUNT |
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ * | ANCOUNT |
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ * | NSCOUNT |
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ * | ARCOUNT |
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *
+ * AA, TC, RA, and RCODE are only set in responses. Brief description
+ * of the remaining fields:
+ * ID Identifier to match responses with queries
+ * QR Query (0) or response (1)
+ * Opcode For our purposes, always QUERY
+ * RD Recursion desired
+ * Z Reserved (zero)
+ * QDCOUNT Number of queries
+ * ANCOUNT Number of answers
+ * NSCOUNT Number of name server records
+ * ARCOUNT Number of additional records
+ *
+ * Question format, from RFC 1035:
+ * 1 1 1 1 1 1
+ * 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ * | |
+ * / QNAME /
+ * / /
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ * | QTYPE |
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ * | QCLASS |
+ * +--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+
+ *
+ * The query name is encoded as a series of labels, each represented
+ * as a one-byte length (maximum 63) followed by the text of the
+ * label. The list is terminated by a label of length zero (which can
+ * be thought of as the root domain).
+ */
+
+int ares_create_query(const char *name, int dnsclass, int type,
unsigned short id, int rd, unsigned char **bufp,
int *buflenp, int max_udp_size)
-{
+{
size_t len;
- unsigned char *q;
- const char *p;
+ unsigned char *q;
+ const char *p;
size_t buflen;
unsigned char *buf;
-
+
/* Set our results early, in case we bail out early with an error. */
*buflenp = 0;
*bufp = NULL;
@@ -105,89 +105,89 @@ int ares_create_query(const char *name, int dnsclass, int type,
/* Allocate a memory area for the maximum size this packet might need. +2
* is for the length byte and zero termination if no dots or ecscaping is
* used.
- */
+ */
len = strlen(name) + 2 + HFIXEDSZ + QFIXEDSZ +
(max_udp_size ? EDNSFIXEDSZ : 0);
buf = ares_malloc(len);
if (!buf)
return ARES_ENOMEM;
-
- /* Set up the header. */
+
+ /* Set up the header. */
q = buf;
- memset(q, 0, HFIXEDSZ);
- DNS_HEADER_SET_QID(q, id);
- DNS_HEADER_SET_OPCODE(q, QUERY);
- if (rd) {
- DNS_HEADER_SET_RD(q, 1);
- }
- else {
- DNS_HEADER_SET_RD(q, 0);
- }
- DNS_HEADER_SET_QDCOUNT(q, 1);
-
- if (max_udp_size) {
- DNS_HEADER_SET_ARCOUNT(q, 1);
- }
-
- /* A name of "." is a screw case for the loop below, so adjust it. */
- if (strcmp(name, ".") == 0)
- name++;
-
- /* Start writing out the name after the header. */
- q += HFIXEDSZ;
- while (*name)
- {
+ memset(q, 0, HFIXEDSZ);
+ DNS_HEADER_SET_QID(q, id);
+ DNS_HEADER_SET_OPCODE(q, QUERY);
+ if (rd) {
+ DNS_HEADER_SET_RD(q, 1);
+ }
+ else {
+ DNS_HEADER_SET_RD(q, 0);
+ }
+ DNS_HEADER_SET_QDCOUNT(q, 1);
+
+ if (max_udp_size) {
+ DNS_HEADER_SET_ARCOUNT(q, 1);
+ }
+
+ /* A name of "." is a screw case for the loop below, so adjust it. */
+ if (strcmp(name, ".") == 0)
+ name++;
+
+ /* Start writing out the name after the header. */
+ q += HFIXEDSZ;
+ while (*name)
+ {
if (*name == '.') {
ares_free (buf);
- return ARES_EBADNAME;
+ return ARES_EBADNAME;
}
-
- /* Count the number of bytes in this label. */
- len = 0;
- for (p = name; *p && *p != '.'; p++)
- {
- if (*p == '\\' && *(p + 1) != 0)
- p++;
- len++;
- }
+
+ /* Count the number of bytes in this label. */
+ len = 0;
+ for (p = name; *p && *p != '.'; p++)
+ {
+ if (*p == '\\' && *(p + 1) != 0)
+ p++;
+ len++;
+ }
if (len > MAXLABEL) {
ares_free (buf);
- return ARES_EBADNAME;
+ return ARES_EBADNAME;
}
-
- /* Encode the length and copy the data. */
- *q++ = (unsigned char)len;
- for (p = name; *p && *p != '.'; p++)
- {
- if (*p == '\\' && *(p + 1) != 0)
- p++;
- *q++ = *p;
- }
-
- /* Go to the next label and repeat, unless we hit the end. */
- if (!*p)
- break;
- name = p + 1;
- }
-
- /* Add the zero-length label at the end. */
- *q++ = 0;
-
- /* Finish off the question with the type and class. */
- DNS_QUESTION_SET_TYPE(q, type);
- DNS_QUESTION_SET_CLASS(q, dnsclass);
-
+
+ /* Encode the length and copy the data. */
+ *q++ = (unsigned char)len;
+ for (p = name; *p && *p != '.'; p++)
+ {
+ if (*p == '\\' && *(p + 1) != 0)
+ p++;
+ *q++ = *p;
+ }
+
+ /* Go to the next label and repeat, unless we hit the end. */
+ if (!*p)
+ break;
+ name = p + 1;
+ }
+
+ /* Add the zero-length label at the end. */
+ *q++ = 0;
+
+ /* Finish off the question with the type and class. */
+ DNS_QUESTION_SET_TYPE(q, type);
+ DNS_QUESTION_SET_CLASS(q, dnsclass);
+
q += QFIXEDSZ;
- if (max_udp_size)
- {
- memset(q, 0, EDNSFIXEDSZ);
- q++;
- DNS_RR_SET_TYPE(q, T_OPT);
- DNS_RR_SET_CLASS(q, max_udp_size);
+ if (max_udp_size)
+ {
+ memset(q, 0, EDNSFIXEDSZ);
+ q++;
+ DNS_RR_SET_TYPE(q, T_OPT);
+ DNS_RR_SET_CLASS(q, max_udp_size);
q += (EDNSFIXEDSZ-1);
- }
+ }
buflen = (q - buf);
-
+
/* Reject names that are longer than the maximum of 255 bytes that's
* specified in RFC 1035 ("To simplify implementations, the total length of
* a domain name (i.e., label octets and label length octets) is restricted
@@ -202,5 +202,5 @@ int ares_create_query(const char *name, int dnsclass, int type,
*buflenp = (int) buflen;
*bufp = buf;
- return ARES_SUCCESS;
-}
+ return ARES_SUCCESS;
+}
diff --git a/contrib/libs/c-ares/ares_data.c b/contrib/libs/c-ares/ares_data.c
index 6491edc8a8..18dd650c7b 100644
--- a/contrib/libs/c-ares/ares_data.c
+++ b/contrib/libs/c-ares/ares_data.c
@@ -1,105 +1,105 @@
-
-/* Copyright (C) 2009-2013 by Daniel Stenberg
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-
-#include "ares_setup.h"
-
-#include <stddef.h>
-
-#include "ares.h"
-#include "ares_data.h"
-#include "ares_private.h"
-
-
-/*
-** ares_free_data() - c-ares external API function.
-**
-** This function must be used by the application to free data memory that
-** has been internally allocated by some c-ares function and for which a
-** pointer has already been returned to the calling application. The list
-** of c-ares functions returning pointers that must be free'ed using this
-** function is:
-**
-** ares_get_servers()
-** ares_parse_srv_reply()
-** ares_parse_txt_reply()
-*/
-
-void ares_free_data(void *dataptr)
-{
+
+/* Copyright (C) 2009-2013 by Daniel Stenberg
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+
+#include "ares_setup.h"
+
+#include <stddef.h>
+
+#include "ares.h"
+#include "ares_data.h"
+#include "ares_private.h"
+
+
+/*
+** ares_free_data() - c-ares external API function.
+**
+** This function must be used by the application to free data memory that
+** has been internally allocated by some c-ares function and for which a
+** pointer has already been returned to the calling application. The list
+** of c-ares functions returning pointers that must be free'ed using this
+** function is:
+**
+** ares_get_servers()
+** ares_parse_srv_reply()
+** ares_parse_txt_reply()
+*/
+
+void ares_free_data(void *dataptr)
+{
while (dataptr != NULL) {
struct ares_data *ptr;
void *next_data = NULL;
-
-#ifdef __INTEL_COMPILER
-# pragma warning(push)
-# pragma warning(disable:1684)
- /* 1684: conversion from pointer to same-sized integral type */
-#endif
-
+
+#ifdef __INTEL_COMPILER
+# pragma warning(push)
+# pragma warning(disable:1684)
+ /* 1684: conversion from pointer to same-sized integral type */
+#endif
+
ptr = (void *)((char *)dataptr - offsetof(struct ares_data, data));
-
-#ifdef __INTEL_COMPILER
-# pragma warning(pop)
-#endif
-
+
+#ifdef __INTEL_COMPILER
+# pragma warning(pop)
+#endif
+
if (ptr->mark != ARES_DATATYPE_MARK)
return;
-
+
switch (ptr->type)
{
case ARES_DATATYPE_MX_REPLY:
-
+
if (ptr->data.mx_reply.next)
next_data = ptr->data.mx_reply.next;
if (ptr->data.mx_reply.host)
ares_free(ptr->data.mx_reply.host);
break;
-
+
case ARES_DATATYPE_SRV_REPLY:
-
+
if (ptr->data.srv_reply.next)
next_data = ptr->data.srv_reply.next;
if (ptr->data.srv_reply.host)
ares_free(ptr->data.srv_reply.host);
break;
-
+
case ARES_DATATYPE_TXT_REPLY:
case ARES_DATATYPE_TXT_EXT:
-
+
if (ptr->data.txt_reply.next)
next_data = ptr->data.txt_reply.next;
if (ptr->data.txt_reply.txt)
ares_free(ptr->data.txt_reply.txt);
break;
-
+
case ARES_DATATYPE_ADDR_NODE:
-
+
if (ptr->data.addr_node.next)
next_data = ptr->data.addr_node.next;
break;
-
+
case ARES_DATATYPE_ADDR_PORT_NODE:
-
+
if (ptr->data.addr_port_node.next)
next_data = ptr->data.addr_port_node.next;
break;
-
+
case ARES_DATATYPE_NAPTR_REPLY:
-
+
if (ptr->data.naptr_reply.next)
next_data = ptr->data.naptr_reply.next;
if (ptr->data.naptr_reply.flags)
@@ -111,7 +111,7 @@ void ares_free_data(void *dataptr)
if (ptr->data.naptr_reply.replacement)
ares_free(ptr->data.naptr_reply.replacement);
break;
-
+
case ARES_DATATYPE_SOA_REPLY:
if (ptr->data.soa_reply.nsname)
ares_free(ptr->data.soa_reply.nsname);
@@ -126,61 +126,61 @@ void ares_free_data(void *dataptr)
ares_free(ptr);
dataptr = next_data;
}
-}
-
-
-/*
-** ares_malloc_data() - c-ares internal helper function.
-**
-** This function allocates memory for a c-ares private ares_data struct
-** for the specified ares_datatype, initializes c-ares private fields
-** and zero initializes those which later might be used from the public
-** API. It returns an interior pointer which can be passed by c-ares
-** functions to the calling application, and that must be free'ed using
-** c-ares external API function ares_free_data().
-*/
-
-void *ares_malloc_data(ares_datatype type)
-{
- struct ares_data *ptr;
-
+}
+
+
+/*
+** ares_malloc_data() - c-ares internal helper function.
+**
+** This function allocates memory for a c-ares private ares_data struct
+** for the specified ares_datatype, initializes c-ares private fields
+** and zero initializes those which later might be used from the public
+** API. It returns an interior pointer which can be passed by c-ares
+** functions to the calling application, and that must be free'ed using
+** c-ares external API function ares_free_data().
+*/
+
+void *ares_malloc_data(ares_datatype type)
+{
+ struct ares_data *ptr;
+
ptr = ares_malloc(sizeof(struct ares_data));
- if (!ptr)
- return NULL;
-
- switch (type)
- {
- case ARES_DATATYPE_MX_REPLY:
- ptr->data.mx_reply.next = NULL;
- ptr->data.mx_reply.host = NULL;
- ptr->data.mx_reply.priority = 0;
- break;
-
- case ARES_DATATYPE_SRV_REPLY:
- ptr->data.srv_reply.next = NULL;
- ptr->data.srv_reply.host = NULL;
- ptr->data.srv_reply.priority = 0;
- ptr->data.srv_reply.weight = 0;
- ptr->data.srv_reply.port = 0;
- break;
-
+ if (!ptr)
+ return NULL;
+
+ switch (type)
+ {
+ case ARES_DATATYPE_MX_REPLY:
+ ptr->data.mx_reply.next = NULL;
+ ptr->data.mx_reply.host = NULL;
+ ptr->data.mx_reply.priority = 0;
+ break;
+
+ case ARES_DATATYPE_SRV_REPLY:
+ ptr->data.srv_reply.next = NULL;
+ ptr->data.srv_reply.host = NULL;
+ ptr->data.srv_reply.priority = 0;
+ ptr->data.srv_reply.weight = 0;
+ ptr->data.srv_reply.port = 0;
+ break;
+
case ARES_DATATYPE_TXT_EXT:
ptr->data.txt_ext.record_start = 0;
/* FALLTHROUGH */
- case ARES_DATATYPE_TXT_REPLY:
- ptr->data.txt_reply.next = NULL;
- ptr->data.txt_reply.txt = NULL;
- ptr->data.txt_reply.length = 0;
- break;
-
- case ARES_DATATYPE_ADDR_NODE:
- ptr->data.addr_node.next = NULL;
- ptr->data.addr_node.family = 0;
- memset(&ptr->data.addr_node.addrV6, 0,
- sizeof(ptr->data.addr_node.addrV6));
- break;
-
+ case ARES_DATATYPE_TXT_REPLY:
+ ptr->data.txt_reply.next = NULL;
+ ptr->data.txt_reply.txt = NULL;
+ ptr->data.txt_reply.length = 0;
+ break;
+
+ case ARES_DATATYPE_ADDR_NODE:
+ ptr->data.addr_node.next = NULL;
+ ptr->data.addr_node.family = 0;
+ memset(&ptr->data.addr_node.addrV6, 0,
+ sizeof(ptr->data.addr_node.addrV6));
+ break;
+
case ARES_DATATYPE_ADDR_PORT_NODE:
ptr->data.addr_port_node.next = NULL;
ptr->data.addr_port_node.family = 0;
@@ -190,33 +190,33 @@ void *ares_malloc_data(ares_datatype type)
sizeof(ptr->data.addr_port_node.addrV6));
break;
- case ARES_DATATYPE_NAPTR_REPLY:
- ptr->data.naptr_reply.next = NULL;
- ptr->data.naptr_reply.flags = NULL;
- ptr->data.naptr_reply.service = NULL;
- ptr->data.naptr_reply.regexp = NULL;
- ptr->data.naptr_reply.replacement = NULL;
- ptr->data.naptr_reply.order = 0;
- ptr->data.naptr_reply.preference = 0;
- break;
-
- case ARES_DATATYPE_SOA_REPLY:
- ptr->data.soa_reply.nsname = NULL;
- ptr->data.soa_reply.hostmaster = NULL;
- ptr->data.soa_reply.serial = 0;
- ptr->data.soa_reply.refresh = 0;
- ptr->data.soa_reply.retry = 0;
- ptr->data.soa_reply.expire = 0;
- ptr->data.soa_reply.minttl = 0;
- break;
-
- default:
+ case ARES_DATATYPE_NAPTR_REPLY:
+ ptr->data.naptr_reply.next = NULL;
+ ptr->data.naptr_reply.flags = NULL;
+ ptr->data.naptr_reply.service = NULL;
+ ptr->data.naptr_reply.regexp = NULL;
+ ptr->data.naptr_reply.replacement = NULL;
+ ptr->data.naptr_reply.order = 0;
+ ptr->data.naptr_reply.preference = 0;
+ break;
+
+ case ARES_DATATYPE_SOA_REPLY:
+ ptr->data.soa_reply.nsname = NULL;
+ ptr->data.soa_reply.hostmaster = NULL;
+ ptr->data.soa_reply.serial = 0;
+ ptr->data.soa_reply.refresh = 0;
+ ptr->data.soa_reply.retry = 0;
+ ptr->data.soa_reply.expire = 0;
+ ptr->data.soa_reply.minttl = 0;
+ break;
+
+ default:
ares_free(ptr);
- return NULL;
- }
-
- ptr->mark = ARES_DATATYPE_MARK;
- ptr->type = type;
-
- return &ptr->data;
-}
+ return NULL;
+ }
+
+ ptr->mark = ARES_DATATYPE_MARK;
+ ptr->type = type;
+
+ return &ptr->data;
+}
diff --git a/contrib/libs/c-ares/ares_data.h b/contrib/libs/c-ares/ares_data.h
index 68d551b32e..ee54a4b1f5 100644
--- a/contrib/libs/c-ares/ares_data.h
+++ b/contrib/libs/c-ares/ares_data.h
@@ -1,63 +1,63 @@
-#pragma once
-
-/* Copyright (C) 2009-2013 by Daniel Stenberg
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-typedef enum {
- ARES_DATATYPE_UNKNOWN = 1, /* unknown data type - introduced in 1.7.0 */
- ARES_DATATYPE_SRV_REPLY, /* struct ares_srv_reply - introduced in 1.7.0 */
- ARES_DATATYPE_TXT_REPLY, /* struct ares_txt_reply - introduced in 1.7.0 */
+#pragma once
+
+/* Copyright (C) 2009-2013 by Daniel Stenberg
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+typedef enum {
+ ARES_DATATYPE_UNKNOWN = 1, /* unknown data type - introduced in 1.7.0 */
+ ARES_DATATYPE_SRV_REPLY, /* struct ares_srv_reply - introduced in 1.7.0 */
+ ARES_DATATYPE_TXT_REPLY, /* struct ares_txt_reply - introduced in 1.7.0 */
ARES_DATATYPE_TXT_EXT, /* struct ares_txt_ext - introduced in 1.11.0 */
- ARES_DATATYPE_ADDR_NODE, /* struct ares_addr_node - introduced in 1.7.1 */
- ARES_DATATYPE_MX_REPLY, /* struct ares_mx_reply - introduced in 1.7.2 */
- ARES_DATATYPE_NAPTR_REPLY,/* struct ares_naptr_reply - introduced in 1.7.6 */
- ARES_DATATYPE_SOA_REPLY, /* struct ares_soa_reply - introduced in 1.9.0 */
-#if 0
- ARES_DATATYPE_ADDR6TTL, /* struct ares_addrttl */
- ARES_DATATYPE_ADDRTTL, /* struct ares_addr6ttl */
- ARES_DATATYPE_HOSTENT, /* struct hostent */
- ARES_DATATYPE_OPTIONS, /* struct ares_options */
-#endif
+ ARES_DATATYPE_ADDR_NODE, /* struct ares_addr_node - introduced in 1.7.1 */
+ ARES_DATATYPE_MX_REPLY, /* struct ares_mx_reply - introduced in 1.7.2 */
+ ARES_DATATYPE_NAPTR_REPLY,/* struct ares_naptr_reply - introduced in 1.7.6 */
+ ARES_DATATYPE_SOA_REPLY, /* struct ares_soa_reply - introduced in 1.9.0 */
+#if 0
+ ARES_DATATYPE_ADDR6TTL, /* struct ares_addrttl */
+ ARES_DATATYPE_ADDRTTL, /* struct ares_addr6ttl */
+ ARES_DATATYPE_HOSTENT, /* struct hostent */
+ ARES_DATATYPE_OPTIONS, /* struct ares_options */
+#endif
ARES_DATATYPE_ADDR_PORT_NODE, /* struct ares_addr_port_node - introduced in 1.11.0 */
- ARES_DATATYPE_LAST /* not used - introduced in 1.7.0 */
-} ares_datatype;
-
-#define ARES_DATATYPE_MARK 0xbead
-
-/*
- * ares_data struct definition is internal to c-ares and shall not
- * be exposed by the public API in order to allow future changes
- * and extensions to it without breaking ABI. This will be used
- * internally by c-ares as the container of multiple types of data
- * dynamically allocated for which a reference will be returned
- * to the calling application.
- *
- * c-ares API functions returning a pointer to c-ares internally
- * allocated data will actually be returning an interior pointer
- * into this ares_data struct.
- *
- * All this is 'invisible' to the calling application, the only
- * requirement is that this kind of data must be free'ed by the
- * calling application using ares_free_data() with the pointer
- * it has received from a previous c-ares function call.
- */
-
-struct ares_data {
- ares_datatype type; /* Actual data type identifier. */
- unsigned int mark; /* Private ares_data signature. */
- union {
+ ARES_DATATYPE_LAST /* not used - introduced in 1.7.0 */
+} ares_datatype;
+
+#define ARES_DATATYPE_MARK 0xbead
+
+/*
+ * ares_data struct definition is internal to c-ares and shall not
+ * be exposed by the public API in order to allow future changes
+ * and extensions to it without breaking ABI. This will be used
+ * internally by c-ares as the container of multiple types of data
+ * dynamically allocated for which a reference will be returned
+ * to the calling application.
+ *
+ * c-ares API functions returning a pointer to c-ares internally
+ * allocated data will actually be returning an interior pointer
+ * into this ares_data struct.
+ *
+ * All this is 'invisible' to the calling application, the only
+ * requirement is that this kind of data must be free'ed by the
+ * calling application using ares_free_data() with the pointer
+ * it has received from a previous c-ares function call.
+ */
+
+struct ares_data {
+ ares_datatype type; /* Actual data type identifier. */
+ unsigned int mark; /* Private ares_data signature. */
+ union {
struct ares_txt_reply txt_reply;
struct ares_txt_ext txt_ext;
struct ares_srv_reply srv_reply;
@@ -66,8 +66,8 @@ struct ares_data {
struct ares_mx_reply mx_reply;
struct ares_naptr_reply naptr_reply;
struct ares_soa_reply soa_reply;
- } data;
-};
-
-void *ares_malloc_data(ares_datatype type);
-
+ } data;
+};
+
+void *ares_malloc_data(ares_datatype type);
+
diff --git a/contrib/libs/c-ares/ares_destroy.c b/contrib/libs/c-ares/ares_destroy.c
index 893a63f8a4..fed2009ab3 100644
--- a/contrib/libs/c-ares/ares_destroy.c
+++ b/contrib/libs/c-ares/ares_destroy.c
@@ -1,113 +1,113 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- * Copyright (C) 2004-2011 by Daniel Stenberg
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#include <assert.h>
-
-#include "ares.h"
-#include "ares_private.h"
-
-void ares_destroy_options(struct ares_options *options)
-{
- int i;
-
- if(options->servers)
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ * Copyright (C) 2004-2011 by Daniel Stenberg
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#include <assert.h>
+
+#include "ares.h"
+#include "ares_private.h"
+
+void ares_destroy_options(struct ares_options *options)
+{
+ int i;
+
+ if(options->servers)
ares_free(options->servers);
- for (i = 0; i < options->ndomains; i++)
+ for (i = 0; i < options->ndomains; i++)
ares_free(options->domains[i]);
- if(options->domains)
+ if(options->domains)
ares_free(options->domains);
- if(options->sortlist)
+ if(options->sortlist)
ares_free(options->sortlist);
- if(options->lookups)
+ if(options->lookups)
ares_free(options->lookups);
if(options->resolvconf_path)
ares_free(options->resolvconf_path);
-}
-
-void ares_destroy(ares_channel channel)
-{
- int i;
- struct query *query;
- struct list_node* list_head;
- struct list_node* list_node;
-
- if (!channel)
- return;
-
- list_head = &(channel->all_queries);
- for (list_node = list_head->next; list_node != list_head; )
- {
- query = list_node->data;
- list_node = list_node->next; /* since we're deleting the query */
- query->callback(query->arg, ARES_EDESTRUCTION, 0, NULL, 0);
- ares__free_query(query);
- }
-#ifndef NDEBUG
- /* Freeing the query should remove it from all the lists in which it sits,
- * so all query lists should be empty now.
- */
- assert(ares__is_list_empty(&(channel->all_queries)));
- for (i = 0; i < ARES_QID_TABLE_SIZE; i++)
- {
- assert(ares__is_list_empty(&(channel->queries_by_qid[i])));
- }
- for (i = 0; i < ARES_TIMEOUT_TABLE_SIZE; i++)
- {
- assert(ares__is_list_empty(&(channel->queries_by_timeout[i])));
- }
-#endif
-
- ares__destroy_servers_state(channel);
-
- if (channel->domains) {
- for (i = 0; i < channel->ndomains; i++)
+}
+
+void ares_destroy(ares_channel channel)
+{
+ int i;
+ struct query *query;
+ struct list_node* list_head;
+ struct list_node* list_node;
+
+ if (!channel)
+ return;
+
+ list_head = &(channel->all_queries);
+ for (list_node = list_head->next; list_node != list_head; )
+ {
+ query = list_node->data;
+ list_node = list_node->next; /* since we're deleting the query */
+ query->callback(query->arg, ARES_EDESTRUCTION, 0, NULL, 0);
+ ares__free_query(query);
+ }
+#ifndef NDEBUG
+ /* Freeing the query should remove it from all the lists in which it sits,
+ * so all query lists should be empty now.
+ */
+ assert(ares__is_list_empty(&(channel->all_queries)));
+ for (i = 0; i < ARES_QID_TABLE_SIZE; i++)
+ {
+ assert(ares__is_list_empty(&(channel->queries_by_qid[i])));
+ }
+ for (i = 0; i < ARES_TIMEOUT_TABLE_SIZE; i++)
+ {
+ assert(ares__is_list_empty(&(channel->queries_by_timeout[i])));
+ }
+#endif
+
+ ares__destroy_servers_state(channel);
+
+ if (channel->domains) {
+ for (i = 0; i < channel->ndomains; i++)
ares_free(channel->domains[i]);
ares_free(channel->domains);
- }
-
- if(channel->sortlist)
+ }
+
+ if(channel->sortlist)
ares_free(channel->sortlist);
-
- if (channel->lookups)
+
+ if (channel->lookups)
ares_free(channel->lookups);
-
+
if (channel->resolvconf_path)
ares_free(channel->resolvconf_path);
ares_free(channel);
-}
-
-void ares__destroy_servers_state(ares_channel channel)
-{
- struct server_state *server;
- int i;
-
- if (channel->servers)
- {
- for (i = 0; i < channel->nservers; i++)
- {
- server = &channel->servers[i];
- ares__close_sockets(channel, server);
- assert(ares__is_list_empty(&server->queries_to_server));
- }
+}
+
+void ares__destroy_servers_state(ares_channel channel)
+{
+ struct server_state *server;
+ int i;
+
+ if (channel->servers)
+ {
+ for (i = 0; i < channel->nservers; i++)
+ {
+ server = &channel->servers[i];
+ ares__close_sockets(channel, server);
+ assert(ares__is_list_empty(&server->queries_to_server));
+ }
ares_free(channel->servers);
- channel->servers = NULL;
- }
- channel->nservers = -1;
-}
+ channel->servers = NULL;
+ }
+ channel->nservers = -1;
+}
diff --git a/contrib/libs/c-ares/ares_dns.h b/contrib/libs/c-ares/ares_dns.h
index 510ca129e9..79f993b904 100644
--- a/contrib/libs/c-ares/ares_dns.h
+++ b/contrib/libs/c-ares/ares_dns.h
@@ -1,103 +1,103 @@
-#ifndef HEADER_CARES_DNS_H
-#define HEADER_CARES_DNS_H
-
-/* Copyright 1998, 2011 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-/*
- * Macro DNS__16BIT reads a network short (16 bit) given in network
- * byte order, and returns its value as an unsigned short.
- */
-#define DNS__16BIT(p) ((unsigned short)((unsigned int) 0xffff & \
- (((unsigned int)((unsigned char)(p)[0]) << 8U) | \
- ((unsigned int)((unsigned char)(p)[1])))))
-
-/*
- * Macro DNS__32BIT reads a network long (32 bit) given in network
- * byte order, and returns its value as an unsigned int.
- */
-#define DNS__32BIT(p) ((unsigned int) \
- (((unsigned int)((unsigned char)(p)[0]) << 24U) | \
- ((unsigned int)((unsigned char)(p)[1]) << 16U) | \
- ((unsigned int)((unsigned char)(p)[2]) << 8U) | \
- ((unsigned int)((unsigned char)(p)[3]))))
-
-#define DNS__SET16BIT(p, v) (((p)[0] = (unsigned char)(((v) >> 8) & 0xff)), \
- ((p)[1] = (unsigned char)((v) & 0xff)))
-#define DNS__SET32BIT(p, v) (((p)[0] = (unsigned char)(((v) >> 24) & 0xff)), \
- ((p)[1] = (unsigned char)(((v) >> 16) & 0xff)), \
- ((p)[2] = (unsigned char)(((v) >> 8) & 0xff)), \
- ((p)[3] = (unsigned char)((v) & 0xff)))
-
-#if 0
-/* we cannot use this approach on systems where we can't access 16/32 bit
- data on un-aligned addresses */
-#define DNS__16BIT(p) ntohs(*(unsigned short*)(p))
-#define DNS__32BIT(p) ntohl(*(unsigned long*)(p))
-#define DNS__SET16BIT(p, v) *(unsigned short*)(p) = htons(v)
-#define DNS__SET32BIT(p, v) *(unsigned long*)(p) = htonl(v)
-#endif
-
-/* Macros for parsing a DNS header */
-#define DNS_HEADER_QID(h) DNS__16BIT(h)
-#define DNS_HEADER_QR(h) (((h)[2] >> 7) & 0x1)
-#define DNS_HEADER_OPCODE(h) (((h)[2] >> 3) & 0xf)
-#define DNS_HEADER_AA(h) (((h)[2] >> 2) & 0x1)
-#define DNS_HEADER_TC(h) (((h)[2] >> 1) & 0x1)
-#define DNS_HEADER_RD(h) ((h)[2] & 0x1)
-#define DNS_HEADER_RA(h) (((h)[3] >> 7) & 0x1)
-#define DNS_HEADER_Z(h) (((h)[3] >> 4) & 0x7)
-#define DNS_HEADER_RCODE(h) ((h)[3] & 0xf)
-#define DNS_HEADER_QDCOUNT(h) DNS__16BIT((h) + 4)
-#define DNS_HEADER_ANCOUNT(h) DNS__16BIT((h) + 6)
-#define DNS_HEADER_NSCOUNT(h) DNS__16BIT((h) + 8)
-#define DNS_HEADER_ARCOUNT(h) DNS__16BIT((h) + 10)
-
-/* Macros for constructing a DNS header */
-#define DNS_HEADER_SET_QID(h, v) DNS__SET16BIT(h, v)
-#define DNS_HEADER_SET_QR(h, v) ((h)[2] |= (unsigned char)(((v) & 0x1) << 7))
-#define DNS_HEADER_SET_OPCODE(h, v) ((h)[2] |= (unsigned char)(((v) & 0xf) << 3))
-#define DNS_HEADER_SET_AA(h, v) ((h)[2] |= (unsigned char)(((v) & 0x1) << 2))
-#define DNS_HEADER_SET_TC(h, v) ((h)[2] |= (unsigned char)(((v) & 0x1) << 1))
-#define DNS_HEADER_SET_RD(h, v) ((h)[2] |= (unsigned char)((v) & 0x1))
-#define DNS_HEADER_SET_RA(h, v) ((h)[3] |= (unsigned char)(((v) & 0x1) << 7))
-#define DNS_HEADER_SET_Z(h, v) ((h)[3] |= (unsigned char)(((v) & 0x7) << 4))
-#define DNS_HEADER_SET_RCODE(h, v) ((h)[3] |= (unsigned char)((v) & 0xf))
-#define DNS_HEADER_SET_QDCOUNT(h, v) DNS__SET16BIT((h) + 4, v)
-#define DNS_HEADER_SET_ANCOUNT(h, v) DNS__SET16BIT((h) + 6, v)
-#define DNS_HEADER_SET_NSCOUNT(h, v) DNS__SET16BIT((h) + 8, v)
-#define DNS_HEADER_SET_ARCOUNT(h, v) DNS__SET16BIT((h) + 10, v)
-
-/* Macros for parsing the fixed part of a DNS question */
-#define DNS_QUESTION_TYPE(q) DNS__16BIT(q)
-#define DNS_QUESTION_CLASS(q) DNS__16BIT((q) + 2)
-
-/* Macros for constructing the fixed part of a DNS question */
-#define DNS_QUESTION_SET_TYPE(q, v) DNS__SET16BIT(q, v)
-#define DNS_QUESTION_SET_CLASS(q, v) DNS__SET16BIT((q) + 2, v)
-
-/* Macros for parsing the fixed part of a DNS resource record */
-#define DNS_RR_TYPE(r) DNS__16BIT(r)
-#define DNS_RR_CLASS(r) DNS__16BIT((r) + 2)
-#define DNS_RR_TTL(r) DNS__32BIT((r) + 4)
-#define DNS_RR_LEN(r) DNS__16BIT((r) + 8)
-
-/* Macros for constructing the fixed part of a DNS resource record */
-#define DNS_RR_SET_TYPE(r, v) DNS__SET16BIT(r, v)
-#define DNS_RR_SET_CLASS(r, v) DNS__SET16BIT((r) + 2, v)
-#define DNS_RR_SET_TTL(r, v) DNS__SET32BIT((r) + 4, v)
-#define DNS_RR_SET_LEN(r, v) DNS__SET16BIT((r) + 8, v)
-
-#endif /* HEADER_CARES_DNS_H */
+#ifndef HEADER_CARES_DNS_H
+#define HEADER_CARES_DNS_H
+
+/* Copyright 1998, 2011 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+/*
+ * Macro DNS__16BIT reads a network short (16 bit) given in network
+ * byte order, and returns its value as an unsigned short.
+ */
+#define DNS__16BIT(p) ((unsigned short)((unsigned int) 0xffff & \
+ (((unsigned int)((unsigned char)(p)[0]) << 8U) | \
+ ((unsigned int)((unsigned char)(p)[1])))))
+
+/*
+ * Macro DNS__32BIT reads a network long (32 bit) given in network
+ * byte order, and returns its value as an unsigned int.
+ */
+#define DNS__32BIT(p) ((unsigned int) \
+ (((unsigned int)((unsigned char)(p)[0]) << 24U) | \
+ ((unsigned int)((unsigned char)(p)[1]) << 16U) | \
+ ((unsigned int)((unsigned char)(p)[2]) << 8U) | \
+ ((unsigned int)((unsigned char)(p)[3]))))
+
+#define DNS__SET16BIT(p, v) (((p)[0] = (unsigned char)(((v) >> 8) & 0xff)), \
+ ((p)[1] = (unsigned char)((v) & 0xff)))
+#define DNS__SET32BIT(p, v) (((p)[0] = (unsigned char)(((v) >> 24) & 0xff)), \
+ ((p)[1] = (unsigned char)(((v) >> 16) & 0xff)), \
+ ((p)[2] = (unsigned char)(((v) >> 8) & 0xff)), \
+ ((p)[3] = (unsigned char)((v) & 0xff)))
+
+#if 0
+/* we cannot use this approach on systems where we can't access 16/32 bit
+ data on un-aligned addresses */
+#define DNS__16BIT(p) ntohs(*(unsigned short*)(p))
+#define DNS__32BIT(p) ntohl(*(unsigned long*)(p))
+#define DNS__SET16BIT(p, v) *(unsigned short*)(p) = htons(v)
+#define DNS__SET32BIT(p, v) *(unsigned long*)(p) = htonl(v)
+#endif
+
+/* Macros for parsing a DNS header */
+#define DNS_HEADER_QID(h) DNS__16BIT(h)
+#define DNS_HEADER_QR(h) (((h)[2] >> 7) & 0x1)
+#define DNS_HEADER_OPCODE(h) (((h)[2] >> 3) & 0xf)
+#define DNS_HEADER_AA(h) (((h)[2] >> 2) & 0x1)
+#define DNS_HEADER_TC(h) (((h)[2] >> 1) & 0x1)
+#define DNS_HEADER_RD(h) ((h)[2] & 0x1)
+#define DNS_HEADER_RA(h) (((h)[3] >> 7) & 0x1)
+#define DNS_HEADER_Z(h) (((h)[3] >> 4) & 0x7)
+#define DNS_HEADER_RCODE(h) ((h)[3] & 0xf)
+#define DNS_HEADER_QDCOUNT(h) DNS__16BIT((h) + 4)
+#define DNS_HEADER_ANCOUNT(h) DNS__16BIT((h) + 6)
+#define DNS_HEADER_NSCOUNT(h) DNS__16BIT((h) + 8)
+#define DNS_HEADER_ARCOUNT(h) DNS__16BIT((h) + 10)
+
+/* Macros for constructing a DNS header */
+#define DNS_HEADER_SET_QID(h, v) DNS__SET16BIT(h, v)
+#define DNS_HEADER_SET_QR(h, v) ((h)[2] |= (unsigned char)(((v) & 0x1) << 7))
+#define DNS_HEADER_SET_OPCODE(h, v) ((h)[2] |= (unsigned char)(((v) & 0xf) << 3))
+#define DNS_HEADER_SET_AA(h, v) ((h)[2] |= (unsigned char)(((v) & 0x1) << 2))
+#define DNS_HEADER_SET_TC(h, v) ((h)[2] |= (unsigned char)(((v) & 0x1) << 1))
+#define DNS_HEADER_SET_RD(h, v) ((h)[2] |= (unsigned char)((v) & 0x1))
+#define DNS_HEADER_SET_RA(h, v) ((h)[3] |= (unsigned char)(((v) & 0x1) << 7))
+#define DNS_HEADER_SET_Z(h, v) ((h)[3] |= (unsigned char)(((v) & 0x7) << 4))
+#define DNS_HEADER_SET_RCODE(h, v) ((h)[3] |= (unsigned char)((v) & 0xf))
+#define DNS_HEADER_SET_QDCOUNT(h, v) DNS__SET16BIT((h) + 4, v)
+#define DNS_HEADER_SET_ANCOUNT(h, v) DNS__SET16BIT((h) + 6, v)
+#define DNS_HEADER_SET_NSCOUNT(h, v) DNS__SET16BIT((h) + 8, v)
+#define DNS_HEADER_SET_ARCOUNT(h, v) DNS__SET16BIT((h) + 10, v)
+
+/* Macros for parsing the fixed part of a DNS question */
+#define DNS_QUESTION_TYPE(q) DNS__16BIT(q)
+#define DNS_QUESTION_CLASS(q) DNS__16BIT((q) + 2)
+
+/* Macros for constructing the fixed part of a DNS question */
+#define DNS_QUESTION_SET_TYPE(q, v) DNS__SET16BIT(q, v)
+#define DNS_QUESTION_SET_CLASS(q, v) DNS__SET16BIT((q) + 2, v)
+
+/* Macros for parsing the fixed part of a DNS resource record */
+#define DNS_RR_TYPE(r) DNS__16BIT(r)
+#define DNS_RR_CLASS(r) DNS__16BIT((r) + 2)
+#define DNS_RR_TTL(r) DNS__32BIT((r) + 4)
+#define DNS_RR_LEN(r) DNS__16BIT((r) + 8)
+
+/* Macros for constructing the fixed part of a DNS resource record */
+#define DNS_RR_SET_TYPE(r, v) DNS__SET16BIT(r, v)
+#define DNS_RR_SET_CLASS(r, v) DNS__SET16BIT((r) + 2, v)
+#define DNS_RR_SET_TTL(r, v) DNS__SET32BIT((r) + 4, v)
+#define DNS_RR_SET_LEN(r, v) DNS__SET16BIT((r) + 8, v)
+
+#endif /* HEADER_CARES_DNS_H */
diff --git a/contrib/libs/c-ares/ares_expand_name.c b/contrib/libs/c-ares/ares_expand_name.c
index feba304199..3a38e6737e 100644
--- a/contrib/libs/c-ares/ares_expand_name.c
+++ b/contrib/libs/c-ares/ares_expand_name.c
@@ -1,187 +1,187 @@
-
-/* Copyright 1998, 2011 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-# include <arpa/nameser_compat.h>
-#endif
-
-#include "ares.h"
-#include "ares_nowarn.h"
-#include "ares_private.h" /* for the memdebug */
-
+
+/* Copyright 1998, 2011 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
+# include <arpa/nameser_compat.h>
+#endif
+
+#include "ares.h"
+#include "ares_nowarn.h"
+#include "ares_private.h" /* for the memdebug */
+
/* Maximum number of indirections allowed for a name */
#define MAX_INDIRS 50
-static int name_length(const unsigned char *encoded, const unsigned char *abuf,
- int alen);
-
-/* Expand an RFC1035-encoded domain name given by encoded. The
- * containing message is given by abuf and alen. The result given by
- * *s, which is set to a NUL-terminated allocated buffer. *enclen is
- * set to the length of the encoded name (not the length of the
- * expanded name; the goal is to tell the caller how many bytes to
- * move forward to get past the encoded name).
- *
- * In the simple case, an encoded name is a series of labels, each
- * composed of a one-byte length (limited to values between 0 and 63
- * inclusive) followed by the label contents. The name is terminated
- * by a zero-length label.
- *
- * In the more complicated case, a label may be terminated by an
- * indirection pointer, specified by two bytes with the high bits of
- * the first byte (corresponding to INDIR_MASK) set to 11. With the
- * two high bits of the first byte stripped off, the indirection
- * pointer gives an offset from the beginning of the containing
- * message with more labels to decode. Indirection can happen an
- * arbitrary number of times, so we have to detect loops.
- *
- * Since the expanded name uses '.' as a label separator, we use
- * backslashes to escape periods or backslashes in the expanded name.
- */
-
-int ares_expand_name(const unsigned char *encoded, const unsigned char *abuf,
- int alen, char **s, long *enclen)
-{
- int len, indir = 0;
- char *q;
- const unsigned char *p;
- union {
+static int name_length(const unsigned char *encoded, const unsigned char *abuf,
+ int alen);
+
+/* Expand an RFC1035-encoded domain name given by encoded. The
+ * containing message is given by abuf and alen. The result given by
+ * *s, which is set to a NUL-terminated allocated buffer. *enclen is
+ * set to the length of the encoded name (not the length of the
+ * expanded name; the goal is to tell the caller how many bytes to
+ * move forward to get past the encoded name).
+ *
+ * In the simple case, an encoded name is a series of labels, each
+ * composed of a one-byte length (limited to values between 0 and 63
+ * inclusive) followed by the label contents. The name is terminated
+ * by a zero-length label.
+ *
+ * In the more complicated case, a label may be terminated by an
+ * indirection pointer, specified by two bytes with the high bits of
+ * the first byte (corresponding to INDIR_MASK) set to 11. With the
+ * two high bits of the first byte stripped off, the indirection
+ * pointer gives an offset from the beginning of the containing
+ * message with more labels to decode. Indirection can happen an
+ * arbitrary number of times, so we have to detect loops.
+ *
+ * Since the expanded name uses '.' as a label separator, we use
+ * backslashes to escape periods or backslashes in the expanded name.
+ */
+
+int ares_expand_name(const unsigned char *encoded, const unsigned char *abuf,
+ int alen, char **s, long *enclen)
+{
+ int len, indir = 0;
+ char *q;
+ const unsigned char *p;
+ union {
ares_ssize_t sig;
- size_t uns;
- } nlen;
-
- nlen.sig = name_length(encoded, abuf, alen);
- if (nlen.sig < 0)
- return ARES_EBADNAME;
-
+ size_t uns;
+ } nlen;
+
+ nlen.sig = name_length(encoded, abuf, alen);
+ if (nlen.sig < 0)
+ return ARES_EBADNAME;
+
*s = ares_malloc(nlen.uns + 1);
- if (!*s)
- return ARES_ENOMEM;
- q = *s;
-
- if (nlen.uns == 0) {
- /* RFC2181 says this should be ".": the root of the DNS tree.
- * Since this function strips trailing dots though, it becomes ""
- */
- q[0] = '\0';
-
- /* indirect root label (like 0xc0 0x0c) is 2 bytes long (stupid, but
- valid) */
- if ((*encoded & INDIR_MASK) == INDIR_MASK)
- *enclen = 2L;
- else
- *enclen = 1L; /* the caller should move one byte to get past this */
-
- return ARES_SUCCESS;
- }
-
- /* No error-checking necessary; it was all done by name_length(). */
- p = encoded;
- while (*p)
- {
- if ((*p & INDIR_MASK) == INDIR_MASK)
- {
- if (!indir)
- {
- *enclen = aresx_uztosl(p + 2U - encoded);
- indir = 1;
- }
- p = abuf + ((*p & ~INDIR_MASK) << 8 | *(p + 1));
- }
- else
- {
- len = *p;
- p++;
- while (len--)
- {
- if (*p == '.' || *p == '\\')
- *q++ = '\\';
- *q++ = *p;
- p++;
- }
- *q++ = '.';
- }
- }
- if (!indir)
- *enclen = aresx_uztosl(p + 1U - encoded);
-
- /* Nuke the trailing period if we wrote one. */
- if (q > *s)
- *(q - 1) = 0;
- else
+ if (!*s)
+ return ARES_ENOMEM;
+ q = *s;
+
+ if (nlen.uns == 0) {
+ /* RFC2181 says this should be ".": the root of the DNS tree.
+ * Since this function strips trailing dots though, it becomes ""
+ */
+ q[0] = '\0';
+
+ /* indirect root label (like 0xc0 0x0c) is 2 bytes long (stupid, but
+ valid) */
+ if ((*encoded & INDIR_MASK) == INDIR_MASK)
+ *enclen = 2L;
+ else
+ *enclen = 1L; /* the caller should move one byte to get past this */
+
+ return ARES_SUCCESS;
+ }
+
+ /* No error-checking necessary; it was all done by name_length(). */
+ p = encoded;
+ while (*p)
+ {
+ if ((*p & INDIR_MASK) == INDIR_MASK)
+ {
+ if (!indir)
+ {
+ *enclen = aresx_uztosl(p + 2U - encoded);
+ indir = 1;
+ }
+ p = abuf + ((*p & ~INDIR_MASK) << 8 | *(p + 1));
+ }
+ else
+ {
+ len = *p;
+ p++;
+ while (len--)
+ {
+ if (*p == '.' || *p == '\\')
+ *q++ = '\\';
+ *q++ = *p;
+ p++;
+ }
+ *q++ = '.';
+ }
+ }
+ if (!indir)
+ *enclen = aresx_uztosl(p + 1U - encoded);
+
+ /* Nuke the trailing period if we wrote one. */
+ if (q > *s)
+ *(q - 1) = 0;
+ else
*q = 0; /* zero terminate; LCOV_EXCL_LINE: empty names exit above */
-
- return ARES_SUCCESS;
-}
-
-/* Return the length of the expansion of an encoded domain name, or
- * -1 if the encoding is invalid.
- */
-static int name_length(const unsigned char *encoded, const unsigned char *abuf,
- int alen)
-{
+
+ return ARES_SUCCESS;
+}
+
+/* Return the length of the expansion of an encoded domain name, or
+ * -1 if the encoding is invalid.
+ */
+static int name_length(const unsigned char *encoded, const unsigned char *abuf,
+ int alen)
+{
int n = 0, offset, indir = 0, top;
-
- /* Allow the caller to pass us abuf + alen and have us check for it. */
- if (encoded >= abuf + alen)
- return -1;
-
- while (*encoded)
- {
+
+ /* Allow the caller to pass us abuf + alen and have us check for it. */
+ if (encoded >= abuf + alen)
+ return -1;
+
+ while (*encoded)
+ {
top = (*encoded & INDIR_MASK);
if (top == INDIR_MASK)
- {
- /* Check the offset and go there. */
- if (encoded + 1 >= abuf + alen)
- return -1;
- offset = (*encoded & ~INDIR_MASK) << 8 | *(encoded + 1);
- if (offset >= alen)
- return -1;
- encoded = abuf + offset;
-
- /* If we've seen more indirects than the message length,
- * then there's a loop.
- */
+ {
+ /* Check the offset and go there. */
+ if (encoded + 1 >= abuf + alen)
+ return -1;
+ offset = (*encoded & ~INDIR_MASK) << 8 | *(encoded + 1);
+ if (offset >= alen)
+ return -1;
+ encoded = abuf + offset;
+
+ /* If we've seen more indirects than the message length,
+ * then there's a loop.
+ */
++indir;
if (indir > alen || indir > MAX_INDIRS)
- return -1;
- }
+ return -1;
+ }
else if (top == 0x00)
- {
- offset = *encoded;
- if (encoded + offset + 1 >= abuf + alen)
- return -1;
- encoded++;
- while (offset--)
- {
- n += (*encoded == '.' || *encoded == '\\') ? 2 : 1;
- encoded++;
- }
- n++;
- }
+ {
+ offset = *encoded;
+ if (encoded + offset + 1 >= abuf + alen)
+ return -1;
+ encoded++;
+ while (offset--)
+ {
+ n += (*encoded == '.' || *encoded == '\\') ? 2 : 1;
+ encoded++;
+ }
+ n++;
+ }
else
{
/* RFC 1035 4.1.4 says other options (01, 10) for top 2
@@ -189,21 +189,21 @@ static int name_length(const unsigned char *encoded, const unsigned char *abuf,
*/
return -1;
}
- }
-
- /* If there were any labels at all, then the number of dots is one
- * less than the number of labels, so subtract one.
- */
- return (n) ? n - 1 : n;
-}
-
-/* Like ares_expand_name but returns EBADRESP in case of invalid input. */
-int ares__expand_name_for_response(const unsigned char *encoded,
- const unsigned char *abuf, int alen,
- char **s, long *enclen)
-{
- int status = ares_expand_name(encoded, abuf, alen, s, enclen);
- if (status == ARES_EBADNAME)
- status = ARES_EBADRESP;
- return status;
-}
+ }
+
+ /* If there were any labels at all, then the number of dots is one
+ * less than the number of labels, so subtract one.
+ */
+ return (n) ? n - 1 : n;
+}
+
+/* Like ares_expand_name but returns EBADRESP in case of invalid input. */
+int ares__expand_name_for_response(const unsigned char *encoded,
+ const unsigned char *abuf, int alen,
+ char **s, long *enclen)
+{
+ int status = ares_expand_name(encoded, abuf, alen, s, enclen);
+ if (status == ARES_EBADNAME)
+ status = ARES_EBADRESP;
+ return status;
+}
diff --git a/contrib/libs/c-ares/ares_expand_string.c b/contrib/libs/c-ares/ares_expand_string.c
index a267181374..d35df75248 100644
--- a/contrib/libs/c-ares/ares_expand_string.c
+++ b/contrib/libs/c-ares/ares_expand_string.c
@@ -1,70 +1,70 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-
-#include "ares.h"
-#include "ares_private.h" /* for the memdebug */
-
-/* Simply decodes a length-encoded character string. The first byte of the
- * input is the length of the string to be returned and the bytes thereafter
- * are the characters of the string. The returned result will be NULL
- * terminated.
- */
-int ares_expand_string(const unsigned char *encoded,
- const unsigned char *abuf,
- int alen,
- unsigned char **s,
- long *enclen)
-{
- unsigned char *q;
- union {
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+
+#include "ares.h"
+#include "ares_private.h" /* for the memdebug */
+
+/* Simply decodes a length-encoded character string. The first byte of the
+ * input is the length of the string to be returned and the bytes thereafter
+ * are the characters of the string. The returned result will be NULL
+ * terminated.
+ */
+int ares_expand_string(const unsigned char *encoded,
+ const unsigned char *abuf,
+ int alen,
+ unsigned char **s,
+ long *enclen)
+{
+ unsigned char *q;
+ union {
ares_ssize_t sig;
- size_t uns;
- } elen;
-
- if (encoded == abuf+alen)
- return ARES_EBADSTR;
-
- elen.uns = *encoded;
- if (encoded+elen.sig+1 > abuf+alen)
- return ARES_EBADSTR;
-
- encoded++;
-
+ size_t uns;
+ } elen;
+
+ if (encoded == abuf+alen)
+ return ARES_EBADSTR;
+
+ elen.uns = *encoded;
+ if (encoded+elen.sig+1 > abuf+alen)
+ return ARES_EBADSTR;
+
+ encoded++;
+
*s = ares_malloc(elen.uns+1);
- if (*s == NULL)
- return ARES_ENOMEM;
- q = *s;
- strncpy((char *)q, (char *)encoded, elen.uns);
- q[elen.uns] = '\0';
-
- *s = q;
-
- *enclen = (long)(elen.sig+1);
-
- return ARES_SUCCESS;
-}
-
+ if (*s == NULL)
+ return ARES_ENOMEM;
+ q = *s;
+ strncpy((char *)q, (char *)encoded, elen.uns);
+ q[elen.uns] = '\0';
+
+ *s = q;
+
+ *enclen = (long)(elen.sig+1);
+
+ return ARES_SUCCESS;
+}
+
diff --git a/contrib/libs/c-ares/ares_fds.c b/contrib/libs/c-ares/ares_fds.c
index 9338cccca7..f405fc047c 100644
--- a/contrib/libs/c-ares/ares_fds.c
+++ b/contrib/libs/c-ares/ares_fds.c
@@ -1,59 +1,59 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#include "ares.h"
-#include "ares_nowarn.h"
-#include "ares_private.h"
-
-int ares_fds(ares_channel channel, fd_set *read_fds, fd_set *write_fds)
-{
- struct server_state *server;
- ares_socket_t nfds;
- int i;
-
- /* Are there any active queries? */
- int active_queries = !ares__is_list_empty(&(channel->all_queries));
-
- nfds = 0;
- for (i = 0; i < channel->nservers; i++)
- {
- server = &channel->servers[i];
- /* We only need to register interest in UDP sockets if we have
- * outstanding queries.
- */
- if (active_queries && server->udp_socket != ARES_SOCKET_BAD)
- {
- FD_SET(server->udp_socket, read_fds);
- if (server->udp_socket >= nfds)
- nfds = server->udp_socket + 1;
- }
- /* We always register for TCP events, because we want to know
- * when the other side closes the connection, so we don't waste
- * time trying to use a broken connection.
- */
- if (server->tcp_socket != ARES_SOCKET_BAD)
- {
- FD_SET(server->tcp_socket, read_fds);
- if (server->qhead)
- FD_SET(server->tcp_socket, write_fds);
- if (server->tcp_socket >= nfds)
- nfds = server->tcp_socket + 1;
- }
- }
- return (int)nfds;
-}
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#include "ares.h"
+#include "ares_nowarn.h"
+#include "ares_private.h"
+
+int ares_fds(ares_channel channel, fd_set *read_fds, fd_set *write_fds)
+{
+ struct server_state *server;
+ ares_socket_t nfds;
+ int i;
+
+ /* Are there any active queries? */
+ int active_queries = !ares__is_list_empty(&(channel->all_queries));
+
+ nfds = 0;
+ for (i = 0; i < channel->nservers; i++)
+ {
+ server = &channel->servers[i];
+ /* We only need to register interest in UDP sockets if we have
+ * outstanding queries.
+ */
+ if (active_queries && server->udp_socket != ARES_SOCKET_BAD)
+ {
+ FD_SET(server->udp_socket, read_fds);
+ if (server->udp_socket >= nfds)
+ nfds = server->udp_socket + 1;
+ }
+ /* We always register for TCP events, because we want to know
+ * when the other side closes the connection, so we don't waste
+ * time trying to use a broken connection.
+ */
+ if (server->tcp_socket != ARES_SOCKET_BAD)
+ {
+ FD_SET(server->tcp_socket, read_fds);
+ if (server->qhead)
+ FD_SET(server->tcp_socket, write_fds);
+ if (server->tcp_socket >= nfds)
+ nfds = server->tcp_socket + 1;
+ }
+ }
+ return (int)nfds;
+}
diff --git a/contrib/libs/c-ares/ares_free_hostent.c b/contrib/libs/c-ares/ares_free_hostent.c
index 29c82c6704..cfc5f81feb 100644
--- a/contrib/libs/c-ares/ares_free_hostent.c
+++ b/contrib/libs/c-ares/ares_free_hostent.c
@@ -1,41 +1,41 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-
-#include "ares.h"
-#include "ares_private.h" /* for memdebug */
-
-void ares_free_hostent(struct hostent *host)
-{
- char **p;
-
- if (!host)
- return;
-
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+
+#include "ares.h"
+#include "ares_private.h" /* for memdebug */
+
+void ares_free_hostent(struct hostent *host)
+{
+ char **p;
+
+ if (!host)
+ return;
+
ares_free((char *)(host->h_name));
- for (p = host->h_aliases; *p; p++)
+ for (p = host->h_aliases; *p; p++)
ares_free(*p);
ares_free(host->h_aliases);
ares_free(host->h_addr_list[0]); /* no matter if there is one or many entries,
- there is only one malloc for all of them */
+ there is only one malloc for all of them */
ares_free(host->h_addr_list);
ares_free(host);
-}
+}
diff --git a/contrib/libs/c-ares/ares_free_string.c b/contrib/libs/c-ares/ares_free_string.c
index e125b63c4e..024992e1c2 100644
--- a/contrib/libs/c-ares/ares_free_string.c
+++ b/contrib/libs/c-ares/ares_free_string.c
@@ -1,25 +1,25 @@
-
-/* Copyright 2000 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#include "ares.h"
-#include "ares_private.h"
-
-void ares_free_string(void *str)
-{
+
+/* Copyright 2000 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#include "ares.h"
+#include "ares_private.h"
+
+void ares_free_string(void *str)
+{
ares_free(str);
-}
+}
diff --git a/contrib/libs/c-ares/ares_getenv.c b/contrib/libs/c-ares/ares_getenv.c
index 26ab20433a..f6e4dc2952 100644
--- a/contrib/libs/c-ares/ares_getenv.c
+++ b/contrib/libs/c-ares/ares_getenv.c
@@ -1,28 +1,28 @@
-
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-#include "ares_getenv.h"
-
-#ifndef HAVE_GETENV
-
-char *ares_getenv(const char *name)
-{
- return NULL;
-}
-
-#endif
+
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+#include "ares_getenv.h"
+
+#ifndef HAVE_GETENV
+
+char *ares_getenv(const char *name)
+{
+ return NULL;
+}
+
+#endif
diff --git a/contrib/libs/c-ares/ares_getenv.h b/contrib/libs/c-ares/ares_getenv.h
index a7f2969a75..6da6cc5081 100644
--- a/contrib/libs/c-ares/ares_getenv.h
+++ b/contrib/libs/c-ares/ares_getenv.h
@@ -1,26 +1,26 @@
-#ifndef HEADER_CARES_GETENV_H
-#define HEADER_CARES_GETENV_H
-
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifndef HAVE_GETENV
-extern char *ares_getenv(const char *name);
-#endif
-
-#endif /* HEADER_CARES_GETENV_H */
+#ifndef HEADER_CARES_GETENV_H
+#define HEADER_CARES_GETENV_H
+
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifndef HAVE_GETENV
+extern char *ares_getenv(const char *name);
+#endif
+
+#endif /* HEADER_CARES_GETENV_H */
diff --git a/contrib/libs/c-ares/ares_gethostbyaddr.c b/contrib/libs/c-ares/ares_gethostbyaddr.c
index e67e0f0209..f37fb8b815 100644
--- a/contrib/libs/c-ares/ares_gethostbyaddr.c
+++ b/contrib/libs/c-ares/ares_gethostbyaddr.c
@@ -1,301 +1,301 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-#include "ares_setup.h"
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_NETDB_H
-# include <netdb.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-# include <arpa/inet.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-# include <arpa/nameser_compat.h>
-#endif
-
-#include "ares.h"
-#include "ares_inet_net_pton.h"
-#include "ares_platform.h"
-#include "ares_private.h"
-
-#ifdef WATT32
-#undef WIN32
-#endif
-
-#define next_lookup next_lookup_x
-#define file_lookup file_lookup_x
-
-struct addr_query {
- /* Arguments passed to ares_gethostbyaddr() */
- ares_channel channel;
- struct ares_addr addr;
- ares_host_callback callback;
- void *arg;
-
- const char *remaining_lookups;
- int timeouts;
-};
-
-static void next_lookup(struct addr_query *aquery);
-static void addr_callback(void *arg, int status, int timeouts,
- unsigned char *abuf, int alen);
-static void end_aquery(struct addr_query *aquery, int status,
- struct hostent *host);
-static int file_lookup(struct ares_addr *addr, struct hostent **host);
-static void ptr_rr_name(char *name, const struct ares_addr *addr);
-
-void ares_gethostbyaddr(ares_channel channel, const void *addr, int addrlen,
- int family, ares_host_callback callback, void *arg)
-{
- struct addr_query *aquery;
-
- if (family != AF_INET && family != AF_INET6)
- {
- callback(arg, ARES_ENOTIMP, 0, NULL);
- return;
- }
-
- if ((family == AF_INET && addrlen != sizeof(aquery->addr.addrV4)) ||
- (family == AF_INET6 && addrlen != sizeof(aquery->addr.addrV6)))
- {
- callback(arg, ARES_ENOTIMP, 0, NULL);
- return;
- }
-
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+#include "ares_setup.h"
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_NETDB_H
+# include <netdb.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
+# include <arpa/nameser_compat.h>
+#endif
+
+#include "ares.h"
+#include "ares_inet_net_pton.h"
+#include "ares_platform.h"
+#include "ares_private.h"
+
+#ifdef WATT32
+#undef WIN32
+#endif
+
+#define next_lookup next_lookup_x
+#define file_lookup file_lookup_x
+
+struct addr_query {
+ /* Arguments passed to ares_gethostbyaddr() */
+ ares_channel channel;
+ struct ares_addr addr;
+ ares_host_callback callback;
+ void *arg;
+
+ const char *remaining_lookups;
+ int timeouts;
+};
+
+static void next_lookup(struct addr_query *aquery);
+static void addr_callback(void *arg, int status, int timeouts,
+ unsigned char *abuf, int alen);
+static void end_aquery(struct addr_query *aquery, int status,
+ struct hostent *host);
+static int file_lookup(struct ares_addr *addr, struct hostent **host);
+static void ptr_rr_name(char *name, const struct ares_addr *addr);
+
+void ares_gethostbyaddr(ares_channel channel, const void *addr, int addrlen,
+ int family, ares_host_callback callback, void *arg)
+{
+ struct addr_query *aquery;
+
+ if (family != AF_INET && family != AF_INET6)
+ {
+ callback(arg, ARES_ENOTIMP, 0, NULL);
+ return;
+ }
+
+ if ((family == AF_INET && addrlen != sizeof(aquery->addr.addrV4)) ||
+ (family == AF_INET6 && addrlen != sizeof(aquery->addr.addrV6)))
+ {
+ callback(arg, ARES_ENOTIMP, 0, NULL);
+ return;
+ }
+
aquery = ares_malloc(sizeof(struct addr_query));
- if (!aquery)
- {
- callback(arg, ARES_ENOMEM, 0, NULL);
- return;
- }
- aquery->channel = channel;
- if (family == AF_INET)
- memcpy(&aquery->addr.addrV4, addr, sizeof(aquery->addr.addrV4));
- else
- memcpy(&aquery->addr.addrV6, addr, sizeof(aquery->addr.addrV6));
- aquery->addr.family = family;
- aquery->callback = callback;
- aquery->arg = arg;
- aquery->remaining_lookups = channel->lookups;
- aquery->timeouts = 0;
-
- next_lookup(aquery);
-}
-
-static void next_lookup(struct addr_query *aquery)
-{
- const char *p;
- char name[128];
- int status;
- struct hostent *host;
-
- for (p = aquery->remaining_lookups; *p; p++)
- {
- switch (*p)
- {
- case 'b':
- ptr_rr_name(name, &aquery->addr);
- aquery->remaining_lookups = p + 1;
- ares_query(aquery->channel, name, C_IN, T_PTR, addr_callback,
- aquery);
- return;
- case 'f':
- status = file_lookup(&aquery->addr, &host);
-
- /* this status check below previously checked for !ARES_ENOTFOUND,
- but we should not assume that this single error code is the one
- that can occur, as that is in fact no longer the case */
- if (status == ARES_SUCCESS)
- {
- end_aquery(aquery, status, host);
- return;
- }
- break;
- }
- }
- end_aquery(aquery, ARES_ENOTFOUND, NULL);
-}
-
-static void addr_callback(void *arg, int status, int timeouts,
- unsigned char *abuf, int alen)
-{
- struct addr_query *aquery = (struct addr_query *) arg;
- struct hostent *host;
- size_t addrlen;
-
- aquery->timeouts += timeouts;
- if (status == ARES_SUCCESS)
- {
- if (aquery->addr.family == AF_INET)
- {
- addrlen = sizeof(aquery->addr.addrV4);
- status = ares_parse_ptr_reply(abuf, alen, &aquery->addr.addrV4,
+ if (!aquery)
+ {
+ callback(arg, ARES_ENOMEM, 0, NULL);
+ return;
+ }
+ aquery->channel = channel;
+ if (family == AF_INET)
+ memcpy(&aquery->addr.addrV4, addr, sizeof(aquery->addr.addrV4));
+ else
+ memcpy(&aquery->addr.addrV6, addr, sizeof(aquery->addr.addrV6));
+ aquery->addr.family = family;
+ aquery->callback = callback;
+ aquery->arg = arg;
+ aquery->remaining_lookups = channel->lookups;
+ aquery->timeouts = 0;
+
+ next_lookup(aquery);
+}
+
+static void next_lookup(struct addr_query *aquery)
+{
+ const char *p;
+ char name[128];
+ int status;
+ struct hostent *host;
+
+ for (p = aquery->remaining_lookups; *p; p++)
+ {
+ switch (*p)
+ {
+ case 'b':
+ ptr_rr_name(name, &aquery->addr);
+ aquery->remaining_lookups = p + 1;
+ ares_query(aquery->channel, name, C_IN, T_PTR, addr_callback,
+ aquery);
+ return;
+ case 'f':
+ status = file_lookup(&aquery->addr, &host);
+
+ /* this status check below previously checked for !ARES_ENOTFOUND,
+ but we should not assume that this single error code is the one
+ that can occur, as that is in fact no longer the case */
+ if (status == ARES_SUCCESS)
+ {
+ end_aquery(aquery, status, host);
+ return;
+ }
+ break;
+ }
+ }
+ end_aquery(aquery, ARES_ENOTFOUND, NULL);
+}
+
+static void addr_callback(void *arg, int status, int timeouts,
+ unsigned char *abuf, int alen)
+{
+ struct addr_query *aquery = (struct addr_query *) arg;
+ struct hostent *host;
+ size_t addrlen;
+
+ aquery->timeouts += timeouts;
+ if (status == ARES_SUCCESS)
+ {
+ if (aquery->addr.family == AF_INET)
+ {
+ addrlen = sizeof(aquery->addr.addrV4);
+ status = ares_parse_ptr_reply(abuf, alen, &aquery->addr.addrV4,
(int)addrlen, AF_INET, &host, NULL);
- }
- else
- {
- addrlen = sizeof(aquery->addr.addrV6);
- status = ares_parse_ptr_reply(abuf, alen, &aquery->addr.addrV6,
+ }
+ else
+ {
+ addrlen = sizeof(aquery->addr.addrV6);
+ status = ares_parse_ptr_reply(abuf, alen, &aquery->addr.addrV6,
(int)addrlen, AF_INET6, &host, NULL);
- }
- end_aquery(aquery, status, host);
- }
+ }
+ end_aquery(aquery, status, host);
+ }
else if (status == ARES_EDESTRUCTION || status == ARES_ECANCELLED)
- end_aquery(aquery, status, NULL);
- else
- next_lookup(aquery);
-}
-
-static void end_aquery(struct addr_query *aquery, int status,
- struct hostent *host)
-{
- aquery->callback(aquery->arg, status, aquery->timeouts, host);
- if (host)
- ares_free_hostent(host);
+ end_aquery(aquery, status, NULL);
+ else
+ next_lookup(aquery);
+}
+
+static void end_aquery(struct addr_query *aquery, int status,
+ struct hostent *host)
+{
+ aquery->callback(aquery->arg, status, aquery->timeouts, host);
+ if (host)
+ ares_free_hostent(host);
ares_free(aquery);
-}
-
-static int file_lookup(struct ares_addr *addr, struct hostent **host)
-{
- FILE *fp;
- int status;
- int error;
-
-#ifdef WIN32
- char PATH_HOSTS[MAX_PATH];
- win_platform platform;
-
- PATH_HOSTS[0] = '\0';
-
- platform = ares__getplatform();
-
- if (platform == WIN_NT) {
- char tmp[MAX_PATH];
- HKEY hkeyHosts;
-
+}
+
+static int file_lookup(struct ares_addr *addr, struct hostent **host)
+{
+ FILE *fp;
+ int status;
+ int error;
+
+#ifdef WIN32
+ char PATH_HOSTS[MAX_PATH];
+ win_platform platform;
+
+ PATH_HOSTS[0] = '\0';
+
+ platform = ares__getplatform();
+
+ if (platform == WIN_NT) {
+ char tmp[MAX_PATH];
+ HKEY hkeyHosts;
+
if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, WIN_NS_NT_KEY, 0, KEY_READ,
- &hkeyHosts) == ERROR_SUCCESS)
- {
- DWORD dwLength = MAX_PATH;
+ &hkeyHosts) == ERROR_SUCCESS)
+ {
+ DWORD dwLength = MAX_PATH;
RegQueryValueExA(hkeyHosts, DATABASEPATH, NULL, NULL, (LPBYTE)tmp,
- &dwLength);
+ &dwLength);
ExpandEnvironmentStringsA(tmp, PATH_HOSTS, MAX_PATH);
- RegCloseKey(hkeyHosts);
- }
- }
- else if (platform == WIN_9X)
+ RegCloseKey(hkeyHosts);
+ }
+ }
+ else if (platform == WIN_9X)
GetWindowsDirectoryA(PATH_HOSTS, MAX_PATH);
- else
- return ARES_ENOTFOUND;
-
- strcat(PATH_HOSTS, WIN_PATH_HOSTS);
-
-#elif defined(WATT32)
- extern const char *_w32_GetHostsFile (void);
- const char *PATH_HOSTS = _w32_GetHostsFile();
-
- if (!PATH_HOSTS)
- return ARES_ENOTFOUND;
-#endif
-
- fp = fopen(PATH_HOSTS, "r");
- if (!fp)
- {
- error = ERRNO;
- switch(error)
- {
- case ENOENT:
- case ESRCH:
- return ARES_ENOTFOUND;
- default:
- DEBUGF(fprintf(stderr, "fopen() failed with error: %d %s\n",
- error, strerror(error)));
- DEBUGF(fprintf(stderr, "Error opening file: %s\n",
- PATH_HOSTS));
- *host = NULL;
- return ARES_EFILE;
- }
- }
- while ((status = ares__get_hostent(fp, addr->family, host)) == ARES_SUCCESS)
- {
- if (addr->family != (*host)->h_addrtype)
- {
- ares_free_hostent(*host);
- continue;
- }
- if (addr->family == AF_INET)
- {
- if (memcmp((*host)->h_addr, &addr->addrV4,
- sizeof(addr->addrV4)) == 0)
- break;
- }
- else if (addr->family == AF_INET6)
- {
- if (memcmp((*host)->h_addr, &addr->addrV6,
- sizeof(addr->addrV6)) == 0)
- break;
- }
- ares_free_hostent(*host);
- }
- fclose(fp);
- if (status == ARES_EOF)
- status = ARES_ENOTFOUND;
- if (status != ARES_SUCCESS)
- *host = NULL;
- return status;
-}
-
-static void ptr_rr_name(char *name, const struct ares_addr *addr)
-{
- if (addr->family == AF_INET)
- {
- unsigned long laddr = ntohl(addr->addrV4.s_addr);
- unsigned long a1 = (laddr >> 24UL) & 0xFFUL;
- unsigned long a2 = (laddr >> 16UL) & 0xFFUL;
- unsigned long a3 = (laddr >> 8UL) & 0xFFUL;
- unsigned long a4 = laddr & 0xFFUL;
- sprintf(name, "%lu.%lu.%lu.%lu.in-addr.arpa", a4, a3, a2, a1);
- }
- else
- {
- unsigned char *bytes = (unsigned char *)&addr->addrV6;
- /* There are too many arguments to do this in one line using
- * minimally C89-compliant compilers */
- sprintf(name,
- "%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.",
- bytes[15]&0xf, bytes[15] >> 4, bytes[14]&0xf, bytes[14] >> 4,
- bytes[13]&0xf, bytes[13] >> 4, bytes[12]&0xf, bytes[12] >> 4,
- bytes[11]&0xf, bytes[11] >> 4, bytes[10]&0xf, bytes[10] >> 4,
- bytes[9]&0xf, bytes[9] >> 4, bytes[8]&0xf, bytes[8] >> 4);
- sprintf(name+strlen(name),
- "%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.ip6.arpa",
- bytes[7]&0xf, bytes[7] >> 4, bytes[6]&0xf, bytes[6] >> 4,
- bytes[5]&0xf, bytes[5] >> 4, bytes[4]&0xf, bytes[4] >> 4,
- bytes[3]&0xf, bytes[3] >> 4, bytes[2]&0xf, bytes[2] >> 4,
- bytes[1]&0xf, bytes[1] >> 4, bytes[0]&0xf, bytes[0] >> 4);
- }
-}
-
-#undef next_lookup
-#undef file_lookup
+ else
+ return ARES_ENOTFOUND;
+
+ strcat(PATH_HOSTS, WIN_PATH_HOSTS);
+
+#elif defined(WATT32)
+ extern const char *_w32_GetHostsFile (void);
+ const char *PATH_HOSTS = _w32_GetHostsFile();
+
+ if (!PATH_HOSTS)
+ return ARES_ENOTFOUND;
+#endif
+
+ fp = fopen(PATH_HOSTS, "r");
+ if (!fp)
+ {
+ error = ERRNO;
+ switch(error)
+ {
+ case ENOENT:
+ case ESRCH:
+ return ARES_ENOTFOUND;
+ default:
+ DEBUGF(fprintf(stderr, "fopen() failed with error: %d %s\n",
+ error, strerror(error)));
+ DEBUGF(fprintf(stderr, "Error opening file: %s\n",
+ PATH_HOSTS));
+ *host = NULL;
+ return ARES_EFILE;
+ }
+ }
+ while ((status = ares__get_hostent(fp, addr->family, host)) == ARES_SUCCESS)
+ {
+ if (addr->family != (*host)->h_addrtype)
+ {
+ ares_free_hostent(*host);
+ continue;
+ }
+ if (addr->family == AF_INET)
+ {
+ if (memcmp((*host)->h_addr, &addr->addrV4,
+ sizeof(addr->addrV4)) == 0)
+ break;
+ }
+ else if (addr->family == AF_INET6)
+ {
+ if (memcmp((*host)->h_addr, &addr->addrV6,
+ sizeof(addr->addrV6)) == 0)
+ break;
+ }
+ ares_free_hostent(*host);
+ }
+ fclose(fp);
+ if (status == ARES_EOF)
+ status = ARES_ENOTFOUND;
+ if (status != ARES_SUCCESS)
+ *host = NULL;
+ return status;
+}
+
+static void ptr_rr_name(char *name, const struct ares_addr *addr)
+{
+ if (addr->family == AF_INET)
+ {
+ unsigned long laddr = ntohl(addr->addrV4.s_addr);
+ unsigned long a1 = (laddr >> 24UL) & 0xFFUL;
+ unsigned long a2 = (laddr >> 16UL) & 0xFFUL;
+ unsigned long a3 = (laddr >> 8UL) & 0xFFUL;
+ unsigned long a4 = laddr & 0xFFUL;
+ sprintf(name, "%lu.%lu.%lu.%lu.in-addr.arpa", a4, a3, a2, a1);
+ }
+ else
+ {
+ unsigned char *bytes = (unsigned char *)&addr->addrV6;
+ /* There are too many arguments to do this in one line using
+ * minimally C89-compliant compilers */
+ sprintf(name,
+ "%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.",
+ bytes[15]&0xf, bytes[15] >> 4, bytes[14]&0xf, bytes[14] >> 4,
+ bytes[13]&0xf, bytes[13] >> 4, bytes[12]&0xf, bytes[12] >> 4,
+ bytes[11]&0xf, bytes[11] >> 4, bytes[10]&0xf, bytes[10] >> 4,
+ bytes[9]&0xf, bytes[9] >> 4, bytes[8]&0xf, bytes[8] >> 4);
+ sprintf(name+strlen(name),
+ "%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.%x.ip6.arpa",
+ bytes[7]&0xf, bytes[7] >> 4, bytes[6]&0xf, bytes[6] >> 4,
+ bytes[5]&0xf, bytes[5] >> 4, bytes[4]&0xf, bytes[4] >> 4,
+ bytes[3]&0xf, bytes[3] >> 4, bytes[2]&0xf, bytes[2] >> 4,
+ bytes[1]&0xf, bytes[1] >> 4, bytes[0]&0xf, bytes[0] >> 4);
+ }
+}
+
+#undef next_lookup
+#undef file_lookup
diff --git a/contrib/libs/c-ares/ares_gethostbyname.c b/contrib/libs/c-ares/ares_gethostbyname.c
index 128d9ec2a6..ecd03e7931 100644
--- a/contrib/libs/c-ares/ares_gethostbyname.c
+++ b/contrib/libs/c-ares/ares_gethostbyname.c
@@ -1,100 +1,100 @@
-
-/* Copyright 1998, 2011, 2013 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_NETDB_H
-# include <netdb.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-# include <arpa/inet.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-# include <arpa/nameser_compat.h>
-#endif
-
-#ifdef HAVE_STRINGS_H
-#include <strings.h>
-#endif
-
-#include "ares.h"
-#include "ares_inet_net_pton.h"
-#include "bitncmp.h"
-#include "ares_platform.h"
-#include "ares_nowarn.h"
-#include "ares_private.h"
-
-#ifdef WATT32
-#undef WIN32
-#endif
-
-struct host_query {
- /* Arguments passed to ares_gethostbyname() */
- ares_channel channel;
- char *name;
- ares_host_callback callback;
- void *arg;
- int sent_family; /* this family is what was is being used */
- int want_family; /* this family is what is asked for in the API */
- const char *remaining_lookups;
- int timeouts;
-};
-
-static void next_lookup(struct host_query *hquery, int status_code);
-static void host_callback(void *arg, int status, int timeouts,
- unsigned char *abuf, int alen);
-static void end_hquery(struct host_query *hquery, int status,
- struct hostent *host);
-static int fake_hostent(const char *name, int family,
- ares_host_callback callback, void *arg);
-static int file_lookup(const char *name, int family, struct hostent **host);
-static void sort_addresses(struct hostent *host,
- const struct apattern *sortlist, int nsort);
-static void sort6_addresses(struct hostent *host,
- const struct apattern *sortlist, int nsort);
-static int get_address_index(const struct in_addr *addr,
- const struct apattern *sortlist, int nsort);
-static int get6_address_index(const struct ares_in6_addr *addr,
- const struct apattern *sortlist, int nsort);
-
-void ares_gethostbyname(ares_channel channel, const char *name, int family,
- ares_host_callback callback, void *arg)
-{
- struct host_query *hquery;
-
- /* Right now we only know how to look up Internet addresses - and unspec
- means try both basically. */
- switch (family) {
- case AF_INET:
- case AF_INET6:
- case AF_UNSPEC:
- break;
- default:
- callback(arg, ARES_ENOTIMP, 0, NULL);
- return;
- }
-
+
+/* Copyright 1998, 2011, 2013 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_NETDB_H
+# include <netdb.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
+# include <arpa/nameser_compat.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+#include <strings.h>
+#endif
+
+#include "ares.h"
+#include "ares_inet_net_pton.h"
+#include "bitncmp.h"
+#include "ares_platform.h"
+#include "ares_nowarn.h"
+#include "ares_private.h"
+
+#ifdef WATT32
+#undef WIN32
+#endif
+
+struct host_query {
+ /* Arguments passed to ares_gethostbyname() */
+ ares_channel channel;
+ char *name;
+ ares_host_callback callback;
+ void *arg;
+ int sent_family; /* this family is what was is being used */
+ int want_family; /* this family is what is asked for in the API */
+ const char *remaining_lookups;
+ int timeouts;
+};
+
+static void next_lookup(struct host_query *hquery, int status_code);
+static void host_callback(void *arg, int status, int timeouts,
+ unsigned char *abuf, int alen);
+static void end_hquery(struct host_query *hquery, int status,
+ struct hostent *host);
+static int fake_hostent(const char *name, int family,
+ ares_host_callback callback, void *arg);
+static int file_lookup(const char *name, int family, struct hostent **host);
+static void sort_addresses(struct hostent *host,
+ const struct apattern *sortlist, int nsort);
+static void sort6_addresses(struct hostent *host,
+ const struct apattern *sortlist, int nsort);
+static int get_address_index(const struct in_addr *addr,
+ const struct apattern *sortlist, int nsort);
+static int get6_address_index(const struct ares_in6_addr *addr,
+ const struct apattern *sortlist, int nsort);
+
+void ares_gethostbyname(ares_channel channel, const char *name, int family,
+ ares_host_callback callback, void *arg)
+{
+ struct host_query *hquery;
+
+ /* Right now we only know how to look up Internet addresses - and unspec
+ means try both basically. */
+ switch (family) {
+ case AF_INET:
+ case AF_INET6:
+ case AF_UNSPEC:
+ break;
+ default:
+ callback(arg, ARES_ENOTIMP, 0, NULL);
+ return;
+ }
+
/* Per RFC 7686, reject queries for ".onion" domain names with NXDOMAIN. */
if (ares__is_onion_domain(name))
{
@@ -102,115 +102,115 @@ void ares_gethostbyname(ares_channel channel, const char *name, int family,
return;
}
- if (fake_hostent(name, family, callback, arg))
- return;
-
- /* Allocate and fill in the host query structure. */
+ if (fake_hostent(name, family, callback, arg))
+ return;
+
+ /* Allocate and fill in the host query structure. */
hquery = ares_malloc(sizeof(struct host_query));
- if (!hquery)
- {
- callback(arg, ARES_ENOMEM, 0, NULL);
- return;
- }
- hquery->channel = channel;
+ if (!hquery)
+ {
+ callback(arg, ARES_ENOMEM, 0, NULL);
+ return;
+ }
+ hquery->channel = channel;
hquery->name = ares_strdup(name);
- hquery->want_family = family;
- hquery->sent_family = -1; /* nothing is sent yet */
- if (!hquery->name) {
+ hquery->want_family = family;
+ hquery->sent_family = -1; /* nothing is sent yet */
+ if (!hquery->name) {
ares_free(hquery);
- callback(arg, ARES_ENOMEM, 0, NULL);
- return;
- }
- hquery->callback = callback;
- hquery->arg = arg;
- hquery->remaining_lookups = channel->lookups;
- hquery->timeouts = 0;
-
- /* Start performing lookups according to channel->lookups. */
- next_lookup(hquery, ARES_ECONNREFUSED /* initial error code */);
-}
-
-static void next_lookup(struct host_query *hquery, int status_code)
-{
- const char *p;
- struct hostent *host;
- int status = status_code;
-
- for (p = hquery->remaining_lookups; *p; p++)
- {
- switch (*p)
- {
- case 'b':
- /* DNS lookup */
- hquery->remaining_lookups = p + 1;
- if ((hquery->want_family == AF_INET6) ||
- (hquery->want_family == AF_UNSPEC)) {
- /* if inet6 or unspec, start out with AAAA */
- hquery->sent_family = AF_INET6;
- ares_search(hquery->channel, hquery->name, C_IN, T_AAAA,
- host_callback, hquery);
- }
- else {
- hquery->sent_family = AF_INET;
- ares_search(hquery->channel, hquery->name, C_IN, T_A,
- host_callback, hquery);
- }
- return;
-
- case 'f':
- /* Host file lookup */
- status = file_lookup(hquery->name, hquery->want_family, &host);
-
- /* this status check below previously checked for !ARES_ENOTFOUND,
- but we should not assume that this single error code is the one
- that can occur, as that is in fact no longer the case */
- if (status == ARES_SUCCESS)
- {
- end_hquery(hquery, status, host);
- return;
- }
- status = status_code; /* Use original status code */
- break;
- }
- }
- end_hquery(hquery, status, NULL);
-}
-
-static void host_callback(void *arg, int status, int timeouts,
- unsigned char *abuf, int alen)
-{
- struct host_query *hquery = (struct host_query *) arg;
- ares_channel channel = hquery->channel;
- struct hostent *host = NULL;
-
- hquery->timeouts += timeouts;
- if (status == ARES_SUCCESS)
- {
- if (hquery->sent_family == AF_INET)
- {
- status = ares_parse_a_reply(abuf, alen, &host, NULL, NULL);
- if (host && channel->nsort)
- sort_addresses(host, channel->sortlist, channel->nsort);
- }
- else if (hquery->sent_family == AF_INET6)
- {
- status = ares_parse_aaaa_reply(abuf, alen, &host, NULL, NULL);
+ callback(arg, ARES_ENOMEM, 0, NULL);
+ return;
+ }
+ hquery->callback = callback;
+ hquery->arg = arg;
+ hquery->remaining_lookups = channel->lookups;
+ hquery->timeouts = 0;
+
+ /* Start performing lookups according to channel->lookups. */
+ next_lookup(hquery, ARES_ECONNREFUSED /* initial error code */);
+}
+
+static void next_lookup(struct host_query *hquery, int status_code)
+{
+ const char *p;
+ struct hostent *host;
+ int status = status_code;
+
+ for (p = hquery->remaining_lookups; *p; p++)
+ {
+ switch (*p)
+ {
+ case 'b':
+ /* DNS lookup */
+ hquery->remaining_lookups = p + 1;
+ if ((hquery->want_family == AF_INET6) ||
+ (hquery->want_family == AF_UNSPEC)) {
+ /* if inet6 or unspec, start out with AAAA */
+ hquery->sent_family = AF_INET6;
+ ares_search(hquery->channel, hquery->name, C_IN, T_AAAA,
+ host_callback, hquery);
+ }
+ else {
+ hquery->sent_family = AF_INET;
+ ares_search(hquery->channel, hquery->name, C_IN, T_A,
+ host_callback, hquery);
+ }
+ return;
+
+ case 'f':
+ /* Host file lookup */
+ status = file_lookup(hquery->name, hquery->want_family, &host);
+
+ /* this status check below previously checked for !ARES_ENOTFOUND,
+ but we should not assume that this single error code is the one
+ that can occur, as that is in fact no longer the case */
+ if (status == ARES_SUCCESS)
+ {
+ end_hquery(hquery, status, host);
+ return;
+ }
+ status = status_code; /* Use original status code */
+ break;
+ }
+ }
+ end_hquery(hquery, status, NULL);
+}
+
+static void host_callback(void *arg, int status, int timeouts,
+ unsigned char *abuf, int alen)
+{
+ struct host_query *hquery = (struct host_query *) arg;
+ ares_channel channel = hquery->channel;
+ struct hostent *host = NULL;
+
+ hquery->timeouts += timeouts;
+ if (status == ARES_SUCCESS)
+ {
+ if (hquery->sent_family == AF_INET)
+ {
+ status = ares_parse_a_reply(abuf, alen, &host, NULL, NULL);
+ if (host && channel->nsort)
+ sort_addresses(host, channel->sortlist, channel->nsort);
+ }
+ else if (hquery->sent_family == AF_INET6)
+ {
+ status = ares_parse_aaaa_reply(abuf, alen, &host, NULL, NULL);
if ((status == ARES_ENODATA || status == ARES_EBADRESP ||
(status == ARES_SUCCESS && host && host->h_addr_list[0] == NULL)) &&
hquery->want_family == AF_UNSPEC) {
- /* The query returned something but either there were no AAAA
- records (e.g. just CNAME) or the response was malformed. Try
- looking up A instead. */
+ /* The query returned something but either there were no AAAA
+ records (e.g. just CNAME) or the response was malformed. Try
+ looking up A instead. */
if (host)
ares_free_hostent(host);
- hquery->sent_family = AF_INET;
- ares_search(hquery->channel, hquery->name, C_IN, T_A,
- host_callback, hquery);
- return;
- }
- if (host && channel->nsort)
- sort6_addresses(host, channel->sortlist, channel->nsort);
- }
+ hquery->sent_family = AF_INET;
+ ares_search(hquery->channel, hquery->name, C_IN, T_A,
+ host_callback, hquery);
+ return;
+ }
+ if (host && channel->nsort)
+ sort6_addresses(host, channel->sortlist, channel->nsort);
+ }
if (status == ARES_SUCCESS && host && host->h_addr_list[0] == NULL)
{
/* The query returned something but had no A/AAAA record
@@ -218,320 +218,320 @@ static void host_callback(void *arg, int status, int timeouts,
so we should treat this as an error */
status = ARES_ENODATA;
}
- end_hquery(hquery, status, host);
- }
- else if ((status == ARES_ENODATA || status == ARES_EBADRESP ||
- status == ARES_ETIMEOUT) && (hquery->sent_family == AF_INET6 &&
- hquery->want_family == AF_UNSPEC))
- {
- /* The AAAA query yielded no useful result. Now look up an A instead. */
- hquery->sent_family = AF_INET;
- ares_search(hquery->channel, hquery->name, C_IN, T_A, host_callback,
- hquery);
- }
- else if (status == ARES_EDESTRUCTION)
- end_hquery(hquery, status, NULL);
- else
- next_lookup(hquery, status);
-}
-
-static void end_hquery(struct host_query *hquery, int status,
- struct hostent *host)
-{
- hquery->callback(hquery->arg, status, hquery->timeouts, host);
- if (host)
- ares_free_hostent(host);
+ end_hquery(hquery, status, host);
+ }
+ else if ((status == ARES_ENODATA || status == ARES_EBADRESP ||
+ status == ARES_ETIMEOUT) && (hquery->sent_family == AF_INET6 &&
+ hquery->want_family == AF_UNSPEC))
+ {
+ /* The AAAA query yielded no useful result. Now look up an A instead. */
+ hquery->sent_family = AF_INET;
+ ares_search(hquery->channel, hquery->name, C_IN, T_A, host_callback,
+ hquery);
+ }
+ else if (status == ARES_EDESTRUCTION)
+ end_hquery(hquery, status, NULL);
+ else
+ next_lookup(hquery, status);
+}
+
+static void end_hquery(struct host_query *hquery, int status,
+ struct hostent *host)
+{
+ hquery->callback(hquery->arg, status, hquery->timeouts, host);
+ if (host)
+ ares_free_hostent(host);
ares_free(hquery->name);
ares_free(hquery);
-}
-
-/* If the name looks like an IP address, fake up a host entry, end the
- * query immediately, and return true. Otherwise return false.
- */
-static int fake_hostent(const char *name, int family,
- ares_host_callback callback, void *arg)
-{
- struct hostent hostent;
- char *aliases[1] = { NULL };
- char *addrs[2];
- int result = 0;
- struct in_addr in;
- struct ares_in6_addr in6;
-
- if (family == AF_INET || family == AF_INET6)
- {
- /* It only looks like an IP address if it's all numbers and dots. */
- int numdots = 0, valid = 1;
- const char *p;
- for (p = name; *p; p++)
- {
- if (!ISDIGIT(*p) && *p != '.') {
- valid = 0;
- break;
- } else if (*p == '.') {
- numdots++;
- }
- }
-
- /* if we don't have 3 dots, it is illegal
+}
+
+/* If the name looks like an IP address, fake up a host entry, end the
+ * query immediately, and return true. Otherwise return false.
+ */
+static int fake_hostent(const char *name, int family,
+ ares_host_callback callback, void *arg)
+{
+ struct hostent hostent;
+ char *aliases[1] = { NULL };
+ char *addrs[2];
+ int result = 0;
+ struct in_addr in;
+ struct ares_in6_addr in6;
+
+ if (family == AF_INET || family == AF_INET6)
+ {
+ /* It only looks like an IP address if it's all numbers and dots. */
+ int numdots = 0, valid = 1;
+ const char *p;
+ for (p = name; *p; p++)
+ {
+ if (!ISDIGIT(*p) && *p != '.') {
+ valid = 0;
+ break;
+ } else if (*p == '.') {
+ numdots++;
+ }
+ }
+
+ /* if we don't have 3 dots, it is illegal
* (although inet_pton doesn't think so).
- */
- if (numdots != 3 || !valid)
- result = 0;
- else
+ */
+ if (numdots != 3 || !valid)
+ result = 0;
+ else
result = (ares_inet_pton(AF_INET, name, &in) < 1 ? 0 : 1);
-
- if (result)
- family = AF_INET;
- }
- if (family == AF_INET6)
- result = (ares_inet_pton(AF_INET6, name, &in6) < 1 ? 0 : 1);
-
- if (!result)
- return 0;
-
- if (family == AF_INET)
- {
- hostent.h_length = (int)sizeof(struct in_addr);
- addrs[0] = (char *)&in;
- }
- else if (family == AF_INET6)
- {
- hostent.h_length = (int)sizeof(struct ares_in6_addr);
- addrs[0] = (char *)&in6;
- }
- /* Duplicate the name, to avoid a constness violation. */
+
+ if (result)
+ family = AF_INET;
+ }
+ if (family == AF_INET6)
+ result = (ares_inet_pton(AF_INET6, name, &in6) < 1 ? 0 : 1);
+
+ if (!result)
+ return 0;
+
+ if (family == AF_INET)
+ {
+ hostent.h_length = (int)sizeof(struct in_addr);
+ addrs[0] = (char *)&in;
+ }
+ else if (family == AF_INET6)
+ {
+ hostent.h_length = (int)sizeof(struct ares_in6_addr);
+ addrs[0] = (char *)&in6;
+ }
+ /* Duplicate the name, to avoid a constness violation. */
hostent.h_name = ares_strdup(name);
- if (!hostent.h_name)
- {
- callback(arg, ARES_ENOMEM, 0, NULL);
- return 1;
- }
-
- /* Fill in the rest of the host structure and terminate the query. */
- addrs[1] = NULL;
- hostent.h_aliases = aliases;
- hostent.h_addrtype = aresx_sitoss(family);
- hostent.h_addr_list = addrs;
- callback(arg, ARES_SUCCESS, 0, &hostent);
-
+ if (!hostent.h_name)
+ {
+ callback(arg, ARES_ENOMEM, 0, NULL);
+ return 1;
+ }
+
+ /* Fill in the rest of the host structure and terminate the query. */
+ addrs[1] = NULL;
+ hostent.h_aliases = aliases;
+ hostent.h_addrtype = aresx_sitoss(family);
+ hostent.h_addr_list = addrs;
+ callback(arg, ARES_SUCCESS, 0, &hostent);
+
ares_free((char *)(hostent.h_name));
- return 1;
-}
-
-/* This is an API method */
-int ares_gethostbyname_file(ares_channel channel, const char *name,
- int family, struct hostent **host)
-{
- int result;
-
- /* We only take the channel to ensure that ares_init() been called. */
- if(channel == NULL)
- {
- /* Anything will do, really. This seems fine, and is consistent with
- other error cases. */
- *host = NULL;
- return ARES_ENOTFOUND;
- }
-
- /* Just chain to the internal implementation we use here; it's exactly
- * what we want.
- */
- result = file_lookup(name, family, host);
- if(result != ARES_SUCCESS)
- {
- /* We guarantee a NULL hostent on failure. */
- *host = NULL;
- }
- return result;
-}
-
-static int file_lookup(const char *name, int family, struct hostent **host)
-{
- FILE *fp;
- char **alias;
- int status;
- int error;
-
-#ifdef WIN32
- char PATH_HOSTS[MAX_PATH];
- win_platform platform;
-
- PATH_HOSTS[0] = '\0';
-
- platform = ares__getplatform();
-
- if (platform == WIN_NT) {
- char tmp[MAX_PATH];
- HKEY hkeyHosts;
-
+ return 1;
+}
+
+/* This is an API method */
+int ares_gethostbyname_file(ares_channel channel, const char *name,
+ int family, struct hostent **host)
+{
+ int result;
+
+ /* We only take the channel to ensure that ares_init() been called. */
+ if(channel == NULL)
+ {
+ /* Anything will do, really. This seems fine, and is consistent with
+ other error cases. */
+ *host = NULL;
+ return ARES_ENOTFOUND;
+ }
+
+ /* Just chain to the internal implementation we use here; it's exactly
+ * what we want.
+ */
+ result = file_lookup(name, family, host);
+ if(result != ARES_SUCCESS)
+ {
+ /* We guarantee a NULL hostent on failure. */
+ *host = NULL;
+ }
+ return result;
+}
+
+static int file_lookup(const char *name, int family, struct hostent **host)
+{
+ FILE *fp;
+ char **alias;
+ int status;
+ int error;
+
+#ifdef WIN32
+ char PATH_HOSTS[MAX_PATH];
+ win_platform platform;
+
+ PATH_HOSTS[0] = '\0';
+
+ platform = ares__getplatform();
+
+ if (platform == WIN_NT) {
+ char tmp[MAX_PATH];
+ HKEY hkeyHosts;
+
if (RegOpenKeyExA(HKEY_LOCAL_MACHINE, WIN_NS_NT_KEY, 0, KEY_READ,
- &hkeyHosts) == ERROR_SUCCESS)
- {
- DWORD dwLength = MAX_PATH;
+ &hkeyHosts) == ERROR_SUCCESS)
+ {
+ DWORD dwLength = MAX_PATH;
RegQueryValueExA(hkeyHosts, DATABASEPATH, NULL, NULL, (LPBYTE)tmp,
- &dwLength);
+ &dwLength);
ExpandEnvironmentStringsA(tmp, PATH_HOSTS, MAX_PATH);
- RegCloseKey(hkeyHosts);
- }
- }
- else if (platform == WIN_9X)
+ RegCloseKey(hkeyHosts);
+ }
+ }
+ else if (platform == WIN_9X)
GetWindowsDirectoryA(PATH_HOSTS, MAX_PATH);
- else
- return ARES_ENOTFOUND;
-
- strcat(PATH_HOSTS, WIN_PATH_HOSTS);
-
-#elif defined(WATT32)
- extern const char *_w32_GetHostsFile (void);
- const char *PATH_HOSTS = _w32_GetHostsFile();
-
- if (!PATH_HOSTS)
- return ARES_ENOTFOUND;
-#endif
-
+ else
+ return ARES_ENOTFOUND;
+
+ strcat(PATH_HOSTS, WIN_PATH_HOSTS);
+
+#elif defined(WATT32)
+ extern const char *_w32_GetHostsFile (void);
+ const char *PATH_HOSTS = _w32_GetHostsFile();
+
+ if (!PATH_HOSTS)
+ return ARES_ENOTFOUND;
+#endif
+
/* Per RFC 7686, reject queries for ".onion" domain names with NXDOMAIN. */
if (ares__is_onion_domain(name))
return ARES_ENOTFOUND;
- fp = fopen(PATH_HOSTS, "r");
- if (!fp)
- {
- error = ERRNO;
- switch(error)
- {
- case ENOENT:
- case ESRCH:
- return ARES_ENOTFOUND;
- default:
- DEBUGF(fprintf(stderr, "fopen() failed with error: %d %s\n",
- error, strerror(error)));
- DEBUGF(fprintf(stderr, "Error opening file: %s\n",
- PATH_HOSTS));
- *host = NULL;
- return ARES_EFILE;
- }
- }
- while ((status = ares__get_hostent(fp, family, host)) == ARES_SUCCESS)
- {
- if (strcasecmp((*host)->h_name, name) == 0)
- break;
- for (alias = (*host)->h_aliases; *alias; alias++)
- {
- if (strcasecmp(*alias, name) == 0)
- break;
- }
- if (*alias)
- break;
- ares_free_hostent(*host);
- }
- fclose(fp);
- if (status == ARES_EOF)
- status = ARES_ENOTFOUND;
- if (status != ARES_SUCCESS)
- *host = NULL;
- return status;
-}
-
-static void sort_addresses(struct hostent *host,
- const struct apattern *sortlist, int nsort)
-{
- struct in_addr a1, a2;
- int i1, i2, ind1, ind2;
-
- /* This is a simple insertion sort, not optimized at all. i1 walks
- * through the address list, with the loop invariant that everything
- * to the left of i1 is sorted. In the loop body, the value at i1 is moved
- * back through the list (via i2) until it is in sorted order.
- */
- for (i1 = 0; host->h_addr_list[i1]; i1++)
- {
- memcpy(&a1, host->h_addr_list[i1], sizeof(struct in_addr));
- ind1 = get_address_index(&a1, sortlist, nsort);
- for (i2 = i1 - 1; i2 >= 0; i2--)
- {
- memcpy(&a2, host->h_addr_list[i2], sizeof(struct in_addr));
- ind2 = get_address_index(&a2, sortlist, nsort);
- if (ind2 <= ind1)
- break;
- memcpy(host->h_addr_list[i2 + 1], &a2, sizeof(struct in_addr));
- }
- memcpy(host->h_addr_list[i2 + 1], &a1, sizeof(struct in_addr));
- }
-}
-
-/* Find the first entry in sortlist which matches addr. Return nsort
- * if none of them match.
- */
-static int get_address_index(const struct in_addr *addr,
- const struct apattern *sortlist,
- int nsort)
-{
- int i;
-
- for (i = 0; i < nsort; i++)
- {
- if (sortlist[i].family != AF_INET)
- continue;
- if (sortlist[i].type == PATTERN_MASK)
- {
- if ((addr->s_addr & sortlist[i].mask.addr4.s_addr)
- == sortlist[i].addrV4.s_addr)
- break;
- }
- else
- {
- if (!ares__bitncmp(&addr->s_addr, &sortlist[i].addrV4.s_addr,
- sortlist[i].mask.bits))
- break;
- }
- }
- return i;
-}
-
-static void sort6_addresses(struct hostent *host,
- const struct apattern *sortlist, int nsort)
-{
- struct ares_in6_addr a1, a2;
- int i1, i2, ind1, ind2;
-
- /* This is a simple insertion sort, not optimized at all. i1 walks
- * through the address list, with the loop invariant that everything
- * to the left of i1 is sorted. In the loop body, the value at i1 is moved
- * back through the list (via i2) until it is in sorted order.
- */
- for (i1 = 0; host->h_addr_list[i1]; i1++)
- {
- memcpy(&a1, host->h_addr_list[i1], sizeof(struct ares_in6_addr));
- ind1 = get6_address_index(&a1, sortlist, nsort);
- for (i2 = i1 - 1; i2 >= 0; i2--)
- {
- memcpy(&a2, host->h_addr_list[i2], sizeof(struct ares_in6_addr));
- ind2 = get6_address_index(&a2, sortlist, nsort);
- if (ind2 <= ind1)
- break;
- memcpy(host->h_addr_list[i2 + 1], &a2, sizeof(struct ares_in6_addr));
- }
- memcpy(host->h_addr_list[i2 + 1], &a1, sizeof(struct ares_in6_addr));
- }
-}
-
-/* Find the first entry in sortlist which matches addr. Return nsort
- * if none of them match.
- */
-static int get6_address_index(const struct ares_in6_addr *addr,
- const struct apattern *sortlist,
- int nsort)
-{
- int i;
-
- for (i = 0; i < nsort; i++)
- {
- if (sortlist[i].family != AF_INET6)
- continue;
- if (!ares__bitncmp(addr, &sortlist[i].addrV6, sortlist[i].mask.bits))
- break;
- }
- return i;
-}
+ fp = fopen(PATH_HOSTS, "r");
+ if (!fp)
+ {
+ error = ERRNO;
+ switch(error)
+ {
+ case ENOENT:
+ case ESRCH:
+ return ARES_ENOTFOUND;
+ default:
+ DEBUGF(fprintf(stderr, "fopen() failed with error: %d %s\n",
+ error, strerror(error)));
+ DEBUGF(fprintf(stderr, "Error opening file: %s\n",
+ PATH_HOSTS));
+ *host = NULL;
+ return ARES_EFILE;
+ }
+ }
+ while ((status = ares__get_hostent(fp, family, host)) == ARES_SUCCESS)
+ {
+ if (strcasecmp((*host)->h_name, name) == 0)
+ break;
+ for (alias = (*host)->h_aliases; *alias; alias++)
+ {
+ if (strcasecmp(*alias, name) == 0)
+ break;
+ }
+ if (*alias)
+ break;
+ ares_free_hostent(*host);
+ }
+ fclose(fp);
+ if (status == ARES_EOF)
+ status = ARES_ENOTFOUND;
+ if (status != ARES_SUCCESS)
+ *host = NULL;
+ return status;
+}
+
+static void sort_addresses(struct hostent *host,
+ const struct apattern *sortlist, int nsort)
+{
+ struct in_addr a1, a2;
+ int i1, i2, ind1, ind2;
+
+ /* This is a simple insertion sort, not optimized at all. i1 walks
+ * through the address list, with the loop invariant that everything
+ * to the left of i1 is sorted. In the loop body, the value at i1 is moved
+ * back through the list (via i2) until it is in sorted order.
+ */
+ for (i1 = 0; host->h_addr_list[i1]; i1++)
+ {
+ memcpy(&a1, host->h_addr_list[i1], sizeof(struct in_addr));
+ ind1 = get_address_index(&a1, sortlist, nsort);
+ for (i2 = i1 - 1; i2 >= 0; i2--)
+ {
+ memcpy(&a2, host->h_addr_list[i2], sizeof(struct in_addr));
+ ind2 = get_address_index(&a2, sortlist, nsort);
+ if (ind2 <= ind1)
+ break;
+ memcpy(host->h_addr_list[i2 + 1], &a2, sizeof(struct in_addr));
+ }
+ memcpy(host->h_addr_list[i2 + 1], &a1, sizeof(struct in_addr));
+ }
+}
+
+/* Find the first entry in sortlist which matches addr. Return nsort
+ * if none of them match.
+ */
+static int get_address_index(const struct in_addr *addr,
+ const struct apattern *sortlist,
+ int nsort)
+{
+ int i;
+
+ for (i = 0; i < nsort; i++)
+ {
+ if (sortlist[i].family != AF_INET)
+ continue;
+ if (sortlist[i].type == PATTERN_MASK)
+ {
+ if ((addr->s_addr & sortlist[i].mask.addr4.s_addr)
+ == sortlist[i].addrV4.s_addr)
+ break;
+ }
+ else
+ {
+ if (!ares__bitncmp(&addr->s_addr, &sortlist[i].addrV4.s_addr,
+ sortlist[i].mask.bits))
+ break;
+ }
+ }
+ return i;
+}
+
+static void sort6_addresses(struct hostent *host,
+ const struct apattern *sortlist, int nsort)
+{
+ struct ares_in6_addr a1, a2;
+ int i1, i2, ind1, ind2;
+
+ /* This is a simple insertion sort, not optimized at all. i1 walks
+ * through the address list, with the loop invariant that everything
+ * to the left of i1 is sorted. In the loop body, the value at i1 is moved
+ * back through the list (via i2) until it is in sorted order.
+ */
+ for (i1 = 0; host->h_addr_list[i1]; i1++)
+ {
+ memcpy(&a1, host->h_addr_list[i1], sizeof(struct ares_in6_addr));
+ ind1 = get6_address_index(&a1, sortlist, nsort);
+ for (i2 = i1 - 1; i2 >= 0; i2--)
+ {
+ memcpy(&a2, host->h_addr_list[i2], sizeof(struct ares_in6_addr));
+ ind2 = get6_address_index(&a2, sortlist, nsort);
+ if (ind2 <= ind1)
+ break;
+ memcpy(host->h_addr_list[i2 + 1], &a2, sizeof(struct ares_in6_addr));
+ }
+ memcpy(host->h_addr_list[i2 + 1], &a1, sizeof(struct ares_in6_addr));
+ }
+}
+
+/* Find the first entry in sortlist which matches addr. Return nsort
+ * if none of them match.
+ */
+static int get6_address_index(const struct ares_in6_addr *addr,
+ const struct apattern *sortlist,
+ int nsort)
+{
+ int i;
+
+ for (i = 0; i < nsort; i++)
+ {
+ if (sortlist[i].family != AF_INET6)
+ continue;
+ if (!ares__bitncmp(addr, &sortlist[i].addrV6, sortlist[i].mask.bits))
+ break;
+ }
+ return i;
+}
diff --git a/contrib/libs/c-ares/ares_getnameinfo.c b/contrib/libs/c-ares/ares_getnameinfo.c
index 0bfc6f1ddf..53f91ca845 100644
--- a/contrib/libs/c-ares/ares_getnameinfo.c
+++ b/contrib/libs/c-ares/ares_getnameinfo.c
@@ -1,336 +1,336 @@
-
-/* Copyright 2005 by Dominick Meglio
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-#include "ares_setup.h"
-
-#ifdef HAVE_GETSERVBYPORT_R
-# if !defined(GETSERVBYPORT_R_ARGS) || \
- (GETSERVBYPORT_R_ARGS < 4) || (GETSERVBYPORT_R_ARGS > 6)
-# error "you MUST specifiy a valid number of arguments for getservbyport_r"
-# endif
-#endif
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_NETDB_H
-# include <netdb.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-# include <arpa/inet.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-# include <arpa/nameser_compat.h>
-#endif
-
-#ifdef HAVE_NET_IF_H
-#include <net/if.h>
-#endif
-
-#include "ares.h"
-#include "ares_ipv6.h"
-#include "ares_nowarn.h"
-#include "ares_private.h"
-
-struct nameinfo_query {
- ares_nameinfo_callback callback;
- void *arg;
- union {
- struct sockaddr_in addr4;
- struct sockaddr_in6 addr6;
- } addr;
- int family;
- int flags;
- int timeouts;
-};
-
-#ifdef HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
-#define IPBUFSIZ \
- (sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255") + IF_NAMESIZE)
-#else
-#define IPBUFSIZ \
- (sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"))
-#endif
-
-static void nameinfo_callback(void *arg, int status, int timeouts,
- struct hostent *host);
-static char *lookup_service(unsigned short port, int flags,
- char *buf, size_t buflen);
-#ifdef HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
-static void append_scopeid(struct sockaddr_in6 *addr6, unsigned int scopeid,
- char *buf, size_t buflen);
-#endif
+
+/* Copyright 2005 by Dominick Meglio
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+#include "ares_setup.h"
+
+#ifdef HAVE_GETSERVBYPORT_R
+# if !defined(GETSERVBYPORT_R_ARGS) || \
+ (GETSERVBYPORT_R_ARGS < 4) || (GETSERVBYPORT_R_ARGS > 6)
+# error "you MUST specifiy a valid number of arguments for getservbyport_r"
+# endif
+#endif
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_NETDB_H
+# include <netdb.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
+# include <arpa/nameser_compat.h>
+#endif
+
+#ifdef HAVE_NET_IF_H
+#include <net/if.h>
+#endif
+
+#include "ares.h"
+#include "ares_ipv6.h"
+#include "ares_nowarn.h"
+#include "ares_private.h"
+
+struct nameinfo_query {
+ ares_nameinfo_callback callback;
+ void *arg;
+ union {
+ struct sockaddr_in addr4;
+ struct sockaddr_in6 addr6;
+ } addr;
+ int family;
+ int flags;
+ int timeouts;
+};
+
+#ifdef HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
+#define IPBUFSIZ \
+ (sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255") + IF_NAMESIZE)
+#else
+#define IPBUFSIZ \
+ (sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"))
+#endif
+
+static void nameinfo_callback(void *arg, int status, int timeouts,
+ struct hostent *host);
+static char *lookup_service(unsigned short port, int flags,
+ char *buf, size_t buflen);
+#ifdef HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
+static void append_scopeid(struct sockaddr_in6 *addr6, unsigned int scopeid,
+ char *buf, size_t buflen);
+#endif
STATIC_TESTABLE char *ares_striendstr(const char *s1, const char *s2);
-
-void ares_getnameinfo(ares_channel channel, const struct sockaddr *sa,
- ares_socklen_t salen,
- int flags, ares_nameinfo_callback callback, void *arg)
-{
- struct sockaddr_in *addr = NULL;
- struct sockaddr_in6 *addr6 = NULL;
- struct nameinfo_query *niquery;
- unsigned int port = 0;
-
- /* Validate socket address family and length */
- if ((sa->sa_family == AF_INET) &&
- (salen == sizeof(struct sockaddr_in)))
- {
+
+void ares_getnameinfo(ares_channel channel, const struct sockaddr *sa,
+ ares_socklen_t salen,
+ int flags, ares_nameinfo_callback callback, void *arg)
+{
+ struct sockaddr_in *addr = NULL;
+ struct sockaddr_in6 *addr6 = NULL;
+ struct nameinfo_query *niquery;
+ unsigned int port = 0;
+
+ /* Validate socket address family and length */
+ if ((sa->sa_family == AF_INET) &&
+ (salen == sizeof(struct sockaddr_in)))
+ {
addr = CARES_INADDR_CAST(struct sockaddr_in *, sa);
- port = addr->sin_port;
- }
- else if ((sa->sa_family == AF_INET6) &&
- (salen == sizeof(struct sockaddr_in6)))
- {
+ port = addr->sin_port;
+ }
+ else if ((sa->sa_family == AF_INET6) &&
+ (salen == sizeof(struct sockaddr_in6)))
+ {
addr6 = CARES_INADDR_CAST(struct sockaddr_in6 *, sa);
- port = addr6->sin6_port;
- }
- else
- {
- callback(arg, ARES_ENOTIMP, 0, NULL, NULL);
- return;
- }
-
- /* If neither, assume they want a host */
- if (!(flags & ARES_NI_LOOKUPSERVICE) && !(flags & ARES_NI_LOOKUPHOST))
- flags |= ARES_NI_LOOKUPHOST;
-
- /* All they want is a service, no need for DNS */
- if ((flags & ARES_NI_LOOKUPSERVICE) && !(flags & ARES_NI_LOOKUPHOST))
- {
- char buf[33], *service;
-
- service = lookup_service((unsigned short)(port & 0xffff),
- flags, buf, sizeof(buf));
- callback(arg, ARES_SUCCESS, 0, NULL, service);
- return;
- }
-
- /* They want a host lookup */
- if ((flags & ARES_NI_LOOKUPHOST))
- {
- /* A numeric host can be handled without DNS */
- if ((flags & ARES_NI_NUMERICHOST))
- {
- char ipbuf[IPBUFSIZ];
- char srvbuf[33];
- char *service = NULL;
- ipbuf[0] = 0;
-
- /* Specifying not to lookup a host, but then saying a host
- * is required has to be illegal.
- */
- if (flags & ARES_NI_NAMEREQD)
- {
- callback(arg, ARES_EBADFLAGS, 0, NULL, NULL);
- return;
- }
- if (salen == sizeof(struct sockaddr_in6))
- {
- ares_inet_ntop(AF_INET6, &addr6->sin6_addr, ipbuf, IPBUFSIZ);
- /* If the system supports scope IDs, use it */
-#ifdef HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
- append_scopeid(addr6, flags, ipbuf, sizeof(ipbuf));
-#endif
- }
- else
- {
- ares_inet_ntop(AF_INET, &addr->sin_addr, ipbuf, IPBUFSIZ);
- }
- /* They also want a service */
- if (flags & ARES_NI_LOOKUPSERVICE)
- service = lookup_service((unsigned short)(port & 0xffff),
- flags, srvbuf, sizeof(srvbuf));
- callback(arg, ARES_SUCCESS, 0, ipbuf, service);
- return;
- }
- /* This is where a DNS lookup becomes necessary */
- else
- {
+ port = addr6->sin6_port;
+ }
+ else
+ {
+ callback(arg, ARES_ENOTIMP, 0, NULL, NULL);
+ return;
+ }
+
+ /* If neither, assume they want a host */
+ if (!(flags & ARES_NI_LOOKUPSERVICE) && !(flags & ARES_NI_LOOKUPHOST))
+ flags |= ARES_NI_LOOKUPHOST;
+
+ /* All they want is a service, no need for DNS */
+ if ((flags & ARES_NI_LOOKUPSERVICE) && !(flags & ARES_NI_LOOKUPHOST))
+ {
+ char buf[33], *service;
+
+ service = lookup_service((unsigned short)(port & 0xffff),
+ flags, buf, sizeof(buf));
+ callback(arg, ARES_SUCCESS, 0, NULL, service);
+ return;
+ }
+
+ /* They want a host lookup */
+ if ((flags & ARES_NI_LOOKUPHOST))
+ {
+ /* A numeric host can be handled without DNS */
+ if ((flags & ARES_NI_NUMERICHOST))
+ {
+ char ipbuf[IPBUFSIZ];
+ char srvbuf[33];
+ char *service = NULL;
+ ipbuf[0] = 0;
+
+ /* Specifying not to lookup a host, but then saying a host
+ * is required has to be illegal.
+ */
+ if (flags & ARES_NI_NAMEREQD)
+ {
+ callback(arg, ARES_EBADFLAGS, 0, NULL, NULL);
+ return;
+ }
+ if (salen == sizeof(struct sockaddr_in6))
+ {
+ ares_inet_ntop(AF_INET6, &addr6->sin6_addr, ipbuf, IPBUFSIZ);
+ /* If the system supports scope IDs, use it */
+#ifdef HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
+ append_scopeid(addr6, flags, ipbuf, sizeof(ipbuf));
+#endif
+ }
+ else
+ {
+ ares_inet_ntop(AF_INET, &addr->sin_addr, ipbuf, IPBUFSIZ);
+ }
+ /* They also want a service */
+ if (flags & ARES_NI_LOOKUPSERVICE)
+ service = lookup_service((unsigned short)(port & 0xffff),
+ flags, srvbuf, sizeof(srvbuf));
+ callback(arg, ARES_SUCCESS, 0, ipbuf, service);
+ return;
+ }
+ /* This is where a DNS lookup becomes necessary */
+ else
+ {
niquery = ares_malloc(sizeof(struct nameinfo_query));
- if (!niquery)
- {
- callback(arg, ARES_ENOMEM, 0, NULL, NULL);
- return;
- }
- niquery->callback = callback;
- niquery->arg = arg;
- niquery->flags = flags;
- niquery->timeouts = 0;
- if (sa->sa_family == AF_INET)
- {
- niquery->family = AF_INET;
- memcpy(&niquery->addr.addr4, addr, sizeof(niquery->addr.addr4));
- ares_gethostbyaddr(channel, &addr->sin_addr,
- sizeof(struct in_addr), AF_INET,
- nameinfo_callback, niquery);
- }
- else
- {
- niquery->family = AF_INET6;
- memcpy(&niquery->addr.addr6, addr6, sizeof(niquery->addr.addr6));
- ares_gethostbyaddr(channel, &addr6->sin6_addr,
- sizeof(struct ares_in6_addr), AF_INET6,
- nameinfo_callback, niquery);
- }
- }
- }
-}
-
-static void nameinfo_callback(void *arg, int status, int timeouts,
- struct hostent *host)
-{
- struct nameinfo_query *niquery = (struct nameinfo_query *) arg;
- char srvbuf[33];
- char *service = NULL;
-
- niquery->timeouts += timeouts;
- if (status == ARES_SUCCESS)
- {
- /* They want a service too */
- if (niquery->flags & ARES_NI_LOOKUPSERVICE)
- {
- if (niquery->family == AF_INET)
- service = lookup_service(niquery->addr.addr4.sin_port,
- niquery->flags, srvbuf, sizeof(srvbuf));
- else
- service = lookup_service(niquery->addr.addr6.sin6_port,
- niquery->flags, srvbuf, sizeof(srvbuf));
- }
- /* NOFQDN means we have to strip off the domain name portion. We do
- this by determining our own domain name, then searching the string
- for this domain name and removing it.
- */
-#ifdef HAVE_GETHOSTNAME
- if (niquery->flags & ARES_NI_NOFQDN)
- {
- char buf[255];
- char *domain;
- gethostname(buf, 255);
- if ((domain = strchr(buf, '.')) != NULL)
- {
- char *end = ares_striendstr(host->h_name, domain);
- if (end)
- *end = 0;
- }
- }
-#endif
- niquery->callback(niquery->arg, ARES_SUCCESS, niquery->timeouts,
- (char *)(host->h_name),
- service);
+ if (!niquery)
+ {
+ callback(arg, ARES_ENOMEM, 0, NULL, NULL);
+ return;
+ }
+ niquery->callback = callback;
+ niquery->arg = arg;
+ niquery->flags = flags;
+ niquery->timeouts = 0;
+ if (sa->sa_family == AF_INET)
+ {
+ niquery->family = AF_INET;
+ memcpy(&niquery->addr.addr4, addr, sizeof(niquery->addr.addr4));
+ ares_gethostbyaddr(channel, &addr->sin_addr,
+ sizeof(struct in_addr), AF_INET,
+ nameinfo_callback, niquery);
+ }
+ else
+ {
+ niquery->family = AF_INET6;
+ memcpy(&niquery->addr.addr6, addr6, sizeof(niquery->addr.addr6));
+ ares_gethostbyaddr(channel, &addr6->sin6_addr,
+ sizeof(struct ares_in6_addr), AF_INET6,
+ nameinfo_callback, niquery);
+ }
+ }
+ }
+}
+
+static void nameinfo_callback(void *arg, int status, int timeouts,
+ struct hostent *host)
+{
+ struct nameinfo_query *niquery = (struct nameinfo_query *) arg;
+ char srvbuf[33];
+ char *service = NULL;
+
+ niquery->timeouts += timeouts;
+ if (status == ARES_SUCCESS)
+ {
+ /* They want a service too */
+ if (niquery->flags & ARES_NI_LOOKUPSERVICE)
+ {
+ if (niquery->family == AF_INET)
+ service = lookup_service(niquery->addr.addr4.sin_port,
+ niquery->flags, srvbuf, sizeof(srvbuf));
+ else
+ service = lookup_service(niquery->addr.addr6.sin6_port,
+ niquery->flags, srvbuf, sizeof(srvbuf));
+ }
+ /* NOFQDN means we have to strip off the domain name portion. We do
+ this by determining our own domain name, then searching the string
+ for this domain name and removing it.
+ */
+#ifdef HAVE_GETHOSTNAME
+ if (niquery->flags & ARES_NI_NOFQDN)
+ {
+ char buf[255];
+ char *domain;
+ gethostname(buf, 255);
+ if ((domain = strchr(buf, '.')) != NULL)
+ {
+ char *end = ares_striendstr(host->h_name, domain);
+ if (end)
+ *end = 0;
+ }
+ }
+#endif
+ niquery->callback(niquery->arg, ARES_SUCCESS, niquery->timeouts,
+ (char *)(host->h_name),
+ service);
ares_free(niquery);
- return;
- }
- /* We couldn't find the host, but it's OK, we can use the IP */
- else if (status == ARES_ENOTFOUND && !(niquery->flags & ARES_NI_NAMEREQD))
- {
- char ipbuf[IPBUFSIZ];
- if (niquery->family == AF_INET)
- ares_inet_ntop(AF_INET, &niquery->addr.addr4.sin_addr, ipbuf,
- IPBUFSIZ);
- else
- {
- ares_inet_ntop(AF_INET6, &niquery->addr.addr6.sin6_addr, ipbuf,
- IPBUFSIZ);
-#ifdef HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
- append_scopeid(&niquery->addr.addr6, niquery->flags, ipbuf,
- sizeof(ipbuf));
-#endif
- }
- /* They want a service too */
- if (niquery->flags & ARES_NI_LOOKUPSERVICE)
- {
- if (niquery->family == AF_INET)
- service = lookup_service(niquery->addr.addr4.sin_port,
- niquery->flags, srvbuf, sizeof(srvbuf));
- else
- service = lookup_service(niquery->addr.addr6.sin6_port,
- niquery->flags, srvbuf, sizeof(srvbuf));
- }
- niquery->callback(niquery->arg, ARES_SUCCESS, niquery->timeouts, ipbuf,
- service);
+ return;
+ }
+ /* We couldn't find the host, but it's OK, we can use the IP */
+ else if (status == ARES_ENOTFOUND && !(niquery->flags & ARES_NI_NAMEREQD))
+ {
+ char ipbuf[IPBUFSIZ];
+ if (niquery->family == AF_INET)
+ ares_inet_ntop(AF_INET, &niquery->addr.addr4.sin_addr, ipbuf,
+ IPBUFSIZ);
+ else
+ {
+ ares_inet_ntop(AF_INET6, &niquery->addr.addr6.sin6_addr, ipbuf,
+ IPBUFSIZ);
+#ifdef HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
+ append_scopeid(&niquery->addr.addr6, niquery->flags, ipbuf,
+ sizeof(ipbuf));
+#endif
+ }
+ /* They want a service too */
+ if (niquery->flags & ARES_NI_LOOKUPSERVICE)
+ {
+ if (niquery->family == AF_INET)
+ service = lookup_service(niquery->addr.addr4.sin_port,
+ niquery->flags, srvbuf, sizeof(srvbuf));
+ else
+ service = lookup_service(niquery->addr.addr6.sin6_port,
+ niquery->flags, srvbuf, sizeof(srvbuf));
+ }
+ niquery->callback(niquery->arg, ARES_SUCCESS, niquery->timeouts, ipbuf,
+ service);
ares_free(niquery);
- return;
- }
- niquery->callback(niquery->arg, status, niquery->timeouts, NULL, NULL);
+ return;
+ }
+ niquery->callback(niquery->arg, status, niquery->timeouts, NULL, NULL);
ares_free(niquery);
-}
-
-static char *lookup_service(unsigned short port, int flags,
- char *buf, size_t buflen)
-{
- const char *proto;
- struct servent *sep;
-#ifdef HAVE_GETSERVBYPORT_R
- struct servent se;
-#endif
- char tmpbuf[4096];
+}
+
+static char *lookup_service(unsigned short port, int flags,
+ char *buf, size_t buflen)
+{
+ const char *proto;
+ struct servent *sep;
+#ifdef HAVE_GETSERVBYPORT_R
+ struct servent se;
+#endif
+ char tmpbuf[4096];
char *name;
size_t name_len;
-
- if (port)
- {
- if (flags & ARES_NI_NUMERICSERV)
- sep = NULL;
- else
- {
- if (flags & ARES_NI_UDP)
- proto = "udp";
- else if (flags & ARES_NI_SCTP)
- proto = "sctp";
- else if (flags & ARES_NI_DCCP)
- proto = "dccp";
- else
- proto = "tcp";
-#ifdef HAVE_GETSERVBYPORT_R
+
+ if (port)
+ {
+ if (flags & ARES_NI_NUMERICSERV)
+ sep = NULL;
+ else
+ {
+ if (flags & ARES_NI_UDP)
+ proto = "udp";
+ else if (flags & ARES_NI_SCTP)
+ proto = "sctp";
+ else if (flags & ARES_NI_DCCP)
+ proto = "dccp";
+ else
+ proto = "tcp";
+#ifdef HAVE_GETSERVBYPORT_R
memset(&se, 0, sizeof(se));
- sep = &se;
- memset(tmpbuf, 0, sizeof(tmpbuf));
-#if GETSERVBYPORT_R_ARGS == 6
- if (getservbyport_r(port, proto, &se, (void *)tmpbuf,
- sizeof(tmpbuf), &sep) != 0)
+ sep = &se;
+ memset(tmpbuf, 0, sizeof(tmpbuf));
+#if GETSERVBYPORT_R_ARGS == 6
+ if (getservbyport_r(port, proto, &se, (void *)tmpbuf,
+ sizeof(tmpbuf), &sep) != 0)
sep = NULL; /* LCOV_EXCL_LINE: buffer large so this never fails */
-#elif GETSERVBYPORT_R_ARGS == 5
- sep = getservbyport_r(port, proto, &se, (void *)tmpbuf,
- sizeof(tmpbuf));
-#elif GETSERVBYPORT_R_ARGS == 4
- if (getservbyport_r(port, proto, &se, (void *)tmpbuf) != 0)
- sep = NULL;
-#else
- /* Lets just hope the OS uses TLS! */
- sep = getservbyport(port, proto);
-#endif
-#else
- /* Lets just hope the OS uses TLS! */
-#if (defined(NETWARE) && !defined(__NOVELL_LIBC__))
- sep = getservbyport(port, (char*)proto);
-#else
- sep = getservbyport(port, proto);
-#endif
-#endif
- }
- if (sep && sep->s_name)
+#elif GETSERVBYPORT_R_ARGS == 5
+ sep = getservbyport_r(port, proto, &se, (void *)tmpbuf,
+ sizeof(tmpbuf));
+#elif GETSERVBYPORT_R_ARGS == 4
+ if (getservbyport_r(port, proto, &se, (void *)tmpbuf) != 0)
+ sep = NULL;
+#else
+ /* Lets just hope the OS uses TLS! */
+ sep = getservbyport(port, proto);
+#endif
+#else
+ /* Lets just hope the OS uses TLS! */
+#if (defined(NETWARE) && !defined(__NOVELL_LIBC__))
+ sep = getservbyport(port, (char*)proto);
+#else
+ sep = getservbyport(port, proto);
+#endif
+#endif
+ }
+ if (sep && sep->s_name)
{
/* get service name */
name = sep->s_name;
}
- else
+ else
{
/* get port as a string */
sprintf(tmpbuf, "%u", (unsigned int)ntohs(port));
@@ -338,36 +338,36 @@ static char *lookup_service(unsigned short port, int flags,
}
name_len = strlen(name);
if (name_len < buflen)
- /* return it if buffer big enough */
+ /* return it if buffer big enough */
memcpy(buf, name, name_len + 1);
- else
- /* avoid reusing previous one */
+ else
+ /* avoid reusing previous one */
buf[0] = '\0'; /* LCOV_EXCL_LINE: no real service names are too big */
- return buf;
- }
- buf[0] = '\0';
- return NULL;
-}
-
-#ifdef HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
-static void append_scopeid(struct sockaddr_in6 *addr6, unsigned int flags,
- char *buf, size_t buflen)
-{
-#ifdef HAVE_IF_INDEXTONAME
- int is_ll, is_mcll;
-#endif
- char tmpbuf[IF_NAMESIZE + 2];
- size_t bufl;
+ return buf;
+ }
+ buf[0] = '\0';
+ return NULL;
+}
+
+#ifdef HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID
+static void append_scopeid(struct sockaddr_in6 *addr6, unsigned int flags,
+ char *buf, size_t buflen)
+{
+#ifdef HAVE_IF_INDEXTONAME
+ int is_ll, is_mcll;
+#endif
+ char tmpbuf[IF_NAMESIZE + 2];
+ size_t bufl;
int is_scope_long = sizeof(addr6->sin6_scope_id) > sizeof(unsigned int);
-
- tmpbuf[0] = '%';
-
-#ifdef HAVE_IF_INDEXTONAME
- is_ll = IN6_IS_ADDR_LINKLOCAL(&addr6->sin6_addr);
- is_mcll = IN6_IS_ADDR_MC_LINKLOCAL(&addr6->sin6_addr);
- if ((flags & ARES_NI_NUMERICSCOPE) ||
- (!is_ll && !is_mcll))
- {
+
+ tmpbuf[0] = '%';
+
+#ifdef HAVE_IF_INDEXTONAME
+ is_ll = IN6_IS_ADDR_LINKLOCAL(&addr6->sin6_addr);
+ is_mcll = IN6_IS_ADDR_MC_LINKLOCAL(&addr6->sin6_addr);
+ if ((flags & ARES_NI_NUMERICSCOPE) ||
+ (!is_ll && !is_mcll))
+ {
if (is_scope_long)
{
sprintf(&tmpbuf[1], "%lu", (unsigned long)addr6->sin6_scope_id);
@@ -376,10 +376,10 @@ static void append_scopeid(struct sockaddr_in6 *addr6, unsigned int flags,
{
sprintf(&tmpbuf[1], "%u", (unsigned int)addr6->sin6_scope_id);
}
- }
- else
- {
- if (if_indextoname(addr6->sin6_scope_id, &tmpbuf[1]) == NULL)
+ }
+ else
+ {
+ if (if_indextoname(addr6->sin6_scope_id, &tmpbuf[1]) == NULL)
{
if (is_scope_long)
{
@@ -390,8 +390,8 @@ static void append_scopeid(struct sockaddr_in6 *addr6, unsigned int flags,
sprintf(&tmpbuf[1], "%u", (unsigned int)addr6->sin6_scope_id);
}
}
- }
-#else
+ }
+#else
if (is_scope_long)
{
sprintf(&tmpbuf[1], "%lu", (unsigned long)addr6->sin6_scope_id);
@@ -400,46 +400,46 @@ static void append_scopeid(struct sockaddr_in6 *addr6, unsigned int flags,
{
sprintf(&tmpbuf[1], "%u", (unsigned int)addr6->sin6_scope_id);
}
- (void) flags;
-#endif
- tmpbuf[IF_NAMESIZE + 1] = '\0';
- bufl = strlen(buf);
-
- if(bufl + strlen(tmpbuf) < buflen)
- /* only append the scopeid string if it fits in the target buffer */
- strcpy(&buf[bufl], tmpbuf);
-}
-#endif
-
-/* Determines if s1 ends with the string in s2 (case-insensitive) */
+ (void) flags;
+#endif
+ tmpbuf[IF_NAMESIZE + 1] = '\0';
+ bufl = strlen(buf);
+
+ if(bufl + strlen(tmpbuf) < buflen)
+ /* only append the scopeid string if it fits in the target buffer */
+ strcpy(&buf[bufl], tmpbuf);
+}
+#endif
+
+/* Determines if s1 ends with the string in s2 (case-insensitive) */
STATIC_TESTABLE char *ares_striendstr(const char *s1, const char *s2)
-{
- const char *c1, *c2, *c1_begin;
- int lo1, lo2;
- size_t s1_len = strlen(s1), s2_len = strlen(s2);
-
- /* If the substr is longer than the full str, it can't match */
- if (s2_len > s1_len)
- return NULL;
-
- /* Jump to the end of s1 minus the length of s2 */
- c1_begin = s1+s1_len-s2_len;
- c1 = (const char *)c1_begin;
- c2 = s2;
- while (c2 < s2+s2_len)
- {
- lo1 = TOLOWER(*c1);
- lo2 = TOLOWER(*c2);
- if (lo1 != lo2)
- return NULL;
- else
- {
- c1++;
- c2++;
- }
- }
+{
+ const char *c1, *c2, *c1_begin;
+ int lo1, lo2;
+ size_t s1_len = strlen(s1), s2_len = strlen(s2);
+
+ /* If the substr is longer than the full str, it can't match */
+ if (s2_len > s1_len)
+ return NULL;
+
+ /* Jump to the end of s1 minus the length of s2 */
+ c1_begin = s1+s1_len-s2_len;
+ c1 = (const char *)c1_begin;
+ c2 = s2;
+ while (c2 < s2+s2_len)
+ {
+ lo1 = TOLOWER(*c1);
+ lo2 = TOLOWER(*c2);
+ if (lo1 != lo2)
+ return NULL;
+ else
+ {
+ c1++;
+ c2++;
+ }
+ }
return (char *)c1_begin;
-}
+}
int ares__is_onion_domain(const char *name)
{
diff --git a/contrib/libs/c-ares/ares_getopt.c b/contrib/libs/c-ares/ares_getopt.c
index 5a85951113..1e02d08686 100644
--- a/contrib/libs/c-ares/ares_getopt.c
+++ b/contrib/libs/c-ares/ares_getopt.c
@@ -1,122 +1,122 @@
-/*
- * Original file name getopt.c Initial import into the c-ares source tree
- * on 2007-04-11. Lifted from version 5.2 of the 'Open Mash' project with
- * the modified BSD license, BSD license without the advertising clause.
- *
- */
-
-/*
- * getopt.c --
- *
- * Standard UNIX getopt function. Code is from BSD.
- *
- * Copyright (c) 1987-2001 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * A. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * B. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * C. Neither the names of the copyright holders nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
- * IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-/* #if !defined(lint)
- * static char sccsid[] = "@(#)getopt.c 8.2 (Berkeley) 4/2/94";
- * #endif
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include "ares_getopt.h"
-
-int opterr = 1, /* if error message should be printed */
- optind = 1; /* index into parent argv vector */
-int optopt = 0; /* character checked for validity */
-static int optreset; /* reset getopt */
-char *optarg; /* argument associated with option */
-
-#define BADCH (int)'?'
-#define BADARG (int)':'
-#define EMSG (char *)""
-
-/*
- * ares_getopt --
- * Parse argc/argv argument vector.
- */
-int
-ares_getopt(int nargc, char * const nargv[], const char *ostr)
-{
- static char *place = EMSG; /* option letter processing */
- char *oli; /* option letter list index */
-
- if (optreset || !*place) { /* update scanning pointer */
- optreset = 0;
- if (optind >= nargc || *(place = nargv[optind]) != '-') {
- place = EMSG;
- return (EOF);
- }
- if (place[1] && *++place == '-') { /* found "--" */
- ++optind;
- place = EMSG;
- return (EOF);
- }
- } /* option letter okay? */
- if ((optopt = (int)*place++) == (int)':' ||
- (oli = strchr(ostr, optopt)) == NULL) {
- /*
- * if the user didn't specify '-' as an option,
- * assume it means EOF.
- */
- if (optopt == (int)'-')
- return (EOF);
- if (!*place)
- ++optind;
- if (opterr && *ostr != ':')
- (void)fprintf(stderr,
- "%s: illegal option -- %c\n", __FILE__, optopt);
- return (BADCH);
- }
- if (*++oli != ':') { /* don't need argument */
- optarg = NULL;
- if (!*place)
- ++optind;
- }
- else { /* need an argument */
- if (*place) /* no white space */
- optarg = place;
- else if (nargc <= ++optind) { /* no arg */
- place = EMSG;
- if (*ostr == ':')
- return (BADARG);
- if (opterr)
- (void)fprintf(stderr,
- "%s: option requires an argument -- %c\n",
- __FILE__, optopt);
- return (BADCH);
- }
- else /* white space */
- optarg = nargv[optind];
- place = EMSG;
- ++optind;
- }
- return (optopt); /* dump back option letter */
-}
+/*
+ * Original file name getopt.c Initial import into the c-ares source tree
+ * on 2007-04-11. Lifted from version 5.2 of the 'Open Mash' project with
+ * the modified BSD license, BSD license without the advertising clause.
+ *
+ */
+
+/*
+ * getopt.c --
+ *
+ * Standard UNIX getopt function. Code is from BSD.
+ *
+ * Copyright (c) 1987-2001 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * A. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * B. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * C. Neither the names of the copyright holders nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ * IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+/* #if !defined(lint)
+ * static char sccsid[] = "@(#)getopt.c 8.2 (Berkeley) 4/2/94";
+ * #endif
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include "ares_getopt.h"
+
+int opterr = 1, /* if error message should be printed */
+ optind = 1; /* index into parent argv vector */
+int optopt = 0; /* character checked for validity */
+static int optreset; /* reset getopt */
+char *optarg; /* argument associated with option */
+
+#define BADCH (int)'?'
+#define BADARG (int)':'
+#define EMSG (char *)""
+
+/*
+ * ares_getopt --
+ * Parse argc/argv argument vector.
+ */
+int
+ares_getopt(int nargc, char * const nargv[], const char *ostr)
+{
+ static char *place = EMSG; /* option letter processing */
+ char *oli; /* option letter list index */
+
+ if (optreset || !*place) { /* update scanning pointer */
+ optreset = 0;
+ if (optind >= nargc || *(place = nargv[optind]) != '-') {
+ place = EMSG;
+ return (EOF);
+ }
+ if (place[1] && *++place == '-') { /* found "--" */
+ ++optind;
+ place = EMSG;
+ return (EOF);
+ }
+ } /* option letter okay? */
+ if ((optopt = (int)*place++) == (int)':' ||
+ (oli = strchr(ostr, optopt)) == NULL) {
+ /*
+ * if the user didn't specify '-' as an option,
+ * assume it means EOF.
+ */
+ if (optopt == (int)'-')
+ return (EOF);
+ if (!*place)
+ ++optind;
+ if (opterr && *ostr != ':')
+ (void)fprintf(stderr,
+ "%s: illegal option -- %c\n", __FILE__, optopt);
+ return (BADCH);
+ }
+ if (*++oli != ':') { /* don't need argument */
+ optarg = NULL;
+ if (!*place)
+ ++optind;
+ }
+ else { /* need an argument */
+ if (*place) /* no white space */
+ optarg = place;
+ else if (nargc <= ++optind) { /* no arg */
+ place = EMSG;
+ if (*ostr == ':')
+ return (BADARG);
+ if (opterr)
+ (void)fprintf(stderr,
+ "%s: option requires an argument -- %c\n",
+ __FILE__, optopt);
+ return (BADCH);
+ }
+ else /* white space */
+ optarg = nargv[optind];
+ place = EMSG;
+ ++optind;
+ }
+ return (optopt); /* dump back option letter */
+}
diff --git a/contrib/libs/c-ares/ares_getopt.h b/contrib/libs/c-ares/ares_getopt.h
index 078e1f117d..63acb3b423 100644
--- a/contrib/libs/c-ares/ares_getopt.h
+++ b/contrib/libs/c-ares/ares_getopt.h
@@ -1,53 +1,53 @@
-#ifndef ARES_GETOPT_H
-#define ARES_GETOPT_H
-
-/*
- * Copyright (c) 1987-2001 The Regents of the University of California.
- * All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions are met:
- *
- * A. Redistributions of source code must retain the above copyright notice,
- * this list of conditions and the following disclaimer.
- * B. Redistributions in binary form must reproduce the above copyright notice,
- * this list of conditions and the following disclaimer in the documentation
- * and/or other materials provided with the distribution.
- * C. Neither the names of the copyright holders nor the names of its
- * contributors may be used to endorse or promote products derived from this
- * software without specific prior written permission.
- *
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
- * IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
- * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
- * POSSIBILITY OF SUCH DAMAGE.
- */
-
-
-int ares_getopt(int nargc, char * const nargv[], const char *ostr);
-
-#undef optarg
-#undef optind
-#undef opterr
-#undef optopt
-#undef optreset
-
-#define optarg ares_optarg
-#define optind ares_optind
-#define opterr ares_opterr
-#define optopt ares_optopt
-#define optreset ares_optreset
-
-extern char *optarg;
-extern int optind;
-extern int opterr;
-extern int optopt;
-
-#endif /* ARES_GETOPT_H */
+#ifndef ARES_GETOPT_H
+#define ARES_GETOPT_H
+
+/*
+ * Copyright (c) 1987-2001 The Regents of the University of California.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * A. Redistributions of source code must retain the above copyright notice,
+ * this list of conditions and the following disclaimer.
+ * B. Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following disclaimer in the documentation
+ * and/or other materials provided with the distribution.
+ * C. Neither the names of the copyright holders nor the names of its
+ * contributors may be used to endorse or promote products derived from this
+ * software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ``AS
+ * IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ */
+
+
+int ares_getopt(int nargc, char * const nargv[], const char *ostr);
+
+#undef optarg
+#undef optind
+#undef opterr
+#undef optopt
+#undef optreset
+
+#define optarg ares_optarg
+#define optind ares_optind
+#define opterr ares_opterr
+#define optopt ares_optopt
+#define optreset ares_optreset
+
+extern char *optarg;
+extern int optind;
+extern int opterr;
+extern int optopt;
+
+#endif /* ARES_GETOPT_H */
diff --git a/contrib/libs/c-ares/ares_getsock.c b/contrib/libs/c-ares/ares_getsock.c
index a6baf22f95..22d344679f 100644
--- a/contrib/libs/c-ares/ares_getsock.c
+++ b/contrib/libs/c-ares/ares_getsock.c
@@ -1,66 +1,66 @@
-
-/* Copyright (C) 2005 - 2010, Daniel Stenberg
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. M.I.T. makes no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#include "ares.h"
-#include "ares_private.h"
-
-int ares_getsock(ares_channel channel,
- ares_socket_t *socks,
- int numsocks) /* size of the 'socks' array */
-{
- struct server_state *server;
- int i;
- int sockindex=0;
- int bitmap = 0;
- unsigned int setbits = 0xffffffff;
-
- /* Are there any active queries? */
- int active_queries = !ares__is_list_empty(&(channel->all_queries));
-
+
+/* Copyright (C) 2005 - 2010, Daniel Stenberg
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. M.I.T. makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#include "ares.h"
+#include "ares_private.h"
+
+int ares_getsock(ares_channel channel,
+ ares_socket_t *socks,
+ int numsocks) /* size of the 'socks' array */
+{
+ struct server_state *server;
+ int i;
+ int sockindex=0;
+ int bitmap = 0;
+ unsigned int setbits = 0xffffffff;
+
+ /* Are there any active queries? */
+ int active_queries = !ares__is_list_empty(&(channel->all_queries));
+
for (i = 0; i < channel->nservers; i++)
- {
- server = &channel->servers[i];
- /* We only need to register interest in UDP sockets if we have
- * outstanding queries.
- */
- if (active_queries && server->udp_socket != ARES_SOCKET_BAD)
- {
+ {
+ server = &channel->servers[i];
+ /* We only need to register interest in UDP sockets if we have
+ * outstanding queries.
+ */
+ if (active_queries && server->udp_socket != ARES_SOCKET_BAD)
+ {
if(sockindex >= numsocks || sockindex >= ARES_GETSOCK_MAXNUM)
- break;
- socks[sockindex] = server->udp_socket;
- bitmap |= ARES_GETSOCK_READABLE(setbits, sockindex);
- sockindex++;
- }
- /* We always register for TCP events, because we want to know
- * when the other side closes the connection, so we don't waste
- * time trying to use a broken connection.
- */
- if (server->tcp_socket != ARES_SOCKET_BAD)
- {
+ break;
+ socks[sockindex] = server->udp_socket;
+ bitmap |= ARES_GETSOCK_READABLE(setbits, sockindex);
+ sockindex++;
+ }
+ /* We always register for TCP events, because we want to know
+ * when the other side closes the connection, so we don't waste
+ * time trying to use a broken connection.
+ */
+ if (server->tcp_socket != ARES_SOCKET_BAD)
+ {
if(sockindex >= numsocks || sockindex >= ARES_GETSOCK_MAXNUM)
- break;
- socks[sockindex] = server->tcp_socket;
- bitmap |= ARES_GETSOCK_READABLE(setbits, sockindex);
-
- if (server->qhead && active_queries)
- /* then the tcp socket is also writable! */
- bitmap |= ARES_GETSOCK_WRITABLE(setbits, sockindex);
-
- sockindex++;
- }
- }
- return bitmap;
-}
+ break;
+ socks[sockindex] = server->tcp_socket;
+ bitmap |= ARES_GETSOCK_READABLE(setbits, sockindex);
+
+ if (server->qhead && active_queries)
+ /* then the tcp socket is also writable! */
+ bitmap |= ARES_GETSOCK_WRITABLE(setbits, sockindex);
+
+ sockindex++;
+ }
+ }
+ return bitmap;
+}
diff --git a/contrib/libs/c-ares/ares_inet_net_pton.h b/contrib/libs/c-ares/ares_inet_net_pton.h
index 3cf2f52a45..90da2cc651 100644
--- a/contrib/libs/c-ares/ares_inet_net_pton.h
+++ b/contrib/libs/c-ares/ares_inet_net_pton.h
@@ -1,25 +1,25 @@
-#ifndef HEADER_CARES_INET_NET_PTON_H
-#define HEADER_CARES_INET_NET_PTON_H
-
-/* Copyright (C) 2005-2013 by Daniel Stenberg et al
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#ifdef HAVE_INET_NET_PTON
-#define ares_inet_net_pton(w,x,y,z) inet_net_pton(w,x,y,z)
-#else
-int ares_inet_net_pton(int af, const char *src, void *dst, size_t size);
-#endif
-
-#endif /* HEADER_CARES_INET_NET_PTON_H */
+#ifndef HEADER_CARES_INET_NET_PTON_H
+#define HEADER_CARES_INET_NET_PTON_H
+
+/* Copyright (C) 2005-2013 by Daniel Stenberg et al
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#ifdef HAVE_INET_NET_PTON
+#define ares_inet_net_pton(w,x,y,z) inet_net_pton(w,x,y,z)
+#else
+int ares_inet_net_pton(int af, const char *src, void *dst, size_t size);
+#endif
+
+#endif /* HEADER_CARES_INET_NET_PTON_H */
diff --git a/contrib/libs/c-ares/ares_init.c b/contrib/libs/c-ares/ares_init.c
index 9ea3ec16c6..e06265c6a2 100644
--- a/contrib/libs/c-ares/ares_init.c
+++ b/contrib/libs/c-ares/ares_init.c
@@ -1,440 +1,440 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- * Copyright (C) 2007-2013 by Daniel Stenberg
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_SYS_PARAM_H
-#include <sys/param.h>
-#endif
-
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-#ifdef HAVE_NETDB_H
-#include <netdb.h>
-#endif
-
-#ifdef HAVE_ARPA_INET_H
-#include <arpa/inet.h>
-#endif
-
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-# include <arpa/nameser_compat.h>
-#endif
-
-#if defined(ANDROID) || defined(__ANDROID__)
-#include <sys/system_properties.h>
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ * Copyright (C) 2007-2013 by Daniel Stenberg
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_SYS_PARAM_H
+#include <sys/param.h>
+#endif
+
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+
+#ifdef HAVE_NETDB_H
+#include <netdb.h>
+#endif
+
+#ifdef HAVE_ARPA_INET_H
+#include <arpa/inet.h>
+#endif
+
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
+# include <arpa/nameser_compat.h>
+#endif
+
+#if defined(ANDROID) || defined(__ANDROID__)
+#include <sys/system_properties.h>
#include "ares_android.h"
-/* From the Bionic sources */
-#define DNS_PROP_NAME_PREFIX "net.dns"
-#define MAX_DNS_PROPERTIES 8
-#endif
-
+/* From the Bionic sources */
+#define DNS_PROP_NAME_PREFIX "net.dns"
+#define MAX_DNS_PROPERTIES 8
+#endif
+
#if defined(CARES_USE_LIBRESOLV)
#include <resolv.h>
#endif
-#include "ares.h"
-#include "ares_inet_net_pton.h"
-#include "ares_library_init.h"
-#include "ares_nowarn.h"
-#include "ares_platform.h"
-#include "ares_private.h"
-
-#ifdef WATT32
-#undef WIN32 /* Redefined in MingW/MSVC headers */
-#endif
-
-static int init_by_options(ares_channel channel,
- const struct ares_options *options,
- int optmask);
-static int init_by_environment(ares_channel channel);
-static int init_by_resolv_conf(ares_channel channel);
-static int init_by_defaults(ares_channel channel);
-
-#ifndef WATT32
-static int config_nameserver(struct server_state **servers, int *nservers,
- char *str);
-#endif
-static int set_search(ares_channel channel, const char *str);
-static int set_options(ares_channel channel, const char *str);
-static const char *try_option(const char *p, const char *q, const char *opt);
-static int init_id_key(rc4_key* key,int key_data_len);
-
+#include "ares.h"
+#include "ares_inet_net_pton.h"
+#include "ares_library_init.h"
+#include "ares_nowarn.h"
+#include "ares_platform.h"
+#include "ares_private.h"
+
+#ifdef WATT32
+#undef WIN32 /* Redefined in MingW/MSVC headers */
+#endif
+
+static int init_by_options(ares_channel channel,
+ const struct ares_options *options,
+ int optmask);
+static int init_by_environment(ares_channel channel);
+static int init_by_resolv_conf(ares_channel channel);
+static int init_by_defaults(ares_channel channel);
+
+#ifndef WATT32
+static int config_nameserver(struct server_state **servers, int *nservers,
+ char *str);
+#endif
+static int set_search(ares_channel channel, const char *str);
+static int set_options(ares_channel channel, const char *str);
+static const char *try_option(const char *p, const char *q, const char *opt);
+static int init_id_key(rc4_key* key,int key_data_len);
+
static int config_sortlist(struct apattern **sortlist, int *nsort,
const char *str);
-static int sortlist_alloc(struct apattern **sortlist, int *nsort,
- struct apattern *pat);
+static int sortlist_alloc(struct apattern **sortlist, int *nsort,
+ struct apattern *pat);
static int ip_addr(const char *s, ares_ssize_t len, struct in_addr *addr);
-static void natural_mask(struct apattern *pat);
+static void natural_mask(struct apattern *pat);
#if !defined(WIN32) && !defined(WATT32) && \
!defined(ANDROID) && !defined(__ANDROID__) && !defined(CARES_USE_LIBRESOLV)
-static int config_domain(ares_channel channel, char *str);
-static int config_lookup(ares_channel channel, const char *str,
+static int config_domain(ares_channel channel, char *str);
+static int config_lookup(ares_channel channel, const char *str,
const char *bindch, const char *altbindch,
const char *filech);
-static char *try_config(char *s, const char *opt, char scc);
-#endif
-
-#define ARES_CONFIG_CHECK(x) (x->lookups && x->nsort > -1 && \
- x->nservers > -1 && \
- x->ndomains > -1 && \
- x->ndots > -1 && x->timeout > -1 && \
- x->tries > -1)
-
-int ares_init(ares_channel *channelptr)
-{
- return ares_init_options(channelptr, NULL, 0);
-}
-
-int ares_init_options(ares_channel *channelptr, struct ares_options *options,
- int optmask)
-{
- ares_channel channel;
- int i;
- int status = ARES_SUCCESS;
- struct timeval now;
-
-#ifdef CURLDEBUG
- const char *env = getenv("CARES_MEMDEBUG");
-
- if (env)
- curl_memdebug(env);
- env = getenv("CARES_MEMLIMIT");
- if (env) {
- char *endptr;
- long num = strtol(env, &endptr, 10);
- if((endptr != env) && (endptr == env + strlen(env)) && (num > 0))
- curl_memlimit(num);
- }
-#endif
-
- if (ares_library_initialized() != ARES_SUCCESS)
+static char *try_config(char *s, const char *opt, char scc);
+#endif
+
+#define ARES_CONFIG_CHECK(x) (x->lookups && x->nsort > -1 && \
+ x->nservers > -1 && \
+ x->ndomains > -1 && \
+ x->ndots > -1 && x->timeout > -1 && \
+ x->tries > -1)
+
+int ares_init(ares_channel *channelptr)
+{
+ return ares_init_options(channelptr, NULL, 0);
+}
+
+int ares_init_options(ares_channel *channelptr, struct ares_options *options,
+ int optmask)
+{
+ ares_channel channel;
+ int i;
+ int status = ARES_SUCCESS;
+ struct timeval now;
+
+#ifdef CURLDEBUG
+ const char *env = getenv("CARES_MEMDEBUG");
+
+ if (env)
+ curl_memdebug(env);
+ env = getenv("CARES_MEMLIMIT");
+ if (env) {
+ char *endptr;
+ long num = strtol(env, &endptr, 10);
+ if((endptr != env) && (endptr == env + strlen(env)) && (num > 0))
+ curl_memlimit(num);
+ }
+#endif
+
+ if (ares_library_initialized() != ARES_SUCCESS)
return ARES_ENOTINITIALIZED; /* LCOV_EXCL_LINE: n/a on non-WinSock */
-
+
channel = ares_malloc(sizeof(struct ares_channeldata));
- if (!channel) {
- *channelptr = NULL;
- return ARES_ENOMEM;
- }
-
- now = ares__tvnow();
-
- /* Set everything to distinguished values so we know they haven't
- * been set yet.
- */
- channel->flags = -1;
- channel->timeout = -1;
+ if (!channel) {
+ *channelptr = NULL;
+ return ARES_ENOMEM;
+ }
+
+ now = ares__tvnow();
+
+ /* Set everything to distinguished values so we know they haven't
+ * been set yet.
+ */
+ channel->flags = -1;
+ channel->timeout = -1;
channel->maxtimeout = -1;
channel->jitter = -1;
channel->jitter_rand_state = -1;
- channel->tries = -1;
- channel->ndots = -1;
- channel->rotate = -1;
- channel->udp_port = -1;
- channel->tcp_port = -1;
- channel->ednspsz = -1;
- channel->socket_send_buffer_size = -1;
- channel->socket_receive_buffer_size = -1;
- channel->nservers = -1;
- channel->ndomains = -1;
- channel->nsort = -1;
- channel->tcp_connection_generation = 0;
- channel->lookups = NULL;
- channel->domains = NULL;
- channel->sortlist = NULL;
- channel->servers = NULL;
- channel->sock_state_cb = NULL;
- channel->sock_state_cb_data = NULL;
- channel->sock_create_cb = NULL;
- channel->sock_create_cb_data = NULL;
+ channel->tries = -1;
+ channel->ndots = -1;
+ channel->rotate = -1;
+ channel->udp_port = -1;
+ channel->tcp_port = -1;
+ channel->ednspsz = -1;
+ channel->socket_send_buffer_size = -1;
+ channel->socket_receive_buffer_size = -1;
+ channel->nservers = -1;
+ channel->ndomains = -1;
+ channel->nsort = -1;
+ channel->tcp_connection_generation = 0;
+ channel->lookups = NULL;
+ channel->domains = NULL;
+ channel->sortlist = NULL;
+ channel->servers = NULL;
+ channel->sock_state_cb = NULL;
+ channel->sock_state_cb_data = NULL;
+ channel->sock_create_cb = NULL;
+ channel->sock_create_cb_data = NULL;
channel->sock_config_cb = NULL;
channel->sock_config_cb_data = NULL;
channel->sock_funcs = NULL;
channel->sock_func_cb_data = NULL;
channel->resolvconf_path = NULL;
-
- channel->last_server = 0;
- channel->last_timeout_processed = (time_t)now.tv_sec;
-
- memset(&channel->local_dev_name, 0, sizeof(channel->local_dev_name));
- channel->local_ip4 = 0;
- memset(&channel->local_ip6, 0, sizeof(channel->local_ip6));
-
- /* Initialize our lists of queries */
- ares__init_list_head(&(channel->all_queries));
- for (i = 0; i < ARES_QID_TABLE_SIZE; i++)
- {
- ares__init_list_head(&(channel->queries_by_qid[i]));
- }
- for (i = 0; i < ARES_TIMEOUT_TABLE_SIZE; i++)
- {
- ares__init_list_head(&(channel->queries_by_timeout[i]));
- }
-
- /* Initialize configuration by each of the four sources, from highest
- * precedence to lowest.
- */
-
+
+ channel->last_server = 0;
+ channel->last_timeout_processed = (time_t)now.tv_sec;
+
+ memset(&channel->local_dev_name, 0, sizeof(channel->local_dev_name));
+ channel->local_ip4 = 0;
+ memset(&channel->local_ip6, 0, sizeof(channel->local_ip6));
+
+ /* Initialize our lists of queries */
+ ares__init_list_head(&(channel->all_queries));
+ for (i = 0; i < ARES_QID_TABLE_SIZE; i++)
+ {
+ ares__init_list_head(&(channel->queries_by_qid[i]));
+ }
+ for (i = 0; i < ARES_TIMEOUT_TABLE_SIZE; i++)
+ {
+ ares__init_list_head(&(channel->queries_by_timeout[i]));
+ }
+
+ /* Initialize configuration by each of the four sources, from highest
+ * precedence to lowest.
+ */
+
status = init_by_options(channel, options, optmask);
if (status != ARES_SUCCESS) {
DEBUGF(fprintf(stderr, "Error: init_by_options failed: %s\n",
ares_strerror(status)));
/* If we fail to apply user-specified options, fail the whole init process */
goto done;
- }
+ }
status = init_by_environment(channel);
if (status != ARES_SUCCESS)
DEBUGF(fprintf(stderr, "Error: init_by_environment failed: %s\n",
ares_strerror(status)));
- if (status == ARES_SUCCESS) {
- status = init_by_resolv_conf(channel);
- if (status != ARES_SUCCESS)
- DEBUGF(fprintf(stderr, "Error: init_by_resolv_conf failed: %s\n",
- ares_strerror(status)));
- }
-
- /*
- * No matter what failed or succeeded, seed defaults to provide
- * useful behavior for things that we missed.
- */
- status = init_by_defaults(channel);
- if (status != ARES_SUCCESS)
- DEBUGF(fprintf(stderr, "Error: init_by_defaults failed: %s\n",
- ares_strerror(status)));
-
- /* Generate random key */
-
- if (status == ARES_SUCCESS) {
- status = init_id_key(&channel->id_key, ARES_ID_KEY_LEN);
- if (status == ARES_SUCCESS)
- channel->next_id = ares__generate_new_id(&channel->id_key);
- else
- DEBUGF(fprintf(stderr, "Error: init_id_key failed: %s\n",
- ares_strerror(status)));
- }
-
+ if (status == ARES_SUCCESS) {
+ status = init_by_resolv_conf(channel);
+ if (status != ARES_SUCCESS)
+ DEBUGF(fprintf(stderr, "Error: init_by_resolv_conf failed: %s\n",
+ ares_strerror(status)));
+ }
+
+ /*
+ * No matter what failed or succeeded, seed defaults to provide
+ * useful behavior for things that we missed.
+ */
+ status = init_by_defaults(channel);
+ if (status != ARES_SUCCESS)
+ DEBUGF(fprintf(stderr, "Error: init_by_defaults failed: %s\n",
+ ares_strerror(status)));
+
+ /* Generate random key */
+
+ if (status == ARES_SUCCESS) {
+ status = init_id_key(&channel->id_key, ARES_ID_KEY_LEN);
+ if (status == ARES_SUCCESS)
+ channel->next_id = ares__generate_new_id(&channel->id_key);
+ else
+ DEBUGF(fprintf(stderr, "Error: init_id_key failed: %s\n",
+ ares_strerror(status)));
+ }
+
done:
- if (status != ARES_SUCCESS)
- {
- /* Something failed; clean up memory we may have allocated. */
- if (channel->servers)
+ if (status != ARES_SUCCESS)
+ {
+ /* Something failed; clean up memory we may have allocated. */
+ if (channel->servers)
ares_free(channel->servers);
if (channel->ndomains != -1)
ares_strsplit_free(channel->domains, channel->ndomains);
- if (channel->sortlist)
+ if (channel->sortlist)
ares_free(channel->sortlist);
- if(channel->lookups)
+ if(channel->lookups)
ares_free(channel->lookups);
if(channel->resolvconf_path)
ares_free(channel->resolvconf_path);
ares_free(channel);
- return status;
- }
-
- /* Trim to one server if ARES_FLAG_PRIMARY is set. */
- if ((channel->flags & ARES_FLAG_PRIMARY) && channel->nservers > 1)
- channel->nservers = 1;
-
- ares__init_servers_state(channel);
-
- *channelptr = channel;
- return ARES_SUCCESS;
-}
-
-/* ares_dup() duplicates a channel handle with all its options and returns a
- new channel handle */
-int ares_dup(ares_channel *dest, ares_channel src)
-{
- struct ares_options opts;
+ return status;
+ }
+
+ /* Trim to one server if ARES_FLAG_PRIMARY is set. */
+ if ((channel->flags & ARES_FLAG_PRIMARY) && channel->nservers > 1)
+ channel->nservers = 1;
+
+ ares__init_servers_state(channel);
+
+ *channelptr = channel;
+ return ARES_SUCCESS;
+}
+
+/* ares_dup() duplicates a channel handle with all its options and returns a
+ new channel handle */
+int ares_dup(ares_channel *dest, ares_channel src)
+{
+ struct ares_options opts;
struct ares_addr_port_node *servers;
int non_v4_default_port = 0;
- int i, rc;
- int optmask;
-
- *dest = NULL; /* in case of failure return NULL explicitly */
-
- /* First get the options supported by the old ares_save_options() function,
- which is most of them */
- rc = ares_save_options(src, &opts, &optmask);
- if(rc)
+ int i, rc;
+ int optmask;
+
+ *dest = NULL; /* in case of failure return NULL explicitly */
+
+ /* First get the options supported by the old ares_save_options() function,
+ which is most of them */
+ rc = ares_save_options(src, &opts, &optmask);
+ if(rc)
{
ares_destroy_options(&opts);
- return rc;
+ return rc;
}
-
- /* Then create the new channel with those options */
- rc = ares_init_options(dest, &opts, optmask);
-
- /* destroy the options copy to not leak any memory */
- ares_destroy_options(&opts);
-
- if(rc)
- return rc;
-
- /* Now clone the options that ares_save_options() doesn't support. */
- (*dest)->sock_create_cb = src->sock_create_cb;
- (*dest)->sock_create_cb_data = src->sock_create_cb_data;
+
+ /* Then create the new channel with those options */
+ rc = ares_init_options(dest, &opts, optmask);
+
+ /* destroy the options copy to not leak any memory */
+ ares_destroy_options(&opts);
+
+ if(rc)
+ return rc;
+
+ /* Now clone the options that ares_save_options() doesn't support. */
+ (*dest)->sock_create_cb = src->sock_create_cb;
+ (*dest)->sock_create_cb_data = src->sock_create_cb_data;
(*dest)->sock_config_cb = src->sock_config_cb;
(*dest)->sock_config_cb_data = src->sock_config_cb_data;
(*dest)->sock_funcs = src->sock_funcs;
(*dest)->sock_func_cb_data = src->sock_func_cb_data;
-
- strncpy((*dest)->local_dev_name, src->local_dev_name,
+
+ strncpy((*dest)->local_dev_name, src->local_dev_name,
sizeof((*dest)->local_dev_name));
- (*dest)->local_ip4 = src->local_ip4;
- memcpy((*dest)->local_ip6, src->local_ip6, sizeof(src->local_ip6));
-
+ (*dest)->local_ip4 = src->local_ip4;
+ memcpy((*dest)->local_ip6, src->local_ip6, sizeof(src->local_ip6));
+
/* Full name server cloning required if there is a non-IPv4, or non-default port, nameserver */
- for (i = 0; i < src->nservers; i++)
- {
+ for (i = 0; i < src->nservers; i++)
+ {
if ((src->servers[i].addr.family != AF_INET) ||
(src->servers[i].addr.udp_port != 0) ||
(src->servers[i].addr.tcp_port != 0)) {
non_v4_default_port++;
- break;
- }
- }
+ break;
+ }
+ }
if (non_v4_default_port) {
rc = ares_get_servers_ports(src, &servers);
if (rc != ARES_SUCCESS) {
ares_destroy(*dest);
*dest = NULL;
- return rc;
+ return rc;
}
rc = ares_set_servers_ports(*dest, servers);
- ares_free_data(servers);
+ ares_free_data(servers);
if (rc != ARES_SUCCESS) {
ares_destroy(*dest);
*dest = NULL;
- return rc;
+ return rc;
}
- }
-
- return ARES_SUCCESS; /* everything went fine */
-}
-
-/* Save options from initialized channel */
-int ares_save_options(ares_channel channel, struct ares_options *options,
- int *optmask)
-{
- int i, j;
- int ipv4_nservers = 0;
-
- /* Zero everything out */
- memset(options, 0, sizeof(struct ares_options));
-
- if (!ARES_CONFIG_CHECK(channel))
- return ARES_ENODATA;
-
- /* Traditionally the optmask wasn't saved in the channel struct so it was
- recreated here. ROTATE is the first option that has no struct field of
- its own in the public config struct */
- (*optmask) = (ARES_OPT_FLAGS|ARES_OPT_TRIES|ARES_OPT_NDOTS|
- ARES_OPT_UDP_PORT|ARES_OPT_TCP_PORT|ARES_OPT_SOCK_STATE_CB|
- ARES_OPT_SERVERS|ARES_OPT_DOMAINS|ARES_OPT_LOOKUPS|
+ }
+
+ return ARES_SUCCESS; /* everything went fine */
+}
+
+/* Save options from initialized channel */
+int ares_save_options(ares_channel channel, struct ares_options *options,
+ int *optmask)
+{
+ int i, j;
+ int ipv4_nservers = 0;
+
+ /* Zero everything out */
+ memset(options, 0, sizeof(struct ares_options));
+
+ if (!ARES_CONFIG_CHECK(channel))
+ return ARES_ENODATA;
+
+ /* Traditionally the optmask wasn't saved in the channel struct so it was
+ recreated here. ROTATE is the first option that has no struct field of
+ its own in the public config struct */
+ (*optmask) = (ARES_OPT_FLAGS|ARES_OPT_TRIES|ARES_OPT_NDOTS|
+ ARES_OPT_UDP_PORT|ARES_OPT_TCP_PORT|ARES_OPT_SOCK_STATE_CB|
+ ARES_OPT_SERVERS|ARES_OPT_DOMAINS|ARES_OPT_LOOKUPS|
ARES_OPT_SORTLIST|ARES_OPT_TIMEOUTMS|ARES_OPT_MAXTIMEOUTMS|
ARES_OPT_JITTER);
(*optmask) |= (channel->rotate ? ARES_OPT_ROTATE : ARES_OPT_NOROTATE);
-
+
if (channel->resolvconf_path)
(*optmask) |= ARES_OPT_RESOLVCONF;
- /* Copy easy stuff */
- options->flags = channel->flags;
-
- /* We return full millisecond resolution but that's only because we don't
- set the ARES_OPT_TIMEOUT anymore, only the new ARES_OPT_TIMEOUTMS */
- options->timeout = channel->timeout;
+ /* Copy easy stuff */
+ options->flags = channel->flags;
+
+ /* We return full millisecond resolution but that's only because we don't
+ set the ARES_OPT_TIMEOUT anymore, only the new ARES_OPT_TIMEOUTMS */
+ options->timeout = channel->timeout;
options->maxtimeout = channel->maxtimeout;
options->jitter = channel->jitter;
options->jitter_rand_seed = channel->jitter_rand_state;
- options->tries = channel->tries;
- options->ndots = channel->ndots;
- options->udp_port = ntohs(aresx_sitous(channel->udp_port));
- options->tcp_port = ntohs(aresx_sitous(channel->tcp_port));
- options->sock_state_cb = channel->sock_state_cb;
- options->sock_state_cb_data = channel->sock_state_cb_data;
-
+ options->tries = channel->tries;
+ options->ndots = channel->ndots;
+ options->udp_port = ntohs(aresx_sitous(channel->udp_port));
+ options->tcp_port = ntohs(aresx_sitous(channel->tcp_port));
+ options->sock_state_cb = channel->sock_state_cb;
+ options->sock_state_cb_data = channel->sock_state_cb_data;
+
/* Copy IPv4 servers that use the default port */
- if (channel->nservers) {
- for (i = 0; i < channel->nservers; i++)
- {
+ if (channel->nservers) {
+ for (i = 0; i < channel->nservers; i++)
+ {
if ((channel->servers[i].addr.family == AF_INET) &&
(channel->servers[i].addr.udp_port == 0) &&
(channel->servers[i].addr.tcp_port == 0))
- ipv4_nservers++;
- }
- if (ipv4_nservers) {
+ ipv4_nservers++;
+ }
+ if (ipv4_nservers) {
options->servers = ares_malloc(ipv4_nservers * sizeof(struct in_addr));
- if (!options->servers)
- return ARES_ENOMEM;
- for (i = j = 0; i < channel->nservers; i++)
- {
+ if (!options->servers)
+ return ARES_ENOMEM;
+ for (i = j = 0; i < channel->nservers; i++)
+ {
if ((channel->servers[i].addr.family == AF_INET) &&
(channel->servers[i].addr.udp_port == 0) &&
(channel->servers[i].addr.tcp_port == 0))
- memcpy(&options->servers[j++],
- &channel->servers[i].addr.addrV4,
- sizeof(channel->servers[i].addr.addrV4));
- }
- }
- }
- options->nservers = ipv4_nservers;
-
- /* copy domains */
- if (channel->ndomains) {
+ memcpy(&options->servers[j++],
+ &channel->servers[i].addr.addrV4,
+ sizeof(channel->servers[i].addr.addrV4));
+ }
+ }
+ }
+ options->nservers = ipv4_nservers;
+
+ /* copy domains */
+ if (channel->ndomains) {
options->domains = ares_malloc(channel->ndomains * sizeof(char *));
- if (!options->domains)
- return ARES_ENOMEM;
-
- for (i = 0; i < channel->ndomains; i++)
- {
- options->ndomains = i;
+ if (!options->domains)
+ return ARES_ENOMEM;
+
+ for (i = 0; i < channel->ndomains; i++)
+ {
+ options->ndomains = i;
options->domains[i] = ares_strdup(channel->domains[i]);
- if (!options->domains[i])
- return ARES_ENOMEM;
- }
- }
- options->ndomains = channel->ndomains;
-
- /* copy lookups */
- if (channel->lookups) {
+ if (!options->domains[i])
+ return ARES_ENOMEM;
+ }
+ }
+ options->ndomains = channel->ndomains;
+
+ /* copy lookups */
+ if (channel->lookups) {
options->lookups = ares_strdup(channel->lookups);
- if (!options->lookups && channel->lookups)
- return ARES_ENOMEM;
- }
-
- /* copy sortlist */
- if (channel->nsort) {
+ if (!options->lookups && channel->lookups)
+ return ARES_ENOMEM;
+ }
+
+ /* copy sortlist */
+ if (channel->nsort) {
options->sortlist = ares_malloc(channel->nsort * sizeof(struct apattern));
- if (!options->sortlist)
- return ARES_ENOMEM;
- for (i = 0; i < channel->nsort; i++)
- options->sortlist[i] = channel->sortlist[i];
- }
- options->nsort = channel->nsort;
-
+ if (!options->sortlist)
+ return ARES_ENOMEM;
+ for (i = 0; i < channel->nsort; i++)
+ options->sortlist[i] = channel->sortlist[i];
+ }
+ options->nsort = channel->nsort;
+
/* copy path for resolv.conf file */
if (channel->resolvconf_path) {
options->resolvconf_path = ares_strdup(channel->resolvconf_path);
@@ -442,22 +442,22 @@ int ares_save_options(ares_channel channel, struct ares_options *options,
return ARES_ENOMEM;
}
- return ARES_SUCCESS;
-}
-
-static int init_by_options(ares_channel channel,
- const struct ares_options *options,
- int optmask)
-{
- int i;
-
- /* Easy stuff. */
- if ((optmask & ARES_OPT_FLAGS) && channel->flags == -1)
- channel->flags = options->flags;
- if ((optmask & ARES_OPT_TIMEOUTMS) && channel->timeout == -1)
- channel->timeout = options->timeout;
- else if ((optmask & ARES_OPT_TIMEOUT) && channel->timeout == -1)
- channel->timeout = options->timeout * 1000;
+ return ARES_SUCCESS;
+}
+
+static int init_by_options(ares_channel channel,
+ const struct ares_options *options,
+ int optmask)
+{
+ int i;
+
+ /* Easy stuff. */
+ if ((optmask & ARES_OPT_FLAGS) && channel->flags == -1)
+ channel->flags = options->flags;
+ if ((optmask & ARES_OPT_TIMEOUTMS) && channel->timeout == -1)
+ channel->timeout = options->timeout;
+ else if ((optmask & ARES_OPT_TIMEOUT) && channel->timeout == -1)
+ channel->timeout = options->timeout * 1000;
if ((optmask & ARES_OPT_MAXTIMEOUTMS) && channel->maxtimeout == -1)
channel->maxtimeout = options->maxtimeout;
if ((optmask & ARES_OPT_JITTER) && channel->jitter == -1)
@@ -465,87 +465,87 @@ static int init_by_options(ares_channel channel,
channel->jitter = options->jitter;
channel->jitter_rand_state = options->jitter_rand_seed;
}
- if ((optmask & ARES_OPT_TRIES) && channel->tries == -1)
- channel->tries = options->tries;
- if ((optmask & ARES_OPT_NDOTS) && channel->ndots == -1)
- channel->ndots = options->ndots;
- if ((optmask & ARES_OPT_ROTATE) && channel->rotate == -1)
- channel->rotate = 1;
+ if ((optmask & ARES_OPT_TRIES) && channel->tries == -1)
+ channel->tries = options->tries;
+ if ((optmask & ARES_OPT_NDOTS) && channel->ndots == -1)
+ channel->ndots = options->ndots;
+ if ((optmask & ARES_OPT_ROTATE) && channel->rotate == -1)
+ channel->rotate = 1;
if ((optmask & ARES_OPT_NOROTATE) && channel->rotate == -1)
channel->rotate = 0;
- if ((optmask & ARES_OPT_UDP_PORT) && channel->udp_port == -1)
- channel->udp_port = htons(options->udp_port);
- if ((optmask & ARES_OPT_TCP_PORT) && channel->tcp_port == -1)
- channel->tcp_port = htons(options->tcp_port);
- if ((optmask & ARES_OPT_SOCK_STATE_CB) && channel->sock_state_cb == NULL)
- {
- channel->sock_state_cb = options->sock_state_cb;
- channel->sock_state_cb_data = options->sock_state_cb_data;
- }
- if ((optmask & ARES_OPT_SOCK_SNDBUF)
- && channel->socket_send_buffer_size == -1)
- channel->socket_send_buffer_size = options->socket_send_buffer_size;
- if ((optmask & ARES_OPT_SOCK_RCVBUF)
- && channel->socket_receive_buffer_size == -1)
- channel->socket_receive_buffer_size = options->socket_receive_buffer_size;
-
- if ((optmask & ARES_OPT_EDNSPSZ) && channel->ednspsz == -1)
- channel->ednspsz = options->ednspsz;
-
- /* Copy the IPv4 servers, if given. */
- if ((optmask & ARES_OPT_SERVERS) && channel->nservers == -1)
- {
- /* Avoid zero size allocations at any cost */
- if (options->nservers > 0)
- {
- channel->servers =
+ if ((optmask & ARES_OPT_UDP_PORT) && channel->udp_port == -1)
+ channel->udp_port = htons(options->udp_port);
+ if ((optmask & ARES_OPT_TCP_PORT) && channel->tcp_port == -1)
+ channel->tcp_port = htons(options->tcp_port);
+ if ((optmask & ARES_OPT_SOCK_STATE_CB) && channel->sock_state_cb == NULL)
+ {
+ channel->sock_state_cb = options->sock_state_cb;
+ channel->sock_state_cb_data = options->sock_state_cb_data;
+ }
+ if ((optmask & ARES_OPT_SOCK_SNDBUF)
+ && channel->socket_send_buffer_size == -1)
+ channel->socket_send_buffer_size = options->socket_send_buffer_size;
+ if ((optmask & ARES_OPT_SOCK_RCVBUF)
+ && channel->socket_receive_buffer_size == -1)
+ channel->socket_receive_buffer_size = options->socket_receive_buffer_size;
+
+ if ((optmask & ARES_OPT_EDNSPSZ) && channel->ednspsz == -1)
+ channel->ednspsz = options->ednspsz;
+
+ /* Copy the IPv4 servers, if given. */
+ if ((optmask & ARES_OPT_SERVERS) && channel->nservers == -1)
+ {
+ /* Avoid zero size allocations at any cost */
+ if (options->nservers > 0)
+ {
+ channel->servers =
ares_malloc(options->nservers * sizeof(struct server_state));
- if (!channel->servers)
- return ARES_ENOMEM;
- for (i = 0; i < options->nservers; i++)
- {
- channel->servers[i].addr.family = AF_INET;
+ if (!channel->servers)
+ return ARES_ENOMEM;
+ for (i = 0; i < options->nservers; i++)
+ {
+ channel->servers[i].addr.family = AF_INET;
channel->servers[i].addr.udp_port = 0;
channel->servers[i].addr.tcp_port = 0;
- memcpy(&channel->servers[i].addr.addrV4,
- &options->servers[i],
- sizeof(channel->servers[i].addr.addrV4));
- }
- }
- channel->nservers = options->nservers;
- }
-
- /* Copy the domains, if given. Keep channel->ndomains consistent so
- * we can clean up in case of error.
- */
- if ((optmask & ARES_OPT_DOMAINS) && channel->ndomains == -1)
- {
- /* Avoid zero size allocations at any cost */
- if (options->ndomains > 0)
- {
+ memcpy(&channel->servers[i].addr.addrV4,
+ &options->servers[i],
+ sizeof(channel->servers[i].addr.addrV4));
+ }
+ }
+ channel->nservers = options->nservers;
+ }
+
+ /* Copy the domains, if given. Keep channel->ndomains consistent so
+ * we can clean up in case of error.
+ */
+ if ((optmask & ARES_OPT_DOMAINS) && channel->ndomains == -1)
+ {
+ /* Avoid zero size allocations at any cost */
+ if (options->ndomains > 0)
+ {
channel->domains = ares_malloc(options->ndomains * sizeof(char *));
- if (!channel->domains)
- return ARES_ENOMEM;
- for (i = 0; i < options->ndomains; i++)
- {
- channel->ndomains = i;
+ if (!channel->domains)
+ return ARES_ENOMEM;
+ for (i = 0; i < options->ndomains; i++)
+ {
+ channel->ndomains = i;
channel->domains[i] = ares_strdup(options->domains[i]);
- if (!channel->domains[i])
- return ARES_ENOMEM;
- }
- }
- channel->ndomains = options->ndomains;
- }
-
- /* Set lookups, if given. */
- if ((optmask & ARES_OPT_LOOKUPS) && !channel->lookups)
- {
+ if (!channel->domains[i])
+ return ARES_ENOMEM;
+ }
+ }
+ channel->ndomains = options->ndomains;
+ }
+
+ /* Set lookups, if given. */
+ if ((optmask & ARES_OPT_LOOKUPS) && !channel->lookups)
+ {
channel->lookups = ares_strdup(options->lookups);
- if (!channel->lookups)
- return ARES_ENOMEM;
- }
-
- /* copy sortlist */
+ if (!channel->lookups)
+ return ARES_ENOMEM;
+ }
+
+ /* copy sortlist */
if ((optmask & ARES_OPT_SORTLIST) && (channel->nsort == -1)) {
if (options->nsort > 0) {
channel->sortlist = ares_malloc(options->nsort * sizeof(struct apattern));
@@ -554,9 +554,9 @@ static int init_by_options(ares_channel channel,
for (i = 0; i < options->nsort; i++)
channel->sortlist[i] = options->sortlist[i];
}
- channel->nsort = options->nsort;
- }
-
+ channel->nsort = options->nsort;
+ }
+
/* Set path for resolv.conf file, if given. */
if ((optmask & ARES_OPT_RESOLVCONF) && !channel->resolvconf_path)
{
@@ -565,305 +565,305 @@ static int init_by_options(ares_channel channel,
return ARES_ENOMEM;
}
- channel->optmask = optmask;
-
- return ARES_SUCCESS;
-}
-
-static int init_by_environment(ares_channel channel)
-{
- const char *localdomain, *res_options;
- int status;
-
- localdomain = getenv("LOCALDOMAIN");
- if (localdomain && channel->ndomains == -1)
- {
- status = set_search(channel, localdomain);
- if (status != ARES_SUCCESS)
- return status;
- }
-
- res_options = getenv("RES_OPTIONS");
- if (res_options)
- {
- status = set_options(channel, res_options);
- if (status != ARES_SUCCESS)
+ channel->optmask = optmask;
+
+ return ARES_SUCCESS;
+}
+
+static int init_by_environment(ares_channel channel)
+{
+ const char *localdomain, *res_options;
+ int status;
+
+ localdomain = getenv("LOCALDOMAIN");
+ if (localdomain && channel->ndomains == -1)
+ {
+ status = set_search(channel, localdomain);
+ if (status != ARES_SUCCESS)
+ return status;
+ }
+
+ res_options = getenv("RES_OPTIONS");
+ if (res_options)
+ {
+ status = set_options(channel, res_options);
+ if (status != ARES_SUCCESS)
return status; /* LCOV_EXCL_LINE: set_options() never fails */
- }
-
- return ARES_SUCCESS;
-}
-
-#ifdef WIN32
-/*
- * get_REG_SZ()
- *
- * Given a 'hKey' handle to an open registry key and a 'leafKeyName' pointer
- * to the name of the registry leaf key to be queried, fetch it's string
- * value and return a pointer in *outptr to a newly allocated memory area
- * holding it as a null-terminated string.
- *
- * Returns 0 and nullifies *outptr upon inability to return a string value.
- *
- * Returns 1 and sets *outptr when returning a dynamically allocated string.
- *
- * Supported on Windows NT 3.5 and newer.
- */
-static int get_REG_SZ(HKEY hKey, const char *leafKeyName, char **outptr)
-{
- DWORD size = 0;
- int res;
-
- *outptr = NULL;
-
- /* Find out size of string stored in registry */
+ }
+
+ return ARES_SUCCESS;
+}
+
+#ifdef WIN32
+/*
+ * get_REG_SZ()
+ *
+ * Given a 'hKey' handle to an open registry key and a 'leafKeyName' pointer
+ * to the name of the registry leaf key to be queried, fetch it's string
+ * value and return a pointer in *outptr to a newly allocated memory area
+ * holding it as a null-terminated string.
+ *
+ * Returns 0 and nullifies *outptr upon inability to return a string value.
+ *
+ * Returns 1 and sets *outptr when returning a dynamically allocated string.
+ *
+ * Supported on Windows NT 3.5 and newer.
+ */
+static int get_REG_SZ(HKEY hKey, const char *leafKeyName, char **outptr)
+{
+ DWORD size = 0;
+ int res;
+
+ *outptr = NULL;
+
+ /* Find out size of string stored in registry */
res = RegQueryValueExA(hKey, leafKeyName, 0, NULL, NULL, &size);
- if ((res != ERROR_SUCCESS && res != ERROR_MORE_DATA) || !size)
- return 0;
-
- /* Allocate buffer of indicated size plus one given that string
- might have been stored without null termination */
+ if ((res != ERROR_SUCCESS && res != ERROR_MORE_DATA) || !size)
+ return 0;
+
+ /* Allocate buffer of indicated size plus one given that string
+ might have been stored without null termination */
*outptr = ares_malloc(size+1);
- if (!*outptr)
- return 0;
-
- /* Get the value for real */
+ if (!*outptr)
+ return 0;
+
+ /* Get the value for real */
res = RegQueryValueExA(hKey, leafKeyName, 0, NULL,
- (unsigned char *)*outptr, &size);
- if ((res != ERROR_SUCCESS) || (size == 1))
- {
+ (unsigned char *)*outptr, &size);
+ if ((res != ERROR_SUCCESS) || (size == 1))
+ {
ares_free(*outptr);
- *outptr = NULL;
- return 0;
- }
-
- /* Null terminate buffer allways */
- *(*outptr + size) = '\0';
-
- return 1;
-}
-
-/*
- * get_REG_SZ_9X()
- *
- * Functionally identical to get_REG_SZ()
- *
- * Supported on Windows 95, 98 and ME.
- */
-static int get_REG_SZ_9X(HKEY hKey, const char *leafKeyName, char **outptr)
-{
- DWORD dataType = 0;
- DWORD size = 0;
- int res;
-
- *outptr = NULL;
-
- /* Find out size of string stored in registry */
+ *outptr = NULL;
+ return 0;
+ }
+
+ /* Null terminate buffer allways */
+ *(*outptr + size) = '\0';
+
+ return 1;
+}
+
+/*
+ * get_REG_SZ_9X()
+ *
+ * Functionally identical to get_REG_SZ()
+ *
+ * Supported on Windows 95, 98 and ME.
+ */
+static int get_REG_SZ_9X(HKEY hKey, const char *leafKeyName, char **outptr)
+{
+ DWORD dataType = 0;
+ DWORD size = 0;
+ int res;
+
+ *outptr = NULL;
+
+ /* Find out size of string stored in registry */
res = RegQueryValueExA(hKey, leafKeyName, 0, &dataType, NULL, &size);
- if ((res != ERROR_SUCCESS && res != ERROR_MORE_DATA) || !size)
- return 0;
-
- /* Allocate buffer of indicated size plus one given that string
- might have been stored without null termination */
+ if ((res != ERROR_SUCCESS && res != ERROR_MORE_DATA) || !size)
+ return 0;
+
+ /* Allocate buffer of indicated size plus one given that string
+ might have been stored without null termination */
*outptr = ares_malloc(size+1);
- if (!*outptr)
- return 0;
-
- /* Get the value for real */
+ if (!*outptr)
+ return 0;
+
+ /* Get the value for real */
res = RegQueryValueExA(hKey, leafKeyName, 0, &dataType,
- (unsigned char *)*outptr, &size);
- if ((res != ERROR_SUCCESS) || (size == 1))
- {
+ (unsigned char *)*outptr, &size);
+ if ((res != ERROR_SUCCESS) || (size == 1))
+ {
ares_free(*outptr);
- *outptr = NULL;
- return 0;
- }
-
- /* Null terminate buffer allways */
- *(*outptr + size) = '\0';
-
- return 1;
-}
-
-/*
- * get_enum_REG_SZ()
- *
- * Given a 'hKeyParent' handle to an open registry key and a 'leafKeyName'
- * pointer to the name of the registry leaf key to be queried, parent key
- * is enumerated searching in child keys for given leaf key name and its
- * associated string value. When located, this returns a pointer in *outptr
- * to a newly allocated memory area holding it as a null-terminated string.
- *
- * Returns 0 and nullifies *outptr upon inability to return a string value.
- *
- * Returns 1 and sets *outptr when returning a dynamically allocated string.
- *
- * Supported on Windows NT 3.5 and newer.
- */
-static int get_enum_REG_SZ(HKEY hKeyParent, const char *leafKeyName,
- char **outptr)
-{
- char enumKeyName[256];
- DWORD enumKeyNameBuffSize;
- DWORD enumKeyIdx = 0;
- HKEY hKeyEnum;
- int gotString;
- int res;
-
- *outptr = NULL;
-
- for(;;)
- {
- enumKeyNameBuffSize = sizeof(enumKeyName);
+ *outptr = NULL;
+ return 0;
+ }
+
+ /* Null terminate buffer allways */
+ *(*outptr + size) = '\0';
+
+ return 1;
+}
+
+/*
+ * get_enum_REG_SZ()
+ *
+ * Given a 'hKeyParent' handle to an open registry key and a 'leafKeyName'
+ * pointer to the name of the registry leaf key to be queried, parent key
+ * is enumerated searching in child keys for given leaf key name and its
+ * associated string value. When located, this returns a pointer in *outptr
+ * to a newly allocated memory area holding it as a null-terminated string.
+ *
+ * Returns 0 and nullifies *outptr upon inability to return a string value.
+ *
+ * Returns 1 and sets *outptr when returning a dynamically allocated string.
+ *
+ * Supported on Windows NT 3.5 and newer.
+ */
+static int get_enum_REG_SZ(HKEY hKeyParent, const char *leafKeyName,
+ char **outptr)
+{
+ char enumKeyName[256];
+ DWORD enumKeyNameBuffSize;
+ DWORD enumKeyIdx = 0;
+ HKEY hKeyEnum;
+ int gotString;
+ int res;
+
+ *outptr = NULL;
+
+ for(;;)
+ {
+ enumKeyNameBuffSize = sizeof(enumKeyName);
res = RegEnumKeyExA(hKeyParent, enumKeyIdx++, enumKeyName,
- &enumKeyNameBuffSize, 0, NULL, NULL, NULL);
- if (res != ERROR_SUCCESS)
- break;
+ &enumKeyNameBuffSize, 0, NULL, NULL, NULL);
+ if (res != ERROR_SUCCESS)
+ break;
res = RegOpenKeyExA(hKeyParent, enumKeyName, 0, KEY_QUERY_VALUE,
- &hKeyEnum);
- if (res != ERROR_SUCCESS)
- continue;
- gotString = get_REG_SZ(hKeyEnum, leafKeyName, outptr);
- RegCloseKey(hKeyEnum);
- if (gotString)
- break;
- }
-
- if (!*outptr)
- return 0;
-
- return 1;
-}
-
-/*
- * get_DNS_Registry_9X()
- *
- * Functionally identical to get_DNS_Registry()
- *
- * Implementation supports Windows 95, 98 and ME.
- */
-static int get_DNS_Registry_9X(char **outptr)
-{
- HKEY hKey_VxD_MStcp;
- int gotString;
- int res;
-
- *outptr = NULL;
-
+ &hKeyEnum);
+ if (res != ERROR_SUCCESS)
+ continue;
+ gotString = get_REG_SZ(hKeyEnum, leafKeyName, outptr);
+ RegCloseKey(hKeyEnum);
+ if (gotString)
+ break;
+ }
+
+ if (!*outptr)
+ return 0;
+
+ return 1;
+}
+
+/*
+ * get_DNS_Registry_9X()
+ *
+ * Functionally identical to get_DNS_Registry()
+ *
+ * Implementation supports Windows 95, 98 and ME.
+ */
+static int get_DNS_Registry_9X(char **outptr)
+{
+ HKEY hKey_VxD_MStcp;
+ int gotString;
+ int res;
+
+ *outptr = NULL;
+
res = RegOpenKeyExA(HKEY_LOCAL_MACHINE, WIN_NS_9X, 0, KEY_READ,
- &hKey_VxD_MStcp);
- if (res != ERROR_SUCCESS)
- return 0;
-
- gotString = get_REG_SZ_9X(hKey_VxD_MStcp, NAMESERVER, outptr);
- RegCloseKey(hKey_VxD_MStcp);
-
- if (!gotString || !*outptr)
- return 0;
-
- return 1;
-}
-
-/*
- * get_DNS_Registry_NT()
- *
- * Functionally identical to get_DNS_Registry()
- *
- * Refs: Microsoft Knowledge Base articles KB120642 and KB314053.
- *
- * Implementation supports Windows NT 3.5 and newer.
- */
-static int get_DNS_Registry_NT(char **outptr)
-{
- HKEY hKey_Interfaces = NULL;
- HKEY hKey_Tcpip_Parameters;
- int gotString;
- int res;
-
- *outptr = NULL;
-
+ &hKey_VxD_MStcp);
+ if (res != ERROR_SUCCESS)
+ return 0;
+
+ gotString = get_REG_SZ_9X(hKey_VxD_MStcp, NAMESERVER, outptr);
+ RegCloseKey(hKey_VxD_MStcp);
+
+ if (!gotString || !*outptr)
+ return 0;
+
+ return 1;
+}
+
+/*
+ * get_DNS_Registry_NT()
+ *
+ * Functionally identical to get_DNS_Registry()
+ *
+ * Refs: Microsoft Knowledge Base articles KB120642 and KB314053.
+ *
+ * Implementation supports Windows NT 3.5 and newer.
+ */
+static int get_DNS_Registry_NT(char **outptr)
+{
+ HKEY hKey_Interfaces = NULL;
+ HKEY hKey_Tcpip_Parameters;
+ int gotString;
+ int res;
+
+ *outptr = NULL;
+
res = RegOpenKeyExA(HKEY_LOCAL_MACHINE, WIN_NS_NT_KEY, 0, KEY_READ,
- &hKey_Tcpip_Parameters);
- if (res != ERROR_SUCCESS)
- return 0;
-
- /*
- ** Global DNS settings override adapter specific parameters when both
- ** are set. Additionally static DNS settings override DHCP-configured
- ** parameters when both are set.
- */
-
- /* Global DNS static parameters */
- gotString = get_REG_SZ(hKey_Tcpip_Parameters, NAMESERVER, outptr);
- if (gotString)
- goto done;
-
- /* Global DNS DHCP-configured parameters */
- gotString = get_REG_SZ(hKey_Tcpip_Parameters, DHCPNAMESERVER, outptr);
- if (gotString)
- goto done;
-
- /* Try adapter specific parameters */
+ &hKey_Tcpip_Parameters);
+ if (res != ERROR_SUCCESS)
+ return 0;
+
+ /*
+ ** Global DNS settings override adapter specific parameters when both
+ ** are set. Additionally static DNS settings override DHCP-configured
+ ** parameters when both are set.
+ */
+
+ /* Global DNS static parameters */
+ gotString = get_REG_SZ(hKey_Tcpip_Parameters, NAMESERVER, outptr);
+ if (gotString)
+ goto done;
+
+ /* Global DNS DHCP-configured parameters */
+ gotString = get_REG_SZ(hKey_Tcpip_Parameters, DHCPNAMESERVER, outptr);
+ if (gotString)
+ goto done;
+
+ /* Try adapter specific parameters */
res = RegOpenKeyExA(hKey_Tcpip_Parameters, "Interfaces", 0,
- KEY_QUERY_VALUE | KEY_ENUMERATE_SUB_KEYS,
- &hKey_Interfaces);
- if (res != ERROR_SUCCESS)
- {
- hKey_Interfaces = NULL;
- goto done;
- }
-
- /* Adapter specific DNS static parameters */
- gotString = get_enum_REG_SZ(hKey_Interfaces, NAMESERVER, outptr);
- if (gotString)
- goto done;
-
- /* Adapter specific DNS DHCP-configured parameters */
- gotString = get_enum_REG_SZ(hKey_Interfaces, DHCPNAMESERVER, outptr);
-
-done:
- if (hKey_Interfaces)
- RegCloseKey(hKey_Interfaces);
-
- RegCloseKey(hKey_Tcpip_Parameters);
-
- if (!gotString || !*outptr)
- return 0;
-
- return 1;
-}
-
-/*
- * get_DNS_Registry()
- *
- * Locates DNS info in the registry. When located, this returns a pointer
- * in *outptr to a newly allocated memory area holding a null-terminated
- * string with a space or comma seperated list of DNS IP addresses.
- *
- * Returns 0 and nullifies *outptr upon inability to return DNSes string.
- *
- * Returns 1 and sets *outptr when returning a dynamically allocated string.
- */
-static int get_DNS_Registry(char **outptr)
-{
- win_platform platform;
- int gotString = 0;
-
- *outptr = NULL;
-
- platform = ares__getplatform();
-
- if (platform == WIN_NT)
- gotString = get_DNS_Registry_NT(outptr);
- else if (platform == WIN_9X)
- gotString = get_DNS_Registry_9X(outptr);
-
- if (!gotString)
- return 0;
-
- return 1;
-}
-
+ KEY_QUERY_VALUE | KEY_ENUMERATE_SUB_KEYS,
+ &hKey_Interfaces);
+ if (res != ERROR_SUCCESS)
+ {
+ hKey_Interfaces = NULL;
+ goto done;
+ }
+
+ /* Adapter specific DNS static parameters */
+ gotString = get_enum_REG_SZ(hKey_Interfaces, NAMESERVER, outptr);
+ if (gotString)
+ goto done;
+
+ /* Adapter specific DNS DHCP-configured parameters */
+ gotString = get_enum_REG_SZ(hKey_Interfaces, DHCPNAMESERVER, outptr);
+
+done:
+ if (hKey_Interfaces)
+ RegCloseKey(hKey_Interfaces);
+
+ RegCloseKey(hKey_Tcpip_Parameters);
+
+ if (!gotString || !*outptr)
+ return 0;
+
+ return 1;
+}
+
+/*
+ * get_DNS_Registry()
+ *
+ * Locates DNS info in the registry. When located, this returns a pointer
+ * in *outptr to a newly allocated memory area holding a null-terminated
+ * string with a space or comma seperated list of DNS IP addresses.
+ *
+ * Returns 0 and nullifies *outptr upon inability to return DNSes string.
+ *
+ * Returns 1 and sets *outptr when returning a dynamically allocated string.
+ */
+static int get_DNS_Registry(char **outptr)
+{
+ win_platform platform;
+ int gotString = 0;
+
+ *outptr = NULL;
+
+ platform = ares__getplatform();
+
+ if (platform == WIN_NT)
+ gotString = get_DNS_Registry_NT(outptr);
+ else if (platform == WIN_9X)
+ gotString = get_DNS_Registry_9X(outptr);
+
+ if (!gotString)
+ return 0;
+
+ return 1;
+}
+
static void commanjoin(char** dst, const char* const src, const size_t len)
{
char *newbuf;
@@ -882,100 +882,100 @@ static void commanjoin(char** dst, const char* const src, const size_t len)
strncat(*dst, src, len);
}
-/*
- * commajoin()
- *
- * RTF code.
- */
-static void commajoin(char **dst, const char *src)
-{
+/*
+ * commajoin()
+ *
+ * RTF code.
+ */
+static void commajoin(char **dst, const char *src)
+{
commanjoin(dst, src, strlen(src));
-}
-
-/*
- * get_DNS_NetworkParams()
- *
- * Locates DNS info using GetNetworkParams() function from the Internet
- * Protocol Helper (IP Helper) API. When located, this returns a pointer
- * in *outptr to a newly allocated memory area holding a null-terminated
- * string with a space or comma seperated list of DNS IP addresses.
- *
- * Returns 0 and nullifies *outptr upon inability to return DNSes string.
- *
- * Returns 1 and sets *outptr when returning a dynamically allocated string.
- *
- * Implementation supports Windows 98 and newer.
- *
- * Note: Ancient PSDK required in order to build a W98 target.
- */
-static int get_DNS_NetworkParams(char **outptr)
-{
- FIXED_INFO *fi, *newfi;
- struct ares_addr namesrvr;
- char *txtaddr;
- IP_ADDR_STRING *ipAddr;
- int res;
- DWORD size = sizeof (*fi);
-
- *outptr = NULL;
-
- /* Verify run-time availability of GetNetworkParams() */
- if (ares_fpGetNetworkParams == ZERO_NULL)
- return 0;
-
+}
+
+/*
+ * get_DNS_NetworkParams()
+ *
+ * Locates DNS info using GetNetworkParams() function from the Internet
+ * Protocol Helper (IP Helper) API. When located, this returns a pointer
+ * in *outptr to a newly allocated memory area holding a null-terminated
+ * string with a space or comma seperated list of DNS IP addresses.
+ *
+ * Returns 0 and nullifies *outptr upon inability to return DNSes string.
+ *
+ * Returns 1 and sets *outptr when returning a dynamically allocated string.
+ *
+ * Implementation supports Windows 98 and newer.
+ *
+ * Note: Ancient PSDK required in order to build a W98 target.
+ */
+static int get_DNS_NetworkParams(char **outptr)
+{
+ FIXED_INFO *fi, *newfi;
+ struct ares_addr namesrvr;
+ char *txtaddr;
+ IP_ADDR_STRING *ipAddr;
+ int res;
+ DWORD size = sizeof (*fi);
+
+ *outptr = NULL;
+
+ /* Verify run-time availability of GetNetworkParams() */
+ if (ares_fpGetNetworkParams == ZERO_NULL)
+ return 0;
+
fi = ares_malloc(size);
- if (!fi)
- return 0;
-
- res = (*ares_fpGetNetworkParams) (fi, &size);
- if ((res != ERROR_BUFFER_OVERFLOW) && (res != ERROR_SUCCESS))
- goto done;
-
+ if (!fi)
+ return 0;
+
+ res = (*ares_fpGetNetworkParams) (fi, &size);
+ if ((res != ERROR_BUFFER_OVERFLOW) && (res != ERROR_SUCCESS))
+ goto done;
+
newfi = ares_realloc(fi, size);
- if (!newfi)
- goto done;
-
- fi = newfi;
- res = (*ares_fpGetNetworkParams) (fi, &size);
- if (res != ERROR_SUCCESS)
- goto done;
-
- for (ipAddr = &fi->DnsServerList; ipAddr; ipAddr = ipAddr->Next)
- {
- txtaddr = &ipAddr->IpAddress.String[0];
-
- /* Validate converting textual address to binary format. */
- if (ares_inet_pton(AF_INET, txtaddr, &namesrvr.addrV4) == 1)
- {
- if ((namesrvr.addrV4.S_un.S_addr == INADDR_ANY) ||
- (namesrvr.addrV4.S_un.S_addr == INADDR_NONE))
- continue;
- }
- else if (ares_inet_pton(AF_INET6, txtaddr, &namesrvr.addrV6) == 1)
- {
- if (memcmp(&namesrvr.addrV6, &ares_in6addr_any,
- sizeof(namesrvr.addrV6)) == 0)
- continue;
- }
- else
- continue;
-
- commajoin(outptr, txtaddr);
-
- if (!*outptr)
- break;
- }
-
-done:
- if (fi)
+ if (!newfi)
+ goto done;
+
+ fi = newfi;
+ res = (*ares_fpGetNetworkParams) (fi, &size);
+ if (res != ERROR_SUCCESS)
+ goto done;
+
+ for (ipAddr = &fi->DnsServerList; ipAddr; ipAddr = ipAddr->Next)
+ {
+ txtaddr = &ipAddr->IpAddress.String[0];
+
+ /* Validate converting textual address to binary format. */
+ if (ares_inet_pton(AF_INET, txtaddr, &namesrvr.addrV4) == 1)
+ {
+ if ((namesrvr.addrV4.S_un.S_addr == INADDR_ANY) ||
+ (namesrvr.addrV4.S_un.S_addr == INADDR_NONE))
+ continue;
+ }
+ else if (ares_inet_pton(AF_INET6, txtaddr, &namesrvr.addrV6) == 1)
+ {
+ if (memcmp(&namesrvr.addrV6, &ares_in6addr_any,
+ sizeof(namesrvr.addrV6)) == 0)
+ continue;
+ }
+ else
+ continue;
+
+ commajoin(outptr, txtaddr);
+
+ if (!*outptr)
+ break;
+ }
+
+done:
+ if (fi)
ares_free(fi);
-
- if (!*outptr)
- return 0;
-
- return 1;
-}
-
+
+ if (!*outptr)
+ return 0;
+
+ return 1;
+}
+
static BOOL ares_IsWindowsVistaOrGreater(void)
{
OSVERSIONINFO vinfo;
@@ -1101,32 +1101,32 @@ static ULONG getBestRouteMetric(IF_LUID * const luid, /* Can't be const :( */
return row.Metric + interfaceMetric;
}
-/*
- * get_DNS_AdaptersAddresses()
- *
- * Locates DNS info using GetAdaptersAddresses() function from the Internet
- * Protocol Helper (IP Helper) API. When located, this returns a pointer
- * in *outptr to a newly allocated memory area holding a null-terminated
- * string with a space or comma seperated list of DNS IP addresses.
- *
- * Returns 0 and nullifies *outptr upon inability to return DNSes string.
- *
- * Returns 1 and sets *outptr when returning a dynamically allocated string.
- *
- * Implementation supports Windows XP and newer.
- */
-#define IPAA_INITIAL_BUF_SZ 15 * 1024
-#define IPAA_MAX_TRIES 3
-static int get_DNS_AdaptersAddresses(char **outptr)
-{
- IP_ADAPTER_DNS_SERVER_ADDRESS *ipaDNSAddr;
- IP_ADAPTER_ADDRESSES *ipaa, *newipaa, *ipaaEntry;
- ULONG ReqBufsz = IPAA_INITIAL_BUF_SZ;
- ULONG Bufsz = IPAA_INITIAL_BUF_SZ;
- ULONG AddrFlags = 0;
- int trying = IPAA_MAX_TRIES;
- int res;
-
+/*
+ * get_DNS_AdaptersAddresses()
+ *
+ * Locates DNS info using GetAdaptersAddresses() function from the Internet
+ * Protocol Helper (IP Helper) API. When located, this returns a pointer
+ * in *outptr to a newly allocated memory area holding a null-terminated
+ * string with a space or comma seperated list of DNS IP addresses.
+ *
+ * Returns 0 and nullifies *outptr upon inability to return DNSes string.
+ *
+ * Returns 1 and sets *outptr when returning a dynamically allocated string.
+ *
+ * Implementation supports Windows XP and newer.
+ */
+#define IPAA_INITIAL_BUF_SZ 15 * 1024
+#define IPAA_MAX_TRIES 3
+static int get_DNS_AdaptersAddresses(char **outptr)
+{
+ IP_ADAPTER_DNS_SERVER_ADDRESS *ipaDNSAddr;
+ IP_ADAPTER_ADDRESSES *ipaa, *newipaa, *ipaaEntry;
+ ULONG ReqBufsz = IPAA_INITIAL_BUF_SZ;
+ ULONG Bufsz = IPAA_INITIAL_BUF_SZ;
+ ULONG AddrFlags = 0;
+ int trying = IPAA_MAX_TRIES;
+ int res;
+
/* The capacity of addresses, in elements. */
size_t addressesSize;
/* The number of elements in addresses. */
@@ -1134,22 +1134,22 @@ static int get_DNS_AdaptersAddresses(char **outptr)
/* The addresses we will sort. */
Address *addresses;
- union {
- struct sockaddr *sa;
- struct sockaddr_in *sa4;
- struct sockaddr_in6 *sa6;
- } namesrvr;
-
- *outptr = NULL;
-
- /* Verify run-time availability of GetAdaptersAddresses() */
- if (ares_fpGetAdaptersAddresses == ZERO_NULL)
- return 0;
-
+ union {
+ struct sockaddr *sa;
+ struct sockaddr_in *sa4;
+ struct sockaddr_in6 *sa6;
+ } namesrvr;
+
+ *outptr = NULL;
+
+ /* Verify run-time availability of GetAdaptersAddresses() */
+ if (ares_fpGetAdaptersAddresses == ZERO_NULL)
+ return 0;
+
ipaa = ares_malloc(Bufsz);
- if (!ipaa)
- return 0;
-
+ if (!ipaa)
+ return 0;
+
/* Start with enough room for a few DNS server addresses and we'll grow it
* as we encounter more.
*/
@@ -1161,32 +1161,32 @@ static int get_DNS_AdaptersAddresses(char **outptr)
return 0;
}
- /* Usually this call suceeds with initial buffer size */
- res = (*ares_fpGetAdaptersAddresses) (AF_UNSPEC, AddrFlags, NULL,
- ipaa, &ReqBufsz);
- if ((res != ERROR_BUFFER_OVERFLOW) && (res != ERROR_SUCCESS))
- goto done;
-
- while ((res == ERROR_BUFFER_OVERFLOW) && (--trying))
- {
- if (Bufsz < ReqBufsz)
- {
+ /* Usually this call suceeds with initial buffer size */
+ res = (*ares_fpGetAdaptersAddresses) (AF_UNSPEC, AddrFlags, NULL,
+ ipaa, &ReqBufsz);
+ if ((res != ERROR_BUFFER_OVERFLOW) && (res != ERROR_SUCCESS))
+ goto done;
+
+ while ((res == ERROR_BUFFER_OVERFLOW) && (--trying))
+ {
+ if (Bufsz < ReqBufsz)
+ {
newipaa = ares_realloc(ipaa, ReqBufsz);
- if (!newipaa)
- goto done;
- Bufsz = ReqBufsz;
- ipaa = newipaa;
- }
- res = (*ares_fpGetAdaptersAddresses) (AF_UNSPEC, AddrFlags, NULL,
- ipaa, &ReqBufsz);
- if (res == ERROR_SUCCESS)
- break;
- }
- if (res != ERROR_SUCCESS)
- goto done;
-
- for (ipaaEntry = ipaa; ipaaEntry; ipaaEntry = ipaaEntry->Next)
- {
+ if (!newipaa)
+ goto done;
+ Bufsz = ReqBufsz;
+ ipaa = newipaa;
+ }
+ res = (*ares_fpGetAdaptersAddresses) (AF_UNSPEC, AddrFlags, NULL,
+ ipaa, &ReqBufsz);
+ if (res == ERROR_SUCCESS)
+ break;
+ }
+ if (res != ERROR_SUCCESS)
+ goto done;
+
+ for (ipaaEntry = ipaa; ipaaEntry; ipaaEntry = ipaaEntry->Next)
+ {
if(ipaaEntry->OperStatus != IfOperStatusUp)
continue;
@@ -1196,17 +1196,17 @@ static int get_DNS_AdaptersAddresses(char **outptr)
* compute the resulting total metric, just as Windows routing will do.
* Then, sort all the addresses found by the metric.
*/
- for (ipaDNSAddr = ipaaEntry->FirstDnsServerAddress;
- ipaDNSAddr;
- ipaDNSAddr = ipaDNSAddr->Next)
- {
- namesrvr.sa = ipaDNSAddr->Address.lpSockaddr;
-
- if (namesrvr.sa->sa_family == AF_INET)
- {
- if ((namesrvr.sa4->sin_addr.S_un.S_addr == INADDR_ANY) ||
- (namesrvr.sa4->sin_addr.S_un.S_addr == INADDR_NONE))
- continue;
+ for (ipaDNSAddr = ipaaEntry->FirstDnsServerAddress;
+ ipaDNSAddr;
+ ipaDNSAddr = ipaDNSAddr->Next)
+ {
+ namesrvr.sa = ipaDNSAddr->Address.lpSockaddr;
+
+ if (namesrvr.sa->sa_family == AF_INET)
+ {
+ if ((namesrvr.sa4->sin_addr.S_un.S_addr == INADDR_ANY) ||
+ (namesrvr.sa4->sin_addr.S_un.S_addr == INADDR_NONE))
+ continue;
/* Allocate room for another address, if necessary, else skip. */
if(addressesIndex == addressesSize) {
@@ -1237,18 +1237,18 @@ static int get_DNS_AdaptersAddresses(char **outptr)
/* Record insertion index to make qsort stable */
addresses[addressesIndex].orig_idx = addressesIndex;
- if (! ares_inet_ntop(AF_INET, &namesrvr.sa4->sin_addr,
+ if (! ares_inet_ntop(AF_INET, &namesrvr.sa4->sin_addr,
addresses[addressesIndex].text,
sizeof(addresses[0].text))) {
- continue;
+ continue;
}
++addressesIndex;
- }
- else if (namesrvr.sa->sa_family == AF_INET6)
- {
- if (memcmp(&namesrvr.sa6->sin6_addr, &ares_in6addr_any,
- sizeof(namesrvr.sa6->sin6_addr)) == 0)
- continue;
+ }
+ else if (namesrvr.sa->sa_family == AF_INET6)
+ {
+ if (memcmp(&namesrvr.sa6->sin6_addr, &ares_in6addr_any,
+ sizeof(namesrvr.sa6->sin6_addr)) == 0)
+ continue;
/* Allocate room for another address, if necessary, else skip. */
if(addressesIndex == addressesSize) {
@@ -1279,24 +1279,24 @@ static int get_DNS_AdaptersAddresses(char **outptr)
/* Record insertion index to make qsort stable */
addresses[addressesIndex].orig_idx = addressesIndex;
- if (! ares_inet_ntop(AF_INET6, &namesrvr.sa6->sin6_addr,
+ if (! ares_inet_ntop(AF_INET6, &namesrvr.sa6->sin6_addr,
addresses[addressesIndex].text,
sizeof(addresses[0].text))) {
- continue;
+ continue;
}
++addressesIndex;
- }
+ }
else {
/* Skip non-IPv4/IPv6 addresses completely. */
- continue;
+ continue;
}
}
}
-
+
/* Sort all of the textual addresses by their metric (and original index if
* metrics are equal). */
qsort(addresses, addressesIndex, sizeof(*addresses), compareAddresses);
-
+
/* Join them all into a single string, removing duplicates. */
{
size_t i;
@@ -1313,50 +1313,50 @@ static int get_DNS_AdaptersAddresses(char **outptr)
/* Add that to outptr (if we can). */
commajoin(outptr, addresses[i].text);
}
- }
- }
-
-done:
+ }
+ }
+
+done:
ares_free(addresses);
- if (ipaa)
+ if (ipaa)
ares_free(ipaa);
-
+
if (!*outptr) {
- return 0;
+ return 0;
}
-
- return 1;
-}
-
-/*
- * get_DNS_Windows()
- *
- * Locates DNS info from Windows employing most suitable methods available at
- * run-time no matter which Windows version it is. When located, this returns
- * a pointer in *outptr to a newly allocated memory area holding a string with
- * a space or comma seperated list of DNS IP addresses, null-terminated.
- *
- * Returns 0 and nullifies *outptr upon inability to return DNSes string.
- *
- * Returns 1 and sets *outptr when returning a dynamically allocated string.
- *
- * Implementation supports Windows 95 and newer.
- */
-static int get_DNS_Windows(char **outptr)
-{
+
+ return 1;
+}
+
+/*
+ * get_DNS_Windows()
+ *
+ * Locates DNS info from Windows employing most suitable methods available at
+ * run-time no matter which Windows version it is. When located, this returns
+ * a pointer in *outptr to a newly allocated memory area holding a string with
+ * a space or comma seperated list of DNS IP addresses, null-terminated.
+ *
+ * Returns 0 and nullifies *outptr upon inability to return DNSes string.
+ *
+ * Returns 1 and sets *outptr when returning a dynamically allocated string.
+ *
+ * Implementation supports Windows 95 and newer.
+ */
+static int get_DNS_Windows(char **outptr)
+{
/* Try using IP helper API GetAdaptersAddresses(). IPv4 + IPv6, also sorts
* DNS servers by interface route metrics to try to use the best DNS server. */
- if (get_DNS_AdaptersAddresses(outptr))
- return 1;
-
+ if (get_DNS_AdaptersAddresses(outptr))
+ return 1;
+
/* Try using IP helper API GetNetworkParams(). IPv4 only. */
- if (get_DNS_NetworkParams(outptr))
- return 1;
-
- /* Fall-back to registry information */
- return get_DNS_Registry(outptr);
-}
+ if (get_DNS_NetworkParams(outptr))
+ return 1;
+
+ /* Fall-back to registry information */
+ return get_DNS_Registry(outptr);
+}
/*
* get_SuffixList_Windows()
@@ -1465,102 +1465,102 @@ static int get_SuffixList_Windows(char **outptr)
return *outptr != NULL;
}
-#endif
-
-static int init_by_resolv_conf(ares_channel channel)
-{
+#endif
+
+static int init_by_resolv_conf(ares_channel channel)
+{
#if !defined(ANDROID) && !defined(__ANDROID__) && !defined(WATT32) && \
!defined(CARES_USE_LIBRESOLV)
- char *line = NULL;
-#endif
- int status = -1, nservers = 0, nsort = 0;
- struct server_state *servers = NULL;
- struct apattern *sortlist = NULL;
-
-#ifdef WIN32
-
- if (channel->nservers > -1) /* don't override ARES_OPT_SERVER */
- return ARES_SUCCESS;
-
- if (get_DNS_Windows(&line))
- {
- status = config_nameserver(&servers, &nservers, line);
+ char *line = NULL;
+#endif
+ int status = -1, nservers = 0, nsort = 0;
+ struct server_state *servers = NULL;
+ struct apattern *sortlist = NULL;
+
+#ifdef WIN32
+
+ if (channel->nservers > -1) /* don't override ARES_OPT_SERVER */
+ return ARES_SUCCESS;
+
+ if (get_DNS_Windows(&line))
+ {
+ status = config_nameserver(&servers, &nservers, line);
ares_free(line);
- }
-
+ }
+
if (channel->ndomains == -1 && get_SuffixList_Windows(&line))
{
status = set_search(channel, line);
ares_free(line);
}
- if (status == ARES_SUCCESS)
- status = ARES_EOF;
- else
- /* Catch the case when all the above checks fail (which happens when there
- is no network card or the cable is unplugged) */
- status = ARES_EFILE;
-
-#elif defined(__riscos__)
-
- /* Under RISC OS, name servers are listed in the
- system variable Inet$Resolvers, space separated. */
-
- line = getenv("Inet$Resolvers");
- status = ARES_EOF;
- if (line) {
+ if (status == ARES_SUCCESS)
+ status = ARES_EOF;
+ else
+ /* Catch the case when all the above checks fail (which happens when there
+ is no network card or the cable is unplugged) */
+ status = ARES_EFILE;
+
+#elif defined(__riscos__)
+
+ /* Under RISC OS, name servers are listed in the
+ system variable Inet$Resolvers, space separated. */
+
+ line = getenv("Inet$Resolvers");
+ status = ARES_EOF;
+ if (line) {
char *resolvers = ares_strdup(line), *pos, *space;
-
- if (!resolvers)
- return ARES_ENOMEM;
-
- pos = resolvers;
- do {
- space = strchr(pos, ' ');
- if (space)
- *space = '\0';
- status = config_nameserver(&servers, &nservers, pos);
- if (status != ARES_SUCCESS)
- break;
- pos = space + 1;
- } while (space);
-
- if (status == ARES_SUCCESS)
- status = ARES_EOF;
-
+
+ if (!resolvers)
+ return ARES_ENOMEM;
+
+ pos = resolvers;
+ do {
+ space = strchr(pos, ' ');
+ if (space)
+ *space = '\0';
+ status = config_nameserver(&servers, &nservers, pos);
+ if (status != ARES_SUCCESS)
+ break;
+ pos = space + 1;
+ } while (space);
+
+ if (status == ARES_SUCCESS)
+ status = ARES_EOF;
+
ares_free(resolvers);
- }
-
-#elif defined(WATT32)
- int i;
-
- sock_init();
- for (i = 0; def_nameservers[i]; i++)
- ;
- if (i == 0)
- return ARES_SUCCESS; /* use localhost DNS server */
-
- nservers = i;
+ }
+
+#elif defined(WATT32)
+ int i;
+
+ sock_init();
+ for (i = 0; def_nameservers[i]; i++)
+ ;
+ if (i == 0)
+ return ARES_SUCCESS; /* use localhost DNS server */
+
+ nservers = i;
servers = ares_malloc(sizeof(struct server_state));
- if (!servers)
- return ARES_ENOMEM;
+ if (!servers)
+ return ARES_ENOMEM;
memset(servers, 0, sizeof(struct server_state));
-
- for (i = 0; def_nameservers[i]; i++)
- {
- servers[i].addr.addrV4.s_addr = htonl(def_nameservers[i]);
- servers[i].addr.family = AF_INET;
+
+ for (i = 0; def_nameservers[i]; i++)
+ {
+ servers[i].addr.addrV4.s_addr = htonl(def_nameservers[i]);
+ servers[i].addr.family = AF_INET;
servers[i].addr.udp_port = 0;
servers[i].addr.tcp_port = 0;
- }
- status = ARES_EOF;
-
-#elif defined(ANDROID) || defined(__ANDROID__)
- unsigned int i;
+ }
+ status = ARES_EOF;
+
+#elif defined(ANDROID) || defined(__ANDROID__)
+ unsigned int i;
char **dns_servers;
char *domains;
size_t num_servers;
-
+
/* Use the Android connectivity manager to get a list
* of DNS servers. As of Android 8 (Oreo) net.dns#
* system properties are no longer available. Google claims this
@@ -1575,8 +1575,8 @@ static int init_by_resolv_conf(ares_channel channel)
status = config_nameserver(&servers, &nservers, dns_servers[i]);
if (status != ARES_SUCCESS)
break;
- status = ARES_EOF;
- }
+ status = ARES_EOF;
+ }
for (i = 0; i < num_servers; i++)
{
ares_free(dns_servers[i]);
@@ -1620,7 +1620,7 @@ static int init_by_resolv_conf(ares_channel channel)
memset(&res, 0, sizeof(res));
int result = res_ninit(&res);
if (result == 0 && (res.options & RES_INIT)) {
- status = ARES_EOF;
+ status = ARES_EOF;
if (channel->nservers == -1) {
union res_sockaddr_union addr[MAXNS];
@@ -1671,20 +1671,20 @@ static int init_by_resolv_conf(ares_channel channel)
channel->timeout = res.retrans * 1000;
res_ndestroy(&res);
- }
-#else
- {
- char *p;
- FILE *fp;
- size_t linesize;
- int error;
+ }
+#else
+ {
+ char *p;
+ FILE *fp;
+ size_t linesize;
+ int error;
int update_domains;
const char *resolvconf_path;
-
- /* Don't read resolv.conf and friends if we don't have to */
- if (ARES_CONFIG_CHECK(channel))
- return ARES_SUCCESS;
-
+
+ /* Don't read resolv.conf and friends if we don't have to */
+ if (ARES_CONFIG_CHECK(channel))
+ return ARES_SUCCESS;
+
/* Only update search domains if they're not already specified */
update_domains = (channel->ndomains == -1);
@@ -1696,381 +1696,381 @@ static int init_by_resolv_conf(ares_channel channel)
}
fp = fopen(resolvconf_path, "r");
- if (fp) {
- while ((status = ares__read_line(fp, &line, &linesize)) == ARES_SUCCESS)
- {
+ if (fp) {
+ while ((status = ares__read_line(fp, &line, &linesize)) == ARES_SUCCESS)
+ {
if ((p = try_config(line, "domain", ';')) && update_domains)
- status = config_domain(channel, p);
- else if ((p = try_config(line, "lookup", ';')) && !channel->lookups)
+ status = config_domain(channel, p);
+ else if ((p = try_config(line, "lookup", ';')) && !channel->lookups)
status = config_lookup(channel, p, "bind", NULL, "file");
else if ((p = try_config(line, "search", ';')) && update_domains)
- status = set_search(channel, p);
- else if ((p = try_config(line, "nameserver", ';')) &&
+ status = set_search(channel, p);
+ else if ((p = try_config(line, "nameserver", ';')) &&
channel->nservers == -1)
- status = config_nameserver(&servers, &nservers, p);
- else if ((p = try_config(line, "sortlist", ';')) &&
+ status = config_nameserver(&servers, &nservers, p);
+ else if ((p = try_config(line, "sortlist", ';')) &&
channel->nsort == -1)
- status = config_sortlist(&sortlist, &nsort, p);
- else if ((p = try_config(line, "options", ';')))
- status = set_options(channel, p);
- else
- status = ARES_SUCCESS;
- if (status != ARES_SUCCESS)
- break;
- }
- fclose(fp);
- }
- else {
- error = ERRNO;
- switch(error) {
- case ENOENT:
- case ESRCH:
- status = ARES_EOF;
- break;
- default:
- DEBUGF(fprintf(stderr, "fopen() failed with error: %d %s\n",
+ status = config_sortlist(&sortlist, &nsort, p);
+ else if ((p = try_config(line, "options", ';')))
+ status = set_options(channel, p);
+ else
+ status = ARES_SUCCESS;
+ if (status != ARES_SUCCESS)
+ break;
+ }
+ fclose(fp);
+ }
+ else {
+ error = ERRNO;
+ switch(error) {
+ case ENOENT:
+ case ESRCH:
+ status = ARES_EOF;
+ break;
+ default:
+ DEBUGF(fprintf(stderr, "fopen() failed with error: %d %s\n",
error, strerror(error)));
- DEBUGF(fprintf(stderr, "Error opening file: %s\n", PATH_RESOLV_CONF));
- status = ARES_EFILE;
- }
- }
-
- if ((status == ARES_EOF) && (!channel->lookups)) {
- /* Many systems (Solaris, Linux, BSD's) use nsswitch.conf */
- fp = fopen("/etc/nsswitch.conf", "r");
- if (fp) {
- while ((status = ares__read_line(fp, &line, &linesize)) ==
- ARES_SUCCESS)
- {
- if ((p = try_config(line, "hosts:", '\0')) && !channel->lookups)
+ DEBUGF(fprintf(stderr, "Error opening file: %s\n", PATH_RESOLV_CONF));
+ status = ARES_EFILE;
+ }
+ }
+
+ if ((status == ARES_EOF) && (!channel->lookups)) {
+ /* Many systems (Solaris, Linux, BSD's) use nsswitch.conf */
+ fp = fopen("/etc/nsswitch.conf", "r");
+ if (fp) {
+ while ((status = ares__read_line(fp, &line, &linesize)) ==
+ ARES_SUCCESS)
+ {
+ if ((p = try_config(line, "hosts:", '\0')) && !channel->lookups)
(void)config_lookup(channel, p, "dns", "resolve", "files");
- }
- fclose(fp);
- }
- else {
- error = ERRNO;
- switch(error) {
- case ENOENT:
- case ESRCH:
- break;
- default:
- DEBUGF(fprintf(stderr, "fopen() failed with error: %d %s\n",
- error, strerror(error)));
- DEBUGF(fprintf(stderr, "Error opening file: %s\n",
- "/etc/nsswitch.conf"));
- }
+ }
+ fclose(fp);
+ }
+ else {
+ error = ERRNO;
+ switch(error) {
+ case ENOENT:
+ case ESRCH:
+ break;
+ default:
+ DEBUGF(fprintf(stderr, "fopen() failed with error: %d %s\n",
+ error, strerror(error)));
+ DEBUGF(fprintf(stderr, "Error opening file: %s\n",
+ "/etc/nsswitch.conf"));
+ }
/* ignore error, maybe we will get luck in next if clause */
status = ARES_EOF;
- }
- }
-
- if ((status == ARES_EOF) && (!channel->lookups)) {
- /* Linux / GNU libc 2.x and possibly others have host.conf */
- fp = fopen("/etc/host.conf", "r");
- if (fp) {
- while ((status = ares__read_line(fp, &line, &linesize)) ==
- ARES_SUCCESS)
- {
- if ((p = try_config(line, "order", '\0')) && !channel->lookups)
- /* ignore errors */
+ }
+ }
+
+ if ((status == ARES_EOF) && (!channel->lookups)) {
+ /* Linux / GNU libc 2.x and possibly others have host.conf */
+ fp = fopen("/etc/host.conf", "r");
+ if (fp) {
+ while ((status = ares__read_line(fp, &line, &linesize)) ==
+ ARES_SUCCESS)
+ {
+ if ((p = try_config(line, "order", '\0')) && !channel->lookups)
+ /* ignore errors */
(void)config_lookup(channel, p, "bind", NULL, "hosts");
- }
- fclose(fp);
- }
- else {
- error = ERRNO;
- switch(error) {
- case ENOENT:
- case ESRCH:
- break;
- default:
- DEBUGF(fprintf(stderr, "fopen() failed with error: %d %s\n",
- error, strerror(error)));
- DEBUGF(fprintf(stderr, "Error opening file: %s\n",
- "/etc/host.conf"));
- }
+ }
+ fclose(fp);
+ }
+ else {
+ error = ERRNO;
+ switch(error) {
+ case ENOENT:
+ case ESRCH:
+ break;
+ default:
+ DEBUGF(fprintf(stderr, "fopen() failed with error: %d %s\n",
+ error, strerror(error)));
+ DEBUGF(fprintf(stderr, "Error opening file: %s\n",
+ "/etc/host.conf"));
+ }
/* ignore error, maybe we will get luck in next if clause */
status = ARES_EOF;
- }
- }
-
- if ((status == ARES_EOF) && (!channel->lookups)) {
- /* Tru64 uses /etc/svc.conf */
- fp = fopen("/etc/svc.conf", "r");
- if (fp) {
- while ((status = ares__read_line(fp, &line, &linesize)) ==
- ARES_SUCCESS)
- {
- if ((p = try_config(line, "hosts=", '\0')) && !channel->lookups)
- /* ignore errors */
+ }
+ }
+
+ if ((status == ARES_EOF) && (!channel->lookups)) {
+ /* Tru64 uses /etc/svc.conf */
+ fp = fopen("/etc/svc.conf", "r");
+ if (fp) {
+ while ((status = ares__read_line(fp, &line, &linesize)) ==
+ ARES_SUCCESS)
+ {
+ if ((p = try_config(line, "hosts=", '\0')) && !channel->lookups)
+ /* ignore errors */
(void)config_lookup(channel, p, "bind", NULL, "local");
- }
- fclose(fp);
- }
- else {
- error = ERRNO;
- switch(error) {
- case ENOENT:
- case ESRCH:
- break;
- default:
- DEBUGF(fprintf(stderr, "fopen() failed with error: %d %s\n",
- error, strerror(error)));
- DEBUGF(fprintf(stderr, "Error opening file: %s\n", "/etc/svc.conf"));
- }
+ }
+ fclose(fp);
+ }
+ else {
+ error = ERRNO;
+ switch(error) {
+ case ENOENT:
+ case ESRCH:
+ break;
+ default:
+ DEBUGF(fprintf(stderr, "fopen() failed with error: %d %s\n",
+ error, strerror(error)));
+ DEBUGF(fprintf(stderr, "Error opening file: %s\n", "/etc/svc.conf"));
+ }
/* ignore error, default value will be chosen for `channel->lookups` */
status = ARES_EOF;
- }
- }
-
- if(line)
+ }
+ }
+
+ if(line)
ares_free(line);
- }
-
-#endif
-
- /* Handle errors. */
- if (status != ARES_EOF)
- {
- if (servers != NULL)
+ }
+
+#endif
+
+ /* Handle errors. */
+ if (status != ARES_EOF)
+ {
+ if (servers != NULL)
ares_free(servers);
- if (sortlist != NULL)
+ if (sortlist != NULL)
ares_free(sortlist);
- return status;
- }
-
- /* If we got any name server entries, fill them in. */
- if (servers)
- {
- channel->servers = servers;
- channel->nservers = nservers;
- }
-
- /* If we got any sortlist entries, fill them in. */
- if (sortlist)
- {
- channel->sortlist = sortlist;
- channel->nsort = nsort;
- }
-
- return ARES_SUCCESS;
-}
-
-static int init_by_defaults(ares_channel channel)
-{
- char *hostname = NULL;
- int rc = ARES_SUCCESS;
-#ifdef HAVE_GETHOSTNAME
- char *dot;
-#endif
-
- if (channel->flags == -1)
- channel->flags = 0;
- if (channel->timeout == -1)
- channel->timeout = DEFAULT_TIMEOUT;
- if (channel->tries == -1)
- channel->tries = DEFAULT_TRIES;
- if (channel->ndots == -1)
- channel->ndots = 1;
- if (channel->rotate == -1)
- channel->rotate = 0;
- if (channel->udp_port == -1)
- channel->udp_port = htons(NAMESERVER_PORT);
- if (channel->tcp_port == -1)
- channel->tcp_port = htons(NAMESERVER_PORT);
-
- if (channel->ednspsz == -1)
- channel->ednspsz = EDNSPACKETSZ;
-
- if (channel->nservers == -1) {
- /* If nobody specified servers, try a local named. */
+ return status;
+ }
+
+ /* If we got any name server entries, fill them in. */
+ if (servers)
+ {
+ channel->servers = servers;
+ channel->nservers = nservers;
+ }
+
+ /* If we got any sortlist entries, fill them in. */
+ if (sortlist)
+ {
+ channel->sortlist = sortlist;
+ channel->nsort = nsort;
+ }
+
+ return ARES_SUCCESS;
+}
+
+static int init_by_defaults(ares_channel channel)
+{
+ char *hostname = NULL;
+ int rc = ARES_SUCCESS;
+#ifdef HAVE_GETHOSTNAME
+ char *dot;
+#endif
+
+ if (channel->flags == -1)
+ channel->flags = 0;
+ if (channel->timeout == -1)
+ channel->timeout = DEFAULT_TIMEOUT;
+ if (channel->tries == -1)
+ channel->tries = DEFAULT_TRIES;
+ if (channel->ndots == -1)
+ channel->ndots = 1;
+ if (channel->rotate == -1)
+ channel->rotate = 0;
+ if (channel->udp_port == -1)
+ channel->udp_port = htons(NAMESERVER_PORT);
+ if (channel->tcp_port == -1)
+ channel->tcp_port = htons(NAMESERVER_PORT);
+
+ if (channel->ednspsz == -1)
+ channel->ednspsz = EDNSPACKETSZ;
+
+ if (channel->nservers == -1) {
+ /* If nobody specified servers, try a local named. */
channel->servers = ares_malloc(sizeof(struct server_state));
- if (!channel->servers) {
- rc = ARES_ENOMEM;
- goto error;
- }
- channel->servers[0].addr.family = AF_INET;
- channel->servers[0].addr.addrV4.s_addr = htonl(INADDR_LOOPBACK);
+ if (!channel->servers) {
+ rc = ARES_ENOMEM;
+ goto error;
+ }
+ channel->servers[0].addr.family = AF_INET;
+ channel->servers[0].addr.addrV4.s_addr = htonl(INADDR_LOOPBACK);
channel->servers[0].addr.udp_port = 0;
channel->servers[0].addr.tcp_port = 0;
- channel->nservers = 1;
- }
-
-#if defined(USE_WINSOCK)
-#define toolong(x) (x == -1) && (SOCKERRNO == WSAEFAULT)
-#elif defined(ENAMETOOLONG)
-#define toolong(x) (x == -1) && ((SOCKERRNO == ENAMETOOLONG) || \
- (SOCKERRNO == EINVAL))
-#else
-#define toolong(x) (x == -1) && (SOCKERRNO == EINVAL)
-#endif
-
- if (channel->ndomains == -1) {
- /* Derive a default domain search list from the kernel hostname,
- * or set it to empty if the hostname isn't helpful.
- */
-#ifndef HAVE_GETHOSTNAME
- channel->ndomains = 0; /* default to none */
-#else
- GETHOSTNAME_TYPE_ARG2 lenv = 64;
- size_t len = 64;
- int res;
- channel->ndomains = 0; /* default to none */
-
+ channel->nservers = 1;
+ }
+
+#if defined(USE_WINSOCK)
+#define toolong(x) (x == -1) && (SOCKERRNO == WSAEFAULT)
+#elif defined(ENAMETOOLONG)
+#define toolong(x) (x == -1) && ((SOCKERRNO == ENAMETOOLONG) || \
+ (SOCKERRNO == EINVAL))
+#else
+#define toolong(x) (x == -1) && (SOCKERRNO == EINVAL)
+#endif
+
+ if (channel->ndomains == -1) {
+ /* Derive a default domain search list from the kernel hostname,
+ * or set it to empty if the hostname isn't helpful.
+ */
+#ifndef HAVE_GETHOSTNAME
+ channel->ndomains = 0; /* default to none */
+#else
+ GETHOSTNAME_TYPE_ARG2 lenv = 64;
+ size_t len = 64;
+ int res;
+ channel->ndomains = 0; /* default to none */
+
hostname = ares_malloc(len);
- if(!hostname) {
- rc = ARES_ENOMEM;
- goto error;
- }
-
- do {
- res = gethostname(hostname, lenv);
-
- if(toolong(res)) {
- char *p;
- len *= 2;
- lenv *= 2;
+ if(!hostname) {
+ rc = ARES_ENOMEM;
+ goto error;
+ }
+
+ do {
+ res = gethostname(hostname, lenv);
+
+ if(toolong(res)) {
+ char *p;
+ len *= 2;
+ lenv *= 2;
p = ares_realloc(hostname, len);
- if(!p) {
- rc = ARES_ENOMEM;
- goto error;
- }
- hostname = p;
- continue;
- }
- else if(res) {
+ if(!p) {
+ rc = ARES_ENOMEM;
+ goto error;
+ }
+ hostname = p;
+ continue;
+ }
+ else if(res) {
/* Lets not treat a gethostname failure as critical, since we
* are ok if gethostname doesn't even exist */
*hostname = '\0';
break;
- }
-
+ }
+
} while (res != 0);
-
- dot = strchr(hostname, '.');
- if (dot) {
- /* a dot was found */
+
+ dot = strchr(hostname, '.');
+ if (dot) {
+ /* a dot was found */
channel->domains = ares_malloc(sizeof(char *));
- if (!channel->domains) {
- rc = ARES_ENOMEM;
- goto error;
- }
+ if (!channel->domains) {
+ rc = ARES_ENOMEM;
+ goto error;
+ }
channel->domains[0] = ares_strdup(dot + 1);
- if (!channel->domains[0]) {
- rc = ARES_ENOMEM;
- goto error;
- }
- channel->ndomains = 1;
- }
-#endif
- }
-
- if (channel->nsort == -1) {
- channel->sortlist = NULL;
- channel->nsort = 0;
- }
-
- if (!channel->lookups) {
+ if (!channel->domains[0]) {
+ rc = ARES_ENOMEM;
+ goto error;
+ }
+ channel->ndomains = 1;
+ }
+#endif
+ }
+
+ if (channel->nsort == -1) {
+ channel->sortlist = NULL;
+ channel->nsort = 0;
+ }
+
+ if (!channel->lookups) {
channel->lookups = ares_strdup("fb");
- if (!channel->lookups)
- rc = ARES_ENOMEM;
- }
-
- error:
- if(rc) {
- if(channel->servers) {
+ if (!channel->lookups)
+ rc = ARES_ENOMEM;
+ }
+
+ error:
+ if(rc) {
+ if(channel->servers) {
ares_free(channel->servers);
- channel->servers = NULL;
- }
-
- if(channel->domains && channel->domains[0])
+ channel->servers = NULL;
+ }
+
+ if(channel->domains && channel->domains[0])
ares_free(channel->domains[0]);
- if(channel->domains) {
+ if(channel->domains) {
ares_free(channel->domains);
- channel->domains = NULL;
- }
-
- if(channel->lookups) {
+ channel->domains = NULL;
+ }
+
+ if(channel->lookups) {
ares_free(channel->lookups);
- channel->lookups = NULL;
- }
+ channel->lookups = NULL;
+ }
if(channel->resolvconf_path) {
ares_free(channel->resolvconf_path);
channel->resolvconf_path = NULL;
}
- }
-
- if(hostname)
+ }
+
+ if(hostname)
ares_free(hostname);
-
- return rc;
-}
-
-#if !defined(WIN32) && !defined(WATT32) && \
+
+ return rc;
+}
+
+#if !defined(WIN32) && !defined(WATT32) && \
!defined(ANDROID) && !defined(__ANDROID__) && !defined(CARES_USE_LIBRESOLV)
-static int config_domain(ares_channel channel, char *str)
-{
- char *q;
-
- /* Set a single search domain. */
- q = str;
- while (*q && !ISSPACE(*q))
- q++;
- *q = '\0';
- return set_search(channel, str);
-}
-
-#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER == 910) && \
- defined(__OPTIMIZE__) && defined(__unix__) && defined(__i386__)
- /* workaround icc 9.1 optimizer issue */
-# define vqualifier volatile
-#else
-# define vqualifier
-#endif
-
-static int config_lookup(ares_channel channel, const char *str,
+static int config_domain(ares_channel channel, char *str)
+{
+ char *q;
+
+ /* Set a single search domain. */
+ q = str;
+ while (*q && !ISSPACE(*q))
+ q++;
+ *q = '\0';
+ return set_search(channel, str);
+}
+
+#if defined(__INTEL_COMPILER) && (__INTEL_COMPILER == 910) && \
+ defined(__OPTIMIZE__) && defined(__unix__) && defined(__i386__)
+ /* workaround icc 9.1 optimizer issue */
+# define vqualifier volatile
+#else
+# define vqualifier
+#endif
+
+static int config_lookup(ares_channel channel, const char *str,
const char *bindch, const char *altbindch,
const char *filech)
-{
- char lookups[3], *l;
- const char *vqualifier p;
+{
+ char lookups[3], *l;
+ const char *vqualifier p;
int found;
-
+
if (altbindch == NULL)
altbindch = bindch;
- /* Set the lookup order. Only the first letter of each work
- * is relevant, and it has to be "b" for DNS or "f" for the
- * host file. Ignore everything else.
- */
- l = lookups;
- p = str;
+ /* Set the lookup order. Only the first letter of each work
+ * is relevant, and it has to be "b" for DNS or "f" for the
+ * host file. Ignore everything else.
+ */
+ l = lookups;
+ p = str;
found = 0;
- while (*p)
- {
+ while (*p)
+ {
if ((*p == *bindch || *p == *altbindch || *p == *filech) && l < lookups + 2) {
if (*p == *bindch || *p == *altbindch) *l++ = 'b';
- else *l++ = 'f';
+ else *l++ = 'f';
found = 1;
- }
- while (*p && !ISSPACE(*p) && (*p != ','))
- p++;
- while (*p && (ISSPACE(*p) || (*p == ',')))
- p++;
- }
+ }
+ while (*p && !ISSPACE(*p) && (*p != ','))
+ p++;
+ while (*p && (ISSPACE(*p) || (*p == ',')))
+ p++;
+ }
if (!found)
return ARES_ENOTINITIALIZED;
- *l = '\0';
+ *l = '\0';
channel->lookups = ares_strdup(lookups);
- return (channel->lookups) ? ARES_SUCCESS : ARES_ENOMEM;
-}
+ return (channel->lookups) ? ARES_SUCCESS : ARES_ENOMEM;
+}
#endif /* !WIN32 & !WATT32 & !ANDROID & !__ANDROID__ & !CARES_USE_LIBRESOLV */
-
-#ifndef WATT32
+
+#ifndef WATT32
/* Validate that the ip address matches the subnet (network base and network
* mask) specified. Addresses are specified in standard Network Byte Order as
* 16 bytes, and the netmask is 0 to 128 (bits).
@@ -2141,340 +2141,340 @@ static int ares_ipv6_server_blacklisted(const unsigned char ipaddr[16])
*
* Returns an error code on failure, else ARES_SUCCESS.
*/
-static int config_nameserver(struct server_state **servers, int *nservers,
- char *str)
-{
- struct ares_addr host;
- struct server_state *newserv;
- char *p, *txtaddr;
- /* On Windows, there may be more than one nameserver specified in the same
- * registry key, so we parse input as a space or comma seperated list.
- */
- for (p = str; p;)
- {
- /* Skip whitespace and commas. */
- while (*p && (ISSPACE(*p) || (*p == ',')))
- p++;
- if (!*p)
- /* No more input, done. */
- break;
-
- /* Pointer to start of IPv4 or IPv6 address part. */
- txtaddr = p;
-
- /* Advance past this address. */
- while (*p && !ISSPACE(*p) && (*p != ','))
- p++;
- if (*p)
- /* Null terminate this address. */
- *p++ = '\0';
- else
- /* Reached end of input, done when this address is processed. */
- p = NULL;
-
- /* Convert textual address to binary format. */
- if (ares_inet_pton(AF_INET, txtaddr, &host.addrV4) == 1)
- host.family = AF_INET;
+static int config_nameserver(struct server_state **servers, int *nservers,
+ char *str)
+{
+ struct ares_addr host;
+ struct server_state *newserv;
+ char *p, *txtaddr;
+ /* On Windows, there may be more than one nameserver specified in the same
+ * registry key, so we parse input as a space or comma seperated list.
+ */
+ for (p = str; p;)
+ {
+ /* Skip whitespace and commas. */
+ while (*p && (ISSPACE(*p) || (*p == ',')))
+ p++;
+ if (!*p)
+ /* No more input, done. */
+ break;
+
+ /* Pointer to start of IPv4 or IPv6 address part. */
+ txtaddr = p;
+
+ /* Advance past this address. */
+ while (*p && !ISSPACE(*p) && (*p != ','))
+ p++;
+ if (*p)
+ /* Null terminate this address. */
+ *p++ = '\0';
+ else
+ /* Reached end of input, done when this address is processed. */
+ p = NULL;
+
+ /* Convert textual address to binary format. */
+ if (ares_inet_pton(AF_INET, txtaddr, &host.addrV4) == 1)
+ host.family = AF_INET;
else if (ares_inet_pton(AF_INET6, txtaddr, &host.addrV6) == 1
/* Silently skip blacklisted IPv6 servers. */
&& !ares_ipv6_server_blacklisted(
(const unsigned char *)&host.addrV6))
- host.family = AF_INET6;
- else
- continue;
-
- /* Resize servers state array. */
+ host.family = AF_INET6;
+ else
+ continue;
+
+ /* Resize servers state array. */
newserv = ares_realloc(*servers, (*nservers + 1) *
sizeof(struct server_state));
- if (!newserv)
- return ARES_ENOMEM;
-
- /* Store address data. */
- newserv[*nservers].addr.family = host.family;
+ if (!newserv)
+ return ARES_ENOMEM;
+
+ /* Store address data. */
+ newserv[*nservers].addr.family = host.family;
newserv[*nservers].addr.udp_port = 0;
newserv[*nservers].addr.tcp_port = 0;
- if (host.family == AF_INET)
- memcpy(&newserv[*nservers].addr.addrV4, &host.addrV4,
- sizeof(host.addrV4));
- else
- memcpy(&newserv[*nservers].addr.addrV6, &host.addrV6,
- sizeof(host.addrV6));
-
- /* Update arguments. */
- *servers = newserv;
- *nservers += 1;
- }
-
- return ARES_SUCCESS;
-}
+ if (host.family == AF_INET)
+ memcpy(&newserv[*nservers].addr.addrV4, &host.addrV4,
+ sizeof(host.addrV4));
+ else
+ memcpy(&newserv[*nservers].addr.addrV6, &host.addrV6,
+ sizeof(host.addrV6));
+
+ /* Update arguments. */
+ *servers = newserv;
+ *nservers += 1;
+ }
+
+ return ARES_SUCCESS;
+}
#endif /* !WATT32 */
-
-static int config_sortlist(struct apattern **sortlist, int *nsort,
- const char *str)
-{
- struct apattern pat;
- const char *q;
-
- /* Add sortlist entries. */
- while (*str && *str != ';')
- {
- int bits;
- char ipbuf[16], ipbufpfx[32];
- /* Find just the IP */
- q = str;
- while (*q && *q != '/' && *q != ';' && !ISSPACE(*q))
- q++;
- memcpy(ipbuf, str, q-str);
- ipbuf[q-str] = '\0';
- /* Find the prefix */
- if (*q == '/')
- {
- const char *str2 = q+1;
- while (*q && *q != ';' && !ISSPACE(*q))
- q++;
- memcpy(ipbufpfx, str, q-str);
- ipbufpfx[q-str] = '\0';
- str = str2;
- }
- else
- ipbufpfx[0] = '\0';
- /* Lets see if it is CIDR */
- /* First we'll try IPv6 */
- if ((bits = ares_inet_net_pton(AF_INET6, ipbufpfx[0] ? ipbufpfx : ipbuf,
- &pat.addrV6,
- sizeof(pat.addrV6))) > 0)
- {
- pat.type = PATTERN_CIDR;
- pat.mask.bits = (unsigned short)bits;
- pat.family = AF_INET6;
+
+static int config_sortlist(struct apattern **sortlist, int *nsort,
+ const char *str)
+{
+ struct apattern pat;
+ const char *q;
+
+ /* Add sortlist entries. */
+ while (*str && *str != ';')
+ {
+ int bits;
+ char ipbuf[16], ipbufpfx[32];
+ /* Find just the IP */
+ q = str;
+ while (*q && *q != '/' && *q != ';' && !ISSPACE(*q))
+ q++;
+ memcpy(ipbuf, str, q-str);
+ ipbuf[q-str] = '\0';
+ /* Find the prefix */
+ if (*q == '/')
+ {
+ const char *str2 = q+1;
+ while (*q && *q != ';' && !ISSPACE(*q))
+ q++;
+ memcpy(ipbufpfx, str, q-str);
+ ipbufpfx[q-str] = '\0';
+ str = str2;
+ }
+ else
+ ipbufpfx[0] = '\0';
+ /* Lets see if it is CIDR */
+ /* First we'll try IPv6 */
+ if ((bits = ares_inet_net_pton(AF_INET6, ipbufpfx[0] ? ipbufpfx : ipbuf,
+ &pat.addrV6,
+ sizeof(pat.addrV6))) > 0)
+ {
+ pat.type = PATTERN_CIDR;
+ pat.mask.bits = (unsigned short)bits;
+ pat.family = AF_INET6;
if (!sortlist_alloc(sortlist, nsort, &pat)) {
ares_free(*sortlist);
*sortlist = NULL;
- return ARES_ENOMEM;
+ return ARES_ENOMEM;
}
- }
- else if (ipbufpfx[0] &&
- (bits = ares_inet_net_pton(AF_INET, ipbufpfx, &pat.addrV4,
- sizeof(pat.addrV4))) > 0)
- {
- pat.type = PATTERN_CIDR;
- pat.mask.bits = (unsigned short)bits;
- pat.family = AF_INET;
+ }
+ else if (ipbufpfx[0] &&
+ (bits = ares_inet_net_pton(AF_INET, ipbufpfx, &pat.addrV4,
+ sizeof(pat.addrV4))) > 0)
+ {
+ pat.type = PATTERN_CIDR;
+ pat.mask.bits = (unsigned short)bits;
+ pat.family = AF_INET;
if (!sortlist_alloc(sortlist, nsort, &pat)) {
ares_free(*sortlist);
*sortlist = NULL;
- return ARES_ENOMEM;
+ return ARES_ENOMEM;
}
- }
- /* See if it is just a regular IP */
- else if (ip_addr(ipbuf, q-str, &pat.addrV4) == 0)
- {
- if (ipbufpfx[0])
- {
- memcpy(ipbuf, str, q-str);
- ipbuf[q-str] = '\0';
- if (ip_addr(ipbuf, q-str, &pat.mask.addr4) != 0)
- natural_mask(&pat);
- }
- else
- natural_mask(&pat);
- pat.family = AF_INET;
- pat.type = PATTERN_MASK;
+ }
+ /* See if it is just a regular IP */
+ else if (ip_addr(ipbuf, q-str, &pat.addrV4) == 0)
+ {
+ if (ipbufpfx[0])
+ {
+ memcpy(ipbuf, str, q-str);
+ ipbuf[q-str] = '\0';
+ if (ip_addr(ipbuf, q-str, &pat.mask.addr4) != 0)
+ natural_mask(&pat);
+ }
+ else
+ natural_mask(&pat);
+ pat.family = AF_INET;
+ pat.type = PATTERN_MASK;
if (!sortlist_alloc(sortlist, nsort, &pat)) {
ares_free(*sortlist);
*sortlist = NULL;
- return ARES_ENOMEM;
+ return ARES_ENOMEM;
}
- }
- else
- {
- while (*q && *q != ';' && !ISSPACE(*q))
- q++;
- }
- str = q;
- while (ISSPACE(*str))
- str++;
- }
-
- return ARES_SUCCESS;
-}
-
-static int set_search(ares_channel channel, const char *str)
-{
+ }
+ else
+ {
+ while (*q && *q != ';' && !ISSPACE(*q))
+ q++;
+ }
+ str = q;
+ while (ISSPACE(*str))
+ str++;
+ }
+
+ return ARES_SUCCESS;
+}
+
+static int set_search(ares_channel channel, const char *str)
+{
size_t cnt;
-
- if(channel->ndomains != -1) {
+
+ if(channel->ndomains != -1) {
/* LCOV_EXCL_START: all callers check ndomains == -1 */
- /* if we already have some domains present, free them first */
+ /* if we already have some domains present, free them first */
ares_strsplit_free(channel->domains, channel->ndomains);
- channel->domains = NULL;
- channel->ndomains = -1;
+ channel->domains = NULL;
+ channel->ndomains = -1;
} /* LCOV_EXCL_STOP */
-
+
channel->domains = ares_strsplit(str, ", ", 1, &cnt);
channel->ndomains = (int)cnt;
if (channel->domains == NULL || channel->ndomains == 0) {
channel->domains = NULL;
channel->ndomains = -1;
}
-
- return ARES_SUCCESS;
-}
-
-static int set_options(ares_channel channel, const char *str)
-{
- const char *p, *q, *val;
-
- p = str;
- while (*p)
- {
- q = p;
- while (*q && !ISSPACE(*q))
- q++;
- val = try_option(p, q, "ndots:");
- if (val && channel->ndots == -1)
- channel->ndots = aresx_sltosi(strtol(val, NULL, 10));
- val = try_option(p, q, "retrans:");
- if (val && channel->timeout == -1)
- channel->timeout = aresx_sltosi(strtol(val, NULL, 10));
+
+ return ARES_SUCCESS;
+}
+
+static int set_options(ares_channel channel, const char *str)
+{
+ const char *p, *q, *val;
+
+ p = str;
+ while (*p)
+ {
+ q = p;
+ while (*q && !ISSPACE(*q))
+ q++;
+ val = try_option(p, q, "ndots:");
+ if (val && channel->ndots == -1)
+ channel->ndots = aresx_sltosi(strtol(val, NULL, 10));
+ val = try_option(p, q, "retrans:");
+ if (val && channel->timeout == -1)
+ channel->timeout = aresx_sltosi(strtol(val, NULL, 10));
val = try_option(p, q, "timeout:");
if (val && channel->timeout == -1)
channel->timeout = aresx_sltosi(strtol(val, NULL, 10)) * 1000;
val = try_option(p, q, "maxtimeout:");
if (val && channel->maxtimeout == -1)
channel->maxtimeout = aresx_sltosi(strtol(val, NULL, 10)) * 1000;
- val = try_option(p, q, "retry:");
- if (val && channel->tries == -1)
- channel->tries = aresx_sltosi(strtol(val, NULL, 10));
+ val = try_option(p, q, "retry:");
+ if (val && channel->tries == -1)
+ channel->tries = aresx_sltosi(strtol(val, NULL, 10));
val = try_option(p, q, "attempts:");
if (val && channel->tries == -1)
channel->tries = aresx_sltosi(strtol(val, NULL, 10));
- val = try_option(p, q, "rotate");
- if (val && channel->rotate == -1)
- channel->rotate = 1;
+ val = try_option(p, q, "rotate");
+ if (val && channel->rotate == -1)
+ channel->rotate = 1;
val = try_option(p, q, "jitter:");
if (val && channel->jitter == -1)
channel->jitter = aresx_sltosi(strtol(val, NULL, 10));
- p = q;
- while (ISSPACE(*p))
- p++;
- }
-
- return ARES_SUCCESS;
-}
-
-static const char *try_option(const char *p, const char *q, const char *opt)
-{
- size_t len = strlen(opt);
- return ((size_t)(q - p) >= len && !strncmp(p, opt, len)) ? &p[len] : NULL;
-}
-
-#if !defined(WIN32) && !defined(WATT32) && \
+ p = q;
+ while (ISSPACE(*p))
+ p++;
+ }
+
+ return ARES_SUCCESS;
+}
+
+static const char *try_option(const char *p, const char *q, const char *opt)
+{
+ size_t len = strlen(opt);
+ return ((size_t)(q - p) >= len && !strncmp(p, opt, len)) ? &p[len] : NULL;
+}
+
+#if !defined(WIN32) && !defined(WATT32) && \
!defined(ANDROID) && !defined(__ANDROID__) && !defined(CARES_USE_LIBRESOLV)
-static char *try_config(char *s, const char *opt, char scc)
-{
- size_t len;
- char *p;
- char *q;
-
- if (!s || !opt)
- /* no line or no option */
+static char *try_config(char *s, const char *opt, char scc)
+{
+ size_t len;
+ char *p;
+ char *q;
+
+ if (!s || !opt)
+ /* no line or no option */
return NULL; /* LCOV_EXCL_LINE */
-
- /* Hash '#' character is always used as primary comment char, additionally
- a not-NUL secondary comment char will be considered when specified. */
-
- /* trim line comment */
- p = s;
- if(scc)
- while (*p && (*p != '#') && (*p != scc))
- p++;
- else
- while (*p && (*p != '#'))
- p++;
- *p = '\0';
-
- /* trim trailing whitespace */
- q = p - 1;
- while ((q >= s) && ISSPACE(*q))
- q--;
- *++q = '\0';
-
- /* skip leading whitespace */
- p = s;
- while (*p && ISSPACE(*p))
- p++;
-
- if (!*p)
- /* empty line */
- return NULL;
-
- if ((len = strlen(opt)) == 0)
- /* empty option */
+
+ /* Hash '#' character is always used as primary comment char, additionally
+ a not-NUL secondary comment char will be considered when specified. */
+
+ /* trim line comment */
+ p = s;
+ if(scc)
+ while (*p && (*p != '#') && (*p != scc))
+ p++;
+ else
+ while (*p && (*p != '#'))
+ p++;
+ *p = '\0';
+
+ /* trim trailing whitespace */
+ q = p - 1;
+ while ((q >= s) && ISSPACE(*q))
+ q--;
+ *++q = '\0';
+
+ /* skip leading whitespace */
+ p = s;
+ while (*p && ISSPACE(*p))
+ p++;
+
+ if (!*p)
+ /* empty line */
+ return NULL;
+
+ if ((len = strlen(opt)) == 0)
+ /* empty option */
return NULL; /* LCOV_EXCL_LINE */
-
- if (strncmp(p, opt, len) != 0)
- /* line and option do not match */
- return NULL;
-
- /* skip over given option name */
- p += len;
-
- if (!*p)
- /* no option value */
+
+ if (strncmp(p, opt, len) != 0)
+ /* line and option do not match */
+ return NULL;
+
+ /* skip over given option name */
+ p += len;
+
+ if (!*p)
+ /* no option value */
return NULL; /* LCOV_EXCL_LINE */
-
- if ((opt[len-1] != ':') && (opt[len-1] != '=') && !ISSPACE(*p))
- /* whitespace between option name and value is mandatory
- for given option names which do not end with ':' or '=' */
- return NULL;
-
- /* skip over whitespace */
- while (*p && ISSPACE(*p))
- p++;
-
- if (!*p)
- /* no option value */
- return NULL;
-
- /* return pointer to option value */
- return p;
-}
+
+ if ((opt[len-1] != ':') && (opt[len-1] != '=') && !ISSPACE(*p))
+ /* whitespace between option name and value is mandatory
+ for given option names which do not end with ':' or '=' */
+ return NULL;
+
+ /* skip over whitespace */
+ while (*p && ISSPACE(*p))
+ p++;
+
+ if (!*p)
+ /* no option value */
+ return NULL;
+
+ /* return pointer to option value */
+ return p;
+}
#endif /* !WIN32 & !WATT32 & !ANDROID & !__ANDROID__ */
-
+
static int ip_addr(const char *ipbuf, ares_ssize_t len, struct in_addr *addr)
-{
-
- /* Four octets and three periods yields at most 15 characters. */
- if (len > 15)
- return -1;
-
+{
+
+ /* Four octets and three periods yields at most 15 characters. */
+ if (len > 15)
+ return -1;
+
if (ares_inet_pton(AF_INET, ipbuf, addr) < 1)
- return -1;
-
- return 0;
-}
-
-static void natural_mask(struct apattern *pat)
-{
- struct in_addr addr;
-
- /* Store a host-byte-order copy of pat in a struct in_addr. Icky,
- * but portable.
- */
- addr.s_addr = ntohl(pat->addrV4.s_addr);
-
- /* This is out of date in the CIDR world, but some people might
- * still rely on it.
- */
- if (IN_CLASSA(addr.s_addr))
- pat->mask.addr4.s_addr = htonl(IN_CLASSA_NET);
- else if (IN_CLASSB(addr.s_addr))
- pat->mask.addr4.s_addr = htonl(IN_CLASSB_NET);
- else
- pat->mask.addr4.s_addr = htonl(IN_CLASSC_NET);
-}
-
+ return -1;
+
+ return 0;
+}
+
+static void natural_mask(struct apattern *pat)
+{
+ struct in_addr addr;
+
+ /* Store a host-byte-order copy of pat in a struct in_addr. Icky,
+ * but portable.
+ */
+ addr.s_addr = ntohl(pat->addrV4.s_addr);
+
+ /* This is out of date in the CIDR world, but some people might
+ * still rely on it.
+ */
+ if (IN_CLASSA(addr.s_addr))
+ pat->mask.addr4.s_addr = htonl(IN_CLASSA_NET);
+ else if (IN_CLASSB(addr.s_addr))
+ pat->mask.addr4.s_addr = htonl(IN_CLASSB_NET);
+ else
+ pat->mask.addr4.s_addr = htonl(IN_CLASSC_NET);
+}
+
static int sortlist_alloc(struct apattern **sortlist, int *nsort,
struct apattern *pat)
{
@@ -2488,105 +2488,105 @@ static int sortlist_alloc(struct apattern **sortlist, int *nsort,
return 1;
}
-/* initialize an rc4 key. If possible a cryptographically secure random key
- is generated using a suitable function (for example win32's RtlGenRandom as
- described in
- http://blogs.msdn.com/michael_howard/archive/2005/01/14/353379.aspx
- otherwise the code defaults to cross-platform albeit less secure mechanism
- using rand
-*/
-static void randomize_key(unsigned char* key,int key_data_len)
-{
- int randomized = 0;
- int counter=0;
-#ifdef WIN32
- BOOLEAN res;
- if (ares_fpSystemFunction036)
- {
- res = (*ares_fpSystemFunction036) (key, key_data_len);
- if (res)
- randomized = 1;
- }
-#else /* !WIN32 */
-#ifdef RANDOM_FILE
- FILE *f = fopen(RANDOM_FILE, "rb");
- if(f) {
- counter = aresx_uztosi(fread(key, 1, key_data_len, f));
- fclose(f);
- }
-#endif
-#endif /* WIN32 */
-
- if (!randomized) {
- for (;counter<key_data_len;counter++)
+/* initialize an rc4 key. If possible a cryptographically secure random key
+ is generated using a suitable function (for example win32's RtlGenRandom as
+ described in
+ http://blogs.msdn.com/michael_howard/archive/2005/01/14/353379.aspx
+ otherwise the code defaults to cross-platform albeit less secure mechanism
+ using rand
+*/
+static void randomize_key(unsigned char* key,int key_data_len)
+{
+ int randomized = 0;
+ int counter=0;
+#ifdef WIN32
+ BOOLEAN res;
+ if (ares_fpSystemFunction036)
+ {
+ res = (*ares_fpSystemFunction036) (key, key_data_len);
+ if (res)
+ randomized = 1;
+ }
+#else /* !WIN32 */
+#ifdef RANDOM_FILE
+ FILE *f = fopen(RANDOM_FILE, "rb");
+ if(f) {
+ counter = aresx_uztosi(fread(key, 1, key_data_len, f));
+ fclose(f);
+ }
+#endif
+#endif /* WIN32 */
+
+ if (!randomized) {
+ for (;counter<key_data_len;counter++)
key[counter]=(unsigned char)(rand() % 256); /* LCOV_EXCL_LINE */
- }
-}
-
-static int init_id_key(rc4_key* key,int key_data_len)
-{
- unsigned char index1;
- unsigned char index2;
- unsigned char* state;
- short counter;
- unsigned char *key_data_ptr = 0;
-
+ }
+}
+
+static int init_id_key(rc4_key* key,int key_data_len)
+{
+ unsigned char index1;
+ unsigned char index2;
+ unsigned char* state;
+ short counter;
+ unsigned char *key_data_ptr = 0;
+
key_data_ptr = ares_malloc(key_data_len);
- if (!key_data_ptr)
- return ARES_ENOMEM;
+ if (!key_data_ptr)
+ return ARES_ENOMEM;
memset(key_data_ptr, 0, key_data_len);
-
- state = &key->state[0];
- for(counter = 0; counter < 256; counter++)
- /* unnecessary AND but it keeps some compilers happier */
- state[counter] = (unsigned char)(counter & 0xff);
- randomize_key(key->state,key_data_len);
- key->x = 0;
- key->y = 0;
- index1 = 0;
- index2 = 0;
- for(counter = 0; counter < 256; counter++)
- {
- index2 = (unsigned char)((key_data_ptr[index1] + state[counter] +
- index2) % 256);
- ARES_SWAP_BYTE(&state[counter], &state[index2]);
-
- index1 = (unsigned char)((index1 + 1) % key_data_len);
- }
+
+ state = &key->state[0];
+ for(counter = 0; counter < 256; counter++)
+ /* unnecessary AND but it keeps some compilers happier */
+ state[counter] = (unsigned char)(counter & 0xff);
+ randomize_key(key->state,key_data_len);
+ key->x = 0;
+ key->y = 0;
+ index1 = 0;
+ index2 = 0;
+ for(counter = 0; counter < 256; counter++)
+ {
+ index2 = (unsigned char)((key_data_ptr[index1] + state[counter] +
+ index2) % 256);
+ ARES_SWAP_BYTE(&state[counter], &state[index2]);
+
+ index1 = (unsigned char)((index1 + 1) % key_data_len);
+ }
ares_free(key_data_ptr);
- return ARES_SUCCESS;
-}
-
-void ares_set_local_ip4(ares_channel channel, unsigned int local_ip)
-{
- channel->local_ip4 = local_ip;
-}
-
-/* local_ip6 should be 16 bytes in length */
-void ares_set_local_ip6(ares_channel channel,
- const unsigned char* local_ip6)
-{
- memcpy(&channel->local_ip6, local_ip6, sizeof(channel->local_ip6));
-}
-
-/* local_dev_name should be null terminated. */
-void ares_set_local_dev(ares_channel channel,
- const char* local_dev_name)
-{
- strncpy(channel->local_dev_name, local_dev_name,
- sizeof(channel->local_dev_name));
- channel->local_dev_name[sizeof(channel->local_dev_name) - 1] = 0;
-}
-
-
-void ares_set_socket_callback(ares_channel channel,
- ares_sock_create_callback cb,
- void *data)
-{
- channel->sock_create_cb = cb;
- channel->sock_create_cb_data = data;
-}
-
+ return ARES_SUCCESS;
+}
+
+void ares_set_local_ip4(ares_channel channel, unsigned int local_ip)
+{
+ channel->local_ip4 = local_ip;
+}
+
+/* local_ip6 should be 16 bytes in length */
+void ares_set_local_ip6(ares_channel channel,
+ const unsigned char* local_ip6)
+{
+ memcpy(&channel->local_ip6, local_ip6, sizeof(channel->local_ip6));
+}
+
+/* local_dev_name should be null terminated. */
+void ares_set_local_dev(ares_channel channel,
+ const char* local_dev_name)
+{
+ strncpy(channel->local_dev_name, local_dev_name,
+ sizeof(channel->local_dev_name));
+ channel->local_dev_name[sizeof(channel->local_dev_name) - 1] = 0;
+}
+
+
+void ares_set_socket_callback(ares_channel channel,
+ ares_sock_create_callback cb,
+ void *data)
+{
+ channel->sock_create_cb = cb;
+ channel->sock_create_cb_data = data;
+}
+
void ares_set_socket_configure_callback(ares_channel channel,
ares_sock_config_callback cb,
void *data)
@@ -2622,25 +2622,25 @@ int ares_set_sortlist(ares_channel channel, const char *sortstr)
return status;
}
-void ares__init_servers_state(ares_channel channel)
-{
- struct server_state *server;
- int i;
-
- for (i = 0; i < channel->nservers; i++)
- {
- server = &channel->servers[i];
- server->udp_socket = ARES_SOCKET_BAD;
- server->tcp_socket = ARES_SOCKET_BAD;
- server->tcp_connection_generation = ++channel->tcp_connection_generation;
- server->tcp_lenbuf_pos = 0;
- server->tcp_buffer_pos = 0;
- server->tcp_buffer = NULL;
- server->tcp_length = 0;
- server->qhead = NULL;
- server->qtail = NULL;
- ares__init_list_head(&server->queries_to_server);
- server->channel = channel;
- server->is_broken = 0;
- }
-}
+void ares__init_servers_state(ares_channel channel)
+{
+ struct server_state *server;
+ int i;
+
+ for (i = 0; i < channel->nservers; i++)
+ {
+ server = &channel->servers[i];
+ server->udp_socket = ARES_SOCKET_BAD;
+ server->tcp_socket = ARES_SOCKET_BAD;
+ server->tcp_connection_generation = ++channel->tcp_connection_generation;
+ server->tcp_lenbuf_pos = 0;
+ server->tcp_buffer_pos = 0;
+ server->tcp_buffer = NULL;
+ server->tcp_length = 0;
+ server->qhead = NULL;
+ server->qtail = NULL;
+ ares__init_list_head(&server->queries_to_server);
+ server->channel = channel;
+ server->is_broken = 0;
+ }
+}
diff --git a/contrib/libs/c-ares/ares_iphlpapi.h b/contrib/libs/c-ares/ares_iphlpapi.h
index 15f4ab84e5..343aee3ffb 100644
--- a/contrib/libs/c-ares/ares_iphlpapi.h
+++ b/contrib/libs/c-ares/ares_iphlpapi.h
@@ -1,221 +1,221 @@
-#ifndef HEADER_CARES_IPHLPAPI_H
-#define HEADER_CARES_IPHLPAPI_H
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- * Copyright (C) 2004 - 2011 by Daniel Stenberg et al
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#if defined(USE_WINSOCK)
-
-#ifndef INET_ADDRSTRLEN
-#define INET_ADDRSTRLEN 22
-#endif
-
-#ifndef INET6_ADDRSTRLEN
-#define INET6_ADDRSTRLEN 65
-#endif
-
-/* ---------------------------------- */
-#if !defined(_WS2DEF_) && \
- !defined(__CSADDR_DEFINED__) && \
- !defined(__CSADDR_T_DEFINED)
-/* ---------------------------------- */
-
-typedef struct _SOCKET_ADDRESS {
- LPSOCKADDR lpSockaddr;
- INT iSockaddrLength;
-} SOCKET_ADDRESS, *PSOCKET_ADDRESS;
-
-typedef struct _CSADDR_INFO {
- SOCKET_ADDRESS LocalAddr;
- SOCKET_ADDRESS RemoteAddr;
- INT iSocketType;
- INT iProtocol;
-} CSADDR_INFO, *PCSADDR_INFO;
-
-/* --------------------------------- */
-#endif /* ! _WS2DEF_ && \ */
-/* ! __CSADDR_DEFINED__ && \ */
-/* ! __CSADDR_T_DEFINED */
-/* --------------------------------- */
-
-/* ------------------------------- */
-#if !defined(IP_ADAPTER_DDNS_ENABLED)
-/* ------------------------------- */
-
-#define IP_ADAPTER_ADDRESS_DNS_ELIGIBLE 0x0001
-#define IP_ADAPTER_ADDRESS_TRANSIENT 0x0002
-
-#define IP_ADAPTER_DDNS_ENABLED 0x0001
-#define IP_ADAPTER_REGISTER_ADAPTER_SUFFIX 0x0002
-#define IP_ADAPTER_DHCP_ENABLED 0x0004
-#define IP_ADAPTER_RECEIVE_ONLY 0x0008
-#define IP_ADAPTER_NO_MULTICAST 0x0010
-#define IP_ADAPTER_IPV6_OTHER_STATEFUL_CONFIG 0x0020
-
-#define GAA_FLAG_SKIP_UNICAST 0x0001
-#define GAA_FLAG_SKIP_ANYCAST 0x0002
-#define GAA_FLAG_SKIP_MULTICAST 0x0004
-#define GAA_FLAG_SKIP_DNS_SERVER 0x0008
-#define GAA_FLAG_INCLUDE_PREFIX 0x0010
-#define GAA_FLAG_SKIP_FRIENDLY_NAME 0x0020
-
-typedef enum {
- IpPrefixOriginOther = 0,
- IpPrefixOriginManual,
- IpPrefixOriginWellKnown,
- IpPrefixOriginDhcp,
- IpPrefixOriginRouterAdvertisement
-} IP_PREFIX_ORIGIN;
-
-typedef enum {
- IpSuffixOriginOther = 0,
- IpSuffixOriginManual,
- IpSuffixOriginWellKnown,
- IpSuffixOriginDhcp,
- IpSuffixOriginLinkLayerAddress,
- IpSuffixOriginRandom
-} IP_SUFFIX_ORIGIN;
-
-typedef enum {
- IpDadStateInvalid = 0,
- IpDadStateTentative,
- IpDadStateDuplicate,
- IpDadStateDeprecated,
- IpDadStatePreferred
-} IP_DAD_STATE;
-
-typedef enum {
- IfOperStatusUp = 1,
- IfOperStatusDown,
- IfOperStatusTesting,
- IfOperStatusUnknown,
- IfOperStatusDormant,
- IfOperStatusNotPresent,
- IfOperStatusLowerLayerDown
-} IF_OPER_STATUS;
-
-typedef enum {
- ScopeLevelInterface = 0x0001,
- ScopeLevelLink = 0x0002,
- ScopeLevelSubnet = 0x0003,
- ScopeLevelAdmin = 0x0004,
- ScopeLevelSite = 0x0005,
- ScopeLevelOrganization = 0x0008,
- ScopeLevelGlobal = 0x000E
-} SCOPE_LEVEL;
-
-typedef struct _IP_ADAPTER_UNICAST_ADDRESS {
- union {
- ULONGLONG Alignment;
- struct {
- ULONG Length;
- DWORD Flags;
- } s;
- } u;
- struct _IP_ADAPTER_UNICAST_ADDRESS *Next;
- SOCKET_ADDRESS Address;
- IP_PREFIX_ORIGIN PrefixOrigin;
- IP_SUFFIX_ORIGIN SuffixOrigin;
- IP_DAD_STATE DadState;
- ULONG ValidLifetime;
- ULONG PreferredLifetime;
- ULONG LeaseLifetime;
-} IP_ADAPTER_UNICAST_ADDRESS, *PIP_ADAPTER_UNICAST_ADDRESS;
-
-typedef struct _IP_ADAPTER_ANYCAST_ADDRESS {
- union {
- ULONGLONG Alignment;
- struct {
- ULONG Length;
- DWORD Flags;
- } s;
- } u;
- struct _IP_ADAPTER_ANYCAST_ADDRESS *Next;
- SOCKET_ADDRESS Address;
-} IP_ADAPTER_ANYCAST_ADDRESS, *PIP_ADAPTER_ANYCAST_ADDRESS;
-
-typedef struct _IP_ADAPTER_MULTICAST_ADDRESS {
- union {
- ULONGLONG Alignment;
- struct {
- ULONG Length;
- DWORD Flags;
- } s;
- } u;
- struct _IP_ADAPTER_MULTICAST_ADDRESS *Next;
- SOCKET_ADDRESS Address;
-} IP_ADAPTER_MULTICAST_ADDRESS, *PIP_ADAPTER_MULTICAST_ADDRESS;
-
-typedef struct _IP_ADAPTER_DNS_SERVER_ADDRESS {
- union {
- ULONGLONG Alignment;
- struct {
- ULONG Length;
- DWORD Reserved;
- } s;
- } u;
- struct _IP_ADAPTER_DNS_SERVER_ADDRESS *Next;
- SOCKET_ADDRESS Address;
-} IP_ADAPTER_DNS_SERVER_ADDRESS, *PIP_ADAPTER_DNS_SERVER_ADDRESS;
-
-typedef struct _IP_ADAPTER_PREFIX {
- union {
- ULONGLONG Alignment;
- struct {
- ULONG Length;
- DWORD Flags;
- } s;
- } u;
- struct _IP_ADAPTER_PREFIX *Next;
- SOCKET_ADDRESS Address;
- ULONG PrefixLength;
-} IP_ADAPTER_PREFIX, *PIP_ADAPTER_PREFIX;
-
-typedef struct _IP_ADAPTER_ADDRESSES {
- union {
- ULONGLONG Alignment;
- struct {
- ULONG Length;
- DWORD IfIndex;
- } s;
- } u;
- struct _IP_ADAPTER_ADDRESSES *Next;
- PCHAR AdapterName;
- PIP_ADAPTER_UNICAST_ADDRESS FirstUnicastAddress;
- PIP_ADAPTER_ANYCAST_ADDRESS FirstAnycastAddress;
- PIP_ADAPTER_MULTICAST_ADDRESS FirstMulticastAddress;
- PIP_ADAPTER_DNS_SERVER_ADDRESS FirstDnsServerAddress;
- PWCHAR DnsSuffix;
- PWCHAR Description;
- PWCHAR FriendlyName;
- BYTE PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];
- DWORD PhysicalAddressLength;
- DWORD Flags;
- DWORD Mtu;
- DWORD IfType;
- IF_OPER_STATUS OperStatus;
- DWORD Ipv6IfIndex;
- DWORD ZoneIndices[16];
- PIP_ADAPTER_PREFIX FirstPrefix;
-} IP_ADAPTER_ADDRESSES, *PIP_ADAPTER_ADDRESSES;
-
-/* -------------------------------- */
-#endif /* ! IP_ADAPTER_DDNS_ENABLED */
-/* -------------------------------- */
-
-#endif /* USE_WINSOCK */
-
-#endif /* HEADER_CARES_IPHLPAPI_H */
+#ifndef HEADER_CARES_IPHLPAPI_H
+#define HEADER_CARES_IPHLPAPI_H
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ * Copyright (C) 2004 - 2011 by Daniel Stenberg et al
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#if defined(USE_WINSOCK)
+
+#ifndef INET_ADDRSTRLEN
+#define INET_ADDRSTRLEN 22
+#endif
+
+#ifndef INET6_ADDRSTRLEN
+#define INET6_ADDRSTRLEN 65
+#endif
+
+/* ---------------------------------- */
+#if !defined(_WS2DEF_) && \
+ !defined(__CSADDR_DEFINED__) && \
+ !defined(__CSADDR_T_DEFINED)
+/* ---------------------------------- */
+
+typedef struct _SOCKET_ADDRESS {
+ LPSOCKADDR lpSockaddr;
+ INT iSockaddrLength;
+} SOCKET_ADDRESS, *PSOCKET_ADDRESS;
+
+typedef struct _CSADDR_INFO {
+ SOCKET_ADDRESS LocalAddr;
+ SOCKET_ADDRESS RemoteAddr;
+ INT iSocketType;
+ INT iProtocol;
+} CSADDR_INFO, *PCSADDR_INFO;
+
+/* --------------------------------- */
+#endif /* ! _WS2DEF_ && \ */
+/* ! __CSADDR_DEFINED__ && \ */
+/* ! __CSADDR_T_DEFINED */
+/* --------------------------------- */
+
+/* ------------------------------- */
+#if !defined(IP_ADAPTER_DDNS_ENABLED)
+/* ------------------------------- */
+
+#define IP_ADAPTER_ADDRESS_DNS_ELIGIBLE 0x0001
+#define IP_ADAPTER_ADDRESS_TRANSIENT 0x0002
+
+#define IP_ADAPTER_DDNS_ENABLED 0x0001
+#define IP_ADAPTER_REGISTER_ADAPTER_SUFFIX 0x0002
+#define IP_ADAPTER_DHCP_ENABLED 0x0004
+#define IP_ADAPTER_RECEIVE_ONLY 0x0008
+#define IP_ADAPTER_NO_MULTICAST 0x0010
+#define IP_ADAPTER_IPV6_OTHER_STATEFUL_CONFIG 0x0020
+
+#define GAA_FLAG_SKIP_UNICAST 0x0001
+#define GAA_FLAG_SKIP_ANYCAST 0x0002
+#define GAA_FLAG_SKIP_MULTICAST 0x0004
+#define GAA_FLAG_SKIP_DNS_SERVER 0x0008
+#define GAA_FLAG_INCLUDE_PREFIX 0x0010
+#define GAA_FLAG_SKIP_FRIENDLY_NAME 0x0020
+
+typedef enum {
+ IpPrefixOriginOther = 0,
+ IpPrefixOriginManual,
+ IpPrefixOriginWellKnown,
+ IpPrefixOriginDhcp,
+ IpPrefixOriginRouterAdvertisement
+} IP_PREFIX_ORIGIN;
+
+typedef enum {
+ IpSuffixOriginOther = 0,
+ IpSuffixOriginManual,
+ IpSuffixOriginWellKnown,
+ IpSuffixOriginDhcp,
+ IpSuffixOriginLinkLayerAddress,
+ IpSuffixOriginRandom
+} IP_SUFFIX_ORIGIN;
+
+typedef enum {
+ IpDadStateInvalid = 0,
+ IpDadStateTentative,
+ IpDadStateDuplicate,
+ IpDadStateDeprecated,
+ IpDadStatePreferred
+} IP_DAD_STATE;
+
+typedef enum {
+ IfOperStatusUp = 1,
+ IfOperStatusDown,
+ IfOperStatusTesting,
+ IfOperStatusUnknown,
+ IfOperStatusDormant,
+ IfOperStatusNotPresent,
+ IfOperStatusLowerLayerDown
+} IF_OPER_STATUS;
+
+typedef enum {
+ ScopeLevelInterface = 0x0001,
+ ScopeLevelLink = 0x0002,
+ ScopeLevelSubnet = 0x0003,
+ ScopeLevelAdmin = 0x0004,
+ ScopeLevelSite = 0x0005,
+ ScopeLevelOrganization = 0x0008,
+ ScopeLevelGlobal = 0x000E
+} SCOPE_LEVEL;
+
+typedef struct _IP_ADAPTER_UNICAST_ADDRESS {
+ union {
+ ULONGLONG Alignment;
+ struct {
+ ULONG Length;
+ DWORD Flags;
+ } s;
+ } u;
+ struct _IP_ADAPTER_UNICAST_ADDRESS *Next;
+ SOCKET_ADDRESS Address;
+ IP_PREFIX_ORIGIN PrefixOrigin;
+ IP_SUFFIX_ORIGIN SuffixOrigin;
+ IP_DAD_STATE DadState;
+ ULONG ValidLifetime;
+ ULONG PreferredLifetime;
+ ULONG LeaseLifetime;
+} IP_ADAPTER_UNICAST_ADDRESS, *PIP_ADAPTER_UNICAST_ADDRESS;
+
+typedef struct _IP_ADAPTER_ANYCAST_ADDRESS {
+ union {
+ ULONGLONG Alignment;
+ struct {
+ ULONG Length;
+ DWORD Flags;
+ } s;
+ } u;
+ struct _IP_ADAPTER_ANYCAST_ADDRESS *Next;
+ SOCKET_ADDRESS Address;
+} IP_ADAPTER_ANYCAST_ADDRESS, *PIP_ADAPTER_ANYCAST_ADDRESS;
+
+typedef struct _IP_ADAPTER_MULTICAST_ADDRESS {
+ union {
+ ULONGLONG Alignment;
+ struct {
+ ULONG Length;
+ DWORD Flags;
+ } s;
+ } u;
+ struct _IP_ADAPTER_MULTICAST_ADDRESS *Next;
+ SOCKET_ADDRESS Address;
+} IP_ADAPTER_MULTICAST_ADDRESS, *PIP_ADAPTER_MULTICAST_ADDRESS;
+
+typedef struct _IP_ADAPTER_DNS_SERVER_ADDRESS {
+ union {
+ ULONGLONG Alignment;
+ struct {
+ ULONG Length;
+ DWORD Reserved;
+ } s;
+ } u;
+ struct _IP_ADAPTER_DNS_SERVER_ADDRESS *Next;
+ SOCKET_ADDRESS Address;
+} IP_ADAPTER_DNS_SERVER_ADDRESS, *PIP_ADAPTER_DNS_SERVER_ADDRESS;
+
+typedef struct _IP_ADAPTER_PREFIX {
+ union {
+ ULONGLONG Alignment;
+ struct {
+ ULONG Length;
+ DWORD Flags;
+ } s;
+ } u;
+ struct _IP_ADAPTER_PREFIX *Next;
+ SOCKET_ADDRESS Address;
+ ULONG PrefixLength;
+} IP_ADAPTER_PREFIX, *PIP_ADAPTER_PREFIX;
+
+typedef struct _IP_ADAPTER_ADDRESSES {
+ union {
+ ULONGLONG Alignment;
+ struct {
+ ULONG Length;
+ DWORD IfIndex;
+ } s;
+ } u;
+ struct _IP_ADAPTER_ADDRESSES *Next;
+ PCHAR AdapterName;
+ PIP_ADAPTER_UNICAST_ADDRESS FirstUnicastAddress;
+ PIP_ADAPTER_ANYCAST_ADDRESS FirstAnycastAddress;
+ PIP_ADAPTER_MULTICAST_ADDRESS FirstMulticastAddress;
+ PIP_ADAPTER_DNS_SERVER_ADDRESS FirstDnsServerAddress;
+ PWCHAR DnsSuffix;
+ PWCHAR Description;
+ PWCHAR FriendlyName;
+ BYTE PhysicalAddress[MAX_ADAPTER_ADDRESS_LENGTH];
+ DWORD PhysicalAddressLength;
+ DWORD Flags;
+ DWORD Mtu;
+ DWORD IfType;
+ IF_OPER_STATUS OperStatus;
+ DWORD Ipv6IfIndex;
+ DWORD ZoneIndices[16];
+ PIP_ADAPTER_PREFIX FirstPrefix;
+} IP_ADAPTER_ADDRESSES, *PIP_ADAPTER_ADDRESSES;
+
+/* -------------------------------- */
+#endif /* ! IP_ADAPTER_DDNS_ENABLED */
+/* -------------------------------- */
+
+#endif /* USE_WINSOCK */
+
+#endif /* HEADER_CARES_IPHLPAPI_H */
diff --git a/contrib/libs/c-ares/ares_ipv6.h b/contrib/libs/c-ares/ares_ipv6.h
index a1bdfab5bc..fdbc21fe8f 100644
--- a/contrib/libs/c-ares/ares_ipv6.h
+++ b/contrib/libs/c-ares/ares_ipv6.h
@@ -1,37 +1,37 @@
-
-/* Copyright (C) 2005 by Dominick Meglio
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#ifndef ARES_IPV6_H
-#define ARES_IPV6_H
-
-#ifndef HAVE_PF_INET6
-#define PF_INET6 AF_INET6
-#endif
-
-#ifndef HAVE_STRUCT_SOCKADDR_IN6
-struct sockaddr_in6
-{
- unsigned short sin6_family;
- unsigned short sin6_port;
- unsigned long sin6_flowinfo;
- struct ares_in6_addr sin6_addr;
- unsigned int sin6_scope_id;
-};
-#endif
-
+
+/* Copyright (C) 2005 by Dominick Meglio
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#ifndef ARES_IPV6_H
+#define ARES_IPV6_H
+
+#ifndef HAVE_PF_INET6
+#define PF_INET6 AF_INET6
+#endif
+
+#ifndef HAVE_STRUCT_SOCKADDR_IN6
+struct sockaddr_in6
+{
+ unsigned short sin6_family;
+ unsigned short sin6_port;
+ unsigned long sin6_flowinfo;
+ struct ares_in6_addr sin6_addr;
+ unsigned int sin6_scope_id;
+};
+#endif
+
typedef union
{
struct sockaddr sa;
@@ -39,47 +39,47 @@ typedef union
struct sockaddr_in6 sa6;
} ares_sockaddr;
-#ifndef HAVE_STRUCT_ADDRINFO
-struct addrinfo
-{
- int ai_flags;
- int ai_family;
- int ai_socktype;
- int ai_protocol;
- ares_socklen_t ai_addrlen; /* Follow rfc3493 struct addrinfo */
- char *ai_canonname;
- struct sockaddr *ai_addr;
- struct addrinfo *ai_next;
-};
-#endif
-
-#ifndef NS_IN6ADDRSZ
+#ifndef HAVE_STRUCT_ADDRINFO
+struct addrinfo
+{
+ int ai_flags;
+ int ai_family;
+ int ai_socktype;
+ int ai_protocol;
+ ares_socklen_t ai_addrlen; /* Follow rfc3493 struct addrinfo */
+ char *ai_canonname;
+ struct sockaddr *ai_addr;
+ struct addrinfo *ai_next;
+};
+#endif
+
+#ifndef NS_IN6ADDRSZ
#ifndef HAVE_STRUCT_IN6_ADDR
-/* We cannot have it set to zero, so we pick a fixed value here */
-#define NS_IN6ADDRSZ 16
-#else
+/* We cannot have it set to zero, so we pick a fixed value here */
+#define NS_IN6ADDRSZ 16
+#else
#define NS_IN6ADDRSZ sizeof(struct in6_addr)
-#endif
-#endif
-
-#ifndef NS_INADDRSZ
+#endif
+#endif
+
+#ifndef NS_INADDRSZ
#define NS_INADDRSZ sizeof(struct in_addr)
-#endif
-
-#ifndef NS_INT16SZ
-#define NS_INT16SZ 2
-#endif
-
-#ifndef IF_NAMESIZE
-#ifdef IFNAMSIZ
-#define IF_NAMESIZE IFNAMSIZ
-#else
-#define IF_NAMESIZE 256
-#endif
-#endif
-
+#endif
+
+#ifndef NS_INT16SZ
+#define NS_INT16SZ 2
+#endif
+
+#ifndef IF_NAMESIZE
+#ifdef IFNAMSIZ
+#define IF_NAMESIZE IFNAMSIZ
+#else
+#define IF_NAMESIZE 256
+#endif
+#endif
+
/* Defined in inet_net_pton.c for no particular reason. */
-extern const struct ares_in6_addr ares_in6addr_any; /* :: */
-
-
-#endif /* ARES_IPV6_H */
+extern const struct ares_in6_addr ares_in6addr_any; /* :: */
+
+
+#endif /* ARES_IPV6_H */
diff --git a/contrib/libs/c-ares/ares_library_init.c b/contrib/libs/c-ares/ares_library_init.c
index 269417fc2d..3c7ad37200 100644
--- a/contrib/libs/c-ares/ares_library_init.c
+++ b/contrib/libs/c-ares/ares_library_init.c
@@ -1,47 +1,47 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- * Copyright (C) 2004-2009 by Daniel Stenberg
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#include "ares.h"
-#include "ares_library_init.h"
-#include "ares_private.h"
-
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ * Copyright (C) 2004-2009 by Daniel Stenberg
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#include "ares.h"
+#include "ares_library_init.h"
+#include "ares_private.h"
+
#include "atomic.h"
-/* library-private global and unique instance vars */
-
-#ifdef USE_WINSOCK
-fpGetNetworkParams_t ares_fpGetNetworkParams = ZERO_NULL;
-fpSystemFunction036_t ares_fpSystemFunction036 = ZERO_NULL;
-fpGetAdaptersAddresses_t ares_fpGetAdaptersAddresses = ZERO_NULL;
+/* library-private global and unique instance vars */
+
+#ifdef USE_WINSOCK
+fpGetNetworkParams_t ares_fpGetNetworkParams = ZERO_NULL;
+fpSystemFunction036_t ares_fpSystemFunction036 = ZERO_NULL;
+fpGetAdaptersAddresses_t ares_fpGetAdaptersAddresses = ZERO_NULL;
fpGetBestRoute2_t ares_fpGetBestRoute2 = ZERO_NULL;
-#endif
-
+#endif
+
#if defined(ANDROID) || defined(__ANDROID__)
#include "ares_android.h"
#endif
-/* library-private global vars with source visibility restricted to this file */
-
+/* library-private global vars with source visibility restricted to this file */
+
static atomic_t ares_init_lock;
-static unsigned int ares_initialized;
-static int ares_init_flags;
-
+static unsigned int ares_initialized;
+static int ares_init_flags;
+
/* library-private global vars with visibility across the whole library */
#if defined(WIN32)
/* We need indirections to handle Windows DLL rules. */
@@ -57,38 +57,38 @@ void *(*ares_malloc)(size_t size) = default_malloc;
void *(*ares_realloc)(void *ptr, size_t size) = default_realloc;
void (*ares_free)(void *ptr) = default_free;
-#ifdef USE_WINSOCK
-static HMODULE hnd_iphlpapi;
-static HMODULE hnd_advapi32;
-#endif
-
-
-static int ares_win32_init(void)
-{
-#ifdef USE_WINSOCK
-
- hnd_iphlpapi = 0;
+#ifdef USE_WINSOCK
+static HMODULE hnd_iphlpapi;
+static HMODULE hnd_advapi32;
+#endif
+
+
+static int ares_win32_init(void)
+{
+#ifdef USE_WINSOCK
+
+ hnd_iphlpapi = 0;
hnd_iphlpapi = LoadLibraryW(L"iphlpapi.dll");
- if (!hnd_iphlpapi)
- return ARES_ELOADIPHLPAPI;
-
- ares_fpGetNetworkParams = (fpGetNetworkParams_t)
- GetProcAddress(hnd_iphlpapi, "GetNetworkParams");
- if (!ares_fpGetNetworkParams)
- {
- FreeLibrary(hnd_iphlpapi);
- return ARES_EADDRGETNETWORKPARAMS;
- }
-
- ares_fpGetAdaptersAddresses = (fpGetAdaptersAddresses_t)
- GetProcAddress(hnd_iphlpapi, "GetAdaptersAddresses");
- if (!ares_fpGetAdaptersAddresses)
- {
- /* This can happen on clients before WinXP, I don't
- think it should be an error, unless we don't want to
- support Windows 2000 anymore */
- }
-
+ if (!hnd_iphlpapi)
+ return ARES_ELOADIPHLPAPI;
+
+ ares_fpGetNetworkParams = (fpGetNetworkParams_t)
+ GetProcAddress(hnd_iphlpapi, "GetNetworkParams");
+ if (!ares_fpGetNetworkParams)
+ {
+ FreeLibrary(hnd_iphlpapi);
+ return ARES_EADDRGETNETWORKPARAMS;
+ }
+
+ ares_fpGetAdaptersAddresses = (fpGetAdaptersAddresses_t)
+ GetProcAddress(hnd_iphlpapi, "GetAdaptersAddresses");
+ if (!ares_fpGetAdaptersAddresses)
+ {
+ /* This can happen on clients before WinXP, I don't
+ think it should be an error, unless we don't want to
+ support Windows 2000 anymore */
+ }
+
ares_fpGetBestRoute2 = (fpGetBestRoute2_t)
GetProcAddress(hnd_iphlpapi, "GetBestRoute2");
if (!ares_fpGetBestRoute2)
@@ -98,57 +98,57 @@ static int ares_win32_init(void)
support Windows XP anymore */
}
- /*
- * When advapi32.dll is unavailable or advapi32.dll has no SystemFunction036,
- * also known as RtlGenRandom, which is the case for Windows versions prior
- * to WinXP then c-ares uses portable rand() function. Then don't error here.
- */
-
- hnd_advapi32 = 0;
+ /*
+ * When advapi32.dll is unavailable or advapi32.dll has no SystemFunction036,
+ * also known as RtlGenRandom, which is the case for Windows versions prior
+ * to WinXP then c-ares uses portable rand() function. Then don't error here.
+ */
+
+ hnd_advapi32 = 0;
hnd_advapi32 = LoadLibraryW(L"advapi32.dll");
- if (hnd_advapi32)
- {
- ares_fpSystemFunction036 = (fpSystemFunction036_t)
- GetProcAddress(hnd_advapi32, "SystemFunction036");
- }
-
-#endif
- return ARES_SUCCESS;
-}
-
-
-static void ares_win32_cleanup(void)
-{
-#ifdef USE_WINSOCK
- if (hnd_advapi32)
- FreeLibrary(hnd_advapi32);
- if (hnd_iphlpapi)
- FreeLibrary(hnd_iphlpapi);
-#endif
-}
-
-
-int ares_library_init(int flags)
-{
+ if (hnd_advapi32)
+ {
+ ares_fpSystemFunction036 = (fpSystemFunction036_t)
+ GetProcAddress(hnd_advapi32, "SystemFunction036");
+ }
+
+#endif
+ return ARES_SUCCESS;
+}
+
+
+static void ares_win32_cleanup(void)
+{
+#ifdef USE_WINSOCK
+ if (hnd_advapi32)
+ FreeLibrary(hnd_advapi32);
+ if (hnd_iphlpapi)
+ FreeLibrary(hnd_iphlpapi);
+#endif
+}
+
+
+int ares_library_init(int flags)
+{
int res = ARES_SUCCESS;
-
+
acquire_lock(&ares_init_lock);
ares_initialized++;
if (ares_initialized == 1)
- {
+ {
if (flags & ARES_LIB_INIT_WIN32)
res = ares_win32_init();
-
+
if (res == ARES_SUCCESS)
ares_init_flags = flags;
- }
-
+ }
+
release_lock(&ares_init_lock);
-
+
return res;
-}
-
+}
+
int ares_library_init_mem(int flags,
void *(*amalloc)(size_t size),
void (*afree)(void *ptr),
@@ -162,20 +162,20 @@ int ares_library_init_mem(int flags,
ares_free = afree;
return ares_library_init(flags);
}
-
-void ares_library_cleanup(void)
-{
+
+void ares_library_cleanup(void)
+{
acquire_lock(&ares_init_lock);
- if (ares_initialized)
+ if (ares_initialized)
{
ares_initialized--;
if (!ares_initialized)
{
if (ares_init_flags & ARES_LIB_INIT_WIN32)
ares_win32_cleanup();
-
+
#if defined(ANDROID) || defined(__ANDROID__)
ares_library_cleanup_android();
#endif
@@ -186,16 +186,16 @@ void ares_library_cleanup(void)
ares_free = free;
}
}
-
+
release_lock(&ares_init_lock);
-}
-
-
-int ares_library_initialized(void)
-{
-#ifdef USE_WINSOCK
- if (!ares_initialized)
- return ARES_ENOTINITIALIZED;
-#endif
- return ARES_SUCCESS;
-}
+}
+
+
+int ares_library_initialized(void)
+{
+#ifdef USE_WINSOCK
+ if (!ares_initialized)
+ return ARES_ENOTINITIALIZED;
+#endif
+ return ARES_SUCCESS;
+}
diff --git a/contrib/libs/c-ares/ares_library_init.h b/contrib/libs/c-ares/ares_library_init.h
index 21787a6bc9..2a2ba118b5 100644
--- a/contrib/libs/c-ares/ares_library_init.h
+++ b/contrib/libs/c-ares/ares_library_init.h
@@ -1,43 +1,43 @@
-#ifndef HEADER_CARES_LIBRARY_INIT_H
-#define HEADER_CARES_LIBRARY_INIT_H
-
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- * Copyright (C) 2004-2011 by Daniel Stenberg
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef USE_WINSOCK
-
-#include <iphlpapi.h>
-#include <ares_iphlpapi.h>
-
-typedef DWORD (WINAPI *fpGetNetworkParams_t) (FIXED_INFO*, DWORD*);
-typedef BOOLEAN (APIENTRY *fpSystemFunction036_t) (void*, ULONG);
-typedef ULONG (WINAPI *fpGetAdaptersAddresses_t) ( ULONG, ULONG, void*, IP_ADAPTER_ADDRESSES*, ULONG* );
+#ifndef HEADER_CARES_LIBRARY_INIT_H
+#define HEADER_CARES_LIBRARY_INIT_H
+
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ * Copyright (C) 2004-2011 by Daniel Stenberg
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef USE_WINSOCK
+
+#include <iphlpapi.h>
+#include <ares_iphlpapi.h>
+
+typedef DWORD (WINAPI *fpGetNetworkParams_t) (FIXED_INFO*, DWORD*);
+typedef BOOLEAN (APIENTRY *fpSystemFunction036_t) (void*, ULONG);
+typedef ULONG (WINAPI *fpGetAdaptersAddresses_t) ( ULONG, ULONG, void*, IP_ADAPTER_ADDRESSES*, ULONG* );
typedef NETIO_STATUS (WINAPI *fpGetBestRoute2_t) ( NET_LUID *, NET_IFINDEX, const SOCKADDR_INET *, const SOCKADDR_INET *, ULONG, PMIB_IPFORWARD_ROW2, SOCKADDR_INET * );
-/* Forward-declaration of variables defined in ares_library_init.c */
-/* that are global and unique instances for whole c-ares library. */
-
-extern fpGetNetworkParams_t ares_fpGetNetworkParams;
-extern fpSystemFunction036_t ares_fpSystemFunction036;
-extern fpGetAdaptersAddresses_t ares_fpGetAdaptersAddresses;
+/* Forward-declaration of variables defined in ares_library_init.c */
+/* that are global and unique instances for whole c-ares library. */
+
+extern fpGetNetworkParams_t ares_fpGetNetworkParams;
+extern fpSystemFunction036_t ares_fpSystemFunction036;
+extern fpGetAdaptersAddresses_t ares_fpGetAdaptersAddresses;
extern fpGetBestRoute2_t ares_fpGetBestRoute2;
-
-#endif /* USE_WINSOCK */
-
-#endif /* HEADER_CARES_LIBRARY_INIT_H */
-
+
+#endif /* USE_WINSOCK */
+
+#endif /* HEADER_CARES_LIBRARY_INIT_H */
+
diff --git a/contrib/libs/c-ares/ares_llist.c b/contrib/libs/c-ares/ares_llist.c
index 4444f95467..36ca84c43e 100644
--- a/contrib/libs/c-ares/ares_llist.c
+++ b/contrib/libs/c-ares/ares_llist.c
@@ -1,63 +1,63 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#include "ares.h"
-#include "ares_private.h"
-
-/* Routines for managing doubly-linked circular linked lists with a
- * dummy head.
- */
-
-/* Initialize a new head node */
-void ares__init_list_head(struct list_node* head) {
- head->prev = head;
- head->next = head;
- head->data = NULL;
-}
-
-/* Initialize a list node */
-void ares__init_list_node(struct list_node* node, void* d) {
- node->prev = NULL;
- node->next = NULL;
- node->data = d;
-}
-
-/* Returns true iff the given list is empty */
-int ares__is_list_empty(struct list_node* head) {
- return ((head->next == head) && (head->prev == head));
-}
-
-/* Inserts new_node before old_node */
-void ares__insert_in_list(struct list_node* new_node,
- struct list_node* old_node) {
- new_node->next = old_node;
- new_node->prev = old_node->prev;
- old_node->prev->next = new_node;
- old_node->prev = new_node;
-}
-
-/* Removes the node from the list it's in, if any */
-void ares__remove_from_list(struct list_node* node) {
- if (node->next != NULL) {
- node->prev->next = node->next;
- node->next->prev = node->prev;
- node->prev = NULL;
- node->next = NULL;
- }
-}
-
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#include "ares.h"
+#include "ares_private.h"
+
+/* Routines for managing doubly-linked circular linked lists with a
+ * dummy head.
+ */
+
+/* Initialize a new head node */
+void ares__init_list_head(struct list_node* head) {
+ head->prev = head;
+ head->next = head;
+ head->data = NULL;
+}
+
+/* Initialize a list node */
+void ares__init_list_node(struct list_node* node, void* d) {
+ node->prev = NULL;
+ node->next = NULL;
+ node->data = d;
+}
+
+/* Returns true iff the given list is empty */
+int ares__is_list_empty(struct list_node* head) {
+ return ((head->next == head) && (head->prev == head));
+}
+
+/* Inserts new_node before old_node */
+void ares__insert_in_list(struct list_node* new_node,
+ struct list_node* old_node) {
+ new_node->next = old_node;
+ new_node->prev = old_node->prev;
+ old_node->prev->next = new_node;
+ old_node->prev = new_node;
+}
+
+/* Removes the node from the list it's in, if any */
+void ares__remove_from_list(struct list_node* node) {
+ if (node->next != NULL) {
+ node->prev->next = node->next;
+ node->next->prev = node->prev;
+ node->prev = NULL;
+ node->next = NULL;
+ }
+}
+
diff --git a/contrib/libs/c-ares/ares_llist.h b/contrib/libs/c-ares/ares_llist.h
index b3b11e6c88..20f4d1ce42 100644
--- a/contrib/libs/c-ares/ares_llist.h
+++ b/contrib/libs/c-ares/ares_llist.h
@@ -1,39 +1,39 @@
-#ifndef __ARES_LLIST_H
-#define __ARES_LLIST_H
-
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-
-/* Node definition for circular, doubly-linked list */
-struct list_node {
- struct list_node *prev;
- struct list_node *next;
- void* data;
-};
-
-void ares__init_list_head(struct list_node* head);
-
-void ares__init_list_node(struct list_node* node, void* d);
-
-int ares__is_list_empty(struct list_node* head);
-
-void ares__insert_in_list(struct list_node* new_node,
- struct list_node* old_node);
-
-void ares__remove_from_list(struct list_node* node);
-
-#endif /* __ARES_LLIST_H */
+#ifndef __ARES_LLIST_H
+#define __ARES_LLIST_H
+
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+
+/* Node definition for circular, doubly-linked list */
+struct list_node {
+ struct list_node *prev;
+ struct list_node *next;
+ void* data;
+};
+
+void ares__init_list_head(struct list_node* head);
+
+void ares__init_list_node(struct list_node* node, void* d);
+
+int ares__is_list_empty(struct list_node* head);
+
+void ares__insert_in_list(struct list_node* new_node,
+ struct list_node* old_node);
+
+void ares__remove_from_list(struct list_node* node);
+
+#endif /* __ARES_LLIST_H */
diff --git a/contrib/libs/c-ares/ares_mkquery.c b/contrib/libs/c-ares/ares_mkquery.c
index c7e37bf963..5aea914bd0 100644
--- a/contrib/libs/c-ares/ares_mkquery.c
+++ b/contrib/libs/c-ares/ares_mkquery.c
@@ -1,24 +1,24 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-#include "ares.h"
-
-int ares_mkquery(const char *name, int dnsclass, int type, unsigned short id,
- int rd, unsigned char **buf, int *buflen)
-{
- return ares_create_query(name, dnsclass, type, id, rd, buf, buflen, 0);
-}
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+#include "ares.h"
+
+int ares_mkquery(const char *name, int dnsclass, int type, unsigned short id,
+ int rd, unsigned char **buf, int *buflen)
+{
+ return ares_create_query(name, dnsclass, type, id, rd, buf, buflen, 0);
+}
diff --git a/contrib/libs/c-ares/ares_nowarn.c b/contrib/libs/c-ares/ares_nowarn.c
index f20d5c4856..f63d9135ec 100644
--- a/contrib/libs/c-ares/ares_nowarn.c
+++ b/contrib/libs/c-ares/ares_nowarn.c
@@ -1,260 +1,260 @@
-
+
/* Copyright (C) 2010-2013 by Daniel Stenberg
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-
-#include "ares_setup.h"
-
-#ifdef HAVE_ASSERT_H
-# include <assert.h>
-#endif
-
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+
+#include "ares_setup.h"
+
+#ifdef HAVE_ASSERT_H
+# include <assert.h>
+#endif
+
#ifdef HAVE_LIMITS_H
#include <limits.h>
#endif
-#if defined(__INTEL_COMPILER) && defined(__unix__)
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-# include <arpa/inet.h>
-#endif
-
-#endif /* __INTEL_COMPILER && __unix__ */
-
-#define BUILDING_ARES_NOWARN_C 1
-
-#include "ares_nowarn.h"
-
+#if defined(__INTEL_COMPILER) && defined(__unix__)
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+#endif
+
+#endif /* __INTEL_COMPILER && __unix__ */
+
+#define BUILDING_ARES_NOWARN_C 1
+
+#include "ares_nowarn.h"
+
#ifndef HAVE_LIMITS_H
/* systems without <limits.h> we guess have 16 bit shorts, 32bit ints and
32bit longs */
-# define CARES_MASK_SSHORT 0x7FFF
-# define CARES_MASK_USHORT 0xFFFF
+# define CARES_MASK_SSHORT 0x7FFF
+# define CARES_MASK_USHORT 0xFFFF
# define CARES_MASK_SINT 0x7FFFFFFF
# define CARES_MASK_UINT 0xFFFFFFFF
# define CARES_MASK_SLONG 0x7FFFFFFFL
# define CARES_MASK_ULONG 0xFFFFFFFFUL
-#else
+#else
# define CARES_MASK_SSHORT SHRT_MAX
# define CARES_MASK_USHORT USHRT_MAX
# define CARES_MASK_SINT INT_MAX
# define CARES_MASK_UINT UINT_MAX
# define CARES_MASK_SLONG LONG_MAX
# define CARES_MASK_ULONG ULONG_MAX
-#endif
-
-/*
-** unsigned size_t to signed long
-*/
-
-long aresx_uztosl(size_t uznum)
-{
-#ifdef __INTEL_COMPILER
-# pragma warning(push)
-# pragma warning(disable:810) /* conversion may lose significant bits */
-#endif
-
- return (long)(uznum & (size_t) CARES_MASK_SLONG);
-
-#ifdef __INTEL_COMPILER
-# pragma warning(pop)
-#endif
-}
-
-/*
-** unsigned size_t to signed int
-*/
-
-int aresx_uztosi(size_t uznum)
-{
-#ifdef __INTEL_COMPILER
-# pragma warning(push)
-# pragma warning(disable:810) /* conversion may lose significant bits */
-#endif
-
- return (int)(uznum & (size_t) CARES_MASK_SINT);
-
-#ifdef __INTEL_COMPILER
-# pragma warning(pop)
-#endif
-}
-
-/*
-** unsigned size_t to signed short
-*/
-
-short aresx_uztoss(size_t uznum)
-{
-#ifdef __INTEL_COMPILER
-# pragma warning(push)
-# pragma warning(disable:810) /* conversion may lose significant bits */
-#endif
-
- return (short)(uznum & (size_t) CARES_MASK_SSHORT);
-
-#ifdef __INTEL_COMPILER
-# pragma warning(pop)
-#endif
-}
-
-/*
-** signed int to signed short
-*/
-
-short aresx_sitoss(int sinum)
-{
-#ifdef __INTEL_COMPILER
-# pragma warning(push)
-# pragma warning(disable:810) /* conversion may lose significant bits */
-#endif
-
- DEBUGASSERT(sinum >= 0);
- return (short)(sinum & (int) CARES_MASK_SSHORT);
-
-#ifdef __INTEL_COMPILER
-# pragma warning(pop)
-#endif
-}
-
-/*
-** signed long to signed int
-*/
-
-int aresx_sltosi(long slnum)
-{
-#ifdef __INTEL_COMPILER
-# pragma warning(push)
-# pragma warning(disable:810) /* conversion may lose significant bits */
-#endif
-
- DEBUGASSERT(slnum >= 0);
- return (int)(slnum & (long) CARES_MASK_SINT);
-
-#ifdef __INTEL_COMPILER
-# pragma warning(pop)
-#endif
-}
-
-/*
+#endif
+
+/*
+** unsigned size_t to signed long
+*/
+
+long aresx_uztosl(size_t uznum)
+{
+#ifdef __INTEL_COMPILER
+# pragma warning(push)
+# pragma warning(disable:810) /* conversion may lose significant bits */
+#endif
+
+ return (long)(uznum & (size_t) CARES_MASK_SLONG);
+
+#ifdef __INTEL_COMPILER
+# pragma warning(pop)
+#endif
+}
+
+/*
+** unsigned size_t to signed int
+*/
+
+int aresx_uztosi(size_t uznum)
+{
+#ifdef __INTEL_COMPILER
+# pragma warning(push)
+# pragma warning(disable:810) /* conversion may lose significant bits */
+#endif
+
+ return (int)(uznum & (size_t) CARES_MASK_SINT);
+
+#ifdef __INTEL_COMPILER
+# pragma warning(pop)
+#endif
+}
+
+/*
+** unsigned size_t to signed short
+*/
+
+short aresx_uztoss(size_t uznum)
+{
+#ifdef __INTEL_COMPILER
+# pragma warning(push)
+# pragma warning(disable:810) /* conversion may lose significant bits */
+#endif
+
+ return (short)(uznum & (size_t) CARES_MASK_SSHORT);
+
+#ifdef __INTEL_COMPILER
+# pragma warning(pop)
+#endif
+}
+
+/*
+** signed int to signed short
+*/
+
+short aresx_sitoss(int sinum)
+{
+#ifdef __INTEL_COMPILER
+# pragma warning(push)
+# pragma warning(disable:810) /* conversion may lose significant bits */
+#endif
+
+ DEBUGASSERT(sinum >= 0);
+ return (short)(sinum & (int) CARES_MASK_SSHORT);
+
+#ifdef __INTEL_COMPILER
+# pragma warning(pop)
+#endif
+}
+
+/*
+** signed long to signed int
+*/
+
+int aresx_sltosi(long slnum)
+{
+#ifdef __INTEL_COMPILER
+# pragma warning(push)
+# pragma warning(disable:810) /* conversion may lose significant bits */
+#endif
+
+ DEBUGASSERT(slnum >= 0);
+ return (int)(slnum & (long) CARES_MASK_SINT);
+
+#ifdef __INTEL_COMPILER
+# pragma warning(pop)
+#endif
+}
+
+/*
** signed ares_ssize_t to signed int
-*/
-
+*/
+
int aresx_sztosi(ares_ssize_t sznum)
-{
-#ifdef __INTEL_COMPILER
-# pragma warning(push)
-# pragma warning(disable:810) /* conversion may lose significant bits */
-#endif
-
- DEBUGASSERT(sznum >= 0);
+{
+#ifdef __INTEL_COMPILER
+# pragma warning(push)
+# pragma warning(disable:810) /* conversion may lose significant bits */
+#endif
+
+ DEBUGASSERT(sznum >= 0);
return (int)(sznum & (ares_ssize_t) CARES_MASK_SINT);
-
-#ifdef __INTEL_COMPILER
-# pragma warning(pop)
-#endif
-}
-
-/*
+
+#ifdef __INTEL_COMPILER
+# pragma warning(pop)
+#endif
+}
+
+/*
** signed ares_ssize_t to unsigned int
-*/
-
+*/
+
unsigned int aresx_sztoui(ares_ssize_t sznum)
-{
-#ifdef __INTEL_COMPILER
-# pragma warning(push)
-# pragma warning(disable:810) /* conversion may lose significant bits */
-#endif
-
- DEBUGASSERT(sznum >= 0);
+{
+#ifdef __INTEL_COMPILER
+# pragma warning(push)
+# pragma warning(disable:810) /* conversion may lose significant bits */
+#endif
+
+ DEBUGASSERT(sznum >= 0);
return (unsigned int)(sznum & (ares_ssize_t) CARES_MASK_UINT);
-
-#ifdef __INTEL_COMPILER
-# pragma warning(pop)
-#endif
-}
-
-/*
-** signed int to unsigned short
-*/
-
-unsigned short aresx_sitous(int sinum)
-{
-#ifdef __INTEL_COMPILER
-# pragma warning(push)
-# pragma warning(disable:810) /* conversion may lose significant bits */
-#endif
-
- DEBUGASSERT(sinum >= 0);
- return (unsigned short)(sinum & (int) CARES_MASK_USHORT);
-
-#ifdef __INTEL_COMPILER
-# pragma warning(pop)
-#endif
-}
-
-#if defined(__INTEL_COMPILER) && defined(__unix__)
-
-int aresx_FD_ISSET(int fd, fd_set *fdset)
-{
- #pragma warning(push)
- #pragma warning(disable:1469) /* clobber ignored */
- return FD_ISSET(fd, fdset);
- #pragma warning(pop)
-}
-
-void aresx_FD_SET(int fd, fd_set *fdset)
-{
- #pragma warning(push)
- #pragma warning(disable:1469) /* clobber ignored */
- FD_SET(fd, fdset);
- #pragma warning(pop)
-}
-
-void aresx_FD_ZERO(fd_set *fdset)
-{
- #pragma warning(push)
- #pragma warning(disable:593) /* variable was set but never used */
- FD_ZERO(fdset);
- #pragma warning(pop)
-}
-
-unsigned short aresx_htons(unsigned short usnum)
-{
-#if (__INTEL_COMPILER == 910) && defined(__i386__)
- return (unsigned short)(((usnum << 8) & 0xFF00) | ((usnum >> 8) & 0x00FF));
-#else
- #pragma warning(push)
- #pragma warning(disable:810) /* conversion may lose significant bits */
- return htons(usnum);
- #pragma warning(pop)
-#endif
-}
-
-unsigned short aresx_ntohs(unsigned short usnum)
-{
-#if (__INTEL_COMPILER == 910) && defined(__i386__)
- return (unsigned short)(((usnum << 8) & 0xFF00) | ((usnum >> 8) & 0x00FF));
-#else
- #pragma warning(push)
- #pragma warning(disable:810) /* conversion may lose significant bits */
- return ntohs(usnum);
- #pragma warning(pop)
-#endif
-}
-
-#endif /* __INTEL_COMPILER && __unix__ */
+
+#ifdef __INTEL_COMPILER
+# pragma warning(pop)
+#endif
+}
+
+/*
+** signed int to unsigned short
+*/
+
+unsigned short aresx_sitous(int sinum)
+{
+#ifdef __INTEL_COMPILER
+# pragma warning(push)
+# pragma warning(disable:810) /* conversion may lose significant bits */
+#endif
+
+ DEBUGASSERT(sinum >= 0);
+ return (unsigned short)(sinum & (int) CARES_MASK_USHORT);
+
+#ifdef __INTEL_COMPILER
+# pragma warning(pop)
+#endif
+}
+
+#if defined(__INTEL_COMPILER) && defined(__unix__)
+
+int aresx_FD_ISSET(int fd, fd_set *fdset)
+{
+ #pragma warning(push)
+ #pragma warning(disable:1469) /* clobber ignored */
+ return FD_ISSET(fd, fdset);
+ #pragma warning(pop)
+}
+
+void aresx_FD_SET(int fd, fd_set *fdset)
+{
+ #pragma warning(push)
+ #pragma warning(disable:1469) /* clobber ignored */
+ FD_SET(fd, fdset);
+ #pragma warning(pop)
+}
+
+void aresx_FD_ZERO(fd_set *fdset)
+{
+ #pragma warning(push)
+ #pragma warning(disable:593) /* variable was set but never used */
+ FD_ZERO(fdset);
+ #pragma warning(pop)
+}
+
+unsigned short aresx_htons(unsigned short usnum)
+{
+#if (__INTEL_COMPILER == 910) && defined(__i386__)
+ return (unsigned short)(((usnum << 8) & 0xFF00) | ((usnum >> 8) & 0x00FF));
+#else
+ #pragma warning(push)
+ #pragma warning(disable:810) /* conversion may lose significant bits */
+ return htons(usnum);
+ #pragma warning(pop)
+#endif
+}
+
+unsigned short aresx_ntohs(unsigned short usnum)
+{
+#if (__INTEL_COMPILER == 910) && defined(__i386__)
+ return (unsigned short)(((usnum << 8) & 0xFF00) | ((usnum >> 8) & 0x00FF));
+#else
+ #pragma warning(push)
+ #pragma warning(disable:810) /* conversion may lose significant bits */
+ return ntohs(usnum);
+ #pragma warning(pop)
+#endif
+}
+
+#endif /* __INTEL_COMPILER && __unix__ */
diff --git a/contrib/libs/c-ares/ares_nowarn.h b/contrib/libs/c-ares/ares_nowarn.h
index c787d638b8..505e622098 100644
--- a/contrib/libs/c-ares/ares_nowarn.h
+++ b/contrib/libs/c-ares/ares_nowarn.h
@@ -1,61 +1,61 @@
-#ifndef HEADER_CARES_NOWARN_H
-#define HEADER_CARES_NOWARN_H
-
-
-/* Copyright (C) 2010-2012 by Daniel Stenberg
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-long aresx_uztosl(size_t uznum);
-int aresx_uztosi(size_t uznum);
-short aresx_uztoss(size_t uznum);
-
-short aresx_sitoss(int sinum);
-
-int aresx_sltosi(long slnum);
-
+#ifndef HEADER_CARES_NOWARN_H
+#define HEADER_CARES_NOWARN_H
+
+
+/* Copyright (C) 2010-2012 by Daniel Stenberg
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+long aresx_uztosl(size_t uznum);
+int aresx_uztosi(size_t uznum);
+short aresx_uztoss(size_t uznum);
+
+short aresx_sitoss(int sinum);
+
+int aresx_sltosi(long slnum);
+
int aresx_sztosi(ares_ssize_t sznum);
-
+
unsigned int aresx_sztoui(ares_ssize_t sznum);
-
-unsigned short aresx_sitous(int sinum);
-
-#if defined(__INTEL_COMPILER) && defined(__unix__)
-
-int aresx_FD_ISSET(int fd, fd_set *fdset);
-
-void aresx_FD_SET(int fd, fd_set *fdset);
-
-void aresx_FD_ZERO(fd_set *fdset);
-
-unsigned short aresx_htons(unsigned short usnum);
-
-unsigned short aresx_ntohs(unsigned short usnum);
-
-#ifndef BUILDING_ARES_NOWARN_C
-# undef FD_ISSET
-# define FD_ISSET(a,b) aresx_FD_ISSET((a),(b))
-# undef FD_SET
-# define FD_SET(a,b) aresx_FD_SET((a),(b))
-# undef FD_ZERO
-# define FD_ZERO(a) aresx_FD_ZERO((a))
-# undef htons
-# define htons(a) aresx_htons((a))
-# undef ntohs
-# define ntohs(a) aresx_ntohs((a))
-#endif
-
-#endif /* __INTEL_COMPILER && __unix__ */
-
-#endif /* HEADER_CARES_NOWARN_H */
+
+unsigned short aresx_sitous(int sinum);
+
+#if defined(__INTEL_COMPILER) && defined(__unix__)
+
+int aresx_FD_ISSET(int fd, fd_set *fdset);
+
+void aresx_FD_SET(int fd, fd_set *fdset);
+
+void aresx_FD_ZERO(fd_set *fdset);
+
+unsigned short aresx_htons(unsigned short usnum);
+
+unsigned short aresx_ntohs(unsigned short usnum);
+
+#ifndef BUILDING_ARES_NOWARN_C
+# undef FD_ISSET
+# define FD_ISSET(a,b) aresx_FD_ISSET((a),(b))
+# undef FD_SET
+# define FD_SET(a,b) aresx_FD_SET((a),(b))
+# undef FD_ZERO
+# define FD_ZERO(a) aresx_FD_ZERO((a))
+# undef htons
+# define htons(a) aresx_htons((a))
+# undef ntohs
+# define ntohs(a) aresx_ntohs((a))
+#endif
+
+#endif /* __INTEL_COMPILER && __unix__ */
+
+#endif /* HEADER_CARES_NOWARN_H */
diff --git a/contrib/libs/c-ares/ares_options.c b/contrib/libs/c-ares/ares_options.c
index aa3773a684..de49de4625 100644
--- a/contrib/libs/c-ares/ares_options.c
+++ b/contrib/libs/c-ares/ares_options.c
@@ -1,88 +1,88 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- * Copyright (C) 2008-2013 by Daniel Stenberg
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-
-#include "ares_setup.h"
-
-#ifdef HAVE_ARPA_INET_H
-# include <arpa/inet.h>
-#endif
-
-#include "ares.h"
-#include "ares_data.h"
-#include "ares_inet_net_pton.h"
-#include "ares_private.h"
-
-
-int ares_get_servers(ares_channel channel,
- struct ares_addr_node **servers)
-{
- struct ares_addr_node *srvr_head = NULL;
- struct ares_addr_node *srvr_last = NULL;
- struct ares_addr_node *srvr_curr;
- int status = ARES_SUCCESS;
- int i;
-
- if (!channel)
- return ARES_ENODATA;
-
- for (i = 0; i < channel->nservers; i++)
- {
- /* Allocate storage for this server node appending it to the list */
- srvr_curr = ares_malloc_data(ARES_DATATYPE_ADDR_NODE);
- if (!srvr_curr)
- {
- status = ARES_ENOMEM;
- break;
- }
- if (srvr_last)
- {
- srvr_last->next = srvr_curr;
- }
- else
- {
- srvr_head = srvr_curr;
- }
- srvr_last = srvr_curr;
-
- /* Fill this server node data */
- srvr_curr->family = channel->servers[i].addr.family;
- if (srvr_curr->family == AF_INET)
- memcpy(&srvr_curr->addrV4, &channel->servers[i].addr.addrV4,
- sizeof(srvr_curr->addrV4));
- else
- memcpy(&srvr_curr->addrV6, &channel->servers[i].addr.addrV6,
- sizeof(srvr_curr->addrV6));
- }
-
- if (status != ARES_SUCCESS)
- {
- if (srvr_head)
- {
- ares_free_data(srvr_head);
- srvr_head = NULL;
- }
- }
-
- *servers = srvr_head;
-
- return status;
-}
-
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ * Copyright (C) 2008-2013 by Daniel Stenberg
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+
+#include "ares_setup.h"
+
+#ifdef HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+#endif
+
+#include "ares.h"
+#include "ares_data.h"
+#include "ares_inet_net_pton.h"
+#include "ares_private.h"
+
+
+int ares_get_servers(ares_channel channel,
+ struct ares_addr_node **servers)
+{
+ struct ares_addr_node *srvr_head = NULL;
+ struct ares_addr_node *srvr_last = NULL;
+ struct ares_addr_node *srvr_curr;
+ int status = ARES_SUCCESS;
+ int i;
+
+ if (!channel)
+ return ARES_ENODATA;
+
+ for (i = 0; i < channel->nservers; i++)
+ {
+ /* Allocate storage for this server node appending it to the list */
+ srvr_curr = ares_malloc_data(ARES_DATATYPE_ADDR_NODE);
+ if (!srvr_curr)
+ {
+ status = ARES_ENOMEM;
+ break;
+ }
+ if (srvr_last)
+ {
+ srvr_last->next = srvr_curr;
+ }
+ else
+ {
+ srvr_head = srvr_curr;
+ }
+ srvr_last = srvr_curr;
+
+ /* Fill this server node data */
+ srvr_curr->family = channel->servers[i].addr.family;
+ if (srvr_curr->family == AF_INET)
+ memcpy(&srvr_curr->addrV4, &channel->servers[i].addr.addrV4,
+ sizeof(srvr_curr->addrV4));
+ else
+ memcpy(&srvr_curr->addrV6, &channel->servers[i].addr.addrV6,
+ sizeof(srvr_curr->addrV6));
+ }
+
+ if (status != ARES_SUCCESS)
+ {
+ if (srvr_head)
+ {
+ ares_free_data(srvr_head);
+ srvr_head = NULL;
+ }
+ }
+
+ *servers = srvr_head;
+
+ return status;
+}
+
int ares_get_servers_ports(ares_channel channel,
struct ares_addr_port_node **servers)
{
@@ -91,7 +91,7 @@ int ares_get_servers_ports(ares_channel channel,
struct ares_addr_port_node *srvr_curr;
int status = ARES_SUCCESS;
int i;
-
+
if (!channel)
return ARES_ENODATA;
@@ -140,58 +140,58 @@ int ares_get_servers_ports(ares_channel channel,
return status;
}
-int ares_set_servers(ares_channel channel,
- struct ares_addr_node *servers)
-{
- struct ares_addr_node *srvr;
- int num_srvrs = 0;
- int i;
-
- if (ares_library_initialized() != ARES_SUCCESS)
+int ares_set_servers(ares_channel channel,
+ struct ares_addr_node *servers)
+{
+ struct ares_addr_node *srvr;
+ int num_srvrs = 0;
+ int i;
+
+ if (ares_library_initialized() != ARES_SUCCESS)
return ARES_ENOTINITIALIZED; /* LCOV_EXCL_LINE: n/a on non-WinSock */
-
- if (!channel)
- return ARES_ENODATA;
-
+
+ if (!channel)
+ return ARES_ENODATA;
+
if (!ares__is_list_empty(&channel->all_queries))
return ARES_ENOTIMP;
- ares__destroy_servers_state(channel);
-
- for (srvr = servers; srvr; srvr = srvr->next)
- {
- num_srvrs++;
- }
-
- if (num_srvrs > 0)
- {
- /* Allocate storage for servers state */
+ ares__destroy_servers_state(channel);
+
+ for (srvr = servers; srvr; srvr = srvr->next)
+ {
+ num_srvrs++;
+ }
+
+ if (num_srvrs > 0)
+ {
+ /* Allocate storage for servers state */
channel->servers = ares_malloc(num_srvrs * sizeof(struct server_state));
- if (!channel->servers)
- {
- return ARES_ENOMEM;
- }
- channel->nservers = num_srvrs;
- /* Fill servers state address data */
- for (i = 0, srvr = servers; srvr; i++, srvr = srvr->next)
- {
- channel->servers[i].addr.family = srvr->family;
+ if (!channel->servers)
+ {
+ return ARES_ENOMEM;
+ }
+ channel->nservers = num_srvrs;
+ /* Fill servers state address data */
+ for (i = 0, srvr = servers; srvr; i++, srvr = srvr->next)
+ {
+ channel->servers[i].addr.family = srvr->family;
channel->servers[i].addr.udp_port = 0;
channel->servers[i].addr.tcp_port = 0;
- if (srvr->family == AF_INET)
- memcpy(&channel->servers[i].addr.addrV4, &srvr->addrV4,
- sizeof(srvr->addrV4));
- else
- memcpy(&channel->servers[i].addr.addrV6, &srvr->addrV6,
- sizeof(srvr->addrV6));
- }
- /* Initialize servers state remaining data */
- ares__init_servers_state(channel);
- }
-
- return ARES_SUCCESS;
-}
-
+ if (srvr->family == AF_INET)
+ memcpy(&channel->servers[i].addr.addrV4, &srvr->addrV4,
+ sizeof(srvr->addrV4));
+ else
+ memcpy(&channel->servers[i].addr.addrV6, &srvr->addrV6,
+ sizeof(srvr->addrV6));
+ }
+ /* Initialize servers state remaining data */
+ ares__init_servers_state(channel);
+ }
+
+ return ARES_SUCCESS;
+}
+
int ares_set_servers_ports(ares_channel channel,
struct ares_addr_port_node *servers)
{
@@ -244,153 +244,153 @@ int ares_set_servers_ports(ares_channel channel,
return ARES_SUCCESS;
}
-/* Incomming string format: host[:port][,host[:port]]... */
-/* IPv6 addresses with ports require square brackets [fe80::1%lo0]:53 */
+/* Incomming string format: host[:port][,host[:port]]... */
+/* IPv6 addresses with ports require square brackets [fe80::1%lo0]:53 */
static int set_servers_csv(ares_channel channel,
const char* _csv, int use_port)
-{
- size_t i;
- char* csv = NULL;
- char* ptr;
- char* start_host;
- int cc = 0;
- int rv = ARES_SUCCESS;
+{
+ size_t i;
+ char* csv = NULL;
+ char* ptr;
+ char* start_host;
+ int cc = 0;
+ int rv = ARES_SUCCESS;
struct ares_addr_port_node *servers = NULL;
struct ares_addr_port_node *last = NULL;
-
- if (ares_library_initialized() != ARES_SUCCESS)
+
+ if (ares_library_initialized() != ARES_SUCCESS)
return ARES_ENOTINITIALIZED; /* LCOV_EXCL_LINE: n/a on non-WinSock */
-
- if (!channel)
- return ARES_ENODATA;
-
- i = strlen(_csv);
- if (i == 0)
- return ARES_SUCCESS; /* blank all servers */
-
+
+ if (!channel)
+ return ARES_ENODATA;
+
+ i = strlen(_csv);
+ if (i == 0)
+ return ARES_SUCCESS; /* blank all servers */
+
csv = ares_malloc(i + 2);
if (!csv)
return ARES_ENOMEM;
- strcpy(csv, _csv);
- if (csv[i-1] != ',') { /* make parsing easier by ensuring ending ',' */
- csv[i] = ',';
- csv[i+1] = 0;
- }
-
- start_host = csv;
- for (ptr = csv; *ptr; ptr++) {
- if (*ptr == ':') {
- /* count colons to determine if we have an IPv6 number or IPv4 with
- port */
- cc++;
- }
- else if (*ptr == '[') {
- /* move start_host if an open square bracket is found wrapping an IPv6
- address */
- start_host = ptr + 1;
- }
- else if (*ptr == ',') {
- char* pp = ptr - 1;
- char* p = ptr;
+ strcpy(csv, _csv);
+ if (csv[i-1] != ',') { /* make parsing easier by ensuring ending ',' */
+ csv[i] = ',';
+ csv[i+1] = 0;
+ }
+
+ start_host = csv;
+ for (ptr = csv; *ptr; ptr++) {
+ if (*ptr == ':') {
+ /* count colons to determine if we have an IPv6 number or IPv4 with
+ port */
+ cc++;
+ }
+ else if (*ptr == '[') {
+ /* move start_host if an open square bracket is found wrapping an IPv6
+ address */
+ start_host = ptr + 1;
+ }
+ else if (*ptr == ',') {
+ char* pp = ptr - 1;
+ char* p = ptr;
int port = 0;
- struct in_addr in4;
- struct ares_in6_addr in6;
+ struct in_addr in4;
+ struct ares_in6_addr in6;
struct ares_addr_port_node *s = NULL;
-
- *ptr = 0; /* null terminate host:port string */
- /* Got an entry..see if the port was specified. */
- if (cc > 0) {
- while (pp > start_host) {
- /* a single close square bracket followed by a colon, ']:' indicates
- an IPv6 address with port */
- if ((*pp == ']') && (*p == ':'))
- break; /* found port */
- /* a single colon, ':' indicates an IPv4 address with port */
- if ((*pp == ':') && (cc == 1))
- break; /* found port */
- if (!(ISDIGIT(*pp) || (*pp == ':'))) {
- /* Found end of digits before we found :, so wasn't a port */
- /* must allow ':' for IPv6 case of ']:' indicates we found a port */
- pp = p = ptr;
- break;
- }
- pp--;
- p--;
- }
- if ((pp != start_host) && ((pp + 1) < ptr)) {
- /* Found it. Parse over the port number */
- /* when an IPv6 address is wrapped with square brackets the port
- starts at pp + 2 */
- if (*pp == ']')
- p++; /* move p before ':' */
- /* p will point to the start of the port */
+
+ *ptr = 0; /* null terminate host:port string */
+ /* Got an entry..see if the port was specified. */
+ if (cc > 0) {
+ while (pp > start_host) {
+ /* a single close square bracket followed by a colon, ']:' indicates
+ an IPv6 address with port */
+ if ((*pp == ']') && (*p == ':'))
+ break; /* found port */
+ /* a single colon, ':' indicates an IPv4 address with port */
+ if ((*pp == ':') && (cc == 1))
+ break; /* found port */
+ if (!(ISDIGIT(*pp) || (*pp == ':'))) {
+ /* Found end of digits before we found :, so wasn't a port */
+ /* must allow ':' for IPv6 case of ']:' indicates we found a port */
+ pp = p = ptr;
+ break;
+ }
+ pp--;
+ p--;
+ }
+ if ((pp != start_host) && ((pp + 1) < ptr)) {
+ /* Found it. Parse over the port number */
+ /* when an IPv6 address is wrapped with square brackets the port
+ starts at pp + 2 */
+ if (*pp == ']')
+ p++; /* move p before ':' */
+ /* p will point to the start of the port */
port = (int)strtol(p, NULL, 10);
- *pp = 0; /* null terminate host */
- }
- }
- /* resolve host, try ipv4 first, rslt is in network byte order */
- rv = ares_inet_pton(AF_INET, start_host, &in4);
- if (!rv) {
- /* Ok, try IPv6 then */
- rv = ares_inet_pton(AF_INET6, start_host, &in6);
- if (!rv) {
- rv = ARES_EBADSTR;
- goto out;
- }
- /* was ipv6, add new server */
+ *pp = 0; /* null terminate host */
+ }
+ }
+ /* resolve host, try ipv4 first, rslt is in network byte order */
+ rv = ares_inet_pton(AF_INET, start_host, &in4);
+ if (!rv) {
+ /* Ok, try IPv6 then */
+ rv = ares_inet_pton(AF_INET6, start_host, &in6);
+ if (!rv) {
+ rv = ARES_EBADSTR;
+ goto out;
+ }
+ /* was ipv6, add new server */
s = ares_malloc(sizeof(*s));
- if (!s) {
- rv = ARES_ENOMEM;
- goto out;
- }
- s->family = AF_INET6;
- memcpy(&s->addr, &in6, sizeof(struct ares_in6_addr));
- }
- else {
- /* was ipv4, add new server */
+ if (!s) {
+ rv = ARES_ENOMEM;
+ goto out;
+ }
+ s->family = AF_INET6;
+ memcpy(&s->addr, &in6, sizeof(struct ares_in6_addr));
+ }
+ else {
+ /* was ipv4, add new server */
s = ares_malloc(sizeof(*s));
- if (!s) {
- rv = ARES_ENOMEM;
- goto out;
- }
- s->family = AF_INET;
- memcpy(&s->addr, &in4, sizeof(struct in_addr));
- }
- if (s) {
+ if (!s) {
+ rv = ARES_ENOMEM;
+ goto out;
+ }
+ s->family = AF_INET;
+ memcpy(&s->addr, &in4, sizeof(struct in_addr));
+ }
+ if (s) {
s->udp_port = use_port ? port: 0;
s->tcp_port = s->udp_port;
- s->next = NULL;
- if (last) {
- last->next = s;
- /* need to move last to maintain the linked list */
- last = last->next;
- }
- else {
- servers = s;
- last = s;
- }
- }
-
- /* Set up for next one */
- start_host = ptr + 1;
- cc = 0;
- }
- }
-
+ s->next = NULL;
+ if (last) {
+ last->next = s;
+ /* need to move last to maintain the linked list */
+ last = last->next;
+ }
+ else {
+ servers = s;
+ last = s;
+ }
+ }
+
+ /* Set up for next one */
+ start_host = ptr + 1;
+ cc = 0;
+ }
+ }
+
rv = ares_set_servers_ports(channel, servers);
-
- out:
- if (csv)
+
+ out:
+ if (csv)
ares_free(csv);
- while (servers) {
+ while (servers) {
struct ares_addr_port_node *s = servers;
- servers = servers->next;
+ servers = servers->next;
ares_free(s);
- }
-
- return rv;
-}
+ }
+
+ return rv;
+}
int ares_set_servers_csv(ares_channel channel,
const char* _csv)
diff --git a/contrib/libs/c-ares/ares_parse_a_reply.c b/contrib/libs/c-ares/ares_parse_a_reply.c
index 3ba07afcc9..d8a9e9b578 100644
--- a/contrib/libs/c-ares/ares_parse_a_reply.c
+++ b/contrib/libs/c-ares/ares_parse_a_reply.c
@@ -1,56 +1,56 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
* Copyright (C) 2019 by Andrew Selivanov
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_NETDB_H
-# include <netdb.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-# include <arpa/inet.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-# include <arpa/nameser_compat.h>
-#endif
-
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-
-#ifdef HAVE_LIMITS_H
-# include <limits.h>
-#endif
-
-#include "ares.h"
-#include "ares_dns.h"
-#include "ares_private.h"
-
-int ares_parse_a_reply(const unsigned char *abuf, int alen,
- struct hostent **host,
- struct ares_addrttl *addrttls, int *naddrttls)
-{
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_NETDB_H
+# include <netdb.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
+# include <arpa/nameser_compat.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+
+#ifdef HAVE_LIMITS_H
+# include <limits.h>
+#endif
+
+#include "ares.h"
+#include "ares_dns.h"
+#include "ares_private.h"
+
+int ares_parse_a_reply(const unsigned char *abuf, int alen,
+ struct hostent **host,
+ struct ares_addrttl *addrttls, int *naddrttls)
+{
struct ares_addrinfo ai;
struct ares_addrinfo_node *next;
struct ares_addrinfo_cname *next_cname;
@@ -61,112 +61,112 @@ int ares_parse_a_reply(const unsigned char *abuf, int alen,
int naliases = 0, naddrs = 0, alias = 0, i;
int cname_ttl = INT_MAX;
int status;
-
+
memset(&ai, 0, sizeof(ai));
-
+
status = ares__parse_into_addrinfo2(abuf, alen, &question_hostname, &ai);
if (status != ARES_SUCCESS)
{
ares_free(question_hostname);
-
+
if (naddrttls)
{
*naddrttls = 0;
}
-
+
return status;
}
hostent = ares_malloc(sizeof(struct hostent));
if (!hostent)
- {
+ {
goto enomem;
- }
-
+ }
+
next = ai.nodes;
while (next)
- {
+ {
if (next->ai_family == AF_INET)
- {
+ {
++naddrs;
- }
+ }
next = next->ai_next;
- }
+ }
next_cname = ai.cnames;
while (next_cname)
- {
+ {
if(next_cname->alias)
++naliases;
next_cname = next_cname->next;
- }
-
+ }
+
aliases = ares_malloc((naliases + 1) * sizeof(char *));
if (!aliases)
{
goto enomem;
}
-
+
if (naliases)
- {
+ {
next_cname = ai.cnames;
while (next_cname)
- {
+ {
if(next_cname->alias)
aliases[alias++] = strdup(next_cname->alias);
if(next_cname->ttl < cname_ttl)
cname_ttl = next_cname->ttl;
next_cname = next_cname->next;
- }
+ }
}
-
+
aliases[alias] = NULL;
-
+
hostent->h_addr_list = ares_malloc((naddrs + 1) * sizeof(char *));
if (!hostent->h_addr_list)
{
goto enomem;
}
-
+
for (i = 0; i < naddrs + 1; ++i)
{
hostent->h_addr_list[i] = NULL;
}
-
+
if (ai.cnames)
{
hostent->h_name = strdup(ai.cnames->name);
ares_free(question_hostname);
- }
+ }
else
{
hostent->h_name = question_hostname;
}
-
+
hostent->h_aliases = aliases;
hostent->h_addrtype = AF_INET;
hostent->h_length = sizeof(struct in_addr);
if (naddrs)
- {
+ {
addrs = ares_malloc(naddrs * sizeof(struct in_addr));
if (!addrs)
- {
+ {
goto enomem;
- }
+ }
i = 0;
next = ai.nodes;
while (next)
- {
+ {
if (next->ai_family == AF_INET)
- {
+ {
hostent->h_addr_list[i] = (char *)&addrs[i];
memcpy(hostent->h_addr_list[i],
&(CARES_INADDR_CAST(struct sockaddr_in *, next->ai_addr)->sin_addr),
sizeof(struct in_addr));
if (naddrttls && i < *naddrttls)
- {
+ {
if (next->ai_ttl > cname_ttl)
addrttls[i].ttl = cname_ttl;
else
@@ -175,11 +175,11 @@ int ares_parse_a_reply(const unsigned char *abuf, int alen,
memcpy(&addrttls[i].ipaddr,
&(CARES_INADDR_CAST(struct sockaddr_in *, next->ai_addr)->sin_addr),
sizeof(struct in_addr));
- }
+ }
++i;
- }
+ }
next = next->ai_next;
- }
+ }
if (i == 0)
{
ares_free(addrs);
@@ -187,9 +187,9 @@ int ares_parse_a_reply(const unsigned char *abuf, int alen,
}
if (host)
- {
+ {
*host = hostent;
- }
+ }
else
{
ares_free_hostent(hostent);
@@ -211,4 +211,4 @@ enomem:
ares__freeaddrinfo_nodes(ai.nodes);
ares_free(question_hostname);
return ARES_ENOMEM;
-}
+}
diff --git a/contrib/libs/c-ares/ares_parse_aaaa_reply.c b/contrib/libs/c-ares/ares_parse_aaaa_reply.c
index 9777fb3f59..0d39bfa826 100644
--- a/contrib/libs/c-ares/ares_parse_aaaa_reply.c
+++ b/contrib/libs/c-ares/ares_parse_aaaa_reply.c
@@ -1,58 +1,58 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- * Copyright 2005 Dominick Meglio
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ * Copyright 2005 Dominick Meglio
* Copyright (C) 2019 by Andrew Selivanov
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_NETDB_H
-# include <netdb.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-# include <arpa/inet.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-# include <arpa/nameser_compat.h>
-#endif
-
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-
-#ifdef HAVE_LIMITS_H
-# include <limits.h>
-#endif
-
-#include "ares.h"
-#include "ares_dns.h"
-#include "ares_inet_net_pton.h"
-#include "ares_private.h"
-
-int ares_parse_aaaa_reply(const unsigned char *abuf, int alen,
- struct hostent **host, struct ares_addr6ttl *addrttls,
- int *naddrttls)
-{
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_NETDB_H
+# include <netdb.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
+# include <arpa/nameser_compat.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+
+#ifdef HAVE_LIMITS_H
+# include <limits.h>
+#endif
+
+#include "ares.h"
+#include "ares_dns.h"
+#include "ares_inet_net_pton.h"
+#include "ares_private.h"
+
+int ares_parse_aaaa_reply(const unsigned char *abuf, int alen,
+ struct hostent **host, struct ares_addr6ttl *addrttls,
+ int *naddrttls)
+{
struct ares_addrinfo ai;
struct ares_addrinfo_node *next;
struct ares_addrinfo_cname *next_cname;
@@ -63,112 +63,112 @@ int ares_parse_aaaa_reply(const unsigned char *abuf, int alen,
int naliases = 0, naddrs = 0, alias = 0, i;
int cname_ttl = INT_MAX;
int status;
-
+
memset(&ai, 0, sizeof(ai));
-
+
status = ares__parse_into_addrinfo2(abuf, alen, &question_hostname, &ai);
if (status != ARES_SUCCESS)
{
ares_free(question_hostname);
-
+
if (naddrttls)
{
*naddrttls = 0;
}
-
+
return status;
}
hostent = ares_malloc(sizeof(struct hostent));
if (!hostent)
- {
+ {
goto enomem;
- }
-
+ }
+
next = ai.nodes;
while (next)
- {
+ {
if(next->ai_family == AF_INET6)
- {
+ {
++naddrs;
- }
+ }
next = next->ai_next;
- }
+ }
next_cname = ai.cnames;
while (next_cname)
- {
+ {
if(next_cname->alias)
++naliases;
next_cname = next_cname->next;
- }
-
+ }
+
aliases = ares_malloc((naliases + 1) * sizeof(char *));
if (!aliases)
- {
+ {
goto enomem;
}
-
+
if (naliases)
{
next_cname = ai.cnames;
while (next_cname)
- {
+ {
if(next_cname->alias)
aliases[alias++] = strdup(next_cname->alias);
if(next_cname->ttl < cname_ttl)
cname_ttl = next_cname->ttl;
next_cname = next_cname->next;
- }
+ }
}
-
+
aliases[alias] = NULL;
-
+
hostent->h_addr_list = ares_malloc((naddrs + 1) * sizeof(char *));
if (!hostent->h_addr_list)
{
goto enomem;
}
-
+
for (i = 0; i < naddrs + 1; ++i)
{
hostent->h_addr_list[i] = NULL;
}
-
+
if (ai.cnames)
{
hostent->h_name = strdup(ai.cnames->name);
ares_free(question_hostname);
- }
+ }
else
{
hostent->h_name = question_hostname;
}
-
+
hostent->h_aliases = aliases;
hostent->h_addrtype = AF_INET6;
hostent->h_length = sizeof(struct ares_in6_addr);
if (naddrs)
- {
+ {
addrs = ares_malloc(naddrs * sizeof(struct ares_in6_addr));
if (!addrs)
- {
+ {
goto enomem;
- }
+ }
i = 0;
next = ai.nodes;
while (next)
- {
+ {
if(next->ai_family == AF_INET6)
- {
+ {
hostent->h_addr_list[i] = (char*)&addrs[i];
memcpy(hostent->h_addr_list[i],
&(CARES_INADDR_CAST(struct sockaddr_in6 *, next->ai_addr)->sin6_addr),
sizeof(struct ares_in6_addr));
if (naddrttls && i < *naddrttls)
- {
+ {
if(next->ai_ttl > cname_ttl)
addrttls[i].ttl = cname_ttl;
else
@@ -177,22 +177,22 @@ int ares_parse_aaaa_reply(const unsigned char *abuf, int alen,
memcpy(&addrttls[i].ip6addr,
&(CARES_INADDR_CAST(struct sockaddr_in6 *, next->ai_addr)->sin6_addr),
sizeof(struct ares_in6_addr));
- }
+ }
++i;
- }
+ }
next = next->ai_next;
- }
+ }
if (i == 0)
{
ares_free(addrs);
}
- }
+ }
if (host)
- {
+ {
*host = hostent;
- }
+ }
else
{
ares_free_hostent(hostent);
@@ -214,4 +214,4 @@ enomem:
ares__freeaddrinfo_nodes(ai.nodes);
ares_free(question_hostname);
return ARES_ENOMEM;
-}
+}
diff --git a/contrib/libs/c-ares/ares_parse_mx_reply.c b/contrib/libs/c-ares/ares_parse_mx_reply.c
index 0fda2c3a94..8d1703020c 100644
--- a/contrib/libs/c-ares/ares_parse_mx_reply.c
+++ b/contrib/libs/c-ares/ares_parse_mx_reply.c
@@ -1,172 +1,172 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- * Copyright (C) 2010 Jeremy Lal <kapouer@melix.org>
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_NETDB_H
-# include <netdb.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-# include <arpa/inet.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-# include <arpa/nameser_compat.h>
-#endif
-
-#include "ares.h"
-#include "ares_dns.h"
-#include "ares_data.h"
-#include "ares_private.h"
-
-int
-ares_parse_mx_reply (const unsigned char *abuf, int alen,
- struct ares_mx_reply **mx_out)
-{
- unsigned int qdcount, ancount, i;
- const unsigned char *aptr, *vptr;
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ * Copyright (C) 2010 Jeremy Lal <kapouer@melix.org>
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_NETDB_H
+# include <netdb.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
+# include <arpa/nameser_compat.h>
+#endif
+
+#include "ares.h"
+#include "ares_dns.h"
+#include "ares_data.h"
+#include "ares_private.h"
+
+int
+ares_parse_mx_reply (const unsigned char *abuf, int alen,
+ struct ares_mx_reply **mx_out)
+{
+ unsigned int qdcount, ancount, i;
+ const unsigned char *aptr, *vptr;
int status, rr_type, rr_class, rr_len, rr_ttl;
- long len;
- char *hostname = NULL, *rr_name = NULL;
- struct ares_mx_reply *mx_head = NULL;
- struct ares_mx_reply *mx_last = NULL;
- struct ares_mx_reply *mx_curr;
-
- /* Set *mx_out to NULL for all failure cases. */
- *mx_out = NULL;
-
- /* Give up if abuf doesn't have room for a header. */
- if (alen < HFIXEDSZ)
- return ARES_EBADRESP;
-
- /* Fetch the question and answer count from the header. */
- qdcount = DNS_HEADER_QDCOUNT (abuf);
- ancount = DNS_HEADER_ANCOUNT (abuf);
- if (qdcount != 1)
- return ARES_EBADRESP;
- if (ancount == 0)
- return ARES_ENODATA;
-
- /* Expand the name from the question, and skip past the question. */
- aptr = abuf + HFIXEDSZ;
- status = ares_expand_name (aptr, abuf, alen, &hostname, &len);
- if (status != ARES_SUCCESS)
- return status;
-
- if (aptr + len + QFIXEDSZ > abuf + alen)
- {
+ long len;
+ char *hostname = NULL, *rr_name = NULL;
+ struct ares_mx_reply *mx_head = NULL;
+ struct ares_mx_reply *mx_last = NULL;
+ struct ares_mx_reply *mx_curr;
+
+ /* Set *mx_out to NULL for all failure cases. */
+ *mx_out = NULL;
+
+ /* Give up if abuf doesn't have room for a header. */
+ if (alen < HFIXEDSZ)
+ return ARES_EBADRESP;
+
+ /* Fetch the question and answer count from the header. */
+ qdcount = DNS_HEADER_QDCOUNT (abuf);
+ ancount = DNS_HEADER_ANCOUNT (abuf);
+ if (qdcount != 1)
+ return ARES_EBADRESP;
+ if (ancount == 0)
+ return ARES_ENODATA;
+
+ /* Expand the name from the question, and skip past the question. */
+ aptr = abuf + HFIXEDSZ;
+ status = ares_expand_name (aptr, abuf, alen, &hostname, &len);
+ if (status != ARES_SUCCESS)
+ return status;
+
+ if (aptr + len + QFIXEDSZ > abuf + alen)
+ {
ares_free (hostname);
- return ARES_EBADRESP;
- }
- aptr += len + QFIXEDSZ;
-
- /* Examine each answer resource record (RR) in turn. */
- for (i = 0; i < ancount; i++)
- {
- /* Decode the RR up to the data field. */
- status = ares_expand_name (aptr, abuf, alen, &rr_name, &len);
- if (status != ARES_SUCCESS)
- {
- break;
- }
- aptr += len;
- if (aptr + RRFIXEDSZ > abuf + alen)
- {
- status = ARES_EBADRESP;
- break;
- }
- rr_type = DNS_RR_TYPE (aptr);
- rr_class = DNS_RR_CLASS (aptr);
- rr_len = DNS_RR_LEN (aptr);
+ return ARES_EBADRESP;
+ }
+ aptr += len + QFIXEDSZ;
+
+ /* Examine each answer resource record (RR) in turn. */
+ for (i = 0; i < ancount; i++)
+ {
+ /* Decode the RR up to the data field. */
+ status = ares_expand_name (aptr, abuf, alen, &rr_name, &len);
+ if (status != ARES_SUCCESS)
+ {
+ break;
+ }
+ aptr += len;
+ if (aptr + RRFIXEDSZ > abuf + alen)
+ {
+ status = ARES_EBADRESP;
+ break;
+ }
+ rr_type = DNS_RR_TYPE (aptr);
+ rr_class = DNS_RR_CLASS (aptr);
+ rr_len = DNS_RR_LEN (aptr);
rr_ttl = DNS_RR_TTL (aptr);
- aptr += RRFIXEDSZ;
- if (aptr + rr_len > abuf + alen)
- {
- status = ARES_EBADRESP;
- break;
- }
-
- /* Check if we are really looking at a MX record */
- if (rr_class == C_IN && rr_type == T_MX)
- {
- /* parse the MX record itself */
- if (rr_len < 2)
- {
- status = ARES_EBADRESP;
- break;
- }
-
- /* Allocate storage for this MX answer appending it to the list */
- mx_curr = ares_malloc_data(ARES_DATATYPE_MX_REPLY);
- if (!mx_curr)
- {
- status = ARES_ENOMEM;
- break;
- }
- if (mx_last)
- {
- mx_last->next = mx_curr;
- }
- else
- {
- mx_head = mx_curr;
- }
- mx_last = mx_curr;
-
- vptr = aptr;
- mx_curr->priority = DNS__16BIT(vptr);
+ aptr += RRFIXEDSZ;
+ if (aptr + rr_len > abuf + alen)
+ {
+ status = ARES_EBADRESP;
+ break;
+ }
+
+ /* Check if we are really looking at a MX record */
+ if (rr_class == C_IN && rr_type == T_MX)
+ {
+ /* parse the MX record itself */
+ if (rr_len < 2)
+ {
+ status = ARES_EBADRESP;
+ break;
+ }
+
+ /* Allocate storage for this MX answer appending it to the list */
+ mx_curr = ares_malloc_data(ARES_DATATYPE_MX_REPLY);
+ if (!mx_curr)
+ {
+ status = ARES_ENOMEM;
+ break;
+ }
+ if (mx_last)
+ {
+ mx_last->next = mx_curr;
+ }
+ else
+ {
+ mx_head = mx_curr;
+ }
+ mx_last = mx_curr;
+
+ vptr = aptr;
+ mx_curr->priority = DNS__16BIT(vptr);
mx_curr->ttl = rr_ttl;
- vptr += sizeof(unsigned short);
-
- status = ares_expand_name (vptr, abuf, alen, &mx_curr->host, &len);
- if (status != ARES_SUCCESS)
- break;
- }
-
- /* Don't lose memory in the next iteration */
+ vptr += sizeof(unsigned short);
+
+ status = ares_expand_name (vptr, abuf, alen, &mx_curr->host, &len);
+ if (status != ARES_SUCCESS)
+ break;
+ }
+
+ /* Don't lose memory in the next iteration */
ares_free (rr_name);
- rr_name = NULL;
-
- /* Move on to the next record */
- aptr += rr_len;
- }
-
- if (hostname)
+ rr_name = NULL;
+
+ /* Move on to the next record */
+ aptr += rr_len;
+ }
+
+ if (hostname)
ares_free (hostname);
- if (rr_name)
+ if (rr_name)
ares_free (rr_name);
-
- /* clean up on error */
- if (status != ARES_SUCCESS)
- {
- if (mx_head)
- ares_free_data (mx_head);
- return status;
- }
-
- /* everything looks fine, return the data */
- *mx_out = mx_head;
-
- return ARES_SUCCESS;
-}
+
+ /* clean up on error */
+ if (status != ARES_SUCCESS)
+ {
+ if (mx_head)
+ ares_free_data (mx_head);
+ return status;
+ }
+
+ /* everything looks fine, return the data */
+ *mx_out = mx_head;
+
+ return ARES_SUCCESS;
+}
diff --git a/contrib/libs/c-ares/ares_parse_naptr_reply.c b/contrib/libs/c-ares/ares_parse_naptr_reply.c
index f8a05b71cb..04abc3c7ee 100644
--- a/contrib/libs/c-ares/ares_parse_naptr_reply.c
+++ b/contrib/libs/c-ares/ares_parse_naptr_reply.c
@@ -1,122 +1,122 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- * Copyright (C) 2009 by Jakub Hrozek <jhrozek@redhat.com>
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_NETDB_H
-# include <netdb.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-# include <arpa/inet.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-# include <arpa/nameser_compat.h>
-#endif
-
-#include "ares.h"
-#include "ares_dns.h"
-#include "ares_data.h"
-#include "ares_private.h"
-
-/* AIX portability check */
-#ifndef T_NAPTR
- #define T_NAPTR 35 /* naming authority pointer */
-#endif
-
-int
-ares_parse_naptr_reply (const unsigned char *abuf, int alen,
- struct ares_naptr_reply **naptr_out)
-{
- unsigned int qdcount, ancount, i;
- const unsigned char *aptr, *vptr;
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ * Copyright (C) 2009 by Jakub Hrozek <jhrozek@redhat.com>
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_NETDB_H
+# include <netdb.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
+# include <arpa/nameser_compat.h>
+#endif
+
+#include "ares.h"
+#include "ares_dns.h"
+#include "ares_data.h"
+#include "ares_private.h"
+
+/* AIX portability check */
+#ifndef T_NAPTR
+ #define T_NAPTR 35 /* naming authority pointer */
+#endif
+
+int
+ares_parse_naptr_reply (const unsigned char *abuf, int alen,
+ struct ares_naptr_reply **naptr_out)
+{
+ unsigned int qdcount, ancount, i;
+ const unsigned char *aptr, *vptr;
int status, rr_type, rr_class, rr_len, rr_ttl;
- long len;
- char *hostname = NULL, *rr_name = NULL;
- struct ares_naptr_reply *naptr_head = NULL;
- struct ares_naptr_reply *naptr_last = NULL;
- struct ares_naptr_reply *naptr_curr;
-
- /* Set *naptr_out to NULL for all failure cases. */
- *naptr_out = NULL;
-
- /* Give up if abuf doesn't have room for a header. */
- if (alen < HFIXEDSZ)
- return ARES_EBADRESP;
-
- /* Fetch the question and answer count from the header. */
- qdcount = DNS_HEADER_QDCOUNT (abuf);
- ancount = DNS_HEADER_ANCOUNT (abuf);
- if (qdcount != 1)
- return ARES_EBADRESP;
- if (ancount == 0)
- return ARES_ENODATA;
-
- /* Expand the name from the question, and skip past the question. */
- aptr = abuf + HFIXEDSZ;
- status = ares_expand_name (aptr, abuf, alen, &hostname, &len);
- if (status != ARES_SUCCESS)
- return status;
-
- if (aptr + len + QFIXEDSZ > abuf + alen)
- {
+ long len;
+ char *hostname = NULL, *rr_name = NULL;
+ struct ares_naptr_reply *naptr_head = NULL;
+ struct ares_naptr_reply *naptr_last = NULL;
+ struct ares_naptr_reply *naptr_curr;
+
+ /* Set *naptr_out to NULL for all failure cases. */
+ *naptr_out = NULL;
+
+ /* Give up if abuf doesn't have room for a header. */
+ if (alen < HFIXEDSZ)
+ return ARES_EBADRESP;
+
+ /* Fetch the question and answer count from the header. */
+ qdcount = DNS_HEADER_QDCOUNT (abuf);
+ ancount = DNS_HEADER_ANCOUNT (abuf);
+ if (qdcount != 1)
+ return ARES_EBADRESP;
+ if (ancount == 0)
+ return ARES_ENODATA;
+
+ /* Expand the name from the question, and skip past the question. */
+ aptr = abuf + HFIXEDSZ;
+ status = ares_expand_name (aptr, abuf, alen, &hostname, &len);
+ if (status != ARES_SUCCESS)
+ return status;
+
+ if (aptr + len + QFIXEDSZ > abuf + alen)
+ {
ares_free (hostname);
- return ARES_EBADRESP;
- }
- aptr += len + QFIXEDSZ;
-
- /* Examine each answer resource record (RR) in turn. */
- for (i = 0; i < ancount; i++)
- {
- /* Decode the RR up to the data field. */
- status = ares_expand_name (aptr, abuf, alen, &rr_name, &len);
- if (status != ARES_SUCCESS)
- {
- break;
- }
- aptr += len;
- if (aptr + RRFIXEDSZ > abuf + alen)
- {
- status = ARES_EBADRESP;
- break;
- }
- rr_type = DNS_RR_TYPE (aptr);
- rr_class = DNS_RR_CLASS (aptr);
- rr_len = DNS_RR_LEN (aptr);
+ return ARES_EBADRESP;
+ }
+ aptr += len + QFIXEDSZ;
+
+ /* Examine each answer resource record (RR) in turn. */
+ for (i = 0; i < ancount; i++)
+ {
+ /* Decode the RR up to the data field. */
+ status = ares_expand_name (aptr, abuf, alen, &rr_name, &len);
+ if (status != ARES_SUCCESS)
+ {
+ break;
+ }
+ aptr += len;
+ if (aptr + RRFIXEDSZ > abuf + alen)
+ {
+ status = ARES_EBADRESP;
+ break;
+ }
+ rr_type = DNS_RR_TYPE (aptr);
+ rr_class = DNS_RR_CLASS (aptr);
+ rr_len = DNS_RR_LEN (aptr);
rr_ttl = DNS_RR_TTL (aptr);
- aptr += RRFIXEDSZ;
- if (aptr + rr_len > abuf + alen)
- {
- status = ARES_EBADRESP;
- break;
- }
-
- /* Check if we are really looking at a NAPTR record */
- if (rr_class == C_IN && rr_type == T_NAPTR)
- {
- /* parse the NAPTR record itself */
-
+ aptr += RRFIXEDSZ;
+ if (aptr + rr_len > abuf + alen)
+ {
+ status = ARES_EBADRESP;
+ break;
+ }
+
+ /* Check if we are really looking at a NAPTR record */
+ if (rr_class == C_IN && rr_type == T_NAPTR)
+ {
+ /* parse the NAPTR record itself */
+
/* RR must contain at least 7 bytes = 2 x int16 + 3 x name */
if (rr_len < 7)
{
@@ -124,73 +124,73 @@ ares_parse_naptr_reply (const unsigned char *abuf, int alen,
break;
}
- /* Allocate storage for this NAPTR answer appending it to the list */
- naptr_curr = ares_malloc_data(ARES_DATATYPE_NAPTR_REPLY);
- if (!naptr_curr)
- {
- status = ARES_ENOMEM;
- break;
- }
- if (naptr_last)
- {
- naptr_last->next = naptr_curr;
- }
- else
- {
- naptr_head = naptr_curr;
- }
- naptr_last = naptr_curr;
-
+ /* Allocate storage for this NAPTR answer appending it to the list */
+ naptr_curr = ares_malloc_data(ARES_DATATYPE_NAPTR_REPLY);
+ if (!naptr_curr)
+ {
+ status = ARES_ENOMEM;
+ break;
+ }
+ if (naptr_last)
+ {
+ naptr_last->next = naptr_curr;
+ }
+ else
+ {
+ naptr_head = naptr_curr;
+ }
+ naptr_last = naptr_curr;
+
naptr_curr->ttl = rr_ttl;
- vptr = aptr;
- naptr_curr->order = DNS__16BIT(vptr);
- vptr += sizeof(unsigned short);
- naptr_curr->preference = DNS__16BIT(vptr);
- vptr += sizeof(unsigned short);
-
- status = ares_expand_string(vptr, abuf, alen, &naptr_curr->flags, &len);
- if (status != ARES_SUCCESS)
- break;
- vptr += len;
-
- status = ares_expand_string(vptr, abuf, alen, &naptr_curr->service, &len);
- if (status != ARES_SUCCESS)
- break;
- vptr += len;
-
- status = ares_expand_string(vptr, abuf, alen, &naptr_curr->regexp, &len);
- if (status != ARES_SUCCESS)
- break;
- vptr += len;
-
- status = ares_expand_name(vptr, abuf, alen, &naptr_curr->replacement, &len);
- if (status != ARES_SUCCESS)
- break;
- }
-
- /* Don't lose memory in the next iteration */
+ vptr = aptr;
+ naptr_curr->order = DNS__16BIT(vptr);
+ vptr += sizeof(unsigned short);
+ naptr_curr->preference = DNS__16BIT(vptr);
+ vptr += sizeof(unsigned short);
+
+ status = ares_expand_string(vptr, abuf, alen, &naptr_curr->flags, &len);
+ if (status != ARES_SUCCESS)
+ break;
+ vptr += len;
+
+ status = ares_expand_string(vptr, abuf, alen, &naptr_curr->service, &len);
+ if (status != ARES_SUCCESS)
+ break;
+ vptr += len;
+
+ status = ares_expand_string(vptr, abuf, alen, &naptr_curr->regexp, &len);
+ if (status != ARES_SUCCESS)
+ break;
+ vptr += len;
+
+ status = ares_expand_name(vptr, abuf, alen, &naptr_curr->replacement, &len);
+ if (status != ARES_SUCCESS)
+ break;
+ }
+
+ /* Don't lose memory in the next iteration */
ares_free (rr_name);
- rr_name = NULL;
-
- /* Move on to the next record */
- aptr += rr_len;
- }
-
- if (hostname)
+ rr_name = NULL;
+
+ /* Move on to the next record */
+ aptr += rr_len;
+ }
+
+ if (hostname)
ares_free (hostname);
- if (rr_name)
+ if (rr_name)
ares_free (rr_name);
-
- /* clean up on error */
- if (status != ARES_SUCCESS)
- {
- if (naptr_head)
- ares_free_data (naptr_head);
- return status;
- }
-
- /* everything looks fine, return the data */
- *naptr_out = naptr_head;
-
- return ARES_SUCCESS;
-}
+
+ /* clean up on error */
+ if (status != ARES_SUCCESS)
+ {
+ if (naptr_head)
+ ares_free_data (naptr_head);
+ return status;
+ }
+
+ /* everything looks fine, return the data */
+ *naptr_out = naptr_head;
+
+ return ARES_SUCCESS;
+}
diff --git a/contrib/libs/c-ares/ares_parse_ns_reply.c b/contrib/libs/c-ares/ares_parse_ns_reply.c
index e3de6ba2e1..7bb51429db 100644
--- a/contrib/libs/c-ares/ares_parse_ns_reply.c
+++ b/contrib/libs/c-ares/ares_parse_ns_reply.c
@@ -1,183 +1,183 @@
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-/*
- * ares_parse_ns_reply created by Vlad Dinulescu <vlad.dinulescu@avira.com>
- * on behalf of AVIRA Gmbh - http://www.avira.com
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_NETDB_H
-# include <netdb.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-# include <arpa/inet.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-# include <arpa/nameser_compat.h>
-#endif
-
-#include "ares.h"
-#include "ares_dns.h"
-#include "ares_private.h"
-
-int ares_parse_ns_reply( const unsigned char* abuf, int alen,
- struct hostent** host )
-{
- unsigned int qdcount, ancount;
- int status, i, rr_type, rr_class, rr_len;
- int nameservers_num;
- long len;
- const unsigned char *aptr;
- char* hostname, *rr_name, *rr_data, **nameservers;
- struct hostent *hostent;
-
- /* Set *host to NULL for all failure cases. */
- *host = NULL;
-
- /* Give up if abuf doesn't have room for a header. */
- if ( alen < HFIXEDSZ )
- return ARES_EBADRESP;
-
- /* Fetch the question and answer count from the header. */
- qdcount = DNS_HEADER_QDCOUNT( abuf );
- ancount = DNS_HEADER_ANCOUNT( abuf );
- if ( qdcount != 1 )
- return ARES_EBADRESP;
-
- /* Expand the name from the question, and skip past the question. */
- aptr = abuf + HFIXEDSZ;
- status = ares__expand_name_for_response( aptr, abuf, alen, &hostname, &len);
- if ( status != ARES_SUCCESS )
- return status;
- if ( aptr + len + QFIXEDSZ > abuf + alen )
- {
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+/*
+ * ares_parse_ns_reply created by Vlad Dinulescu <vlad.dinulescu@avira.com>
+ * on behalf of AVIRA Gmbh - http://www.avira.com
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_NETDB_H
+# include <netdb.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
+# include <arpa/nameser_compat.h>
+#endif
+
+#include "ares.h"
+#include "ares_dns.h"
+#include "ares_private.h"
+
+int ares_parse_ns_reply( const unsigned char* abuf, int alen,
+ struct hostent** host )
+{
+ unsigned int qdcount, ancount;
+ int status, i, rr_type, rr_class, rr_len;
+ int nameservers_num;
+ long len;
+ const unsigned char *aptr;
+ char* hostname, *rr_name, *rr_data, **nameservers;
+ struct hostent *hostent;
+
+ /* Set *host to NULL for all failure cases. */
+ *host = NULL;
+
+ /* Give up if abuf doesn't have room for a header. */
+ if ( alen < HFIXEDSZ )
+ return ARES_EBADRESP;
+
+ /* Fetch the question and answer count from the header. */
+ qdcount = DNS_HEADER_QDCOUNT( abuf );
+ ancount = DNS_HEADER_ANCOUNT( abuf );
+ if ( qdcount != 1 )
+ return ARES_EBADRESP;
+
+ /* Expand the name from the question, and skip past the question. */
+ aptr = abuf + HFIXEDSZ;
+ status = ares__expand_name_for_response( aptr, abuf, alen, &hostname, &len);
+ if ( status != ARES_SUCCESS )
+ return status;
+ if ( aptr + len + QFIXEDSZ > abuf + alen )
+ {
ares_free( hostname );
- return ARES_EBADRESP;
- }
- aptr += len + QFIXEDSZ;
-
- /* Allocate nameservers array; ancount gives an upper bound */
+ return ARES_EBADRESP;
+ }
+ aptr += len + QFIXEDSZ;
+
+ /* Allocate nameservers array; ancount gives an upper bound */
nameservers = ares_malloc( ( ancount + 1 ) * sizeof( char * ) );
- if ( !nameservers )
- {
+ if ( !nameservers )
+ {
ares_free( hostname );
- return ARES_ENOMEM;
- }
- nameservers_num = 0;
-
- /* Examine each answer resource record (RR) in turn. */
- for ( i = 0; i < ( int ) ancount; i++ )
- {
- /* Decode the RR up to the data field. */
- status = ares__expand_name_for_response( aptr, abuf, alen, &rr_name, &len );
- if ( status != ARES_SUCCESS )
- break;
- aptr += len;
- if ( aptr + RRFIXEDSZ > abuf + alen )
- {
- status = ARES_EBADRESP;
+ return ARES_ENOMEM;
+ }
+ nameservers_num = 0;
+
+ /* Examine each answer resource record (RR) in turn. */
+ for ( i = 0; i < ( int ) ancount; i++ )
+ {
+ /* Decode the RR up to the data field. */
+ status = ares__expand_name_for_response( aptr, abuf, alen, &rr_name, &len );
+ if ( status != ARES_SUCCESS )
+ break;
+ aptr += len;
+ if ( aptr + RRFIXEDSZ > abuf + alen )
+ {
+ status = ARES_EBADRESP;
ares_free(rr_name);
- break;
- }
- rr_type = DNS_RR_TYPE( aptr );
- rr_class = DNS_RR_CLASS( aptr );
- rr_len = DNS_RR_LEN( aptr );
- aptr += RRFIXEDSZ;
- if (aptr + rr_len > abuf + alen)
- {
+ break;
+ }
+ rr_type = DNS_RR_TYPE( aptr );
+ rr_class = DNS_RR_CLASS( aptr );
+ rr_len = DNS_RR_LEN( aptr );
+ aptr += RRFIXEDSZ;
+ if (aptr + rr_len > abuf + alen)
+ {
ares_free(rr_name);
- status = ARES_EBADRESP;
- break;
- }
-
- if ( rr_class == C_IN && rr_type == T_NS )
- {
- /* Decode the RR data and add it to the nameservers list */
- status = ares__expand_name_for_response( aptr, abuf, alen, &rr_data,
- &len);
- if ( status != ARES_SUCCESS )
- {
+ status = ARES_EBADRESP;
+ break;
+ }
+
+ if ( rr_class == C_IN && rr_type == T_NS )
+ {
+ /* Decode the RR data and add it to the nameservers list */
+ status = ares__expand_name_for_response( aptr, abuf, alen, &rr_data,
+ &len);
+ if ( status != ARES_SUCCESS )
+ {
ares_free(rr_name);
- break;
- }
-
+ break;
+ }
+
nameservers[nameservers_num] = ares_malloc(strlen(rr_data)+1);
-
- if (nameservers[nameservers_num]==NULL)
- {
+
+ if (nameservers[nameservers_num]==NULL)
+ {
ares_free(rr_name);
ares_free(rr_data);
- status=ARES_ENOMEM;
- break;
- }
- strcpy(nameservers[nameservers_num],rr_data);
+ status=ARES_ENOMEM;
+ break;
+ }
+ strcpy(nameservers[nameservers_num],rr_data);
ares_free(rr_data);
-
- nameservers_num++;
- }
-
+
+ nameservers_num++;
+ }
+
ares_free( rr_name );
-
- aptr += rr_len;
- if ( aptr > abuf + alen )
+
+ aptr += rr_len;
+ if ( aptr > abuf + alen )
{ /* LCOV_EXCL_START: already checked above */
- status = ARES_EBADRESP;
- break;
+ status = ARES_EBADRESP;
+ break;
} /* LCOV_EXCL_STOP */
- }
-
- if ( status == ARES_SUCCESS && nameservers_num == 0 )
- {
- status = ARES_ENODATA;
- }
- if ( status == ARES_SUCCESS )
- {
- /* We got our answer. Allocate memory to build the host entry. */
- nameservers[nameservers_num] = NULL;
+ }
+
+ if ( status == ARES_SUCCESS && nameservers_num == 0 )
+ {
+ status = ARES_ENODATA;
+ }
+ if ( status == ARES_SUCCESS )
+ {
+ /* We got our answer. Allocate memory to build the host entry. */
+ nameservers[nameservers_num] = NULL;
hostent = ares_malloc( sizeof( struct hostent ) );
- if ( hostent )
- {
+ if ( hostent )
+ {
hostent->h_addr_list = ares_malloc( 1 * sizeof( char * ) );
- if ( hostent->h_addr_list )
- {
- /* Fill in the hostent and return successfully. */
- hostent->h_name = hostname;
- hostent->h_aliases = nameservers;
- hostent->h_addrtype = AF_INET;
- hostent->h_length = sizeof( struct in_addr );
- hostent->h_addr_list[0] = NULL;
- *host = hostent;
- return ARES_SUCCESS;
- }
+ if ( hostent->h_addr_list )
+ {
+ /* Fill in the hostent and return successfully. */
+ hostent->h_name = hostname;
+ hostent->h_aliases = nameservers;
+ hostent->h_addrtype = AF_INET;
+ hostent->h_length = sizeof( struct in_addr );
+ hostent->h_addr_list[0] = NULL;
+ *host = hostent;
+ return ARES_SUCCESS;
+ }
ares_free( hostent );
- }
- status = ARES_ENOMEM;
- }
- for ( i = 0; i < nameservers_num; i++ )
+ }
+ status = ARES_ENOMEM;
+ }
+ for ( i = 0; i < nameservers_num; i++ )
ares_free( nameservers[i] );
ares_free( nameservers );
ares_free( hostname );
- return status;
-}
+ return status;
+}
diff --git a/contrib/libs/c-ares/ares_parse_ptr_reply.c b/contrib/libs/c-ares/ares_parse_ptr_reply.c
index 59026ecbc0..0e2b064bb4 100644
--- a/contrib/libs/c-ares/ares_parse_ptr_reply.c
+++ b/contrib/libs/c-ares/ares_parse_ptr_reply.c
@@ -1,159 +1,159 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_NETDB_H
-# include <netdb.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-# include <arpa/nameser_compat.h>
-#endif
-
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_NETDB_H
+# include <netdb.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
+# include <arpa/nameser_compat.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+
#ifdef HAVE_LIMITS_H
# include <limits.h>
#endif
-#include "ares.h"
-#include "ares_dns.h"
-#include "ares_nowarn.h"
-#include "ares_private.h"
-
-int ares_parse_ptr_reply(const unsigned char *abuf, int alen, const void *addr,
+#include "ares.h"
+#include "ares_dns.h"
+#include "ares_nowarn.h"
+#include "ares_private.h"
+
+int ares_parse_ptr_reply(const unsigned char *abuf, int alen, const void *addr,
int addrlen, int family, struct hostent **host,
int *hostttl)
-{
- unsigned int qdcount, ancount;
+{
+ unsigned int qdcount, ancount;
int status, i, rr_type, rr_class, rr_len, rr_ttl;
- long len;
- const unsigned char *aptr;
- char *ptrname, *hostname, *rr_name, *rr_data;
- struct hostent *hostent;
- int aliascnt = 0;
- int alias_alloc = 8;
- char ** aliases;
+ long len;
+ const unsigned char *aptr;
+ char *ptrname, *hostname, *rr_name, *rr_data;
+ struct hostent *hostent;
+ int aliascnt = 0;
+ int alias_alloc = 8;
+ char ** aliases;
size_t rr_data_len;
-
- /* Set *host to NULL for all failure cases. */
- *host = NULL;
+
+ /* Set *host to NULL for all failure cases. */
+ *host = NULL;
if (hostttl)
*hostttl = INT_MAX;
-
- /* Give up if abuf doesn't have room for a header. */
- if (alen < HFIXEDSZ)
- return ARES_EBADRESP;
-
- /* Fetch the question and answer count from the header. */
- qdcount = DNS_HEADER_QDCOUNT(abuf);
- ancount = DNS_HEADER_ANCOUNT(abuf);
- if (qdcount != 1)
- return ARES_EBADRESP;
-
- /* Expand the name from the question, and skip past the question. */
- aptr = abuf + HFIXEDSZ;
- status = ares__expand_name_for_response(aptr, abuf, alen, &ptrname, &len);
- if (status != ARES_SUCCESS)
- return status;
- if (aptr + len + QFIXEDSZ > abuf + alen)
- {
+
+ /* Give up if abuf doesn't have room for a header. */
+ if (alen < HFIXEDSZ)
+ return ARES_EBADRESP;
+
+ /* Fetch the question and answer count from the header. */
+ qdcount = DNS_HEADER_QDCOUNT(abuf);
+ ancount = DNS_HEADER_ANCOUNT(abuf);
+ if (qdcount != 1)
+ return ARES_EBADRESP;
+
+ /* Expand the name from the question, and skip past the question. */
+ aptr = abuf + HFIXEDSZ;
+ status = ares__expand_name_for_response(aptr, abuf, alen, &ptrname, &len);
+ if (status != ARES_SUCCESS)
+ return status;
+ if (aptr + len + QFIXEDSZ > abuf + alen)
+ {
ares_free(ptrname);
- return ARES_EBADRESP;
- }
- aptr += len + QFIXEDSZ;
-
- /* Examine each answer resource record (RR) in turn. */
- hostname = NULL;
+ return ARES_EBADRESP;
+ }
+ aptr += len + QFIXEDSZ;
+
+ /* Examine each answer resource record (RR) in turn. */
+ hostname = NULL;
aliases = ares_malloc(alias_alloc * sizeof(char *));
- if (!aliases)
- {
+ if (!aliases)
+ {
ares_free(ptrname);
- return ARES_ENOMEM;
- }
- for (i = 0; i < (int)ancount; i++)
- {
- /* Decode the RR up to the data field. */
- status = ares__expand_name_for_response(aptr, abuf, alen, &rr_name, &len);
- if (status != ARES_SUCCESS)
- break;
- aptr += len;
- if (aptr + RRFIXEDSZ > abuf + alen)
- {
+ return ARES_ENOMEM;
+ }
+ for (i = 0; i < (int)ancount; i++)
+ {
+ /* Decode the RR up to the data field. */
+ status = ares__expand_name_for_response(aptr, abuf, alen, &rr_name, &len);
+ if (status != ARES_SUCCESS)
+ break;
+ aptr += len;
+ if (aptr + RRFIXEDSZ > abuf + alen)
+ {
ares_free(rr_name);
- status = ARES_EBADRESP;
- break;
- }
- rr_type = DNS_RR_TYPE(aptr);
- rr_class = DNS_RR_CLASS(aptr);
- rr_len = DNS_RR_LEN(aptr);
+ status = ARES_EBADRESP;
+ break;
+ }
+ rr_type = DNS_RR_TYPE(aptr);
+ rr_class = DNS_RR_CLASS(aptr);
+ rr_len = DNS_RR_LEN(aptr);
rr_ttl = DNS_RR_TTL(aptr);
- aptr += RRFIXEDSZ;
- if (aptr + rr_len > abuf + alen)
- {
+ aptr += RRFIXEDSZ;
+ if (aptr + rr_len > abuf + alen)
+ {
ares_free(rr_name);
- status = ARES_EBADRESP;
- break;
- }
-
- if (rr_class == C_IN && rr_type == T_PTR
- && strcasecmp(rr_name, ptrname) == 0)
- {
- /* Decode the RR data and set hostname to it. */
- status = ares__expand_name_for_response(aptr, abuf, alen, &rr_data,
- &len);
- if (status != ARES_SUCCESS)
- {
+ status = ARES_EBADRESP;
+ break;
+ }
+
+ if (rr_class == C_IN && rr_type == T_PTR
+ && strcasecmp(rr_name, ptrname) == 0)
+ {
+ /* Decode the RR data and set hostname to it. */
+ status = ares__expand_name_for_response(aptr, abuf, alen, &rr_data,
+ &len);
+ if (status != ARES_SUCCESS)
+ {
ares_free(rr_name);
- break;
- }
- if (hostname)
+ break;
+ }
+ if (hostname)
ares_free(hostname);
- hostname = rr_data;
+ hostname = rr_data;
rr_data_len = strlen(rr_data)+1;
aliases[aliascnt] = ares_malloc(rr_data_len * sizeof(char));
- if (!aliases[aliascnt])
- {
+ if (!aliases[aliascnt])
+ {
ares_free(rr_name);
- status = ARES_ENOMEM;
- break;
- }
+ status = ARES_ENOMEM;
+ break;
+ }
strncpy(aliases[aliascnt], rr_data, rr_data_len);
- aliascnt++;
- if (aliascnt >= alias_alloc) {
- char **ptr;
- alias_alloc *= 2;
+ aliascnt++;
+ if (aliascnt >= alias_alloc) {
+ char **ptr;
+ alias_alloc *= 2;
ptr = ares_realloc(aliases, alias_alloc * sizeof(char *));
- if(!ptr) {
+ if(!ptr) {
ares_free(rr_name);
- status = ARES_ENOMEM;
- break;
- }
- aliases = ptr;
- }
+ status = ARES_ENOMEM;
+ break;
+ }
+ aliases = ptr;
+ }
if (hostttl)
{
if (*hostttl > rr_ttl)
@@ -161,76 +161,76 @@ int ares_parse_ptr_reply(const unsigned char *abuf, int alen, const void *addr,
*hostttl = rr_ttl;
}
}
- }
-
- if (rr_class == C_IN && rr_type == T_CNAME)
- {
- /* Decode the RR data and replace ptrname with it. */
- status = ares__expand_name_for_response(aptr, abuf, alen, &rr_data,
- &len);
- if (status != ARES_SUCCESS)
- {
+ }
+
+ if (rr_class == C_IN && rr_type == T_CNAME)
+ {
+ /* Decode the RR data and replace ptrname with it. */
+ status = ares__expand_name_for_response(aptr, abuf, alen, &rr_data,
+ &len);
+ if (status != ARES_SUCCESS)
+ {
ares_free(rr_name);
- break;
- }
+ break;
+ }
ares_free(ptrname);
- ptrname = rr_data;
- }
-
+ ptrname = rr_data;
+ }
+
ares_free(rr_name);
- aptr += rr_len;
- if (aptr > abuf + alen)
+ aptr += rr_len;
+ if (aptr > abuf + alen)
{ /* LCOV_EXCL_START: already checked above */
- status = ARES_EBADRESP;
- break;
+ status = ARES_EBADRESP;
+ break;
} /* LCOV_EXCL_STOP */
- }
-
- if (status == ARES_SUCCESS && !hostname)
- status = ARES_ENODATA;
- if (status == ARES_SUCCESS)
- {
- /* We got our answer. Allocate memory to build the host entry. */
+ }
+
+ if (status == ARES_SUCCESS && !hostname)
+ status = ARES_ENODATA;
+ if (status == ARES_SUCCESS)
+ {
+ /* We got our answer. Allocate memory to build the host entry. */
hostent = ares_malloc(sizeof(struct hostent));
- if (hostent)
- {
+ if (hostent)
+ {
hostent->h_addr_list = ares_malloc(2 * sizeof(char *));
- if (hostent->h_addr_list)
- {
+ if (hostent->h_addr_list)
+ {
hostent->h_addr_list[0] = ares_malloc(addrlen);
- if (hostent->h_addr_list[0])
- {
+ if (hostent->h_addr_list[0])
+ {
hostent->h_aliases = ares_malloc((aliascnt+1) * sizeof (char *));
- if (hostent->h_aliases)
- {
- /* Fill in the hostent and return successfully. */
- hostent->h_name = hostname;
- for (i=0 ; i<aliascnt ; i++)
- hostent->h_aliases[i] = aliases[i];
- hostent->h_aliases[aliascnt] = NULL;
- hostent->h_addrtype = aresx_sitoss(family);
- hostent->h_length = aresx_sitoss(addrlen);
- memcpy(hostent->h_addr_list[0], addr, addrlen);
- hostent->h_addr_list[1] = NULL;
- *host = hostent;
+ if (hostent->h_aliases)
+ {
+ /* Fill in the hostent and return successfully. */
+ hostent->h_name = hostname;
+ for (i=0 ; i<aliascnt ; i++)
+ hostent->h_aliases[i] = aliases[i];
+ hostent->h_aliases[aliascnt] = NULL;
+ hostent->h_addrtype = aresx_sitoss(family);
+ hostent->h_length = aresx_sitoss(addrlen);
+ memcpy(hostent->h_addr_list[0], addr, addrlen);
+ hostent->h_addr_list[1] = NULL;
+ *host = hostent;
ares_free(aliases);
ares_free(ptrname);
- return ARES_SUCCESS;
- }
+ return ARES_SUCCESS;
+ }
ares_free(hostent->h_addr_list[0]);
- }
+ }
ares_free(hostent->h_addr_list);
- }
+ }
ares_free(hostent);
- }
- status = ARES_ENOMEM;
- }
- for (i=0 ; i<aliascnt ; i++)
- if (aliases[i])
+ }
+ status = ARES_ENOMEM;
+ }
+ for (i=0 ; i<aliascnt ; i++)
+ if (aliases[i])
ares_free(aliases[i]);
ares_free(aliases);
- if (hostname)
+ if (hostname)
ares_free(hostname);
ares_free(ptrname);
- return status;
-}
+ return status;
+}
diff --git a/contrib/libs/c-ares/ares_parse_soa_reply.c b/contrib/libs/c-ares/ares_parse_soa_reply.c
index ed81c62938..8b84a368db 100644
--- a/contrib/libs/c-ares/ares_parse_soa_reply.c
+++ b/contrib/libs/c-ares/ares_parse_soa_reply.c
@@ -1,88 +1,88 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- * Copyright (C) 2012 Marko Kreen <markokr@gmail.com>
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_NETDB_H
-# include <netdb.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-# include <arpa/inet.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-# include <arpa/nameser_compat.h>
-#endif
-
-#include "ares.h"
-#include "ares_dns.h"
-#include "ares_data.h"
-#include "ares_private.h"
-
-int
-ares_parse_soa_reply(const unsigned char *abuf, int alen,
- struct ares_soa_reply **soa_out)
-{
- const unsigned char *aptr;
- long len;
- char *qname = NULL, *rr_name = NULL;
- struct ares_soa_reply *soa = NULL;
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ * Copyright (C) 2012 Marko Kreen <markokr@gmail.com>
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_NETDB_H
+# include <netdb.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
+# include <arpa/nameser_compat.h>
+#endif
+
+#include "ares.h"
+#include "ares_dns.h"
+#include "ares_data.h"
+#include "ares_private.h"
+
+int
+ares_parse_soa_reply(const unsigned char *abuf, int alen,
+ struct ares_soa_reply **soa_out)
+{
+ const unsigned char *aptr;
+ long len;
+ char *qname = NULL, *rr_name = NULL;
+ struct ares_soa_reply *soa = NULL;
int qdcount, ancount, qclass;
int status, i, rr_type, rr_class, rr_len;
int ttl;
-
- if (alen < HFIXEDSZ)
- return ARES_EBADRESP;
-
- /* parse message header */
- qdcount = DNS_HEADER_QDCOUNT(abuf);
- ancount = DNS_HEADER_ANCOUNT(abuf);
+
+ if (alen < HFIXEDSZ)
+ return ARES_EBADRESP;
+
+ /* parse message header */
+ qdcount = DNS_HEADER_QDCOUNT(abuf);
+ ancount = DNS_HEADER_ANCOUNT(abuf);
if (qdcount != 1)
- return ARES_EBADRESP;
+ return ARES_EBADRESP;
if (ancount == 0)
return ARES_EBADRESP;
- aptr = abuf + HFIXEDSZ;
-
- /* query name */
- status = ares__expand_name_for_response(aptr, abuf, alen, &qname, &len);
- if (status != ARES_SUCCESS)
- goto failed_stat;
- aptr += len;
-
+ aptr = abuf + HFIXEDSZ;
+
+ /* query name */
+ status = ares__expand_name_for_response(aptr, abuf, alen, &qname, &len);
+ if (status != ARES_SUCCESS)
+ goto failed_stat;
+ aptr += len;
+
qclass = DNS_QUESTION_TYPE(aptr);
- /* skip qtype & qclass */
- if (aptr + QFIXEDSZ > abuf + alen)
- goto failed;
- aptr += QFIXEDSZ;
-
+ /* skip qtype & qclass */
+ if (aptr + QFIXEDSZ > abuf + alen)
+ goto failed;
+ aptr += QFIXEDSZ;
+
/* qclass of SOA with multiple answers */
if (qclass == T_SOA && ancount > 1)
- goto failed;
-
+ goto failed;
+
/* examine all the records, break and return if found soa */
for (i = 0; i < ancount; i++)
{
@@ -122,7 +122,7 @@ ares_parse_soa_reply(const unsigned char *abuf, int alen,
status = ARES_ENOMEM;
goto failed_stat;
}
-
+
/* nsname */
status = ares__expand_name_for_response(aptr, abuf, alen, &soa->nsname,
&len);
@@ -132,7 +132,7 @@ ares_parse_soa_reply(const unsigned char *abuf, int alen,
goto failed_stat;
}
aptr += len;
-
+
/* hostmaster */
status = ares__expand_name_for_response(aptr, abuf, alen,
&soa->hostmaster, &len);
@@ -142,7 +142,7 @@ ares_parse_soa_reply(const unsigned char *abuf, int alen,
goto failed_stat;
}
aptr += len;
-
+
/* integer fields */
if (aptr + 5 * 4 > abuf + alen)
{
@@ -155,12 +155,12 @@ ares_parse_soa_reply(const unsigned char *abuf, int alen,
soa->expire = DNS__32BIT(aptr + 3 * 4);
soa->minttl = DNS__32BIT(aptr + 4 * 4);
soa->ttl = ttl;
-
+
ares_free(qname);
ares_free(rr_name);
-
+
*soa_out = soa;
-
+
return ARES_SUCCESS;
}
aptr += rr_len;
@@ -173,13 +173,13 @@ ares_parse_soa_reply(const unsigned char *abuf, int alen,
/* no SOA record found */
status = ARES_EBADRESP;
goto failed_stat;
-failed:
- status = ARES_EBADRESP;
-
-failed_stat:
+failed:
+ status = ARES_EBADRESP;
+
+failed_stat:
if (soa)
ares_free_data(soa);
- if (qname)
+ if (qname)
ares_free(qname);
- return status;
-}
+ return status;
+}
diff --git a/contrib/libs/c-ares/ares_parse_srv_reply.c b/contrib/libs/c-ares/ares_parse_srv_reply.c
index 96060a64f0..72a2dd4e96 100644
--- a/contrib/libs/c-ares/ares_parse_srv_reply.c
+++ b/contrib/libs/c-ares/ares_parse_srv_reply.c
@@ -1,181 +1,181 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- * Copyright (C) 2009 by Jakub Hrozek <jhrozek@redhat.com>
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_NETDB_H
-# include <netdb.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-# include <arpa/inet.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-# include <arpa/nameser_compat.h>
-#endif
-
-#include "ares.h"
-#include "ares_dns.h"
-#include "ares_data.h"
-#include "ares_private.h"
-
-/* AIX portability check */
-#ifndef T_SRV
-# define T_SRV 33 /* server selection */
-#endif
-
-int
-ares_parse_srv_reply (const unsigned char *abuf, int alen,
- struct ares_srv_reply **srv_out)
-{
- unsigned int qdcount, ancount, i;
- const unsigned char *aptr, *vptr;
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ * Copyright (C) 2009 by Jakub Hrozek <jhrozek@redhat.com>
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_NETDB_H
+# include <netdb.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
+# include <arpa/nameser_compat.h>
+#endif
+
+#include "ares.h"
+#include "ares_dns.h"
+#include "ares_data.h"
+#include "ares_private.h"
+
+/* AIX portability check */
+#ifndef T_SRV
+# define T_SRV 33 /* server selection */
+#endif
+
+int
+ares_parse_srv_reply (const unsigned char *abuf, int alen,
+ struct ares_srv_reply **srv_out)
+{
+ unsigned int qdcount, ancount, i;
+ const unsigned char *aptr, *vptr;
int status, rr_type, rr_class, rr_len, rr_ttl;
- long len;
- char *hostname = NULL, *rr_name = NULL;
- struct ares_srv_reply *srv_head = NULL;
- struct ares_srv_reply *srv_last = NULL;
- struct ares_srv_reply *srv_curr;
-
- /* Set *srv_out to NULL for all failure cases. */
- *srv_out = NULL;
-
- /* Give up if abuf doesn't have room for a header. */
- if (alen < HFIXEDSZ)
- return ARES_EBADRESP;
-
- /* Fetch the question and answer count from the header. */
- qdcount = DNS_HEADER_QDCOUNT (abuf);
- ancount = DNS_HEADER_ANCOUNT (abuf);
- if (qdcount != 1)
- return ARES_EBADRESP;
- if (ancount == 0)
- return ARES_ENODATA;
-
- /* Expand the name from the question, and skip past the question. */
- aptr = abuf + HFIXEDSZ;
- status = ares_expand_name (aptr, abuf, alen, &hostname, &len);
- if (status != ARES_SUCCESS)
- return status;
-
- if (aptr + len + QFIXEDSZ > abuf + alen)
- {
+ long len;
+ char *hostname = NULL, *rr_name = NULL;
+ struct ares_srv_reply *srv_head = NULL;
+ struct ares_srv_reply *srv_last = NULL;
+ struct ares_srv_reply *srv_curr;
+
+ /* Set *srv_out to NULL for all failure cases. */
+ *srv_out = NULL;
+
+ /* Give up if abuf doesn't have room for a header. */
+ if (alen < HFIXEDSZ)
+ return ARES_EBADRESP;
+
+ /* Fetch the question and answer count from the header. */
+ qdcount = DNS_HEADER_QDCOUNT (abuf);
+ ancount = DNS_HEADER_ANCOUNT (abuf);
+ if (qdcount != 1)
+ return ARES_EBADRESP;
+ if (ancount == 0)
+ return ARES_ENODATA;
+
+ /* Expand the name from the question, and skip past the question. */
+ aptr = abuf + HFIXEDSZ;
+ status = ares_expand_name (aptr, abuf, alen, &hostname, &len);
+ if (status != ARES_SUCCESS)
+ return status;
+
+ if (aptr + len + QFIXEDSZ > abuf + alen)
+ {
ares_free (hostname);
- return ARES_EBADRESP;
- }
- aptr += len + QFIXEDSZ;
-
- /* Examine each answer resource record (RR) in turn. */
- for (i = 0; i < ancount; i++)
- {
- /* Decode the RR up to the data field. */
- status = ares_expand_name (aptr, abuf, alen, &rr_name, &len);
- if (status != ARES_SUCCESS)
- {
- break;
- }
- aptr += len;
- if (aptr + RRFIXEDSZ > abuf + alen)
- {
- status = ARES_EBADRESP;
- break;
- }
- rr_type = DNS_RR_TYPE (aptr);
- rr_class = DNS_RR_CLASS (aptr);
- rr_len = DNS_RR_LEN (aptr);
+ return ARES_EBADRESP;
+ }
+ aptr += len + QFIXEDSZ;
+
+ /* Examine each answer resource record (RR) in turn. */
+ for (i = 0; i < ancount; i++)
+ {
+ /* Decode the RR up to the data field. */
+ status = ares_expand_name (aptr, abuf, alen, &rr_name, &len);
+ if (status != ARES_SUCCESS)
+ {
+ break;
+ }
+ aptr += len;
+ if (aptr + RRFIXEDSZ > abuf + alen)
+ {
+ status = ARES_EBADRESP;
+ break;
+ }
+ rr_type = DNS_RR_TYPE (aptr);
+ rr_class = DNS_RR_CLASS (aptr);
+ rr_len = DNS_RR_LEN (aptr);
rr_ttl = DNS_RR_TTL(aptr);
- aptr += RRFIXEDSZ;
- if (aptr + rr_len > abuf + alen)
- {
- status = ARES_EBADRESP;
- break;
- }
-
- /* Check if we are really looking at a SRV record */
- if (rr_class == C_IN && rr_type == T_SRV)
- {
- /* parse the SRV record itself */
- if (rr_len < 6)
- {
- status = ARES_EBADRESP;
- break;
- }
-
- /* Allocate storage for this SRV answer appending it to the list */
- srv_curr = ares_malloc_data(ARES_DATATYPE_SRV_REPLY);
- if (!srv_curr)
- {
- status = ARES_ENOMEM;
- break;
- }
- if (srv_last)
- {
- srv_last->next = srv_curr;
- }
- else
- {
- srv_head = srv_curr;
- }
- srv_last = srv_curr;
-
- vptr = aptr;
- srv_curr->priority = DNS__16BIT(vptr);
- vptr += sizeof(unsigned short);
- srv_curr->weight = DNS__16BIT(vptr);
- vptr += sizeof(unsigned short);
- srv_curr->port = DNS__16BIT(vptr);
- vptr += sizeof(unsigned short);
+ aptr += RRFIXEDSZ;
+ if (aptr + rr_len > abuf + alen)
+ {
+ status = ARES_EBADRESP;
+ break;
+ }
+
+ /* Check if we are really looking at a SRV record */
+ if (rr_class == C_IN && rr_type == T_SRV)
+ {
+ /* parse the SRV record itself */
+ if (rr_len < 6)
+ {
+ status = ARES_EBADRESP;
+ break;
+ }
+
+ /* Allocate storage for this SRV answer appending it to the list */
+ srv_curr = ares_malloc_data(ARES_DATATYPE_SRV_REPLY);
+ if (!srv_curr)
+ {
+ status = ARES_ENOMEM;
+ break;
+ }
+ if (srv_last)
+ {
+ srv_last->next = srv_curr;
+ }
+ else
+ {
+ srv_head = srv_curr;
+ }
+ srv_last = srv_curr;
+
+ vptr = aptr;
+ srv_curr->priority = DNS__16BIT(vptr);
+ vptr += sizeof(unsigned short);
+ srv_curr->weight = DNS__16BIT(vptr);
+ vptr += sizeof(unsigned short);
+ srv_curr->port = DNS__16BIT(vptr);
+ vptr += sizeof(unsigned short);
srv_curr->ttl = rr_ttl;
-
- status = ares_expand_name (vptr, abuf, alen, &srv_curr->host, &len);
- if (status != ARES_SUCCESS)
- break;
- }
-
- /* Don't lose memory in the next iteration */
+
+ status = ares_expand_name (vptr, abuf, alen, &srv_curr->host, &len);
+ if (status != ARES_SUCCESS)
+ break;
+ }
+
+ /* Don't lose memory in the next iteration */
ares_free (rr_name);
- rr_name = NULL;
-
- /* Move on to the next record */
- aptr += rr_len;
- }
-
- if (hostname)
+ rr_name = NULL;
+
+ /* Move on to the next record */
+ aptr += rr_len;
+ }
+
+ if (hostname)
ares_free (hostname);
- if (rr_name)
+ if (rr_name)
ares_free (rr_name);
-
- /* clean up on error */
- if (status != ARES_SUCCESS)
- {
- if (srv_head)
- ares_free_data (srv_head);
- return status;
- }
-
- /* everything looks fine, return the data */
- *srv_out = srv_head;
-
- return ARES_SUCCESS;
-}
+
+ /* clean up on error */
+ if (status != ARES_SUCCESS)
+ {
+ if (srv_head)
+ ares_free_data (srv_head);
+ return status;
+ }
+
+ /* everything looks fine, return the data */
+ *srv_out = srv_head;
+
+ return ARES_SUCCESS;
+}
diff --git a/contrib/libs/c-ares/ares_parse_txt_reply.c b/contrib/libs/c-ares/ares_parse_txt_reply.c
index f1fd5f83b5..c685dfd052 100644
--- a/contrib/libs/c-ares/ares_parse_txt_reply.c
+++ b/contrib/libs/c-ares/ares_parse_txt_reply.c
@@ -1,210 +1,210 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- * Copyright (C) 2009 by Jakub Hrozek <jhrozek@redhat.com>
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_NETDB_H
-# include <netdb.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-# include <arpa/inet.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-# include <arpa/nameser_compat.h>
-#endif
-
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-
-#include "ares.h"
-#include "ares_dns.h"
-#include "ares_data.h"
-#include "ares_private.h"
-
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ * Copyright (C) 2009 by Jakub Hrozek <jhrozek@redhat.com>
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_NETDB_H
+# include <netdb.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
+# include <arpa/nameser_compat.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+
+#include "ares.h"
+#include "ares_dns.h"
+#include "ares_data.h"
+#include "ares_private.h"
+
static int
ares__parse_txt_reply (const unsigned char *abuf, int alen,
int ex, void **txt_out)
-{
- size_t substr_len;
- unsigned int qdcount, ancount, i;
- const unsigned char *aptr;
- const unsigned char *strptr;
+{
+ size_t substr_len;
+ unsigned int qdcount, ancount, i;
+ const unsigned char *aptr;
+ const unsigned char *strptr;
int status, rr_type, rr_class, rr_len, rr_ttl;
- long len;
- char *hostname = NULL, *rr_name = NULL;
+ long len;
+ char *hostname = NULL, *rr_name = NULL;
struct ares_txt_ext *txt_head = NULL;
struct ares_txt_ext *txt_last = NULL;
struct ares_txt_ext *txt_curr;
-
- /* Set *txt_out to NULL for all failure cases. */
- *txt_out = NULL;
-
- /* Give up if abuf doesn't have room for a header. */
- if (alen < HFIXEDSZ)
- return ARES_EBADRESP;
-
- /* Fetch the question and answer count from the header. */
- qdcount = DNS_HEADER_QDCOUNT (abuf);
- ancount = DNS_HEADER_ANCOUNT (abuf);
- if (qdcount != 1)
- return ARES_EBADRESP;
- if (ancount == 0)
- return ARES_ENODATA;
-
- /* Expand the name from the question, and skip past the question. */
- aptr = abuf + HFIXEDSZ;
- status = ares_expand_name (aptr, abuf, alen, &hostname, &len);
- if (status != ARES_SUCCESS)
- return status;
-
- if (aptr + len + QFIXEDSZ > abuf + alen)
- {
+
+ /* Set *txt_out to NULL for all failure cases. */
+ *txt_out = NULL;
+
+ /* Give up if abuf doesn't have room for a header. */
+ if (alen < HFIXEDSZ)
+ return ARES_EBADRESP;
+
+ /* Fetch the question and answer count from the header. */
+ qdcount = DNS_HEADER_QDCOUNT (abuf);
+ ancount = DNS_HEADER_ANCOUNT (abuf);
+ if (qdcount != 1)
+ return ARES_EBADRESP;
+ if (ancount == 0)
+ return ARES_ENODATA;
+
+ /* Expand the name from the question, and skip past the question. */
+ aptr = abuf + HFIXEDSZ;
+ status = ares_expand_name (aptr, abuf, alen, &hostname, &len);
+ if (status != ARES_SUCCESS)
+ return status;
+
+ if (aptr + len + QFIXEDSZ > abuf + alen)
+ {
ares_free (hostname);
- return ARES_EBADRESP;
- }
- aptr += len + QFIXEDSZ;
-
- /* Examine each answer resource record (RR) in turn. */
- for (i = 0; i < ancount; i++)
- {
- /* Decode the RR up to the data field. */
- status = ares_expand_name (aptr, abuf, alen, &rr_name, &len);
- if (status != ARES_SUCCESS)
- {
- break;
- }
- aptr += len;
- if (aptr + RRFIXEDSZ > abuf + alen)
- {
- status = ARES_EBADRESP;
- break;
- }
- rr_type = DNS_RR_TYPE (aptr);
- rr_class = DNS_RR_CLASS (aptr);
- rr_len = DNS_RR_LEN (aptr);
+ return ARES_EBADRESP;
+ }
+ aptr += len + QFIXEDSZ;
+
+ /* Examine each answer resource record (RR) in turn. */
+ for (i = 0; i < ancount; i++)
+ {
+ /* Decode the RR up to the data field. */
+ status = ares_expand_name (aptr, abuf, alen, &rr_name, &len);
+ if (status != ARES_SUCCESS)
+ {
+ break;
+ }
+ aptr += len;
+ if (aptr + RRFIXEDSZ > abuf + alen)
+ {
+ status = ARES_EBADRESP;
+ break;
+ }
+ rr_type = DNS_RR_TYPE (aptr);
+ rr_class = DNS_RR_CLASS (aptr);
+ rr_len = DNS_RR_LEN (aptr);
rr_ttl = DNS_RR_TTL (aptr);
- aptr += RRFIXEDSZ;
- if (aptr + rr_len > abuf + alen)
- {
- status = ARES_EBADRESP;
- break;
- }
-
- /* Check if we are really looking at a TXT record */
+ aptr += RRFIXEDSZ;
+ if (aptr + rr_len > abuf + alen)
+ {
+ status = ARES_EBADRESP;
+ break;
+ }
+
+ /* Check if we are really looking at a TXT record */
if ((rr_class == C_IN || rr_class == C_CHAOS) && rr_type == T_TXT)
- {
- /*
- * There may be multiple substrings in a single TXT record. Each
- * substring may be up to 255 characters in length, with a
- * "length byte" indicating the size of the substring payload.
- * RDATA contains both the length-bytes and payloads of all
- * substrings contained therein.
- */
-
- strptr = aptr;
- while (strptr < (aptr + rr_len))
- {
- substr_len = (unsigned char)*strptr;
- if (strptr + substr_len + 1 > aptr + rr_len)
- {
- status = ARES_EBADRESP;
- break;
- }
-
- /* Allocate storage for this TXT answer appending it to the list */
+ {
+ /*
+ * There may be multiple substrings in a single TXT record. Each
+ * substring may be up to 255 characters in length, with a
+ * "length byte" indicating the size of the substring payload.
+ * RDATA contains both the length-bytes and payloads of all
+ * substrings contained therein.
+ */
+
+ strptr = aptr;
+ while (strptr < (aptr + rr_len))
+ {
+ substr_len = (unsigned char)*strptr;
+ if (strptr + substr_len + 1 > aptr + rr_len)
+ {
+ status = ARES_EBADRESP;
+ break;
+ }
+
+ /* Allocate storage for this TXT answer appending it to the list */
txt_curr = ares_malloc_data(ex ? ARES_DATATYPE_TXT_EXT :
ARES_DATATYPE_TXT_REPLY);
- if (!txt_curr)
- {
- status = ARES_ENOMEM;
- break;
- }
- if (txt_last)
- {
- txt_last->next = txt_curr;
- }
- else
- {
- txt_head = txt_curr;
- }
- txt_last = txt_curr;
-
+ if (!txt_curr)
+ {
+ status = ARES_ENOMEM;
+ break;
+ }
+ if (txt_last)
+ {
+ txt_last->next = txt_curr;
+ }
+ else
+ {
+ txt_head = txt_curr;
+ }
+ txt_last = txt_curr;
+
if (ex)
txt_curr->record_start = (strptr == aptr);
- txt_curr->length = substr_len;
+ txt_curr->length = substr_len;
txt_curr->txt = ares_malloc (substr_len + 1/* Including null byte */);
- if (txt_curr->txt == NULL)
- {
- status = ARES_ENOMEM;
- break;
- }
+ if (txt_curr->txt == NULL)
+ {
+ status = ARES_ENOMEM;
+ break;
+ }
++strptr;
- memcpy ((char *) txt_curr->txt, strptr, substr_len);
-
- /* Make sure we NULL-terminate */
- txt_curr->txt[substr_len] = 0;
+ memcpy ((char *) txt_curr->txt, strptr, substr_len);
+
+ /* Make sure we NULL-terminate */
+ txt_curr->txt[substr_len] = 0;
txt_curr->ttl = rr_ttl;
-
- strptr += substr_len;
- }
- }
-
+
+ strptr += substr_len;
+ }
+ }
+
/* Propagate any failures */
if (status != ARES_SUCCESS)
{
break;
}
- /* Don't lose memory in the next iteration */
+ /* Don't lose memory in the next iteration */
ares_free (rr_name);
- rr_name = NULL;
-
- /* Move on to the next record */
- aptr += rr_len;
- }
-
- if (hostname)
+ rr_name = NULL;
+
+ /* Move on to the next record */
+ aptr += rr_len;
+ }
+
+ if (hostname)
ares_free (hostname);
- if (rr_name)
+ if (rr_name)
ares_free (rr_name);
-
- /* clean up on error */
- if (status != ARES_SUCCESS)
- {
- if (txt_head)
- ares_free_data (txt_head);
- return status;
- }
-
- /* everything looks fine, return the data */
- *txt_out = txt_head;
-
- return ARES_SUCCESS;
-}
+
+ /* clean up on error */
+ if (status != ARES_SUCCESS)
+ {
+ if (txt_head)
+ ares_free_data (txt_head);
+ return status;
+ }
+
+ /* everything looks fine, return the data */
+ *txt_out = txt_head;
+
+ return ARES_SUCCESS;
+}
int
ares_parse_txt_reply (const unsigned char *abuf, int alen,
diff --git a/contrib/libs/c-ares/ares_platform.c b/contrib/libs/c-ares/ares_platform.c
index 8ea55ecf17..6c749dccb2 100644
--- a/contrib/libs/c-ares/ares_platform.c
+++ b/contrib/libs/c-ares/ares_platform.c
@@ -1,11042 +1,11042 @@
-
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- * Copyright (C) 2004 - 2011 by Daniel Stenberg et al
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#include "ares.h"
-#include "ares_platform.h"
-#include "ares_nowarn.h"
-#include "ares_private.h"
-
-#if defined(WIN32) && !defined(MSDOS)
-
-#define V_PLATFORM_WIN32s 0
-#define V_PLATFORM_WIN32_WINDOWS 1
-#define V_PLATFORM_WIN32_NT 2
-#define V_PLATFORM_WIN32_CE 3
-
-win_platform ares__getplatform(void)
-{
- OSVERSIONINFOEX OsvEx;
-
- memset(&OsvEx, 0, sizeof(OsvEx));
- OsvEx.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
+
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ * Copyright (C) 2004 - 2011 by Daniel Stenberg et al
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#include "ares.h"
+#include "ares_platform.h"
+#include "ares_nowarn.h"
+#include "ares_private.h"
+
+#if defined(WIN32) && !defined(MSDOS)
+
+#define V_PLATFORM_WIN32s 0
+#define V_PLATFORM_WIN32_WINDOWS 1
+#define V_PLATFORM_WIN32_NT 2
+#define V_PLATFORM_WIN32_CE 3
+
+win_platform ares__getplatform(void)
+{
+ OSVERSIONINFOEX OsvEx;
+
+ memset(&OsvEx, 0, sizeof(OsvEx));
+ OsvEx.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX);
#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable:4996) /* warning C4996: 'GetVersionExW': was declared deprecated */
#endif
- if (!GetVersionEx((void *)&OsvEx))
- {
- memset(&OsvEx, 0, sizeof(OsvEx));
- OsvEx.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
- if (!GetVersionEx((void *)&OsvEx))
- return WIN_UNKNOWN;
- }
+ if (!GetVersionEx((void *)&OsvEx))
+ {
+ memset(&OsvEx, 0, sizeof(OsvEx));
+ OsvEx.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
+ if (!GetVersionEx((void *)&OsvEx))
+ return WIN_UNKNOWN;
+ }
#ifdef _MSC_VER
#pragma warning(pop)
#endif
-
- switch(OsvEx.dwPlatformId)
- {
- case V_PLATFORM_WIN32s:
- return WIN_3X;
-
- case V_PLATFORM_WIN32_WINDOWS:
- return WIN_9X;
-
- case V_PLATFORM_WIN32_NT:
- return WIN_NT;
-
- case V_PLATFORM_WIN32_CE:
- return WIN_CE;
-
- default:
- return WIN_UNKNOWN;
- }
-}
-
-#endif /* WIN32 && ! MSDOS */
-
-#if defined(_WIN32_WCE)
-
-/* IANA Well Known Ports are in range 0-1023 */
-#define USE_IANA_WELL_KNOWN_PORTS 1
-
-/* IANA Registered Ports are in range 1024-49151 */
-#define USE_IANA_REGISTERED_PORTS 1
-
-struct pvt_servent {
- char *s_name;
- char **s_aliases;
- unsigned short s_port;
- char *s_proto;
-};
-
-/*
- * Ref: http://www.iana.org/assignments/port-numbers
- */
-
-static struct pvt_servent IANAports[] = {
-#ifdef USE_IANA_WELL_KNOWN_PORTS
-{"tcpmux", {NULL}, 1, "tcp"},
-{"tcpmux", {NULL}, 1, "udp"},
-{"compressnet", {NULL}, 2, "tcp"},
-{"compressnet", {NULL}, 2, "udp"},
-{"compressnet", {NULL}, 3, "tcp"},
-{"compressnet", {NULL}, 3, "udp"},
-{"rje", {NULL}, 5, "tcp"},
-{"rje", {NULL}, 5, "udp"},
-{"echo", {NULL}, 7, "tcp"},
-{"echo", {NULL}, 7, "udp"},
-{"discard", {NULL}, 9, "tcp"},
-{"discard", {NULL}, 9, "udp"},
-{"discard", {NULL}, 9, "sctp"},
-{"discard", {NULL}, 9, "dccp"},
-{"systat", {NULL}, 11, "tcp"},
-{"systat", {NULL}, 11, "udp"},
-{"daytime", {NULL}, 13, "tcp"},
-{"daytime", {NULL}, 13, "udp"},
-{"qotd", {NULL}, 17, "tcp"},
-{"qotd", {NULL}, 17, "udp"},
-{"msp", {NULL}, 18, "tcp"},
-{"msp", {NULL}, 18, "udp"},
-{"chargen", {NULL}, 19, "tcp"},
-{"chargen", {NULL}, 19, "udp"},
-{"ftp-data", {NULL}, 20, "tcp"},
-{"ftp-data", {NULL}, 20, "udp"},
-{"ftp-data", {NULL}, 20, "sctp"},
-{"ftp", {NULL}, 21, "tcp"},
-{"ftp", {NULL}, 21, "udp"},
-{"ftp", {NULL}, 21, "sctp"},
-{"ssh", {NULL}, 22, "tcp"},
-{"ssh", {NULL}, 22, "udp"},
-{"ssh", {NULL}, 22, "sctp"},
-{"telnet", {NULL}, 23, "tcp"},
-{"telnet", {NULL}, 23, "udp"},
-{"smtp", {NULL}, 25, "tcp"},
-{"smtp", {NULL}, 25, "udp"},
-{"nsw-fe", {NULL}, 27, "tcp"},
-{"nsw-fe", {NULL}, 27, "udp"},
-{"msg-icp", {NULL}, 29, "tcp"},
-{"msg-icp", {NULL}, 29, "udp"},
-{"msg-auth", {NULL}, 31, "tcp"},
-{"msg-auth", {NULL}, 31, "udp"},
-{"dsp", {NULL}, 33, "tcp"},
-{"dsp", {NULL}, 33, "udp"},
-{"time", {NULL}, 37, "tcp"},
-{"time", {NULL}, 37, "udp"},
-{"rap", {NULL}, 38, "tcp"},
-{"rap", {NULL}, 38, "udp"},
-{"rlp", {NULL}, 39, "tcp"},
-{"rlp", {NULL}, 39, "udp"},
-{"graphics", {NULL}, 41, "tcp"},
-{"graphics", {NULL}, 41, "udp"},
-{"name", {NULL}, 42, "tcp"},
-{"name", {NULL}, 42, "udp"},
-{"nameserver", {NULL}, 42, "tcp"},
-{"nameserver", {NULL}, 42, "udp"},
-{"nicname", {NULL}, 43, "tcp"},
-{"nicname", {NULL}, 43, "udp"},
-{"mpm-flags", {NULL}, 44, "tcp"},
-{"mpm-flags", {NULL}, 44, "udp"},
-{"mpm", {NULL}, 45, "tcp"},
-{"mpm", {NULL}, 45, "udp"},
-{"mpm-snd", {NULL}, 46, "tcp"},
-{"mpm-snd", {NULL}, 46, "udp"},
-{"ni-ftp", {NULL}, 47, "tcp"},
-{"ni-ftp", {NULL}, 47, "udp"},
-{"auditd", {NULL}, 48, "tcp"},
-{"auditd", {NULL}, 48, "udp"},
-{"tacacs", {NULL}, 49, "tcp"},
-{"tacacs", {NULL}, 49, "udp"},
-{"re-mail-ck", {NULL}, 50, "tcp"},
-{"re-mail-ck", {NULL}, 50, "udp"},
-{"la-maint", {NULL}, 51, "tcp"},
-{"la-maint", {NULL}, 51, "udp"},
-{"xns-time", {NULL}, 52, "tcp"},
-{"xns-time", {NULL}, 52, "udp"},
-{"domain", {NULL}, 53, "tcp"},
-{"domain", {NULL}, 53, "udp"},
-{"xns-ch", {NULL}, 54, "tcp"},
-{"xns-ch", {NULL}, 54, "udp"},
-{"isi-gl", {NULL}, 55, "tcp"},
-{"isi-gl", {NULL}, 55, "udp"},
-{"xns-auth", {NULL}, 56, "tcp"},
-{"xns-auth", {NULL}, 56, "udp"},
-{"xns-mail", {NULL}, 58, "tcp"},
-{"xns-mail", {NULL}, 58, "udp"},
-{"ni-mail", {NULL}, 61, "tcp"},
-{"ni-mail", {NULL}, 61, "udp"},
-{"acas", {NULL}, 62, "tcp"},
-{"acas", {NULL}, 62, "udp"},
-{"whois++", {NULL}, 63, "tcp"},
-{"whois++", {NULL}, 63, "udp"},
-{"covia", {NULL}, 64, "tcp"},
-{"covia", {NULL}, 64, "udp"},
-{"tacacs-ds", {NULL}, 65, "tcp"},
-{"tacacs-ds", {NULL}, 65, "udp"},
-{"sql*net", {NULL}, 66, "tcp"},
-{"sql*net", {NULL}, 66, "udp"},
-{"bootps", {NULL}, 67, "tcp"},
-{"bootps", {NULL}, 67, "udp"},
-{"bootpc", {NULL}, 68, "tcp"},
-{"bootpc", {NULL}, 68, "udp"},
-{"tftp", {NULL}, 69, "tcp"},
-{"tftp", {NULL}, 69, "udp"},
-{"gopher", {NULL}, 70, "tcp"},
-{"gopher", {NULL}, 70, "udp"},
-{"netrjs-1", {NULL}, 71, "tcp"},
-{"netrjs-1", {NULL}, 71, "udp"},
-{"netrjs-2", {NULL}, 72, "tcp"},
-{"netrjs-2", {NULL}, 72, "udp"},
-{"netrjs-3", {NULL}, 73, "tcp"},
-{"netrjs-3", {NULL}, 73, "udp"},
-{"netrjs-4", {NULL}, 74, "tcp"},
-{"netrjs-4", {NULL}, 74, "udp"},
-{"deos", {NULL}, 76, "tcp"},
-{"deos", {NULL}, 76, "udp"},
-{"vettcp", {NULL}, 78, "tcp"},
-{"vettcp", {NULL}, 78, "udp"},
-{"finger", {NULL}, 79, "tcp"},
-{"finger", {NULL}, 79, "udp"},
-{"http", {NULL}, 80, "tcp"},
-{"http", {NULL}, 80, "udp"},
-{"www", {NULL}, 80, "tcp"},
-{"www", {NULL}, 80, "udp"},
-{"www-http", {NULL}, 80, "tcp"},
-{"www-http", {NULL}, 80, "udp"},
-{"http", {NULL}, 80, "sctp"},
-{"xfer", {NULL}, 82, "tcp"},
-{"xfer", {NULL}, 82, "udp"},
-{"mit-ml-dev", {NULL}, 83, "tcp"},
-{"mit-ml-dev", {NULL}, 83, "udp"},
-{"ctf", {NULL}, 84, "tcp"},
-{"ctf", {NULL}, 84, "udp"},
-{"mit-ml-dev", {NULL}, 85, "tcp"},
-{"mit-ml-dev", {NULL}, 85, "udp"},
-{"mfcobol", {NULL}, 86, "tcp"},
-{"mfcobol", {NULL}, 86, "udp"},
-{"kerberos", {NULL}, 88, "tcp"},
-{"kerberos", {NULL}, 88, "udp"},
-{"su-mit-tg", {NULL}, 89, "tcp"},
-{"su-mit-tg", {NULL}, 89, "udp"},
-{"dnsix", {NULL}, 90, "tcp"},
-{"dnsix", {NULL}, 90, "udp"},
-{"mit-dov", {NULL}, 91, "tcp"},
-{"mit-dov", {NULL}, 91, "udp"},
-{"npp", {NULL}, 92, "tcp"},
-{"npp", {NULL}, 92, "udp"},
-{"dcp", {NULL}, 93, "tcp"},
-{"dcp", {NULL}, 93, "udp"},
-{"objcall", {NULL}, 94, "tcp"},
-{"objcall", {NULL}, 94, "udp"},
-{"supdup", {NULL}, 95, "tcp"},
-{"supdup", {NULL}, 95, "udp"},
-{"dixie", {NULL}, 96, "tcp"},
-{"dixie", {NULL}, 96, "udp"},
-{"swift-rvf", {NULL}, 97, "tcp"},
-{"swift-rvf", {NULL}, 97, "udp"},
-{"tacnews", {NULL}, 98, "tcp"},
-{"tacnews", {NULL}, 98, "udp"},
-{"metagram", {NULL}, 99, "tcp"},
-{"metagram", {NULL}, 99, "udp"},
-{"newacct", {NULL}, 100, "tcp"},
-{"hostname", {NULL}, 101, "tcp"},
-{"hostname", {NULL}, 101, "udp"},
-{"iso-tsap", {NULL}, 102, "tcp"},
-{"iso-tsap", {NULL}, 102, "udp"},
-{"gppitnp", {NULL}, 103, "tcp"},
-{"gppitnp", {NULL}, 103, "udp"},
-{"acr-nema", {NULL}, 104, "tcp"},
-{"acr-nema", {NULL}, 104, "udp"},
-{"cso", {NULL}, 105, "tcp"},
-{"cso", {NULL}, 105, "udp"},
-{"csnet-ns", {NULL}, 105, "tcp"},
-{"csnet-ns", {NULL}, 105, "udp"},
-{"3com-tsmux", {NULL}, 106, "tcp"},
-{"3com-tsmux", {NULL}, 106, "udp"},
-{"rtelnet", {NULL}, 107, "tcp"},
-{"rtelnet", {NULL}, 107, "udp"},
-{"snagas", {NULL}, 108, "tcp"},
-{"snagas", {NULL}, 108, "udp"},
-{"pop2", {NULL}, 109, "tcp"},
-{"pop2", {NULL}, 109, "udp"},
-{"pop3", {NULL}, 110, "tcp"},
-{"pop3", {NULL}, 110, "udp"},
-{"sunrpc", {NULL}, 111, "tcp"},
-{"sunrpc", {NULL}, 111, "udp"},
-{"mcidas", {NULL}, 112, "tcp"},
-{"mcidas", {NULL}, 112, "udp"},
-{"ident", {NULL}, 113, "tcp"},
-{"auth", {NULL}, 113, "tcp"},
-{"auth", {NULL}, 113, "udp"},
-{"sftp", {NULL}, 115, "tcp"},
-{"sftp", {NULL}, 115, "udp"},
-{"ansanotify", {NULL}, 116, "tcp"},
-{"ansanotify", {NULL}, 116, "udp"},
-{"uucp-path", {NULL}, 117, "tcp"},
-{"uucp-path", {NULL}, 117, "udp"},
-{"sqlserv", {NULL}, 118, "tcp"},
-{"sqlserv", {NULL}, 118, "udp"},
-{"nntp", {NULL}, 119, "tcp"},
-{"nntp", {NULL}, 119, "udp"},
-{"cfdptkt", {NULL}, 120, "tcp"},
-{"cfdptkt", {NULL}, 120, "udp"},
-{"erpc", {NULL}, 121, "tcp"},
-{"erpc", {NULL}, 121, "udp"},
-{"smakynet", {NULL}, 122, "tcp"},
-{"smakynet", {NULL}, 122, "udp"},
-{"ntp", {NULL}, 123, "tcp"},
-{"ntp", {NULL}, 123, "udp"},
-{"ansatrader", {NULL}, 124, "tcp"},
-{"ansatrader", {NULL}, 124, "udp"},
-{"locus-map", {NULL}, 125, "tcp"},
-{"locus-map", {NULL}, 125, "udp"},
-{"nxedit", {NULL}, 126, "tcp"},
-{"nxedit", {NULL}, 126, "udp"},
-{"locus-con", {NULL}, 127, "tcp"},
-{"locus-con", {NULL}, 127, "udp"},
-{"gss-xlicen", {NULL}, 128, "tcp"},
-{"gss-xlicen", {NULL}, 128, "udp"},
-{"pwdgen", {NULL}, 129, "tcp"},
-{"pwdgen", {NULL}, 129, "udp"},
-{"cisco-fna", {NULL}, 130, "tcp"},
-{"cisco-fna", {NULL}, 130, "udp"},
-{"cisco-tna", {NULL}, 131, "tcp"},
-{"cisco-tna", {NULL}, 131, "udp"},
-{"cisco-sys", {NULL}, 132, "tcp"},
-{"cisco-sys", {NULL}, 132, "udp"},
-{"statsrv", {NULL}, 133, "tcp"},
-{"statsrv", {NULL}, 133, "udp"},
-{"ingres-net", {NULL}, 134, "tcp"},
-{"ingres-net", {NULL}, 134, "udp"},
-{"epmap", {NULL}, 135, "tcp"},
-{"epmap", {NULL}, 135, "udp"},
-{"profile", {NULL}, 136, "tcp"},
-{"profile", {NULL}, 136, "udp"},
-{"netbios-ns", {NULL}, 137, "tcp"},
-{"netbios-ns", {NULL}, 137, "udp"},
-{"netbios-dgm", {NULL}, 138, "tcp"},
-{"netbios-dgm", {NULL}, 138, "udp"},
-{"netbios-ssn", {NULL}, 139, "tcp"},
-{"netbios-ssn", {NULL}, 139, "udp"},
-{"emfis-data", {NULL}, 140, "tcp"},
-{"emfis-data", {NULL}, 140, "udp"},
-{"emfis-cntl", {NULL}, 141, "tcp"},
-{"emfis-cntl", {NULL}, 141, "udp"},
-{"bl-idm", {NULL}, 142, "tcp"},
-{"bl-idm", {NULL}, 142, "udp"},
-{"imap", {NULL}, 143, "tcp"},
-{"imap", {NULL}, 143, "udp"},
-{"uma", {NULL}, 144, "tcp"},
-{"uma", {NULL}, 144, "udp"},
-{"uaac", {NULL}, 145, "tcp"},
-{"uaac", {NULL}, 145, "udp"},
-{"iso-tp0", {NULL}, 146, "tcp"},
-{"iso-tp0", {NULL}, 146, "udp"},
-{"iso-ip", {NULL}, 147, "tcp"},
-{"iso-ip", {NULL}, 147, "udp"},
-{"jargon", {NULL}, 148, "tcp"},
-{"jargon", {NULL}, 148, "udp"},
-{"aed-512", {NULL}, 149, "tcp"},
-{"aed-512", {NULL}, 149, "udp"},
-{"sql-net", {NULL}, 150, "tcp"},
-{"sql-net", {NULL}, 150, "udp"},
-{"hems", {NULL}, 151, "tcp"},
-{"hems", {NULL}, 151, "udp"},
-{"bftp", {NULL}, 152, "tcp"},
-{"bftp", {NULL}, 152, "udp"},
-{"sgmp", {NULL}, 153, "tcp"},
-{"sgmp", {NULL}, 153, "udp"},
-{"netsc-prod", {NULL}, 154, "tcp"},
-{"netsc-prod", {NULL}, 154, "udp"},
-{"netsc-dev", {NULL}, 155, "tcp"},
-{"netsc-dev", {NULL}, 155, "udp"},
-{"sqlsrv", {NULL}, 156, "tcp"},
-{"sqlsrv", {NULL}, 156, "udp"},
-{"knet-cmp", {NULL}, 157, "tcp"},
-{"knet-cmp", {NULL}, 157, "udp"},
-{"pcmail-srv", {NULL}, 158, "tcp"},
-{"pcmail-srv", {NULL}, 158, "udp"},
-{"nss-routing", {NULL}, 159, "tcp"},
-{"nss-routing", {NULL}, 159, "udp"},
-{"sgmp-traps", {NULL}, 160, "tcp"},
-{"sgmp-traps", {NULL}, 160, "udp"},
-{"snmp", {NULL}, 161, "tcp"},
-{"snmp", {NULL}, 161, "udp"},
-{"snmptrap", {NULL}, 162, "tcp"},
-{"snmptrap", {NULL}, 162, "udp"},
-{"cmip-man", {NULL}, 163, "tcp"},
-{"cmip-man", {NULL}, 163, "udp"},
-{"cmip-agent", {NULL}, 164, "tcp"},
-{"cmip-agent", {NULL}, 164, "udp"},
-{"xns-courier", {NULL}, 165, "tcp"},
-{"xns-courier", {NULL}, 165, "udp"},
-{"s-net", {NULL}, 166, "tcp"},
-{"s-net", {NULL}, 166, "udp"},
-{"namp", {NULL}, 167, "tcp"},
-{"namp", {NULL}, 167, "udp"},
-{"rsvd", {NULL}, 168, "tcp"},
-{"rsvd", {NULL}, 168, "udp"},
-{"send", {NULL}, 169, "tcp"},
-{"send", {NULL}, 169, "udp"},
-{"print-srv", {NULL}, 170, "tcp"},
-{"print-srv", {NULL}, 170, "udp"},
-{"multiplex", {NULL}, 171, "tcp"},
-{"multiplex", {NULL}, 171, "udp"},
-{"cl/1", {NULL}, 172, "tcp"},
-{"cl/1", {NULL}, 172, "udp"},
-{"xyplex-mux", {NULL}, 173, "tcp"},
-{"xyplex-mux", {NULL}, 173, "udp"},
-{"mailq", {NULL}, 174, "tcp"},
-{"mailq", {NULL}, 174, "udp"},
-{"vmnet", {NULL}, 175, "tcp"},
-{"vmnet", {NULL}, 175, "udp"},
-{"genrad-mux", {NULL}, 176, "tcp"},
-{"genrad-mux", {NULL}, 176, "udp"},
-{"xdmcp", {NULL}, 177, "tcp"},
-{"xdmcp", {NULL}, 177, "udp"},
-{"nextstep", {NULL}, 178, "tcp"},
-{"nextstep", {NULL}, 178, "udp"},
-{"bgp", {NULL}, 179, "tcp"},
-{"bgp", {NULL}, 179, "udp"},
-{"bgp", {NULL}, 179, "sctp"},
-{"ris", {NULL}, 180, "tcp"},
-{"ris", {NULL}, 180, "udp"},
-{"unify", {NULL}, 181, "tcp"},
-{"unify", {NULL}, 181, "udp"},
-{"audit", {NULL}, 182, "tcp"},
-{"audit", {NULL}, 182, "udp"},
-{"ocbinder", {NULL}, 183, "tcp"},
-{"ocbinder", {NULL}, 183, "udp"},
-{"ocserver", {NULL}, 184, "tcp"},
-{"ocserver", {NULL}, 184, "udp"},
-{"remote-kis", {NULL}, 185, "tcp"},
-{"remote-kis", {NULL}, 185, "udp"},
-{"kis", {NULL}, 186, "tcp"},
-{"kis", {NULL}, 186, "udp"},
-{"aci", {NULL}, 187, "tcp"},
-{"aci", {NULL}, 187, "udp"},
-{"mumps", {NULL}, 188, "tcp"},
-{"mumps", {NULL}, 188, "udp"},
-{"qft", {NULL}, 189, "tcp"},
-{"qft", {NULL}, 189, "udp"},
-{"gacp", {NULL}, 190, "tcp"},
-{"gacp", {NULL}, 190, "udp"},
-{"prospero", {NULL}, 191, "tcp"},
-{"prospero", {NULL}, 191, "udp"},
-{"osu-nms", {NULL}, 192, "tcp"},
-{"osu-nms", {NULL}, 192, "udp"},
-{"srmp", {NULL}, 193, "tcp"},
-{"srmp", {NULL}, 193, "udp"},
-{"irc", {NULL}, 194, "tcp"},
-{"irc", {NULL}, 194, "udp"},
-{"dn6-nlm-aud", {NULL}, 195, "tcp"},
-{"dn6-nlm-aud", {NULL}, 195, "udp"},
-{"dn6-smm-red", {NULL}, 196, "tcp"},
-{"dn6-smm-red", {NULL}, 196, "udp"},
-{"dls", {NULL}, 197, "tcp"},
-{"dls", {NULL}, 197, "udp"},
-{"dls-mon", {NULL}, 198, "tcp"},
-{"dls-mon", {NULL}, 198, "udp"},
-{"smux", {NULL}, 199, "tcp"},
-{"smux", {NULL}, 199, "udp"},
-{"src", {NULL}, 200, "tcp"},
-{"src", {NULL}, 200, "udp"},
-{"at-rtmp", {NULL}, 201, "tcp"},
-{"at-rtmp", {NULL}, 201, "udp"},
-{"at-nbp", {NULL}, 202, "tcp"},
-{"at-nbp", {NULL}, 202, "udp"},
-{"at-3", {NULL}, 203, "tcp"},
-{"at-3", {NULL}, 203, "udp"},
-{"at-echo", {NULL}, 204, "tcp"},
-{"at-echo", {NULL}, 204, "udp"},
-{"at-5", {NULL}, 205, "tcp"},
-{"at-5", {NULL}, 205, "udp"},
-{"at-zis", {NULL}, 206, "tcp"},
-{"at-zis", {NULL}, 206, "udp"},
-{"at-7", {NULL}, 207, "tcp"},
-{"at-7", {NULL}, 207, "udp"},
-{"at-8", {NULL}, 208, "tcp"},
-{"at-8", {NULL}, 208, "udp"},
-{"qmtp", {NULL}, 209, "tcp"},
-{"qmtp", {NULL}, 209, "udp"},
-{"z39.50", {NULL}, 210, "tcp"},
-{"z39.50", {NULL}, 210, "udp"},
-{"914c/g", {NULL}, 211, "tcp"},
-{"914c/g", {NULL}, 211, "udp"},
-{"anet", {NULL}, 212, "tcp"},
-{"anet", {NULL}, 212, "udp"},
-{"ipx", {NULL}, 213, "tcp"},
-{"ipx", {NULL}, 213, "udp"},
-{"vmpwscs", {NULL}, 214, "tcp"},
-{"vmpwscs", {NULL}, 214, "udp"},
-{"softpc", {NULL}, 215, "tcp"},
-{"softpc", {NULL}, 215, "udp"},
-{"CAIlic", {NULL}, 216, "tcp"},
-{"CAIlic", {NULL}, 216, "udp"},
-{"dbase", {NULL}, 217, "tcp"},
-{"dbase", {NULL}, 217, "udp"},
-{"mpp", {NULL}, 218, "tcp"},
-{"mpp", {NULL}, 218, "udp"},
-{"uarps", {NULL}, 219, "tcp"},
-{"uarps", {NULL}, 219, "udp"},
-{"imap3", {NULL}, 220, "tcp"},
-{"imap3", {NULL}, 220, "udp"},
-{"fln-spx", {NULL}, 221, "tcp"},
-{"fln-spx", {NULL}, 221, "udp"},
-{"rsh-spx", {NULL}, 222, "tcp"},
-{"rsh-spx", {NULL}, 222, "udp"},
-{"cdc", {NULL}, 223, "tcp"},
-{"cdc", {NULL}, 223, "udp"},
-{"masqdialer", {NULL}, 224, "tcp"},
-{"masqdialer", {NULL}, 224, "udp"},
-{"direct", {NULL}, 242, "tcp"},
-{"direct", {NULL}, 242, "udp"},
-{"sur-meas", {NULL}, 243, "tcp"},
-{"sur-meas", {NULL}, 243, "udp"},
-{"inbusiness", {NULL}, 244, "tcp"},
-{"inbusiness", {NULL}, 244, "udp"},
-{"link", {NULL}, 245, "tcp"},
-{"link", {NULL}, 245, "udp"},
-{"dsp3270", {NULL}, 246, "tcp"},
-{"dsp3270", {NULL}, 246, "udp"},
-{"subntbcst_tftp", {NULL}, 247, "tcp"},
-{"subntbcst_tftp", {NULL}, 247, "udp"},
-{"bhfhs", {NULL}, 248, "tcp"},
-{"bhfhs", {NULL}, 248, "udp"},
-{"rap", {NULL}, 256, "tcp"},
-{"rap", {NULL}, 256, "udp"},
-{"set", {NULL}, 257, "tcp"},
-{"set", {NULL}, 257, "udp"},
-{"esro-gen", {NULL}, 259, "tcp"},
-{"esro-gen", {NULL}, 259, "udp"},
-{"openport", {NULL}, 260, "tcp"},
-{"openport", {NULL}, 260, "udp"},
-{"nsiiops", {NULL}, 261, "tcp"},
-{"nsiiops", {NULL}, 261, "udp"},
-{"arcisdms", {NULL}, 262, "tcp"},
-{"arcisdms", {NULL}, 262, "udp"},
-{"hdap", {NULL}, 263, "tcp"},
-{"hdap", {NULL}, 263, "udp"},
-{"bgmp", {NULL}, 264, "tcp"},
-{"bgmp", {NULL}, 264, "udp"},
-{"x-bone-ctl", {NULL}, 265, "tcp"},
-{"x-bone-ctl", {NULL}, 265, "udp"},
-{"sst", {NULL}, 266, "tcp"},
-{"sst", {NULL}, 266, "udp"},
-{"td-service", {NULL}, 267, "tcp"},
-{"td-service", {NULL}, 267, "udp"},
-{"td-replica", {NULL}, 268, "tcp"},
-{"td-replica", {NULL}, 268, "udp"},
-{"manet", {NULL}, 269, "tcp"},
-{"manet", {NULL}, 269, "udp"},
-{"gist", {NULL}, 270, "udp"},
-{"http-mgmt", {NULL}, 280, "tcp"},
-{"http-mgmt", {NULL}, 280, "udp"},
-{"personal-link", {NULL}, 281, "tcp"},
-{"personal-link", {NULL}, 281, "udp"},
-{"cableport-ax", {NULL}, 282, "tcp"},
-{"cableport-ax", {NULL}, 282, "udp"},
-{"rescap", {NULL}, 283, "tcp"},
-{"rescap", {NULL}, 283, "udp"},
-{"corerjd", {NULL}, 284, "tcp"},
-{"corerjd", {NULL}, 284, "udp"},
-{"fxp", {NULL}, 286, "tcp"},
-{"fxp", {NULL}, 286, "udp"},
-{"k-block", {NULL}, 287, "tcp"},
-{"k-block", {NULL}, 287, "udp"},
-{"novastorbakcup", {NULL}, 308, "tcp"},
-{"novastorbakcup", {NULL}, 308, "udp"},
-{"entrusttime", {NULL}, 309, "tcp"},
-{"entrusttime", {NULL}, 309, "udp"},
-{"bhmds", {NULL}, 310, "tcp"},
-{"bhmds", {NULL}, 310, "udp"},
-{"asip-webadmin", {NULL}, 311, "tcp"},
-{"asip-webadmin", {NULL}, 311, "udp"},
-{"vslmp", {NULL}, 312, "tcp"},
-{"vslmp", {NULL}, 312, "udp"},
-{"magenta-logic", {NULL}, 313, "tcp"},
-{"magenta-logic", {NULL}, 313, "udp"},
-{"opalis-robot", {NULL}, 314, "tcp"},
-{"opalis-robot", {NULL}, 314, "udp"},
-{"dpsi", {NULL}, 315, "tcp"},
-{"dpsi", {NULL}, 315, "udp"},
-{"decauth", {NULL}, 316, "tcp"},
-{"decauth", {NULL}, 316, "udp"},
-{"zannet", {NULL}, 317, "tcp"},
-{"zannet", {NULL}, 317, "udp"},
-{"pkix-timestamp", {NULL}, 318, "tcp"},
-{"pkix-timestamp", {NULL}, 318, "udp"},
-{"ptp-event", {NULL}, 319, "tcp"},
-{"ptp-event", {NULL}, 319, "udp"},
-{"ptp-general", {NULL}, 320, "tcp"},
-{"ptp-general", {NULL}, 320, "udp"},
-{"pip", {NULL}, 321, "tcp"},
-{"pip", {NULL}, 321, "udp"},
-{"rtsps", {NULL}, 322, "tcp"},
-{"rtsps", {NULL}, 322, "udp"},
-{"texar", {NULL}, 333, "tcp"},
-{"texar", {NULL}, 333, "udp"},
-{"pdap", {NULL}, 344, "tcp"},
-{"pdap", {NULL}, 344, "udp"},
-{"pawserv", {NULL}, 345, "tcp"},
-{"pawserv", {NULL}, 345, "udp"},
-{"zserv", {NULL}, 346, "tcp"},
-{"zserv", {NULL}, 346, "udp"},
-{"fatserv", {NULL}, 347, "tcp"},
-{"fatserv", {NULL}, 347, "udp"},
-{"csi-sgwp", {NULL}, 348, "tcp"},
-{"csi-sgwp", {NULL}, 348, "udp"},
-{"mftp", {NULL}, 349, "tcp"},
-{"mftp", {NULL}, 349, "udp"},
-{"matip-type-a", {NULL}, 350, "tcp"},
-{"matip-type-a", {NULL}, 350, "udp"},
-{"matip-type-b", {NULL}, 351, "tcp"},
-{"matip-type-b", {NULL}, 351, "udp"},
-{"bhoetty", {NULL}, 351, "tcp"},
-{"bhoetty", {NULL}, 351, "udp"},
-{"dtag-ste-sb", {NULL}, 352, "tcp"},
-{"dtag-ste-sb", {NULL}, 352, "udp"},
-{"bhoedap4", {NULL}, 352, "tcp"},
-{"bhoedap4", {NULL}, 352, "udp"},
-{"ndsauth", {NULL}, 353, "tcp"},
-{"ndsauth", {NULL}, 353, "udp"},
-{"bh611", {NULL}, 354, "tcp"},
-{"bh611", {NULL}, 354, "udp"},
-{"datex-asn", {NULL}, 355, "tcp"},
-{"datex-asn", {NULL}, 355, "udp"},
-{"cloanto-net-1", {NULL}, 356, "tcp"},
-{"cloanto-net-1", {NULL}, 356, "udp"},
-{"bhevent", {NULL}, 357, "tcp"},
-{"bhevent", {NULL}, 357, "udp"},
-{"shrinkwrap", {NULL}, 358, "tcp"},
-{"shrinkwrap", {NULL}, 358, "udp"},
-{"nsrmp", {NULL}, 359, "tcp"},
-{"nsrmp", {NULL}, 359, "udp"},
-{"scoi2odialog", {NULL}, 360, "tcp"},
-{"scoi2odialog", {NULL}, 360, "udp"},
-{"semantix", {NULL}, 361, "tcp"},
-{"semantix", {NULL}, 361, "udp"},
-{"srssend", {NULL}, 362, "tcp"},
-{"srssend", {NULL}, 362, "udp"},
-{"rsvp_tunnel", {NULL}, 363, "tcp"},
-{"rsvp_tunnel", {NULL}, 363, "udp"},
-{"aurora-cmgr", {NULL}, 364, "tcp"},
-{"aurora-cmgr", {NULL}, 364, "udp"},
-{"dtk", {NULL}, 365, "tcp"},
-{"dtk", {NULL}, 365, "udp"},
-{"odmr", {NULL}, 366, "tcp"},
-{"odmr", {NULL}, 366, "udp"},
-{"mortgageware", {NULL}, 367, "tcp"},
-{"mortgageware", {NULL}, 367, "udp"},
-{"qbikgdp", {NULL}, 368, "tcp"},
-{"qbikgdp", {NULL}, 368, "udp"},
-{"rpc2portmap", {NULL}, 369, "tcp"},
-{"rpc2portmap", {NULL}, 369, "udp"},
-{"codaauth2", {NULL}, 370, "tcp"},
-{"codaauth2", {NULL}, 370, "udp"},
-{"clearcase", {NULL}, 371, "tcp"},
-{"clearcase", {NULL}, 371, "udp"},
-{"ulistproc", {NULL}, 372, "tcp"},
-{"ulistproc", {NULL}, 372, "udp"},
-{"legent-1", {NULL}, 373, "tcp"},
-{"legent-1", {NULL}, 373, "udp"},
-{"legent-2", {NULL}, 374, "tcp"},
-{"legent-2", {NULL}, 374, "udp"},
-{"hassle", {NULL}, 375, "tcp"},
-{"hassle", {NULL}, 375, "udp"},
-{"nip", {NULL}, 376, "tcp"},
-{"nip", {NULL}, 376, "udp"},
-{"tnETOS", {NULL}, 377, "tcp"},
-{"tnETOS", {NULL}, 377, "udp"},
-{"dsETOS", {NULL}, 378, "tcp"},
-{"dsETOS", {NULL}, 378, "udp"},
-{"is99c", {NULL}, 379, "tcp"},
-{"is99c", {NULL}, 379, "udp"},
-{"is99s", {NULL}, 380, "tcp"},
-{"is99s", {NULL}, 380, "udp"},
-{"hp-collector", {NULL}, 381, "tcp"},
-{"hp-collector", {NULL}, 381, "udp"},
-{"hp-managed-node", {NULL}, 382, "tcp"},
-{"hp-managed-node", {NULL}, 382, "udp"},
-{"hp-alarm-mgr", {NULL}, 383, "tcp"},
-{"hp-alarm-mgr", {NULL}, 383, "udp"},
-{"arns", {NULL}, 384, "tcp"},
-{"arns", {NULL}, 384, "udp"},
-{"ibm-app", {NULL}, 385, "tcp"},
-{"ibm-app", {NULL}, 385, "udp"},
-{"asa", {NULL}, 386, "tcp"},
-{"asa", {NULL}, 386, "udp"},
-{"aurp", {NULL}, 387, "tcp"},
-{"aurp", {NULL}, 387, "udp"},
-{"unidata-ldm", {NULL}, 388, "tcp"},
-{"unidata-ldm", {NULL}, 388, "udp"},
-{"ldap", {NULL}, 389, "tcp"},
-{"ldap", {NULL}, 389, "udp"},
-{"uis", {NULL}, 390, "tcp"},
-{"uis", {NULL}, 390, "udp"},
-{"synotics-relay", {NULL}, 391, "tcp"},
-{"synotics-relay", {NULL}, 391, "udp"},
-{"synotics-broker", {NULL}, 392, "tcp"},
-{"synotics-broker", {NULL}, 392, "udp"},
-{"meta5", {NULL}, 393, "tcp"},
-{"meta5", {NULL}, 393, "udp"},
-{"embl-ndt", {NULL}, 394, "tcp"},
-{"embl-ndt", {NULL}, 394, "udp"},
-{"netcp", {NULL}, 395, "tcp"},
-{"netcp", {NULL}, 395, "udp"},
-{"netware-ip", {NULL}, 396, "tcp"},
-{"netware-ip", {NULL}, 396, "udp"},
-{"mptn", {NULL}, 397, "tcp"},
-{"mptn", {NULL}, 397, "udp"},
-{"kryptolan", {NULL}, 398, "tcp"},
-{"kryptolan", {NULL}, 398, "udp"},
-{"iso-tsap-c2", {NULL}, 399, "tcp"},
-{"iso-tsap-c2", {NULL}, 399, "udp"},
-{"osb-sd", {NULL}, 400, "tcp"},
-{"osb-sd", {NULL}, 400, "udp"},
-{"ups", {NULL}, 401, "tcp"},
-{"ups", {NULL}, 401, "udp"},
-{"genie", {NULL}, 402, "tcp"},
-{"genie", {NULL}, 402, "udp"},
-{"decap", {NULL}, 403, "tcp"},
-{"decap", {NULL}, 403, "udp"},
-{"nced", {NULL}, 404, "tcp"},
-{"nced", {NULL}, 404, "udp"},
-{"ncld", {NULL}, 405, "tcp"},
-{"ncld", {NULL}, 405, "udp"},
-{"imsp", {NULL}, 406, "tcp"},
-{"imsp", {NULL}, 406, "udp"},
-{"timbuktu", {NULL}, 407, "tcp"},
-{"timbuktu", {NULL}, 407, "udp"},
-{"prm-sm", {NULL}, 408, "tcp"},
-{"prm-sm", {NULL}, 408, "udp"},
-{"prm-nm", {NULL}, 409, "tcp"},
-{"prm-nm", {NULL}, 409, "udp"},
-{"decladebug", {NULL}, 410, "tcp"},
-{"decladebug", {NULL}, 410, "udp"},
-{"rmt", {NULL}, 411, "tcp"},
-{"rmt", {NULL}, 411, "udp"},
-{"synoptics-trap", {NULL}, 412, "tcp"},
-{"synoptics-trap", {NULL}, 412, "udp"},
-{"smsp", {NULL}, 413, "tcp"},
-{"smsp", {NULL}, 413, "udp"},
-{"infoseek", {NULL}, 414, "tcp"},
-{"infoseek", {NULL}, 414, "udp"},
-{"bnet", {NULL}, 415, "tcp"},
-{"bnet", {NULL}, 415, "udp"},
-{"silverplatter", {NULL}, 416, "tcp"},
-{"silverplatter", {NULL}, 416, "udp"},
-{"onmux", {NULL}, 417, "tcp"},
-{"onmux", {NULL}, 417, "udp"},
-{"hyper-g", {NULL}, 418, "tcp"},
-{"hyper-g", {NULL}, 418, "udp"},
-{"ariel1", {NULL}, 419, "tcp"},
-{"ariel1", {NULL}, 419, "udp"},
-{"smpte", {NULL}, 420, "tcp"},
-{"smpte", {NULL}, 420, "udp"},
-{"ariel2", {NULL}, 421, "tcp"},
-{"ariel2", {NULL}, 421, "udp"},
-{"ariel3", {NULL}, 422, "tcp"},
-{"ariel3", {NULL}, 422, "udp"},
-{"opc-job-start", {NULL}, 423, "tcp"},
-{"opc-job-start", {NULL}, 423, "udp"},
-{"opc-job-track", {NULL}, 424, "tcp"},
-{"opc-job-track", {NULL}, 424, "udp"},
-{"icad-el", {NULL}, 425, "tcp"},
-{"icad-el", {NULL}, 425, "udp"},
-{"smartsdp", {NULL}, 426, "tcp"},
-{"smartsdp", {NULL}, 426, "udp"},
-{"svrloc", {NULL}, 427, "tcp"},
-{"svrloc", {NULL}, 427, "udp"},
-{"ocs_cmu", {NULL}, 428, "tcp"},
-{"ocs_cmu", {NULL}, 428, "udp"},
-{"ocs_amu", {NULL}, 429, "tcp"},
-{"ocs_amu", {NULL}, 429, "udp"},
-{"utmpsd", {NULL}, 430, "tcp"},
-{"utmpsd", {NULL}, 430, "udp"},
-{"utmpcd", {NULL}, 431, "tcp"},
-{"utmpcd", {NULL}, 431, "udp"},
-{"iasd", {NULL}, 432, "tcp"},
-{"iasd", {NULL}, 432, "udp"},
-{"nnsp", {NULL}, 433, "tcp"},
-{"nnsp", {NULL}, 433, "udp"},
-{"mobileip-agent", {NULL}, 434, "tcp"},
-{"mobileip-agent", {NULL}, 434, "udp"},
-{"mobilip-mn", {NULL}, 435, "tcp"},
-{"mobilip-mn", {NULL}, 435, "udp"},
-{"dna-cml", {NULL}, 436, "tcp"},
-{"dna-cml", {NULL}, 436, "udp"},
-{"comscm", {NULL}, 437, "tcp"},
-{"comscm", {NULL}, 437, "udp"},
-{"dsfgw", {NULL}, 438, "tcp"},
-{"dsfgw", {NULL}, 438, "udp"},
-{"dasp", {NULL}, 439, "tcp"},
-{"dasp", {NULL}, 439, "udp"},
-{"sgcp", {NULL}, 440, "tcp"},
-{"sgcp", {NULL}, 440, "udp"},
-{"decvms-sysmgt", {NULL}, 441, "tcp"},
-{"decvms-sysmgt", {NULL}, 441, "udp"},
-{"cvc_hostd", {NULL}, 442, "tcp"},
-{"cvc_hostd", {NULL}, 442, "udp"},
-{"https", {NULL}, 443, "tcp"},
-{"https", {NULL}, 443, "udp"},
-{"https", {NULL}, 443, "sctp"},
-{"snpp", {NULL}, 444, "tcp"},
-{"snpp", {NULL}, 444, "udp"},
-{"microsoft-ds", {NULL}, 445, "tcp"},
-{"microsoft-ds", {NULL}, 445, "udp"},
-{"ddm-rdb", {NULL}, 446, "tcp"},
-{"ddm-rdb", {NULL}, 446, "udp"},
-{"ddm-dfm", {NULL}, 447, "tcp"},
-{"ddm-dfm", {NULL}, 447, "udp"},
-{"ddm-ssl", {NULL}, 448, "tcp"},
-{"ddm-ssl", {NULL}, 448, "udp"},
-{"as-servermap", {NULL}, 449, "tcp"},
-{"as-servermap", {NULL}, 449, "udp"},
-{"tserver", {NULL}, 450, "tcp"},
-{"tserver", {NULL}, 450, "udp"},
-{"sfs-smp-net", {NULL}, 451, "tcp"},
-{"sfs-smp-net", {NULL}, 451, "udp"},
-{"sfs-config", {NULL}, 452, "tcp"},
-{"sfs-config", {NULL}, 452, "udp"},
-{"creativeserver", {NULL}, 453, "tcp"},
-{"creativeserver", {NULL}, 453, "udp"},
-{"contentserver", {NULL}, 454, "tcp"},
-{"contentserver", {NULL}, 454, "udp"},
-{"creativepartnr", {NULL}, 455, "tcp"},
-{"creativepartnr", {NULL}, 455, "udp"},
-{"macon-tcp", {NULL}, 456, "tcp"},
-{"macon-udp", {NULL}, 456, "udp"},
-{"scohelp", {NULL}, 457, "tcp"},
-{"scohelp", {NULL}, 457, "udp"},
-{"appleqtc", {NULL}, 458, "tcp"},
-{"appleqtc", {NULL}, 458, "udp"},
-{"ampr-rcmd", {NULL}, 459, "tcp"},
-{"ampr-rcmd", {NULL}, 459, "udp"},
-{"skronk", {NULL}, 460, "tcp"},
-{"skronk", {NULL}, 460, "udp"},
-{"datasurfsrv", {NULL}, 461, "tcp"},
-{"datasurfsrv", {NULL}, 461, "udp"},
-{"datasurfsrvsec", {NULL}, 462, "tcp"},
-{"datasurfsrvsec", {NULL}, 462, "udp"},
-{"alpes", {NULL}, 463, "tcp"},
-{"alpes", {NULL}, 463, "udp"},
-{"kpasswd", {NULL}, 464, "tcp"},
-{"kpasswd", {NULL}, 464, "udp"},
-{"urd", {NULL}, 465, "tcp"},
-{"igmpv3lite", {NULL}, 465, "udp"},
-{"digital-vrc", {NULL}, 466, "tcp"},
-{"digital-vrc", {NULL}, 466, "udp"},
-{"mylex-mapd", {NULL}, 467, "tcp"},
-{"mylex-mapd", {NULL}, 467, "udp"},
-{"photuris", {NULL}, 468, "tcp"},
-{"photuris", {NULL}, 468, "udp"},
-{"rcp", {NULL}, 469, "tcp"},
-{"rcp", {NULL}, 469, "udp"},
-{"scx-proxy", {NULL}, 470, "tcp"},
-{"scx-proxy", {NULL}, 470, "udp"},
-{"mondex", {NULL}, 471, "tcp"},
-{"mondex", {NULL}, 471, "udp"},
-{"ljk-login", {NULL}, 472, "tcp"},
-{"ljk-login", {NULL}, 472, "udp"},
-{"hybrid-pop", {NULL}, 473, "tcp"},
-{"hybrid-pop", {NULL}, 473, "udp"},
-{"tn-tl-w1", {NULL}, 474, "tcp"},
-{"tn-tl-w2", {NULL}, 474, "udp"},
-{"tcpnethaspsrv", {NULL}, 475, "tcp"},
-{"tcpnethaspsrv", {NULL}, 475, "udp"},
-{"tn-tl-fd1", {NULL}, 476, "tcp"},
-{"tn-tl-fd1", {NULL}, 476, "udp"},
-{"ss7ns", {NULL}, 477, "tcp"},
-{"ss7ns", {NULL}, 477, "udp"},
-{"spsc", {NULL}, 478, "tcp"},
-{"spsc", {NULL}, 478, "udp"},
-{"iafserver", {NULL}, 479, "tcp"},
-{"iafserver", {NULL}, 479, "udp"},
-{"iafdbase", {NULL}, 480, "tcp"},
-{"iafdbase", {NULL}, 480, "udp"},
-{"ph", {NULL}, 481, "tcp"},
-{"ph", {NULL}, 481, "udp"},
-{"bgs-nsi", {NULL}, 482, "tcp"},
-{"bgs-nsi", {NULL}, 482, "udp"},
-{"ulpnet", {NULL}, 483, "tcp"},
-{"ulpnet", {NULL}, 483, "udp"},
-{"integra-sme", {NULL}, 484, "tcp"},
-{"integra-sme", {NULL}, 484, "udp"},
-{"powerburst", {NULL}, 485, "tcp"},
-{"powerburst", {NULL}, 485, "udp"},
-{"avian", {NULL}, 486, "tcp"},
-{"avian", {NULL}, 486, "udp"},
-{"saft", {NULL}, 487, "tcp"},
-{"saft", {NULL}, 487, "udp"},
-{"gss-http", {NULL}, 488, "tcp"},
-{"gss-http", {NULL}, 488, "udp"},
-{"nest-protocol", {NULL}, 489, "tcp"},
-{"nest-protocol", {NULL}, 489, "udp"},
-{"micom-pfs", {NULL}, 490, "tcp"},
-{"micom-pfs", {NULL}, 490, "udp"},
-{"go-login", {NULL}, 491, "tcp"},
-{"go-login", {NULL}, 491, "udp"},
-{"ticf-1", {NULL}, 492, "tcp"},
-{"ticf-1", {NULL}, 492, "udp"},
-{"ticf-2", {NULL}, 493, "tcp"},
-{"ticf-2", {NULL}, 493, "udp"},
-{"pov-ray", {NULL}, 494, "tcp"},
-{"pov-ray", {NULL}, 494, "udp"},
-{"intecourier", {NULL}, 495, "tcp"},
-{"intecourier", {NULL}, 495, "udp"},
-{"pim-rp-disc", {NULL}, 496, "tcp"},
-{"pim-rp-disc", {NULL}, 496, "udp"},
-{"dantz", {NULL}, 497, "tcp"},
-{"dantz", {NULL}, 497, "udp"},
-{"siam", {NULL}, 498, "tcp"},
-{"siam", {NULL}, 498, "udp"},
-{"iso-ill", {NULL}, 499, "tcp"},
-{"iso-ill", {NULL}, 499, "udp"},
-{"isakmp", {NULL}, 500, "tcp"},
-{"isakmp", {NULL}, 500, "udp"},
-{"stmf", {NULL}, 501, "tcp"},
-{"stmf", {NULL}, 501, "udp"},
-{"asa-appl-proto", {NULL}, 502, "tcp"},
-{"asa-appl-proto", {NULL}, 502, "udp"},
-{"intrinsa", {NULL}, 503, "tcp"},
-{"intrinsa", {NULL}, 503, "udp"},
-{"citadel", {NULL}, 504, "tcp"},
-{"citadel", {NULL}, 504, "udp"},
-{"mailbox-lm", {NULL}, 505, "tcp"},
-{"mailbox-lm", {NULL}, 505, "udp"},
-{"ohimsrv", {NULL}, 506, "tcp"},
-{"ohimsrv", {NULL}, 506, "udp"},
-{"crs", {NULL}, 507, "tcp"},
-{"crs", {NULL}, 507, "udp"},
-{"xvttp", {NULL}, 508, "tcp"},
-{"xvttp", {NULL}, 508, "udp"},
-{"snare", {NULL}, 509, "tcp"},
-{"snare", {NULL}, 509, "udp"},
-{"fcp", {NULL}, 510, "tcp"},
-{"fcp", {NULL}, 510, "udp"},
-{"passgo", {NULL}, 511, "tcp"},
-{"passgo", {NULL}, 511, "udp"},
-{"exec", {NULL}, 512, "tcp"},
-{"comsat", {NULL}, 512, "udp"},
-{"biff", {NULL}, 512, "udp"},
-{"login", {NULL}, 513, "tcp"},
-{"who", {NULL}, 513, "udp"},
-{"shell", {NULL}, 514, "tcp"},
-{"syslog", {NULL}, 514, "udp"},
-{"printer", {NULL}, 515, "tcp"},
-{"printer", {NULL}, 515, "udp"},
-{"videotex", {NULL}, 516, "tcp"},
-{"videotex", {NULL}, 516, "udp"},
-{"talk", {NULL}, 517, "tcp"},
-{"talk", {NULL}, 517, "udp"},
-{"ntalk", {NULL}, 518, "tcp"},
-{"ntalk", {NULL}, 518, "udp"},
-{"utime", {NULL}, 519, "tcp"},
-{"utime", {NULL}, 519, "udp"},
-{"efs", {NULL}, 520, "tcp"},
-{"router", {NULL}, 520, "udp"},
-{"ripng", {NULL}, 521, "tcp"},
-{"ripng", {NULL}, 521, "udp"},
-{"ulp", {NULL}, 522, "tcp"},
-{"ulp", {NULL}, 522, "udp"},
-{"ibm-db2", {NULL}, 523, "tcp"},
-{"ibm-db2", {NULL}, 523, "udp"},
-{"ncp", {NULL}, 524, "tcp"},
-{"ncp", {NULL}, 524, "udp"},
-{"timed", {NULL}, 525, "tcp"},
-{"timed", {NULL}, 525, "udp"},
-{"tempo", {NULL}, 526, "tcp"},
-{"tempo", {NULL}, 526, "udp"},
-{"stx", {NULL}, 527, "tcp"},
-{"stx", {NULL}, 527, "udp"},
-{"custix", {NULL}, 528, "tcp"},
-{"custix", {NULL}, 528, "udp"},
-{"irc-serv", {NULL}, 529, "tcp"},
-{"irc-serv", {NULL}, 529, "udp"},
-{"courier", {NULL}, 530, "tcp"},
-{"courier", {NULL}, 530, "udp"},
-{"conference", {NULL}, 531, "tcp"},
-{"conference", {NULL}, 531, "udp"},
-{"netnews", {NULL}, 532, "tcp"},
-{"netnews", {NULL}, 532, "udp"},
-{"netwall", {NULL}, 533, "tcp"},
-{"netwall", {NULL}, 533, "udp"},
-{"windream", {NULL}, 534, "tcp"},
-{"windream", {NULL}, 534, "udp"},
-{"iiop", {NULL}, 535, "tcp"},
-{"iiop", {NULL}, 535, "udp"},
-{"opalis-rdv", {NULL}, 536, "tcp"},
-{"opalis-rdv", {NULL}, 536, "udp"},
-{"nmsp", {NULL}, 537, "tcp"},
-{"nmsp", {NULL}, 537, "udp"},
-{"gdomap", {NULL}, 538, "tcp"},
-{"gdomap", {NULL}, 538, "udp"},
-{"apertus-ldp", {NULL}, 539, "tcp"},
-{"apertus-ldp", {NULL}, 539, "udp"},
-{"uucp", {NULL}, 540, "tcp"},
-{"uucp", {NULL}, 540, "udp"},
-{"uucp-rlogin", {NULL}, 541, "tcp"},
-{"uucp-rlogin", {NULL}, 541, "udp"},
-{"commerce", {NULL}, 542, "tcp"},
-{"commerce", {NULL}, 542, "udp"},
-{"klogin", {NULL}, 543, "tcp"},
-{"klogin", {NULL}, 543, "udp"},
-{"kshell", {NULL}, 544, "tcp"},
-{"kshell", {NULL}, 544, "udp"},
-{"appleqtcsrvr", {NULL}, 545, "tcp"},
-{"appleqtcsrvr", {NULL}, 545, "udp"},
-{"dhcpv6-client", {NULL}, 546, "tcp"},
-{"dhcpv6-client", {NULL}, 546, "udp"},
-{"dhcpv6-server", {NULL}, 547, "tcp"},
-{"dhcpv6-server", {NULL}, 547, "udp"},
-{"afpovertcp", {NULL}, 548, "tcp"},
-{"afpovertcp", {NULL}, 548, "udp"},
-{"idfp", {NULL}, 549, "tcp"},
-{"idfp", {NULL}, 549, "udp"},
-{"new-rwho", {NULL}, 550, "tcp"},
-{"new-rwho", {NULL}, 550, "udp"},
-{"cybercash", {NULL}, 551, "tcp"},
-{"cybercash", {NULL}, 551, "udp"},
-{"devshr-nts", {NULL}, 552, "tcp"},
-{"devshr-nts", {NULL}, 552, "udp"},
-{"pirp", {NULL}, 553, "tcp"},
-{"pirp", {NULL}, 553, "udp"},
-{"rtsp", {NULL}, 554, "tcp"},
-{"rtsp", {NULL}, 554, "udp"},
-{"dsf", {NULL}, 555, "tcp"},
-{"dsf", {NULL}, 555, "udp"},
-{"remotefs", {NULL}, 556, "tcp"},
-{"remotefs", {NULL}, 556, "udp"},
-{"openvms-sysipc", {NULL}, 557, "tcp"},
-{"openvms-sysipc", {NULL}, 557, "udp"},
-{"sdnskmp", {NULL}, 558, "tcp"},
-{"sdnskmp", {NULL}, 558, "udp"},
-{"teedtap", {NULL}, 559, "tcp"},
-{"teedtap", {NULL}, 559, "udp"},
-{"rmonitor", {NULL}, 560, "tcp"},
-{"rmonitor", {NULL}, 560, "udp"},
-{"monitor", {NULL}, 561, "tcp"},
-{"monitor", {NULL}, 561, "udp"},
-{"chshell", {NULL}, 562, "tcp"},
-{"chshell", {NULL}, 562, "udp"},
-{"nntps", {NULL}, 563, "tcp"},
-{"nntps", {NULL}, 563, "udp"},
-{"9pfs", {NULL}, 564, "tcp"},
-{"9pfs", {NULL}, 564, "udp"},
-{"whoami", {NULL}, 565, "tcp"},
-{"whoami", {NULL}, 565, "udp"},
-{"streettalk", {NULL}, 566, "tcp"},
-{"streettalk", {NULL}, 566, "udp"},
-{"banyan-rpc", {NULL}, 567, "tcp"},
-{"banyan-rpc", {NULL}, 567, "udp"},
-{"ms-shuttle", {NULL}, 568, "tcp"},
-{"ms-shuttle", {NULL}, 568, "udp"},
-{"ms-rome", {NULL}, 569, "tcp"},
-{"ms-rome", {NULL}, 569, "udp"},
-{"meter", {NULL}, 570, "tcp"},
-{"meter", {NULL}, 570, "udp"},
-{"meter", {NULL}, 571, "tcp"},
-{"meter", {NULL}, 571, "udp"},
-{"sonar", {NULL}, 572, "tcp"},
-{"sonar", {NULL}, 572, "udp"},
-{"banyan-vip", {NULL}, 573, "tcp"},
-{"banyan-vip", {NULL}, 573, "udp"},
-{"ftp-agent", {NULL}, 574, "tcp"},
-{"ftp-agent", {NULL}, 574, "udp"},
-{"vemmi", {NULL}, 575, "tcp"},
-{"vemmi", {NULL}, 575, "udp"},
-{"ipcd", {NULL}, 576, "tcp"},
-{"ipcd", {NULL}, 576, "udp"},
-{"vnas", {NULL}, 577, "tcp"},
-{"vnas", {NULL}, 577, "udp"},
-{"ipdd", {NULL}, 578, "tcp"},
-{"ipdd", {NULL}, 578, "udp"},
-{"decbsrv", {NULL}, 579, "tcp"},
-{"decbsrv", {NULL}, 579, "udp"},
-{"sntp-heartbeat", {NULL}, 580, "tcp"},
-{"sntp-heartbeat", {NULL}, 580, "udp"},
-{"bdp", {NULL}, 581, "tcp"},
-{"bdp", {NULL}, 581, "udp"},
-{"scc-security", {NULL}, 582, "tcp"},
-{"scc-security", {NULL}, 582, "udp"},
-{"philips-vc", {NULL}, 583, "tcp"},
-{"philips-vc", {NULL}, 583, "udp"},
-{"keyserver", {NULL}, 584, "tcp"},
-{"keyserver", {NULL}, 584, "udp"},
-{"password-chg", {NULL}, 586, "tcp"},
-{"password-chg", {NULL}, 586, "udp"},
-{"submission", {NULL}, 587, "tcp"},
-{"submission", {NULL}, 587, "udp"},
-{"cal", {NULL}, 588, "tcp"},
-{"cal", {NULL}, 588, "udp"},
-{"eyelink", {NULL}, 589, "tcp"},
-{"eyelink", {NULL}, 589, "udp"},
-{"tns-cml", {NULL}, 590, "tcp"},
-{"tns-cml", {NULL}, 590, "udp"},
-{"http-alt", {NULL}, 591, "tcp"},
-{"http-alt", {NULL}, 591, "udp"},
-{"eudora-set", {NULL}, 592, "tcp"},
-{"eudora-set", {NULL}, 592, "udp"},
-{"http-rpc-epmap", {NULL}, 593, "tcp"},
-{"http-rpc-epmap", {NULL}, 593, "udp"},
-{"tpip", {NULL}, 594, "tcp"},
-{"tpip", {NULL}, 594, "udp"},
-{"cab-protocol", {NULL}, 595, "tcp"},
-{"cab-protocol", {NULL}, 595, "udp"},
-{"smsd", {NULL}, 596, "tcp"},
-{"smsd", {NULL}, 596, "udp"},
-{"ptcnameservice", {NULL}, 597, "tcp"},
-{"ptcnameservice", {NULL}, 597, "udp"},
-{"sco-websrvrmg3", {NULL}, 598, "tcp"},
-{"sco-websrvrmg3", {NULL}, 598, "udp"},
-{"acp", {NULL}, 599, "tcp"},
-{"acp", {NULL}, 599, "udp"},
-{"ipcserver", {NULL}, 600, "tcp"},
-{"ipcserver", {NULL}, 600, "udp"},
-{"syslog-conn", {NULL}, 601, "tcp"},
-{"syslog-conn", {NULL}, 601, "udp"},
-{"xmlrpc-beep", {NULL}, 602, "tcp"},
-{"xmlrpc-beep", {NULL}, 602, "udp"},
-{"idxp", {NULL}, 603, "tcp"},
-{"idxp", {NULL}, 603, "udp"},
-{"tunnel", {NULL}, 604, "tcp"},
-{"tunnel", {NULL}, 604, "udp"},
-{"soap-beep", {NULL}, 605, "tcp"},
-{"soap-beep", {NULL}, 605, "udp"},
-{"urm", {NULL}, 606, "tcp"},
-{"urm", {NULL}, 606, "udp"},
-{"nqs", {NULL}, 607, "tcp"},
-{"nqs", {NULL}, 607, "udp"},
-{"sift-uft", {NULL}, 608, "tcp"},
-{"sift-uft", {NULL}, 608, "udp"},
-{"npmp-trap", {NULL}, 609, "tcp"},
-{"npmp-trap", {NULL}, 609, "udp"},
-{"npmp-local", {NULL}, 610, "tcp"},
-{"npmp-local", {NULL}, 610, "udp"},
-{"npmp-gui", {NULL}, 611, "tcp"},
-{"npmp-gui", {NULL}, 611, "udp"},
-{"hmmp-ind", {NULL}, 612, "tcp"},
-{"hmmp-ind", {NULL}, 612, "udp"},
-{"hmmp-op", {NULL}, 613, "tcp"},
-{"hmmp-op", {NULL}, 613, "udp"},
-{"sshell", {NULL}, 614, "tcp"},
-{"sshell", {NULL}, 614, "udp"},
-{"sco-inetmgr", {NULL}, 615, "tcp"},
-{"sco-inetmgr", {NULL}, 615, "udp"},
-{"sco-sysmgr", {NULL}, 616, "tcp"},
-{"sco-sysmgr", {NULL}, 616, "udp"},
-{"sco-dtmgr", {NULL}, 617, "tcp"},
-{"sco-dtmgr", {NULL}, 617, "udp"},
-{"dei-icda", {NULL}, 618, "tcp"},
-{"dei-icda", {NULL}, 618, "udp"},
-{"compaq-evm", {NULL}, 619, "tcp"},
-{"compaq-evm", {NULL}, 619, "udp"},
-{"sco-websrvrmgr", {NULL}, 620, "tcp"},
-{"sco-websrvrmgr", {NULL}, 620, "udp"},
-{"escp-ip", {NULL}, 621, "tcp"},
-{"escp-ip", {NULL}, 621, "udp"},
-{"collaborator", {NULL}, 622, "tcp"},
-{"collaborator", {NULL}, 622, "udp"},
-{"oob-ws-http", {NULL}, 623, "tcp"},
-{"asf-rmcp", {NULL}, 623, "udp"},
-{"cryptoadmin", {NULL}, 624, "tcp"},
-{"cryptoadmin", {NULL}, 624, "udp"},
-{"dec_dlm", {NULL}, 625, "tcp"},
-{"dec_dlm", {NULL}, 625, "udp"},
-{"asia", {NULL}, 626, "tcp"},
-{"asia", {NULL}, 626, "udp"},
-{"passgo-tivoli", {NULL}, 627, "tcp"},
-{"passgo-tivoli", {NULL}, 627, "udp"},
-{"qmqp", {NULL}, 628, "tcp"},
-{"qmqp", {NULL}, 628, "udp"},
-{"3com-amp3", {NULL}, 629, "tcp"},
-{"3com-amp3", {NULL}, 629, "udp"},
-{"rda", {NULL}, 630, "tcp"},
-{"rda", {NULL}, 630, "udp"},
-{"ipp", {NULL}, 631, "tcp"},
-{"ipp", {NULL}, 631, "udp"},
-{"bmpp", {NULL}, 632, "tcp"},
-{"bmpp", {NULL}, 632, "udp"},
-{"servstat", {NULL}, 633, "tcp"},
-{"servstat", {NULL}, 633, "udp"},
-{"ginad", {NULL}, 634, "tcp"},
-{"ginad", {NULL}, 634, "udp"},
-{"rlzdbase", {NULL}, 635, "tcp"},
-{"rlzdbase", {NULL}, 635, "udp"},
-{"ldaps", {NULL}, 636, "tcp"},
-{"ldaps", {NULL}, 636, "udp"},
-{"lanserver", {NULL}, 637, "tcp"},
-{"lanserver", {NULL}, 637, "udp"},
-{"mcns-sec", {NULL}, 638, "tcp"},
-{"mcns-sec", {NULL}, 638, "udp"},
-{"msdp", {NULL}, 639, "tcp"},
-{"msdp", {NULL}, 639, "udp"},
-{"entrust-sps", {NULL}, 640, "tcp"},
-{"entrust-sps", {NULL}, 640, "udp"},
-{"repcmd", {NULL}, 641, "tcp"},
-{"repcmd", {NULL}, 641, "udp"},
-{"esro-emsdp", {NULL}, 642, "tcp"},
-{"esro-emsdp", {NULL}, 642, "udp"},
-{"sanity", {NULL}, 643, "tcp"},
-{"sanity", {NULL}, 643, "udp"},
-{"dwr", {NULL}, 644, "tcp"},
-{"dwr", {NULL}, 644, "udp"},
-{"pssc", {NULL}, 645, "tcp"},
-{"pssc", {NULL}, 645, "udp"},
-{"ldp", {NULL}, 646, "tcp"},
-{"ldp", {NULL}, 646, "udp"},
-{"dhcp-failover", {NULL}, 647, "tcp"},
-{"dhcp-failover", {NULL}, 647, "udp"},
-{"rrp", {NULL}, 648, "tcp"},
-{"rrp", {NULL}, 648, "udp"},
-{"cadview-3d", {NULL}, 649, "tcp"},
-{"cadview-3d", {NULL}, 649, "udp"},
-{"obex", {NULL}, 650, "tcp"},
-{"obex", {NULL}, 650, "udp"},
-{"ieee-mms", {NULL}, 651, "tcp"},
-{"ieee-mms", {NULL}, 651, "udp"},
-{"hello-port", {NULL}, 652, "tcp"},
-{"hello-port", {NULL}, 652, "udp"},
-{"repscmd", {NULL}, 653, "tcp"},
-{"repscmd", {NULL}, 653, "udp"},
-{"aodv", {NULL}, 654, "tcp"},
-{"aodv", {NULL}, 654, "udp"},
-{"tinc", {NULL}, 655, "tcp"},
-{"tinc", {NULL}, 655, "udp"},
-{"spmp", {NULL}, 656, "tcp"},
-{"spmp", {NULL}, 656, "udp"},
-{"rmc", {NULL}, 657, "tcp"},
-{"rmc", {NULL}, 657, "udp"},
-{"tenfold", {NULL}, 658, "tcp"},
-{"tenfold", {NULL}, 658, "udp"},
-{"mac-srvr-admin", {NULL}, 660, "tcp"},
-{"mac-srvr-admin", {NULL}, 660, "udp"},
-{"hap", {NULL}, 661, "tcp"},
-{"hap", {NULL}, 661, "udp"},
-{"pftp", {NULL}, 662, "tcp"},
-{"pftp", {NULL}, 662, "udp"},
-{"purenoise", {NULL}, 663, "tcp"},
-{"purenoise", {NULL}, 663, "udp"},
-{"oob-ws-https", {NULL}, 664, "tcp"},
-{"asf-secure-rmcp", {NULL}, 664, "udp"},
-{"sun-dr", {NULL}, 665, "tcp"},
-{"sun-dr", {NULL}, 665, "udp"},
-{"mdqs", {NULL}, 666, "tcp"},
-{"mdqs", {NULL}, 666, "udp"},
-{"doom", {NULL}, 666, "tcp"},
-{"doom", {NULL}, 666, "udp"},
-{"disclose", {NULL}, 667, "tcp"},
-{"disclose", {NULL}, 667, "udp"},
-{"mecomm", {NULL}, 668, "tcp"},
-{"mecomm", {NULL}, 668, "udp"},
-{"meregister", {NULL}, 669, "tcp"},
-{"meregister", {NULL}, 669, "udp"},
-{"vacdsm-sws", {NULL}, 670, "tcp"},
-{"vacdsm-sws", {NULL}, 670, "udp"},
-{"vacdsm-app", {NULL}, 671, "tcp"},
-{"vacdsm-app", {NULL}, 671, "udp"},
-{"vpps-qua", {NULL}, 672, "tcp"},
-{"vpps-qua", {NULL}, 672, "udp"},
-{"cimplex", {NULL}, 673, "tcp"},
-{"cimplex", {NULL}, 673, "udp"},
-{"acap", {NULL}, 674, "tcp"},
-{"acap", {NULL}, 674, "udp"},
-{"dctp", {NULL}, 675, "tcp"},
-{"dctp", {NULL}, 675, "udp"},
-{"vpps-via", {NULL}, 676, "tcp"},
-{"vpps-via", {NULL}, 676, "udp"},
-{"vpp", {NULL}, 677, "tcp"},
-{"vpp", {NULL}, 677, "udp"},
-{"ggf-ncp", {NULL}, 678, "tcp"},
-{"ggf-ncp", {NULL}, 678, "udp"},
-{"mrm", {NULL}, 679, "tcp"},
-{"mrm", {NULL}, 679, "udp"},
-{"entrust-aaas", {NULL}, 680, "tcp"},
-{"entrust-aaas", {NULL}, 680, "udp"},
-{"entrust-aams", {NULL}, 681, "tcp"},
-{"entrust-aams", {NULL}, 681, "udp"},
-{"xfr", {NULL}, 682, "tcp"},
-{"xfr", {NULL}, 682, "udp"},
-{"corba-iiop", {NULL}, 683, "tcp"},
-{"corba-iiop", {NULL}, 683, "udp"},
-{"corba-iiop-ssl", {NULL}, 684, "tcp"},
-{"corba-iiop-ssl", {NULL}, 684, "udp"},
-{"mdc-portmapper", {NULL}, 685, "tcp"},
-{"mdc-portmapper", {NULL}, 685, "udp"},
-{"hcp-wismar", {NULL}, 686, "tcp"},
-{"hcp-wismar", {NULL}, 686, "udp"},
-{"asipregistry", {NULL}, 687, "tcp"},
-{"asipregistry", {NULL}, 687, "udp"},
-{"realm-rusd", {NULL}, 688, "tcp"},
-{"realm-rusd", {NULL}, 688, "udp"},
-{"nmap", {NULL}, 689, "tcp"},
-{"nmap", {NULL}, 689, "udp"},
-{"vatp", {NULL}, 690, "tcp"},
-{"vatp", {NULL}, 690, "udp"},
-{"msexch-routing", {NULL}, 691, "tcp"},
-{"msexch-routing", {NULL}, 691, "udp"},
-{"hyperwave-isp", {NULL}, 692, "tcp"},
-{"hyperwave-isp", {NULL}, 692, "udp"},
-{"connendp", {NULL}, 693, "tcp"},
-{"connendp", {NULL}, 693, "udp"},
-{"ha-cluster", {NULL}, 694, "tcp"},
-{"ha-cluster", {NULL}, 694, "udp"},
-{"ieee-mms-ssl", {NULL}, 695, "tcp"},
-{"ieee-mms-ssl", {NULL}, 695, "udp"},
-{"rushd", {NULL}, 696, "tcp"},
-{"rushd", {NULL}, 696, "udp"},
-{"uuidgen", {NULL}, 697, "tcp"},
-{"uuidgen", {NULL}, 697, "udp"},
-{"olsr", {NULL}, 698, "tcp"},
-{"olsr", {NULL}, 698, "udp"},
-{"accessnetwork", {NULL}, 699, "tcp"},
-{"accessnetwork", {NULL}, 699, "udp"},
-{"epp", {NULL}, 700, "tcp"},
-{"epp", {NULL}, 700, "udp"},
-{"lmp", {NULL}, 701, "tcp"},
-{"lmp", {NULL}, 701, "udp"},
-{"iris-beep", {NULL}, 702, "tcp"},
-{"iris-beep", {NULL}, 702, "udp"},
-{"elcsd", {NULL}, 704, "tcp"},
-{"elcsd", {NULL}, 704, "udp"},
-{"agentx", {NULL}, 705, "tcp"},
-{"agentx", {NULL}, 705, "udp"},
-{"silc", {NULL}, 706, "tcp"},
-{"silc", {NULL}, 706, "udp"},
-{"borland-dsj", {NULL}, 707, "tcp"},
-{"borland-dsj", {NULL}, 707, "udp"},
-{"entrust-kmsh", {NULL}, 709, "tcp"},
-{"entrust-kmsh", {NULL}, 709, "udp"},
-{"entrust-ash", {NULL}, 710, "tcp"},
-{"entrust-ash", {NULL}, 710, "udp"},
-{"cisco-tdp", {NULL}, 711, "tcp"},
-{"cisco-tdp", {NULL}, 711, "udp"},
-{"tbrpf", {NULL}, 712, "tcp"},
-{"tbrpf", {NULL}, 712, "udp"},
-{"iris-xpc", {NULL}, 713, "tcp"},
-{"iris-xpc", {NULL}, 713, "udp"},
-{"iris-xpcs", {NULL}, 714, "tcp"},
-{"iris-xpcs", {NULL}, 714, "udp"},
-{"iris-lwz", {NULL}, 715, "tcp"},
-{"iris-lwz", {NULL}, 715, "udp"},
-{"pana", {NULL}, 716, "udp"},
-{"netviewdm1", {NULL}, 729, "tcp"},
-{"netviewdm1", {NULL}, 729, "udp"},
-{"netviewdm2", {NULL}, 730, "tcp"},
-{"netviewdm2", {NULL}, 730, "udp"},
-{"netviewdm3", {NULL}, 731, "tcp"},
-{"netviewdm3", {NULL}, 731, "udp"},
-{"netgw", {NULL}, 741, "tcp"},
-{"netgw", {NULL}, 741, "udp"},
-{"netrcs", {NULL}, 742, "tcp"},
-{"netrcs", {NULL}, 742, "udp"},
-{"flexlm", {NULL}, 744, "tcp"},
-{"flexlm", {NULL}, 744, "udp"},
-{"fujitsu-dev", {NULL}, 747, "tcp"},
-{"fujitsu-dev", {NULL}, 747, "udp"},
-{"ris-cm", {NULL}, 748, "tcp"},
-{"ris-cm", {NULL}, 748, "udp"},
-{"kerberos-adm", {NULL}, 749, "tcp"},
-{"kerberos-adm", {NULL}, 749, "udp"},
-{"rfile", {NULL}, 750, "tcp"},
-{"loadav", {NULL}, 750, "udp"},
-{"kerberos-iv", {NULL}, 750, "udp"},
-{"pump", {NULL}, 751, "tcp"},
-{"pump", {NULL}, 751, "udp"},
-{"qrh", {NULL}, 752, "tcp"},
-{"qrh", {NULL}, 752, "udp"},
-{"rrh", {NULL}, 753, "tcp"},
-{"rrh", {NULL}, 753, "udp"},
-{"tell", {NULL}, 754, "tcp"},
-{"tell", {NULL}, 754, "udp"},
-{"nlogin", {NULL}, 758, "tcp"},
-{"nlogin", {NULL}, 758, "udp"},
-{"con", {NULL}, 759, "tcp"},
-{"con", {NULL}, 759, "udp"},
-{"ns", {NULL}, 760, "tcp"},
-{"ns", {NULL}, 760, "udp"},
-{"rxe", {NULL}, 761, "tcp"},
-{"rxe", {NULL}, 761, "udp"},
-{"quotad", {NULL}, 762, "tcp"},
-{"quotad", {NULL}, 762, "udp"},
-{"cycleserv", {NULL}, 763, "tcp"},
-{"cycleserv", {NULL}, 763, "udp"},
-{"omserv", {NULL}, 764, "tcp"},
-{"omserv", {NULL}, 764, "udp"},
-{"webster", {NULL}, 765, "tcp"},
-{"webster", {NULL}, 765, "udp"},
-{"phonebook", {NULL}, 767, "tcp"},
-{"phonebook", {NULL}, 767, "udp"},
-{"vid", {NULL}, 769, "tcp"},
-{"vid", {NULL}, 769, "udp"},
-{"cadlock", {NULL}, 770, "tcp"},
-{"cadlock", {NULL}, 770, "udp"},
-{"rtip", {NULL}, 771, "tcp"},
-{"rtip", {NULL}, 771, "udp"},
-{"cycleserv2", {NULL}, 772, "tcp"},
-{"cycleserv2", {NULL}, 772, "udp"},
-{"submit", {NULL}, 773, "tcp"},
-{"notify", {NULL}, 773, "udp"},
-{"rpasswd", {NULL}, 774, "tcp"},
-{"acmaint_dbd", {NULL}, 774, "udp"},
-{"entomb", {NULL}, 775, "tcp"},
-{"acmaint_transd", {NULL}, 775, "udp"},
-{"wpages", {NULL}, 776, "tcp"},
-{"wpages", {NULL}, 776, "udp"},
-{"multiling-http", {NULL}, 777, "tcp"},
-{"multiling-http", {NULL}, 777, "udp"},
-{"wpgs", {NULL}, 780, "tcp"},
-{"wpgs", {NULL}, 780, "udp"},
-{"mdbs_daemon", {NULL}, 800, "tcp"},
-{"mdbs_daemon", {NULL}, 800, "udp"},
-{"device", {NULL}, 801, "tcp"},
-{"device", {NULL}, 801, "udp"},
-{"fcp-udp", {NULL}, 810, "tcp"},
-{"fcp-udp", {NULL}, 810, "udp"},
-{"itm-mcell-s", {NULL}, 828, "tcp"},
-{"itm-mcell-s", {NULL}, 828, "udp"},
-{"pkix-3-ca-ra", {NULL}, 829, "tcp"},
-{"pkix-3-ca-ra", {NULL}, 829, "udp"},
-{"netconf-ssh", {NULL}, 830, "tcp"},
-{"netconf-ssh", {NULL}, 830, "udp"},
-{"netconf-beep", {NULL}, 831, "tcp"},
-{"netconf-beep", {NULL}, 831, "udp"},
-{"netconfsoaphttp", {NULL}, 832, "tcp"},
-{"netconfsoaphttp", {NULL}, 832, "udp"},
-{"netconfsoapbeep", {NULL}, 833, "tcp"},
-{"netconfsoapbeep", {NULL}, 833, "udp"},
-{"dhcp-failover2", {NULL}, 847, "tcp"},
-{"dhcp-failover2", {NULL}, 847, "udp"},
-{"gdoi", {NULL}, 848, "tcp"},
-{"gdoi", {NULL}, 848, "udp"},
-{"iscsi", {NULL}, 860, "tcp"},
-{"iscsi", {NULL}, 860, "udp"},
-{"owamp-control", {NULL}, 861, "tcp"},
-{"owamp-control", {NULL}, 861, "udp"},
-{"twamp-control", {NULL}, 862, "tcp"},
-{"twamp-control", {NULL}, 862, "udp"},
-{"rsync", {NULL}, 873, "tcp"},
-{"rsync", {NULL}, 873, "udp"},
-{"iclcnet-locate", {NULL}, 886, "tcp"},
-{"iclcnet-locate", {NULL}, 886, "udp"},
-{"iclcnet_svinfo", {NULL}, 887, "tcp"},
-{"iclcnet_svinfo", {NULL}, 887, "udp"},
-{"accessbuilder", {NULL}, 888, "tcp"},
-{"accessbuilder", {NULL}, 888, "udp"},
-{"cddbp", {NULL}, 888, "tcp"},
-{"omginitialrefs", {NULL}, 900, "tcp"},
-{"omginitialrefs", {NULL}, 900, "udp"},
-{"smpnameres", {NULL}, 901, "tcp"},
-{"smpnameres", {NULL}, 901, "udp"},
-{"ideafarm-door", {NULL}, 902, "tcp"},
-{"ideafarm-door", {NULL}, 902, "udp"},
-{"ideafarm-panic", {NULL}, 903, "tcp"},
-{"ideafarm-panic", {NULL}, 903, "udp"},
-{"kink", {NULL}, 910, "tcp"},
-{"kink", {NULL}, 910, "udp"},
-{"xact-backup", {NULL}, 911, "tcp"},
-{"xact-backup", {NULL}, 911, "udp"},
-{"apex-mesh", {NULL}, 912, "tcp"},
-{"apex-mesh", {NULL}, 912, "udp"},
-{"apex-edge", {NULL}, 913, "tcp"},
-{"apex-edge", {NULL}, 913, "udp"},
-{"ftps-data", {NULL}, 989, "tcp"},
-{"ftps-data", {NULL}, 989, "udp"},
-{"ftps", {NULL}, 990, "tcp"},
-{"ftps", {NULL}, 990, "udp"},
-{"nas", {NULL}, 991, "tcp"},
-{"nas", {NULL}, 991, "udp"},
-{"telnets", {NULL}, 992, "tcp"},
-{"telnets", {NULL}, 992, "udp"},
-{"imaps", {NULL}, 993, "tcp"},
-{"imaps", {NULL}, 993, "udp"},
-{"ircs", {NULL}, 994, "tcp"},
-{"ircs", {NULL}, 994, "udp"},
-{"pop3s", {NULL}, 995, "tcp"},
-{"pop3s", {NULL}, 995, "udp"},
-{"vsinet", {NULL}, 996, "tcp"},
-{"vsinet", {NULL}, 996, "udp"},
-{"maitrd", {NULL}, 997, "tcp"},
-{"maitrd", {NULL}, 997, "udp"},
-{"busboy", {NULL}, 998, "tcp"},
-{"puparp", {NULL}, 998, "udp"},
-{"garcon", {NULL}, 999, "tcp"},
-{"applix", {NULL}, 999, "udp"},
-{"puprouter", {NULL}, 999, "tcp"},
-{"puprouter", {NULL}, 999, "udp"},
-{"cadlock2", {NULL}, 1000, "tcp"},
-{"cadlock2", {NULL}, 1000, "udp"},
-{"surf", {NULL}, 1010, "tcp"},
-{"surf", {NULL}, 1010, "udp"},
-{"exp1", {NULL}, 1021, "tcp"},
-{"exp1", {NULL}, 1021, "udp"},
-{"exp2", {NULL}, 1022, "tcp"},
-{"exp2", {NULL}, 1022, "udp"},
-#endif /* USE_IANA_WELL_KNOWN_PORTS */
-#ifdef USE_IANA_REGISTERED_PORTS
-{"blackjack", {NULL}, 1025, "tcp"},
-{"blackjack", {NULL}, 1025, "udp"},
-{"cap", {NULL}, 1026, "tcp"},
-{"cap", {NULL}, 1026, "udp"},
-{"solid-mux", {NULL}, 1029, "tcp"},
-{"solid-mux", {NULL}, 1029, "udp"},
-{"iad1", {NULL}, 1030, "tcp"},
-{"iad1", {NULL}, 1030, "udp"},
-{"iad2", {NULL}, 1031, "tcp"},
-{"iad2", {NULL}, 1031, "udp"},
-{"iad3", {NULL}, 1032, "tcp"},
-{"iad3", {NULL}, 1032, "udp"},
-{"netinfo-local", {NULL}, 1033, "tcp"},
-{"netinfo-local", {NULL}, 1033, "udp"},
-{"activesync", {NULL}, 1034, "tcp"},
-{"activesync", {NULL}, 1034, "udp"},
-{"mxxrlogin", {NULL}, 1035, "tcp"},
-{"mxxrlogin", {NULL}, 1035, "udp"},
-{"nsstp", {NULL}, 1036, "tcp"},
-{"nsstp", {NULL}, 1036, "udp"},
-{"ams", {NULL}, 1037, "tcp"},
-{"ams", {NULL}, 1037, "udp"},
-{"mtqp", {NULL}, 1038, "tcp"},
-{"mtqp", {NULL}, 1038, "udp"},
-{"sbl", {NULL}, 1039, "tcp"},
-{"sbl", {NULL}, 1039, "udp"},
-{"netarx", {NULL}, 1040, "tcp"},
-{"netarx", {NULL}, 1040, "udp"},
-{"danf-ak2", {NULL}, 1041, "tcp"},
-{"danf-ak2", {NULL}, 1041, "udp"},
-{"afrog", {NULL}, 1042, "tcp"},
-{"afrog", {NULL}, 1042, "udp"},
-{"boinc-client", {NULL}, 1043, "tcp"},
-{"boinc-client", {NULL}, 1043, "udp"},
-{"dcutility", {NULL}, 1044, "tcp"},
-{"dcutility", {NULL}, 1044, "udp"},
-{"fpitp", {NULL}, 1045, "tcp"},
-{"fpitp", {NULL}, 1045, "udp"},
-{"wfremotertm", {NULL}, 1046, "tcp"},
-{"wfremotertm", {NULL}, 1046, "udp"},
-{"neod1", {NULL}, 1047, "tcp"},
-{"neod1", {NULL}, 1047, "udp"},
-{"neod2", {NULL}, 1048, "tcp"},
-{"neod2", {NULL}, 1048, "udp"},
-{"td-postman", {NULL}, 1049, "tcp"},
-{"td-postman", {NULL}, 1049, "udp"},
-{"cma", {NULL}, 1050, "tcp"},
-{"cma", {NULL}, 1050, "udp"},
-{"optima-vnet", {NULL}, 1051, "tcp"},
-{"optima-vnet", {NULL}, 1051, "udp"},
-{"ddt", {NULL}, 1052, "tcp"},
-{"ddt", {NULL}, 1052, "udp"},
-{"remote-as", {NULL}, 1053, "tcp"},
-{"remote-as", {NULL}, 1053, "udp"},
-{"brvread", {NULL}, 1054, "tcp"},
-{"brvread", {NULL}, 1054, "udp"},
-{"ansyslmd", {NULL}, 1055, "tcp"},
-{"ansyslmd", {NULL}, 1055, "udp"},
-{"vfo", {NULL}, 1056, "tcp"},
-{"vfo", {NULL}, 1056, "udp"},
-{"startron", {NULL}, 1057, "tcp"},
-{"startron", {NULL}, 1057, "udp"},
-{"nim", {NULL}, 1058, "tcp"},
-{"nim", {NULL}, 1058, "udp"},
-{"nimreg", {NULL}, 1059, "tcp"},
-{"nimreg", {NULL}, 1059, "udp"},
-{"polestar", {NULL}, 1060, "tcp"},
-{"polestar", {NULL}, 1060, "udp"},
-{"kiosk", {NULL}, 1061, "tcp"},
-{"kiosk", {NULL}, 1061, "udp"},
-{"veracity", {NULL}, 1062, "tcp"},
-{"veracity", {NULL}, 1062, "udp"},
-{"kyoceranetdev", {NULL}, 1063, "tcp"},
-{"kyoceranetdev", {NULL}, 1063, "udp"},
-{"jstel", {NULL}, 1064, "tcp"},
-{"jstel", {NULL}, 1064, "udp"},
-{"syscomlan", {NULL}, 1065, "tcp"},
-{"syscomlan", {NULL}, 1065, "udp"},
-{"fpo-fns", {NULL}, 1066, "tcp"},
-{"fpo-fns", {NULL}, 1066, "udp"},
-{"instl_boots", {NULL}, 1067, "tcp"},
-{"instl_boots", {NULL}, 1067, "udp"},
-{"instl_bootc", {NULL}, 1068, "tcp"},
-{"instl_bootc", {NULL}, 1068, "udp"},
-{"cognex-insight", {NULL}, 1069, "tcp"},
-{"cognex-insight", {NULL}, 1069, "udp"},
-{"gmrupdateserv", {NULL}, 1070, "tcp"},
-{"gmrupdateserv", {NULL}, 1070, "udp"},
-{"bsquare-voip", {NULL}, 1071, "tcp"},
-{"bsquare-voip", {NULL}, 1071, "udp"},
-{"cardax", {NULL}, 1072, "tcp"},
-{"cardax", {NULL}, 1072, "udp"},
-{"bridgecontrol", {NULL}, 1073, "tcp"},
-{"bridgecontrol", {NULL}, 1073, "udp"},
-{"warmspotMgmt", {NULL}, 1074, "tcp"},
-{"warmspotMgmt", {NULL}, 1074, "udp"},
-{"rdrmshc", {NULL}, 1075, "tcp"},
-{"rdrmshc", {NULL}, 1075, "udp"},
-{"dab-sti-c", {NULL}, 1076, "tcp"},
-{"dab-sti-c", {NULL}, 1076, "udp"},
-{"imgames", {NULL}, 1077, "tcp"},
-{"imgames", {NULL}, 1077, "udp"},
-{"avocent-proxy", {NULL}, 1078, "tcp"},
-{"avocent-proxy", {NULL}, 1078, "udp"},
-{"asprovatalk", {NULL}, 1079, "tcp"},
-{"asprovatalk", {NULL}, 1079, "udp"},
-{"socks", {NULL}, 1080, "tcp"},
-{"socks", {NULL}, 1080, "udp"},
-{"pvuniwien", {NULL}, 1081, "tcp"},
-{"pvuniwien", {NULL}, 1081, "udp"},
-{"amt-esd-prot", {NULL}, 1082, "tcp"},
-{"amt-esd-prot", {NULL}, 1082, "udp"},
-{"ansoft-lm-1", {NULL}, 1083, "tcp"},
-{"ansoft-lm-1", {NULL}, 1083, "udp"},
-{"ansoft-lm-2", {NULL}, 1084, "tcp"},
-{"ansoft-lm-2", {NULL}, 1084, "udp"},
-{"webobjects", {NULL}, 1085, "tcp"},
-{"webobjects", {NULL}, 1085, "udp"},
-{"cplscrambler-lg", {NULL}, 1086, "tcp"},
-{"cplscrambler-lg", {NULL}, 1086, "udp"},
-{"cplscrambler-in", {NULL}, 1087, "tcp"},
-{"cplscrambler-in", {NULL}, 1087, "udp"},
-{"cplscrambler-al", {NULL}, 1088, "tcp"},
-{"cplscrambler-al", {NULL}, 1088, "udp"},
-{"ff-annunc", {NULL}, 1089, "tcp"},
-{"ff-annunc", {NULL}, 1089, "udp"},
-{"ff-fms", {NULL}, 1090, "tcp"},
-{"ff-fms", {NULL}, 1090, "udp"},
-{"ff-sm", {NULL}, 1091, "tcp"},
-{"ff-sm", {NULL}, 1091, "udp"},
-{"obrpd", {NULL}, 1092, "tcp"},
-{"obrpd", {NULL}, 1092, "udp"},
-{"proofd", {NULL}, 1093, "tcp"},
-{"proofd", {NULL}, 1093, "udp"},
-{"rootd", {NULL}, 1094, "tcp"},
-{"rootd", {NULL}, 1094, "udp"},
-{"nicelink", {NULL}, 1095, "tcp"},
-{"nicelink", {NULL}, 1095, "udp"},
-{"cnrprotocol", {NULL}, 1096, "tcp"},
-{"cnrprotocol", {NULL}, 1096, "udp"},
-{"sunclustermgr", {NULL}, 1097, "tcp"},
-{"sunclustermgr", {NULL}, 1097, "udp"},
-{"rmiactivation", {NULL}, 1098, "tcp"},
-{"rmiactivation", {NULL}, 1098, "udp"},
-{"rmiregistry", {NULL}, 1099, "tcp"},
-{"rmiregistry", {NULL}, 1099, "udp"},
-{"mctp", {NULL}, 1100, "tcp"},
-{"mctp", {NULL}, 1100, "udp"},
-{"pt2-discover", {NULL}, 1101, "tcp"},
-{"pt2-discover", {NULL}, 1101, "udp"},
-{"adobeserver-1", {NULL}, 1102, "tcp"},
-{"adobeserver-1", {NULL}, 1102, "udp"},
-{"adobeserver-2", {NULL}, 1103, "tcp"},
-{"adobeserver-2", {NULL}, 1103, "udp"},
-{"xrl", {NULL}, 1104, "tcp"},
-{"xrl", {NULL}, 1104, "udp"},
-{"ftranhc", {NULL}, 1105, "tcp"},
-{"ftranhc", {NULL}, 1105, "udp"},
-{"isoipsigport-1", {NULL}, 1106, "tcp"},
-{"isoipsigport-1", {NULL}, 1106, "udp"},
-{"isoipsigport-2", {NULL}, 1107, "tcp"},
-{"isoipsigport-2", {NULL}, 1107, "udp"},
-{"ratio-adp", {NULL}, 1108, "tcp"},
-{"ratio-adp", {NULL}, 1108, "udp"},
-{"webadmstart", {NULL}, 1110, "tcp"},
-{"nfsd-keepalive", {NULL}, 1110, "udp"},
-{"lmsocialserver", {NULL}, 1111, "tcp"},
-{"lmsocialserver", {NULL}, 1111, "udp"},
-{"icp", {NULL}, 1112, "tcp"},
-{"icp", {NULL}, 1112, "udp"},
-{"ltp-deepspace", {NULL}, 1113, "tcp"},
-{"ltp-deepspace", {NULL}, 1113, "udp"},
-{"mini-sql", {NULL}, 1114, "tcp"},
-{"mini-sql", {NULL}, 1114, "udp"},
-{"ardus-trns", {NULL}, 1115, "tcp"},
-{"ardus-trns", {NULL}, 1115, "udp"},
-{"ardus-cntl", {NULL}, 1116, "tcp"},
-{"ardus-cntl", {NULL}, 1116, "udp"},
-{"ardus-mtrns", {NULL}, 1117, "tcp"},
-{"ardus-mtrns", {NULL}, 1117, "udp"},
-{"sacred", {NULL}, 1118, "tcp"},
-{"sacred", {NULL}, 1118, "udp"},
-{"bnetgame", {NULL}, 1119, "tcp"},
-{"bnetgame", {NULL}, 1119, "udp"},
-{"bnetfile", {NULL}, 1120, "tcp"},
-{"bnetfile", {NULL}, 1120, "udp"},
-{"rmpp", {NULL}, 1121, "tcp"},
-{"rmpp", {NULL}, 1121, "udp"},
-{"availant-mgr", {NULL}, 1122, "tcp"},
-{"availant-mgr", {NULL}, 1122, "udp"},
-{"murray", {NULL}, 1123, "tcp"},
-{"murray", {NULL}, 1123, "udp"},
-{"hpvmmcontrol", {NULL}, 1124, "tcp"},
-{"hpvmmcontrol", {NULL}, 1124, "udp"},
-{"hpvmmagent", {NULL}, 1125, "tcp"},
-{"hpvmmagent", {NULL}, 1125, "udp"},
-{"hpvmmdata", {NULL}, 1126, "tcp"},
-{"hpvmmdata", {NULL}, 1126, "udp"},
-{"kwdb-commn", {NULL}, 1127, "tcp"},
-{"kwdb-commn", {NULL}, 1127, "udp"},
-{"saphostctrl", {NULL}, 1128, "tcp"},
-{"saphostctrl", {NULL}, 1128, "udp"},
-{"saphostctrls", {NULL}, 1129, "tcp"},
-{"saphostctrls", {NULL}, 1129, "udp"},
-{"casp", {NULL}, 1130, "tcp"},
-{"casp", {NULL}, 1130, "udp"},
-{"caspssl", {NULL}, 1131, "tcp"},
-{"caspssl", {NULL}, 1131, "udp"},
-{"kvm-via-ip", {NULL}, 1132, "tcp"},
-{"kvm-via-ip", {NULL}, 1132, "udp"},
-{"dfn", {NULL}, 1133, "tcp"},
-{"dfn", {NULL}, 1133, "udp"},
-{"aplx", {NULL}, 1134, "tcp"},
-{"aplx", {NULL}, 1134, "udp"},
-{"omnivision", {NULL}, 1135, "tcp"},
-{"omnivision", {NULL}, 1135, "udp"},
-{"hhb-gateway", {NULL}, 1136, "tcp"},
-{"hhb-gateway", {NULL}, 1136, "udp"},
-{"trim", {NULL}, 1137, "tcp"},
-{"trim", {NULL}, 1137, "udp"},
-{"encrypted_admin", {NULL}, 1138, "tcp"},
-{"encrypted_admin", {NULL}, 1138, "udp"},
-{"evm", {NULL}, 1139, "tcp"},
-{"evm", {NULL}, 1139, "udp"},
-{"autonoc", {NULL}, 1140, "tcp"},
-{"autonoc", {NULL}, 1140, "udp"},
-{"mxomss", {NULL}, 1141, "tcp"},
-{"mxomss", {NULL}, 1141, "udp"},
-{"edtools", {NULL}, 1142, "tcp"},
-{"edtools", {NULL}, 1142, "udp"},
-{"imyx", {NULL}, 1143, "tcp"},
-{"imyx", {NULL}, 1143, "udp"},
-{"fuscript", {NULL}, 1144, "tcp"},
-{"fuscript", {NULL}, 1144, "udp"},
-{"x9-icue", {NULL}, 1145, "tcp"},
-{"x9-icue", {NULL}, 1145, "udp"},
-{"audit-transfer", {NULL}, 1146, "tcp"},
-{"audit-transfer", {NULL}, 1146, "udp"},
-{"capioverlan", {NULL}, 1147, "tcp"},
-{"capioverlan", {NULL}, 1147, "udp"},
-{"elfiq-repl", {NULL}, 1148, "tcp"},
-{"elfiq-repl", {NULL}, 1148, "udp"},
-{"bvtsonar", {NULL}, 1149, "tcp"},
-{"bvtsonar", {NULL}, 1149, "udp"},
-{"blaze", {NULL}, 1150, "tcp"},
-{"blaze", {NULL}, 1150, "udp"},
-{"unizensus", {NULL}, 1151, "tcp"},
-{"unizensus", {NULL}, 1151, "udp"},
-{"winpoplanmess", {NULL}, 1152, "tcp"},
-{"winpoplanmess", {NULL}, 1152, "udp"},
-{"c1222-acse", {NULL}, 1153, "tcp"},
-{"c1222-acse", {NULL}, 1153, "udp"},
-{"resacommunity", {NULL}, 1154, "tcp"},
-{"resacommunity", {NULL}, 1154, "udp"},
-{"nfa", {NULL}, 1155, "tcp"},
-{"nfa", {NULL}, 1155, "udp"},
-{"iascontrol-oms", {NULL}, 1156, "tcp"},
-{"iascontrol-oms", {NULL}, 1156, "udp"},
-{"iascontrol", {NULL}, 1157, "tcp"},
-{"iascontrol", {NULL}, 1157, "udp"},
-{"dbcontrol-oms", {NULL}, 1158, "tcp"},
-{"dbcontrol-oms", {NULL}, 1158, "udp"},
-{"oracle-oms", {NULL}, 1159, "tcp"},
-{"oracle-oms", {NULL}, 1159, "udp"},
-{"olsv", {NULL}, 1160, "tcp"},
-{"olsv", {NULL}, 1160, "udp"},
-{"health-polling", {NULL}, 1161, "tcp"},
-{"health-polling", {NULL}, 1161, "udp"},
-{"health-trap", {NULL}, 1162, "tcp"},
-{"health-trap", {NULL}, 1162, "udp"},
-{"sddp", {NULL}, 1163, "tcp"},
-{"sddp", {NULL}, 1163, "udp"},
-{"qsm-proxy", {NULL}, 1164, "tcp"},
-{"qsm-proxy", {NULL}, 1164, "udp"},
-{"qsm-gui", {NULL}, 1165, "tcp"},
-{"qsm-gui", {NULL}, 1165, "udp"},
-{"qsm-remote", {NULL}, 1166, "tcp"},
-{"qsm-remote", {NULL}, 1166, "udp"},
-{"cisco-ipsla", {NULL}, 1167, "tcp"},
-{"cisco-ipsla", {NULL}, 1167, "udp"},
-{"cisco-ipsla", {NULL}, 1167, "sctp"},
-{"vchat", {NULL}, 1168, "tcp"},
-{"vchat", {NULL}, 1168, "udp"},
-{"tripwire", {NULL}, 1169, "tcp"},
-{"tripwire", {NULL}, 1169, "udp"},
-{"atc-lm", {NULL}, 1170, "tcp"},
-{"atc-lm", {NULL}, 1170, "udp"},
-{"atc-appserver", {NULL}, 1171, "tcp"},
-{"atc-appserver", {NULL}, 1171, "udp"},
-{"dnap", {NULL}, 1172, "tcp"},
-{"dnap", {NULL}, 1172, "udp"},
-{"d-cinema-rrp", {NULL}, 1173, "tcp"},
-{"d-cinema-rrp", {NULL}, 1173, "udp"},
-{"fnet-remote-ui", {NULL}, 1174, "tcp"},
-{"fnet-remote-ui", {NULL}, 1174, "udp"},
-{"dossier", {NULL}, 1175, "tcp"},
-{"dossier", {NULL}, 1175, "udp"},
-{"indigo-server", {NULL}, 1176, "tcp"},
-{"indigo-server", {NULL}, 1176, "udp"},
-{"dkmessenger", {NULL}, 1177, "tcp"},
-{"dkmessenger", {NULL}, 1177, "udp"},
-{"sgi-storman", {NULL}, 1178, "tcp"},
-{"sgi-storman", {NULL}, 1178, "udp"},
-{"b2n", {NULL}, 1179, "tcp"},
-{"b2n", {NULL}, 1179, "udp"},
-{"mc-client", {NULL}, 1180, "tcp"},
-{"mc-client", {NULL}, 1180, "udp"},
-{"3comnetman", {NULL}, 1181, "tcp"},
-{"3comnetman", {NULL}, 1181, "udp"},
-{"accelenet", {NULL}, 1182, "tcp"},
-{"accelenet-data", {NULL}, 1182, "udp"},
-{"llsurfup-http", {NULL}, 1183, "tcp"},
-{"llsurfup-http", {NULL}, 1183, "udp"},
-{"llsurfup-https", {NULL}, 1184, "tcp"},
-{"llsurfup-https", {NULL}, 1184, "udp"},
-{"catchpole", {NULL}, 1185, "tcp"},
-{"catchpole", {NULL}, 1185, "udp"},
-{"mysql-cluster", {NULL}, 1186, "tcp"},
-{"mysql-cluster", {NULL}, 1186, "udp"},
-{"alias", {NULL}, 1187, "tcp"},
-{"alias", {NULL}, 1187, "udp"},
-{"hp-webadmin", {NULL}, 1188, "tcp"},
-{"hp-webadmin", {NULL}, 1188, "udp"},
-{"unet", {NULL}, 1189, "tcp"},
-{"unet", {NULL}, 1189, "udp"},
-{"commlinx-avl", {NULL}, 1190, "tcp"},
-{"commlinx-avl", {NULL}, 1190, "udp"},
-{"gpfs", {NULL}, 1191, "tcp"},
-{"gpfs", {NULL}, 1191, "udp"},
-{"caids-sensor", {NULL}, 1192, "tcp"},
-{"caids-sensor", {NULL}, 1192, "udp"},
-{"fiveacross", {NULL}, 1193, "tcp"},
-{"fiveacross", {NULL}, 1193, "udp"},
-{"openvpn", {NULL}, 1194, "tcp"},
-{"openvpn", {NULL}, 1194, "udp"},
-{"rsf-1", {NULL}, 1195, "tcp"},
-{"rsf-1", {NULL}, 1195, "udp"},
-{"netmagic", {NULL}, 1196, "tcp"},
-{"netmagic", {NULL}, 1196, "udp"},
-{"carrius-rshell", {NULL}, 1197, "tcp"},
-{"carrius-rshell", {NULL}, 1197, "udp"},
-{"cajo-discovery", {NULL}, 1198, "tcp"},
-{"cajo-discovery", {NULL}, 1198, "udp"},
-{"dmidi", {NULL}, 1199, "tcp"},
-{"dmidi", {NULL}, 1199, "udp"},
-{"scol", {NULL}, 1200, "tcp"},
-{"scol", {NULL}, 1200, "udp"},
-{"nucleus-sand", {NULL}, 1201, "tcp"},
-{"nucleus-sand", {NULL}, 1201, "udp"},
-{"caiccipc", {NULL}, 1202, "tcp"},
-{"caiccipc", {NULL}, 1202, "udp"},
-{"ssslic-mgr", {NULL}, 1203, "tcp"},
-{"ssslic-mgr", {NULL}, 1203, "udp"},
-{"ssslog-mgr", {NULL}, 1204, "tcp"},
-{"ssslog-mgr", {NULL}, 1204, "udp"},
-{"accord-mgc", {NULL}, 1205, "tcp"},
-{"accord-mgc", {NULL}, 1205, "udp"},
-{"anthony-data", {NULL}, 1206, "tcp"},
-{"anthony-data", {NULL}, 1206, "udp"},
-{"metasage", {NULL}, 1207, "tcp"},
-{"metasage", {NULL}, 1207, "udp"},
-{"seagull-ais", {NULL}, 1208, "tcp"},
-{"seagull-ais", {NULL}, 1208, "udp"},
-{"ipcd3", {NULL}, 1209, "tcp"},
-{"ipcd3", {NULL}, 1209, "udp"},
-{"eoss", {NULL}, 1210, "tcp"},
-{"eoss", {NULL}, 1210, "udp"},
-{"groove-dpp", {NULL}, 1211, "tcp"},
-{"groove-dpp", {NULL}, 1211, "udp"},
-{"lupa", {NULL}, 1212, "tcp"},
-{"lupa", {NULL}, 1212, "udp"},
-{"mpc-lifenet", {NULL}, 1213, "tcp"},
-{"mpc-lifenet", {NULL}, 1213, "udp"},
-{"kazaa", {NULL}, 1214, "tcp"},
-{"kazaa", {NULL}, 1214, "udp"},
-{"scanstat-1", {NULL}, 1215, "tcp"},
-{"scanstat-1", {NULL}, 1215, "udp"},
-{"etebac5", {NULL}, 1216, "tcp"},
-{"etebac5", {NULL}, 1216, "udp"},
-{"hpss-ndapi", {NULL}, 1217, "tcp"},
-{"hpss-ndapi", {NULL}, 1217, "udp"},
-{"aeroflight-ads", {NULL}, 1218, "tcp"},
-{"aeroflight-ads", {NULL}, 1218, "udp"},
-{"aeroflight-ret", {NULL}, 1219, "tcp"},
-{"aeroflight-ret", {NULL}, 1219, "udp"},
-{"qt-serveradmin", {NULL}, 1220, "tcp"},
-{"qt-serveradmin", {NULL}, 1220, "udp"},
-{"sweetware-apps", {NULL}, 1221, "tcp"},
-{"sweetware-apps", {NULL}, 1221, "udp"},
-{"nerv", {NULL}, 1222, "tcp"},
-{"nerv", {NULL}, 1222, "udp"},
-{"tgp", {NULL}, 1223, "tcp"},
-{"tgp", {NULL}, 1223, "udp"},
-{"vpnz", {NULL}, 1224, "tcp"},
-{"vpnz", {NULL}, 1224, "udp"},
-{"slinkysearch", {NULL}, 1225, "tcp"},
-{"slinkysearch", {NULL}, 1225, "udp"},
-{"stgxfws", {NULL}, 1226, "tcp"},
-{"stgxfws", {NULL}, 1226, "udp"},
-{"dns2go", {NULL}, 1227, "tcp"},
-{"dns2go", {NULL}, 1227, "udp"},
-{"florence", {NULL}, 1228, "tcp"},
-{"florence", {NULL}, 1228, "udp"},
-{"zented", {NULL}, 1229, "tcp"},
-{"zented", {NULL}, 1229, "udp"},
-{"periscope", {NULL}, 1230, "tcp"},
-{"periscope", {NULL}, 1230, "udp"},
-{"menandmice-lpm", {NULL}, 1231, "tcp"},
-{"menandmice-lpm", {NULL}, 1231, "udp"},
-{"univ-appserver", {NULL}, 1233, "tcp"},
-{"univ-appserver", {NULL}, 1233, "udp"},
-{"search-agent", {NULL}, 1234, "tcp"},
-{"search-agent", {NULL}, 1234, "udp"},
-{"mosaicsyssvc1", {NULL}, 1235, "tcp"},
-{"mosaicsyssvc1", {NULL}, 1235, "udp"},
-{"bvcontrol", {NULL}, 1236, "tcp"},
-{"bvcontrol", {NULL}, 1236, "udp"},
-{"tsdos390", {NULL}, 1237, "tcp"},
-{"tsdos390", {NULL}, 1237, "udp"},
-{"hacl-qs", {NULL}, 1238, "tcp"},
-{"hacl-qs", {NULL}, 1238, "udp"},
-{"nmsd", {NULL}, 1239, "tcp"},
-{"nmsd", {NULL}, 1239, "udp"},
-{"instantia", {NULL}, 1240, "tcp"},
-{"instantia", {NULL}, 1240, "udp"},
-{"nessus", {NULL}, 1241, "tcp"},
-{"nessus", {NULL}, 1241, "udp"},
-{"nmasoverip", {NULL}, 1242, "tcp"},
-{"nmasoverip", {NULL}, 1242, "udp"},
-{"serialgateway", {NULL}, 1243, "tcp"},
-{"serialgateway", {NULL}, 1243, "udp"},
-{"isbconference1", {NULL}, 1244, "tcp"},
-{"isbconference1", {NULL}, 1244, "udp"},
-{"isbconference2", {NULL}, 1245, "tcp"},
-{"isbconference2", {NULL}, 1245, "udp"},
-{"payrouter", {NULL}, 1246, "tcp"},
-{"payrouter", {NULL}, 1246, "udp"},
-{"visionpyramid", {NULL}, 1247, "tcp"},
-{"visionpyramid", {NULL}, 1247, "udp"},
-{"hermes", {NULL}, 1248, "tcp"},
-{"hermes", {NULL}, 1248, "udp"},
-{"mesavistaco", {NULL}, 1249, "tcp"},
-{"mesavistaco", {NULL}, 1249, "udp"},
-{"swldy-sias", {NULL}, 1250, "tcp"},
-{"swldy-sias", {NULL}, 1250, "udp"},
-{"servergraph", {NULL}, 1251, "tcp"},
-{"servergraph", {NULL}, 1251, "udp"},
-{"bspne-pcc", {NULL}, 1252, "tcp"},
-{"bspne-pcc", {NULL}, 1252, "udp"},
-{"q55-pcc", {NULL}, 1253, "tcp"},
-{"q55-pcc", {NULL}, 1253, "udp"},
-{"de-noc", {NULL}, 1254, "tcp"},
-{"de-noc", {NULL}, 1254, "udp"},
-{"de-cache-query", {NULL}, 1255, "tcp"},
-{"de-cache-query", {NULL}, 1255, "udp"},
-{"de-server", {NULL}, 1256, "tcp"},
-{"de-server", {NULL}, 1256, "udp"},
-{"shockwave2", {NULL}, 1257, "tcp"},
-{"shockwave2", {NULL}, 1257, "udp"},
-{"opennl", {NULL}, 1258, "tcp"},
-{"opennl", {NULL}, 1258, "udp"},
-{"opennl-voice", {NULL}, 1259, "tcp"},
-{"opennl-voice", {NULL}, 1259, "udp"},
-{"ibm-ssd", {NULL}, 1260, "tcp"},
-{"ibm-ssd", {NULL}, 1260, "udp"},
-{"mpshrsv", {NULL}, 1261, "tcp"},
-{"mpshrsv", {NULL}, 1261, "udp"},
-{"qnts-orb", {NULL}, 1262, "tcp"},
-{"qnts-orb", {NULL}, 1262, "udp"},
-{"dka", {NULL}, 1263, "tcp"},
-{"dka", {NULL}, 1263, "udp"},
-{"prat", {NULL}, 1264, "tcp"},
-{"prat", {NULL}, 1264, "udp"},
-{"dssiapi", {NULL}, 1265, "tcp"},
-{"dssiapi", {NULL}, 1265, "udp"},
-{"dellpwrappks", {NULL}, 1266, "tcp"},
-{"dellpwrappks", {NULL}, 1266, "udp"},
-{"epc", {NULL}, 1267, "tcp"},
-{"epc", {NULL}, 1267, "udp"},
-{"propel-msgsys", {NULL}, 1268, "tcp"},
-{"propel-msgsys", {NULL}, 1268, "udp"},
-{"watilapp", {NULL}, 1269, "tcp"},
-{"watilapp", {NULL}, 1269, "udp"},
-{"opsmgr", {NULL}, 1270, "tcp"},
-{"opsmgr", {NULL}, 1270, "udp"},
-{"excw", {NULL}, 1271, "tcp"},
-{"excw", {NULL}, 1271, "udp"},
-{"cspmlockmgr", {NULL}, 1272, "tcp"},
-{"cspmlockmgr", {NULL}, 1272, "udp"},
-{"emc-gateway", {NULL}, 1273, "tcp"},
-{"emc-gateway", {NULL}, 1273, "udp"},
-{"t1distproc", {NULL}, 1274, "tcp"},
-{"t1distproc", {NULL}, 1274, "udp"},
-{"ivcollector", {NULL}, 1275, "tcp"},
-{"ivcollector", {NULL}, 1275, "udp"},
-{"ivmanager", {NULL}, 1276, "tcp"},
-{"ivmanager", {NULL}, 1276, "udp"},
-{"miva-mqs", {NULL}, 1277, "tcp"},
-{"miva-mqs", {NULL}, 1277, "udp"},
-{"dellwebadmin-1", {NULL}, 1278, "tcp"},
-{"dellwebadmin-1", {NULL}, 1278, "udp"},
-{"dellwebadmin-2", {NULL}, 1279, "tcp"},
-{"dellwebadmin-2", {NULL}, 1279, "udp"},
-{"pictrography", {NULL}, 1280, "tcp"},
-{"pictrography", {NULL}, 1280, "udp"},
-{"healthd", {NULL}, 1281, "tcp"},
-{"healthd", {NULL}, 1281, "udp"},
-{"emperion", {NULL}, 1282, "tcp"},
-{"emperion", {NULL}, 1282, "udp"},
-{"productinfo", {NULL}, 1283, "tcp"},
-{"productinfo", {NULL}, 1283, "udp"},
-{"iee-qfx", {NULL}, 1284, "tcp"},
-{"iee-qfx", {NULL}, 1284, "udp"},
-{"neoiface", {NULL}, 1285, "tcp"},
-{"neoiface", {NULL}, 1285, "udp"},
-{"netuitive", {NULL}, 1286, "tcp"},
-{"netuitive", {NULL}, 1286, "udp"},
-{"routematch", {NULL}, 1287, "tcp"},
-{"routematch", {NULL}, 1287, "udp"},
-{"navbuddy", {NULL}, 1288, "tcp"},
-{"navbuddy", {NULL}, 1288, "udp"},
-{"jwalkserver", {NULL}, 1289, "tcp"},
-{"jwalkserver", {NULL}, 1289, "udp"},
-{"winjaserver", {NULL}, 1290, "tcp"},
-{"winjaserver", {NULL}, 1290, "udp"},
-{"seagulllms", {NULL}, 1291, "tcp"},
-{"seagulllms", {NULL}, 1291, "udp"},
-{"dsdn", {NULL}, 1292, "tcp"},
-{"dsdn", {NULL}, 1292, "udp"},
-{"pkt-krb-ipsec", {NULL}, 1293, "tcp"},
-{"pkt-krb-ipsec", {NULL}, 1293, "udp"},
-{"cmmdriver", {NULL}, 1294, "tcp"},
-{"cmmdriver", {NULL}, 1294, "udp"},
-{"ehtp", {NULL}, 1295, "tcp"},
-{"ehtp", {NULL}, 1295, "udp"},
-{"dproxy", {NULL}, 1296, "tcp"},
-{"dproxy", {NULL}, 1296, "udp"},
-{"sdproxy", {NULL}, 1297, "tcp"},
-{"sdproxy", {NULL}, 1297, "udp"},
-{"lpcp", {NULL}, 1298, "tcp"},
-{"lpcp", {NULL}, 1298, "udp"},
-{"hp-sci", {NULL}, 1299, "tcp"},
-{"hp-sci", {NULL}, 1299, "udp"},
-{"h323hostcallsc", {NULL}, 1300, "tcp"},
-{"h323hostcallsc", {NULL}, 1300, "udp"},
-{"ci3-software-1", {NULL}, 1301, "tcp"},
-{"ci3-software-1", {NULL}, 1301, "udp"},
-{"ci3-software-2", {NULL}, 1302, "tcp"},
-{"ci3-software-2", {NULL}, 1302, "udp"},
-{"sftsrv", {NULL}, 1303, "tcp"},
-{"sftsrv", {NULL}, 1303, "udp"},
-{"boomerang", {NULL}, 1304, "tcp"},
-{"boomerang", {NULL}, 1304, "udp"},
-{"pe-mike", {NULL}, 1305, "tcp"},
-{"pe-mike", {NULL}, 1305, "udp"},
-{"re-conn-proto", {NULL}, 1306, "tcp"},
-{"re-conn-proto", {NULL}, 1306, "udp"},
-{"pacmand", {NULL}, 1307, "tcp"},
-{"pacmand", {NULL}, 1307, "udp"},
-{"odsi", {NULL}, 1308, "tcp"},
-{"odsi", {NULL}, 1308, "udp"},
-{"jtag-server", {NULL}, 1309, "tcp"},
-{"jtag-server", {NULL}, 1309, "udp"},
-{"husky", {NULL}, 1310, "tcp"},
-{"husky", {NULL}, 1310, "udp"},
-{"rxmon", {NULL}, 1311, "tcp"},
-{"rxmon", {NULL}, 1311, "udp"},
-{"sti-envision", {NULL}, 1312, "tcp"},
-{"sti-envision", {NULL}, 1312, "udp"},
-{"bmc_patroldb", {NULL}, 1313, "tcp"},
-{"bmc_patroldb", {NULL}, 1313, "udp"},
-{"pdps", {NULL}, 1314, "tcp"},
-{"pdps", {NULL}, 1314, "udp"},
-{"els", {NULL}, 1315, "tcp"},
-{"els", {NULL}, 1315, "udp"},
-{"exbit-escp", {NULL}, 1316, "tcp"},
-{"exbit-escp", {NULL}, 1316, "udp"},
-{"vrts-ipcserver", {NULL}, 1317, "tcp"},
-{"vrts-ipcserver", {NULL}, 1317, "udp"},
-{"krb5gatekeeper", {NULL}, 1318, "tcp"},
-{"krb5gatekeeper", {NULL}, 1318, "udp"},
-{"amx-icsp", {NULL}, 1319, "tcp"},
-{"amx-icsp", {NULL}, 1319, "udp"},
-{"amx-axbnet", {NULL}, 1320, "tcp"},
-{"amx-axbnet", {NULL}, 1320, "udp"},
-{"pip", {NULL}, 1321, "tcp"},
-{"pip", {NULL}, 1321, "udp"},
-{"novation", {NULL}, 1322, "tcp"},
-{"novation", {NULL}, 1322, "udp"},
-{"brcd", {NULL}, 1323, "tcp"},
-{"brcd", {NULL}, 1323, "udp"},
-{"delta-mcp", {NULL}, 1324, "tcp"},
-{"delta-mcp", {NULL}, 1324, "udp"},
-{"dx-instrument", {NULL}, 1325, "tcp"},
-{"dx-instrument", {NULL}, 1325, "udp"},
-{"wimsic", {NULL}, 1326, "tcp"},
-{"wimsic", {NULL}, 1326, "udp"},
-{"ultrex", {NULL}, 1327, "tcp"},
-{"ultrex", {NULL}, 1327, "udp"},
-{"ewall", {NULL}, 1328, "tcp"},
-{"ewall", {NULL}, 1328, "udp"},
-{"netdb-export", {NULL}, 1329, "tcp"},
-{"netdb-export", {NULL}, 1329, "udp"},
-{"streetperfect", {NULL}, 1330, "tcp"},
-{"streetperfect", {NULL}, 1330, "udp"},
-{"intersan", {NULL}, 1331, "tcp"},
-{"intersan", {NULL}, 1331, "udp"},
-{"pcia-rxp-b", {NULL}, 1332, "tcp"},
-{"pcia-rxp-b", {NULL}, 1332, "udp"},
-{"passwrd-policy", {NULL}, 1333, "tcp"},
-{"passwrd-policy", {NULL}, 1333, "udp"},
-{"writesrv", {NULL}, 1334, "tcp"},
-{"writesrv", {NULL}, 1334, "udp"},
-{"digital-notary", {NULL}, 1335, "tcp"},
-{"digital-notary", {NULL}, 1335, "udp"},
-{"ischat", {NULL}, 1336, "tcp"},
-{"ischat", {NULL}, 1336, "udp"},
-{"menandmice-dns", {NULL}, 1337, "tcp"},
-{"menandmice-dns", {NULL}, 1337, "udp"},
-{"wmc-log-svc", {NULL}, 1338, "tcp"},
-{"wmc-log-svc", {NULL}, 1338, "udp"},
-{"kjtsiteserver", {NULL}, 1339, "tcp"},
-{"kjtsiteserver", {NULL}, 1339, "udp"},
-{"naap", {NULL}, 1340, "tcp"},
-{"naap", {NULL}, 1340, "udp"},
-{"qubes", {NULL}, 1341, "tcp"},
-{"qubes", {NULL}, 1341, "udp"},
-{"esbroker", {NULL}, 1342, "tcp"},
-{"esbroker", {NULL}, 1342, "udp"},
-{"re101", {NULL}, 1343, "tcp"},
-{"re101", {NULL}, 1343, "udp"},
-{"icap", {NULL}, 1344, "tcp"},
-{"icap", {NULL}, 1344, "udp"},
-{"vpjp", {NULL}, 1345, "tcp"},
-{"vpjp", {NULL}, 1345, "udp"},
-{"alta-ana-lm", {NULL}, 1346, "tcp"},
-{"alta-ana-lm", {NULL}, 1346, "udp"},
-{"bbn-mmc", {NULL}, 1347, "tcp"},
-{"bbn-mmc", {NULL}, 1347, "udp"},
-{"bbn-mmx", {NULL}, 1348, "tcp"},
-{"bbn-mmx", {NULL}, 1348, "udp"},
-{"sbook", {NULL}, 1349, "tcp"},
-{"sbook", {NULL}, 1349, "udp"},
-{"editbench", {NULL}, 1350, "tcp"},
-{"editbench", {NULL}, 1350, "udp"},
-{"equationbuilder", {NULL}, 1351, "tcp"},
-{"equationbuilder", {NULL}, 1351, "udp"},
-{"lotusnote", {NULL}, 1352, "tcp"},
-{"lotusnote", {NULL}, 1352, "udp"},
-{"relief", {NULL}, 1353, "tcp"},
-{"relief", {NULL}, 1353, "udp"},
-{"XSIP-network", {NULL}, 1354, "tcp"},
-{"XSIP-network", {NULL}, 1354, "udp"},
-{"intuitive-edge", {NULL}, 1355, "tcp"},
-{"intuitive-edge", {NULL}, 1355, "udp"},
-{"cuillamartin", {NULL}, 1356, "tcp"},
-{"cuillamartin", {NULL}, 1356, "udp"},
-{"pegboard", {NULL}, 1357, "tcp"},
-{"pegboard", {NULL}, 1357, "udp"},
-{"connlcli", {NULL}, 1358, "tcp"},
-{"connlcli", {NULL}, 1358, "udp"},
-{"ftsrv", {NULL}, 1359, "tcp"},
-{"ftsrv", {NULL}, 1359, "udp"},
-{"mimer", {NULL}, 1360, "tcp"},
-{"mimer", {NULL}, 1360, "udp"},
-{"linx", {NULL}, 1361, "tcp"},
-{"linx", {NULL}, 1361, "udp"},
-{"timeflies", {NULL}, 1362, "tcp"},
-{"timeflies", {NULL}, 1362, "udp"},
-{"ndm-requester", {NULL}, 1363, "tcp"},
-{"ndm-requester", {NULL}, 1363, "udp"},
-{"ndm-server", {NULL}, 1364, "tcp"},
-{"ndm-server", {NULL}, 1364, "udp"},
-{"adapt-sna", {NULL}, 1365, "tcp"},
-{"adapt-sna", {NULL}, 1365, "udp"},
-{"netware-csp", {NULL}, 1366, "tcp"},
-{"netware-csp", {NULL}, 1366, "udp"},
-{"dcs", {NULL}, 1367, "tcp"},
-{"dcs", {NULL}, 1367, "udp"},
-{"screencast", {NULL}, 1368, "tcp"},
-{"screencast", {NULL}, 1368, "udp"},
-{"gv-us", {NULL}, 1369, "tcp"},
-{"gv-us", {NULL}, 1369, "udp"},
-{"us-gv", {NULL}, 1370, "tcp"},
-{"us-gv", {NULL}, 1370, "udp"},
-{"fc-cli", {NULL}, 1371, "tcp"},
-{"fc-cli", {NULL}, 1371, "udp"},
-{"fc-ser", {NULL}, 1372, "tcp"},
-{"fc-ser", {NULL}, 1372, "udp"},
-{"chromagrafx", {NULL}, 1373, "tcp"},
-{"chromagrafx", {NULL}, 1373, "udp"},
-{"molly", {NULL}, 1374, "tcp"},
-{"molly", {NULL}, 1374, "udp"},
-{"bytex", {NULL}, 1375, "tcp"},
-{"bytex", {NULL}, 1375, "udp"},
-{"ibm-pps", {NULL}, 1376, "tcp"},
-{"ibm-pps", {NULL}, 1376, "udp"},
-{"cichlid", {NULL}, 1377, "tcp"},
-{"cichlid", {NULL}, 1377, "udp"},
-{"elan", {NULL}, 1378, "tcp"},
-{"elan", {NULL}, 1378, "udp"},
-{"dbreporter", {NULL}, 1379, "tcp"},
-{"dbreporter", {NULL}, 1379, "udp"},
-{"telesis-licman", {NULL}, 1380, "tcp"},
-{"telesis-licman", {NULL}, 1380, "udp"},
-{"apple-licman", {NULL}, 1381, "tcp"},
-{"apple-licman", {NULL}, 1381, "udp"},
-{"udt_os", {NULL}, 1382, "tcp"},
-{"udt_os", {NULL}, 1382, "udp"},
-{"gwha", {NULL}, 1383, "tcp"},
-{"gwha", {NULL}, 1383, "udp"},
-{"os-licman", {NULL}, 1384, "tcp"},
-{"os-licman", {NULL}, 1384, "udp"},
-{"atex_elmd", {NULL}, 1385, "tcp"},
-{"atex_elmd", {NULL}, 1385, "udp"},
-{"checksum", {NULL}, 1386, "tcp"},
-{"checksum", {NULL}, 1386, "udp"},
-{"cadsi-lm", {NULL}, 1387, "tcp"},
-{"cadsi-lm", {NULL}, 1387, "udp"},
-{"objective-dbc", {NULL}, 1388, "tcp"},
-{"objective-dbc", {NULL}, 1388, "udp"},
-{"iclpv-dm", {NULL}, 1389, "tcp"},
-{"iclpv-dm", {NULL}, 1389, "udp"},
-{"iclpv-sc", {NULL}, 1390, "tcp"},
-{"iclpv-sc", {NULL}, 1390, "udp"},
-{"iclpv-sas", {NULL}, 1391, "tcp"},
-{"iclpv-sas", {NULL}, 1391, "udp"},
-{"iclpv-pm", {NULL}, 1392, "tcp"},
-{"iclpv-pm", {NULL}, 1392, "udp"},
-{"iclpv-nls", {NULL}, 1393, "tcp"},
-{"iclpv-nls", {NULL}, 1393, "udp"},
-{"iclpv-nlc", {NULL}, 1394, "tcp"},
-{"iclpv-nlc", {NULL}, 1394, "udp"},
-{"iclpv-wsm", {NULL}, 1395, "tcp"},
-{"iclpv-wsm", {NULL}, 1395, "udp"},
-{"dvl-activemail", {NULL}, 1396, "tcp"},
-{"dvl-activemail", {NULL}, 1396, "udp"},
-{"audio-activmail", {NULL}, 1397, "tcp"},
-{"audio-activmail", {NULL}, 1397, "udp"},
-{"video-activmail", {NULL}, 1398, "tcp"},
-{"video-activmail", {NULL}, 1398, "udp"},
-{"cadkey-licman", {NULL}, 1399, "tcp"},
-{"cadkey-licman", {NULL}, 1399, "udp"},
-{"cadkey-tablet", {NULL}, 1400, "tcp"},
-{"cadkey-tablet", {NULL}, 1400, "udp"},
-{"goldleaf-licman", {NULL}, 1401, "tcp"},
-{"goldleaf-licman", {NULL}, 1401, "udp"},
-{"prm-sm-np", {NULL}, 1402, "tcp"},
-{"prm-sm-np", {NULL}, 1402, "udp"},
-{"prm-nm-np", {NULL}, 1403, "tcp"},
-{"prm-nm-np", {NULL}, 1403, "udp"},
-{"igi-lm", {NULL}, 1404, "tcp"},
-{"igi-lm", {NULL}, 1404, "udp"},
-{"ibm-res", {NULL}, 1405, "tcp"},
-{"ibm-res", {NULL}, 1405, "udp"},
-{"netlabs-lm", {NULL}, 1406, "tcp"},
-{"netlabs-lm", {NULL}, 1406, "udp"},
-{"dbsa-lm", {NULL}, 1407, "tcp"},
-{"dbsa-lm", {NULL}, 1407, "udp"},
-{"sophia-lm", {NULL}, 1408, "tcp"},
-{"sophia-lm", {NULL}, 1408, "udp"},
-{"here-lm", {NULL}, 1409, "tcp"},
-{"here-lm", {NULL}, 1409, "udp"},
-{"hiq", {NULL}, 1410, "tcp"},
-{"hiq", {NULL}, 1410, "udp"},
-{"af", {NULL}, 1411, "tcp"},
-{"af", {NULL}, 1411, "udp"},
-{"innosys", {NULL}, 1412, "tcp"},
-{"innosys", {NULL}, 1412, "udp"},
-{"innosys-acl", {NULL}, 1413, "tcp"},
-{"innosys-acl", {NULL}, 1413, "udp"},
-{"ibm-mqseries", {NULL}, 1414, "tcp"},
-{"ibm-mqseries", {NULL}, 1414, "udp"},
-{"dbstar", {NULL}, 1415, "tcp"},
-{"dbstar", {NULL}, 1415, "udp"},
-{"novell-lu6.2", {NULL}, 1416, "tcp"},
-{"novell-lu6.2", {NULL}, 1416, "udp"},
-{"timbuktu-srv1", {NULL}, 1417, "tcp"},
-{"timbuktu-srv1", {NULL}, 1417, "udp"},
-{"timbuktu-srv2", {NULL}, 1418, "tcp"},
-{"timbuktu-srv2", {NULL}, 1418, "udp"},
-{"timbuktu-srv3", {NULL}, 1419, "tcp"},
-{"timbuktu-srv3", {NULL}, 1419, "udp"},
-{"timbuktu-srv4", {NULL}, 1420, "tcp"},
-{"timbuktu-srv4", {NULL}, 1420, "udp"},
-{"gandalf-lm", {NULL}, 1421, "tcp"},
-{"gandalf-lm", {NULL}, 1421, "udp"},
-{"autodesk-lm", {NULL}, 1422, "tcp"},
-{"autodesk-lm", {NULL}, 1422, "udp"},
-{"essbase", {NULL}, 1423, "tcp"},
-{"essbase", {NULL}, 1423, "udp"},
-{"hybrid", {NULL}, 1424, "tcp"},
-{"hybrid", {NULL}, 1424, "udp"},
-{"zion-lm", {NULL}, 1425, "tcp"},
-{"zion-lm", {NULL}, 1425, "udp"},
-{"sais", {NULL}, 1426, "tcp"},
-{"sais", {NULL}, 1426, "udp"},
-{"mloadd", {NULL}, 1427, "tcp"},
-{"mloadd", {NULL}, 1427, "udp"},
-{"informatik-lm", {NULL}, 1428, "tcp"},
-{"informatik-lm", {NULL}, 1428, "udp"},
-{"nms", {NULL}, 1429, "tcp"},
-{"nms", {NULL}, 1429, "udp"},
-{"tpdu", {NULL}, 1430, "tcp"},
-{"tpdu", {NULL}, 1430, "udp"},
-{"rgtp", {NULL}, 1431, "tcp"},
-{"rgtp", {NULL}, 1431, "udp"},
-{"blueberry-lm", {NULL}, 1432, "tcp"},
-{"blueberry-lm", {NULL}, 1432, "udp"},
-{"ms-sql-s", {NULL}, 1433, "tcp"},
-{"ms-sql-s", {NULL}, 1433, "udp"},
-{"ms-sql-m", {NULL}, 1434, "tcp"},
-{"ms-sql-m", {NULL}, 1434, "udp"},
-{"ibm-cics", {NULL}, 1435, "tcp"},
-{"ibm-cics", {NULL}, 1435, "udp"},
-{"saism", {NULL}, 1436, "tcp"},
-{"saism", {NULL}, 1436, "udp"},
-{"tabula", {NULL}, 1437, "tcp"},
-{"tabula", {NULL}, 1437, "udp"},
-{"eicon-server", {NULL}, 1438, "tcp"},
-{"eicon-server", {NULL}, 1438, "udp"},
-{"eicon-x25", {NULL}, 1439, "tcp"},
-{"eicon-x25", {NULL}, 1439, "udp"},
-{"eicon-slp", {NULL}, 1440, "tcp"},
-{"eicon-slp", {NULL}, 1440, "udp"},
-{"cadis-1", {NULL}, 1441, "tcp"},
-{"cadis-1", {NULL}, 1441, "udp"},
-{"cadis-2", {NULL}, 1442, "tcp"},
-{"cadis-2", {NULL}, 1442, "udp"},
-{"ies-lm", {NULL}, 1443, "tcp"},
-{"ies-lm", {NULL}, 1443, "udp"},
-{"marcam-lm", {NULL}, 1444, "tcp"},
-{"marcam-lm", {NULL}, 1444, "udp"},
-{"proxima-lm", {NULL}, 1445, "tcp"},
-{"proxima-lm", {NULL}, 1445, "udp"},
-{"ora-lm", {NULL}, 1446, "tcp"},
-{"ora-lm", {NULL}, 1446, "udp"},
-{"apri-lm", {NULL}, 1447, "tcp"},
-{"apri-lm", {NULL}, 1447, "udp"},
-{"oc-lm", {NULL}, 1448, "tcp"},
-{"oc-lm", {NULL}, 1448, "udp"},
-{"peport", {NULL}, 1449, "tcp"},
-{"peport", {NULL}, 1449, "udp"},
-{"dwf", {NULL}, 1450, "tcp"},
-{"dwf", {NULL}, 1450, "udp"},
-{"infoman", {NULL}, 1451, "tcp"},
-{"infoman", {NULL}, 1451, "udp"},
-{"gtegsc-lm", {NULL}, 1452, "tcp"},
-{"gtegsc-lm", {NULL}, 1452, "udp"},
-{"genie-lm", {NULL}, 1453, "tcp"},
-{"genie-lm", {NULL}, 1453, "udp"},
-{"interhdl_elmd", {NULL}, 1454, "tcp"},
-{"interhdl_elmd", {NULL}, 1454, "udp"},
-{"esl-lm", {NULL}, 1455, "tcp"},
-{"esl-lm", {NULL}, 1455, "udp"},
-{"dca", {NULL}, 1456, "tcp"},
-{"dca", {NULL}, 1456, "udp"},
-{"valisys-lm", {NULL}, 1457, "tcp"},
-{"valisys-lm", {NULL}, 1457, "udp"},
-{"nrcabq-lm", {NULL}, 1458, "tcp"},
-{"nrcabq-lm", {NULL}, 1458, "udp"},
-{"proshare1", {NULL}, 1459, "tcp"},
-{"proshare1", {NULL}, 1459, "udp"},
-{"proshare2", {NULL}, 1460, "tcp"},
-{"proshare2", {NULL}, 1460, "udp"},
-{"ibm_wrless_lan", {NULL}, 1461, "tcp"},
-{"ibm_wrless_lan", {NULL}, 1461, "udp"},
-{"world-lm", {NULL}, 1462, "tcp"},
-{"world-lm", {NULL}, 1462, "udp"},
-{"nucleus", {NULL}, 1463, "tcp"},
-{"nucleus", {NULL}, 1463, "udp"},
-{"msl_lmd", {NULL}, 1464, "tcp"},
-{"msl_lmd", {NULL}, 1464, "udp"},
-{"pipes", {NULL}, 1465, "tcp"},
-{"pipes", {NULL}, 1465, "udp"},
-{"oceansoft-lm", {NULL}, 1466, "tcp"},
-{"oceansoft-lm", {NULL}, 1466, "udp"},
-{"csdmbase", {NULL}, 1467, "tcp"},
-{"csdmbase", {NULL}, 1467, "udp"},
-{"csdm", {NULL}, 1468, "tcp"},
-{"csdm", {NULL}, 1468, "udp"},
-{"aal-lm", {NULL}, 1469, "tcp"},
-{"aal-lm", {NULL}, 1469, "udp"},
-{"uaiact", {NULL}, 1470, "tcp"},
-{"uaiact", {NULL}, 1470, "udp"},
-{"csdmbase", {NULL}, 1471, "tcp"},
-{"csdmbase", {NULL}, 1471, "udp"},
-{"csdm", {NULL}, 1472, "tcp"},
-{"csdm", {NULL}, 1472, "udp"},
-{"openmath", {NULL}, 1473, "tcp"},
-{"openmath", {NULL}, 1473, "udp"},
-{"telefinder", {NULL}, 1474, "tcp"},
-{"telefinder", {NULL}, 1474, "udp"},
-{"taligent-lm", {NULL}, 1475, "tcp"},
-{"taligent-lm", {NULL}, 1475, "udp"},
-{"clvm-cfg", {NULL}, 1476, "tcp"},
-{"clvm-cfg", {NULL}, 1476, "udp"},
-{"ms-sna-server", {NULL}, 1477, "tcp"},
-{"ms-sna-server", {NULL}, 1477, "udp"},
-{"ms-sna-base", {NULL}, 1478, "tcp"},
-{"ms-sna-base", {NULL}, 1478, "udp"},
-{"dberegister", {NULL}, 1479, "tcp"},
-{"dberegister", {NULL}, 1479, "udp"},
-{"pacerforum", {NULL}, 1480, "tcp"},
-{"pacerforum", {NULL}, 1480, "udp"},
-{"airs", {NULL}, 1481, "tcp"},
-{"airs", {NULL}, 1481, "udp"},
-{"miteksys-lm", {NULL}, 1482, "tcp"},
-{"miteksys-lm", {NULL}, 1482, "udp"},
-{"afs", {NULL}, 1483, "tcp"},
-{"afs", {NULL}, 1483, "udp"},
-{"confluent", {NULL}, 1484, "tcp"},
-{"confluent", {NULL}, 1484, "udp"},
-{"lansource", {NULL}, 1485, "tcp"},
-{"lansource", {NULL}, 1485, "udp"},
-{"nms_topo_serv", {NULL}, 1486, "tcp"},
-{"nms_topo_serv", {NULL}, 1486, "udp"},
-{"localinfosrvr", {NULL}, 1487, "tcp"},
-{"localinfosrvr", {NULL}, 1487, "udp"},
-{"docstor", {NULL}, 1488, "tcp"},
-{"docstor", {NULL}, 1488, "udp"},
-{"dmdocbroker", {NULL}, 1489, "tcp"},
-{"dmdocbroker", {NULL}, 1489, "udp"},
-{"insitu-conf", {NULL}, 1490, "tcp"},
-{"insitu-conf", {NULL}, 1490, "udp"},
-{"stone-design-1", {NULL}, 1492, "tcp"},
-{"stone-design-1", {NULL}, 1492, "udp"},
-{"netmap_lm", {NULL}, 1493, "tcp"},
-{"netmap_lm", {NULL}, 1493, "udp"},
-{"ica", {NULL}, 1494, "tcp"},
-{"ica", {NULL}, 1494, "udp"},
-{"cvc", {NULL}, 1495, "tcp"},
-{"cvc", {NULL}, 1495, "udp"},
-{"liberty-lm", {NULL}, 1496, "tcp"},
-{"liberty-lm", {NULL}, 1496, "udp"},
-{"rfx-lm", {NULL}, 1497, "tcp"},
-{"rfx-lm", {NULL}, 1497, "udp"},
-{"sybase-sqlany", {NULL}, 1498, "tcp"},
-{"sybase-sqlany", {NULL}, 1498, "udp"},
-{"fhc", {NULL}, 1499, "tcp"},
-{"fhc", {NULL}, 1499, "udp"},
-{"vlsi-lm", {NULL}, 1500, "tcp"},
-{"vlsi-lm", {NULL}, 1500, "udp"},
-{"saiscm", {NULL}, 1501, "tcp"},
-{"saiscm", {NULL}, 1501, "udp"},
-{"shivadiscovery", {NULL}, 1502, "tcp"},
-{"shivadiscovery", {NULL}, 1502, "udp"},
-{"imtc-mcs", {NULL}, 1503, "tcp"},
-{"imtc-mcs", {NULL}, 1503, "udp"},
-{"evb-elm", {NULL}, 1504, "tcp"},
-{"evb-elm", {NULL}, 1504, "udp"},
-{"funkproxy", {NULL}, 1505, "tcp"},
-{"funkproxy", {NULL}, 1505, "udp"},
-{"utcd", {NULL}, 1506, "tcp"},
-{"utcd", {NULL}, 1506, "udp"},
-{"symplex", {NULL}, 1507, "tcp"},
-{"symplex", {NULL}, 1507, "udp"},
-{"diagmond", {NULL}, 1508, "tcp"},
-{"diagmond", {NULL}, 1508, "udp"},
-{"robcad-lm", {NULL}, 1509, "tcp"},
-{"robcad-lm", {NULL}, 1509, "udp"},
-{"mvx-lm", {NULL}, 1510, "tcp"},
-{"mvx-lm", {NULL}, 1510, "udp"},
-{"3l-l1", {NULL}, 1511, "tcp"},
-{"3l-l1", {NULL}, 1511, "udp"},
-{"wins", {NULL}, 1512, "tcp"},
-{"wins", {NULL}, 1512, "udp"},
-{"fujitsu-dtc", {NULL}, 1513, "tcp"},
-{"fujitsu-dtc", {NULL}, 1513, "udp"},
-{"fujitsu-dtcns", {NULL}, 1514, "tcp"},
-{"fujitsu-dtcns", {NULL}, 1514, "udp"},
-{"ifor-protocol", {NULL}, 1515, "tcp"},
-{"ifor-protocol", {NULL}, 1515, "udp"},
-{"vpad", {NULL}, 1516, "tcp"},
-{"vpad", {NULL}, 1516, "udp"},
-{"vpac", {NULL}, 1517, "tcp"},
-{"vpac", {NULL}, 1517, "udp"},
-{"vpvd", {NULL}, 1518, "tcp"},
-{"vpvd", {NULL}, 1518, "udp"},
-{"vpvc", {NULL}, 1519, "tcp"},
-{"vpvc", {NULL}, 1519, "udp"},
-{"atm-zip-office", {NULL}, 1520, "tcp"},
-{"atm-zip-office", {NULL}, 1520, "udp"},
-{"ncube-lm", {NULL}, 1521, "tcp"},
-{"ncube-lm", {NULL}, 1521, "udp"},
-{"ricardo-lm", {NULL}, 1522, "tcp"},
-{"ricardo-lm", {NULL}, 1522, "udp"},
-{"cichild-lm", {NULL}, 1523, "tcp"},
-{"cichild-lm", {NULL}, 1523, "udp"},
-{"ingreslock", {NULL}, 1524, "tcp"},
-{"ingreslock", {NULL}, 1524, "udp"},
-{"orasrv", {NULL}, 1525, "tcp"},
-{"orasrv", {NULL}, 1525, "udp"},
-{"prospero-np", {NULL}, 1525, "tcp"},
-{"prospero-np", {NULL}, 1525, "udp"},
-{"pdap-np", {NULL}, 1526, "tcp"},
-{"pdap-np", {NULL}, 1526, "udp"},
-{"tlisrv", {NULL}, 1527, "tcp"},
-{"tlisrv", {NULL}, 1527, "udp"},
-{"coauthor", {NULL}, 1529, "tcp"},
-{"coauthor", {NULL}, 1529, "udp"},
-{"rap-service", {NULL}, 1530, "tcp"},
-{"rap-service", {NULL}, 1530, "udp"},
-{"rap-listen", {NULL}, 1531, "tcp"},
-{"rap-listen", {NULL}, 1531, "udp"},
-{"miroconnect", {NULL}, 1532, "tcp"},
-{"miroconnect", {NULL}, 1532, "udp"},
-{"virtual-places", {NULL}, 1533, "tcp"},
-{"virtual-places", {NULL}, 1533, "udp"},
-{"micromuse-lm", {NULL}, 1534, "tcp"},
-{"micromuse-lm", {NULL}, 1534, "udp"},
-{"ampr-info", {NULL}, 1535, "tcp"},
-{"ampr-info", {NULL}, 1535, "udp"},
-{"ampr-inter", {NULL}, 1536, "tcp"},
-{"ampr-inter", {NULL}, 1536, "udp"},
-{"sdsc-lm", {NULL}, 1537, "tcp"},
-{"sdsc-lm", {NULL}, 1537, "udp"},
-{"3ds-lm", {NULL}, 1538, "tcp"},
-{"3ds-lm", {NULL}, 1538, "udp"},
-{"intellistor-lm", {NULL}, 1539, "tcp"},
-{"intellistor-lm", {NULL}, 1539, "udp"},
-{"rds", {NULL}, 1540, "tcp"},
-{"rds", {NULL}, 1540, "udp"},
-{"rds2", {NULL}, 1541, "tcp"},
-{"rds2", {NULL}, 1541, "udp"},
-{"gridgen-elmd", {NULL}, 1542, "tcp"},
-{"gridgen-elmd", {NULL}, 1542, "udp"},
-{"simba-cs", {NULL}, 1543, "tcp"},
-{"simba-cs", {NULL}, 1543, "udp"},
-{"aspeclmd", {NULL}, 1544, "tcp"},
-{"aspeclmd", {NULL}, 1544, "udp"},
-{"vistium-share", {NULL}, 1545, "tcp"},
-{"vistium-share", {NULL}, 1545, "udp"},
-{"abbaccuray", {NULL}, 1546, "tcp"},
-{"abbaccuray", {NULL}, 1546, "udp"},
-{"laplink", {NULL}, 1547, "tcp"},
-{"laplink", {NULL}, 1547, "udp"},
-{"axon-lm", {NULL}, 1548, "tcp"},
-{"axon-lm", {NULL}, 1548, "udp"},
-{"shivahose", {NULL}, 1549, "tcp"},
-{"shivasound", {NULL}, 1549, "udp"},
-{"3m-image-lm", {NULL}, 1550, "tcp"},
-{"3m-image-lm", {NULL}, 1550, "udp"},
-{"hecmtl-db", {NULL}, 1551, "tcp"},
-{"hecmtl-db", {NULL}, 1551, "udp"},
-{"pciarray", {NULL}, 1552, "tcp"},
-{"pciarray", {NULL}, 1552, "udp"},
-{"sna-cs", {NULL}, 1553, "tcp"},
-{"sna-cs", {NULL}, 1553, "udp"},
-{"caci-lm", {NULL}, 1554, "tcp"},
-{"caci-lm", {NULL}, 1554, "udp"},
-{"livelan", {NULL}, 1555, "tcp"},
-{"livelan", {NULL}, 1555, "udp"},
-{"veritas_pbx", {NULL}, 1556, "tcp"},
-{"veritas_pbx", {NULL}, 1556, "udp"},
-{"arbortext-lm", {NULL}, 1557, "tcp"},
-{"arbortext-lm", {NULL}, 1557, "udp"},
-{"xingmpeg", {NULL}, 1558, "tcp"},
-{"xingmpeg", {NULL}, 1558, "udp"},
-{"web2host", {NULL}, 1559, "tcp"},
-{"web2host", {NULL}, 1559, "udp"},
-{"asci-val", {NULL}, 1560, "tcp"},
-{"asci-val", {NULL}, 1560, "udp"},
-{"facilityview", {NULL}, 1561, "tcp"},
-{"facilityview", {NULL}, 1561, "udp"},
-{"pconnectmgr", {NULL}, 1562, "tcp"},
-{"pconnectmgr", {NULL}, 1562, "udp"},
-{"cadabra-lm", {NULL}, 1563, "tcp"},
-{"cadabra-lm", {NULL}, 1563, "udp"},
-{"pay-per-view", {NULL}, 1564, "tcp"},
-{"pay-per-view", {NULL}, 1564, "udp"},
-{"winddlb", {NULL}, 1565, "tcp"},
-{"winddlb", {NULL}, 1565, "udp"},
-{"corelvideo", {NULL}, 1566, "tcp"},
-{"corelvideo", {NULL}, 1566, "udp"},
-{"jlicelmd", {NULL}, 1567, "tcp"},
-{"jlicelmd", {NULL}, 1567, "udp"},
-{"tsspmap", {NULL}, 1568, "tcp"},
-{"tsspmap", {NULL}, 1568, "udp"},
-{"ets", {NULL}, 1569, "tcp"},
-{"ets", {NULL}, 1569, "udp"},
-{"orbixd", {NULL}, 1570, "tcp"},
-{"orbixd", {NULL}, 1570, "udp"},
-{"rdb-dbs-disp", {NULL}, 1571, "tcp"},
-{"rdb-dbs-disp", {NULL}, 1571, "udp"},
-{"chip-lm", {NULL}, 1572, "tcp"},
-{"chip-lm", {NULL}, 1572, "udp"},
-{"itscomm-ns", {NULL}, 1573, "tcp"},
-{"itscomm-ns", {NULL}, 1573, "udp"},
-{"mvel-lm", {NULL}, 1574, "tcp"},
-{"mvel-lm", {NULL}, 1574, "udp"},
-{"oraclenames", {NULL}, 1575, "tcp"},
-{"oraclenames", {NULL}, 1575, "udp"},
-{"moldflow-lm", {NULL}, 1576, "tcp"},
-{"moldflow-lm", {NULL}, 1576, "udp"},
-{"hypercube-lm", {NULL}, 1577, "tcp"},
-{"hypercube-lm", {NULL}, 1577, "udp"},
-{"jacobus-lm", {NULL}, 1578, "tcp"},
-{"jacobus-lm", {NULL}, 1578, "udp"},
-{"ioc-sea-lm", {NULL}, 1579, "tcp"},
-{"ioc-sea-lm", {NULL}, 1579, "udp"},
-{"tn-tl-r1", {NULL}, 1580, "tcp"},
-{"tn-tl-r2", {NULL}, 1580, "udp"},
-{"mil-2045-47001", {NULL}, 1581, "tcp"},
-{"mil-2045-47001", {NULL}, 1581, "udp"},
-{"msims", {NULL}, 1582, "tcp"},
-{"msims", {NULL}, 1582, "udp"},
-{"simbaexpress", {NULL}, 1583, "tcp"},
-{"simbaexpress", {NULL}, 1583, "udp"},
-{"tn-tl-fd2", {NULL}, 1584, "tcp"},
-{"tn-tl-fd2", {NULL}, 1584, "udp"},
-{"intv", {NULL}, 1585, "tcp"},
-{"intv", {NULL}, 1585, "udp"},
-{"ibm-abtact", {NULL}, 1586, "tcp"},
-{"ibm-abtact", {NULL}, 1586, "udp"},
-{"pra_elmd", {NULL}, 1587, "tcp"},
-{"pra_elmd", {NULL}, 1587, "udp"},
-{"triquest-lm", {NULL}, 1588, "tcp"},
-{"triquest-lm", {NULL}, 1588, "udp"},
-{"vqp", {NULL}, 1589, "tcp"},
-{"vqp", {NULL}, 1589, "udp"},
-{"gemini-lm", {NULL}, 1590, "tcp"},
-{"gemini-lm", {NULL}, 1590, "udp"},
-{"ncpm-pm", {NULL}, 1591, "tcp"},
-{"ncpm-pm", {NULL}, 1591, "udp"},
-{"commonspace", {NULL}, 1592, "tcp"},
-{"commonspace", {NULL}, 1592, "udp"},
-{"mainsoft-lm", {NULL}, 1593, "tcp"},
-{"mainsoft-lm", {NULL}, 1593, "udp"},
-{"sixtrak", {NULL}, 1594, "tcp"},
-{"sixtrak", {NULL}, 1594, "udp"},
-{"radio", {NULL}, 1595, "tcp"},
-{"radio", {NULL}, 1595, "udp"},
-{"radio-sm", {NULL}, 1596, "tcp"},
-{"radio-bc", {NULL}, 1596, "udp"},
-{"orbplus-iiop", {NULL}, 1597, "tcp"},
-{"orbplus-iiop", {NULL}, 1597, "udp"},
-{"picknfs", {NULL}, 1598, "tcp"},
-{"picknfs", {NULL}, 1598, "udp"},
-{"simbaservices", {NULL}, 1599, "tcp"},
-{"simbaservices", {NULL}, 1599, "udp"},
-{"issd", {NULL}, 1600, "tcp"},
-{"issd", {NULL}, 1600, "udp"},
-{"aas", {NULL}, 1601, "tcp"},
-{"aas", {NULL}, 1601, "udp"},
-{"inspect", {NULL}, 1602, "tcp"},
-{"inspect", {NULL}, 1602, "udp"},
-{"picodbc", {NULL}, 1603, "tcp"},
-{"picodbc", {NULL}, 1603, "udp"},
-{"icabrowser", {NULL}, 1604, "tcp"},
-{"icabrowser", {NULL}, 1604, "udp"},
-{"slp", {NULL}, 1605, "tcp"},
-{"slp", {NULL}, 1605, "udp"},
-{"slm-api", {NULL}, 1606, "tcp"},
-{"slm-api", {NULL}, 1606, "udp"},
-{"stt", {NULL}, 1607, "tcp"},
-{"stt", {NULL}, 1607, "udp"},
-{"smart-lm", {NULL}, 1608, "tcp"},
-{"smart-lm", {NULL}, 1608, "udp"},
-{"isysg-lm", {NULL}, 1609, "tcp"},
-{"isysg-lm", {NULL}, 1609, "udp"},
-{"taurus-wh", {NULL}, 1610, "tcp"},
-{"taurus-wh", {NULL}, 1610, "udp"},
-{"ill", {NULL}, 1611, "tcp"},
-{"ill", {NULL}, 1611, "udp"},
-{"netbill-trans", {NULL}, 1612, "tcp"},
-{"netbill-trans", {NULL}, 1612, "udp"},
-{"netbill-keyrep", {NULL}, 1613, "tcp"},
-{"netbill-keyrep", {NULL}, 1613, "udp"},
-{"netbill-cred", {NULL}, 1614, "tcp"},
-{"netbill-cred", {NULL}, 1614, "udp"},
-{"netbill-auth", {NULL}, 1615, "tcp"},
-{"netbill-auth", {NULL}, 1615, "udp"},
-{"netbill-prod", {NULL}, 1616, "tcp"},
-{"netbill-prod", {NULL}, 1616, "udp"},
-{"nimrod-agent", {NULL}, 1617, "tcp"},
-{"nimrod-agent", {NULL}, 1617, "udp"},
-{"skytelnet", {NULL}, 1618, "tcp"},
-{"skytelnet", {NULL}, 1618, "udp"},
-{"xs-openstorage", {NULL}, 1619, "tcp"},
-{"xs-openstorage", {NULL}, 1619, "udp"},
-{"faxportwinport", {NULL}, 1620, "tcp"},
-{"faxportwinport", {NULL}, 1620, "udp"},
-{"softdataphone", {NULL}, 1621, "tcp"},
-{"softdataphone", {NULL}, 1621, "udp"},
-{"ontime", {NULL}, 1622, "tcp"},
-{"ontime", {NULL}, 1622, "udp"},
-{"jaleosnd", {NULL}, 1623, "tcp"},
-{"jaleosnd", {NULL}, 1623, "udp"},
-{"udp-sr-port", {NULL}, 1624, "tcp"},
-{"udp-sr-port", {NULL}, 1624, "udp"},
-{"svs-omagent", {NULL}, 1625, "tcp"},
-{"svs-omagent", {NULL}, 1625, "udp"},
-{"shockwave", {NULL}, 1626, "tcp"},
-{"shockwave", {NULL}, 1626, "udp"},
-{"t128-gateway", {NULL}, 1627, "tcp"},
-{"t128-gateway", {NULL}, 1627, "udp"},
-{"lontalk-norm", {NULL}, 1628, "tcp"},
-{"lontalk-norm", {NULL}, 1628, "udp"},
-{"lontalk-urgnt", {NULL}, 1629, "tcp"},
-{"lontalk-urgnt", {NULL}, 1629, "udp"},
-{"oraclenet8cman", {NULL}, 1630, "tcp"},
-{"oraclenet8cman", {NULL}, 1630, "udp"},
-{"visitview", {NULL}, 1631, "tcp"},
-{"visitview", {NULL}, 1631, "udp"},
-{"pammratc", {NULL}, 1632, "tcp"},
-{"pammratc", {NULL}, 1632, "udp"},
-{"pammrpc", {NULL}, 1633, "tcp"},
-{"pammrpc", {NULL}, 1633, "udp"},
-{"loaprobe", {NULL}, 1634, "tcp"},
-{"loaprobe", {NULL}, 1634, "udp"},
-{"edb-server1", {NULL}, 1635, "tcp"},
-{"edb-server1", {NULL}, 1635, "udp"},
-{"isdc", {NULL}, 1636, "tcp"},
-{"isdc", {NULL}, 1636, "udp"},
-{"islc", {NULL}, 1637, "tcp"},
-{"islc", {NULL}, 1637, "udp"},
-{"ismc", {NULL}, 1638, "tcp"},
-{"ismc", {NULL}, 1638, "udp"},
-{"cert-initiator", {NULL}, 1639, "tcp"},
-{"cert-initiator", {NULL}, 1639, "udp"},
-{"cert-responder", {NULL}, 1640, "tcp"},
-{"cert-responder", {NULL}, 1640, "udp"},
-{"invision", {NULL}, 1641, "tcp"},
-{"invision", {NULL}, 1641, "udp"},
-{"isis-am", {NULL}, 1642, "tcp"},
-{"isis-am", {NULL}, 1642, "udp"},
-{"isis-ambc", {NULL}, 1643, "tcp"},
-{"isis-ambc", {NULL}, 1643, "udp"},
-{"saiseh", {NULL}, 1644, "tcp"},
-{"sightline", {NULL}, 1645, "tcp"},
-{"sightline", {NULL}, 1645, "udp"},
-{"sa-msg-port", {NULL}, 1646, "tcp"},
-{"sa-msg-port", {NULL}, 1646, "udp"},
-{"rsap", {NULL}, 1647, "tcp"},
-{"rsap", {NULL}, 1647, "udp"},
-{"concurrent-lm", {NULL}, 1648, "tcp"},
-{"concurrent-lm", {NULL}, 1648, "udp"},
-{"kermit", {NULL}, 1649, "tcp"},
-{"kermit", {NULL}, 1649, "udp"},
-{"nkd", {NULL}, 1650, "tcp"},
-{"nkd", {NULL}, 1650, "udp"},
-{"shiva_confsrvr", {NULL}, 1651, "tcp"},
-{"shiva_confsrvr", {NULL}, 1651, "udp"},
-{"xnmp", {NULL}, 1652, "tcp"},
-{"xnmp", {NULL}, 1652, "udp"},
-{"alphatech-lm", {NULL}, 1653, "tcp"},
-{"alphatech-lm", {NULL}, 1653, "udp"},
-{"stargatealerts", {NULL}, 1654, "tcp"},
-{"stargatealerts", {NULL}, 1654, "udp"},
-{"dec-mbadmin", {NULL}, 1655, "tcp"},
-{"dec-mbadmin", {NULL}, 1655, "udp"},
-{"dec-mbadmin-h", {NULL}, 1656, "tcp"},
-{"dec-mbadmin-h", {NULL}, 1656, "udp"},
-{"fujitsu-mmpdc", {NULL}, 1657, "tcp"},
-{"fujitsu-mmpdc", {NULL}, 1657, "udp"},
-{"sixnetudr", {NULL}, 1658, "tcp"},
-{"sixnetudr", {NULL}, 1658, "udp"},
-{"sg-lm", {NULL}, 1659, "tcp"},
-{"sg-lm", {NULL}, 1659, "udp"},
-{"skip-mc-gikreq", {NULL}, 1660, "tcp"},
-{"skip-mc-gikreq", {NULL}, 1660, "udp"},
-{"netview-aix-1", {NULL}, 1661, "tcp"},
-{"netview-aix-1", {NULL}, 1661, "udp"},
-{"netview-aix-2", {NULL}, 1662, "tcp"},
-{"netview-aix-2", {NULL}, 1662, "udp"},
-{"netview-aix-3", {NULL}, 1663, "tcp"},
-{"netview-aix-3", {NULL}, 1663, "udp"},
-{"netview-aix-4", {NULL}, 1664, "tcp"},
-{"netview-aix-4", {NULL}, 1664, "udp"},
-{"netview-aix-5", {NULL}, 1665, "tcp"},
-{"netview-aix-5", {NULL}, 1665, "udp"},
-{"netview-aix-6", {NULL}, 1666, "tcp"},
-{"netview-aix-6", {NULL}, 1666, "udp"},
-{"netview-aix-7", {NULL}, 1667, "tcp"},
-{"netview-aix-7", {NULL}, 1667, "udp"},
-{"netview-aix-8", {NULL}, 1668, "tcp"},
-{"netview-aix-8", {NULL}, 1668, "udp"},
-{"netview-aix-9", {NULL}, 1669, "tcp"},
-{"netview-aix-9", {NULL}, 1669, "udp"},
-{"netview-aix-10", {NULL}, 1670, "tcp"},
-{"netview-aix-10", {NULL}, 1670, "udp"},
-{"netview-aix-11", {NULL}, 1671, "tcp"},
-{"netview-aix-11", {NULL}, 1671, "udp"},
-{"netview-aix-12", {NULL}, 1672, "tcp"},
-{"netview-aix-12", {NULL}, 1672, "udp"},
-{"proshare-mc-1", {NULL}, 1673, "tcp"},
-{"proshare-mc-1", {NULL}, 1673, "udp"},
-{"proshare-mc-2", {NULL}, 1674, "tcp"},
-{"proshare-mc-2", {NULL}, 1674, "udp"},
-{"pdp", {NULL}, 1675, "tcp"},
-{"pdp", {NULL}, 1675, "udp"},
-{"netcomm1", {NULL}, 1676, "tcp"},
-{"netcomm2", {NULL}, 1676, "udp"},
-{"groupwise", {NULL}, 1677, "tcp"},
-{"groupwise", {NULL}, 1677, "udp"},
-{"prolink", {NULL}, 1678, "tcp"},
-{"prolink", {NULL}, 1678, "udp"},
-{"darcorp-lm", {NULL}, 1679, "tcp"},
-{"darcorp-lm", {NULL}, 1679, "udp"},
-{"microcom-sbp", {NULL}, 1680, "tcp"},
-{"microcom-sbp", {NULL}, 1680, "udp"},
-{"sd-elmd", {NULL}, 1681, "tcp"},
-{"sd-elmd", {NULL}, 1681, "udp"},
-{"lanyon-lantern", {NULL}, 1682, "tcp"},
-{"lanyon-lantern", {NULL}, 1682, "udp"},
-{"ncpm-hip", {NULL}, 1683, "tcp"},
-{"ncpm-hip", {NULL}, 1683, "udp"},
-{"snaresecure", {NULL}, 1684, "tcp"},
-{"snaresecure", {NULL}, 1684, "udp"},
-{"n2nremote", {NULL}, 1685, "tcp"},
-{"n2nremote", {NULL}, 1685, "udp"},
-{"cvmon", {NULL}, 1686, "tcp"},
-{"cvmon", {NULL}, 1686, "udp"},
-{"nsjtp-ctrl", {NULL}, 1687, "tcp"},
-{"nsjtp-ctrl", {NULL}, 1687, "udp"},
-{"nsjtp-data", {NULL}, 1688, "tcp"},
-{"nsjtp-data", {NULL}, 1688, "udp"},
-{"firefox", {NULL}, 1689, "tcp"},
-{"firefox", {NULL}, 1689, "udp"},
-{"ng-umds", {NULL}, 1690, "tcp"},
-{"ng-umds", {NULL}, 1690, "udp"},
-{"empire-empuma", {NULL}, 1691, "tcp"},
-{"empire-empuma", {NULL}, 1691, "udp"},
-{"sstsys-lm", {NULL}, 1692, "tcp"},
-{"sstsys-lm", {NULL}, 1692, "udp"},
-{"rrirtr", {NULL}, 1693, "tcp"},
-{"rrirtr", {NULL}, 1693, "udp"},
-{"rrimwm", {NULL}, 1694, "tcp"},
-{"rrimwm", {NULL}, 1694, "udp"},
-{"rrilwm", {NULL}, 1695, "tcp"},
-{"rrilwm", {NULL}, 1695, "udp"},
-{"rrifmm", {NULL}, 1696, "tcp"},
-{"rrifmm", {NULL}, 1696, "udp"},
-{"rrisat", {NULL}, 1697, "tcp"},
-{"rrisat", {NULL}, 1697, "udp"},
-{"rsvp-encap-1", {NULL}, 1698, "tcp"},
-{"rsvp-encap-1", {NULL}, 1698, "udp"},
-{"rsvp-encap-2", {NULL}, 1699, "tcp"},
-{"rsvp-encap-2", {NULL}, 1699, "udp"},
-{"mps-raft", {NULL}, 1700, "tcp"},
-{"mps-raft", {NULL}, 1700, "udp"},
-{"l2f", {NULL}, 1701, "tcp"},
-{"l2f", {NULL}, 1701, "udp"},
-{"l2tp", {NULL}, 1701, "tcp"},
-{"l2tp", {NULL}, 1701, "udp"},
-{"deskshare", {NULL}, 1702, "tcp"},
-{"deskshare", {NULL}, 1702, "udp"},
-{"hb-engine", {NULL}, 1703, "tcp"},
-{"hb-engine", {NULL}, 1703, "udp"},
-{"bcs-broker", {NULL}, 1704, "tcp"},
-{"bcs-broker", {NULL}, 1704, "udp"},
-{"slingshot", {NULL}, 1705, "tcp"},
-{"slingshot", {NULL}, 1705, "udp"},
-{"jetform", {NULL}, 1706, "tcp"},
-{"jetform", {NULL}, 1706, "udp"},
-{"vdmplay", {NULL}, 1707, "tcp"},
-{"vdmplay", {NULL}, 1707, "udp"},
-{"gat-lmd", {NULL}, 1708, "tcp"},
-{"gat-lmd", {NULL}, 1708, "udp"},
-{"centra", {NULL}, 1709, "tcp"},
-{"centra", {NULL}, 1709, "udp"},
-{"impera", {NULL}, 1710, "tcp"},
-{"impera", {NULL}, 1710, "udp"},
-{"pptconference", {NULL}, 1711, "tcp"},
-{"pptconference", {NULL}, 1711, "udp"},
-{"registrar", {NULL}, 1712, "tcp"},
-{"registrar", {NULL}, 1712, "udp"},
-{"conferencetalk", {NULL}, 1713, "tcp"},
-{"conferencetalk", {NULL}, 1713, "udp"},
-{"sesi-lm", {NULL}, 1714, "tcp"},
-{"sesi-lm", {NULL}, 1714, "udp"},
-{"houdini-lm", {NULL}, 1715, "tcp"},
-{"houdini-lm", {NULL}, 1715, "udp"},
-{"xmsg", {NULL}, 1716, "tcp"},
-{"xmsg", {NULL}, 1716, "udp"},
-{"fj-hdnet", {NULL}, 1717, "tcp"},
-{"fj-hdnet", {NULL}, 1717, "udp"},
-{"h323gatedisc", {NULL}, 1718, "tcp"},
-{"h323gatedisc", {NULL}, 1718, "udp"},
-{"h323gatestat", {NULL}, 1719, "tcp"},
-{"h323gatestat", {NULL}, 1719, "udp"},
-{"h323hostcall", {NULL}, 1720, "tcp"},
-{"h323hostcall", {NULL}, 1720, "udp"},
-{"caicci", {NULL}, 1721, "tcp"},
-{"caicci", {NULL}, 1721, "udp"},
-{"hks-lm", {NULL}, 1722, "tcp"},
-{"hks-lm", {NULL}, 1722, "udp"},
-{"pptp", {NULL}, 1723, "tcp"},
-{"pptp", {NULL}, 1723, "udp"},
-{"csbphonemaster", {NULL}, 1724, "tcp"},
-{"csbphonemaster", {NULL}, 1724, "udp"},
-{"iden-ralp", {NULL}, 1725, "tcp"},
-{"iden-ralp", {NULL}, 1725, "udp"},
-{"iberiagames", {NULL}, 1726, "tcp"},
-{"iberiagames", {NULL}, 1726, "udp"},
-{"winddx", {NULL}, 1727, "tcp"},
-{"winddx", {NULL}, 1727, "udp"},
-{"telindus", {NULL}, 1728, "tcp"},
-{"telindus", {NULL}, 1728, "udp"},
-{"citynl", {NULL}, 1729, "tcp"},
-{"citynl", {NULL}, 1729, "udp"},
-{"roketz", {NULL}, 1730, "tcp"},
-{"roketz", {NULL}, 1730, "udp"},
-{"msiccp", {NULL}, 1731, "tcp"},
-{"msiccp", {NULL}, 1731, "udp"},
-{"proxim", {NULL}, 1732, "tcp"},
-{"proxim", {NULL}, 1732, "udp"},
-{"siipat", {NULL}, 1733, "tcp"},
-{"siipat", {NULL}, 1733, "udp"},
-{"cambertx-lm", {NULL}, 1734, "tcp"},
-{"cambertx-lm", {NULL}, 1734, "udp"},
-{"privatechat", {NULL}, 1735, "tcp"},
-{"privatechat", {NULL}, 1735, "udp"},
-{"street-stream", {NULL}, 1736, "tcp"},
-{"street-stream", {NULL}, 1736, "udp"},
-{"ultimad", {NULL}, 1737, "tcp"},
-{"ultimad", {NULL}, 1737, "udp"},
-{"gamegen1", {NULL}, 1738, "tcp"},
-{"gamegen1", {NULL}, 1738, "udp"},
-{"webaccess", {NULL}, 1739, "tcp"},
-{"webaccess", {NULL}, 1739, "udp"},
-{"encore", {NULL}, 1740, "tcp"},
-{"encore", {NULL}, 1740, "udp"},
-{"cisco-net-mgmt", {NULL}, 1741, "tcp"},
-{"cisco-net-mgmt", {NULL}, 1741, "udp"},
-{"3Com-nsd", {NULL}, 1742, "tcp"},
-{"3Com-nsd", {NULL}, 1742, "udp"},
-{"cinegrfx-lm", {NULL}, 1743, "tcp"},
-{"cinegrfx-lm", {NULL}, 1743, "udp"},
-{"ncpm-ft", {NULL}, 1744, "tcp"},
-{"ncpm-ft", {NULL}, 1744, "udp"},
-{"remote-winsock", {NULL}, 1745, "tcp"},
-{"remote-winsock", {NULL}, 1745, "udp"},
-{"ftrapid-1", {NULL}, 1746, "tcp"},
-{"ftrapid-1", {NULL}, 1746, "udp"},
-{"ftrapid-2", {NULL}, 1747, "tcp"},
-{"ftrapid-2", {NULL}, 1747, "udp"},
-{"oracle-em1", {NULL}, 1748, "tcp"},
-{"oracle-em1", {NULL}, 1748, "udp"},
-{"aspen-services", {NULL}, 1749, "tcp"},
-{"aspen-services", {NULL}, 1749, "udp"},
-{"sslp", {NULL}, 1750, "tcp"},
-{"sslp", {NULL}, 1750, "udp"},
-{"swiftnet", {NULL}, 1751, "tcp"},
-{"swiftnet", {NULL}, 1751, "udp"},
-{"lofr-lm", {NULL}, 1752, "tcp"},
-{"lofr-lm", {NULL}, 1752, "udp"},
-{"oracle-em2", {NULL}, 1754, "tcp"},
-{"oracle-em2", {NULL}, 1754, "udp"},
-{"ms-streaming", {NULL}, 1755, "tcp"},
-{"ms-streaming", {NULL}, 1755, "udp"},
-{"capfast-lmd", {NULL}, 1756, "tcp"},
-{"capfast-lmd", {NULL}, 1756, "udp"},
-{"cnhrp", {NULL}, 1757, "tcp"},
-{"cnhrp", {NULL}, 1757, "udp"},
-{"tftp-mcast", {NULL}, 1758, "tcp"},
-{"tftp-mcast", {NULL}, 1758, "udp"},
-{"spss-lm", {NULL}, 1759, "tcp"},
-{"spss-lm", {NULL}, 1759, "udp"},
-{"www-ldap-gw", {NULL}, 1760, "tcp"},
-{"www-ldap-gw", {NULL}, 1760, "udp"},
-{"cft-0", {NULL}, 1761, "tcp"},
-{"cft-0", {NULL}, 1761, "udp"},
-{"cft-1", {NULL}, 1762, "tcp"},
-{"cft-1", {NULL}, 1762, "udp"},
-{"cft-2", {NULL}, 1763, "tcp"},
-{"cft-2", {NULL}, 1763, "udp"},
-{"cft-3", {NULL}, 1764, "tcp"},
-{"cft-3", {NULL}, 1764, "udp"},
-{"cft-4", {NULL}, 1765, "tcp"},
-{"cft-4", {NULL}, 1765, "udp"},
-{"cft-5", {NULL}, 1766, "tcp"},
-{"cft-5", {NULL}, 1766, "udp"},
-{"cft-6", {NULL}, 1767, "tcp"},
-{"cft-6", {NULL}, 1767, "udp"},
-{"cft-7", {NULL}, 1768, "tcp"},
-{"cft-7", {NULL}, 1768, "udp"},
-{"bmc-net-adm", {NULL}, 1769, "tcp"},
-{"bmc-net-adm", {NULL}, 1769, "udp"},
-{"bmc-net-svc", {NULL}, 1770, "tcp"},
-{"bmc-net-svc", {NULL}, 1770, "udp"},
-{"vaultbase", {NULL}, 1771, "tcp"},
-{"vaultbase", {NULL}, 1771, "udp"},
-{"essweb-gw", {NULL}, 1772, "tcp"},
-{"essweb-gw", {NULL}, 1772, "udp"},
-{"kmscontrol", {NULL}, 1773, "tcp"},
-{"kmscontrol", {NULL}, 1773, "udp"},
-{"global-dtserv", {NULL}, 1774, "tcp"},
-{"global-dtserv", {NULL}, 1774, "udp"},
-{"femis", {NULL}, 1776, "tcp"},
-{"femis", {NULL}, 1776, "udp"},
-{"powerguardian", {NULL}, 1777, "tcp"},
-{"powerguardian", {NULL}, 1777, "udp"},
-{"prodigy-intrnet", {NULL}, 1778, "tcp"},
-{"prodigy-intrnet", {NULL}, 1778, "udp"},
-{"pharmasoft", {NULL}, 1779, "tcp"},
-{"pharmasoft", {NULL}, 1779, "udp"},
-{"dpkeyserv", {NULL}, 1780, "tcp"},
-{"dpkeyserv", {NULL}, 1780, "udp"},
-{"answersoft-lm", {NULL}, 1781, "tcp"},
-{"answersoft-lm", {NULL}, 1781, "udp"},
-{"hp-hcip", {NULL}, 1782, "tcp"},
-{"hp-hcip", {NULL}, 1782, "udp"},
-{"finle-lm", {NULL}, 1784, "tcp"},
-{"finle-lm", {NULL}, 1784, "udp"},
-{"windlm", {NULL}, 1785, "tcp"},
-{"windlm", {NULL}, 1785, "udp"},
-{"funk-logger", {NULL}, 1786, "tcp"},
-{"funk-logger", {NULL}, 1786, "udp"},
-{"funk-license", {NULL}, 1787, "tcp"},
-{"funk-license", {NULL}, 1787, "udp"},
-{"psmond", {NULL}, 1788, "tcp"},
-{"psmond", {NULL}, 1788, "udp"},
-{"hello", {NULL}, 1789, "tcp"},
-{"hello", {NULL}, 1789, "udp"},
-{"nmsp", {NULL}, 1790, "tcp"},
-{"nmsp", {NULL}, 1790, "udp"},
-{"ea1", {NULL}, 1791, "tcp"},
-{"ea1", {NULL}, 1791, "udp"},
-{"ibm-dt-2", {NULL}, 1792, "tcp"},
-{"ibm-dt-2", {NULL}, 1792, "udp"},
-{"rsc-robot", {NULL}, 1793, "tcp"},
-{"rsc-robot", {NULL}, 1793, "udp"},
-{"cera-bcm", {NULL}, 1794, "tcp"},
-{"cera-bcm", {NULL}, 1794, "udp"},
-{"dpi-proxy", {NULL}, 1795, "tcp"},
-{"dpi-proxy", {NULL}, 1795, "udp"},
-{"vocaltec-admin", {NULL}, 1796, "tcp"},
-{"vocaltec-admin", {NULL}, 1796, "udp"},
-{"uma", {NULL}, 1797, "tcp"},
-{"uma", {NULL}, 1797, "udp"},
-{"etp", {NULL}, 1798, "tcp"},
-{"etp", {NULL}, 1798, "udp"},
-{"netrisk", {NULL}, 1799, "tcp"},
-{"netrisk", {NULL}, 1799, "udp"},
-{"ansys-lm", {NULL}, 1800, "tcp"},
-{"ansys-lm", {NULL}, 1800, "udp"},
-{"msmq", {NULL}, 1801, "tcp"},
-{"msmq", {NULL}, 1801, "udp"},
-{"concomp1", {NULL}, 1802, "tcp"},
-{"concomp1", {NULL}, 1802, "udp"},
-{"hp-hcip-gwy", {NULL}, 1803, "tcp"},
-{"hp-hcip-gwy", {NULL}, 1803, "udp"},
-{"enl", {NULL}, 1804, "tcp"},
-{"enl", {NULL}, 1804, "udp"},
-{"enl-name", {NULL}, 1805, "tcp"},
-{"enl-name", {NULL}, 1805, "udp"},
-{"musiconline", {NULL}, 1806, "tcp"},
-{"musiconline", {NULL}, 1806, "udp"},
-{"fhsp", {NULL}, 1807, "tcp"},
-{"fhsp", {NULL}, 1807, "udp"},
-{"oracle-vp2", {NULL}, 1808, "tcp"},
-{"oracle-vp2", {NULL}, 1808, "udp"},
-{"oracle-vp1", {NULL}, 1809, "tcp"},
-{"oracle-vp1", {NULL}, 1809, "udp"},
-{"jerand-lm", {NULL}, 1810, "tcp"},
-{"jerand-lm", {NULL}, 1810, "udp"},
-{"scientia-sdb", {NULL}, 1811, "tcp"},
-{"scientia-sdb", {NULL}, 1811, "udp"},
-{"radius", {NULL}, 1812, "tcp"},
-{"radius", {NULL}, 1812, "udp"},
-{"radius-acct", {NULL}, 1813, "tcp"},
-{"radius-acct", {NULL}, 1813, "udp"},
-{"tdp-suite", {NULL}, 1814, "tcp"},
-{"tdp-suite", {NULL}, 1814, "udp"},
-{"mmpft", {NULL}, 1815, "tcp"},
-{"mmpft", {NULL}, 1815, "udp"},
-{"harp", {NULL}, 1816, "tcp"},
-{"harp", {NULL}, 1816, "udp"},
-{"rkb-oscs", {NULL}, 1817, "tcp"},
-{"rkb-oscs", {NULL}, 1817, "udp"},
-{"etftp", {NULL}, 1818, "tcp"},
-{"etftp", {NULL}, 1818, "udp"},
-{"plato-lm", {NULL}, 1819, "tcp"},
-{"plato-lm", {NULL}, 1819, "udp"},
-{"mcagent", {NULL}, 1820, "tcp"},
-{"mcagent", {NULL}, 1820, "udp"},
-{"donnyworld", {NULL}, 1821, "tcp"},
-{"donnyworld", {NULL}, 1821, "udp"},
-{"es-elmd", {NULL}, 1822, "tcp"},
-{"es-elmd", {NULL}, 1822, "udp"},
-{"unisys-lm", {NULL}, 1823, "tcp"},
-{"unisys-lm", {NULL}, 1823, "udp"},
-{"metrics-pas", {NULL}, 1824, "tcp"},
-{"metrics-pas", {NULL}, 1824, "udp"},
-{"direcpc-video", {NULL}, 1825, "tcp"},
-{"direcpc-video", {NULL}, 1825, "udp"},
-{"ardt", {NULL}, 1826, "tcp"},
-{"ardt", {NULL}, 1826, "udp"},
-{"asi", {NULL}, 1827, "tcp"},
-{"asi", {NULL}, 1827, "udp"},
-{"itm-mcell-u", {NULL}, 1828, "tcp"},
-{"itm-mcell-u", {NULL}, 1828, "udp"},
-{"optika-emedia", {NULL}, 1829, "tcp"},
-{"optika-emedia", {NULL}, 1829, "udp"},
-{"net8-cman", {NULL}, 1830, "tcp"},
-{"net8-cman", {NULL}, 1830, "udp"},
-{"myrtle", {NULL}, 1831, "tcp"},
-{"myrtle", {NULL}, 1831, "udp"},
-{"tht-treasure", {NULL}, 1832, "tcp"},
-{"tht-treasure", {NULL}, 1832, "udp"},
-{"udpradio", {NULL}, 1833, "tcp"},
-{"udpradio", {NULL}, 1833, "udp"},
-{"ardusuni", {NULL}, 1834, "tcp"},
-{"ardusuni", {NULL}, 1834, "udp"},
-{"ardusmul", {NULL}, 1835, "tcp"},
-{"ardusmul", {NULL}, 1835, "udp"},
-{"ste-smsc", {NULL}, 1836, "tcp"},
-{"ste-smsc", {NULL}, 1836, "udp"},
-{"csoft1", {NULL}, 1837, "tcp"},
-{"csoft1", {NULL}, 1837, "udp"},
-{"talnet", {NULL}, 1838, "tcp"},
-{"talnet", {NULL}, 1838, "udp"},
-{"netopia-vo1", {NULL}, 1839, "tcp"},
-{"netopia-vo1", {NULL}, 1839, "udp"},
-{"netopia-vo2", {NULL}, 1840, "tcp"},
-{"netopia-vo2", {NULL}, 1840, "udp"},
-{"netopia-vo3", {NULL}, 1841, "tcp"},
-{"netopia-vo3", {NULL}, 1841, "udp"},
-{"netopia-vo4", {NULL}, 1842, "tcp"},
-{"netopia-vo4", {NULL}, 1842, "udp"},
-{"netopia-vo5", {NULL}, 1843, "tcp"},
-{"netopia-vo5", {NULL}, 1843, "udp"},
-{"direcpc-dll", {NULL}, 1844, "tcp"},
-{"direcpc-dll", {NULL}, 1844, "udp"},
-{"altalink", {NULL}, 1845, "tcp"},
-{"altalink", {NULL}, 1845, "udp"},
-{"tunstall-pnc", {NULL}, 1846, "tcp"},
-{"tunstall-pnc", {NULL}, 1846, "udp"},
-{"slp-notify", {NULL}, 1847, "tcp"},
-{"slp-notify", {NULL}, 1847, "udp"},
-{"fjdocdist", {NULL}, 1848, "tcp"},
-{"fjdocdist", {NULL}, 1848, "udp"},
-{"alpha-sms", {NULL}, 1849, "tcp"},
-{"alpha-sms", {NULL}, 1849, "udp"},
-{"gsi", {NULL}, 1850, "tcp"},
-{"gsi", {NULL}, 1850, "udp"},
-{"ctcd", {NULL}, 1851, "tcp"},
-{"ctcd", {NULL}, 1851, "udp"},
-{"virtual-time", {NULL}, 1852, "tcp"},
-{"virtual-time", {NULL}, 1852, "udp"},
-{"vids-avtp", {NULL}, 1853, "tcp"},
-{"vids-avtp", {NULL}, 1853, "udp"},
-{"buddy-draw", {NULL}, 1854, "tcp"},
-{"buddy-draw", {NULL}, 1854, "udp"},
-{"fiorano-rtrsvc", {NULL}, 1855, "tcp"},
-{"fiorano-rtrsvc", {NULL}, 1855, "udp"},
-{"fiorano-msgsvc", {NULL}, 1856, "tcp"},
-{"fiorano-msgsvc", {NULL}, 1856, "udp"},
-{"datacaptor", {NULL}, 1857, "tcp"},
-{"datacaptor", {NULL}, 1857, "udp"},
-{"privateark", {NULL}, 1858, "tcp"},
-{"privateark", {NULL}, 1858, "udp"},
-{"gammafetchsvr", {NULL}, 1859, "tcp"},
-{"gammafetchsvr", {NULL}, 1859, "udp"},
-{"sunscalar-svc", {NULL}, 1860, "tcp"},
-{"sunscalar-svc", {NULL}, 1860, "udp"},
-{"lecroy-vicp", {NULL}, 1861, "tcp"},
-{"lecroy-vicp", {NULL}, 1861, "udp"},
-{"mysql-cm-agent", {NULL}, 1862, "tcp"},
-{"mysql-cm-agent", {NULL}, 1862, "udp"},
-{"msnp", {NULL}, 1863, "tcp"},
-{"msnp", {NULL}, 1863, "udp"},
-{"paradym-31port", {NULL}, 1864, "tcp"},
-{"paradym-31port", {NULL}, 1864, "udp"},
-{"entp", {NULL}, 1865, "tcp"},
-{"entp", {NULL}, 1865, "udp"},
-{"swrmi", {NULL}, 1866, "tcp"},
-{"swrmi", {NULL}, 1866, "udp"},
-{"udrive", {NULL}, 1867, "tcp"},
-{"udrive", {NULL}, 1867, "udp"},
-{"viziblebrowser", {NULL}, 1868, "tcp"},
-{"viziblebrowser", {NULL}, 1868, "udp"},
-{"transact", {NULL}, 1869, "tcp"},
-{"transact", {NULL}, 1869, "udp"},
-{"sunscalar-dns", {NULL}, 1870, "tcp"},
-{"sunscalar-dns", {NULL}, 1870, "udp"},
-{"canocentral0", {NULL}, 1871, "tcp"},
-{"canocentral0", {NULL}, 1871, "udp"},
-{"canocentral1", {NULL}, 1872, "tcp"},
-{"canocentral1", {NULL}, 1872, "udp"},
-{"fjmpjps", {NULL}, 1873, "tcp"},
-{"fjmpjps", {NULL}, 1873, "udp"},
-{"fjswapsnp", {NULL}, 1874, "tcp"},
-{"fjswapsnp", {NULL}, 1874, "udp"},
-{"westell-stats", {NULL}, 1875, "tcp"},
-{"westell-stats", {NULL}, 1875, "udp"},
-{"ewcappsrv", {NULL}, 1876, "tcp"},
-{"ewcappsrv", {NULL}, 1876, "udp"},
-{"hp-webqosdb", {NULL}, 1877, "tcp"},
-{"hp-webqosdb", {NULL}, 1877, "udp"},
-{"drmsmc", {NULL}, 1878, "tcp"},
-{"drmsmc", {NULL}, 1878, "udp"},
-{"nettgain-nms", {NULL}, 1879, "tcp"},
-{"nettgain-nms", {NULL}, 1879, "udp"},
-{"vsat-control", {NULL}, 1880, "tcp"},
-{"vsat-control", {NULL}, 1880, "udp"},
-{"ibm-mqseries2", {NULL}, 1881, "tcp"},
-{"ibm-mqseries2", {NULL}, 1881, "udp"},
-{"ecsqdmn", {NULL}, 1882, "tcp"},
-{"ecsqdmn", {NULL}, 1882, "udp"},
-{"ibm-mqisdp", {NULL}, 1883, "tcp"},
-{"ibm-mqisdp", {NULL}, 1883, "udp"},
-{"idmaps", {NULL}, 1884, "tcp"},
-{"idmaps", {NULL}, 1884, "udp"},
-{"vrtstrapserver", {NULL}, 1885, "tcp"},
-{"vrtstrapserver", {NULL}, 1885, "udp"},
-{"leoip", {NULL}, 1886, "tcp"},
-{"leoip", {NULL}, 1886, "udp"},
-{"filex-lport", {NULL}, 1887, "tcp"},
-{"filex-lport", {NULL}, 1887, "udp"},
-{"ncconfig", {NULL}, 1888, "tcp"},
-{"ncconfig", {NULL}, 1888, "udp"},
-{"unify-adapter", {NULL}, 1889, "tcp"},
-{"unify-adapter", {NULL}, 1889, "udp"},
-{"wilkenlistener", {NULL}, 1890, "tcp"},
-{"wilkenlistener", {NULL}, 1890, "udp"},
-{"childkey-notif", {NULL}, 1891, "tcp"},
-{"childkey-notif", {NULL}, 1891, "udp"},
-{"childkey-ctrl", {NULL}, 1892, "tcp"},
-{"childkey-ctrl", {NULL}, 1892, "udp"},
-{"elad", {NULL}, 1893, "tcp"},
-{"elad", {NULL}, 1893, "udp"},
-{"o2server-port", {NULL}, 1894, "tcp"},
-{"o2server-port", {NULL}, 1894, "udp"},
-{"b-novative-ls", {NULL}, 1896, "tcp"},
-{"b-novative-ls", {NULL}, 1896, "udp"},
-{"metaagent", {NULL}, 1897, "tcp"},
-{"metaagent", {NULL}, 1897, "udp"},
-{"cymtec-port", {NULL}, 1898, "tcp"},
-{"cymtec-port", {NULL}, 1898, "udp"},
-{"mc2studios", {NULL}, 1899, "tcp"},
-{"mc2studios", {NULL}, 1899, "udp"},
-{"ssdp", {NULL}, 1900, "tcp"},
-{"ssdp", {NULL}, 1900, "udp"},
-{"fjicl-tep-a", {NULL}, 1901, "tcp"},
-{"fjicl-tep-a", {NULL}, 1901, "udp"},
-{"fjicl-tep-b", {NULL}, 1902, "tcp"},
-{"fjicl-tep-b", {NULL}, 1902, "udp"},
-{"linkname", {NULL}, 1903, "tcp"},
-{"linkname", {NULL}, 1903, "udp"},
-{"fjicl-tep-c", {NULL}, 1904, "tcp"},
-{"fjicl-tep-c", {NULL}, 1904, "udp"},
-{"sugp", {NULL}, 1905, "tcp"},
-{"sugp", {NULL}, 1905, "udp"},
-{"tpmd", {NULL}, 1906, "tcp"},
-{"tpmd", {NULL}, 1906, "udp"},
-{"intrastar", {NULL}, 1907, "tcp"},
-{"intrastar", {NULL}, 1907, "udp"},
-{"dawn", {NULL}, 1908, "tcp"},
-{"dawn", {NULL}, 1908, "udp"},
-{"global-wlink", {NULL}, 1909, "tcp"},
-{"global-wlink", {NULL}, 1909, "udp"},
-{"ultrabac", {NULL}, 1910, "tcp"},
-{"ultrabac", {NULL}, 1910, "udp"},
-{"mtp", {NULL}, 1911, "tcp"},
-{"mtp", {NULL}, 1911, "udp"},
-{"rhp-iibp", {NULL}, 1912, "tcp"},
-{"rhp-iibp", {NULL}, 1912, "udp"},
-{"armadp", {NULL}, 1913, "tcp"},
-{"armadp", {NULL}, 1913, "udp"},
-{"elm-momentum", {NULL}, 1914, "tcp"},
-{"elm-momentum", {NULL}, 1914, "udp"},
-{"facelink", {NULL}, 1915, "tcp"},
-{"facelink", {NULL}, 1915, "udp"},
-{"persona", {NULL}, 1916, "tcp"},
-{"persona", {NULL}, 1916, "udp"},
-{"noagent", {NULL}, 1917, "tcp"},
-{"noagent", {NULL}, 1917, "udp"},
-{"can-nds", {NULL}, 1918, "tcp"},
-{"can-nds", {NULL}, 1918, "udp"},
-{"can-dch", {NULL}, 1919, "tcp"},
-{"can-dch", {NULL}, 1919, "udp"},
-{"can-ferret", {NULL}, 1920, "tcp"},
-{"can-ferret", {NULL}, 1920, "udp"},
-{"noadmin", {NULL}, 1921, "tcp"},
-{"noadmin", {NULL}, 1921, "udp"},
-{"tapestry", {NULL}, 1922, "tcp"},
-{"tapestry", {NULL}, 1922, "udp"},
-{"spice", {NULL}, 1923, "tcp"},
-{"spice", {NULL}, 1923, "udp"},
-{"xiip", {NULL}, 1924, "tcp"},
-{"xiip", {NULL}, 1924, "udp"},
-{"discovery-port", {NULL}, 1925, "tcp"},
-{"discovery-port", {NULL}, 1925, "udp"},
-{"egs", {NULL}, 1926, "tcp"},
-{"egs", {NULL}, 1926, "udp"},
-{"videte-cipc", {NULL}, 1927, "tcp"},
-{"videte-cipc", {NULL}, 1927, "udp"},
-{"emsd-port", {NULL}, 1928, "tcp"},
-{"emsd-port", {NULL}, 1928, "udp"},
-{"bandwiz-system", {NULL}, 1929, "tcp"},
-{"bandwiz-system", {NULL}, 1929, "udp"},
-{"driveappserver", {NULL}, 1930, "tcp"},
-{"driveappserver", {NULL}, 1930, "udp"},
-{"amdsched", {NULL}, 1931, "tcp"},
-{"amdsched", {NULL}, 1931, "udp"},
-{"ctt-broker", {NULL}, 1932, "tcp"},
-{"ctt-broker", {NULL}, 1932, "udp"},
-{"xmapi", {NULL}, 1933, "tcp"},
-{"xmapi", {NULL}, 1933, "udp"},
-{"xaapi", {NULL}, 1934, "tcp"},
-{"xaapi", {NULL}, 1934, "udp"},
-{"macromedia-fcs", {NULL}, 1935, "tcp"},
-{"macromedia-fcs", {NULL}, 1935, "udp"},
-{"jetcmeserver", {NULL}, 1936, "tcp"},
-{"jetcmeserver", {NULL}, 1936, "udp"},
-{"jwserver", {NULL}, 1937, "tcp"},
-{"jwserver", {NULL}, 1937, "udp"},
-{"jwclient", {NULL}, 1938, "tcp"},
-{"jwclient", {NULL}, 1938, "udp"},
-{"jvserver", {NULL}, 1939, "tcp"},
-{"jvserver", {NULL}, 1939, "udp"},
-{"jvclient", {NULL}, 1940, "tcp"},
-{"jvclient", {NULL}, 1940, "udp"},
-{"dic-aida", {NULL}, 1941, "tcp"},
-{"dic-aida", {NULL}, 1941, "udp"},
-{"res", {NULL}, 1942, "tcp"},
-{"res", {NULL}, 1942, "udp"},
-{"beeyond-media", {NULL}, 1943, "tcp"},
-{"beeyond-media", {NULL}, 1943, "udp"},
-{"close-combat", {NULL}, 1944, "tcp"},
-{"close-combat", {NULL}, 1944, "udp"},
-{"dialogic-elmd", {NULL}, 1945, "tcp"},
-{"dialogic-elmd", {NULL}, 1945, "udp"},
-{"tekpls", {NULL}, 1946, "tcp"},
-{"tekpls", {NULL}, 1946, "udp"},
-{"sentinelsrm", {NULL}, 1947, "tcp"},
-{"sentinelsrm", {NULL}, 1947, "udp"},
-{"eye2eye", {NULL}, 1948, "tcp"},
-{"eye2eye", {NULL}, 1948, "udp"},
-{"ismaeasdaqlive", {NULL}, 1949, "tcp"},
-{"ismaeasdaqlive", {NULL}, 1949, "udp"},
-{"ismaeasdaqtest", {NULL}, 1950, "tcp"},
-{"ismaeasdaqtest", {NULL}, 1950, "udp"},
-{"bcs-lmserver", {NULL}, 1951, "tcp"},
-{"bcs-lmserver", {NULL}, 1951, "udp"},
-{"mpnjsc", {NULL}, 1952, "tcp"},
-{"mpnjsc", {NULL}, 1952, "udp"},
-{"rapidbase", {NULL}, 1953, "tcp"},
-{"rapidbase", {NULL}, 1953, "udp"},
-{"abr-api", {NULL}, 1954, "tcp"},
-{"abr-api", {NULL}, 1954, "udp"},
-{"abr-secure", {NULL}, 1955, "tcp"},
-{"abr-secure", {NULL}, 1955, "udp"},
-{"vrtl-vmf-ds", {NULL}, 1956, "tcp"},
-{"vrtl-vmf-ds", {NULL}, 1956, "udp"},
-{"unix-status", {NULL}, 1957, "tcp"},
-{"unix-status", {NULL}, 1957, "udp"},
-{"dxadmind", {NULL}, 1958, "tcp"},
-{"dxadmind", {NULL}, 1958, "udp"},
-{"simp-all", {NULL}, 1959, "tcp"},
-{"simp-all", {NULL}, 1959, "udp"},
-{"nasmanager", {NULL}, 1960, "tcp"},
-{"nasmanager", {NULL}, 1960, "udp"},
-{"bts-appserver", {NULL}, 1961, "tcp"},
-{"bts-appserver", {NULL}, 1961, "udp"},
-{"biap-mp", {NULL}, 1962, "tcp"},
-{"biap-mp", {NULL}, 1962, "udp"},
-{"webmachine", {NULL}, 1963, "tcp"},
-{"webmachine", {NULL}, 1963, "udp"},
-{"solid-e-engine", {NULL}, 1964, "tcp"},
-{"solid-e-engine", {NULL}, 1964, "udp"},
-{"tivoli-npm", {NULL}, 1965, "tcp"},
-{"tivoli-npm", {NULL}, 1965, "udp"},
-{"slush", {NULL}, 1966, "tcp"},
-{"slush", {NULL}, 1966, "udp"},
-{"sns-quote", {NULL}, 1967, "tcp"},
-{"sns-quote", {NULL}, 1967, "udp"},
-{"lipsinc", {NULL}, 1968, "tcp"},
-{"lipsinc", {NULL}, 1968, "udp"},
-{"lipsinc1", {NULL}, 1969, "tcp"},
-{"lipsinc1", {NULL}, 1969, "udp"},
-{"netop-rc", {NULL}, 1970, "tcp"},
-{"netop-rc", {NULL}, 1970, "udp"},
-{"netop-school", {NULL}, 1971, "tcp"},
-{"netop-school", {NULL}, 1971, "udp"},
-{"intersys-cache", {NULL}, 1972, "tcp"},
-{"intersys-cache", {NULL}, 1972, "udp"},
-{"dlsrap", {NULL}, 1973, "tcp"},
-{"dlsrap", {NULL}, 1973, "udp"},
-{"drp", {NULL}, 1974, "tcp"},
-{"drp", {NULL}, 1974, "udp"},
-{"tcoflashagent", {NULL}, 1975, "tcp"},
-{"tcoflashagent", {NULL}, 1975, "udp"},
-{"tcoregagent", {NULL}, 1976, "tcp"},
-{"tcoregagent", {NULL}, 1976, "udp"},
-{"tcoaddressbook", {NULL}, 1977, "tcp"},
-{"tcoaddressbook", {NULL}, 1977, "udp"},
-{"unisql", {NULL}, 1978, "tcp"},
-{"unisql", {NULL}, 1978, "udp"},
-{"unisql-java", {NULL}, 1979, "tcp"},
-{"unisql-java", {NULL}, 1979, "udp"},
-{"pearldoc-xact", {NULL}, 1980, "tcp"},
-{"pearldoc-xact", {NULL}, 1980, "udp"},
-{"p2pq", {NULL}, 1981, "tcp"},
-{"p2pq", {NULL}, 1981, "udp"},
-{"estamp", {NULL}, 1982, "tcp"},
-{"estamp", {NULL}, 1982, "udp"},
-{"lhtp", {NULL}, 1983, "tcp"},
-{"lhtp", {NULL}, 1983, "udp"},
-{"bb", {NULL}, 1984, "tcp"},
-{"bb", {NULL}, 1984, "udp"},
-{"hsrp", {NULL}, 1985, "tcp"},
-{"hsrp", {NULL}, 1985, "udp"},
-{"licensedaemon", {NULL}, 1986, "tcp"},
-{"licensedaemon", {NULL}, 1986, "udp"},
-{"tr-rsrb-p1", {NULL}, 1987, "tcp"},
-{"tr-rsrb-p1", {NULL}, 1987, "udp"},
-{"tr-rsrb-p2", {NULL}, 1988, "tcp"},
-{"tr-rsrb-p2", {NULL}, 1988, "udp"},
-{"tr-rsrb-p3", {NULL}, 1989, "tcp"},
-{"tr-rsrb-p3", {NULL}, 1989, "udp"},
-{"mshnet", {NULL}, 1989, "tcp"},
-{"mshnet", {NULL}, 1989, "udp"},
-{"stun-p1", {NULL}, 1990, "tcp"},
-{"stun-p1", {NULL}, 1990, "udp"},
-{"stun-p2", {NULL}, 1991, "tcp"},
-{"stun-p2", {NULL}, 1991, "udp"},
-{"stun-p3", {NULL}, 1992, "tcp"},
-{"stun-p3", {NULL}, 1992, "udp"},
-{"ipsendmsg", {NULL}, 1992, "tcp"},
-{"ipsendmsg", {NULL}, 1992, "udp"},
-{"snmp-tcp-port", {NULL}, 1993, "tcp"},
-{"snmp-tcp-port", {NULL}, 1993, "udp"},
-{"stun-port", {NULL}, 1994, "tcp"},
-{"stun-port", {NULL}, 1994, "udp"},
-{"perf-port", {NULL}, 1995, "tcp"},
-{"perf-port", {NULL}, 1995, "udp"},
-{"tr-rsrb-port", {NULL}, 1996, "tcp"},
-{"tr-rsrb-port", {NULL}, 1996, "udp"},
-{"gdp-port", {NULL}, 1997, "tcp"},
-{"gdp-port", {NULL}, 1997, "udp"},
-{"x25-svc-port", {NULL}, 1998, "tcp"},
-{"x25-svc-port", {NULL}, 1998, "udp"},
-{"tcp-id-port", {NULL}, 1999, "tcp"},
-{"tcp-id-port", {NULL}, 1999, "udp"},
-{"cisco-sccp", {NULL}, 2000, "tcp"},
-{"cisco-sccp", {NULL}, 2000, "udp"},
-{"dc", {NULL}, 2001, "tcp"},
-{"wizard", {NULL}, 2001, "udp"},
-{"globe", {NULL}, 2002, "tcp"},
-{"globe", {NULL}, 2002, "udp"},
-{"brutus", {NULL}, 2003, "tcp"},
-{"brutus", {NULL}, 2003, "udp"},
-{"mailbox", {NULL}, 2004, "tcp"},
-{"emce", {NULL}, 2004, "udp"},
-{"berknet", {NULL}, 2005, "tcp"},
-{"oracle", {NULL}, 2005, "udp"},
-{"invokator", {NULL}, 2006, "tcp"},
-{"raid-cd", {NULL}, 2006, "udp"},
-{"dectalk", {NULL}, 2007, "tcp"},
-{"raid-am", {NULL}, 2007, "udp"},
-{"conf", {NULL}, 2008, "tcp"},
-{"terminaldb", {NULL}, 2008, "udp"},
-{"news", {NULL}, 2009, "tcp"},
-{"whosockami", {NULL}, 2009, "udp"},
-{"search", {NULL}, 2010, "tcp"},
-{"pipe_server", {NULL}, 2010, "udp"},
-{"raid-cc", {NULL}, 2011, "tcp"},
-{"servserv", {NULL}, 2011, "udp"},
-{"ttyinfo", {NULL}, 2012, "tcp"},
-{"raid-ac", {NULL}, 2012, "udp"},
-{"raid-am", {NULL}, 2013, "tcp"},
-{"raid-cd", {NULL}, 2013, "udp"},
-{"troff", {NULL}, 2014, "tcp"},
-{"raid-sf", {NULL}, 2014, "udp"},
-{"cypress", {NULL}, 2015, "tcp"},
-{"raid-cs", {NULL}, 2015, "udp"},
-{"bootserver", {NULL}, 2016, "tcp"},
-{"bootserver", {NULL}, 2016, "udp"},
-{"cypress-stat", {NULL}, 2017, "tcp"},
-{"bootclient", {NULL}, 2017, "udp"},
-{"terminaldb", {NULL}, 2018, "tcp"},
-{"rellpack", {NULL}, 2018, "udp"},
-{"whosockami", {NULL}, 2019, "tcp"},
-{"about", {NULL}, 2019, "udp"},
-{"xinupageserver", {NULL}, 2020, "tcp"},
-{"xinupageserver", {NULL}, 2020, "udp"},
-{"servexec", {NULL}, 2021, "tcp"},
-{"xinuexpansion1", {NULL}, 2021, "udp"},
-{"down", {NULL}, 2022, "tcp"},
-{"xinuexpansion2", {NULL}, 2022, "udp"},
-{"xinuexpansion3", {NULL}, 2023, "tcp"},
-{"xinuexpansion3", {NULL}, 2023, "udp"},
-{"xinuexpansion4", {NULL}, 2024, "tcp"},
-{"xinuexpansion4", {NULL}, 2024, "udp"},
-{"ellpack", {NULL}, 2025, "tcp"},
-{"xribs", {NULL}, 2025, "udp"},
-{"scrabble", {NULL}, 2026, "tcp"},
-{"scrabble", {NULL}, 2026, "udp"},
-{"shadowserver", {NULL}, 2027, "tcp"},
-{"shadowserver", {NULL}, 2027, "udp"},
-{"submitserver", {NULL}, 2028, "tcp"},
-{"submitserver", {NULL}, 2028, "udp"},
-{"hsrpv6", {NULL}, 2029, "tcp"},
-{"hsrpv6", {NULL}, 2029, "udp"},
-{"device2", {NULL}, 2030, "tcp"},
-{"device2", {NULL}, 2030, "udp"},
-{"mobrien-chat", {NULL}, 2031, "tcp"},
-{"mobrien-chat", {NULL}, 2031, "udp"},
-{"blackboard", {NULL}, 2032, "tcp"},
-{"blackboard", {NULL}, 2032, "udp"},
-{"glogger", {NULL}, 2033, "tcp"},
-{"glogger", {NULL}, 2033, "udp"},
-{"scoremgr", {NULL}, 2034, "tcp"},
-{"scoremgr", {NULL}, 2034, "udp"},
-{"imsldoc", {NULL}, 2035, "tcp"},
-{"imsldoc", {NULL}, 2035, "udp"},
-{"e-dpnet", {NULL}, 2036, "tcp"},
-{"e-dpnet", {NULL}, 2036, "udp"},
-{"applus", {NULL}, 2037, "tcp"},
-{"applus", {NULL}, 2037, "udp"},
-{"objectmanager", {NULL}, 2038, "tcp"},
-{"objectmanager", {NULL}, 2038, "udp"},
-{"prizma", {NULL}, 2039, "tcp"},
-{"prizma", {NULL}, 2039, "udp"},
-{"lam", {NULL}, 2040, "tcp"},
-{"lam", {NULL}, 2040, "udp"},
-{"interbase", {NULL}, 2041, "tcp"},
-{"interbase", {NULL}, 2041, "udp"},
-{"isis", {NULL}, 2042, "tcp"},
-{"isis", {NULL}, 2042, "udp"},
-{"isis-bcast", {NULL}, 2043, "tcp"},
-{"isis-bcast", {NULL}, 2043, "udp"},
-{"rimsl", {NULL}, 2044, "tcp"},
-{"rimsl", {NULL}, 2044, "udp"},
-{"cdfunc", {NULL}, 2045, "tcp"},
-{"cdfunc", {NULL}, 2045, "udp"},
-{"sdfunc", {NULL}, 2046, "tcp"},
-{"sdfunc", {NULL}, 2046, "udp"},
-{"dls", {NULL}, 2047, "tcp"},
-{"dls", {NULL}, 2047, "udp"},
-{"dls-monitor", {NULL}, 2048, "tcp"},
-{"dls-monitor", {NULL}, 2048, "udp"},
-{"shilp", {NULL}, 2049, "tcp"},
-{"shilp", {NULL}, 2049, "udp"},
-{"nfs", {NULL}, 2049, "tcp"},
-{"nfs", {NULL}, 2049, "udp"},
-{"nfs", {NULL}, 2049, "sctp"},
-{"av-emb-config", {NULL}, 2050, "tcp"},
-{"av-emb-config", {NULL}, 2050, "udp"},
-{"epnsdp", {NULL}, 2051, "tcp"},
-{"epnsdp", {NULL}, 2051, "udp"},
-{"clearvisn", {NULL}, 2052, "tcp"},
-{"clearvisn", {NULL}, 2052, "udp"},
-{"lot105-ds-upd", {NULL}, 2053, "tcp"},
-{"lot105-ds-upd", {NULL}, 2053, "udp"},
-{"weblogin", {NULL}, 2054, "tcp"},
-{"weblogin", {NULL}, 2054, "udp"},
-{"iop", {NULL}, 2055, "tcp"},
-{"iop", {NULL}, 2055, "udp"},
-{"omnisky", {NULL}, 2056, "tcp"},
-{"omnisky", {NULL}, 2056, "udp"},
-{"rich-cp", {NULL}, 2057, "tcp"},
-{"rich-cp", {NULL}, 2057, "udp"},
-{"newwavesearch", {NULL}, 2058, "tcp"},
-{"newwavesearch", {NULL}, 2058, "udp"},
-{"bmc-messaging", {NULL}, 2059, "tcp"},
-{"bmc-messaging", {NULL}, 2059, "udp"},
-{"teleniumdaemon", {NULL}, 2060, "tcp"},
-{"teleniumdaemon", {NULL}, 2060, "udp"},
-{"netmount", {NULL}, 2061, "tcp"},
-{"netmount", {NULL}, 2061, "udp"},
-{"icg-swp", {NULL}, 2062, "tcp"},
-{"icg-swp", {NULL}, 2062, "udp"},
-{"icg-bridge", {NULL}, 2063, "tcp"},
-{"icg-bridge", {NULL}, 2063, "udp"},
-{"icg-iprelay", {NULL}, 2064, "tcp"},
-{"icg-iprelay", {NULL}, 2064, "udp"},
-{"dlsrpn", {NULL}, 2065, "tcp"},
-{"dlsrpn", {NULL}, 2065, "udp"},
-{"aura", {NULL}, 2066, "tcp"},
-{"aura", {NULL}, 2066, "udp"},
-{"dlswpn", {NULL}, 2067, "tcp"},
-{"dlswpn", {NULL}, 2067, "udp"},
-{"avauthsrvprtcl", {NULL}, 2068, "tcp"},
-{"avauthsrvprtcl", {NULL}, 2068, "udp"},
-{"event-port", {NULL}, 2069, "tcp"},
-{"event-port", {NULL}, 2069, "udp"},
-{"ah-esp-encap", {NULL}, 2070, "tcp"},
-{"ah-esp-encap", {NULL}, 2070, "udp"},
-{"acp-port", {NULL}, 2071, "tcp"},
-{"acp-port", {NULL}, 2071, "udp"},
-{"msync", {NULL}, 2072, "tcp"},
-{"msync", {NULL}, 2072, "udp"},
-{"gxs-data-port", {NULL}, 2073, "tcp"},
-{"gxs-data-port", {NULL}, 2073, "udp"},
-{"vrtl-vmf-sa", {NULL}, 2074, "tcp"},
-{"vrtl-vmf-sa", {NULL}, 2074, "udp"},
-{"newlixengine", {NULL}, 2075, "tcp"},
-{"newlixengine", {NULL}, 2075, "udp"},
-{"newlixconfig", {NULL}, 2076, "tcp"},
-{"newlixconfig", {NULL}, 2076, "udp"},
-{"tsrmagt", {NULL}, 2077, "tcp"},
-{"tsrmagt", {NULL}, 2077, "udp"},
-{"tpcsrvr", {NULL}, 2078, "tcp"},
-{"tpcsrvr", {NULL}, 2078, "udp"},
-{"idware-router", {NULL}, 2079, "tcp"},
-{"idware-router", {NULL}, 2079, "udp"},
-{"autodesk-nlm", {NULL}, 2080, "tcp"},
-{"autodesk-nlm", {NULL}, 2080, "udp"},
-{"kme-trap-port", {NULL}, 2081, "tcp"},
-{"kme-trap-port", {NULL}, 2081, "udp"},
-{"infowave", {NULL}, 2082, "tcp"},
-{"infowave", {NULL}, 2082, "udp"},
-{"radsec", {NULL}, 2083, "tcp"},
-{"radsec", {NULL}, 2083, "udp"},
-{"sunclustergeo", {NULL}, 2084, "tcp"},
-{"sunclustergeo", {NULL}, 2084, "udp"},
-{"ada-cip", {NULL}, 2085, "tcp"},
-{"ada-cip", {NULL}, 2085, "udp"},
-{"gnunet", {NULL}, 2086, "tcp"},
-{"gnunet", {NULL}, 2086, "udp"},
-{"eli", {NULL}, 2087, "tcp"},
-{"eli", {NULL}, 2087, "udp"},
-{"ip-blf", {NULL}, 2088, "tcp"},
-{"ip-blf", {NULL}, 2088, "udp"},
-{"sep", {NULL}, 2089, "tcp"},
-{"sep", {NULL}, 2089, "udp"},
-{"lrp", {NULL}, 2090, "tcp"},
-{"lrp", {NULL}, 2090, "udp"},
-{"prp", {NULL}, 2091, "tcp"},
-{"prp", {NULL}, 2091, "udp"},
-{"descent3", {NULL}, 2092, "tcp"},
-{"descent3", {NULL}, 2092, "udp"},
-{"nbx-cc", {NULL}, 2093, "tcp"},
-{"nbx-cc", {NULL}, 2093, "udp"},
-{"nbx-au", {NULL}, 2094, "tcp"},
-{"nbx-au", {NULL}, 2094, "udp"},
-{"nbx-ser", {NULL}, 2095, "tcp"},
-{"nbx-ser", {NULL}, 2095, "udp"},
-{"nbx-dir", {NULL}, 2096, "tcp"},
-{"nbx-dir", {NULL}, 2096, "udp"},
-{"jetformpreview", {NULL}, 2097, "tcp"},
-{"jetformpreview", {NULL}, 2097, "udp"},
-{"dialog-port", {NULL}, 2098, "tcp"},
-{"dialog-port", {NULL}, 2098, "udp"},
-{"h2250-annex-g", {NULL}, 2099, "tcp"},
-{"h2250-annex-g", {NULL}, 2099, "udp"},
-{"amiganetfs", {NULL}, 2100, "tcp"},
-{"amiganetfs", {NULL}, 2100, "udp"},
-{"rtcm-sc104", {NULL}, 2101, "tcp"},
-{"rtcm-sc104", {NULL}, 2101, "udp"},
-{"zephyr-srv", {NULL}, 2102, "tcp"},
-{"zephyr-srv", {NULL}, 2102, "udp"},
-{"zephyr-clt", {NULL}, 2103, "tcp"},
-{"zephyr-clt", {NULL}, 2103, "udp"},
-{"zephyr-hm", {NULL}, 2104, "tcp"},
-{"zephyr-hm", {NULL}, 2104, "udp"},
-{"minipay", {NULL}, 2105, "tcp"},
-{"minipay", {NULL}, 2105, "udp"},
-{"mzap", {NULL}, 2106, "tcp"},
-{"mzap", {NULL}, 2106, "udp"},
-{"bintec-admin", {NULL}, 2107, "tcp"},
-{"bintec-admin", {NULL}, 2107, "udp"},
-{"comcam", {NULL}, 2108, "tcp"},
-{"comcam", {NULL}, 2108, "udp"},
-{"ergolight", {NULL}, 2109, "tcp"},
-{"ergolight", {NULL}, 2109, "udp"},
-{"umsp", {NULL}, 2110, "tcp"},
-{"umsp", {NULL}, 2110, "udp"},
-{"dsatp", {NULL}, 2111, "tcp"},
-{"dsatp", {NULL}, 2111, "udp"},
-{"idonix-metanet", {NULL}, 2112, "tcp"},
-{"idonix-metanet", {NULL}, 2112, "udp"},
-{"hsl-storm", {NULL}, 2113, "tcp"},
-{"hsl-storm", {NULL}, 2113, "udp"},
-{"newheights", {NULL}, 2114, "tcp"},
-{"newheights", {NULL}, 2114, "udp"},
-{"kdm", {NULL}, 2115, "tcp"},
-{"kdm", {NULL}, 2115, "udp"},
-{"ccowcmr", {NULL}, 2116, "tcp"},
-{"ccowcmr", {NULL}, 2116, "udp"},
-{"mentaclient", {NULL}, 2117, "tcp"},
-{"mentaclient", {NULL}, 2117, "udp"},
-{"mentaserver", {NULL}, 2118, "tcp"},
-{"mentaserver", {NULL}, 2118, "udp"},
-{"gsigatekeeper", {NULL}, 2119, "tcp"},
-{"gsigatekeeper", {NULL}, 2119, "udp"},
-{"qencp", {NULL}, 2120, "tcp"},
-{"qencp", {NULL}, 2120, "udp"},
-{"scientia-ssdb", {NULL}, 2121, "tcp"},
-{"scientia-ssdb", {NULL}, 2121, "udp"},
-{"caupc-remote", {NULL}, 2122, "tcp"},
-{"caupc-remote", {NULL}, 2122, "udp"},
-{"gtp-control", {NULL}, 2123, "tcp"},
-{"gtp-control", {NULL}, 2123, "udp"},
-{"elatelink", {NULL}, 2124, "tcp"},
-{"elatelink", {NULL}, 2124, "udp"},
-{"lockstep", {NULL}, 2125, "tcp"},
-{"lockstep", {NULL}, 2125, "udp"},
-{"pktcable-cops", {NULL}, 2126, "tcp"},
-{"pktcable-cops", {NULL}, 2126, "udp"},
-{"index-pc-wb", {NULL}, 2127, "tcp"},
-{"index-pc-wb", {NULL}, 2127, "udp"},
-{"net-steward", {NULL}, 2128, "tcp"},
-{"net-steward", {NULL}, 2128, "udp"},
-{"cs-live", {NULL}, 2129, "tcp"},
-{"cs-live", {NULL}, 2129, "udp"},
-{"xds", {NULL}, 2130, "tcp"},
-{"xds", {NULL}, 2130, "udp"},
-{"avantageb2b", {NULL}, 2131, "tcp"},
-{"avantageb2b", {NULL}, 2131, "udp"},
-{"solera-epmap", {NULL}, 2132, "tcp"},
-{"solera-epmap", {NULL}, 2132, "udp"},
-{"zymed-zpp", {NULL}, 2133, "tcp"},
-{"zymed-zpp", {NULL}, 2133, "udp"},
-{"avenue", {NULL}, 2134, "tcp"},
-{"avenue", {NULL}, 2134, "udp"},
-{"gris", {NULL}, 2135, "tcp"},
-{"gris", {NULL}, 2135, "udp"},
-{"appworxsrv", {NULL}, 2136, "tcp"},
-{"appworxsrv", {NULL}, 2136, "udp"},
-{"connect", {NULL}, 2137, "tcp"},
-{"connect", {NULL}, 2137, "udp"},
-{"unbind-cluster", {NULL}, 2138, "tcp"},
-{"unbind-cluster", {NULL}, 2138, "udp"},
-{"ias-auth", {NULL}, 2139, "tcp"},
-{"ias-auth", {NULL}, 2139, "udp"},
-{"ias-reg", {NULL}, 2140, "tcp"},
-{"ias-reg", {NULL}, 2140, "udp"},
-{"ias-admind", {NULL}, 2141, "tcp"},
-{"ias-admind", {NULL}, 2141, "udp"},
-{"tdmoip", {NULL}, 2142, "tcp"},
-{"tdmoip", {NULL}, 2142, "udp"},
-{"lv-jc", {NULL}, 2143, "tcp"},
-{"lv-jc", {NULL}, 2143, "udp"},
-{"lv-ffx", {NULL}, 2144, "tcp"},
-{"lv-ffx", {NULL}, 2144, "udp"},
-{"lv-pici", {NULL}, 2145, "tcp"},
-{"lv-pici", {NULL}, 2145, "udp"},
-{"lv-not", {NULL}, 2146, "tcp"},
-{"lv-not", {NULL}, 2146, "udp"},
-{"lv-auth", {NULL}, 2147, "tcp"},
-{"lv-auth", {NULL}, 2147, "udp"},
-{"veritas-ucl", {NULL}, 2148, "tcp"},
-{"veritas-ucl", {NULL}, 2148, "udp"},
-{"acptsys", {NULL}, 2149, "tcp"},
-{"acptsys", {NULL}, 2149, "udp"},
-{"dynamic3d", {NULL}, 2150, "tcp"},
-{"dynamic3d", {NULL}, 2150, "udp"},
-{"docent", {NULL}, 2151, "tcp"},
-{"docent", {NULL}, 2151, "udp"},
-{"gtp-user", {NULL}, 2152, "tcp"},
-{"gtp-user", {NULL}, 2152, "udp"},
-{"ctlptc", {NULL}, 2153, "tcp"},
-{"ctlptc", {NULL}, 2153, "udp"},
-{"stdptc", {NULL}, 2154, "tcp"},
-{"stdptc", {NULL}, 2154, "udp"},
-{"brdptc", {NULL}, 2155, "tcp"},
-{"brdptc", {NULL}, 2155, "udp"},
-{"trp", {NULL}, 2156, "tcp"},
-{"trp", {NULL}, 2156, "udp"},
-{"xnds", {NULL}, 2157, "tcp"},
-{"xnds", {NULL}, 2157, "udp"},
-{"touchnetplus", {NULL}, 2158, "tcp"},
-{"touchnetplus", {NULL}, 2158, "udp"},
-{"gdbremote", {NULL}, 2159, "tcp"},
-{"gdbremote", {NULL}, 2159, "udp"},
-{"apc-2160", {NULL}, 2160, "tcp"},
-{"apc-2160", {NULL}, 2160, "udp"},
-{"apc-2161", {NULL}, 2161, "tcp"},
-{"apc-2161", {NULL}, 2161, "udp"},
-{"navisphere", {NULL}, 2162, "tcp"},
-{"navisphere", {NULL}, 2162, "udp"},
-{"navisphere-sec", {NULL}, 2163, "tcp"},
-{"navisphere-sec", {NULL}, 2163, "udp"},
-{"ddns-v3", {NULL}, 2164, "tcp"},
-{"ddns-v3", {NULL}, 2164, "udp"},
-{"x-bone-api", {NULL}, 2165, "tcp"},
-{"x-bone-api", {NULL}, 2165, "udp"},
-{"iwserver", {NULL}, 2166, "tcp"},
-{"iwserver", {NULL}, 2166, "udp"},
-{"raw-serial", {NULL}, 2167, "tcp"},
-{"raw-serial", {NULL}, 2167, "udp"},
-{"easy-soft-mux", {NULL}, 2168, "tcp"},
-{"easy-soft-mux", {NULL}, 2168, "udp"},
-{"brain", {NULL}, 2169, "tcp"},
-{"brain", {NULL}, 2169, "udp"},
-{"eyetv", {NULL}, 2170, "tcp"},
-{"eyetv", {NULL}, 2170, "udp"},
-{"msfw-storage", {NULL}, 2171, "tcp"},
-{"msfw-storage", {NULL}, 2171, "udp"},
-{"msfw-s-storage", {NULL}, 2172, "tcp"},
-{"msfw-s-storage", {NULL}, 2172, "udp"},
-{"msfw-replica", {NULL}, 2173, "tcp"},
-{"msfw-replica", {NULL}, 2173, "udp"},
-{"msfw-array", {NULL}, 2174, "tcp"},
-{"msfw-array", {NULL}, 2174, "udp"},
-{"airsync", {NULL}, 2175, "tcp"},
-{"airsync", {NULL}, 2175, "udp"},
-{"rapi", {NULL}, 2176, "tcp"},
-{"rapi", {NULL}, 2176, "udp"},
-{"qwave", {NULL}, 2177, "tcp"},
-{"qwave", {NULL}, 2177, "udp"},
-{"bitspeer", {NULL}, 2178, "tcp"},
-{"bitspeer", {NULL}, 2178, "udp"},
-{"vmrdp", {NULL}, 2179, "tcp"},
-{"vmrdp", {NULL}, 2179, "udp"},
-{"mc-gt-srv", {NULL}, 2180, "tcp"},
-{"mc-gt-srv", {NULL}, 2180, "udp"},
-{"eforward", {NULL}, 2181, "tcp"},
-{"eforward", {NULL}, 2181, "udp"},
-{"cgn-stat", {NULL}, 2182, "tcp"},
-{"cgn-stat", {NULL}, 2182, "udp"},
-{"cgn-config", {NULL}, 2183, "tcp"},
-{"cgn-config", {NULL}, 2183, "udp"},
-{"nvd", {NULL}, 2184, "tcp"},
-{"nvd", {NULL}, 2184, "udp"},
-{"onbase-dds", {NULL}, 2185, "tcp"},
-{"onbase-dds", {NULL}, 2185, "udp"},
-{"gtaua", {NULL}, 2186, "tcp"},
-{"gtaua", {NULL}, 2186, "udp"},
-{"ssmc", {NULL}, 2187, "tcp"},
-{"ssmd", {NULL}, 2187, "udp"},
-{"tivoconnect", {NULL}, 2190, "tcp"},
-{"tivoconnect", {NULL}, 2190, "udp"},
-{"tvbus", {NULL}, 2191, "tcp"},
-{"tvbus", {NULL}, 2191, "udp"},
-{"asdis", {NULL}, 2192, "tcp"},
-{"asdis", {NULL}, 2192, "udp"},
-{"drwcs", {NULL}, 2193, "tcp"},
-{"drwcs", {NULL}, 2193, "udp"},
-{"mnp-exchange", {NULL}, 2197, "tcp"},
-{"mnp-exchange", {NULL}, 2197, "udp"},
-{"onehome-remote", {NULL}, 2198, "tcp"},
-{"onehome-remote", {NULL}, 2198, "udp"},
-{"onehome-help", {NULL}, 2199, "tcp"},
-{"onehome-help", {NULL}, 2199, "udp"},
-{"ici", {NULL}, 2200, "tcp"},
-{"ici", {NULL}, 2200, "udp"},
-{"ats", {NULL}, 2201, "tcp"},
-{"ats", {NULL}, 2201, "udp"},
-{"imtc-map", {NULL}, 2202, "tcp"},
-{"imtc-map", {NULL}, 2202, "udp"},
-{"b2-runtime", {NULL}, 2203, "tcp"},
-{"b2-runtime", {NULL}, 2203, "udp"},
-{"b2-license", {NULL}, 2204, "tcp"},
-{"b2-license", {NULL}, 2204, "udp"},
-{"jps", {NULL}, 2205, "tcp"},
-{"jps", {NULL}, 2205, "udp"},
-{"hpocbus", {NULL}, 2206, "tcp"},
-{"hpocbus", {NULL}, 2206, "udp"},
-{"hpssd", {NULL}, 2207, "tcp"},
-{"hpssd", {NULL}, 2207, "udp"},
-{"hpiod", {NULL}, 2208, "tcp"},
-{"hpiod", {NULL}, 2208, "udp"},
-{"rimf-ps", {NULL}, 2209, "tcp"},
-{"rimf-ps", {NULL}, 2209, "udp"},
-{"noaaport", {NULL}, 2210, "tcp"},
-{"noaaport", {NULL}, 2210, "udp"},
-{"emwin", {NULL}, 2211, "tcp"},
-{"emwin", {NULL}, 2211, "udp"},
-{"leecoposserver", {NULL}, 2212, "tcp"},
-{"leecoposserver", {NULL}, 2212, "udp"},
-{"kali", {NULL}, 2213, "tcp"},
-{"kali", {NULL}, 2213, "udp"},
-{"rpi", {NULL}, 2214, "tcp"},
-{"rpi", {NULL}, 2214, "udp"},
-{"ipcore", {NULL}, 2215, "tcp"},
-{"ipcore", {NULL}, 2215, "udp"},
-{"vtu-comms", {NULL}, 2216, "tcp"},
-{"vtu-comms", {NULL}, 2216, "udp"},
-{"gotodevice", {NULL}, 2217, "tcp"},
-{"gotodevice", {NULL}, 2217, "udp"},
-{"bounzza", {NULL}, 2218, "tcp"},
-{"bounzza", {NULL}, 2218, "udp"},
-{"netiq-ncap", {NULL}, 2219, "tcp"},
-{"netiq-ncap", {NULL}, 2219, "udp"},
-{"netiq", {NULL}, 2220, "tcp"},
-{"netiq", {NULL}, 2220, "udp"},
-{"rockwell-csp1", {NULL}, 2221, "tcp"},
-{"rockwell-csp1", {NULL}, 2221, "udp"},
-{"EtherNet/IP-1", {NULL}, 2222, "tcp"},
-{"EtherNet/IP-1", {NULL}, 2222, "udp"},
-{"rockwell-csp2", {NULL}, 2223, "tcp"},
-{"rockwell-csp2", {NULL}, 2223, "udp"},
-{"efi-mg", {NULL}, 2224, "tcp"},
-{"efi-mg", {NULL}, 2224, "udp"},
-{"rcip-itu", {NULL}, 2225, "tcp"},
-{"rcip-itu", {NULL}, 2225, "sctp"},
-{"di-drm", {NULL}, 2226, "tcp"},
-{"di-drm", {NULL}, 2226, "udp"},
-{"di-msg", {NULL}, 2227, "tcp"},
-{"di-msg", {NULL}, 2227, "udp"},
-{"ehome-ms", {NULL}, 2228, "tcp"},
-{"ehome-ms", {NULL}, 2228, "udp"},
-{"datalens", {NULL}, 2229, "tcp"},
-{"datalens", {NULL}, 2229, "udp"},
-{"queueadm", {NULL}, 2230, "tcp"},
-{"queueadm", {NULL}, 2230, "udp"},
-{"wimaxasncp", {NULL}, 2231, "tcp"},
-{"wimaxasncp", {NULL}, 2231, "udp"},
-{"ivs-video", {NULL}, 2232, "tcp"},
-{"ivs-video", {NULL}, 2232, "udp"},
-{"infocrypt", {NULL}, 2233, "tcp"},
-{"infocrypt", {NULL}, 2233, "udp"},
-{"directplay", {NULL}, 2234, "tcp"},
-{"directplay", {NULL}, 2234, "udp"},
-{"sercomm-wlink", {NULL}, 2235, "tcp"},
-{"sercomm-wlink", {NULL}, 2235, "udp"},
-{"nani", {NULL}, 2236, "tcp"},
-{"nani", {NULL}, 2236, "udp"},
-{"optech-port1-lm", {NULL}, 2237, "tcp"},
-{"optech-port1-lm", {NULL}, 2237, "udp"},
-{"aviva-sna", {NULL}, 2238, "tcp"},
-{"aviva-sna", {NULL}, 2238, "udp"},
-{"imagequery", {NULL}, 2239, "tcp"},
-{"imagequery", {NULL}, 2239, "udp"},
-{"recipe", {NULL}, 2240, "tcp"},
-{"recipe", {NULL}, 2240, "udp"},
-{"ivsd", {NULL}, 2241, "tcp"},
-{"ivsd", {NULL}, 2241, "udp"},
-{"foliocorp", {NULL}, 2242, "tcp"},
-{"foliocorp", {NULL}, 2242, "udp"},
-{"magicom", {NULL}, 2243, "tcp"},
-{"magicom", {NULL}, 2243, "udp"},
-{"nmsserver", {NULL}, 2244, "tcp"},
-{"nmsserver", {NULL}, 2244, "udp"},
-{"hao", {NULL}, 2245, "tcp"},
-{"hao", {NULL}, 2245, "udp"},
-{"pc-mta-addrmap", {NULL}, 2246, "tcp"},
-{"pc-mta-addrmap", {NULL}, 2246, "udp"},
-{"antidotemgrsvr", {NULL}, 2247, "tcp"},
-{"antidotemgrsvr", {NULL}, 2247, "udp"},
-{"ums", {NULL}, 2248, "tcp"},
-{"ums", {NULL}, 2248, "udp"},
-{"rfmp", {NULL}, 2249, "tcp"},
-{"rfmp", {NULL}, 2249, "udp"},
-{"remote-collab", {NULL}, 2250, "tcp"},
-{"remote-collab", {NULL}, 2250, "udp"},
-{"dif-port", {NULL}, 2251, "tcp"},
-{"dif-port", {NULL}, 2251, "udp"},
-{"njenet-ssl", {NULL}, 2252, "tcp"},
-{"njenet-ssl", {NULL}, 2252, "udp"},
-{"dtv-chan-req", {NULL}, 2253, "tcp"},
-{"dtv-chan-req", {NULL}, 2253, "udp"},
-{"seispoc", {NULL}, 2254, "tcp"},
-{"seispoc", {NULL}, 2254, "udp"},
-{"vrtp", {NULL}, 2255, "tcp"},
-{"vrtp", {NULL}, 2255, "udp"},
-{"pcc-mfp", {NULL}, 2256, "tcp"},
-{"pcc-mfp", {NULL}, 2256, "udp"},
-{"simple-tx-rx", {NULL}, 2257, "tcp"},
-{"simple-tx-rx", {NULL}, 2257, "udp"},
-{"rcts", {NULL}, 2258, "tcp"},
-{"rcts", {NULL}, 2258, "udp"},
-{"acd-pm", {NULL}, 2259, "tcp"},
-{"acd-pm", {NULL}, 2259, "udp"},
-{"apc-2260", {NULL}, 2260, "tcp"},
-{"apc-2260", {NULL}, 2260, "udp"},
-{"comotionmaster", {NULL}, 2261, "tcp"},
-{"comotionmaster", {NULL}, 2261, "udp"},
-{"comotionback", {NULL}, 2262, "tcp"},
-{"comotionback", {NULL}, 2262, "udp"},
-{"ecwcfg", {NULL}, 2263, "tcp"},
-{"ecwcfg", {NULL}, 2263, "udp"},
-{"apx500api-1", {NULL}, 2264, "tcp"},
-{"apx500api-1", {NULL}, 2264, "udp"},
-{"apx500api-2", {NULL}, 2265, "tcp"},
-{"apx500api-2", {NULL}, 2265, "udp"},
-{"mfserver", {NULL}, 2266, "tcp"},
-{"mfserver", {NULL}, 2266, "udp"},
-{"ontobroker", {NULL}, 2267, "tcp"},
-{"ontobroker", {NULL}, 2267, "udp"},
-{"amt", {NULL}, 2268, "tcp"},
-{"amt", {NULL}, 2268, "udp"},
-{"mikey", {NULL}, 2269, "tcp"},
-{"mikey", {NULL}, 2269, "udp"},
-{"starschool", {NULL}, 2270, "tcp"},
-{"starschool", {NULL}, 2270, "udp"},
-{"mmcals", {NULL}, 2271, "tcp"},
-{"mmcals", {NULL}, 2271, "udp"},
-{"mmcal", {NULL}, 2272, "tcp"},
-{"mmcal", {NULL}, 2272, "udp"},
-{"mysql-im", {NULL}, 2273, "tcp"},
-{"mysql-im", {NULL}, 2273, "udp"},
-{"pcttunnell", {NULL}, 2274, "tcp"},
-{"pcttunnell", {NULL}, 2274, "udp"},
-{"ibridge-data", {NULL}, 2275, "tcp"},
-{"ibridge-data", {NULL}, 2275, "udp"},
-{"ibridge-mgmt", {NULL}, 2276, "tcp"},
-{"ibridge-mgmt", {NULL}, 2276, "udp"},
-{"bluectrlproxy", {NULL}, 2277, "tcp"},
-{"bluectrlproxy", {NULL}, 2277, "udp"},
-{"s3db", {NULL}, 2278, "tcp"},
-{"s3db", {NULL}, 2278, "udp"},
-{"xmquery", {NULL}, 2279, "tcp"},
-{"xmquery", {NULL}, 2279, "udp"},
-{"lnvpoller", {NULL}, 2280, "tcp"},
-{"lnvpoller", {NULL}, 2280, "udp"},
-{"lnvconsole", {NULL}, 2281, "tcp"},
-{"lnvconsole", {NULL}, 2281, "udp"},
-{"lnvalarm", {NULL}, 2282, "tcp"},
-{"lnvalarm", {NULL}, 2282, "udp"},
-{"lnvstatus", {NULL}, 2283, "tcp"},
-{"lnvstatus", {NULL}, 2283, "udp"},
-{"lnvmaps", {NULL}, 2284, "tcp"},
-{"lnvmaps", {NULL}, 2284, "udp"},
-{"lnvmailmon", {NULL}, 2285, "tcp"},
-{"lnvmailmon", {NULL}, 2285, "udp"},
-{"nas-metering", {NULL}, 2286, "tcp"},
-{"nas-metering", {NULL}, 2286, "udp"},
-{"dna", {NULL}, 2287, "tcp"},
-{"dna", {NULL}, 2287, "udp"},
-{"netml", {NULL}, 2288, "tcp"},
-{"netml", {NULL}, 2288, "udp"},
-{"dict-lookup", {NULL}, 2289, "tcp"},
-{"dict-lookup", {NULL}, 2289, "udp"},
-{"sonus-logging", {NULL}, 2290, "tcp"},
-{"sonus-logging", {NULL}, 2290, "udp"},
-{"eapsp", {NULL}, 2291, "tcp"},
-{"eapsp", {NULL}, 2291, "udp"},
-{"mib-streaming", {NULL}, 2292, "tcp"},
-{"mib-streaming", {NULL}, 2292, "udp"},
-{"npdbgmngr", {NULL}, 2293, "tcp"},
-{"npdbgmngr", {NULL}, 2293, "udp"},
-{"konshus-lm", {NULL}, 2294, "tcp"},
-{"konshus-lm", {NULL}, 2294, "udp"},
-{"advant-lm", {NULL}, 2295, "tcp"},
-{"advant-lm", {NULL}, 2295, "udp"},
-{"theta-lm", {NULL}, 2296, "tcp"},
-{"theta-lm", {NULL}, 2296, "udp"},
-{"d2k-datamover1", {NULL}, 2297, "tcp"},
-{"d2k-datamover1", {NULL}, 2297, "udp"},
-{"d2k-datamover2", {NULL}, 2298, "tcp"},
-{"d2k-datamover2", {NULL}, 2298, "udp"},
-{"pc-telecommute", {NULL}, 2299, "tcp"},
-{"pc-telecommute", {NULL}, 2299, "udp"},
-{"cvmmon", {NULL}, 2300, "tcp"},
-{"cvmmon", {NULL}, 2300, "udp"},
-{"cpq-wbem", {NULL}, 2301, "tcp"},
-{"cpq-wbem", {NULL}, 2301, "udp"},
-{"binderysupport", {NULL}, 2302, "tcp"},
-{"binderysupport", {NULL}, 2302, "udp"},
-{"proxy-gateway", {NULL}, 2303, "tcp"},
-{"proxy-gateway", {NULL}, 2303, "udp"},
-{"attachmate-uts", {NULL}, 2304, "tcp"},
-{"attachmate-uts", {NULL}, 2304, "udp"},
-{"mt-scaleserver", {NULL}, 2305, "tcp"},
-{"mt-scaleserver", {NULL}, 2305, "udp"},
-{"tappi-boxnet", {NULL}, 2306, "tcp"},
-{"tappi-boxnet", {NULL}, 2306, "udp"},
-{"pehelp", {NULL}, 2307, "tcp"},
-{"pehelp", {NULL}, 2307, "udp"},
-{"sdhelp", {NULL}, 2308, "tcp"},
-{"sdhelp", {NULL}, 2308, "udp"},
-{"sdserver", {NULL}, 2309, "tcp"},
-{"sdserver", {NULL}, 2309, "udp"},
-{"sdclient", {NULL}, 2310, "tcp"},
-{"sdclient", {NULL}, 2310, "udp"},
-{"messageservice", {NULL}, 2311, "tcp"},
-{"messageservice", {NULL}, 2311, "udp"},
-{"wanscaler", {NULL}, 2312, "tcp"},
-{"wanscaler", {NULL}, 2312, "udp"},
-{"iapp", {NULL}, 2313, "tcp"},
-{"iapp", {NULL}, 2313, "udp"},
-{"cr-websystems", {NULL}, 2314, "tcp"},
-{"cr-websystems", {NULL}, 2314, "udp"},
-{"precise-sft", {NULL}, 2315, "tcp"},
-{"precise-sft", {NULL}, 2315, "udp"},
-{"sent-lm", {NULL}, 2316, "tcp"},
-{"sent-lm", {NULL}, 2316, "udp"},
-{"attachmate-g32", {NULL}, 2317, "tcp"},
-{"attachmate-g32", {NULL}, 2317, "udp"},
-{"cadencecontrol", {NULL}, 2318, "tcp"},
-{"cadencecontrol", {NULL}, 2318, "udp"},
-{"infolibria", {NULL}, 2319, "tcp"},
-{"infolibria", {NULL}, 2319, "udp"},
-{"siebel-ns", {NULL}, 2320, "tcp"},
-{"siebel-ns", {NULL}, 2320, "udp"},
-{"rdlap", {NULL}, 2321, "tcp"},
-{"rdlap", {NULL}, 2321, "udp"},
-{"ofsd", {NULL}, 2322, "tcp"},
-{"ofsd", {NULL}, 2322, "udp"},
-{"3d-nfsd", {NULL}, 2323, "tcp"},
-{"3d-nfsd", {NULL}, 2323, "udp"},
-{"cosmocall", {NULL}, 2324, "tcp"},
-{"cosmocall", {NULL}, 2324, "udp"},
-{"ansysli", {NULL}, 2325, "tcp"},
-{"ansysli", {NULL}, 2325, "udp"},
-{"idcp", {NULL}, 2326, "tcp"},
-{"idcp", {NULL}, 2326, "udp"},
-{"xingcsm", {NULL}, 2327, "tcp"},
-{"xingcsm", {NULL}, 2327, "udp"},
-{"netrix-sftm", {NULL}, 2328, "tcp"},
-{"netrix-sftm", {NULL}, 2328, "udp"},
-{"nvd", {NULL}, 2329, "tcp"},
-{"nvd", {NULL}, 2329, "udp"},
-{"tscchat", {NULL}, 2330, "tcp"},
-{"tscchat", {NULL}, 2330, "udp"},
-{"agentview", {NULL}, 2331, "tcp"},
-{"agentview", {NULL}, 2331, "udp"},
-{"rcc-host", {NULL}, 2332, "tcp"},
-{"rcc-host", {NULL}, 2332, "udp"},
-{"snapp", {NULL}, 2333, "tcp"},
-{"snapp", {NULL}, 2333, "udp"},
-{"ace-client", {NULL}, 2334, "tcp"},
-{"ace-client", {NULL}, 2334, "udp"},
-{"ace-proxy", {NULL}, 2335, "tcp"},
-{"ace-proxy", {NULL}, 2335, "udp"},
-{"appleugcontrol", {NULL}, 2336, "tcp"},
-{"appleugcontrol", {NULL}, 2336, "udp"},
-{"ideesrv", {NULL}, 2337, "tcp"},
-{"ideesrv", {NULL}, 2337, "udp"},
-{"norton-lambert", {NULL}, 2338, "tcp"},
-{"norton-lambert", {NULL}, 2338, "udp"},
-{"3com-webview", {NULL}, 2339, "tcp"},
-{"3com-webview", {NULL}, 2339, "udp"},
-{"wrs_registry", {NULL}, 2340, "tcp"},
-{"wrs_registry", {NULL}, 2340, "udp"},
-{"xiostatus", {NULL}, 2341, "tcp"},
-{"xiostatus", {NULL}, 2341, "udp"},
-{"manage-exec", {NULL}, 2342, "tcp"},
-{"manage-exec", {NULL}, 2342, "udp"},
-{"nati-logos", {NULL}, 2343, "tcp"},
-{"nati-logos", {NULL}, 2343, "udp"},
-{"fcmsys", {NULL}, 2344, "tcp"},
-{"fcmsys", {NULL}, 2344, "udp"},
-{"dbm", {NULL}, 2345, "tcp"},
-{"dbm", {NULL}, 2345, "udp"},
-{"redstorm_join", {NULL}, 2346, "tcp"},
-{"redstorm_join", {NULL}, 2346, "udp"},
-{"redstorm_find", {NULL}, 2347, "tcp"},
-{"redstorm_find", {NULL}, 2347, "udp"},
-{"redstorm_info", {NULL}, 2348, "tcp"},
-{"redstorm_info", {NULL}, 2348, "udp"},
-{"redstorm_diag", {NULL}, 2349, "tcp"},
-{"redstorm_diag", {NULL}, 2349, "udp"},
-{"psbserver", {NULL}, 2350, "tcp"},
-{"psbserver", {NULL}, 2350, "udp"},
-{"psrserver", {NULL}, 2351, "tcp"},
-{"psrserver", {NULL}, 2351, "udp"},
-{"pslserver", {NULL}, 2352, "tcp"},
-{"pslserver", {NULL}, 2352, "udp"},
-{"pspserver", {NULL}, 2353, "tcp"},
-{"pspserver", {NULL}, 2353, "udp"},
-{"psprserver", {NULL}, 2354, "tcp"},
-{"psprserver", {NULL}, 2354, "udp"},
-{"psdbserver", {NULL}, 2355, "tcp"},
-{"psdbserver", {NULL}, 2355, "udp"},
-{"gxtelmd", {NULL}, 2356, "tcp"},
-{"gxtelmd", {NULL}, 2356, "udp"},
-{"unihub-server", {NULL}, 2357, "tcp"},
-{"unihub-server", {NULL}, 2357, "udp"},
-{"futrix", {NULL}, 2358, "tcp"},
-{"futrix", {NULL}, 2358, "udp"},
-{"flukeserver", {NULL}, 2359, "tcp"},
-{"flukeserver", {NULL}, 2359, "udp"},
-{"nexstorindltd", {NULL}, 2360, "tcp"},
-{"nexstorindltd", {NULL}, 2360, "udp"},
-{"tl1", {NULL}, 2361, "tcp"},
-{"tl1", {NULL}, 2361, "udp"},
-{"digiman", {NULL}, 2362, "tcp"},
-{"digiman", {NULL}, 2362, "udp"},
-{"mediacntrlnfsd", {NULL}, 2363, "tcp"},
-{"mediacntrlnfsd", {NULL}, 2363, "udp"},
-{"oi-2000", {NULL}, 2364, "tcp"},
-{"oi-2000", {NULL}, 2364, "udp"},
-{"dbref", {NULL}, 2365, "tcp"},
-{"dbref", {NULL}, 2365, "udp"},
-{"qip-login", {NULL}, 2366, "tcp"},
-{"qip-login", {NULL}, 2366, "udp"},
-{"service-ctrl", {NULL}, 2367, "tcp"},
-{"service-ctrl", {NULL}, 2367, "udp"},
-{"opentable", {NULL}, 2368, "tcp"},
-{"opentable", {NULL}, 2368, "udp"},
-{"l3-hbmon", {NULL}, 2370, "tcp"},
-{"l3-hbmon", {NULL}, 2370, "udp"},
-{"worldwire", {NULL}, 2371, "tcp"},
-{"worldwire", {NULL}, 2371, "udp"},
-{"lanmessenger", {NULL}, 2372, "tcp"},
-{"lanmessenger", {NULL}, 2372, "udp"},
-{"remographlm", {NULL}, 2373, "tcp"},
-{"hydra", {NULL}, 2374, "tcp"},
-{"compaq-https", {NULL}, 2381, "tcp"},
-{"compaq-https", {NULL}, 2381, "udp"},
-{"ms-olap3", {NULL}, 2382, "tcp"},
-{"ms-olap3", {NULL}, 2382, "udp"},
-{"ms-olap4", {NULL}, 2383, "tcp"},
-{"ms-olap4", {NULL}, 2383, "udp"},
-{"sd-request", {NULL}, 2384, "tcp"},
-{"sd-capacity", {NULL}, 2384, "udp"},
-{"sd-data", {NULL}, 2385, "tcp"},
-{"sd-data", {NULL}, 2385, "udp"},
-{"virtualtape", {NULL}, 2386, "tcp"},
-{"virtualtape", {NULL}, 2386, "udp"},
-{"vsamredirector", {NULL}, 2387, "tcp"},
-{"vsamredirector", {NULL}, 2387, "udp"},
-{"mynahautostart", {NULL}, 2388, "tcp"},
-{"mynahautostart", {NULL}, 2388, "udp"},
-{"ovsessionmgr", {NULL}, 2389, "tcp"},
-{"ovsessionmgr", {NULL}, 2389, "udp"},
-{"rsmtp", {NULL}, 2390, "tcp"},
-{"rsmtp", {NULL}, 2390, "udp"},
-{"3com-net-mgmt", {NULL}, 2391, "tcp"},
-{"3com-net-mgmt", {NULL}, 2391, "udp"},
-{"tacticalauth", {NULL}, 2392, "tcp"},
-{"tacticalauth", {NULL}, 2392, "udp"},
-{"ms-olap1", {NULL}, 2393, "tcp"},
-{"ms-olap1", {NULL}, 2393, "udp"},
-{"ms-olap2", {NULL}, 2394, "tcp"},
-{"ms-olap2", {NULL}, 2394, "udp"},
-{"lan900_remote", {NULL}, 2395, "tcp"},
-{"lan900_remote", {NULL}, 2395, "udp"},
-{"wusage", {NULL}, 2396, "tcp"},
-{"wusage", {NULL}, 2396, "udp"},
-{"ncl", {NULL}, 2397, "tcp"},
-{"ncl", {NULL}, 2397, "udp"},
-{"orbiter", {NULL}, 2398, "tcp"},
-{"orbiter", {NULL}, 2398, "udp"},
-{"fmpro-fdal", {NULL}, 2399, "tcp"},
-{"fmpro-fdal", {NULL}, 2399, "udp"},
-{"opequus-server", {NULL}, 2400, "tcp"},
-{"opequus-server", {NULL}, 2400, "udp"},
-{"cvspserver", {NULL}, 2401, "tcp"},
-{"cvspserver", {NULL}, 2401, "udp"},
-{"taskmaster2000", {NULL}, 2402, "tcp"},
-{"taskmaster2000", {NULL}, 2402, "udp"},
-{"taskmaster2000", {NULL}, 2403, "tcp"},
-{"taskmaster2000", {NULL}, 2403, "udp"},
-{"iec-104", {NULL}, 2404, "tcp"},
-{"iec-104", {NULL}, 2404, "udp"},
-{"trc-netpoll", {NULL}, 2405, "tcp"},
-{"trc-netpoll", {NULL}, 2405, "udp"},
-{"jediserver", {NULL}, 2406, "tcp"},
-{"jediserver", {NULL}, 2406, "udp"},
-{"orion", {NULL}, 2407, "tcp"},
-{"orion", {NULL}, 2407, "udp"},
-{"optimanet", {NULL}, 2408, "tcp"},
-{"optimanet", {NULL}, 2408, "udp"},
-{"sns-protocol", {NULL}, 2409, "tcp"},
-{"sns-protocol", {NULL}, 2409, "udp"},
-{"vrts-registry", {NULL}, 2410, "tcp"},
-{"vrts-registry", {NULL}, 2410, "udp"},
-{"netwave-ap-mgmt", {NULL}, 2411, "tcp"},
-{"netwave-ap-mgmt", {NULL}, 2411, "udp"},
-{"cdn", {NULL}, 2412, "tcp"},
-{"cdn", {NULL}, 2412, "udp"},
-{"orion-rmi-reg", {NULL}, 2413, "tcp"},
-{"orion-rmi-reg", {NULL}, 2413, "udp"},
-{"beeyond", {NULL}, 2414, "tcp"},
-{"beeyond", {NULL}, 2414, "udp"},
-{"codima-rtp", {NULL}, 2415, "tcp"},
-{"codima-rtp", {NULL}, 2415, "udp"},
-{"rmtserver", {NULL}, 2416, "tcp"},
-{"rmtserver", {NULL}, 2416, "udp"},
-{"composit-server", {NULL}, 2417, "tcp"},
-{"composit-server", {NULL}, 2417, "udp"},
-{"cas", {NULL}, 2418, "tcp"},
-{"cas", {NULL}, 2418, "udp"},
-{"attachmate-s2s", {NULL}, 2419, "tcp"},
-{"attachmate-s2s", {NULL}, 2419, "udp"},
-{"dslremote-mgmt", {NULL}, 2420, "tcp"},
-{"dslremote-mgmt", {NULL}, 2420, "udp"},
-{"g-talk", {NULL}, 2421, "tcp"},
-{"g-talk", {NULL}, 2421, "udp"},
-{"crmsbits", {NULL}, 2422, "tcp"},
-{"crmsbits", {NULL}, 2422, "udp"},
-{"rnrp", {NULL}, 2423, "tcp"},
-{"rnrp", {NULL}, 2423, "udp"},
-{"kofax-svr", {NULL}, 2424, "tcp"},
-{"kofax-svr", {NULL}, 2424, "udp"},
-{"fjitsuappmgr", {NULL}, 2425, "tcp"},
-{"fjitsuappmgr", {NULL}, 2425, "udp"},
-{"mgcp-gateway", {NULL}, 2427, "tcp"},
-{"mgcp-gateway", {NULL}, 2427, "udp"},
-{"ott", {NULL}, 2428, "tcp"},
-{"ott", {NULL}, 2428, "udp"},
-{"ft-role", {NULL}, 2429, "tcp"},
-{"ft-role", {NULL}, 2429, "udp"},
-{"venus", {NULL}, 2430, "tcp"},
-{"venus", {NULL}, 2430, "udp"},
-{"venus-se", {NULL}, 2431, "tcp"},
-{"venus-se", {NULL}, 2431, "udp"},
-{"codasrv", {NULL}, 2432, "tcp"},
-{"codasrv", {NULL}, 2432, "udp"},
-{"codasrv-se", {NULL}, 2433, "tcp"},
-{"codasrv-se", {NULL}, 2433, "udp"},
-{"pxc-epmap", {NULL}, 2434, "tcp"},
-{"pxc-epmap", {NULL}, 2434, "udp"},
-{"optilogic", {NULL}, 2435, "tcp"},
-{"optilogic", {NULL}, 2435, "udp"},
-{"topx", {NULL}, 2436, "tcp"},
-{"topx", {NULL}, 2436, "udp"},
-{"unicontrol", {NULL}, 2437, "tcp"},
-{"unicontrol", {NULL}, 2437, "udp"},
-{"msp", {NULL}, 2438, "tcp"},
-{"msp", {NULL}, 2438, "udp"},
-{"sybasedbsynch", {NULL}, 2439, "tcp"},
-{"sybasedbsynch", {NULL}, 2439, "udp"},
-{"spearway", {NULL}, 2440, "tcp"},
-{"spearway", {NULL}, 2440, "udp"},
-{"pvsw-inet", {NULL}, 2441, "tcp"},
-{"pvsw-inet", {NULL}, 2441, "udp"},
-{"netangel", {NULL}, 2442, "tcp"},
-{"netangel", {NULL}, 2442, "udp"},
-{"powerclientcsf", {NULL}, 2443, "tcp"},
-{"powerclientcsf", {NULL}, 2443, "udp"},
-{"btpp2sectrans", {NULL}, 2444, "tcp"},
-{"btpp2sectrans", {NULL}, 2444, "udp"},
-{"dtn1", {NULL}, 2445, "tcp"},
-{"dtn1", {NULL}, 2445, "udp"},
-{"bues_service", {NULL}, 2446, "tcp"},
-{"bues_service", {NULL}, 2446, "udp"},
-{"ovwdb", {NULL}, 2447, "tcp"},
-{"ovwdb", {NULL}, 2447, "udp"},
-{"hpppssvr", {NULL}, 2448, "tcp"},
-{"hpppssvr", {NULL}, 2448, "udp"},
-{"ratl", {NULL}, 2449, "tcp"},
-{"ratl", {NULL}, 2449, "udp"},
-{"netadmin", {NULL}, 2450, "tcp"},
-{"netadmin", {NULL}, 2450, "udp"},
-{"netchat", {NULL}, 2451, "tcp"},
-{"netchat", {NULL}, 2451, "udp"},
-{"snifferclient", {NULL}, 2452, "tcp"},
-{"snifferclient", {NULL}, 2452, "udp"},
-{"madge-ltd", {NULL}, 2453, "tcp"},
-{"madge-ltd", {NULL}, 2453, "udp"},
-{"indx-dds", {NULL}, 2454, "tcp"},
-{"indx-dds", {NULL}, 2454, "udp"},
-{"wago-io-system", {NULL}, 2455, "tcp"},
-{"wago-io-system", {NULL}, 2455, "udp"},
-{"altav-remmgt", {NULL}, 2456, "tcp"},
-{"altav-remmgt", {NULL}, 2456, "udp"},
-{"rapido-ip", {NULL}, 2457, "tcp"},
-{"rapido-ip", {NULL}, 2457, "udp"},
-{"griffin", {NULL}, 2458, "tcp"},
-{"griffin", {NULL}, 2458, "udp"},
-{"community", {NULL}, 2459, "tcp"},
-{"community", {NULL}, 2459, "udp"},
-{"ms-theater", {NULL}, 2460, "tcp"},
-{"ms-theater", {NULL}, 2460, "udp"},
-{"qadmifoper", {NULL}, 2461, "tcp"},
-{"qadmifoper", {NULL}, 2461, "udp"},
-{"qadmifevent", {NULL}, 2462, "tcp"},
-{"qadmifevent", {NULL}, 2462, "udp"},
-{"lsi-raid-mgmt", {NULL}, 2463, "tcp"},
-{"lsi-raid-mgmt", {NULL}, 2463, "udp"},
-{"direcpc-si", {NULL}, 2464, "tcp"},
-{"direcpc-si", {NULL}, 2464, "udp"},
-{"lbm", {NULL}, 2465, "tcp"},
-{"lbm", {NULL}, 2465, "udp"},
-{"lbf", {NULL}, 2466, "tcp"},
-{"lbf", {NULL}, 2466, "udp"},
-{"high-criteria", {NULL}, 2467, "tcp"},
-{"high-criteria", {NULL}, 2467, "udp"},
-{"qip-msgd", {NULL}, 2468, "tcp"},
-{"qip-msgd", {NULL}, 2468, "udp"},
-{"mti-tcs-comm", {NULL}, 2469, "tcp"},
-{"mti-tcs-comm", {NULL}, 2469, "udp"},
-{"taskman-port", {NULL}, 2470, "tcp"},
-{"taskman-port", {NULL}, 2470, "udp"},
-{"seaodbc", {NULL}, 2471, "tcp"},
-{"seaodbc", {NULL}, 2471, "udp"},
-{"c3", {NULL}, 2472, "tcp"},
-{"c3", {NULL}, 2472, "udp"},
-{"aker-cdp", {NULL}, 2473, "tcp"},
-{"aker-cdp", {NULL}, 2473, "udp"},
-{"vitalanalysis", {NULL}, 2474, "tcp"},
-{"vitalanalysis", {NULL}, 2474, "udp"},
-{"ace-server", {NULL}, 2475, "tcp"},
-{"ace-server", {NULL}, 2475, "udp"},
-{"ace-svr-prop", {NULL}, 2476, "tcp"},
-{"ace-svr-prop", {NULL}, 2476, "udp"},
-{"ssm-cvs", {NULL}, 2477, "tcp"},
-{"ssm-cvs", {NULL}, 2477, "udp"},
-{"ssm-cssps", {NULL}, 2478, "tcp"},
-{"ssm-cssps", {NULL}, 2478, "udp"},
-{"ssm-els", {NULL}, 2479, "tcp"},
-{"ssm-els", {NULL}, 2479, "udp"},
-{"powerexchange", {NULL}, 2480, "tcp"},
-{"powerexchange", {NULL}, 2480, "udp"},
-{"giop", {NULL}, 2481, "tcp"},
-{"giop", {NULL}, 2481, "udp"},
-{"giop-ssl", {NULL}, 2482, "tcp"},
-{"giop-ssl", {NULL}, 2482, "udp"},
-{"ttc", {NULL}, 2483, "tcp"},
-{"ttc", {NULL}, 2483, "udp"},
-{"ttc-ssl", {NULL}, 2484, "tcp"},
-{"ttc-ssl", {NULL}, 2484, "udp"},
-{"netobjects1", {NULL}, 2485, "tcp"},
-{"netobjects1", {NULL}, 2485, "udp"},
-{"netobjects2", {NULL}, 2486, "tcp"},
-{"netobjects2", {NULL}, 2486, "udp"},
-{"pns", {NULL}, 2487, "tcp"},
-{"pns", {NULL}, 2487, "udp"},
-{"moy-corp", {NULL}, 2488, "tcp"},
-{"moy-corp", {NULL}, 2488, "udp"},
-{"tsilb", {NULL}, 2489, "tcp"},
-{"tsilb", {NULL}, 2489, "udp"},
-{"qip-qdhcp", {NULL}, 2490, "tcp"},
-{"qip-qdhcp", {NULL}, 2490, "udp"},
-{"conclave-cpp", {NULL}, 2491, "tcp"},
-{"conclave-cpp", {NULL}, 2491, "udp"},
-{"groove", {NULL}, 2492, "tcp"},
-{"groove", {NULL}, 2492, "udp"},
-{"talarian-mqs", {NULL}, 2493, "tcp"},
-{"talarian-mqs", {NULL}, 2493, "udp"},
-{"bmc-ar", {NULL}, 2494, "tcp"},
-{"bmc-ar", {NULL}, 2494, "udp"},
-{"fast-rem-serv", {NULL}, 2495, "tcp"},
-{"fast-rem-serv", {NULL}, 2495, "udp"},
-{"dirgis", {NULL}, 2496, "tcp"},
-{"dirgis", {NULL}, 2496, "udp"},
-{"quaddb", {NULL}, 2497, "tcp"},
-{"quaddb", {NULL}, 2497, "udp"},
-{"odn-castraq", {NULL}, 2498, "tcp"},
-{"odn-castraq", {NULL}, 2498, "udp"},
-{"unicontrol", {NULL}, 2499, "tcp"},
-{"unicontrol", {NULL}, 2499, "udp"},
-{"rtsserv", {NULL}, 2500, "tcp"},
-{"rtsserv", {NULL}, 2500, "udp"},
-{"rtsclient", {NULL}, 2501, "tcp"},
-{"rtsclient", {NULL}, 2501, "udp"},
-{"kentrox-prot", {NULL}, 2502, "tcp"},
-{"kentrox-prot", {NULL}, 2502, "udp"},
-{"nms-dpnss", {NULL}, 2503, "tcp"},
-{"nms-dpnss", {NULL}, 2503, "udp"},
-{"wlbs", {NULL}, 2504, "tcp"},
-{"wlbs", {NULL}, 2504, "udp"},
-{"ppcontrol", {NULL}, 2505, "tcp"},
-{"ppcontrol", {NULL}, 2505, "udp"},
-{"jbroker", {NULL}, 2506, "tcp"},
-{"jbroker", {NULL}, 2506, "udp"},
-{"spock", {NULL}, 2507, "tcp"},
-{"spock", {NULL}, 2507, "udp"},
-{"jdatastore", {NULL}, 2508, "tcp"},
-{"jdatastore", {NULL}, 2508, "udp"},
-{"fjmpss", {NULL}, 2509, "tcp"},
-{"fjmpss", {NULL}, 2509, "udp"},
-{"fjappmgrbulk", {NULL}, 2510, "tcp"},
-{"fjappmgrbulk", {NULL}, 2510, "udp"},
-{"metastorm", {NULL}, 2511, "tcp"},
-{"metastorm", {NULL}, 2511, "udp"},
-{"citrixima", {NULL}, 2512, "tcp"},
-{"citrixima", {NULL}, 2512, "udp"},
-{"citrixadmin", {NULL}, 2513, "tcp"},
-{"citrixadmin", {NULL}, 2513, "udp"},
-{"facsys-ntp", {NULL}, 2514, "tcp"},
-{"facsys-ntp", {NULL}, 2514, "udp"},
-{"facsys-router", {NULL}, 2515, "tcp"},
-{"facsys-router", {NULL}, 2515, "udp"},
-{"maincontrol", {NULL}, 2516, "tcp"},
-{"maincontrol", {NULL}, 2516, "udp"},
-{"call-sig-trans", {NULL}, 2517, "tcp"},
-{"call-sig-trans", {NULL}, 2517, "udp"},
-{"willy", {NULL}, 2518, "tcp"},
-{"willy", {NULL}, 2518, "udp"},
-{"globmsgsvc", {NULL}, 2519, "tcp"},
-{"globmsgsvc", {NULL}, 2519, "udp"},
-{"pvsw", {NULL}, 2520, "tcp"},
-{"pvsw", {NULL}, 2520, "udp"},
-{"adaptecmgr", {NULL}, 2521, "tcp"},
-{"adaptecmgr", {NULL}, 2521, "udp"},
-{"windb", {NULL}, 2522, "tcp"},
-{"windb", {NULL}, 2522, "udp"},
-{"qke-llc-v3", {NULL}, 2523, "tcp"},
-{"qke-llc-v3", {NULL}, 2523, "udp"},
-{"optiwave-lm", {NULL}, 2524, "tcp"},
-{"optiwave-lm", {NULL}, 2524, "udp"},
-{"ms-v-worlds", {NULL}, 2525, "tcp"},
-{"ms-v-worlds", {NULL}, 2525, "udp"},
-{"ema-sent-lm", {NULL}, 2526, "tcp"},
-{"ema-sent-lm", {NULL}, 2526, "udp"},
-{"iqserver", {NULL}, 2527, "tcp"},
-{"iqserver", {NULL}, 2527, "udp"},
-{"ncr_ccl", {NULL}, 2528, "tcp"},
-{"ncr_ccl", {NULL}, 2528, "udp"},
-{"utsftp", {NULL}, 2529, "tcp"},
-{"utsftp", {NULL}, 2529, "udp"},
-{"vrcommerce", {NULL}, 2530, "tcp"},
-{"vrcommerce", {NULL}, 2530, "udp"},
-{"ito-e-gui", {NULL}, 2531, "tcp"},
-{"ito-e-gui", {NULL}, 2531, "udp"},
-{"ovtopmd", {NULL}, 2532, "tcp"},
-{"ovtopmd", {NULL}, 2532, "udp"},
-{"snifferserver", {NULL}, 2533, "tcp"},
-{"snifferserver", {NULL}, 2533, "udp"},
-{"combox-web-acc", {NULL}, 2534, "tcp"},
-{"combox-web-acc", {NULL}, 2534, "udp"},
-{"madcap", {NULL}, 2535, "tcp"},
-{"madcap", {NULL}, 2535, "udp"},
-{"btpp2audctr1", {NULL}, 2536, "tcp"},
-{"btpp2audctr1", {NULL}, 2536, "udp"},
-{"upgrade", {NULL}, 2537, "tcp"},
-{"upgrade", {NULL}, 2537, "udp"},
-{"vnwk-prapi", {NULL}, 2538, "tcp"},
-{"vnwk-prapi", {NULL}, 2538, "udp"},
-{"vsiadmin", {NULL}, 2539, "tcp"},
-{"vsiadmin", {NULL}, 2539, "udp"},
-{"lonworks", {NULL}, 2540, "tcp"},
-{"lonworks", {NULL}, 2540, "udp"},
-{"lonworks2", {NULL}, 2541, "tcp"},
-{"lonworks2", {NULL}, 2541, "udp"},
-{"udrawgraph", {NULL}, 2542, "tcp"},
-{"udrawgraph", {NULL}, 2542, "udp"},
-{"reftek", {NULL}, 2543, "tcp"},
-{"reftek", {NULL}, 2543, "udp"},
-{"novell-zen", {NULL}, 2544, "tcp"},
-{"novell-zen", {NULL}, 2544, "udp"},
-{"sis-emt", {NULL}, 2545, "tcp"},
-{"sis-emt", {NULL}, 2545, "udp"},
-{"vytalvaultbrtp", {NULL}, 2546, "tcp"},
-{"vytalvaultbrtp", {NULL}, 2546, "udp"},
-{"vytalvaultvsmp", {NULL}, 2547, "tcp"},
-{"vytalvaultvsmp", {NULL}, 2547, "udp"},
-{"vytalvaultpipe", {NULL}, 2548, "tcp"},
-{"vytalvaultpipe", {NULL}, 2548, "udp"},
-{"ipass", {NULL}, 2549, "tcp"},
-{"ipass", {NULL}, 2549, "udp"},
-{"ads", {NULL}, 2550, "tcp"},
-{"ads", {NULL}, 2550, "udp"},
-{"isg-uda-server", {NULL}, 2551, "tcp"},
-{"isg-uda-server", {NULL}, 2551, "udp"},
-{"call-logging", {NULL}, 2552, "tcp"},
-{"call-logging", {NULL}, 2552, "udp"},
-{"efidiningport", {NULL}, 2553, "tcp"},
-{"efidiningport", {NULL}, 2553, "udp"},
-{"vcnet-link-v10", {NULL}, 2554, "tcp"},
-{"vcnet-link-v10", {NULL}, 2554, "udp"},
-{"compaq-wcp", {NULL}, 2555, "tcp"},
-{"compaq-wcp", {NULL}, 2555, "udp"},
-{"nicetec-nmsvc", {NULL}, 2556, "tcp"},
-{"nicetec-nmsvc", {NULL}, 2556, "udp"},
-{"nicetec-mgmt", {NULL}, 2557, "tcp"},
-{"nicetec-mgmt", {NULL}, 2557, "udp"},
-{"pclemultimedia", {NULL}, 2558, "tcp"},
-{"pclemultimedia", {NULL}, 2558, "udp"},
-{"lstp", {NULL}, 2559, "tcp"},
-{"lstp", {NULL}, 2559, "udp"},
-{"labrat", {NULL}, 2560, "tcp"},
-{"labrat", {NULL}, 2560, "udp"},
-{"mosaixcc", {NULL}, 2561, "tcp"},
-{"mosaixcc", {NULL}, 2561, "udp"},
-{"delibo", {NULL}, 2562, "tcp"},
-{"delibo", {NULL}, 2562, "udp"},
-{"cti-redwood", {NULL}, 2563, "tcp"},
-{"cti-redwood", {NULL}, 2563, "udp"},
-{"hp-3000-telnet", {NULL}, 2564, "tcp"},
-{"coord-svr", {NULL}, 2565, "tcp"},
-{"coord-svr", {NULL}, 2565, "udp"},
-{"pcs-pcw", {NULL}, 2566, "tcp"},
-{"pcs-pcw", {NULL}, 2566, "udp"},
-{"clp", {NULL}, 2567, "tcp"},
-{"clp", {NULL}, 2567, "udp"},
-{"spamtrap", {NULL}, 2568, "tcp"},
-{"spamtrap", {NULL}, 2568, "udp"},
-{"sonuscallsig", {NULL}, 2569, "tcp"},
-{"sonuscallsig", {NULL}, 2569, "udp"},
-{"hs-port", {NULL}, 2570, "tcp"},
-{"hs-port", {NULL}, 2570, "udp"},
-{"cecsvc", {NULL}, 2571, "tcp"},
-{"cecsvc", {NULL}, 2571, "udp"},
-{"ibp", {NULL}, 2572, "tcp"},
-{"ibp", {NULL}, 2572, "udp"},
-{"trustestablish", {NULL}, 2573, "tcp"},
-{"trustestablish", {NULL}, 2573, "udp"},
-{"blockade-bpsp", {NULL}, 2574, "tcp"},
-{"blockade-bpsp", {NULL}, 2574, "udp"},
-{"hl7", {NULL}, 2575, "tcp"},
-{"hl7", {NULL}, 2575, "udp"},
-{"tclprodebugger", {NULL}, 2576, "tcp"},
-{"tclprodebugger", {NULL}, 2576, "udp"},
-{"scipticslsrvr", {NULL}, 2577, "tcp"},
-{"scipticslsrvr", {NULL}, 2577, "udp"},
-{"rvs-isdn-dcp", {NULL}, 2578, "tcp"},
-{"rvs-isdn-dcp", {NULL}, 2578, "udp"},
-{"mpfoncl", {NULL}, 2579, "tcp"},
-{"mpfoncl", {NULL}, 2579, "udp"},
-{"tributary", {NULL}, 2580, "tcp"},
-{"tributary", {NULL}, 2580, "udp"},
-{"argis-te", {NULL}, 2581, "tcp"},
-{"argis-te", {NULL}, 2581, "udp"},
-{"argis-ds", {NULL}, 2582, "tcp"},
-{"argis-ds", {NULL}, 2582, "udp"},
-{"mon", {NULL}, 2583, "tcp"},
-{"mon", {NULL}, 2583, "udp"},
-{"cyaserv", {NULL}, 2584, "tcp"},
-{"cyaserv", {NULL}, 2584, "udp"},
-{"netx-server", {NULL}, 2585, "tcp"},
-{"netx-server", {NULL}, 2585, "udp"},
-{"netx-agent", {NULL}, 2586, "tcp"},
-{"netx-agent", {NULL}, 2586, "udp"},
-{"masc", {NULL}, 2587, "tcp"},
-{"masc", {NULL}, 2587, "udp"},
-{"privilege", {NULL}, 2588, "tcp"},
-{"privilege", {NULL}, 2588, "udp"},
-{"quartus-tcl", {NULL}, 2589, "tcp"},
-{"quartus-tcl", {NULL}, 2589, "udp"},
-{"idotdist", {NULL}, 2590, "tcp"},
-{"idotdist", {NULL}, 2590, "udp"},
-{"maytagshuffle", {NULL}, 2591, "tcp"},
-{"maytagshuffle", {NULL}, 2591, "udp"},
-{"netrek", {NULL}, 2592, "tcp"},
-{"netrek", {NULL}, 2592, "udp"},
-{"mns-mail", {NULL}, 2593, "tcp"},
-{"mns-mail", {NULL}, 2593, "udp"},
-{"dts", {NULL}, 2594, "tcp"},
-{"dts", {NULL}, 2594, "udp"},
-{"worldfusion1", {NULL}, 2595, "tcp"},
-{"worldfusion1", {NULL}, 2595, "udp"},
-{"worldfusion2", {NULL}, 2596, "tcp"},
-{"worldfusion2", {NULL}, 2596, "udp"},
-{"homesteadglory", {NULL}, 2597, "tcp"},
-{"homesteadglory", {NULL}, 2597, "udp"},
-{"citriximaclient", {NULL}, 2598, "tcp"},
-{"citriximaclient", {NULL}, 2598, "udp"},
-{"snapd", {NULL}, 2599, "tcp"},
-{"snapd", {NULL}, 2599, "udp"},
-{"hpstgmgr", {NULL}, 2600, "tcp"},
-{"hpstgmgr", {NULL}, 2600, "udp"},
-{"discp-client", {NULL}, 2601, "tcp"},
-{"discp-client", {NULL}, 2601, "udp"},
-{"discp-server", {NULL}, 2602, "tcp"},
-{"discp-server", {NULL}, 2602, "udp"},
-{"servicemeter", {NULL}, 2603, "tcp"},
-{"servicemeter", {NULL}, 2603, "udp"},
-{"nsc-ccs", {NULL}, 2604, "tcp"},
-{"nsc-ccs", {NULL}, 2604, "udp"},
-{"nsc-posa", {NULL}, 2605, "tcp"},
-{"nsc-posa", {NULL}, 2605, "udp"},
-{"netmon", {NULL}, 2606, "tcp"},
-{"netmon", {NULL}, 2606, "udp"},
-{"connection", {NULL}, 2607, "tcp"},
-{"connection", {NULL}, 2607, "udp"},
-{"wag-service", {NULL}, 2608, "tcp"},
-{"wag-service", {NULL}, 2608, "udp"},
-{"system-monitor", {NULL}, 2609, "tcp"},
-{"system-monitor", {NULL}, 2609, "udp"},
-{"versa-tek", {NULL}, 2610, "tcp"},
-{"versa-tek", {NULL}, 2610, "udp"},
-{"lionhead", {NULL}, 2611, "tcp"},
-{"lionhead", {NULL}, 2611, "udp"},
-{"qpasa-agent", {NULL}, 2612, "tcp"},
-{"qpasa-agent", {NULL}, 2612, "udp"},
-{"smntubootstrap", {NULL}, 2613, "tcp"},
-{"smntubootstrap", {NULL}, 2613, "udp"},
-{"neveroffline", {NULL}, 2614, "tcp"},
-{"neveroffline", {NULL}, 2614, "udp"},
-{"firepower", {NULL}, 2615, "tcp"},
-{"firepower", {NULL}, 2615, "udp"},
-{"appswitch-emp", {NULL}, 2616, "tcp"},
-{"appswitch-emp", {NULL}, 2616, "udp"},
-{"cmadmin", {NULL}, 2617, "tcp"},
-{"cmadmin", {NULL}, 2617, "udp"},
-{"priority-e-com", {NULL}, 2618, "tcp"},
-{"priority-e-com", {NULL}, 2618, "udp"},
-{"bruce", {NULL}, 2619, "tcp"},
-{"bruce", {NULL}, 2619, "udp"},
-{"lpsrecommender", {NULL}, 2620, "tcp"},
-{"lpsrecommender", {NULL}, 2620, "udp"},
-{"miles-apart", {NULL}, 2621, "tcp"},
-{"miles-apart", {NULL}, 2621, "udp"},
-{"metricadbc", {NULL}, 2622, "tcp"},
-{"metricadbc", {NULL}, 2622, "udp"},
-{"lmdp", {NULL}, 2623, "tcp"},
-{"lmdp", {NULL}, 2623, "udp"},
-{"aria", {NULL}, 2624, "tcp"},
-{"aria", {NULL}, 2624, "udp"},
-{"blwnkl-port", {NULL}, 2625, "tcp"},
-{"blwnkl-port", {NULL}, 2625, "udp"},
-{"gbjd816", {NULL}, 2626, "tcp"},
-{"gbjd816", {NULL}, 2626, "udp"},
-{"moshebeeri", {NULL}, 2627, "tcp"},
-{"moshebeeri", {NULL}, 2627, "udp"},
-{"dict", {NULL}, 2628, "tcp"},
-{"dict", {NULL}, 2628, "udp"},
-{"sitaraserver", {NULL}, 2629, "tcp"},
-{"sitaraserver", {NULL}, 2629, "udp"},
-{"sitaramgmt", {NULL}, 2630, "tcp"},
-{"sitaramgmt", {NULL}, 2630, "udp"},
-{"sitaradir", {NULL}, 2631, "tcp"},
-{"sitaradir", {NULL}, 2631, "udp"},
-{"irdg-post", {NULL}, 2632, "tcp"},
-{"irdg-post", {NULL}, 2632, "udp"},
-{"interintelli", {NULL}, 2633, "tcp"},
-{"interintelli", {NULL}, 2633, "udp"},
-{"pk-electronics", {NULL}, 2634, "tcp"},
-{"pk-electronics", {NULL}, 2634, "udp"},
-{"backburner", {NULL}, 2635, "tcp"},
-{"backburner", {NULL}, 2635, "udp"},
-{"solve", {NULL}, 2636, "tcp"},
-{"solve", {NULL}, 2636, "udp"},
-{"imdocsvc", {NULL}, 2637, "tcp"},
-{"imdocsvc", {NULL}, 2637, "udp"},
-{"sybaseanywhere", {NULL}, 2638, "tcp"},
-{"sybaseanywhere", {NULL}, 2638, "udp"},
-{"aminet", {NULL}, 2639, "tcp"},
-{"aminet", {NULL}, 2639, "udp"},
-{"sai_sentlm", {NULL}, 2640, "tcp"},
-{"sai_sentlm", {NULL}, 2640, "udp"},
-{"hdl-srv", {NULL}, 2641, "tcp"},
-{"hdl-srv", {NULL}, 2641, "udp"},
-{"tragic", {NULL}, 2642, "tcp"},
-{"tragic", {NULL}, 2642, "udp"},
-{"gte-samp", {NULL}, 2643, "tcp"},
-{"gte-samp", {NULL}, 2643, "udp"},
-{"travsoft-ipx-t", {NULL}, 2644, "tcp"},
-{"travsoft-ipx-t", {NULL}, 2644, "udp"},
-{"novell-ipx-cmd", {NULL}, 2645, "tcp"},
-{"novell-ipx-cmd", {NULL}, 2645, "udp"},
-{"and-lm", {NULL}, 2646, "tcp"},
-{"and-lm", {NULL}, 2646, "udp"},
-{"syncserver", {NULL}, 2647, "tcp"},
-{"syncserver", {NULL}, 2647, "udp"},
-{"upsnotifyprot", {NULL}, 2648, "tcp"},
-{"upsnotifyprot", {NULL}, 2648, "udp"},
-{"vpsipport", {NULL}, 2649, "tcp"},
-{"vpsipport", {NULL}, 2649, "udp"},
-{"eristwoguns", {NULL}, 2650, "tcp"},
-{"eristwoguns", {NULL}, 2650, "udp"},
-{"ebinsite", {NULL}, 2651, "tcp"},
-{"ebinsite", {NULL}, 2651, "udp"},
-{"interpathpanel", {NULL}, 2652, "tcp"},
-{"interpathpanel", {NULL}, 2652, "udp"},
-{"sonus", {NULL}, 2653, "tcp"},
-{"sonus", {NULL}, 2653, "udp"},
-{"corel_vncadmin", {NULL}, 2654, "tcp"},
-{"corel_vncadmin", {NULL}, 2654, "udp"},
-{"unglue", {NULL}, 2655, "tcp"},
-{"unglue", {NULL}, 2655, "udp"},
-{"kana", {NULL}, 2656, "tcp"},
-{"kana", {NULL}, 2656, "udp"},
-{"sns-dispatcher", {NULL}, 2657, "tcp"},
-{"sns-dispatcher", {NULL}, 2657, "udp"},
-{"sns-admin", {NULL}, 2658, "tcp"},
-{"sns-admin", {NULL}, 2658, "udp"},
-{"sns-query", {NULL}, 2659, "tcp"},
-{"sns-query", {NULL}, 2659, "udp"},
-{"gcmonitor", {NULL}, 2660, "tcp"},
-{"gcmonitor", {NULL}, 2660, "udp"},
-{"olhost", {NULL}, 2661, "tcp"},
-{"olhost", {NULL}, 2661, "udp"},
-{"bintec-capi", {NULL}, 2662, "tcp"},
-{"bintec-capi", {NULL}, 2662, "udp"},
-{"bintec-tapi", {NULL}, 2663, "tcp"},
-{"bintec-tapi", {NULL}, 2663, "udp"},
-{"patrol-mq-gm", {NULL}, 2664, "tcp"},
-{"patrol-mq-gm", {NULL}, 2664, "udp"},
-{"patrol-mq-nm", {NULL}, 2665, "tcp"},
-{"patrol-mq-nm", {NULL}, 2665, "udp"},
-{"extensis", {NULL}, 2666, "tcp"},
-{"extensis", {NULL}, 2666, "udp"},
-{"alarm-clock-s", {NULL}, 2667, "tcp"},
-{"alarm-clock-s", {NULL}, 2667, "udp"},
-{"alarm-clock-c", {NULL}, 2668, "tcp"},
-{"alarm-clock-c", {NULL}, 2668, "udp"},
-{"toad", {NULL}, 2669, "tcp"},
-{"toad", {NULL}, 2669, "udp"},
-{"tve-announce", {NULL}, 2670, "tcp"},
-{"tve-announce", {NULL}, 2670, "udp"},
-{"newlixreg", {NULL}, 2671, "tcp"},
-{"newlixreg", {NULL}, 2671, "udp"},
-{"nhserver", {NULL}, 2672, "tcp"},
-{"nhserver", {NULL}, 2672, "udp"},
-{"firstcall42", {NULL}, 2673, "tcp"},
-{"firstcall42", {NULL}, 2673, "udp"},
-{"ewnn", {NULL}, 2674, "tcp"},
-{"ewnn", {NULL}, 2674, "udp"},
-{"ttc-etap", {NULL}, 2675, "tcp"},
-{"ttc-etap", {NULL}, 2675, "udp"},
-{"simslink", {NULL}, 2676, "tcp"},
-{"simslink", {NULL}, 2676, "udp"},
-{"gadgetgate1way", {NULL}, 2677, "tcp"},
-{"gadgetgate1way", {NULL}, 2677, "udp"},
-{"gadgetgate2way", {NULL}, 2678, "tcp"},
-{"gadgetgate2way", {NULL}, 2678, "udp"},
-{"syncserverssl", {NULL}, 2679, "tcp"},
-{"syncserverssl", {NULL}, 2679, "udp"},
-{"pxc-sapxom", {NULL}, 2680, "tcp"},
-{"pxc-sapxom", {NULL}, 2680, "udp"},
-{"mpnjsomb", {NULL}, 2681, "tcp"},
-{"mpnjsomb", {NULL}, 2681, "udp"},
-{"ncdloadbalance", {NULL}, 2683, "tcp"},
-{"ncdloadbalance", {NULL}, 2683, "udp"},
-{"mpnjsosv", {NULL}, 2684, "tcp"},
-{"mpnjsosv", {NULL}, 2684, "udp"},
-{"mpnjsocl", {NULL}, 2685, "tcp"},
-{"mpnjsocl", {NULL}, 2685, "udp"},
-{"mpnjsomg", {NULL}, 2686, "tcp"},
-{"mpnjsomg", {NULL}, 2686, "udp"},
-{"pq-lic-mgmt", {NULL}, 2687, "tcp"},
-{"pq-lic-mgmt", {NULL}, 2687, "udp"},
-{"md-cg-http", {NULL}, 2688, "tcp"},
-{"md-cg-http", {NULL}, 2688, "udp"},
-{"fastlynx", {NULL}, 2689, "tcp"},
-{"fastlynx", {NULL}, 2689, "udp"},
-{"hp-nnm-data", {NULL}, 2690, "tcp"},
-{"hp-nnm-data", {NULL}, 2690, "udp"},
-{"itinternet", {NULL}, 2691, "tcp"},
-{"itinternet", {NULL}, 2691, "udp"},
-{"admins-lms", {NULL}, 2692, "tcp"},
-{"admins-lms", {NULL}, 2692, "udp"},
-{"pwrsevent", {NULL}, 2694, "tcp"},
-{"pwrsevent", {NULL}, 2694, "udp"},
-{"vspread", {NULL}, 2695, "tcp"},
-{"vspread", {NULL}, 2695, "udp"},
-{"unifyadmin", {NULL}, 2696, "tcp"},
-{"unifyadmin", {NULL}, 2696, "udp"},
-{"oce-snmp-trap", {NULL}, 2697, "tcp"},
-{"oce-snmp-trap", {NULL}, 2697, "udp"},
-{"mck-ivpip", {NULL}, 2698, "tcp"},
-{"mck-ivpip", {NULL}, 2698, "udp"},
-{"csoft-plusclnt", {NULL}, 2699, "tcp"},
-{"csoft-plusclnt", {NULL}, 2699, "udp"},
-{"tqdata", {NULL}, 2700, "tcp"},
-{"tqdata", {NULL}, 2700, "udp"},
-{"sms-rcinfo", {NULL}, 2701, "tcp"},
-{"sms-rcinfo", {NULL}, 2701, "udp"},
-{"sms-xfer", {NULL}, 2702, "tcp"},
-{"sms-xfer", {NULL}, 2702, "udp"},
-{"sms-chat", {NULL}, 2703, "tcp"},
-{"sms-chat", {NULL}, 2703, "udp"},
-{"sms-remctrl", {NULL}, 2704, "tcp"},
-{"sms-remctrl", {NULL}, 2704, "udp"},
-{"sds-admin", {NULL}, 2705, "tcp"},
-{"sds-admin", {NULL}, 2705, "udp"},
-{"ncdmirroring", {NULL}, 2706, "tcp"},
-{"ncdmirroring", {NULL}, 2706, "udp"},
-{"emcsymapiport", {NULL}, 2707, "tcp"},
-{"emcsymapiport", {NULL}, 2707, "udp"},
-{"banyan-net", {NULL}, 2708, "tcp"},
-{"banyan-net", {NULL}, 2708, "udp"},
-{"supermon", {NULL}, 2709, "tcp"},
-{"supermon", {NULL}, 2709, "udp"},
-{"sso-service", {NULL}, 2710, "tcp"},
-{"sso-service", {NULL}, 2710, "udp"},
-{"sso-control", {NULL}, 2711, "tcp"},
-{"sso-control", {NULL}, 2711, "udp"},
-{"aocp", {NULL}, 2712, "tcp"},
-{"aocp", {NULL}, 2712, "udp"},
-{"raventbs", {NULL}, 2713, "tcp"},
-{"raventbs", {NULL}, 2713, "udp"},
-{"raventdm", {NULL}, 2714, "tcp"},
-{"raventdm", {NULL}, 2714, "udp"},
-{"hpstgmgr2", {NULL}, 2715, "tcp"},
-{"hpstgmgr2", {NULL}, 2715, "udp"},
-{"inova-ip-disco", {NULL}, 2716, "tcp"},
-{"inova-ip-disco", {NULL}, 2716, "udp"},
-{"pn-requester", {NULL}, 2717, "tcp"},
-{"pn-requester", {NULL}, 2717, "udp"},
-{"pn-requester2", {NULL}, 2718, "tcp"},
-{"pn-requester2", {NULL}, 2718, "udp"},
-{"scan-change", {NULL}, 2719, "tcp"},
-{"scan-change", {NULL}, 2719, "udp"},
-{"wkars", {NULL}, 2720, "tcp"},
-{"wkars", {NULL}, 2720, "udp"},
-{"smart-diagnose", {NULL}, 2721, "tcp"},
-{"smart-diagnose", {NULL}, 2721, "udp"},
-{"proactivesrvr", {NULL}, 2722, "tcp"},
-{"proactivesrvr", {NULL}, 2722, "udp"},
-{"watchdog-nt", {NULL}, 2723, "tcp"},
-{"watchdog-nt", {NULL}, 2723, "udp"},
-{"qotps", {NULL}, 2724, "tcp"},
-{"qotps", {NULL}, 2724, "udp"},
-{"msolap-ptp2", {NULL}, 2725, "tcp"},
-{"msolap-ptp2", {NULL}, 2725, "udp"},
-{"tams", {NULL}, 2726, "tcp"},
-{"tams", {NULL}, 2726, "udp"},
-{"mgcp-callagent", {NULL}, 2727, "tcp"},
-{"mgcp-callagent", {NULL}, 2727, "udp"},
-{"sqdr", {NULL}, 2728, "tcp"},
-{"sqdr", {NULL}, 2728, "udp"},
-{"tcim-control", {NULL}, 2729, "tcp"},
-{"tcim-control", {NULL}, 2729, "udp"},
-{"nec-raidplus", {NULL}, 2730, "tcp"},
-{"nec-raidplus", {NULL}, 2730, "udp"},
-{"fyre-messanger", {NULL}, 2731, "tcp"},
-{"fyre-messanger", {NULL}, 2731, "udp"},
-{"g5m", {NULL}, 2732, "tcp"},
-{"g5m", {NULL}, 2732, "udp"},
-{"signet-ctf", {NULL}, 2733, "tcp"},
-{"signet-ctf", {NULL}, 2733, "udp"},
-{"ccs-software", {NULL}, 2734, "tcp"},
-{"ccs-software", {NULL}, 2734, "udp"},
-{"netiq-mc", {NULL}, 2735, "tcp"},
-{"netiq-mc", {NULL}, 2735, "udp"},
-{"radwiz-nms-srv", {NULL}, 2736, "tcp"},
-{"radwiz-nms-srv", {NULL}, 2736, "udp"},
-{"srp-feedback", {NULL}, 2737, "tcp"},
-{"srp-feedback", {NULL}, 2737, "udp"},
-{"ndl-tcp-ois-gw", {NULL}, 2738, "tcp"},
-{"ndl-tcp-ois-gw", {NULL}, 2738, "udp"},
-{"tn-timing", {NULL}, 2739, "tcp"},
-{"tn-timing", {NULL}, 2739, "udp"},
-{"alarm", {NULL}, 2740, "tcp"},
-{"alarm", {NULL}, 2740, "udp"},
-{"tsb", {NULL}, 2741, "tcp"},
-{"tsb", {NULL}, 2741, "udp"},
-{"tsb2", {NULL}, 2742, "tcp"},
-{"tsb2", {NULL}, 2742, "udp"},
-{"murx", {NULL}, 2743, "tcp"},
-{"murx", {NULL}, 2743, "udp"},
-{"honyaku", {NULL}, 2744, "tcp"},
-{"honyaku", {NULL}, 2744, "udp"},
-{"urbisnet", {NULL}, 2745, "tcp"},
-{"urbisnet", {NULL}, 2745, "udp"},
-{"cpudpencap", {NULL}, 2746, "tcp"},
-{"cpudpencap", {NULL}, 2746, "udp"},
-{"fjippol-swrly", {NULL}, 2747, "tcp"},
-{"fjippol-swrly", {NULL}, 2747, "udp"},
-{"fjippol-polsvr", {NULL}, 2748, "tcp"},
-{"fjippol-polsvr", {NULL}, 2748, "udp"},
-{"fjippol-cnsl", {NULL}, 2749, "tcp"},
-{"fjippol-cnsl", {NULL}, 2749, "udp"},
-{"fjippol-port1", {NULL}, 2750, "tcp"},
-{"fjippol-port1", {NULL}, 2750, "udp"},
-{"fjippol-port2", {NULL}, 2751, "tcp"},
-{"fjippol-port2", {NULL}, 2751, "udp"},
-{"rsisysaccess", {NULL}, 2752, "tcp"},
-{"rsisysaccess", {NULL}, 2752, "udp"},
-{"de-spot", {NULL}, 2753, "tcp"},
-{"de-spot", {NULL}, 2753, "udp"},
-{"apollo-cc", {NULL}, 2754, "tcp"},
-{"apollo-cc", {NULL}, 2754, "udp"},
-{"expresspay", {NULL}, 2755, "tcp"},
-{"expresspay", {NULL}, 2755, "udp"},
-{"simplement-tie", {NULL}, 2756, "tcp"},
-{"simplement-tie", {NULL}, 2756, "udp"},
-{"cnrp", {NULL}, 2757, "tcp"},
-{"cnrp", {NULL}, 2757, "udp"},
-{"apollo-status", {NULL}, 2758, "tcp"},
-{"apollo-status", {NULL}, 2758, "udp"},
-{"apollo-gms", {NULL}, 2759, "tcp"},
-{"apollo-gms", {NULL}, 2759, "udp"},
-{"sabams", {NULL}, 2760, "tcp"},
-{"sabams", {NULL}, 2760, "udp"},
-{"dicom-iscl", {NULL}, 2761, "tcp"},
-{"dicom-iscl", {NULL}, 2761, "udp"},
-{"dicom-tls", {NULL}, 2762, "tcp"},
-{"dicom-tls", {NULL}, 2762, "udp"},
-{"desktop-dna", {NULL}, 2763, "tcp"},
-{"desktop-dna", {NULL}, 2763, "udp"},
-{"data-insurance", {NULL}, 2764, "tcp"},
-{"data-insurance", {NULL}, 2764, "udp"},
-{"qip-audup", {NULL}, 2765, "tcp"},
-{"qip-audup", {NULL}, 2765, "udp"},
-{"compaq-scp", {NULL}, 2766, "tcp"},
-{"compaq-scp", {NULL}, 2766, "udp"},
-{"uadtc", {NULL}, 2767, "tcp"},
-{"uadtc", {NULL}, 2767, "udp"},
-{"uacs", {NULL}, 2768, "tcp"},
-{"uacs", {NULL}, 2768, "udp"},
-{"exce", {NULL}, 2769, "tcp"},
-{"exce", {NULL}, 2769, "udp"},
-{"veronica", {NULL}, 2770, "tcp"},
-{"veronica", {NULL}, 2770, "udp"},
-{"vergencecm", {NULL}, 2771, "tcp"},
-{"vergencecm", {NULL}, 2771, "udp"},
-{"auris", {NULL}, 2772, "tcp"},
-{"auris", {NULL}, 2772, "udp"},
-{"rbakcup1", {NULL}, 2773, "tcp"},
-{"rbakcup1", {NULL}, 2773, "udp"},
-{"rbakcup2", {NULL}, 2774, "tcp"},
-{"rbakcup2", {NULL}, 2774, "udp"},
-{"smpp", {NULL}, 2775, "tcp"},
-{"smpp", {NULL}, 2775, "udp"},
-{"ridgeway1", {NULL}, 2776, "tcp"},
-{"ridgeway1", {NULL}, 2776, "udp"},
-{"ridgeway2", {NULL}, 2777, "tcp"},
-{"ridgeway2", {NULL}, 2777, "udp"},
-{"gwen-sonya", {NULL}, 2778, "tcp"},
-{"gwen-sonya", {NULL}, 2778, "udp"},
-{"lbc-sync", {NULL}, 2779, "tcp"},
-{"lbc-sync", {NULL}, 2779, "udp"},
-{"lbc-control", {NULL}, 2780, "tcp"},
-{"lbc-control", {NULL}, 2780, "udp"},
-{"whosells", {NULL}, 2781, "tcp"},
-{"whosells", {NULL}, 2781, "udp"},
-{"everydayrc", {NULL}, 2782, "tcp"},
-{"everydayrc", {NULL}, 2782, "udp"},
-{"aises", {NULL}, 2783, "tcp"},
-{"aises", {NULL}, 2783, "udp"},
-{"www-dev", {NULL}, 2784, "tcp"},
-{"www-dev", {NULL}, 2784, "udp"},
-{"aic-np", {NULL}, 2785, "tcp"},
-{"aic-np", {NULL}, 2785, "udp"},
-{"aic-oncrpc", {NULL}, 2786, "tcp"},
-{"aic-oncrpc", {NULL}, 2786, "udp"},
-{"piccolo", {NULL}, 2787, "tcp"},
-{"piccolo", {NULL}, 2787, "udp"},
-{"fryeserv", {NULL}, 2788, "tcp"},
-{"fryeserv", {NULL}, 2788, "udp"},
-{"media-agent", {NULL}, 2789, "tcp"},
-{"media-agent", {NULL}, 2789, "udp"},
-{"plgproxy", {NULL}, 2790, "tcp"},
-{"plgproxy", {NULL}, 2790, "udp"},
-{"mtport-regist", {NULL}, 2791, "tcp"},
-{"mtport-regist", {NULL}, 2791, "udp"},
-{"f5-globalsite", {NULL}, 2792, "tcp"},
-{"f5-globalsite", {NULL}, 2792, "udp"},
-{"initlsmsad", {NULL}, 2793, "tcp"},
-{"initlsmsad", {NULL}, 2793, "udp"},
-{"livestats", {NULL}, 2795, "tcp"},
-{"livestats", {NULL}, 2795, "udp"},
-{"ac-tech", {NULL}, 2796, "tcp"},
-{"ac-tech", {NULL}, 2796, "udp"},
-{"esp-encap", {NULL}, 2797, "tcp"},
-{"esp-encap", {NULL}, 2797, "udp"},
-{"tmesis-upshot", {NULL}, 2798, "tcp"},
-{"tmesis-upshot", {NULL}, 2798, "udp"},
-{"icon-discover", {NULL}, 2799, "tcp"},
-{"icon-discover", {NULL}, 2799, "udp"},
-{"acc-raid", {NULL}, 2800, "tcp"},
-{"acc-raid", {NULL}, 2800, "udp"},
-{"igcp", {NULL}, 2801, "tcp"},
-{"igcp", {NULL}, 2801, "udp"},
-{"veritas-tcp1", {NULL}, 2802, "tcp"},
-{"veritas-udp1", {NULL}, 2802, "udp"},
-{"btprjctrl", {NULL}, 2803, "tcp"},
-{"btprjctrl", {NULL}, 2803, "udp"},
-{"dvr-esm", {NULL}, 2804, "tcp"},
-{"dvr-esm", {NULL}, 2804, "udp"},
-{"wta-wsp-s", {NULL}, 2805, "tcp"},
-{"wta-wsp-s", {NULL}, 2805, "udp"},
-{"cspuni", {NULL}, 2806, "tcp"},
-{"cspuni", {NULL}, 2806, "udp"},
-{"cspmulti", {NULL}, 2807, "tcp"},
-{"cspmulti", {NULL}, 2807, "udp"},
-{"j-lan-p", {NULL}, 2808, "tcp"},
-{"j-lan-p", {NULL}, 2808, "udp"},
-{"corbaloc", {NULL}, 2809, "tcp"},
-{"corbaloc", {NULL}, 2809, "udp"},
-{"netsteward", {NULL}, 2810, "tcp"},
-{"netsteward", {NULL}, 2810, "udp"},
-{"gsiftp", {NULL}, 2811, "tcp"},
-{"gsiftp", {NULL}, 2811, "udp"},
-{"atmtcp", {NULL}, 2812, "tcp"},
-{"atmtcp", {NULL}, 2812, "udp"},
-{"llm-pass", {NULL}, 2813, "tcp"},
-{"llm-pass", {NULL}, 2813, "udp"},
-{"llm-csv", {NULL}, 2814, "tcp"},
-{"llm-csv", {NULL}, 2814, "udp"},
-{"lbc-measure", {NULL}, 2815, "tcp"},
-{"lbc-measure", {NULL}, 2815, "udp"},
-{"lbc-watchdog", {NULL}, 2816, "tcp"},
-{"lbc-watchdog", {NULL}, 2816, "udp"},
-{"nmsigport", {NULL}, 2817, "tcp"},
-{"nmsigport", {NULL}, 2817, "udp"},
-{"rmlnk", {NULL}, 2818, "tcp"},
-{"rmlnk", {NULL}, 2818, "udp"},
-{"fc-faultnotify", {NULL}, 2819, "tcp"},
-{"fc-faultnotify", {NULL}, 2819, "udp"},
-{"univision", {NULL}, 2820, "tcp"},
-{"univision", {NULL}, 2820, "udp"},
-{"vrts-at-port", {NULL}, 2821, "tcp"},
-{"vrts-at-port", {NULL}, 2821, "udp"},
-{"ka0wuc", {NULL}, 2822, "tcp"},
-{"ka0wuc", {NULL}, 2822, "udp"},
-{"cqg-netlan", {NULL}, 2823, "tcp"},
-{"cqg-netlan", {NULL}, 2823, "udp"},
-{"cqg-netlan-1", {NULL}, 2824, "tcp"},
-{"cqg-netlan-1", {NULL}, 2824, "udp"},
-{"slc-systemlog", {NULL}, 2826, "tcp"},
-{"slc-systemlog", {NULL}, 2826, "udp"},
-{"slc-ctrlrloops", {NULL}, 2827, "tcp"},
-{"slc-ctrlrloops", {NULL}, 2827, "udp"},
-{"itm-lm", {NULL}, 2828, "tcp"},
-{"itm-lm", {NULL}, 2828, "udp"},
-{"silkp1", {NULL}, 2829, "tcp"},
-{"silkp1", {NULL}, 2829, "udp"},
-{"silkp2", {NULL}, 2830, "tcp"},
-{"silkp2", {NULL}, 2830, "udp"},
-{"silkp3", {NULL}, 2831, "tcp"},
-{"silkp3", {NULL}, 2831, "udp"},
-{"silkp4", {NULL}, 2832, "tcp"},
-{"silkp4", {NULL}, 2832, "udp"},
-{"glishd", {NULL}, 2833, "tcp"},
-{"glishd", {NULL}, 2833, "udp"},
-{"evtp", {NULL}, 2834, "tcp"},
-{"evtp", {NULL}, 2834, "udp"},
-{"evtp-data", {NULL}, 2835, "tcp"},
-{"evtp-data", {NULL}, 2835, "udp"},
-{"catalyst", {NULL}, 2836, "tcp"},
-{"catalyst", {NULL}, 2836, "udp"},
-{"repliweb", {NULL}, 2837, "tcp"},
-{"repliweb", {NULL}, 2837, "udp"},
-{"starbot", {NULL}, 2838, "tcp"},
-{"starbot", {NULL}, 2838, "udp"},
-{"nmsigport", {NULL}, 2839, "tcp"},
-{"nmsigport", {NULL}, 2839, "udp"},
-{"l3-exprt", {NULL}, 2840, "tcp"},
-{"l3-exprt", {NULL}, 2840, "udp"},
-{"l3-ranger", {NULL}, 2841, "tcp"},
-{"l3-ranger", {NULL}, 2841, "udp"},
-{"l3-hawk", {NULL}, 2842, "tcp"},
-{"l3-hawk", {NULL}, 2842, "udp"},
-{"pdnet", {NULL}, 2843, "tcp"},
-{"pdnet", {NULL}, 2843, "udp"},
-{"bpcp-poll", {NULL}, 2844, "tcp"},
-{"bpcp-poll", {NULL}, 2844, "udp"},
-{"bpcp-trap", {NULL}, 2845, "tcp"},
-{"bpcp-trap", {NULL}, 2845, "udp"},
-{"aimpp-hello", {NULL}, 2846, "tcp"},
-{"aimpp-hello", {NULL}, 2846, "udp"},
-{"aimpp-port-req", {NULL}, 2847, "tcp"},
-{"aimpp-port-req", {NULL}, 2847, "udp"},
-{"amt-blc-port", {NULL}, 2848, "tcp"},
-{"amt-blc-port", {NULL}, 2848, "udp"},
-{"fxp", {NULL}, 2849, "tcp"},
-{"fxp", {NULL}, 2849, "udp"},
-{"metaconsole", {NULL}, 2850, "tcp"},
-{"metaconsole", {NULL}, 2850, "udp"},
-{"webemshttp", {NULL}, 2851, "tcp"},
-{"webemshttp", {NULL}, 2851, "udp"},
-{"bears-01", {NULL}, 2852, "tcp"},
-{"bears-01", {NULL}, 2852, "udp"},
-{"ispipes", {NULL}, 2853, "tcp"},
-{"ispipes", {NULL}, 2853, "udp"},
-{"infomover", {NULL}, 2854, "tcp"},
-{"infomover", {NULL}, 2854, "udp"},
-{"msrp", {NULL}, 2855, "tcp"},
-{"msrp", {NULL}, 2855, "udp"},
-{"cesdinv", {NULL}, 2856, "tcp"},
-{"cesdinv", {NULL}, 2856, "udp"},
-{"simctlp", {NULL}, 2857, "tcp"},
-{"simctlp", {NULL}, 2857, "udp"},
-{"ecnp", {NULL}, 2858, "tcp"},
-{"ecnp", {NULL}, 2858, "udp"},
-{"activememory", {NULL}, 2859, "tcp"},
-{"activememory", {NULL}, 2859, "udp"},
-{"dialpad-voice1", {NULL}, 2860, "tcp"},
-{"dialpad-voice1", {NULL}, 2860, "udp"},
-{"dialpad-voice2", {NULL}, 2861, "tcp"},
-{"dialpad-voice2", {NULL}, 2861, "udp"},
-{"ttg-protocol", {NULL}, 2862, "tcp"},
-{"ttg-protocol", {NULL}, 2862, "udp"},
-{"sonardata", {NULL}, 2863, "tcp"},
-{"sonardata", {NULL}, 2863, "udp"},
-{"astromed-main", {NULL}, 2864, "tcp"},
-{"astromed-main", {NULL}, 2864, "udp"},
-{"pit-vpn", {NULL}, 2865, "tcp"},
-{"pit-vpn", {NULL}, 2865, "udp"},
-{"iwlistener", {NULL}, 2866, "tcp"},
-{"iwlistener", {NULL}, 2866, "udp"},
-{"esps-portal", {NULL}, 2867, "tcp"},
-{"esps-portal", {NULL}, 2867, "udp"},
-{"npep-messaging", {NULL}, 2868, "tcp"},
-{"npep-messaging", {NULL}, 2868, "udp"},
-{"icslap", {NULL}, 2869, "tcp"},
-{"icslap", {NULL}, 2869, "udp"},
-{"daishi", {NULL}, 2870, "tcp"},
-{"daishi", {NULL}, 2870, "udp"},
-{"msi-selectplay", {NULL}, 2871, "tcp"},
-{"msi-selectplay", {NULL}, 2871, "udp"},
-{"radix", {NULL}, 2872, "tcp"},
-{"radix", {NULL}, 2872, "udp"},
-{"dxmessagebase1", {NULL}, 2874, "tcp"},
-{"dxmessagebase1", {NULL}, 2874, "udp"},
-{"dxmessagebase2", {NULL}, 2875, "tcp"},
-{"dxmessagebase2", {NULL}, 2875, "udp"},
-{"sps-tunnel", {NULL}, 2876, "tcp"},
-{"sps-tunnel", {NULL}, 2876, "udp"},
-{"bluelance", {NULL}, 2877, "tcp"},
-{"bluelance", {NULL}, 2877, "udp"},
-{"aap", {NULL}, 2878, "tcp"},
-{"aap", {NULL}, 2878, "udp"},
-{"ucentric-ds", {NULL}, 2879, "tcp"},
-{"ucentric-ds", {NULL}, 2879, "udp"},
-{"synapse", {NULL}, 2880, "tcp"},
-{"synapse", {NULL}, 2880, "udp"},
-{"ndsp", {NULL}, 2881, "tcp"},
-{"ndsp", {NULL}, 2881, "udp"},
-{"ndtp", {NULL}, 2882, "tcp"},
-{"ndtp", {NULL}, 2882, "udp"},
-{"ndnp", {NULL}, 2883, "tcp"},
-{"ndnp", {NULL}, 2883, "udp"},
-{"flashmsg", {NULL}, 2884, "tcp"},
-{"flashmsg", {NULL}, 2884, "udp"},
-{"topflow", {NULL}, 2885, "tcp"},
-{"topflow", {NULL}, 2885, "udp"},
-{"responselogic", {NULL}, 2886, "tcp"},
-{"responselogic", {NULL}, 2886, "udp"},
-{"aironetddp", {NULL}, 2887, "tcp"},
-{"aironetddp", {NULL}, 2887, "udp"},
-{"spcsdlobby", {NULL}, 2888, "tcp"},
-{"spcsdlobby", {NULL}, 2888, "udp"},
-{"rsom", {NULL}, 2889, "tcp"},
-{"rsom", {NULL}, 2889, "udp"},
-{"cspclmulti", {NULL}, 2890, "tcp"},
-{"cspclmulti", {NULL}, 2890, "udp"},
-{"cinegrfx-elmd", {NULL}, 2891, "tcp"},
-{"cinegrfx-elmd", {NULL}, 2891, "udp"},
-{"snifferdata", {NULL}, 2892, "tcp"},
-{"snifferdata", {NULL}, 2892, "udp"},
-{"vseconnector", {NULL}, 2893, "tcp"},
-{"vseconnector", {NULL}, 2893, "udp"},
-{"abacus-remote", {NULL}, 2894, "tcp"},
-{"abacus-remote", {NULL}, 2894, "udp"},
-{"natuslink", {NULL}, 2895, "tcp"},
-{"natuslink", {NULL}, 2895, "udp"},
-{"ecovisiong6-1", {NULL}, 2896, "tcp"},
-{"ecovisiong6-1", {NULL}, 2896, "udp"},
-{"citrix-rtmp", {NULL}, 2897, "tcp"},
-{"citrix-rtmp", {NULL}, 2897, "udp"},
-{"appliance-cfg", {NULL}, 2898, "tcp"},
-{"appliance-cfg", {NULL}, 2898, "udp"},
-{"powergemplus", {NULL}, 2899, "tcp"},
-{"powergemplus", {NULL}, 2899, "udp"},
-{"quicksuite", {NULL}, 2900, "tcp"},
-{"quicksuite", {NULL}, 2900, "udp"},
-{"allstorcns", {NULL}, 2901, "tcp"},
-{"allstorcns", {NULL}, 2901, "udp"},
-{"netaspi", {NULL}, 2902, "tcp"},
-{"netaspi", {NULL}, 2902, "udp"},
-{"suitcase", {NULL}, 2903, "tcp"},
-{"suitcase", {NULL}, 2903, "udp"},
-{"m2ua", {NULL}, 2904, "tcp"},
-{"m2ua", {NULL}, 2904, "udp"},
-{"m2ua", {NULL}, 2904, "sctp"},
-{"m3ua", {NULL}, 2905, "tcp"},
-{"m3ua", {NULL}, 2905, "sctp"},
-{"caller9", {NULL}, 2906, "tcp"},
-{"caller9", {NULL}, 2906, "udp"},
-{"webmethods-b2b", {NULL}, 2907, "tcp"},
-{"webmethods-b2b", {NULL}, 2907, "udp"},
-{"mao", {NULL}, 2908, "tcp"},
-{"mao", {NULL}, 2908, "udp"},
-{"funk-dialout", {NULL}, 2909, "tcp"},
-{"funk-dialout", {NULL}, 2909, "udp"},
-{"tdaccess", {NULL}, 2910, "tcp"},
-{"tdaccess", {NULL}, 2910, "udp"},
-{"blockade", {NULL}, 2911, "tcp"},
-{"blockade", {NULL}, 2911, "udp"},
-{"epicon", {NULL}, 2912, "tcp"},
-{"epicon", {NULL}, 2912, "udp"},
-{"boosterware", {NULL}, 2913, "tcp"},
-{"boosterware", {NULL}, 2913, "udp"},
-{"gamelobby", {NULL}, 2914, "tcp"},
-{"gamelobby", {NULL}, 2914, "udp"},
-{"tksocket", {NULL}, 2915, "tcp"},
-{"tksocket", {NULL}, 2915, "udp"},
-{"elvin_server", {NULL}, 2916, "tcp"},
-{"elvin_server", {NULL}, 2916, "udp"},
-{"elvin_client", {NULL}, 2917, "tcp"},
-{"elvin_client", {NULL}, 2917, "udp"},
-{"kastenchasepad", {NULL}, 2918, "tcp"},
-{"kastenchasepad", {NULL}, 2918, "udp"},
-{"roboer", {NULL}, 2919, "tcp"},
-{"roboer", {NULL}, 2919, "udp"},
-{"roboeda", {NULL}, 2920, "tcp"},
-{"roboeda", {NULL}, 2920, "udp"},
-{"cesdcdman", {NULL}, 2921, "tcp"},
-{"cesdcdman", {NULL}, 2921, "udp"},
-{"cesdcdtrn", {NULL}, 2922, "tcp"},
-{"cesdcdtrn", {NULL}, 2922, "udp"},
-{"wta-wsp-wtp-s", {NULL}, 2923, "tcp"},
-{"wta-wsp-wtp-s", {NULL}, 2923, "udp"},
-{"precise-vip", {NULL}, 2924, "tcp"},
-{"precise-vip", {NULL}, 2924, "udp"},
-{"mobile-file-dl", {NULL}, 2926, "tcp"},
-{"mobile-file-dl", {NULL}, 2926, "udp"},
-{"unimobilectrl", {NULL}, 2927, "tcp"},
-{"unimobilectrl", {NULL}, 2927, "udp"},
-{"redstone-cpss", {NULL}, 2928, "tcp"},
-{"redstone-cpss", {NULL}, 2928, "udp"},
-{"amx-webadmin", {NULL}, 2929, "tcp"},
-{"amx-webadmin", {NULL}, 2929, "udp"},
-{"amx-weblinx", {NULL}, 2930, "tcp"},
-{"amx-weblinx", {NULL}, 2930, "udp"},
-{"circle-x", {NULL}, 2931, "tcp"},
-{"circle-x", {NULL}, 2931, "udp"},
-{"incp", {NULL}, 2932, "tcp"},
-{"incp", {NULL}, 2932, "udp"},
-{"4-tieropmgw", {NULL}, 2933, "tcp"},
-{"4-tieropmgw", {NULL}, 2933, "udp"},
-{"4-tieropmcli", {NULL}, 2934, "tcp"},
-{"4-tieropmcli", {NULL}, 2934, "udp"},
-{"qtp", {NULL}, 2935, "tcp"},
-{"qtp", {NULL}, 2935, "udp"},
-{"otpatch", {NULL}, 2936, "tcp"},
-{"otpatch", {NULL}, 2936, "udp"},
-{"pnaconsult-lm", {NULL}, 2937, "tcp"},
-{"pnaconsult-lm", {NULL}, 2937, "udp"},
-{"sm-pas-1", {NULL}, 2938, "tcp"},
-{"sm-pas-1", {NULL}, 2938, "udp"},
-{"sm-pas-2", {NULL}, 2939, "tcp"},
-{"sm-pas-2", {NULL}, 2939, "udp"},
-{"sm-pas-3", {NULL}, 2940, "tcp"},
-{"sm-pas-3", {NULL}, 2940, "udp"},
-{"sm-pas-4", {NULL}, 2941, "tcp"},
-{"sm-pas-4", {NULL}, 2941, "udp"},
-{"sm-pas-5", {NULL}, 2942, "tcp"},
-{"sm-pas-5", {NULL}, 2942, "udp"},
-{"ttnrepository", {NULL}, 2943, "tcp"},
-{"ttnrepository", {NULL}, 2943, "udp"},
-{"megaco-h248", {NULL}, 2944, "tcp"},
-{"megaco-h248", {NULL}, 2944, "udp"},
-{"megaco-h248", {NULL}, 2944, "sctp"},
-{"h248-binary", {NULL}, 2945, "tcp"},
-{"h248-binary", {NULL}, 2945, "udp"},
-{"h248-binary", {NULL}, 2945, "sctp"},
-{"fjsvmpor", {NULL}, 2946, "tcp"},
-{"fjsvmpor", {NULL}, 2946, "udp"},
-{"gpsd", {NULL}, 2947, "tcp"},
-{"gpsd", {NULL}, 2947, "udp"},
-{"wap-push", {NULL}, 2948, "tcp"},
-{"wap-push", {NULL}, 2948, "udp"},
-{"wap-pushsecure", {NULL}, 2949, "tcp"},
-{"wap-pushsecure", {NULL}, 2949, "udp"},
-{"esip", {NULL}, 2950, "tcp"},
-{"esip", {NULL}, 2950, "udp"},
-{"ottp", {NULL}, 2951, "tcp"},
-{"ottp", {NULL}, 2951, "udp"},
-{"mpfwsas", {NULL}, 2952, "tcp"},
-{"mpfwsas", {NULL}, 2952, "udp"},
-{"ovalarmsrv", {NULL}, 2953, "tcp"},
-{"ovalarmsrv", {NULL}, 2953, "udp"},
-{"ovalarmsrv-cmd", {NULL}, 2954, "tcp"},
-{"ovalarmsrv-cmd", {NULL}, 2954, "udp"},
-{"csnotify", {NULL}, 2955, "tcp"},
-{"csnotify", {NULL}, 2955, "udp"},
-{"ovrimosdbman", {NULL}, 2956, "tcp"},
-{"ovrimosdbman", {NULL}, 2956, "udp"},
-{"jmact5", {NULL}, 2957, "tcp"},
-{"jmact5", {NULL}, 2957, "udp"},
-{"jmact6", {NULL}, 2958, "tcp"},
-{"jmact6", {NULL}, 2958, "udp"},
-{"rmopagt", {NULL}, 2959, "tcp"},
-{"rmopagt", {NULL}, 2959, "udp"},
-{"dfoxserver", {NULL}, 2960, "tcp"},
-{"dfoxserver", {NULL}, 2960, "udp"},
-{"boldsoft-lm", {NULL}, 2961, "tcp"},
-{"boldsoft-lm", {NULL}, 2961, "udp"},
-{"iph-policy-cli", {NULL}, 2962, "tcp"},
-{"iph-policy-cli", {NULL}, 2962, "udp"},
-{"iph-policy-adm", {NULL}, 2963, "tcp"},
-{"iph-policy-adm", {NULL}, 2963, "udp"},
-{"bullant-srap", {NULL}, 2964, "tcp"},
-{"bullant-srap", {NULL}, 2964, "udp"},
-{"bullant-rap", {NULL}, 2965, "tcp"},
-{"bullant-rap", {NULL}, 2965, "udp"},
-{"idp-infotrieve", {NULL}, 2966, "tcp"},
-{"idp-infotrieve", {NULL}, 2966, "udp"},
-{"ssc-agent", {NULL}, 2967, "tcp"},
-{"ssc-agent", {NULL}, 2967, "udp"},
-{"enpp", {NULL}, 2968, "tcp"},
-{"enpp", {NULL}, 2968, "udp"},
-{"essp", {NULL}, 2969, "tcp"},
-{"essp", {NULL}, 2969, "udp"},
-{"index-net", {NULL}, 2970, "tcp"},
-{"index-net", {NULL}, 2970, "udp"},
-{"netclip", {NULL}, 2971, "tcp"},
-{"netclip", {NULL}, 2971, "udp"},
-{"pmsm-webrctl", {NULL}, 2972, "tcp"},
-{"pmsm-webrctl", {NULL}, 2972, "udp"},
-{"svnetworks", {NULL}, 2973, "tcp"},
-{"svnetworks", {NULL}, 2973, "udp"},
-{"signal", {NULL}, 2974, "tcp"},
-{"signal", {NULL}, 2974, "udp"},
-{"fjmpcm", {NULL}, 2975, "tcp"},
-{"fjmpcm", {NULL}, 2975, "udp"},
-{"cns-srv-port", {NULL}, 2976, "tcp"},
-{"cns-srv-port", {NULL}, 2976, "udp"},
-{"ttc-etap-ns", {NULL}, 2977, "tcp"},
-{"ttc-etap-ns", {NULL}, 2977, "udp"},
-{"ttc-etap-ds", {NULL}, 2978, "tcp"},
-{"ttc-etap-ds", {NULL}, 2978, "udp"},
-{"h263-video", {NULL}, 2979, "tcp"},
-{"h263-video", {NULL}, 2979, "udp"},
-{"wimd", {NULL}, 2980, "tcp"},
-{"wimd", {NULL}, 2980, "udp"},
-{"mylxamport", {NULL}, 2981, "tcp"},
-{"mylxamport", {NULL}, 2981, "udp"},
-{"iwb-whiteboard", {NULL}, 2982, "tcp"},
-{"iwb-whiteboard", {NULL}, 2982, "udp"},
-{"netplan", {NULL}, 2983, "tcp"},
-{"netplan", {NULL}, 2983, "udp"},
-{"hpidsadmin", {NULL}, 2984, "tcp"},
-{"hpidsadmin", {NULL}, 2984, "udp"},
-{"hpidsagent", {NULL}, 2985, "tcp"},
-{"hpidsagent", {NULL}, 2985, "udp"},
-{"stonefalls", {NULL}, 2986, "tcp"},
-{"stonefalls", {NULL}, 2986, "udp"},
-{"identify", {NULL}, 2987, "tcp"},
-{"identify", {NULL}, 2987, "udp"},
-{"hippad", {NULL}, 2988, "tcp"},
-{"hippad", {NULL}, 2988, "udp"},
-{"zarkov", {NULL}, 2989, "tcp"},
-{"zarkov", {NULL}, 2989, "udp"},
-{"boscap", {NULL}, 2990, "tcp"},
-{"boscap", {NULL}, 2990, "udp"},
-{"wkstn-mon", {NULL}, 2991, "tcp"},
-{"wkstn-mon", {NULL}, 2991, "udp"},
-{"avenyo", {NULL}, 2992, "tcp"},
-{"avenyo", {NULL}, 2992, "udp"},
-{"veritas-vis1", {NULL}, 2993, "tcp"},
-{"veritas-vis1", {NULL}, 2993, "udp"},
-{"veritas-vis2", {NULL}, 2994, "tcp"},
-{"veritas-vis2", {NULL}, 2994, "udp"},
-{"idrs", {NULL}, 2995, "tcp"},
-{"idrs", {NULL}, 2995, "udp"},
-{"vsixml", {NULL}, 2996, "tcp"},
-{"vsixml", {NULL}, 2996, "udp"},
-{"rebol", {NULL}, 2997, "tcp"},
-{"rebol", {NULL}, 2997, "udp"},
-{"realsecure", {NULL}, 2998, "tcp"},
-{"realsecure", {NULL}, 2998, "udp"},
-{"remoteware-un", {NULL}, 2999, "tcp"},
-{"remoteware-un", {NULL}, 2999, "udp"},
-{"hbci", {NULL}, 3000, "tcp"},
-{"hbci", {NULL}, 3000, "udp"},
-{"remoteware-cl", {NULL}, 3000, "tcp"},
-{"remoteware-cl", {NULL}, 3000, "udp"},
-{"exlm-agent", {NULL}, 3002, "tcp"},
-{"exlm-agent", {NULL}, 3002, "udp"},
-{"remoteware-srv", {NULL}, 3002, "tcp"},
-{"remoteware-srv", {NULL}, 3002, "udp"},
-{"cgms", {NULL}, 3003, "tcp"},
-{"cgms", {NULL}, 3003, "udp"},
-{"csoftragent", {NULL}, 3004, "tcp"},
-{"csoftragent", {NULL}, 3004, "udp"},
-{"geniuslm", {NULL}, 3005, "tcp"},
-{"geniuslm", {NULL}, 3005, "udp"},
-{"ii-admin", {NULL}, 3006, "tcp"},
-{"ii-admin", {NULL}, 3006, "udp"},
-{"lotusmtap", {NULL}, 3007, "tcp"},
-{"lotusmtap", {NULL}, 3007, "udp"},
-{"midnight-tech", {NULL}, 3008, "tcp"},
-{"midnight-tech", {NULL}, 3008, "udp"},
-{"pxc-ntfy", {NULL}, 3009, "tcp"},
-{"pxc-ntfy", {NULL}, 3009, "udp"},
-{"gw", {NULL}, 3010, "tcp"},
-{"ping-pong", {NULL}, 3010, "udp"},
-{"trusted-web", {NULL}, 3011, "tcp"},
-{"trusted-web", {NULL}, 3011, "udp"},
-{"twsdss", {NULL}, 3012, "tcp"},
-{"twsdss", {NULL}, 3012, "udp"},
-{"gilatskysurfer", {NULL}, 3013, "tcp"},
-{"gilatskysurfer", {NULL}, 3013, "udp"},
-{"broker_service", {NULL}, 3014, "tcp"},
-{"broker_service", {NULL}, 3014, "udp"},
-{"nati-dstp", {NULL}, 3015, "tcp"},
-{"nati-dstp", {NULL}, 3015, "udp"},
-{"notify_srvr", {NULL}, 3016, "tcp"},
-{"notify_srvr", {NULL}, 3016, "udp"},
-{"event_listener", {NULL}, 3017, "tcp"},
-{"event_listener", {NULL}, 3017, "udp"},
-{"srvc_registry", {NULL}, 3018, "tcp"},
-{"srvc_registry", {NULL}, 3018, "udp"},
-{"resource_mgr", {NULL}, 3019, "tcp"},
-{"resource_mgr", {NULL}, 3019, "udp"},
-{"cifs", {NULL}, 3020, "tcp"},
-{"cifs", {NULL}, 3020, "udp"},
-{"agriserver", {NULL}, 3021, "tcp"},
-{"agriserver", {NULL}, 3021, "udp"},
-{"csregagent", {NULL}, 3022, "tcp"},
-{"csregagent", {NULL}, 3022, "udp"},
-{"magicnotes", {NULL}, 3023, "tcp"},
-{"magicnotes", {NULL}, 3023, "udp"},
-{"nds_sso", {NULL}, 3024, "tcp"},
-{"nds_sso", {NULL}, 3024, "udp"},
-{"arepa-raft", {NULL}, 3025, "tcp"},
-{"arepa-raft", {NULL}, 3025, "udp"},
-{"agri-gateway", {NULL}, 3026, "tcp"},
-{"agri-gateway", {NULL}, 3026, "udp"},
-{"LiebDevMgmt_C", {NULL}, 3027, "tcp"},
-{"LiebDevMgmt_C", {NULL}, 3027, "udp"},
-{"LiebDevMgmt_DM", {NULL}, 3028, "tcp"},
-{"LiebDevMgmt_DM", {NULL}, 3028, "udp"},
-{"LiebDevMgmt_A", {NULL}, 3029, "tcp"},
-{"LiebDevMgmt_A", {NULL}, 3029, "udp"},
-{"arepa-cas", {NULL}, 3030, "tcp"},
-{"arepa-cas", {NULL}, 3030, "udp"},
-{"eppc", {NULL}, 3031, "tcp"},
-{"eppc", {NULL}, 3031, "udp"},
-{"redwood-chat", {NULL}, 3032, "tcp"},
-{"redwood-chat", {NULL}, 3032, "udp"},
-{"pdb", {NULL}, 3033, "tcp"},
-{"pdb", {NULL}, 3033, "udp"},
-{"osmosis-aeea", {NULL}, 3034, "tcp"},
-{"osmosis-aeea", {NULL}, 3034, "udp"},
-{"fjsv-gssagt", {NULL}, 3035, "tcp"},
-{"fjsv-gssagt", {NULL}, 3035, "udp"},
-{"hagel-dump", {NULL}, 3036, "tcp"},
-{"hagel-dump", {NULL}, 3036, "udp"},
-{"hp-san-mgmt", {NULL}, 3037, "tcp"},
-{"hp-san-mgmt", {NULL}, 3037, "udp"},
-{"santak-ups", {NULL}, 3038, "tcp"},
-{"santak-ups", {NULL}, 3038, "udp"},
-{"cogitate", {NULL}, 3039, "tcp"},
-{"cogitate", {NULL}, 3039, "udp"},
-{"tomato-springs", {NULL}, 3040, "tcp"},
-{"tomato-springs", {NULL}, 3040, "udp"},
-{"di-traceware", {NULL}, 3041, "tcp"},
-{"di-traceware", {NULL}, 3041, "udp"},
-{"journee", {NULL}, 3042, "tcp"},
-{"journee", {NULL}, 3042, "udp"},
-{"brp", {NULL}, 3043, "tcp"},
-{"brp", {NULL}, 3043, "udp"},
-{"epp", {NULL}, 3044, "tcp"},
-{"epp", {NULL}, 3044, "udp"},
-{"responsenet", {NULL}, 3045, "tcp"},
-{"responsenet", {NULL}, 3045, "udp"},
-{"di-ase", {NULL}, 3046, "tcp"},
-{"di-ase", {NULL}, 3046, "udp"},
-{"hlserver", {NULL}, 3047, "tcp"},
-{"hlserver", {NULL}, 3047, "udp"},
-{"pctrader", {NULL}, 3048, "tcp"},
-{"pctrader", {NULL}, 3048, "udp"},
-{"nsws", {NULL}, 3049, "tcp"},
-{"nsws", {NULL}, 3049, "udp"},
-{"gds_db", {NULL}, 3050, "tcp"},
-{"gds_db", {NULL}, 3050, "udp"},
-{"galaxy-server", {NULL}, 3051, "tcp"},
-{"galaxy-server", {NULL}, 3051, "udp"},
-{"apc-3052", {NULL}, 3052, "tcp"},
-{"apc-3052", {NULL}, 3052, "udp"},
-{"dsom-server", {NULL}, 3053, "tcp"},
-{"dsom-server", {NULL}, 3053, "udp"},
-{"amt-cnf-prot", {NULL}, 3054, "tcp"},
-{"amt-cnf-prot", {NULL}, 3054, "udp"},
-{"policyserver", {NULL}, 3055, "tcp"},
-{"policyserver", {NULL}, 3055, "udp"},
-{"cdl-server", {NULL}, 3056, "tcp"},
-{"cdl-server", {NULL}, 3056, "udp"},
-{"goahead-fldup", {NULL}, 3057, "tcp"},
-{"goahead-fldup", {NULL}, 3057, "udp"},
-{"videobeans", {NULL}, 3058, "tcp"},
-{"videobeans", {NULL}, 3058, "udp"},
-{"qsoft", {NULL}, 3059, "tcp"},
-{"qsoft", {NULL}, 3059, "udp"},
-{"interserver", {NULL}, 3060, "tcp"},
-{"interserver", {NULL}, 3060, "udp"},
-{"cautcpd", {NULL}, 3061, "tcp"},
-{"cautcpd", {NULL}, 3061, "udp"},
-{"ncacn-ip-tcp", {NULL}, 3062, "tcp"},
-{"ncacn-ip-tcp", {NULL}, 3062, "udp"},
-{"ncadg-ip-udp", {NULL}, 3063, "tcp"},
-{"ncadg-ip-udp", {NULL}, 3063, "udp"},
-{"rprt", {NULL}, 3064, "tcp"},
-{"rprt", {NULL}, 3064, "udp"},
-{"slinterbase", {NULL}, 3065, "tcp"},
-{"slinterbase", {NULL}, 3065, "udp"},
-{"netattachsdmp", {NULL}, 3066, "tcp"},
-{"netattachsdmp", {NULL}, 3066, "udp"},
-{"fjhpjp", {NULL}, 3067, "tcp"},
-{"fjhpjp", {NULL}, 3067, "udp"},
-{"ls3bcast", {NULL}, 3068, "tcp"},
-{"ls3bcast", {NULL}, 3068, "udp"},
-{"ls3", {NULL}, 3069, "tcp"},
-{"ls3", {NULL}, 3069, "udp"},
-{"mgxswitch", {NULL}, 3070, "tcp"},
-{"mgxswitch", {NULL}, 3070, "udp"},
-{"csd-mgmt-port", {NULL}, 3071, "tcp"},
-{"csd-mgmt-port", {NULL}, 3071, "udp"},
-{"csd-monitor", {NULL}, 3072, "tcp"},
-{"csd-monitor", {NULL}, 3072, "udp"},
-{"vcrp", {NULL}, 3073, "tcp"},
-{"vcrp", {NULL}, 3073, "udp"},
-{"xbox", {NULL}, 3074, "tcp"},
-{"xbox", {NULL}, 3074, "udp"},
-{"orbix-locator", {NULL}, 3075, "tcp"},
-{"orbix-locator", {NULL}, 3075, "udp"},
-{"orbix-config", {NULL}, 3076, "tcp"},
-{"orbix-config", {NULL}, 3076, "udp"},
-{"orbix-loc-ssl", {NULL}, 3077, "tcp"},
-{"orbix-loc-ssl", {NULL}, 3077, "udp"},
-{"orbix-cfg-ssl", {NULL}, 3078, "tcp"},
-{"orbix-cfg-ssl", {NULL}, 3078, "udp"},
-{"lv-frontpanel", {NULL}, 3079, "tcp"},
-{"lv-frontpanel", {NULL}, 3079, "udp"},
-{"stm_pproc", {NULL}, 3080, "tcp"},
-{"stm_pproc", {NULL}, 3080, "udp"},
-{"tl1-lv", {NULL}, 3081, "tcp"},
-{"tl1-lv", {NULL}, 3081, "udp"},
-{"tl1-raw", {NULL}, 3082, "tcp"},
-{"tl1-raw", {NULL}, 3082, "udp"},
-{"tl1-telnet", {NULL}, 3083, "tcp"},
-{"tl1-telnet", {NULL}, 3083, "udp"},
-{"itm-mccs", {NULL}, 3084, "tcp"},
-{"itm-mccs", {NULL}, 3084, "udp"},
-{"pcihreq", {NULL}, 3085, "tcp"},
-{"pcihreq", {NULL}, 3085, "udp"},
-{"jdl-dbkitchen", {NULL}, 3086, "tcp"},
-{"jdl-dbkitchen", {NULL}, 3086, "udp"},
-{"asoki-sma", {NULL}, 3087, "tcp"},
-{"asoki-sma", {NULL}, 3087, "udp"},
-{"xdtp", {NULL}, 3088, "tcp"},
-{"xdtp", {NULL}, 3088, "udp"},
-{"ptk-alink", {NULL}, 3089, "tcp"},
-{"ptk-alink", {NULL}, 3089, "udp"},
-{"stss", {NULL}, 3090, "tcp"},
-{"stss", {NULL}, 3090, "udp"},
-{"1ci-smcs", {NULL}, 3091, "tcp"},
-{"1ci-smcs", {NULL}, 3091, "udp"},
-{"rapidmq-center", {NULL}, 3093, "tcp"},
-{"rapidmq-center", {NULL}, 3093, "udp"},
-{"rapidmq-reg", {NULL}, 3094, "tcp"},
-{"rapidmq-reg", {NULL}, 3094, "udp"},
-{"panasas", {NULL}, 3095, "tcp"},
-{"panasas", {NULL}, 3095, "udp"},
-{"ndl-aps", {NULL}, 3096, "tcp"},
-{"ndl-aps", {NULL}, 3096, "udp"},
-{"itu-bicc-stc", {NULL}, 3097, "sctp"},
-{"umm-port", {NULL}, 3098, "tcp"},
-{"umm-port", {NULL}, 3098, "udp"},
-{"chmd", {NULL}, 3099, "tcp"},
-{"chmd", {NULL}, 3099, "udp"},
-{"opcon-xps", {NULL}, 3100, "tcp"},
-{"opcon-xps", {NULL}, 3100, "udp"},
-{"hp-pxpib", {NULL}, 3101, "tcp"},
-{"hp-pxpib", {NULL}, 3101, "udp"},
-{"slslavemon", {NULL}, 3102, "tcp"},
-{"slslavemon", {NULL}, 3102, "udp"},
-{"autocuesmi", {NULL}, 3103, "tcp"},
-{"autocuesmi", {NULL}, 3103, "udp"},
-{"autocuelog", {NULL}, 3104, "tcp"},
-{"autocuetime", {NULL}, 3104, "udp"},
-{"cardbox", {NULL}, 3105, "tcp"},
-{"cardbox", {NULL}, 3105, "udp"},
-{"cardbox-http", {NULL}, 3106, "tcp"},
-{"cardbox-http", {NULL}, 3106, "udp"},
-{"business", {NULL}, 3107, "tcp"},
-{"business", {NULL}, 3107, "udp"},
-{"geolocate", {NULL}, 3108, "tcp"},
-{"geolocate", {NULL}, 3108, "udp"},
-{"personnel", {NULL}, 3109, "tcp"},
-{"personnel", {NULL}, 3109, "udp"},
-{"sim-control", {NULL}, 3110, "tcp"},
-{"sim-control", {NULL}, 3110, "udp"},
-{"wsynch", {NULL}, 3111, "tcp"},
-{"wsynch", {NULL}, 3111, "udp"},
-{"ksysguard", {NULL}, 3112, "tcp"},
-{"ksysguard", {NULL}, 3112, "udp"},
-{"cs-auth-svr", {NULL}, 3113, "tcp"},
-{"cs-auth-svr", {NULL}, 3113, "udp"},
-{"ccmad", {NULL}, 3114, "tcp"},
-{"ccmad", {NULL}, 3114, "udp"},
-{"mctet-master", {NULL}, 3115, "tcp"},
-{"mctet-master", {NULL}, 3115, "udp"},
-{"mctet-gateway", {NULL}, 3116, "tcp"},
-{"mctet-gateway", {NULL}, 3116, "udp"},
-{"mctet-jserv", {NULL}, 3117, "tcp"},
-{"mctet-jserv", {NULL}, 3117, "udp"},
-{"pkagent", {NULL}, 3118, "tcp"},
-{"pkagent", {NULL}, 3118, "udp"},
-{"d2000kernel", {NULL}, 3119, "tcp"},
-{"d2000kernel", {NULL}, 3119, "udp"},
-{"d2000webserver", {NULL}, 3120, "tcp"},
-{"d2000webserver", {NULL}, 3120, "udp"},
-{"vtr-emulator", {NULL}, 3122, "tcp"},
-{"vtr-emulator", {NULL}, 3122, "udp"},
-{"edix", {NULL}, 3123, "tcp"},
-{"edix", {NULL}, 3123, "udp"},
-{"beacon-port", {NULL}, 3124, "tcp"},
-{"beacon-port", {NULL}, 3124, "udp"},
-{"a13-an", {NULL}, 3125, "tcp"},
-{"a13-an", {NULL}, 3125, "udp"},
-{"ctx-bridge", {NULL}, 3127, "tcp"},
-{"ctx-bridge", {NULL}, 3127, "udp"},
-{"ndl-aas", {NULL}, 3128, "tcp"},
-{"ndl-aas", {NULL}, 3128, "udp"},
-{"netport-id", {NULL}, 3129, "tcp"},
-{"netport-id", {NULL}, 3129, "udp"},
-{"icpv2", {NULL}, 3130, "tcp"},
-{"icpv2", {NULL}, 3130, "udp"},
-{"netbookmark", {NULL}, 3131, "tcp"},
-{"netbookmark", {NULL}, 3131, "udp"},
-{"ms-rule-engine", {NULL}, 3132, "tcp"},
-{"ms-rule-engine", {NULL}, 3132, "udp"},
-{"prism-deploy", {NULL}, 3133, "tcp"},
-{"prism-deploy", {NULL}, 3133, "udp"},
-{"ecp", {NULL}, 3134, "tcp"},
-{"ecp", {NULL}, 3134, "udp"},
-{"peerbook-port", {NULL}, 3135, "tcp"},
-{"peerbook-port", {NULL}, 3135, "udp"},
-{"grubd", {NULL}, 3136, "tcp"},
-{"grubd", {NULL}, 3136, "udp"},
-{"rtnt-1", {NULL}, 3137, "tcp"},
-{"rtnt-1", {NULL}, 3137, "udp"},
-{"rtnt-2", {NULL}, 3138, "tcp"},
-{"rtnt-2", {NULL}, 3138, "udp"},
-{"incognitorv", {NULL}, 3139, "tcp"},
-{"incognitorv", {NULL}, 3139, "udp"},
-{"ariliamulti", {NULL}, 3140, "tcp"},
-{"ariliamulti", {NULL}, 3140, "udp"},
-{"vmodem", {NULL}, 3141, "tcp"},
-{"vmodem", {NULL}, 3141, "udp"},
-{"rdc-wh-eos", {NULL}, 3142, "tcp"},
-{"rdc-wh-eos", {NULL}, 3142, "udp"},
-{"seaview", {NULL}, 3143, "tcp"},
-{"seaview", {NULL}, 3143, "udp"},
-{"tarantella", {NULL}, 3144, "tcp"},
-{"tarantella", {NULL}, 3144, "udp"},
-{"csi-lfap", {NULL}, 3145, "tcp"},
-{"csi-lfap", {NULL}, 3145, "udp"},
-{"bears-02", {NULL}, 3146, "tcp"},
-{"bears-02", {NULL}, 3146, "udp"},
-{"rfio", {NULL}, 3147, "tcp"},
-{"rfio", {NULL}, 3147, "udp"},
-{"nm-game-admin", {NULL}, 3148, "tcp"},
-{"nm-game-admin", {NULL}, 3148, "udp"},
-{"nm-game-server", {NULL}, 3149, "tcp"},
-{"nm-game-server", {NULL}, 3149, "udp"},
-{"nm-asses-admin", {NULL}, 3150, "tcp"},
-{"nm-asses-admin", {NULL}, 3150, "udp"},
-{"nm-assessor", {NULL}, 3151, "tcp"},
-{"nm-assessor", {NULL}, 3151, "udp"},
-{"feitianrockey", {NULL}, 3152, "tcp"},
-{"feitianrockey", {NULL}, 3152, "udp"},
-{"s8-client-port", {NULL}, 3153, "tcp"},
-{"s8-client-port", {NULL}, 3153, "udp"},
-{"ccmrmi", {NULL}, 3154, "tcp"},
-{"ccmrmi", {NULL}, 3154, "udp"},
-{"jpegmpeg", {NULL}, 3155, "tcp"},
-{"jpegmpeg", {NULL}, 3155, "udp"},
-{"indura", {NULL}, 3156, "tcp"},
-{"indura", {NULL}, 3156, "udp"},
-{"e3consultants", {NULL}, 3157, "tcp"},
-{"e3consultants", {NULL}, 3157, "udp"},
-{"stvp", {NULL}, 3158, "tcp"},
-{"stvp", {NULL}, 3158, "udp"},
-{"navegaweb-port", {NULL}, 3159, "tcp"},
-{"navegaweb-port", {NULL}, 3159, "udp"},
-{"tip-app-server", {NULL}, 3160, "tcp"},
-{"tip-app-server", {NULL}, 3160, "udp"},
-{"doc1lm", {NULL}, 3161, "tcp"},
-{"doc1lm", {NULL}, 3161, "udp"},
-{"sflm", {NULL}, 3162, "tcp"},
-{"sflm", {NULL}, 3162, "udp"},
-{"res-sap", {NULL}, 3163, "tcp"},
-{"res-sap", {NULL}, 3163, "udp"},
-{"imprs", {NULL}, 3164, "tcp"},
-{"imprs", {NULL}, 3164, "udp"},
-{"newgenpay", {NULL}, 3165, "tcp"},
-{"newgenpay", {NULL}, 3165, "udp"},
-{"sossecollector", {NULL}, 3166, "tcp"},
-{"sossecollector", {NULL}, 3166, "udp"},
-{"nowcontact", {NULL}, 3167, "tcp"},
-{"nowcontact", {NULL}, 3167, "udp"},
-{"poweronnud", {NULL}, 3168, "tcp"},
-{"poweronnud", {NULL}, 3168, "udp"},
-{"serverview-as", {NULL}, 3169, "tcp"},
-{"serverview-as", {NULL}, 3169, "udp"},
-{"serverview-asn", {NULL}, 3170, "tcp"},
-{"serverview-asn", {NULL}, 3170, "udp"},
-{"serverview-gf", {NULL}, 3171, "tcp"},
-{"serverview-gf", {NULL}, 3171, "udp"},
-{"serverview-rm", {NULL}, 3172, "tcp"},
-{"serverview-rm", {NULL}, 3172, "udp"},
-{"serverview-icc", {NULL}, 3173, "tcp"},
-{"serverview-icc", {NULL}, 3173, "udp"},
-{"armi-server", {NULL}, 3174, "tcp"},
-{"armi-server", {NULL}, 3174, "udp"},
-{"t1-e1-over-ip", {NULL}, 3175, "tcp"},
-{"t1-e1-over-ip", {NULL}, 3175, "udp"},
-{"ars-master", {NULL}, 3176, "tcp"},
-{"ars-master", {NULL}, 3176, "udp"},
-{"phonex-port", {NULL}, 3177, "tcp"},
-{"phonex-port", {NULL}, 3177, "udp"},
-{"radclientport", {NULL}, 3178, "tcp"},
-{"radclientport", {NULL}, 3178, "udp"},
-{"h2gf-w-2m", {NULL}, 3179, "tcp"},
-{"h2gf-w-2m", {NULL}, 3179, "udp"},
-{"mc-brk-srv", {NULL}, 3180, "tcp"},
-{"mc-brk-srv", {NULL}, 3180, "udp"},
-{"bmcpatrolagent", {NULL}, 3181, "tcp"},
-{"bmcpatrolagent", {NULL}, 3181, "udp"},
-{"bmcpatrolrnvu", {NULL}, 3182, "tcp"},
-{"bmcpatrolrnvu", {NULL}, 3182, "udp"},
-{"cops-tls", {NULL}, 3183, "tcp"},
-{"cops-tls", {NULL}, 3183, "udp"},
-{"apogeex-port", {NULL}, 3184, "tcp"},
-{"apogeex-port", {NULL}, 3184, "udp"},
-{"smpppd", {NULL}, 3185, "tcp"},
-{"smpppd", {NULL}, 3185, "udp"},
-{"iiw-port", {NULL}, 3186, "tcp"},
-{"iiw-port", {NULL}, 3186, "udp"},
-{"odi-port", {NULL}, 3187, "tcp"},
-{"odi-port", {NULL}, 3187, "udp"},
-{"brcm-comm-port", {NULL}, 3188, "tcp"},
-{"brcm-comm-port", {NULL}, 3188, "udp"},
-{"pcle-infex", {NULL}, 3189, "tcp"},
-{"pcle-infex", {NULL}, 3189, "udp"},
-{"csvr-proxy", {NULL}, 3190, "tcp"},
-{"csvr-proxy", {NULL}, 3190, "udp"},
-{"csvr-sslproxy", {NULL}, 3191, "tcp"},
-{"csvr-sslproxy", {NULL}, 3191, "udp"},
-{"firemonrcc", {NULL}, 3192, "tcp"},
-{"firemonrcc", {NULL}, 3192, "udp"},
-{"spandataport", {NULL}, 3193, "tcp"},
-{"spandataport", {NULL}, 3193, "udp"},
-{"magbind", {NULL}, 3194, "tcp"},
-{"magbind", {NULL}, 3194, "udp"},
-{"ncu-1", {NULL}, 3195, "tcp"},
-{"ncu-1", {NULL}, 3195, "udp"},
-{"ncu-2", {NULL}, 3196, "tcp"},
-{"ncu-2", {NULL}, 3196, "udp"},
-{"embrace-dp-s", {NULL}, 3197, "tcp"},
-{"embrace-dp-s", {NULL}, 3197, "udp"},
-{"embrace-dp-c", {NULL}, 3198, "tcp"},
-{"embrace-dp-c", {NULL}, 3198, "udp"},
-{"dmod-workspace", {NULL}, 3199, "tcp"},
-{"dmod-workspace", {NULL}, 3199, "udp"},
-{"tick-port", {NULL}, 3200, "tcp"},
-{"tick-port", {NULL}, 3200, "udp"},
-{"cpq-tasksmart", {NULL}, 3201, "tcp"},
-{"cpq-tasksmart", {NULL}, 3201, "udp"},
-{"intraintra", {NULL}, 3202, "tcp"},
-{"intraintra", {NULL}, 3202, "udp"},
-{"netwatcher-mon", {NULL}, 3203, "tcp"},
-{"netwatcher-mon", {NULL}, 3203, "udp"},
-{"netwatcher-db", {NULL}, 3204, "tcp"},
-{"netwatcher-db", {NULL}, 3204, "udp"},
-{"isns", {NULL}, 3205, "tcp"},
-{"isns", {NULL}, 3205, "udp"},
-{"ironmail", {NULL}, 3206, "tcp"},
-{"ironmail", {NULL}, 3206, "udp"},
-{"vx-auth-port", {NULL}, 3207, "tcp"},
-{"vx-auth-port", {NULL}, 3207, "udp"},
-{"pfu-prcallback", {NULL}, 3208, "tcp"},
-{"pfu-prcallback", {NULL}, 3208, "udp"},
-{"netwkpathengine", {NULL}, 3209, "tcp"},
-{"netwkpathengine", {NULL}, 3209, "udp"},
-{"flamenco-proxy", {NULL}, 3210, "tcp"},
-{"flamenco-proxy", {NULL}, 3210, "udp"},
-{"avsecuremgmt", {NULL}, 3211, "tcp"},
-{"avsecuremgmt", {NULL}, 3211, "udp"},
-{"surveyinst", {NULL}, 3212, "tcp"},
-{"surveyinst", {NULL}, 3212, "udp"},
-{"neon24x7", {NULL}, 3213, "tcp"},
-{"neon24x7", {NULL}, 3213, "udp"},
-{"jmq-daemon-1", {NULL}, 3214, "tcp"},
-{"jmq-daemon-1", {NULL}, 3214, "udp"},
-{"jmq-daemon-2", {NULL}, 3215, "tcp"},
-{"jmq-daemon-2", {NULL}, 3215, "udp"},
-{"ferrari-foam", {NULL}, 3216, "tcp"},
-{"ferrari-foam", {NULL}, 3216, "udp"},
-{"unite", {NULL}, 3217, "tcp"},
-{"unite", {NULL}, 3217, "udp"},
-{"smartpackets", {NULL}, 3218, "tcp"},
-{"smartpackets", {NULL}, 3218, "udp"},
-{"wms-messenger", {NULL}, 3219, "tcp"},
-{"wms-messenger", {NULL}, 3219, "udp"},
-{"xnm-ssl", {NULL}, 3220, "tcp"},
-{"xnm-ssl", {NULL}, 3220, "udp"},
-{"xnm-clear-text", {NULL}, 3221, "tcp"},
-{"xnm-clear-text", {NULL}, 3221, "udp"},
-{"glbp", {NULL}, 3222, "tcp"},
-{"glbp", {NULL}, 3222, "udp"},
-{"digivote", {NULL}, 3223, "tcp"},
-{"digivote", {NULL}, 3223, "udp"},
-{"aes-discovery", {NULL}, 3224, "tcp"},
-{"aes-discovery", {NULL}, 3224, "udp"},
-{"fcip-port", {NULL}, 3225, "tcp"},
-{"fcip-port", {NULL}, 3225, "udp"},
-{"isi-irp", {NULL}, 3226, "tcp"},
-{"isi-irp", {NULL}, 3226, "udp"},
-{"dwnmshttp", {NULL}, 3227, "tcp"},
-{"dwnmshttp", {NULL}, 3227, "udp"},
-{"dwmsgserver", {NULL}, 3228, "tcp"},
-{"dwmsgserver", {NULL}, 3228, "udp"},
-{"global-cd-port", {NULL}, 3229, "tcp"},
-{"global-cd-port", {NULL}, 3229, "udp"},
-{"sftdst-port", {NULL}, 3230, "tcp"},
-{"sftdst-port", {NULL}, 3230, "udp"},
-{"vidigo", {NULL}, 3231, "tcp"},
-{"vidigo", {NULL}, 3231, "udp"},
-{"mdtp", {NULL}, 3232, "tcp"},
-{"mdtp", {NULL}, 3232, "udp"},
-{"whisker", {NULL}, 3233, "tcp"},
-{"whisker", {NULL}, 3233, "udp"},
-{"alchemy", {NULL}, 3234, "tcp"},
-{"alchemy", {NULL}, 3234, "udp"},
-{"mdap-port", {NULL}, 3235, "tcp"},
-{"mdap-port", {NULL}, 3235, "udp"},
-{"apparenet-ts", {NULL}, 3236, "tcp"},
-{"apparenet-ts", {NULL}, 3236, "udp"},
-{"apparenet-tps", {NULL}, 3237, "tcp"},
-{"apparenet-tps", {NULL}, 3237, "udp"},
-{"apparenet-as", {NULL}, 3238, "tcp"},
-{"apparenet-as", {NULL}, 3238, "udp"},
-{"apparenet-ui", {NULL}, 3239, "tcp"},
-{"apparenet-ui", {NULL}, 3239, "udp"},
-{"triomotion", {NULL}, 3240, "tcp"},
-{"triomotion", {NULL}, 3240, "udp"},
-{"sysorb", {NULL}, 3241, "tcp"},
-{"sysorb", {NULL}, 3241, "udp"},
-{"sdp-id-port", {NULL}, 3242, "tcp"},
-{"sdp-id-port", {NULL}, 3242, "udp"},
-{"timelot", {NULL}, 3243, "tcp"},
-{"timelot", {NULL}, 3243, "udp"},
-{"onesaf", {NULL}, 3244, "tcp"},
-{"onesaf", {NULL}, 3244, "udp"},
-{"vieo-fe", {NULL}, 3245, "tcp"},
-{"vieo-fe", {NULL}, 3245, "udp"},
-{"dvt-system", {NULL}, 3246, "tcp"},
-{"dvt-system", {NULL}, 3246, "udp"},
-{"dvt-data", {NULL}, 3247, "tcp"},
-{"dvt-data", {NULL}, 3247, "udp"},
-{"procos-lm", {NULL}, 3248, "tcp"},
-{"procos-lm", {NULL}, 3248, "udp"},
-{"ssp", {NULL}, 3249, "tcp"},
-{"ssp", {NULL}, 3249, "udp"},
-{"hicp", {NULL}, 3250, "tcp"},
-{"hicp", {NULL}, 3250, "udp"},
-{"sysscanner", {NULL}, 3251, "tcp"},
-{"sysscanner", {NULL}, 3251, "udp"},
-{"dhe", {NULL}, 3252, "tcp"},
-{"dhe", {NULL}, 3252, "udp"},
-{"pda-data", {NULL}, 3253, "tcp"},
-{"pda-data", {NULL}, 3253, "udp"},
-{"pda-sys", {NULL}, 3254, "tcp"},
-{"pda-sys", {NULL}, 3254, "udp"},
-{"semaphore", {NULL}, 3255, "tcp"},
-{"semaphore", {NULL}, 3255, "udp"},
-{"cpqrpm-agent", {NULL}, 3256, "tcp"},
-{"cpqrpm-agent", {NULL}, 3256, "udp"},
-{"cpqrpm-server", {NULL}, 3257, "tcp"},
-{"cpqrpm-server", {NULL}, 3257, "udp"},
-{"ivecon-port", {NULL}, 3258, "tcp"},
-{"ivecon-port", {NULL}, 3258, "udp"},
-{"epncdp2", {NULL}, 3259, "tcp"},
-{"epncdp2", {NULL}, 3259, "udp"},
-{"iscsi-target", {NULL}, 3260, "tcp"},
-{"iscsi-target", {NULL}, 3260, "udp"},
-{"winshadow", {NULL}, 3261, "tcp"},
-{"winshadow", {NULL}, 3261, "udp"},
-{"necp", {NULL}, 3262, "tcp"},
-{"necp", {NULL}, 3262, "udp"},
-{"ecolor-imager", {NULL}, 3263, "tcp"},
-{"ecolor-imager", {NULL}, 3263, "udp"},
-{"ccmail", {NULL}, 3264, "tcp"},
-{"ccmail", {NULL}, 3264, "udp"},
-{"altav-tunnel", {NULL}, 3265, "tcp"},
-{"altav-tunnel", {NULL}, 3265, "udp"},
-{"ns-cfg-server", {NULL}, 3266, "tcp"},
-{"ns-cfg-server", {NULL}, 3266, "udp"},
-{"ibm-dial-out", {NULL}, 3267, "tcp"},
-{"ibm-dial-out", {NULL}, 3267, "udp"},
-{"msft-gc", {NULL}, 3268, "tcp"},
-{"msft-gc", {NULL}, 3268, "udp"},
-{"msft-gc-ssl", {NULL}, 3269, "tcp"},
-{"msft-gc-ssl", {NULL}, 3269, "udp"},
-{"verismart", {NULL}, 3270, "tcp"},
-{"verismart", {NULL}, 3270, "udp"},
-{"csoft-prev", {NULL}, 3271, "tcp"},
-{"csoft-prev", {NULL}, 3271, "udp"},
-{"user-manager", {NULL}, 3272, "tcp"},
-{"user-manager", {NULL}, 3272, "udp"},
-{"sxmp", {NULL}, 3273, "tcp"},
-{"sxmp", {NULL}, 3273, "udp"},
-{"ordinox-server", {NULL}, 3274, "tcp"},
-{"ordinox-server", {NULL}, 3274, "udp"},
-{"samd", {NULL}, 3275, "tcp"},
-{"samd", {NULL}, 3275, "udp"},
-{"maxim-asics", {NULL}, 3276, "tcp"},
-{"maxim-asics", {NULL}, 3276, "udp"},
-{"awg-proxy", {NULL}, 3277, "tcp"},
-{"awg-proxy", {NULL}, 3277, "udp"},
-{"lkcmserver", {NULL}, 3278, "tcp"},
-{"lkcmserver", {NULL}, 3278, "udp"},
-{"admind", {NULL}, 3279, "tcp"},
-{"admind", {NULL}, 3279, "udp"},
-{"vs-server", {NULL}, 3280, "tcp"},
-{"vs-server", {NULL}, 3280, "udp"},
-{"sysopt", {NULL}, 3281, "tcp"},
-{"sysopt", {NULL}, 3281, "udp"},
-{"datusorb", {NULL}, 3282, "tcp"},
-{"datusorb", {NULL}, 3282, "udp"},
-{"net-assistant", {NULL}, 3283, "tcp"},
-{"net-assistant", {NULL}, 3283, "udp"},
-{"4talk", {NULL}, 3284, "tcp"},
-{"4talk", {NULL}, 3284, "udp"},
-{"plato", {NULL}, 3285, "tcp"},
-{"plato", {NULL}, 3285, "udp"},
-{"e-net", {NULL}, 3286, "tcp"},
-{"e-net", {NULL}, 3286, "udp"},
-{"directvdata", {NULL}, 3287, "tcp"},
-{"directvdata", {NULL}, 3287, "udp"},
-{"cops", {NULL}, 3288, "tcp"},
-{"cops", {NULL}, 3288, "udp"},
-{"enpc", {NULL}, 3289, "tcp"},
-{"enpc", {NULL}, 3289, "udp"},
-{"caps-lm", {NULL}, 3290, "tcp"},
-{"caps-lm", {NULL}, 3290, "udp"},
-{"sah-lm", {NULL}, 3291, "tcp"},
-{"sah-lm", {NULL}, 3291, "udp"},
-{"cart-o-rama", {NULL}, 3292, "tcp"},
-{"cart-o-rama", {NULL}, 3292, "udp"},
-{"fg-fps", {NULL}, 3293, "tcp"},
-{"fg-fps", {NULL}, 3293, "udp"},
-{"fg-gip", {NULL}, 3294, "tcp"},
-{"fg-gip", {NULL}, 3294, "udp"},
-{"dyniplookup", {NULL}, 3295, "tcp"},
-{"dyniplookup", {NULL}, 3295, "udp"},
-{"rib-slm", {NULL}, 3296, "tcp"},
-{"rib-slm", {NULL}, 3296, "udp"},
-{"cytel-lm", {NULL}, 3297, "tcp"},
-{"cytel-lm", {NULL}, 3297, "udp"},
-{"deskview", {NULL}, 3298, "tcp"},
-{"deskview", {NULL}, 3298, "udp"},
-{"pdrncs", {NULL}, 3299, "tcp"},
-{"pdrncs", {NULL}, 3299, "udp"},
-{"mcs-fastmail", {NULL}, 3302, "tcp"},
-{"mcs-fastmail", {NULL}, 3302, "udp"},
-{"opsession-clnt", {NULL}, 3303, "tcp"},
-{"opsession-clnt", {NULL}, 3303, "udp"},
-{"opsession-srvr", {NULL}, 3304, "tcp"},
-{"opsession-srvr", {NULL}, 3304, "udp"},
-{"odette-ftp", {NULL}, 3305, "tcp"},
-{"odette-ftp", {NULL}, 3305, "udp"},
-{"mysql", {NULL}, 3306, "tcp"},
-{"mysql", {NULL}, 3306, "udp"},
-{"opsession-prxy", {NULL}, 3307, "tcp"},
-{"opsession-prxy", {NULL}, 3307, "udp"},
-{"tns-server", {NULL}, 3308, "tcp"},
-{"tns-server", {NULL}, 3308, "udp"},
-{"tns-adv", {NULL}, 3309, "tcp"},
-{"tns-adv", {NULL}, 3309, "udp"},
-{"dyna-access", {NULL}, 3310, "tcp"},
-{"dyna-access", {NULL}, 3310, "udp"},
-{"mcns-tel-ret", {NULL}, 3311, "tcp"},
-{"mcns-tel-ret", {NULL}, 3311, "udp"},
-{"appman-server", {NULL}, 3312, "tcp"},
-{"appman-server", {NULL}, 3312, "udp"},
-{"uorb", {NULL}, 3313, "tcp"},
-{"uorb", {NULL}, 3313, "udp"},
-{"uohost", {NULL}, 3314, "tcp"},
-{"uohost", {NULL}, 3314, "udp"},
-{"cdid", {NULL}, 3315, "tcp"},
-{"cdid", {NULL}, 3315, "udp"},
-{"aicc-cmi", {NULL}, 3316, "tcp"},
-{"aicc-cmi", {NULL}, 3316, "udp"},
-{"vsaiport", {NULL}, 3317, "tcp"},
-{"vsaiport", {NULL}, 3317, "udp"},
-{"ssrip", {NULL}, 3318, "tcp"},
-{"ssrip", {NULL}, 3318, "udp"},
-{"sdt-lmd", {NULL}, 3319, "tcp"},
-{"sdt-lmd", {NULL}, 3319, "udp"},
-{"officelink2000", {NULL}, 3320, "tcp"},
-{"officelink2000", {NULL}, 3320, "udp"},
-{"vnsstr", {NULL}, 3321, "tcp"},
-{"vnsstr", {NULL}, 3321, "udp"},
-{"sftu", {NULL}, 3326, "tcp"},
-{"sftu", {NULL}, 3326, "udp"},
-{"bbars", {NULL}, 3327, "tcp"},
-{"bbars", {NULL}, 3327, "udp"},
-{"egptlm", {NULL}, 3328, "tcp"},
-{"egptlm", {NULL}, 3328, "udp"},
-{"hp-device-disc", {NULL}, 3329, "tcp"},
-{"hp-device-disc", {NULL}, 3329, "udp"},
-{"mcs-calypsoicf", {NULL}, 3330, "tcp"},
-{"mcs-calypsoicf", {NULL}, 3330, "udp"},
-{"mcs-messaging", {NULL}, 3331, "tcp"},
-{"mcs-messaging", {NULL}, 3331, "udp"},
-{"mcs-mailsvr", {NULL}, 3332, "tcp"},
-{"mcs-mailsvr", {NULL}, 3332, "udp"},
-{"dec-notes", {NULL}, 3333, "tcp"},
-{"dec-notes", {NULL}, 3333, "udp"},
-{"directv-web", {NULL}, 3334, "tcp"},
-{"directv-web", {NULL}, 3334, "udp"},
-{"directv-soft", {NULL}, 3335, "tcp"},
-{"directv-soft", {NULL}, 3335, "udp"},
-{"directv-tick", {NULL}, 3336, "tcp"},
-{"directv-tick", {NULL}, 3336, "udp"},
-{"directv-catlg", {NULL}, 3337, "tcp"},
-{"directv-catlg", {NULL}, 3337, "udp"},
-{"anet-b", {NULL}, 3338, "tcp"},
-{"anet-b", {NULL}, 3338, "udp"},
-{"anet-l", {NULL}, 3339, "tcp"},
-{"anet-l", {NULL}, 3339, "udp"},
-{"anet-m", {NULL}, 3340, "tcp"},
-{"anet-m", {NULL}, 3340, "udp"},
-{"anet-h", {NULL}, 3341, "tcp"},
-{"anet-h", {NULL}, 3341, "udp"},
-{"webtie", {NULL}, 3342, "tcp"},
-{"webtie", {NULL}, 3342, "udp"},
-{"ms-cluster-net", {NULL}, 3343, "tcp"},
-{"ms-cluster-net", {NULL}, 3343, "udp"},
-{"bnt-manager", {NULL}, 3344, "tcp"},
-{"bnt-manager", {NULL}, 3344, "udp"},
-{"influence", {NULL}, 3345, "tcp"},
-{"influence", {NULL}, 3345, "udp"},
-{"trnsprntproxy", {NULL}, 3346, "tcp"},
-{"trnsprntproxy", {NULL}, 3346, "udp"},
-{"phoenix-rpc", {NULL}, 3347, "tcp"},
-{"phoenix-rpc", {NULL}, 3347, "udp"},
-{"pangolin-laser", {NULL}, 3348, "tcp"},
-{"pangolin-laser", {NULL}, 3348, "udp"},
-{"chevinservices", {NULL}, 3349, "tcp"},
-{"chevinservices", {NULL}, 3349, "udp"},
-{"findviatv", {NULL}, 3350, "tcp"},
-{"findviatv", {NULL}, 3350, "udp"},
-{"btrieve", {NULL}, 3351, "tcp"},
-{"btrieve", {NULL}, 3351, "udp"},
-{"ssql", {NULL}, 3352, "tcp"},
-{"ssql", {NULL}, 3352, "udp"},
-{"fatpipe", {NULL}, 3353, "tcp"},
-{"fatpipe", {NULL}, 3353, "udp"},
-{"suitjd", {NULL}, 3354, "tcp"},
-{"suitjd", {NULL}, 3354, "udp"},
-{"ordinox-dbase", {NULL}, 3355, "tcp"},
-{"ordinox-dbase", {NULL}, 3355, "udp"},
-{"upnotifyps", {NULL}, 3356, "tcp"},
-{"upnotifyps", {NULL}, 3356, "udp"},
-{"adtech-test", {NULL}, 3357, "tcp"},
-{"adtech-test", {NULL}, 3357, "udp"},
-{"mpsysrmsvr", {NULL}, 3358, "tcp"},
-{"mpsysrmsvr", {NULL}, 3358, "udp"},
-{"wg-netforce", {NULL}, 3359, "tcp"},
-{"wg-netforce", {NULL}, 3359, "udp"},
-{"kv-server", {NULL}, 3360, "tcp"},
-{"kv-server", {NULL}, 3360, "udp"},
-{"kv-agent", {NULL}, 3361, "tcp"},
-{"kv-agent", {NULL}, 3361, "udp"},
-{"dj-ilm", {NULL}, 3362, "tcp"},
-{"dj-ilm", {NULL}, 3362, "udp"},
-{"nati-vi-server", {NULL}, 3363, "tcp"},
-{"nati-vi-server", {NULL}, 3363, "udp"},
-{"creativeserver", {NULL}, 3364, "tcp"},
-{"creativeserver", {NULL}, 3364, "udp"},
-{"contentserver", {NULL}, 3365, "tcp"},
-{"contentserver", {NULL}, 3365, "udp"},
-{"creativepartnr", {NULL}, 3366, "tcp"},
-{"creativepartnr", {NULL}, 3366, "udp"},
-{"tip2", {NULL}, 3372, "tcp"},
-{"tip2", {NULL}, 3372, "udp"},
-{"lavenir-lm", {NULL}, 3373, "tcp"},
-{"lavenir-lm", {NULL}, 3373, "udp"},
-{"cluster-disc", {NULL}, 3374, "tcp"},
-{"cluster-disc", {NULL}, 3374, "udp"},
-{"vsnm-agent", {NULL}, 3375, "tcp"},
-{"vsnm-agent", {NULL}, 3375, "udp"},
-{"cdbroker", {NULL}, 3376, "tcp"},
-{"cdbroker", {NULL}, 3376, "udp"},
-{"cogsys-lm", {NULL}, 3377, "tcp"},
-{"cogsys-lm", {NULL}, 3377, "udp"},
-{"wsicopy", {NULL}, 3378, "tcp"},
-{"wsicopy", {NULL}, 3378, "udp"},
-{"socorfs", {NULL}, 3379, "tcp"},
-{"socorfs", {NULL}, 3379, "udp"},
-{"sns-channels", {NULL}, 3380, "tcp"},
-{"sns-channels", {NULL}, 3380, "udp"},
-{"geneous", {NULL}, 3381, "tcp"},
-{"geneous", {NULL}, 3381, "udp"},
-{"fujitsu-neat", {NULL}, 3382, "tcp"},
-{"fujitsu-neat", {NULL}, 3382, "udp"},
-{"esp-lm", {NULL}, 3383, "tcp"},
-{"esp-lm", {NULL}, 3383, "udp"},
-{"hp-clic", {NULL}, 3384, "tcp"},
-{"hp-clic", {NULL}, 3384, "udp"},
-{"qnxnetman", {NULL}, 3385, "tcp"},
-{"qnxnetman", {NULL}, 3385, "udp"},
-{"gprs-data", {NULL}, 3386, "tcp"},
-{"gprs-sig", {NULL}, 3386, "udp"},
-{"backroomnet", {NULL}, 3387, "tcp"},
-{"backroomnet", {NULL}, 3387, "udp"},
-{"cbserver", {NULL}, 3388, "tcp"},
-{"cbserver", {NULL}, 3388, "udp"},
-{"ms-wbt-server", {NULL}, 3389, "tcp"},
-{"ms-wbt-server", {NULL}, 3389, "udp"},
-{"dsc", {NULL}, 3390, "tcp"},
-{"dsc", {NULL}, 3390, "udp"},
-{"savant", {NULL}, 3391, "tcp"},
-{"savant", {NULL}, 3391, "udp"},
-{"efi-lm", {NULL}, 3392, "tcp"},
-{"efi-lm", {NULL}, 3392, "udp"},
-{"d2k-tapestry1", {NULL}, 3393, "tcp"},
-{"d2k-tapestry1", {NULL}, 3393, "udp"},
-{"d2k-tapestry2", {NULL}, 3394, "tcp"},
-{"d2k-tapestry2", {NULL}, 3394, "udp"},
-{"dyna-lm", {NULL}, 3395, "tcp"},
-{"dyna-lm", {NULL}, 3395, "udp"},
-{"printer_agent", {NULL}, 3396, "tcp"},
-{"printer_agent", {NULL}, 3396, "udp"},
-{"cloanto-lm", {NULL}, 3397, "tcp"},
-{"cloanto-lm", {NULL}, 3397, "udp"},
-{"mercantile", {NULL}, 3398, "tcp"},
-{"mercantile", {NULL}, 3398, "udp"},
-{"csms", {NULL}, 3399, "tcp"},
-{"csms", {NULL}, 3399, "udp"},
-{"csms2", {NULL}, 3400, "tcp"},
-{"csms2", {NULL}, 3400, "udp"},
-{"filecast", {NULL}, 3401, "tcp"},
-{"filecast", {NULL}, 3401, "udp"},
-{"fxaengine-net", {NULL}, 3402, "tcp"},
-{"fxaengine-net", {NULL}, 3402, "udp"},
-{"nokia-ann-ch1", {NULL}, 3405, "tcp"},
-{"nokia-ann-ch1", {NULL}, 3405, "udp"},
-{"nokia-ann-ch2", {NULL}, 3406, "tcp"},
-{"nokia-ann-ch2", {NULL}, 3406, "udp"},
-{"ldap-admin", {NULL}, 3407, "tcp"},
-{"ldap-admin", {NULL}, 3407, "udp"},
-{"BESApi", {NULL}, 3408, "tcp"},
-{"BESApi", {NULL}, 3408, "udp"},
-{"networklens", {NULL}, 3409, "tcp"},
-{"networklens", {NULL}, 3409, "udp"},
-{"networklenss", {NULL}, 3410, "tcp"},
-{"networklenss", {NULL}, 3410, "udp"},
-{"biolink-auth", {NULL}, 3411, "tcp"},
-{"biolink-auth", {NULL}, 3411, "udp"},
-{"xmlblaster", {NULL}, 3412, "tcp"},
-{"xmlblaster", {NULL}, 3412, "udp"},
-{"svnet", {NULL}, 3413, "tcp"},
-{"svnet", {NULL}, 3413, "udp"},
-{"wip-port", {NULL}, 3414, "tcp"},
-{"wip-port", {NULL}, 3414, "udp"},
-{"bcinameservice", {NULL}, 3415, "tcp"},
-{"bcinameservice", {NULL}, 3415, "udp"},
-{"commandport", {NULL}, 3416, "tcp"},
-{"commandport", {NULL}, 3416, "udp"},
-{"csvr", {NULL}, 3417, "tcp"},
-{"csvr", {NULL}, 3417, "udp"},
-{"rnmap", {NULL}, 3418, "tcp"},
-{"rnmap", {NULL}, 3418, "udp"},
-{"softaudit", {NULL}, 3419, "tcp"},
-{"softaudit", {NULL}, 3419, "udp"},
-{"ifcp-port", {NULL}, 3420, "tcp"},
-{"ifcp-port", {NULL}, 3420, "udp"},
-{"bmap", {NULL}, 3421, "tcp"},
-{"bmap", {NULL}, 3421, "udp"},
-{"rusb-sys-port", {NULL}, 3422, "tcp"},
-{"rusb-sys-port", {NULL}, 3422, "udp"},
-{"xtrm", {NULL}, 3423, "tcp"},
-{"xtrm", {NULL}, 3423, "udp"},
-{"xtrms", {NULL}, 3424, "tcp"},
-{"xtrms", {NULL}, 3424, "udp"},
-{"agps-port", {NULL}, 3425, "tcp"},
-{"agps-port", {NULL}, 3425, "udp"},
-{"arkivio", {NULL}, 3426, "tcp"},
-{"arkivio", {NULL}, 3426, "udp"},
-{"websphere-snmp", {NULL}, 3427, "tcp"},
-{"websphere-snmp", {NULL}, 3427, "udp"},
-{"twcss", {NULL}, 3428, "tcp"},
-{"twcss", {NULL}, 3428, "udp"},
-{"gcsp", {NULL}, 3429, "tcp"},
-{"gcsp", {NULL}, 3429, "udp"},
-{"ssdispatch", {NULL}, 3430, "tcp"},
-{"ssdispatch", {NULL}, 3430, "udp"},
-{"ndl-als", {NULL}, 3431, "tcp"},
-{"ndl-als", {NULL}, 3431, "udp"},
-{"osdcp", {NULL}, 3432, "tcp"},
-{"osdcp", {NULL}, 3432, "udp"},
-{"alta-smp", {NULL}, 3433, "tcp"},
-{"alta-smp", {NULL}, 3433, "udp"},
-{"opencm", {NULL}, 3434, "tcp"},
-{"opencm", {NULL}, 3434, "udp"},
-{"pacom", {NULL}, 3435, "tcp"},
-{"pacom", {NULL}, 3435, "udp"},
-{"gc-config", {NULL}, 3436, "tcp"},
-{"gc-config", {NULL}, 3436, "udp"},
-{"autocueds", {NULL}, 3437, "tcp"},
-{"autocueds", {NULL}, 3437, "udp"},
-{"spiral-admin", {NULL}, 3438, "tcp"},
-{"spiral-admin", {NULL}, 3438, "udp"},
-{"hri-port", {NULL}, 3439, "tcp"},
-{"hri-port", {NULL}, 3439, "udp"},
-{"ans-console", {NULL}, 3440, "tcp"},
-{"ans-console", {NULL}, 3440, "udp"},
-{"connect-client", {NULL}, 3441, "tcp"},
-{"connect-client", {NULL}, 3441, "udp"},
-{"connect-server", {NULL}, 3442, "tcp"},
-{"connect-server", {NULL}, 3442, "udp"},
-{"ov-nnm-websrv", {NULL}, 3443, "tcp"},
-{"ov-nnm-websrv", {NULL}, 3443, "udp"},
-{"denali-server", {NULL}, 3444, "tcp"},
-{"denali-server", {NULL}, 3444, "udp"},
-{"monp", {NULL}, 3445, "tcp"},
-{"monp", {NULL}, 3445, "udp"},
-{"3comfaxrpc", {NULL}, 3446, "tcp"},
-{"3comfaxrpc", {NULL}, 3446, "udp"},
-{"directnet", {NULL}, 3447, "tcp"},
-{"directnet", {NULL}, 3447, "udp"},
-{"dnc-port", {NULL}, 3448, "tcp"},
-{"dnc-port", {NULL}, 3448, "udp"},
-{"hotu-chat", {NULL}, 3449, "tcp"},
-{"hotu-chat", {NULL}, 3449, "udp"},
-{"castorproxy", {NULL}, 3450, "tcp"},
-{"castorproxy", {NULL}, 3450, "udp"},
-{"asam", {NULL}, 3451, "tcp"},
-{"asam", {NULL}, 3451, "udp"},
-{"sabp-signal", {NULL}, 3452, "tcp"},
-{"sabp-signal", {NULL}, 3452, "udp"},
-{"pscupd", {NULL}, 3453, "tcp"},
-{"pscupd", {NULL}, 3453, "udp"},
-{"mira", {NULL}, 3454, "tcp"},
-{"prsvp", {NULL}, 3455, "tcp"},
-{"prsvp", {NULL}, 3455, "udp"},
-{"vat", {NULL}, 3456, "tcp"},
-{"vat", {NULL}, 3456, "udp"},
-{"vat-control", {NULL}, 3457, "tcp"},
-{"vat-control", {NULL}, 3457, "udp"},
-{"d3winosfi", {NULL}, 3458, "tcp"},
-{"d3winosfi", {NULL}, 3458, "udp"},
-{"integral", {NULL}, 3459, "tcp"},
-{"integral", {NULL}, 3459, "udp"},
-{"edm-manager", {NULL}, 3460, "tcp"},
-{"edm-manager", {NULL}, 3460, "udp"},
-{"edm-stager", {NULL}, 3461, "tcp"},
-{"edm-stager", {NULL}, 3461, "udp"},
-{"edm-std-notify", {NULL}, 3462, "tcp"},
-{"edm-std-notify", {NULL}, 3462, "udp"},
-{"edm-adm-notify", {NULL}, 3463, "tcp"},
-{"edm-adm-notify", {NULL}, 3463, "udp"},
-{"edm-mgr-sync", {NULL}, 3464, "tcp"},
-{"edm-mgr-sync", {NULL}, 3464, "udp"},
-{"edm-mgr-cntrl", {NULL}, 3465, "tcp"},
-{"edm-mgr-cntrl", {NULL}, 3465, "udp"},
-{"workflow", {NULL}, 3466, "tcp"},
-{"workflow", {NULL}, 3466, "udp"},
-{"rcst", {NULL}, 3467, "tcp"},
-{"rcst", {NULL}, 3467, "udp"},
-{"ttcmremotectrl", {NULL}, 3468, "tcp"},
-{"ttcmremotectrl", {NULL}, 3468, "udp"},
-{"pluribus", {NULL}, 3469, "tcp"},
-{"pluribus", {NULL}, 3469, "udp"},
-{"jt400", {NULL}, 3470, "tcp"},
-{"jt400", {NULL}, 3470, "udp"},
-{"jt400-ssl", {NULL}, 3471, "tcp"},
-{"jt400-ssl", {NULL}, 3471, "udp"},
-{"jaugsremotec-1", {NULL}, 3472, "tcp"},
-{"jaugsremotec-1", {NULL}, 3472, "udp"},
-{"jaugsremotec-2", {NULL}, 3473, "tcp"},
-{"jaugsremotec-2", {NULL}, 3473, "udp"},
-{"ttntspauto", {NULL}, 3474, "tcp"},
-{"ttntspauto", {NULL}, 3474, "udp"},
-{"genisar-port", {NULL}, 3475, "tcp"},
-{"genisar-port", {NULL}, 3475, "udp"},
-{"nppmp", {NULL}, 3476, "tcp"},
-{"nppmp", {NULL}, 3476, "udp"},
-{"ecomm", {NULL}, 3477, "tcp"},
-{"ecomm", {NULL}, 3477, "udp"},
-{"stun", {NULL}, 3478, "tcp"},
-{"stun", {NULL}, 3478, "udp"},
-{"turn", {NULL}, 3478, "tcp"},
-{"turn", {NULL}, 3478, "udp"},
-{"stun-behavior", {NULL}, 3478, "tcp"},
-{"stun-behavior", {NULL}, 3478, "udp"},
-{"twrpc", {NULL}, 3479, "tcp"},
-{"twrpc", {NULL}, 3479, "udp"},
-{"plethora", {NULL}, 3480, "tcp"},
-{"plethora", {NULL}, 3480, "udp"},
-{"cleanerliverc", {NULL}, 3481, "tcp"},
-{"cleanerliverc", {NULL}, 3481, "udp"},
-{"vulture", {NULL}, 3482, "tcp"},
-{"vulture", {NULL}, 3482, "udp"},
-{"slim-devices", {NULL}, 3483, "tcp"},
-{"slim-devices", {NULL}, 3483, "udp"},
-{"gbs-stp", {NULL}, 3484, "tcp"},
-{"gbs-stp", {NULL}, 3484, "udp"},
-{"celatalk", {NULL}, 3485, "tcp"},
-{"celatalk", {NULL}, 3485, "udp"},
-{"ifsf-hb-port", {NULL}, 3486, "tcp"},
-{"ifsf-hb-port", {NULL}, 3486, "udp"},
-{"ltctcp", {NULL}, 3487, "tcp"},
-{"ltcudp", {NULL}, 3487, "udp"},
-{"fs-rh-srv", {NULL}, 3488, "tcp"},
-{"fs-rh-srv", {NULL}, 3488, "udp"},
-{"dtp-dia", {NULL}, 3489, "tcp"},
-{"dtp-dia", {NULL}, 3489, "udp"},
-{"colubris", {NULL}, 3490, "tcp"},
-{"colubris", {NULL}, 3490, "udp"},
-{"swr-port", {NULL}, 3491, "tcp"},
-{"swr-port", {NULL}, 3491, "udp"},
-{"tvdumtray-port", {NULL}, 3492, "tcp"},
-{"tvdumtray-port", {NULL}, 3492, "udp"},
-{"nut", {NULL}, 3493, "tcp"},
-{"nut", {NULL}, 3493, "udp"},
-{"ibm3494", {NULL}, 3494, "tcp"},
-{"ibm3494", {NULL}, 3494, "udp"},
-{"seclayer-tcp", {NULL}, 3495, "tcp"},
-{"seclayer-tcp", {NULL}, 3495, "udp"},
-{"seclayer-tls", {NULL}, 3496, "tcp"},
-{"seclayer-tls", {NULL}, 3496, "udp"},
-{"ipether232port", {NULL}, 3497, "tcp"},
-{"ipether232port", {NULL}, 3497, "udp"},
-{"dashpas-port", {NULL}, 3498, "tcp"},
-{"dashpas-port", {NULL}, 3498, "udp"},
-{"sccip-media", {NULL}, 3499, "tcp"},
-{"sccip-media", {NULL}, 3499, "udp"},
-{"rtmp-port", {NULL}, 3500, "tcp"},
-{"rtmp-port", {NULL}, 3500, "udp"},
-{"isoft-p2p", {NULL}, 3501, "tcp"},
-{"isoft-p2p", {NULL}, 3501, "udp"},
-{"avinstalldisc", {NULL}, 3502, "tcp"},
-{"avinstalldisc", {NULL}, 3502, "udp"},
-{"lsp-ping", {NULL}, 3503, "tcp"},
-{"lsp-ping", {NULL}, 3503, "udp"},
-{"ironstorm", {NULL}, 3504, "tcp"},
-{"ironstorm", {NULL}, 3504, "udp"},
-{"ccmcomm", {NULL}, 3505, "tcp"},
-{"ccmcomm", {NULL}, 3505, "udp"},
-{"apc-3506", {NULL}, 3506, "tcp"},
-{"apc-3506", {NULL}, 3506, "udp"},
-{"nesh-broker", {NULL}, 3507, "tcp"},
-{"nesh-broker", {NULL}, 3507, "udp"},
-{"interactionweb", {NULL}, 3508, "tcp"},
-{"interactionweb", {NULL}, 3508, "udp"},
-{"vt-ssl", {NULL}, 3509, "tcp"},
-{"vt-ssl", {NULL}, 3509, "udp"},
-{"xss-port", {NULL}, 3510, "tcp"},
-{"xss-port", {NULL}, 3510, "udp"},
-{"webmail-2", {NULL}, 3511, "tcp"},
-{"webmail-2", {NULL}, 3511, "udp"},
-{"aztec", {NULL}, 3512, "tcp"},
-{"aztec", {NULL}, 3512, "udp"},
-{"arcpd", {NULL}, 3513, "tcp"},
-{"arcpd", {NULL}, 3513, "udp"},
-{"must-p2p", {NULL}, 3514, "tcp"},
-{"must-p2p", {NULL}, 3514, "udp"},
-{"must-backplane", {NULL}, 3515, "tcp"},
-{"must-backplane", {NULL}, 3515, "udp"},
-{"smartcard-port", {NULL}, 3516, "tcp"},
-{"smartcard-port", {NULL}, 3516, "udp"},
-{"802-11-iapp", {NULL}, 3517, "tcp"},
-{"802-11-iapp", {NULL}, 3517, "udp"},
-{"artifact-msg", {NULL}, 3518, "tcp"},
-{"artifact-msg", {NULL}, 3518, "udp"},
-{"nvmsgd", {NULL}, 3519, "tcp"},
-{"galileo", {NULL}, 3519, "udp"},
-{"galileolog", {NULL}, 3520, "tcp"},
-{"galileolog", {NULL}, 3520, "udp"},
-{"mc3ss", {NULL}, 3521, "tcp"},
-{"mc3ss", {NULL}, 3521, "udp"},
-{"nssocketport", {NULL}, 3522, "tcp"},
-{"nssocketport", {NULL}, 3522, "udp"},
-{"odeumservlink", {NULL}, 3523, "tcp"},
-{"odeumservlink", {NULL}, 3523, "udp"},
-{"ecmport", {NULL}, 3524, "tcp"},
-{"ecmport", {NULL}, 3524, "udp"},
-{"eisport", {NULL}, 3525, "tcp"},
-{"eisport", {NULL}, 3525, "udp"},
-{"starquiz-port", {NULL}, 3526, "tcp"},
-{"starquiz-port", {NULL}, 3526, "udp"},
-{"beserver-msg-q", {NULL}, 3527, "tcp"},
-{"beserver-msg-q", {NULL}, 3527, "udp"},
-{"jboss-iiop", {NULL}, 3528, "tcp"},
-{"jboss-iiop", {NULL}, 3528, "udp"},
-{"jboss-iiop-ssl", {NULL}, 3529, "tcp"},
-{"jboss-iiop-ssl", {NULL}, 3529, "udp"},
-{"gf", {NULL}, 3530, "tcp"},
-{"gf", {NULL}, 3530, "udp"},
-{"joltid", {NULL}, 3531, "tcp"},
-{"joltid", {NULL}, 3531, "udp"},
-{"raven-rmp", {NULL}, 3532, "tcp"},
-{"raven-rmp", {NULL}, 3532, "udp"},
-{"raven-rdp", {NULL}, 3533, "tcp"},
-{"raven-rdp", {NULL}, 3533, "udp"},
-{"urld-port", {NULL}, 3534, "tcp"},
-{"urld-port", {NULL}, 3534, "udp"},
-{"ms-la", {NULL}, 3535, "tcp"},
-{"ms-la", {NULL}, 3535, "udp"},
-{"snac", {NULL}, 3536, "tcp"},
-{"snac", {NULL}, 3536, "udp"},
-{"ni-visa-remote", {NULL}, 3537, "tcp"},
-{"ni-visa-remote", {NULL}, 3537, "udp"},
-{"ibm-diradm", {NULL}, 3538, "tcp"},
-{"ibm-diradm", {NULL}, 3538, "udp"},
-{"ibm-diradm-ssl", {NULL}, 3539, "tcp"},
-{"ibm-diradm-ssl", {NULL}, 3539, "udp"},
-{"pnrp-port", {NULL}, 3540, "tcp"},
-{"pnrp-port", {NULL}, 3540, "udp"},
-{"voispeed-port", {NULL}, 3541, "tcp"},
-{"voispeed-port", {NULL}, 3541, "udp"},
-{"hacl-monitor", {NULL}, 3542, "tcp"},
-{"hacl-monitor", {NULL}, 3542, "udp"},
-{"qftest-lookup", {NULL}, 3543, "tcp"},
-{"qftest-lookup", {NULL}, 3543, "udp"},
-{"teredo", {NULL}, 3544, "tcp"},
-{"teredo", {NULL}, 3544, "udp"},
-{"camac", {NULL}, 3545, "tcp"},
-{"camac", {NULL}, 3545, "udp"},
-{"symantec-sim", {NULL}, 3547, "tcp"},
-{"symantec-sim", {NULL}, 3547, "udp"},
-{"interworld", {NULL}, 3548, "tcp"},
-{"interworld", {NULL}, 3548, "udp"},
-{"tellumat-nms", {NULL}, 3549, "tcp"},
-{"tellumat-nms", {NULL}, 3549, "udp"},
-{"ssmpp", {NULL}, 3550, "tcp"},
-{"ssmpp", {NULL}, 3550, "udp"},
-{"apcupsd", {NULL}, 3551, "tcp"},
-{"apcupsd", {NULL}, 3551, "udp"},
-{"taserver", {NULL}, 3552, "tcp"},
-{"taserver", {NULL}, 3552, "udp"},
-{"rbr-discovery", {NULL}, 3553, "tcp"},
-{"rbr-discovery", {NULL}, 3553, "udp"},
-{"questnotify", {NULL}, 3554, "tcp"},
-{"questnotify", {NULL}, 3554, "udp"},
-{"razor", {NULL}, 3555, "tcp"},
-{"razor", {NULL}, 3555, "udp"},
-{"sky-transport", {NULL}, 3556, "tcp"},
-{"sky-transport", {NULL}, 3556, "udp"},
-{"personalos-001", {NULL}, 3557, "tcp"},
-{"personalos-001", {NULL}, 3557, "udp"},
-{"mcp-port", {NULL}, 3558, "tcp"},
-{"mcp-port", {NULL}, 3558, "udp"},
-{"cctv-port", {NULL}, 3559, "tcp"},
-{"cctv-port", {NULL}, 3559, "udp"},
-{"iniserve-port", {NULL}, 3560, "tcp"},
-{"iniserve-port", {NULL}, 3560, "udp"},
-{"bmc-onekey", {NULL}, 3561, "tcp"},
-{"bmc-onekey", {NULL}, 3561, "udp"},
-{"sdbproxy", {NULL}, 3562, "tcp"},
-{"sdbproxy", {NULL}, 3562, "udp"},
-{"watcomdebug", {NULL}, 3563, "tcp"},
-{"watcomdebug", {NULL}, 3563, "udp"},
-{"esimport", {NULL}, 3564, "tcp"},
-{"esimport", {NULL}, 3564, "udp"},
-{"m2pa", {NULL}, 3565, "tcp"},
-{"m2pa", {NULL}, 3565, "sctp"},
-{"quest-data-hub", {NULL}, 3566, "tcp"},
-{"oap", {NULL}, 3567, "tcp"},
-{"oap", {NULL}, 3567, "udp"},
-{"oap-s", {NULL}, 3568, "tcp"},
-{"oap-s", {NULL}, 3568, "udp"},
-{"mbg-ctrl", {NULL}, 3569, "tcp"},
-{"mbg-ctrl", {NULL}, 3569, "udp"},
-{"mccwebsvr-port", {NULL}, 3570, "tcp"},
-{"mccwebsvr-port", {NULL}, 3570, "udp"},
-{"megardsvr-port", {NULL}, 3571, "tcp"},
-{"megardsvr-port", {NULL}, 3571, "udp"},
-{"megaregsvrport", {NULL}, 3572, "tcp"},
-{"megaregsvrport", {NULL}, 3572, "udp"},
-{"tag-ups-1", {NULL}, 3573, "tcp"},
-{"tag-ups-1", {NULL}, 3573, "udp"},
-{"dmaf-server", {NULL}, 3574, "tcp"},
-{"dmaf-caster", {NULL}, 3574, "udp"},
-{"ccm-port", {NULL}, 3575, "tcp"},
-{"ccm-port", {NULL}, 3575, "udp"},
-{"cmc-port", {NULL}, 3576, "tcp"},
-{"cmc-port", {NULL}, 3576, "udp"},
-{"config-port", {NULL}, 3577, "tcp"},
-{"config-port", {NULL}, 3577, "udp"},
-{"data-port", {NULL}, 3578, "tcp"},
-{"data-port", {NULL}, 3578, "udp"},
-{"ttat3lb", {NULL}, 3579, "tcp"},
-{"ttat3lb", {NULL}, 3579, "udp"},
-{"nati-svrloc", {NULL}, 3580, "tcp"},
-{"nati-svrloc", {NULL}, 3580, "udp"},
-{"kfxaclicensing", {NULL}, 3581, "tcp"},
-{"kfxaclicensing", {NULL}, 3581, "udp"},
-{"press", {NULL}, 3582, "tcp"},
-{"press", {NULL}, 3582, "udp"},
-{"canex-watch", {NULL}, 3583, "tcp"},
-{"canex-watch", {NULL}, 3583, "udp"},
-{"u-dbap", {NULL}, 3584, "tcp"},
-{"u-dbap", {NULL}, 3584, "udp"},
-{"emprise-lls", {NULL}, 3585, "tcp"},
-{"emprise-lls", {NULL}, 3585, "udp"},
-{"emprise-lsc", {NULL}, 3586, "tcp"},
-{"emprise-lsc", {NULL}, 3586, "udp"},
-{"p2pgroup", {NULL}, 3587, "tcp"},
-{"p2pgroup", {NULL}, 3587, "udp"},
-{"sentinel", {NULL}, 3588, "tcp"},
-{"sentinel", {NULL}, 3588, "udp"},
-{"isomair", {NULL}, 3589, "tcp"},
-{"isomair", {NULL}, 3589, "udp"},
-{"wv-csp-sms", {NULL}, 3590, "tcp"},
-{"wv-csp-sms", {NULL}, 3590, "udp"},
-{"gtrack-server", {NULL}, 3591, "tcp"},
-{"gtrack-server", {NULL}, 3591, "udp"},
-{"gtrack-ne", {NULL}, 3592, "tcp"},
-{"gtrack-ne", {NULL}, 3592, "udp"},
-{"bpmd", {NULL}, 3593, "tcp"},
-{"bpmd", {NULL}, 3593, "udp"},
-{"mediaspace", {NULL}, 3594, "tcp"},
-{"mediaspace", {NULL}, 3594, "udp"},
-{"shareapp", {NULL}, 3595, "tcp"},
-{"shareapp", {NULL}, 3595, "udp"},
-{"iw-mmogame", {NULL}, 3596, "tcp"},
-{"iw-mmogame", {NULL}, 3596, "udp"},
-{"a14", {NULL}, 3597, "tcp"},
-{"a14", {NULL}, 3597, "udp"},
-{"a15", {NULL}, 3598, "tcp"},
-{"a15", {NULL}, 3598, "udp"},
-{"quasar-server", {NULL}, 3599, "tcp"},
-{"quasar-server", {NULL}, 3599, "udp"},
-{"trap-daemon", {NULL}, 3600, "tcp"},
-{"trap-daemon", {NULL}, 3600, "udp"},
-{"visinet-gui", {NULL}, 3601, "tcp"},
-{"visinet-gui", {NULL}, 3601, "udp"},
-{"infiniswitchcl", {NULL}, 3602, "tcp"},
-{"infiniswitchcl", {NULL}, 3602, "udp"},
-{"int-rcv-cntrl", {NULL}, 3603, "tcp"},
-{"int-rcv-cntrl", {NULL}, 3603, "udp"},
-{"bmc-jmx-port", {NULL}, 3604, "tcp"},
-{"bmc-jmx-port", {NULL}, 3604, "udp"},
-{"comcam-io", {NULL}, 3605, "tcp"},
-{"comcam-io", {NULL}, 3605, "udp"},
-{"splitlock", {NULL}, 3606, "tcp"},
-{"splitlock", {NULL}, 3606, "udp"},
-{"precise-i3", {NULL}, 3607, "tcp"},
-{"precise-i3", {NULL}, 3607, "udp"},
-{"trendchip-dcp", {NULL}, 3608, "tcp"},
-{"trendchip-dcp", {NULL}, 3608, "udp"},
-{"cpdi-pidas-cm", {NULL}, 3609, "tcp"},
-{"cpdi-pidas-cm", {NULL}, 3609, "udp"},
-{"echonet", {NULL}, 3610, "tcp"},
-{"echonet", {NULL}, 3610, "udp"},
-{"six-degrees", {NULL}, 3611, "tcp"},
-{"six-degrees", {NULL}, 3611, "udp"},
-{"hp-dataprotect", {NULL}, 3612, "tcp"},
-{"hp-dataprotect", {NULL}, 3612, "udp"},
-{"alaris-disc", {NULL}, 3613, "tcp"},
-{"alaris-disc", {NULL}, 3613, "udp"},
-{"sigma-port", {NULL}, 3614, "tcp"},
-{"sigma-port", {NULL}, 3614, "udp"},
-{"start-network", {NULL}, 3615, "tcp"},
-{"start-network", {NULL}, 3615, "udp"},
-{"cd3o-protocol", {NULL}, 3616, "tcp"},
-{"cd3o-protocol", {NULL}, 3616, "udp"},
-{"sharp-server", {NULL}, 3617, "tcp"},
-{"sharp-server", {NULL}, 3617, "udp"},
-{"aairnet-1", {NULL}, 3618, "tcp"},
-{"aairnet-1", {NULL}, 3618, "udp"},
-{"aairnet-2", {NULL}, 3619, "tcp"},
-{"aairnet-2", {NULL}, 3619, "udp"},
-{"ep-pcp", {NULL}, 3620, "tcp"},
-{"ep-pcp", {NULL}, 3620, "udp"},
-{"ep-nsp", {NULL}, 3621, "tcp"},
-{"ep-nsp", {NULL}, 3621, "udp"},
-{"ff-lr-port", {NULL}, 3622, "tcp"},
-{"ff-lr-port", {NULL}, 3622, "udp"},
-{"haipe-discover", {NULL}, 3623, "tcp"},
-{"haipe-discover", {NULL}, 3623, "udp"},
-{"dist-upgrade", {NULL}, 3624, "tcp"},
-{"dist-upgrade", {NULL}, 3624, "udp"},
-{"volley", {NULL}, 3625, "tcp"},
-{"volley", {NULL}, 3625, "udp"},
-{"bvcdaemon-port", {NULL}, 3626, "tcp"},
-{"bvcdaemon-port", {NULL}, 3626, "udp"},
-{"jamserverport", {NULL}, 3627, "tcp"},
-{"jamserverport", {NULL}, 3627, "udp"},
-{"ept-machine", {NULL}, 3628, "tcp"},
-{"ept-machine", {NULL}, 3628, "udp"},
-{"escvpnet", {NULL}, 3629, "tcp"},
-{"escvpnet", {NULL}, 3629, "udp"},
-{"cs-remote-db", {NULL}, 3630, "tcp"},
-{"cs-remote-db", {NULL}, 3630, "udp"},
-{"cs-services", {NULL}, 3631, "tcp"},
-{"cs-services", {NULL}, 3631, "udp"},
-{"distcc", {NULL}, 3632, "tcp"},
-{"distcc", {NULL}, 3632, "udp"},
-{"wacp", {NULL}, 3633, "tcp"},
-{"wacp", {NULL}, 3633, "udp"},
-{"hlibmgr", {NULL}, 3634, "tcp"},
-{"hlibmgr", {NULL}, 3634, "udp"},
-{"sdo", {NULL}, 3635, "tcp"},
-{"sdo", {NULL}, 3635, "udp"},
-{"servistaitsm", {NULL}, 3636, "tcp"},
-{"servistaitsm", {NULL}, 3636, "udp"},
-{"scservp", {NULL}, 3637, "tcp"},
-{"scservp", {NULL}, 3637, "udp"},
-{"ehp-backup", {NULL}, 3638, "tcp"},
-{"ehp-backup", {NULL}, 3638, "udp"},
-{"xap-ha", {NULL}, 3639, "tcp"},
-{"xap-ha", {NULL}, 3639, "udp"},
-{"netplay-port1", {NULL}, 3640, "tcp"},
-{"netplay-port1", {NULL}, 3640, "udp"},
-{"netplay-port2", {NULL}, 3641, "tcp"},
-{"netplay-port2", {NULL}, 3641, "udp"},
-{"juxml-port", {NULL}, 3642, "tcp"},
-{"juxml-port", {NULL}, 3642, "udp"},
-{"audiojuggler", {NULL}, 3643, "tcp"},
-{"audiojuggler", {NULL}, 3643, "udp"},
-{"ssowatch", {NULL}, 3644, "tcp"},
-{"ssowatch", {NULL}, 3644, "udp"},
-{"cyc", {NULL}, 3645, "tcp"},
-{"cyc", {NULL}, 3645, "udp"},
-{"xss-srv-port", {NULL}, 3646, "tcp"},
-{"xss-srv-port", {NULL}, 3646, "udp"},
-{"splitlock-gw", {NULL}, 3647, "tcp"},
-{"splitlock-gw", {NULL}, 3647, "udp"},
-{"fjcp", {NULL}, 3648, "tcp"},
-{"fjcp", {NULL}, 3648, "udp"},
-{"nmmp", {NULL}, 3649, "tcp"},
-{"nmmp", {NULL}, 3649, "udp"},
-{"prismiq-plugin", {NULL}, 3650, "tcp"},
-{"prismiq-plugin", {NULL}, 3650, "udp"},
-{"xrpc-registry", {NULL}, 3651, "tcp"},
-{"xrpc-registry", {NULL}, 3651, "udp"},
-{"vxcrnbuport", {NULL}, 3652, "tcp"},
-{"vxcrnbuport", {NULL}, 3652, "udp"},
-{"tsp", {NULL}, 3653, "tcp"},
-{"tsp", {NULL}, 3653, "udp"},
-{"vaprtm", {NULL}, 3654, "tcp"},
-{"vaprtm", {NULL}, 3654, "udp"},
-{"abatemgr", {NULL}, 3655, "tcp"},
-{"abatemgr", {NULL}, 3655, "udp"},
-{"abatjss", {NULL}, 3656, "tcp"},
-{"abatjss", {NULL}, 3656, "udp"},
-{"immedianet-bcn", {NULL}, 3657, "tcp"},
-{"immedianet-bcn", {NULL}, 3657, "udp"},
-{"ps-ams", {NULL}, 3658, "tcp"},
-{"ps-ams", {NULL}, 3658, "udp"},
-{"apple-sasl", {NULL}, 3659, "tcp"},
-{"apple-sasl", {NULL}, 3659, "udp"},
-{"can-nds-ssl", {NULL}, 3660, "tcp"},
-{"can-nds-ssl", {NULL}, 3660, "udp"},
-{"can-ferret-ssl", {NULL}, 3661, "tcp"},
-{"can-ferret-ssl", {NULL}, 3661, "udp"},
-{"pserver", {NULL}, 3662, "tcp"},
-{"pserver", {NULL}, 3662, "udp"},
-{"dtp", {NULL}, 3663, "tcp"},
-{"dtp", {NULL}, 3663, "udp"},
-{"ups-engine", {NULL}, 3664, "tcp"},
-{"ups-engine", {NULL}, 3664, "udp"},
-{"ent-engine", {NULL}, 3665, "tcp"},
-{"ent-engine", {NULL}, 3665, "udp"},
-{"eserver-pap", {NULL}, 3666, "tcp"},
-{"eserver-pap", {NULL}, 3666, "udp"},
-{"infoexch", {NULL}, 3667, "tcp"},
-{"infoexch", {NULL}, 3667, "udp"},
-{"dell-rm-port", {NULL}, 3668, "tcp"},
-{"dell-rm-port", {NULL}, 3668, "udp"},
-{"casanswmgmt", {NULL}, 3669, "tcp"},
-{"casanswmgmt", {NULL}, 3669, "udp"},
-{"smile", {NULL}, 3670, "tcp"},
-{"smile", {NULL}, 3670, "udp"},
-{"efcp", {NULL}, 3671, "tcp"},
-{"efcp", {NULL}, 3671, "udp"},
-{"lispworks-orb", {NULL}, 3672, "tcp"},
-{"lispworks-orb", {NULL}, 3672, "udp"},
-{"mediavault-gui", {NULL}, 3673, "tcp"},
-{"mediavault-gui", {NULL}, 3673, "udp"},
-{"wininstall-ipc", {NULL}, 3674, "tcp"},
-{"wininstall-ipc", {NULL}, 3674, "udp"},
-{"calltrax", {NULL}, 3675, "tcp"},
-{"calltrax", {NULL}, 3675, "udp"},
-{"va-pacbase", {NULL}, 3676, "tcp"},
-{"va-pacbase", {NULL}, 3676, "udp"},
-{"roverlog", {NULL}, 3677, "tcp"},
-{"roverlog", {NULL}, 3677, "udp"},
-{"ipr-dglt", {NULL}, 3678, "tcp"},
-{"ipr-dglt", {NULL}, 3678, "udp"},
-{"newton-dock", {NULL}, 3679, "tcp"},
-{"newton-dock", {NULL}, 3679, "udp"},
-{"npds-tracker", {NULL}, 3680, "tcp"},
-{"npds-tracker", {NULL}, 3680, "udp"},
-{"bts-x73", {NULL}, 3681, "tcp"},
-{"bts-x73", {NULL}, 3681, "udp"},
-{"cas-mapi", {NULL}, 3682, "tcp"},
-{"cas-mapi", {NULL}, 3682, "udp"},
-{"bmc-ea", {NULL}, 3683, "tcp"},
-{"bmc-ea", {NULL}, 3683, "udp"},
-{"faxstfx-port", {NULL}, 3684, "tcp"},
-{"faxstfx-port", {NULL}, 3684, "udp"},
-{"dsx-agent", {NULL}, 3685, "tcp"},
-{"dsx-agent", {NULL}, 3685, "udp"},
-{"tnmpv2", {NULL}, 3686, "tcp"},
-{"tnmpv2", {NULL}, 3686, "udp"},
-{"simple-push", {NULL}, 3687, "tcp"},
-{"simple-push", {NULL}, 3687, "udp"},
-{"simple-push-s", {NULL}, 3688, "tcp"},
-{"simple-push-s", {NULL}, 3688, "udp"},
-{"daap", {NULL}, 3689, "tcp"},
-{"daap", {NULL}, 3689, "udp"},
-{"svn", {NULL}, 3690, "tcp"},
-{"svn", {NULL}, 3690, "udp"},
-{"magaya-network", {NULL}, 3691, "tcp"},
-{"magaya-network", {NULL}, 3691, "udp"},
-{"intelsync", {NULL}, 3692, "tcp"},
-{"intelsync", {NULL}, 3692, "udp"},
-{"bmc-data-coll", {NULL}, 3695, "tcp"},
-{"bmc-data-coll", {NULL}, 3695, "udp"},
-{"telnetcpcd", {NULL}, 3696, "tcp"},
-{"telnetcpcd", {NULL}, 3696, "udp"},
-{"nw-license", {NULL}, 3697, "tcp"},
-{"nw-license", {NULL}, 3697, "udp"},
-{"sagectlpanel", {NULL}, 3698, "tcp"},
-{"sagectlpanel", {NULL}, 3698, "udp"},
-{"kpn-icw", {NULL}, 3699, "tcp"},
-{"kpn-icw", {NULL}, 3699, "udp"},
-{"lrs-paging", {NULL}, 3700, "tcp"},
-{"lrs-paging", {NULL}, 3700, "udp"},
-{"netcelera", {NULL}, 3701, "tcp"},
-{"netcelera", {NULL}, 3701, "udp"},
-{"ws-discovery", {NULL}, 3702, "tcp"},
-{"ws-discovery", {NULL}, 3702, "udp"},
-{"adobeserver-3", {NULL}, 3703, "tcp"},
-{"adobeserver-3", {NULL}, 3703, "udp"},
-{"adobeserver-4", {NULL}, 3704, "tcp"},
-{"adobeserver-4", {NULL}, 3704, "udp"},
-{"adobeserver-5", {NULL}, 3705, "tcp"},
-{"adobeserver-5", {NULL}, 3705, "udp"},
-{"rt-event", {NULL}, 3706, "tcp"},
-{"rt-event", {NULL}, 3706, "udp"},
-{"rt-event-s", {NULL}, 3707, "tcp"},
-{"rt-event-s", {NULL}, 3707, "udp"},
-{"sun-as-iiops", {NULL}, 3708, "tcp"},
-{"sun-as-iiops", {NULL}, 3708, "udp"},
-{"ca-idms", {NULL}, 3709, "tcp"},
-{"ca-idms", {NULL}, 3709, "udp"},
-{"portgate-auth", {NULL}, 3710, "tcp"},
-{"portgate-auth", {NULL}, 3710, "udp"},
-{"edb-server2", {NULL}, 3711, "tcp"},
-{"edb-server2", {NULL}, 3711, "udp"},
-{"sentinel-ent", {NULL}, 3712, "tcp"},
-{"sentinel-ent", {NULL}, 3712, "udp"},
-{"tftps", {NULL}, 3713, "tcp"},
-{"tftps", {NULL}, 3713, "udp"},
-{"delos-dms", {NULL}, 3714, "tcp"},
-{"delos-dms", {NULL}, 3714, "udp"},
-{"anoto-rendezv", {NULL}, 3715, "tcp"},
-{"anoto-rendezv", {NULL}, 3715, "udp"},
-{"wv-csp-sms-cir", {NULL}, 3716, "tcp"},
-{"wv-csp-sms-cir", {NULL}, 3716, "udp"},
-{"wv-csp-udp-cir", {NULL}, 3717, "tcp"},
-{"wv-csp-udp-cir", {NULL}, 3717, "udp"},
-{"opus-services", {NULL}, 3718, "tcp"},
-{"opus-services", {NULL}, 3718, "udp"},
-{"itelserverport", {NULL}, 3719, "tcp"},
-{"itelserverport", {NULL}, 3719, "udp"},
-{"ufastro-instr", {NULL}, 3720, "tcp"},
-{"ufastro-instr", {NULL}, 3720, "udp"},
-{"xsync", {NULL}, 3721, "tcp"},
-{"xsync", {NULL}, 3721, "udp"},
-{"xserveraid", {NULL}, 3722, "tcp"},
-{"xserveraid", {NULL}, 3722, "udp"},
-{"sychrond", {NULL}, 3723, "tcp"},
-{"sychrond", {NULL}, 3723, "udp"},
-{"blizwow", {NULL}, 3724, "tcp"},
-{"blizwow", {NULL}, 3724, "udp"},
-{"na-er-tip", {NULL}, 3725, "tcp"},
-{"na-er-tip", {NULL}, 3725, "udp"},
-{"array-manager", {NULL}, 3726, "tcp"},
-{"array-manager", {NULL}, 3726, "udp"},
-{"e-mdu", {NULL}, 3727, "tcp"},
-{"e-mdu", {NULL}, 3727, "udp"},
-{"e-woa", {NULL}, 3728, "tcp"},
-{"e-woa", {NULL}, 3728, "udp"},
-{"fksp-audit", {NULL}, 3729, "tcp"},
-{"fksp-audit", {NULL}, 3729, "udp"},
-{"client-ctrl", {NULL}, 3730, "tcp"},
-{"client-ctrl", {NULL}, 3730, "udp"},
-{"smap", {NULL}, 3731, "tcp"},
-{"smap", {NULL}, 3731, "udp"},
-{"m-wnn", {NULL}, 3732, "tcp"},
-{"m-wnn", {NULL}, 3732, "udp"},
-{"multip-msg", {NULL}, 3733, "tcp"},
-{"multip-msg", {NULL}, 3733, "udp"},
-{"synel-data", {NULL}, 3734, "tcp"},
-{"synel-data", {NULL}, 3734, "udp"},
-{"pwdis", {NULL}, 3735, "tcp"},
-{"pwdis", {NULL}, 3735, "udp"},
-{"rs-rmi", {NULL}, 3736, "tcp"},
-{"rs-rmi", {NULL}, 3736, "udp"},
-{"xpanel", {NULL}, 3737, "tcp"},
-{"versatalk", {NULL}, 3738, "tcp"},
-{"versatalk", {NULL}, 3738, "udp"},
-{"launchbird-lm", {NULL}, 3739, "tcp"},
-{"launchbird-lm", {NULL}, 3739, "udp"},
-{"heartbeat", {NULL}, 3740, "tcp"},
-{"heartbeat", {NULL}, 3740, "udp"},
-{"wysdma", {NULL}, 3741, "tcp"},
-{"wysdma", {NULL}, 3741, "udp"},
-{"cst-port", {NULL}, 3742, "tcp"},
-{"cst-port", {NULL}, 3742, "udp"},
-{"ipcs-command", {NULL}, 3743, "tcp"},
-{"ipcs-command", {NULL}, 3743, "udp"},
-{"sasg", {NULL}, 3744, "tcp"},
-{"sasg", {NULL}, 3744, "udp"},
-{"gw-call-port", {NULL}, 3745, "tcp"},
-{"gw-call-port", {NULL}, 3745, "udp"},
-{"linktest", {NULL}, 3746, "tcp"},
-{"linktest", {NULL}, 3746, "udp"},
-{"linktest-s", {NULL}, 3747, "tcp"},
-{"linktest-s", {NULL}, 3747, "udp"},
-{"webdata", {NULL}, 3748, "tcp"},
-{"webdata", {NULL}, 3748, "udp"},
-{"cimtrak", {NULL}, 3749, "tcp"},
-{"cimtrak", {NULL}, 3749, "udp"},
-{"cbos-ip-port", {NULL}, 3750, "tcp"},
-{"cbos-ip-port", {NULL}, 3750, "udp"},
-{"gprs-cube", {NULL}, 3751, "tcp"},
-{"gprs-cube", {NULL}, 3751, "udp"},
-{"vipremoteagent", {NULL}, 3752, "tcp"},
-{"vipremoteagent", {NULL}, 3752, "udp"},
-{"nattyserver", {NULL}, 3753, "tcp"},
-{"nattyserver", {NULL}, 3753, "udp"},
-{"timestenbroker", {NULL}, 3754, "tcp"},
-{"timestenbroker", {NULL}, 3754, "udp"},
-{"sas-remote-hlp", {NULL}, 3755, "tcp"},
-{"sas-remote-hlp", {NULL}, 3755, "udp"},
-{"canon-capt", {NULL}, 3756, "tcp"},
-{"canon-capt", {NULL}, 3756, "udp"},
-{"grf-port", {NULL}, 3757, "tcp"},
-{"grf-port", {NULL}, 3757, "udp"},
-{"apw-registry", {NULL}, 3758, "tcp"},
-{"apw-registry", {NULL}, 3758, "udp"},
-{"exapt-lmgr", {NULL}, 3759, "tcp"},
-{"exapt-lmgr", {NULL}, 3759, "udp"},
-{"adtempusclient", {NULL}, 3760, "tcp"},
-{"adtempusclient", {NULL}, 3760, "udp"},
-{"gsakmp", {NULL}, 3761, "tcp"},
-{"gsakmp", {NULL}, 3761, "udp"},
-{"gbs-smp", {NULL}, 3762, "tcp"},
-{"gbs-smp", {NULL}, 3762, "udp"},
-{"xo-wave", {NULL}, 3763, "tcp"},
-{"xo-wave", {NULL}, 3763, "udp"},
-{"mni-prot-rout", {NULL}, 3764, "tcp"},
-{"mni-prot-rout", {NULL}, 3764, "udp"},
-{"rtraceroute", {NULL}, 3765, "tcp"},
-{"rtraceroute", {NULL}, 3765, "udp"},
-{"listmgr-port", {NULL}, 3767, "tcp"},
-{"listmgr-port", {NULL}, 3767, "udp"},
-{"rblcheckd", {NULL}, 3768, "tcp"},
-{"rblcheckd", {NULL}, 3768, "udp"},
-{"haipe-otnk", {NULL}, 3769, "tcp"},
-{"haipe-otnk", {NULL}, 3769, "udp"},
-{"cindycollab", {NULL}, 3770, "tcp"},
-{"cindycollab", {NULL}, 3770, "udp"},
-{"paging-port", {NULL}, 3771, "tcp"},
-{"paging-port", {NULL}, 3771, "udp"},
-{"ctp", {NULL}, 3772, "tcp"},
-{"ctp", {NULL}, 3772, "udp"},
-{"ctdhercules", {NULL}, 3773, "tcp"},
-{"ctdhercules", {NULL}, 3773, "udp"},
-{"zicom", {NULL}, 3774, "tcp"},
-{"zicom", {NULL}, 3774, "udp"},
-{"ispmmgr", {NULL}, 3775, "tcp"},
-{"ispmmgr", {NULL}, 3775, "udp"},
-{"dvcprov-port", {NULL}, 3776, "tcp"},
-{"dvcprov-port", {NULL}, 3776, "udp"},
-{"jibe-eb", {NULL}, 3777, "tcp"},
-{"jibe-eb", {NULL}, 3777, "udp"},
-{"c-h-it-port", {NULL}, 3778, "tcp"},
-{"c-h-it-port", {NULL}, 3778, "udp"},
-{"cognima", {NULL}, 3779, "tcp"},
-{"cognima", {NULL}, 3779, "udp"},
-{"nnp", {NULL}, 3780, "tcp"},
-{"nnp", {NULL}, 3780, "udp"},
-{"abcvoice-port", {NULL}, 3781, "tcp"},
-{"abcvoice-port", {NULL}, 3781, "udp"},
-{"iso-tp0s", {NULL}, 3782, "tcp"},
-{"iso-tp0s", {NULL}, 3782, "udp"},
-{"bim-pem", {NULL}, 3783, "tcp"},
-{"bim-pem", {NULL}, 3783, "udp"},
-{"bfd-control", {NULL}, 3784, "tcp"},
-{"bfd-control", {NULL}, 3784, "udp"},
-{"bfd-echo", {NULL}, 3785, "tcp"},
-{"bfd-echo", {NULL}, 3785, "udp"},
-{"upstriggervsw", {NULL}, 3786, "tcp"},
-{"upstriggervsw", {NULL}, 3786, "udp"},
-{"fintrx", {NULL}, 3787, "tcp"},
-{"fintrx", {NULL}, 3787, "udp"},
-{"isrp-port", {NULL}, 3788, "tcp"},
-{"isrp-port", {NULL}, 3788, "udp"},
-{"remotedeploy", {NULL}, 3789, "tcp"},
-{"remotedeploy", {NULL}, 3789, "udp"},
-{"quickbooksrds", {NULL}, 3790, "tcp"},
-{"quickbooksrds", {NULL}, 3790, "udp"},
-{"tvnetworkvideo", {NULL}, 3791, "tcp"},
-{"tvnetworkvideo", {NULL}, 3791, "udp"},
-{"sitewatch", {NULL}, 3792, "tcp"},
-{"sitewatch", {NULL}, 3792, "udp"},
-{"dcsoftware", {NULL}, 3793, "tcp"},
-{"dcsoftware", {NULL}, 3793, "udp"},
-{"jaus", {NULL}, 3794, "tcp"},
-{"jaus", {NULL}, 3794, "udp"},
-{"myblast", {NULL}, 3795, "tcp"},
-{"myblast", {NULL}, 3795, "udp"},
-{"spw-dialer", {NULL}, 3796, "tcp"},
-{"spw-dialer", {NULL}, 3796, "udp"},
-{"idps", {NULL}, 3797, "tcp"},
-{"idps", {NULL}, 3797, "udp"},
-{"minilock", {NULL}, 3798, "tcp"},
-{"minilock", {NULL}, 3798, "udp"},
-{"radius-dynauth", {NULL}, 3799, "tcp"},
-{"radius-dynauth", {NULL}, 3799, "udp"},
-{"pwgpsi", {NULL}, 3800, "tcp"},
-{"pwgpsi", {NULL}, 3800, "udp"},
-{"ibm-mgr", {NULL}, 3801, "tcp"},
-{"ibm-mgr", {NULL}, 3801, "udp"},
-{"vhd", {NULL}, 3802, "tcp"},
-{"vhd", {NULL}, 3802, "udp"},
-{"soniqsync", {NULL}, 3803, "tcp"},
-{"soniqsync", {NULL}, 3803, "udp"},
-{"iqnet-port", {NULL}, 3804, "tcp"},
-{"iqnet-port", {NULL}, 3804, "udp"},
-{"tcpdataserver", {NULL}, 3805, "tcp"},
-{"tcpdataserver", {NULL}, 3805, "udp"},
-{"wsmlb", {NULL}, 3806, "tcp"},
-{"wsmlb", {NULL}, 3806, "udp"},
-{"spugna", {NULL}, 3807, "tcp"},
-{"spugna", {NULL}, 3807, "udp"},
-{"sun-as-iiops-ca", {NULL}, 3808, "tcp"},
-{"sun-as-iiops-ca", {NULL}, 3808, "udp"},
-{"apocd", {NULL}, 3809, "tcp"},
-{"apocd", {NULL}, 3809, "udp"},
-{"wlanauth", {NULL}, 3810, "tcp"},
-{"wlanauth", {NULL}, 3810, "udp"},
-{"amp", {NULL}, 3811, "tcp"},
-{"amp", {NULL}, 3811, "udp"},
-{"neto-wol-server", {NULL}, 3812, "tcp"},
-{"neto-wol-server", {NULL}, 3812, "udp"},
-{"rap-ip", {NULL}, 3813, "tcp"},
-{"rap-ip", {NULL}, 3813, "udp"},
-{"neto-dcs", {NULL}, 3814, "tcp"},
-{"neto-dcs", {NULL}, 3814, "udp"},
-{"lansurveyorxml", {NULL}, 3815, "tcp"},
-{"lansurveyorxml", {NULL}, 3815, "udp"},
-{"sunlps-http", {NULL}, 3816, "tcp"},
-{"sunlps-http", {NULL}, 3816, "udp"},
-{"tapeware", {NULL}, 3817, "tcp"},
-{"tapeware", {NULL}, 3817, "udp"},
-{"crinis-hb", {NULL}, 3818, "tcp"},
-{"crinis-hb", {NULL}, 3818, "udp"},
-{"epl-slp", {NULL}, 3819, "tcp"},
-{"epl-slp", {NULL}, 3819, "udp"},
-{"scp", {NULL}, 3820, "tcp"},
-{"scp", {NULL}, 3820, "udp"},
-{"pmcp", {NULL}, 3821, "tcp"},
-{"pmcp", {NULL}, 3821, "udp"},
-{"acp-discovery", {NULL}, 3822, "tcp"},
-{"acp-discovery", {NULL}, 3822, "udp"},
-{"acp-conduit", {NULL}, 3823, "tcp"},
-{"acp-conduit", {NULL}, 3823, "udp"},
-{"acp-policy", {NULL}, 3824, "tcp"},
-{"acp-policy", {NULL}, 3824, "udp"},
-{"ffserver", {NULL}, 3825, "tcp"},
-{"ffserver", {NULL}, 3825, "udp"},
-{"wormux", {NULL}, 3826, "tcp"},
-{"wormux", {NULL}, 3826, "udp"},
-{"netmpi", {NULL}, 3827, "tcp"},
-{"netmpi", {NULL}, 3827, "udp"},
-{"neteh", {NULL}, 3828, "tcp"},
-{"neteh", {NULL}, 3828, "udp"},
-{"neteh-ext", {NULL}, 3829, "tcp"},
-{"neteh-ext", {NULL}, 3829, "udp"},
-{"cernsysmgmtagt", {NULL}, 3830, "tcp"},
-{"cernsysmgmtagt", {NULL}, 3830, "udp"},
-{"dvapps", {NULL}, 3831, "tcp"},
-{"dvapps", {NULL}, 3831, "udp"},
-{"xxnetserver", {NULL}, 3832, "tcp"},
-{"xxnetserver", {NULL}, 3832, "udp"},
-{"aipn-auth", {NULL}, 3833, "tcp"},
-{"aipn-auth", {NULL}, 3833, "udp"},
-{"spectardata", {NULL}, 3834, "tcp"},
-{"spectardata", {NULL}, 3834, "udp"},
-{"spectardb", {NULL}, 3835, "tcp"},
-{"spectardb", {NULL}, 3835, "udp"},
-{"markem-dcp", {NULL}, 3836, "tcp"},
-{"markem-dcp", {NULL}, 3836, "udp"},
-{"mkm-discovery", {NULL}, 3837, "tcp"},
-{"mkm-discovery", {NULL}, 3837, "udp"},
-{"sos", {NULL}, 3838, "tcp"},
-{"sos", {NULL}, 3838, "udp"},
-{"amx-rms", {NULL}, 3839, "tcp"},
-{"amx-rms", {NULL}, 3839, "udp"},
-{"flirtmitmir", {NULL}, 3840, "tcp"},
-{"flirtmitmir", {NULL}, 3840, "udp"},
-{"zfirm-shiprush3", {NULL}, 3841, "tcp"},
-{"zfirm-shiprush3", {NULL}, 3841, "udp"},
-{"nhci", {NULL}, 3842, "tcp"},
-{"nhci", {NULL}, 3842, "udp"},
-{"quest-agent", {NULL}, 3843, "tcp"},
-{"quest-agent", {NULL}, 3843, "udp"},
-{"rnm", {NULL}, 3844, "tcp"},
-{"rnm", {NULL}, 3844, "udp"},
-{"v-one-spp", {NULL}, 3845, "tcp"},
-{"v-one-spp", {NULL}, 3845, "udp"},
-{"an-pcp", {NULL}, 3846, "tcp"},
-{"an-pcp", {NULL}, 3846, "udp"},
-{"msfw-control", {NULL}, 3847, "tcp"},
-{"msfw-control", {NULL}, 3847, "udp"},
-{"item", {NULL}, 3848, "tcp"},
-{"item", {NULL}, 3848, "udp"},
-{"spw-dnspreload", {NULL}, 3849, "tcp"},
-{"spw-dnspreload", {NULL}, 3849, "udp"},
-{"qtms-bootstrap", {NULL}, 3850, "tcp"},
-{"qtms-bootstrap", {NULL}, 3850, "udp"},
-{"spectraport", {NULL}, 3851, "tcp"},
-{"spectraport", {NULL}, 3851, "udp"},
-{"sse-app-config", {NULL}, 3852, "tcp"},
-{"sse-app-config", {NULL}, 3852, "udp"},
-{"sscan", {NULL}, 3853, "tcp"},
-{"sscan", {NULL}, 3853, "udp"},
-{"stryker-com", {NULL}, 3854, "tcp"},
-{"stryker-com", {NULL}, 3854, "udp"},
-{"opentrac", {NULL}, 3855, "tcp"},
-{"opentrac", {NULL}, 3855, "udp"},
-{"informer", {NULL}, 3856, "tcp"},
-{"informer", {NULL}, 3856, "udp"},
-{"trap-port", {NULL}, 3857, "tcp"},
-{"trap-port", {NULL}, 3857, "udp"},
-{"trap-port-mom", {NULL}, 3858, "tcp"},
-{"trap-port-mom", {NULL}, 3858, "udp"},
-{"nav-port", {NULL}, 3859, "tcp"},
-{"nav-port", {NULL}, 3859, "udp"},
-{"sasp", {NULL}, 3860, "tcp"},
-{"sasp", {NULL}, 3860, "udp"},
-{"winshadow-hd", {NULL}, 3861, "tcp"},
-{"winshadow-hd", {NULL}, 3861, "udp"},
-{"giga-pocket", {NULL}, 3862, "tcp"},
-{"giga-pocket", {NULL}, 3862, "udp"},
-{"asap-tcp", {NULL}, 3863, "tcp"},
-{"asap-udp", {NULL}, 3863, "udp"},
-{"asap-sctp", {NULL}, 3863, "sctp"},
-{"asap-tcp-tls", {NULL}, 3864, "tcp"},
-{"asap-sctp-tls", {NULL}, 3864, "sctp"},
-{"xpl", {NULL}, 3865, "tcp"},
-{"xpl", {NULL}, 3865, "udp"},
-{"dzdaemon", {NULL}, 3866, "tcp"},
-{"dzdaemon", {NULL}, 3866, "udp"},
-{"dzoglserver", {NULL}, 3867, "tcp"},
-{"dzoglserver", {NULL}, 3867, "udp"},
-{"diameter", {NULL}, 3868, "tcp"},
-{"diameter", {NULL}, 3868, "sctp"},
-{"ovsam-mgmt", {NULL}, 3869, "tcp"},
-{"ovsam-mgmt", {NULL}, 3869, "udp"},
-{"ovsam-d-agent", {NULL}, 3870, "tcp"},
-{"ovsam-d-agent", {NULL}, 3870, "udp"},
-{"avocent-adsap", {NULL}, 3871, "tcp"},
-{"avocent-adsap", {NULL}, 3871, "udp"},
-{"oem-agent", {NULL}, 3872, "tcp"},
-{"oem-agent", {NULL}, 3872, "udp"},
-{"fagordnc", {NULL}, 3873, "tcp"},
-{"fagordnc", {NULL}, 3873, "udp"},
-{"sixxsconfig", {NULL}, 3874, "tcp"},
-{"sixxsconfig", {NULL}, 3874, "udp"},
-{"pnbscada", {NULL}, 3875, "tcp"},
-{"pnbscada", {NULL}, 3875, "udp"},
-{"dl_agent", {NULL}, 3876, "tcp"},
-{"dl_agent", {NULL}, 3876, "udp"},
-{"xmpcr-interface", {NULL}, 3877, "tcp"},
-{"xmpcr-interface", {NULL}, 3877, "udp"},
-{"fotogcad", {NULL}, 3878, "tcp"},
-{"fotogcad", {NULL}, 3878, "udp"},
-{"appss-lm", {NULL}, 3879, "tcp"},
-{"appss-lm", {NULL}, 3879, "udp"},
-{"igrs", {NULL}, 3880, "tcp"},
-{"igrs", {NULL}, 3880, "udp"},
-{"idac", {NULL}, 3881, "tcp"},
-{"idac", {NULL}, 3881, "udp"},
-{"msdts1", {NULL}, 3882, "tcp"},
-{"msdts1", {NULL}, 3882, "udp"},
-{"vrpn", {NULL}, 3883, "tcp"},
-{"vrpn", {NULL}, 3883, "udp"},
-{"softrack-meter", {NULL}, 3884, "tcp"},
-{"softrack-meter", {NULL}, 3884, "udp"},
-{"topflow-ssl", {NULL}, 3885, "tcp"},
-{"topflow-ssl", {NULL}, 3885, "udp"},
-{"nei-management", {NULL}, 3886, "tcp"},
-{"nei-management", {NULL}, 3886, "udp"},
-{"ciphire-data", {NULL}, 3887, "tcp"},
-{"ciphire-data", {NULL}, 3887, "udp"},
-{"ciphire-serv", {NULL}, 3888, "tcp"},
-{"ciphire-serv", {NULL}, 3888, "udp"},
-{"dandv-tester", {NULL}, 3889, "tcp"},
-{"dandv-tester", {NULL}, 3889, "udp"},
-{"ndsconnect", {NULL}, 3890, "tcp"},
-{"ndsconnect", {NULL}, 3890, "udp"},
-{"rtc-pm-port", {NULL}, 3891, "tcp"},
-{"rtc-pm-port", {NULL}, 3891, "udp"},
-{"pcc-image-port", {NULL}, 3892, "tcp"},
-{"pcc-image-port", {NULL}, 3892, "udp"},
-{"cgi-starapi", {NULL}, 3893, "tcp"},
-{"cgi-starapi", {NULL}, 3893, "udp"},
-{"syam-agent", {NULL}, 3894, "tcp"},
-{"syam-agent", {NULL}, 3894, "udp"},
-{"syam-smc", {NULL}, 3895, "tcp"},
-{"syam-smc", {NULL}, 3895, "udp"},
-{"sdo-tls", {NULL}, 3896, "tcp"},
-{"sdo-tls", {NULL}, 3896, "udp"},
-{"sdo-ssh", {NULL}, 3897, "tcp"},
-{"sdo-ssh", {NULL}, 3897, "udp"},
-{"senip", {NULL}, 3898, "tcp"},
-{"senip", {NULL}, 3898, "udp"},
-{"itv-control", {NULL}, 3899, "tcp"},
-{"itv-control", {NULL}, 3899, "udp"},
-{"udt_os", {NULL}, 3900, "tcp"},
-{"udt_os", {NULL}, 3900, "udp"},
-{"nimsh", {NULL}, 3901, "tcp"},
-{"nimsh", {NULL}, 3901, "udp"},
-{"nimaux", {NULL}, 3902, "tcp"},
-{"nimaux", {NULL}, 3902, "udp"},
-{"charsetmgr", {NULL}, 3903, "tcp"},
-{"charsetmgr", {NULL}, 3903, "udp"},
-{"omnilink-port", {NULL}, 3904, "tcp"},
-{"omnilink-port", {NULL}, 3904, "udp"},
-{"mupdate", {NULL}, 3905, "tcp"},
-{"mupdate", {NULL}, 3905, "udp"},
-{"topovista-data", {NULL}, 3906, "tcp"},
-{"topovista-data", {NULL}, 3906, "udp"},
-{"imoguia-port", {NULL}, 3907, "tcp"},
-{"imoguia-port", {NULL}, 3907, "udp"},
-{"hppronetman", {NULL}, 3908, "tcp"},
-{"hppronetman", {NULL}, 3908, "udp"},
-{"surfcontrolcpa", {NULL}, 3909, "tcp"},
-{"surfcontrolcpa", {NULL}, 3909, "udp"},
-{"prnrequest", {NULL}, 3910, "tcp"},
-{"prnrequest", {NULL}, 3910, "udp"},
-{"prnstatus", {NULL}, 3911, "tcp"},
-{"prnstatus", {NULL}, 3911, "udp"},
-{"gbmt-stars", {NULL}, 3912, "tcp"},
-{"gbmt-stars", {NULL}, 3912, "udp"},
-{"listcrt-port", {NULL}, 3913, "tcp"},
-{"listcrt-port", {NULL}, 3913, "udp"},
-{"listcrt-port-2", {NULL}, 3914, "tcp"},
-{"listcrt-port-2", {NULL}, 3914, "udp"},
-{"agcat", {NULL}, 3915, "tcp"},
-{"agcat", {NULL}, 3915, "udp"},
-{"wysdmc", {NULL}, 3916, "tcp"},
-{"wysdmc", {NULL}, 3916, "udp"},
-{"aftmux", {NULL}, 3917, "tcp"},
-{"aftmux", {NULL}, 3917, "udp"},
-{"pktcablemmcops", {NULL}, 3918, "tcp"},
-{"pktcablemmcops", {NULL}, 3918, "udp"},
-{"hyperip", {NULL}, 3919, "tcp"},
-{"hyperip", {NULL}, 3919, "udp"},
-{"exasoftport1", {NULL}, 3920, "tcp"},
-{"exasoftport1", {NULL}, 3920, "udp"},
-{"herodotus-net", {NULL}, 3921, "tcp"},
-{"herodotus-net", {NULL}, 3921, "udp"},
-{"sor-update", {NULL}, 3922, "tcp"},
-{"sor-update", {NULL}, 3922, "udp"},
-{"symb-sb-port", {NULL}, 3923, "tcp"},
-{"symb-sb-port", {NULL}, 3923, "udp"},
-{"mpl-gprs-port", {NULL}, 3924, "tcp"},
-{"mpl-gprs-port", {NULL}, 3924, "udp"},
-{"zmp", {NULL}, 3925, "tcp"},
-{"zmp", {NULL}, 3925, "udp"},
-{"winport", {NULL}, 3926, "tcp"},
-{"winport", {NULL}, 3926, "udp"},
-{"natdataservice", {NULL}, 3927, "tcp"},
-{"natdataservice", {NULL}, 3927, "udp"},
-{"netboot-pxe", {NULL}, 3928, "tcp"},
-{"netboot-pxe", {NULL}, 3928, "udp"},
-{"smauth-port", {NULL}, 3929, "tcp"},
-{"smauth-port", {NULL}, 3929, "udp"},
-{"syam-webserver", {NULL}, 3930, "tcp"},
-{"syam-webserver", {NULL}, 3930, "udp"},
-{"msr-plugin-port", {NULL}, 3931, "tcp"},
-{"msr-plugin-port", {NULL}, 3931, "udp"},
-{"dyn-site", {NULL}, 3932, "tcp"},
-{"dyn-site", {NULL}, 3932, "udp"},
-{"plbserve-port", {NULL}, 3933, "tcp"},
-{"plbserve-port", {NULL}, 3933, "udp"},
-{"sunfm-port", {NULL}, 3934, "tcp"},
-{"sunfm-port", {NULL}, 3934, "udp"},
-{"sdp-portmapper", {NULL}, 3935, "tcp"},
-{"sdp-portmapper", {NULL}, 3935, "udp"},
-{"mailprox", {NULL}, 3936, "tcp"},
-{"mailprox", {NULL}, 3936, "udp"},
-{"dvbservdsc", {NULL}, 3937, "tcp"},
-{"dvbservdsc", {NULL}, 3937, "udp"},
-{"dbcontrol_agent", {NULL}, 3938, "tcp"},
-{"dbcontrol_agent", {NULL}, 3938, "udp"},
-{"aamp", {NULL}, 3939, "tcp"},
-{"aamp", {NULL}, 3939, "udp"},
-{"xecp-node", {NULL}, 3940, "tcp"},
-{"xecp-node", {NULL}, 3940, "udp"},
-{"homeportal-web", {NULL}, 3941, "tcp"},
-{"homeportal-web", {NULL}, 3941, "udp"},
-{"srdp", {NULL}, 3942, "tcp"},
-{"srdp", {NULL}, 3942, "udp"},
-{"tig", {NULL}, 3943, "tcp"},
-{"tig", {NULL}, 3943, "udp"},
-{"sops", {NULL}, 3944, "tcp"},
-{"sops", {NULL}, 3944, "udp"},
-{"emcads", {NULL}, 3945, "tcp"},
-{"emcads", {NULL}, 3945, "udp"},
-{"backupedge", {NULL}, 3946, "tcp"},
-{"backupedge", {NULL}, 3946, "udp"},
-{"ccp", {NULL}, 3947, "tcp"},
-{"ccp", {NULL}, 3947, "udp"},
-{"apdap", {NULL}, 3948, "tcp"},
-{"apdap", {NULL}, 3948, "udp"},
-{"drip", {NULL}, 3949, "tcp"},
-{"drip", {NULL}, 3949, "udp"},
-{"namemunge", {NULL}, 3950, "tcp"},
-{"namemunge", {NULL}, 3950, "udp"},
-{"pwgippfax", {NULL}, 3951, "tcp"},
-{"pwgippfax", {NULL}, 3951, "udp"},
-{"i3-sessionmgr", {NULL}, 3952, "tcp"},
-{"i3-sessionmgr", {NULL}, 3952, "udp"},
-{"xmlink-connect", {NULL}, 3953, "tcp"},
-{"xmlink-connect", {NULL}, 3953, "udp"},
-{"adrep", {NULL}, 3954, "tcp"},
-{"adrep", {NULL}, 3954, "udp"},
-{"p2pcommunity", {NULL}, 3955, "tcp"},
-{"p2pcommunity", {NULL}, 3955, "udp"},
-{"gvcp", {NULL}, 3956, "tcp"},
-{"gvcp", {NULL}, 3956, "udp"},
-{"mqe-broker", {NULL}, 3957, "tcp"},
-{"mqe-broker", {NULL}, 3957, "udp"},
-{"mqe-agent", {NULL}, 3958, "tcp"},
-{"mqe-agent", {NULL}, 3958, "udp"},
-{"treehopper", {NULL}, 3959, "tcp"},
-{"treehopper", {NULL}, 3959, "udp"},
-{"bess", {NULL}, 3960, "tcp"},
-{"bess", {NULL}, 3960, "udp"},
-{"proaxess", {NULL}, 3961, "tcp"},
-{"proaxess", {NULL}, 3961, "udp"},
-{"sbi-agent", {NULL}, 3962, "tcp"},
-{"sbi-agent", {NULL}, 3962, "udp"},
-{"thrp", {NULL}, 3963, "tcp"},
-{"thrp", {NULL}, 3963, "udp"},
-{"sasggprs", {NULL}, 3964, "tcp"},
-{"sasggprs", {NULL}, 3964, "udp"},
-{"ati-ip-to-ncpe", {NULL}, 3965, "tcp"},
-{"ati-ip-to-ncpe", {NULL}, 3965, "udp"},
-{"bflckmgr", {NULL}, 3966, "tcp"},
-{"bflckmgr", {NULL}, 3966, "udp"},
-{"ppsms", {NULL}, 3967, "tcp"},
-{"ppsms", {NULL}, 3967, "udp"},
-{"ianywhere-dbns", {NULL}, 3968, "tcp"},
-{"ianywhere-dbns", {NULL}, 3968, "udp"},
-{"landmarks", {NULL}, 3969, "tcp"},
-{"landmarks", {NULL}, 3969, "udp"},
-{"lanrevagent", {NULL}, 3970, "tcp"},
-{"lanrevagent", {NULL}, 3970, "udp"},
-{"lanrevserver", {NULL}, 3971, "tcp"},
-{"lanrevserver", {NULL}, 3971, "udp"},
-{"iconp", {NULL}, 3972, "tcp"},
-{"iconp", {NULL}, 3972, "udp"},
-{"progistics", {NULL}, 3973, "tcp"},
-{"progistics", {NULL}, 3973, "udp"},
-{"citysearch", {NULL}, 3974, "tcp"},
-{"citysearch", {NULL}, 3974, "udp"},
-{"airshot", {NULL}, 3975, "tcp"},
-{"airshot", {NULL}, 3975, "udp"},
-{"opswagent", {NULL}, 3976, "tcp"},
-{"opswagent", {NULL}, 3976, "udp"},
-{"opswmanager", {NULL}, 3977, "tcp"},
-{"opswmanager", {NULL}, 3977, "udp"},
-{"secure-cfg-svr", {NULL}, 3978, "tcp"},
-{"secure-cfg-svr", {NULL}, 3978, "udp"},
-{"smwan", {NULL}, 3979, "tcp"},
-{"smwan", {NULL}, 3979, "udp"},
-{"acms", {NULL}, 3980, "tcp"},
-{"acms", {NULL}, 3980, "udp"},
-{"starfish", {NULL}, 3981, "tcp"},
-{"starfish", {NULL}, 3981, "udp"},
-{"eis", {NULL}, 3982, "tcp"},
-{"eis", {NULL}, 3982, "udp"},
-{"eisp", {NULL}, 3983, "tcp"},
-{"eisp", {NULL}, 3983, "udp"},
-{"mapper-nodemgr", {NULL}, 3984, "tcp"},
-{"mapper-nodemgr", {NULL}, 3984, "udp"},
-{"mapper-mapethd", {NULL}, 3985, "tcp"},
-{"mapper-mapethd", {NULL}, 3985, "udp"},
-{"mapper-ws_ethd", {NULL}, 3986, "tcp"},
-{"mapper-ws_ethd", {NULL}, 3986, "udp"},
-{"centerline", {NULL}, 3987, "tcp"},
-{"centerline", {NULL}, 3987, "udp"},
-{"dcs-config", {NULL}, 3988, "tcp"},
-{"dcs-config", {NULL}, 3988, "udp"},
-{"bv-queryengine", {NULL}, 3989, "tcp"},
-{"bv-queryengine", {NULL}, 3989, "udp"},
-{"bv-is", {NULL}, 3990, "tcp"},
-{"bv-is", {NULL}, 3990, "udp"},
-{"bv-smcsrv", {NULL}, 3991, "tcp"},
-{"bv-smcsrv", {NULL}, 3991, "udp"},
-{"bv-ds", {NULL}, 3992, "tcp"},
-{"bv-ds", {NULL}, 3992, "udp"},
-{"bv-agent", {NULL}, 3993, "tcp"},
-{"bv-agent", {NULL}, 3993, "udp"},
-{"iss-mgmt-ssl", {NULL}, 3995, "tcp"},
-{"iss-mgmt-ssl", {NULL}, 3995, "udp"},
-{"abcsoftware", {NULL}, 3996, "tcp"},
-{"abcsoftware", {NULL}, 3996, "udp"},
-{"agentsease-db", {NULL}, 3997, "tcp"},
-{"agentsease-db", {NULL}, 3997, "udp"},
-{"dnx", {NULL}, 3998, "tcp"},
-{"dnx", {NULL}, 3998, "udp"},
-{"nvcnet", {NULL}, 3999, "tcp"},
-{"nvcnet", {NULL}, 3999, "udp"},
-{"terabase", {NULL}, 4000, "tcp"},
-{"terabase", {NULL}, 4000, "udp"},
-{"newoak", {NULL}, 4001, "tcp"},
-{"newoak", {NULL}, 4001, "udp"},
-{"pxc-spvr-ft", {NULL}, 4002, "tcp"},
-{"pxc-spvr-ft", {NULL}, 4002, "udp"},
-{"pxc-splr-ft", {NULL}, 4003, "tcp"},
-{"pxc-splr-ft", {NULL}, 4003, "udp"},
-{"pxc-roid", {NULL}, 4004, "tcp"},
-{"pxc-roid", {NULL}, 4004, "udp"},
-{"pxc-pin", {NULL}, 4005, "tcp"},
-{"pxc-pin", {NULL}, 4005, "udp"},
-{"pxc-spvr", {NULL}, 4006, "tcp"},
-{"pxc-spvr", {NULL}, 4006, "udp"},
-{"pxc-splr", {NULL}, 4007, "tcp"},
-{"pxc-splr", {NULL}, 4007, "udp"},
-{"netcheque", {NULL}, 4008, "tcp"},
-{"netcheque", {NULL}, 4008, "udp"},
-{"chimera-hwm", {NULL}, 4009, "tcp"},
-{"chimera-hwm", {NULL}, 4009, "udp"},
-{"samsung-unidex", {NULL}, 4010, "tcp"},
-{"samsung-unidex", {NULL}, 4010, "udp"},
-{"altserviceboot", {NULL}, 4011, "tcp"},
-{"altserviceboot", {NULL}, 4011, "udp"},
-{"pda-gate", {NULL}, 4012, "tcp"},
-{"pda-gate", {NULL}, 4012, "udp"},
-{"acl-manager", {NULL}, 4013, "tcp"},
-{"acl-manager", {NULL}, 4013, "udp"},
-{"taiclock", {NULL}, 4014, "tcp"},
-{"taiclock", {NULL}, 4014, "udp"},
-{"talarian-mcast1", {NULL}, 4015, "tcp"},
-{"talarian-mcast1", {NULL}, 4015, "udp"},
-{"talarian-mcast2", {NULL}, 4016, "tcp"},
-{"talarian-mcast2", {NULL}, 4016, "udp"},
-{"talarian-mcast3", {NULL}, 4017, "tcp"},
-{"talarian-mcast3", {NULL}, 4017, "udp"},
-{"talarian-mcast4", {NULL}, 4018, "tcp"},
-{"talarian-mcast4", {NULL}, 4018, "udp"},
-{"talarian-mcast5", {NULL}, 4019, "tcp"},
-{"talarian-mcast5", {NULL}, 4019, "udp"},
-{"trap", {NULL}, 4020, "tcp"},
-{"trap", {NULL}, 4020, "udp"},
-{"nexus-portal", {NULL}, 4021, "tcp"},
-{"nexus-portal", {NULL}, 4021, "udp"},
-{"dnox", {NULL}, 4022, "tcp"},
-{"dnox", {NULL}, 4022, "udp"},
-{"esnm-zoning", {NULL}, 4023, "tcp"},
-{"esnm-zoning", {NULL}, 4023, "udp"},
-{"tnp1-port", {NULL}, 4024, "tcp"},
-{"tnp1-port", {NULL}, 4024, "udp"},
-{"partimage", {NULL}, 4025, "tcp"},
-{"partimage", {NULL}, 4025, "udp"},
-{"as-debug", {NULL}, 4026, "tcp"},
-{"as-debug", {NULL}, 4026, "udp"},
-{"bxp", {NULL}, 4027, "tcp"},
-{"bxp", {NULL}, 4027, "udp"},
-{"dtserver-port", {NULL}, 4028, "tcp"},
-{"dtserver-port", {NULL}, 4028, "udp"},
-{"ip-qsig", {NULL}, 4029, "tcp"},
-{"ip-qsig", {NULL}, 4029, "udp"},
-{"jdmn-port", {NULL}, 4030, "tcp"},
-{"jdmn-port", {NULL}, 4030, "udp"},
-{"suucp", {NULL}, 4031, "tcp"},
-{"suucp", {NULL}, 4031, "udp"},
-{"vrts-auth-port", {NULL}, 4032, "tcp"},
-{"vrts-auth-port", {NULL}, 4032, "udp"},
-{"sanavigator", {NULL}, 4033, "tcp"},
-{"sanavigator", {NULL}, 4033, "udp"},
-{"ubxd", {NULL}, 4034, "tcp"},
-{"ubxd", {NULL}, 4034, "udp"},
-{"wap-push-http", {NULL}, 4035, "tcp"},
-{"wap-push-http", {NULL}, 4035, "udp"},
-{"wap-push-https", {NULL}, 4036, "tcp"},
-{"wap-push-https", {NULL}, 4036, "udp"},
-{"ravehd", {NULL}, 4037, "tcp"},
-{"ravehd", {NULL}, 4037, "udp"},
-{"fazzt-ptp", {NULL}, 4038, "tcp"},
-{"fazzt-ptp", {NULL}, 4038, "udp"},
-{"fazzt-admin", {NULL}, 4039, "tcp"},
-{"fazzt-admin", {NULL}, 4039, "udp"},
-{"yo-main", {NULL}, 4040, "tcp"},
-{"yo-main", {NULL}, 4040, "udp"},
-{"houston", {NULL}, 4041, "tcp"},
-{"houston", {NULL}, 4041, "udp"},
-{"ldxp", {NULL}, 4042, "tcp"},
-{"ldxp", {NULL}, 4042, "udp"},
-{"nirp", {NULL}, 4043, "tcp"},
-{"nirp", {NULL}, 4043, "udp"},
-{"ltp", {NULL}, 4044, "tcp"},
-{"ltp", {NULL}, 4044, "udp"},
-{"npp", {NULL}, 4045, "tcp"},
-{"npp", {NULL}, 4045, "udp"},
-{"acp-proto", {NULL}, 4046, "tcp"},
-{"acp-proto", {NULL}, 4046, "udp"},
-{"ctp-state", {NULL}, 4047, "tcp"},
-{"ctp-state", {NULL}, 4047, "udp"},
-{"wafs", {NULL}, 4049, "tcp"},
-{"wafs", {NULL}, 4049, "udp"},
-{"cisco-wafs", {NULL}, 4050, "tcp"},
-{"cisco-wafs", {NULL}, 4050, "udp"},
-{"cppdp", {NULL}, 4051, "tcp"},
-{"cppdp", {NULL}, 4051, "udp"},
-{"interact", {NULL}, 4052, "tcp"},
-{"interact", {NULL}, 4052, "udp"},
-{"ccu-comm-1", {NULL}, 4053, "tcp"},
-{"ccu-comm-1", {NULL}, 4053, "udp"},
-{"ccu-comm-2", {NULL}, 4054, "tcp"},
-{"ccu-comm-2", {NULL}, 4054, "udp"},
-{"ccu-comm-3", {NULL}, 4055, "tcp"},
-{"ccu-comm-3", {NULL}, 4055, "udp"},
-{"lms", {NULL}, 4056, "tcp"},
-{"lms", {NULL}, 4056, "udp"},
-{"wfm", {NULL}, 4057, "tcp"},
-{"wfm", {NULL}, 4057, "udp"},
-{"kingfisher", {NULL}, 4058, "tcp"},
-{"kingfisher", {NULL}, 4058, "udp"},
-{"dlms-cosem", {NULL}, 4059, "tcp"},
-{"dlms-cosem", {NULL}, 4059, "udp"},
-{"dsmeter_iatc", {NULL}, 4060, "tcp"},
-{"dsmeter_iatc", {NULL}, 4060, "udp"},
-{"ice-location", {NULL}, 4061, "tcp"},
-{"ice-location", {NULL}, 4061, "udp"},
-{"ice-slocation", {NULL}, 4062, "tcp"},
-{"ice-slocation", {NULL}, 4062, "udp"},
-{"ice-router", {NULL}, 4063, "tcp"},
-{"ice-router", {NULL}, 4063, "udp"},
-{"ice-srouter", {NULL}, 4064, "tcp"},
-{"ice-srouter", {NULL}, 4064, "udp"},
-{"avanti_cdp", {NULL}, 4065, "tcp"},
-{"avanti_cdp", {NULL}, 4065, "udp"},
-{"pmas", {NULL}, 4066, "tcp"},
-{"pmas", {NULL}, 4066, "udp"},
-{"idp", {NULL}, 4067, "tcp"},
-{"idp", {NULL}, 4067, "udp"},
-{"ipfltbcst", {NULL}, 4068, "tcp"},
-{"ipfltbcst", {NULL}, 4068, "udp"},
-{"minger", {NULL}, 4069, "tcp"},
-{"minger", {NULL}, 4069, "udp"},
-{"tripe", {NULL}, 4070, "tcp"},
-{"tripe", {NULL}, 4070, "udp"},
-{"aibkup", {NULL}, 4071, "tcp"},
-{"aibkup", {NULL}, 4071, "udp"},
-{"zieto-sock", {NULL}, 4072, "tcp"},
-{"zieto-sock", {NULL}, 4072, "udp"},
-{"iRAPP", {NULL}, 4073, "tcp"},
-{"iRAPP", {NULL}, 4073, "udp"},
-{"cequint-cityid", {NULL}, 4074, "tcp"},
-{"cequint-cityid", {NULL}, 4074, "udp"},
-{"perimlan", {NULL}, 4075, "tcp"},
-{"perimlan", {NULL}, 4075, "udp"},
-{"seraph", {NULL}, 4076, "tcp"},
-{"seraph", {NULL}, 4076, "udp"},
-{"ascomalarm", {NULL}, 4077, "udp"},
-{"cssp", {NULL}, 4078, "tcp"},
-{"santools", {NULL}, 4079, "tcp"},
-{"santools", {NULL}, 4079, "udp"},
-{"lorica-in", {NULL}, 4080, "tcp"},
-{"lorica-in", {NULL}, 4080, "udp"},
-{"lorica-in-sec", {NULL}, 4081, "tcp"},
-{"lorica-in-sec", {NULL}, 4081, "udp"},
-{"lorica-out", {NULL}, 4082, "tcp"},
-{"lorica-out", {NULL}, 4082, "udp"},
-{"lorica-out-sec", {NULL}, 4083, "tcp"},
-{"lorica-out-sec", {NULL}, 4083, "udp"},
-{"fortisphere-vm", {NULL}, 4084, "udp"},
-{"ezmessagesrv", {NULL}, 4085, "tcp"},
-{"ftsync", {NULL}, 4086, "udp"},
-{"applusservice", {NULL}, 4087, "tcp"},
-{"npsp", {NULL}, 4088, "tcp"},
-{"opencore", {NULL}, 4089, "tcp"},
-{"opencore", {NULL}, 4089, "udp"},
-{"omasgport", {NULL}, 4090, "tcp"},
-{"omasgport", {NULL}, 4090, "udp"},
-{"ewinstaller", {NULL}, 4091, "tcp"},
-{"ewinstaller", {NULL}, 4091, "udp"},
-{"ewdgs", {NULL}, 4092, "tcp"},
-{"ewdgs", {NULL}, 4092, "udp"},
-{"pvxpluscs", {NULL}, 4093, "tcp"},
-{"pvxpluscs", {NULL}, 4093, "udp"},
-{"sysrqd", {NULL}, 4094, "tcp"},
-{"sysrqd", {NULL}, 4094, "udp"},
-{"xtgui", {NULL}, 4095, "tcp"},
-{"xtgui", {NULL}, 4095, "udp"},
-{"bre", {NULL}, 4096, "tcp"},
-{"bre", {NULL}, 4096, "udp"},
-{"patrolview", {NULL}, 4097, "tcp"},
-{"patrolview", {NULL}, 4097, "udp"},
-{"drmsfsd", {NULL}, 4098, "tcp"},
-{"drmsfsd", {NULL}, 4098, "udp"},
-{"dpcp", {NULL}, 4099, "tcp"},
-{"dpcp", {NULL}, 4099, "udp"},
-{"igo-incognito", {NULL}, 4100, "tcp"},
-{"igo-incognito", {NULL}, 4100, "udp"},
-{"brlp-0", {NULL}, 4101, "tcp"},
-{"brlp-0", {NULL}, 4101, "udp"},
-{"brlp-1", {NULL}, 4102, "tcp"},
-{"brlp-1", {NULL}, 4102, "udp"},
-{"brlp-2", {NULL}, 4103, "tcp"},
-{"brlp-2", {NULL}, 4103, "udp"},
-{"brlp-3", {NULL}, 4104, "tcp"},
-{"brlp-3", {NULL}, 4104, "udp"},
-{"shofarplayer", {NULL}, 4105, "tcp"},
-{"shofarplayer", {NULL}, 4105, "udp"},
-{"synchronite", {NULL}, 4106, "tcp"},
-{"synchronite", {NULL}, 4106, "udp"},
-{"j-ac", {NULL}, 4107, "tcp"},
-{"j-ac", {NULL}, 4107, "udp"},
-{"accel", {NULL}, 4108, "tcp"},
-{"accel", {NULL}, 4108, "udp"},
-{"izm", {NULL}, 4109, "tcp"},
-{"izm", {NULL}, 4109, "udp"},
-{"g2tag", {NULL}, 4110, "tcp"},
-{"g2tag", {NULL}, 4110, "udp"},
-{"xgrid", {NULL}, 4111, "tcp"},
-{"xgrid", {NULL}, 4111, "udp"},
-{"apple-vpns-rp", {NULL}, 4112, "tcp"},
-{"apple-vpns-rp", {NULL}, 4112, "udp"},
-{"aipn-reg", {NULL}, 4113, "tcp"},
-{"aipn-reg", {NULL}, 4113, "udp"},
-{"jomamqmonitor", {NULL}, 4114, "tcp"},
-{"jomamqmonitor", {NULL}, 4114, "udp"},
-{"cds", {NULL}, 4115, "tcp"},
-{"cds", {NULL}, 4115, "udp"},
-{"smartcard-tls", {NULL}, 4116, "tcp"},
-{"smartcard-tls", {NULL}, 4116, "udp"},
-{"hillrserv", {NULL}, 4117, "tcp"},
-{"hillrserv", {NULL}, 4117, "udp"},
-{"netscript", {NULL}, 4118, "tcp"},
-{"netscript", {NULL}, 4118, "udp"},
-{"assuria-slm", {NULL}, 4119, "tcp"},
-{"assuria-slm", {NULL}, 4119, "udp"},
-{"e-builder", {NULL}, 4121, "tcp"},
-{"e-builder", {NULL}, 4121, "udp"},
-{"fprams", {NULL}, 4122, "tcp"},
-{"fprams", {NULL}, 4122, "udp"},
-{"z-wave", {NULL}, 4123, "tcp"},
-{"z-wave", {NULL}, 4123, "udp"},
-{"tigv2", {NULL}, 4124, "tcp"},
-{"tigv2", {NULL}, 4124, "udp"},
-{"opsview-envoy", {NULL}, 4125, "tcp"},
-{"opsview-envoy", {NULL}, 4125, "udp"},
-{"ddrepl", {NULL}, 4126, "tcp"},
-{"ddrepl", {NULL}, 4126, "udp"},
-{"unikeypro", {NULL}, 4127, "tcp"},
-{"unikeypro", {NULL}, 4127, "udp"},
-{"nufw", {NULL}, 4128, "tcp"},
-{"nufw", {NULL}, 4128, "udp"},
-{"nuauth", {NULL}, 4129, "tcp"},
-{"nuauth", {NULL}, 4129, "udp"},
-{"fronet", {NULL}, 4130, "tcp"},
-{"fronet", {NULL}, 4130, "udp"},
-{"stars", {NULL}, 4131, "tcp"},
-{"stars", {NULL}, 4131, "udp"},
-{"nuts_dem", {NULL}, 4132, "tcp"},
-{"nuts_dem", {NULL}, 4132, "udp"},
-{"nuts_bootp", {NULL}, 4133, "tcp"},
-{"nuts_bootp", {NULL}, 4133, "udp"},
-{"nifty-hmi", {NULL}, 4134, "tcp"},
-{"nifty-hmi", {NULL}, 4134, "udp"},
-{"cl-db-attach", {NULL}, 4135, "tcp"},
-{"cl-db-attach", {NULL}, 4135, "udp"},
-{"cl-db-request", {NULL}, 4136, "tcp"},
-{"cl-db-request", {NULL}, 4136, "udp"},
-{"cl-db-remote", {NULL}, 4137, "tcp"},
-{"cl-db-remote", {NULL}, 4137, "udp"},
-{"nettest", {NULL}, 4138, "tcp"},
-{"nettest", {NULL}, 4138, "udp"},
-{"thrtx", {NULL}, 4139, "tcp"},
-{"thrtx", {NULL}, 4139, "udp"},
-{"cedros_fds", {NULL}, 4140, "tcp"},
-{"cedros_fds", {NULL}, 4140, "udp"},
-{"oirtgsvc", {NULL}, 4141, "tcp"},
-{"oirtgsvc", {NULL}, 4141, "udp"},
-{"oidocsvc", {NULL}, 4142, "tcp"},
-{"oidocsvc", {NULL}, 4142, "udp"},
-{"oidsr", {NULL}, 4143, "tcp"},
-{"oidsr", {NULL}, 4143, "udp"},
-{"vvr-control", {NULL}, 4145, "tcp"},
-{"vvr-control", {NULL}, 4145, "udp"},
-{"tgcconnect", {NULL}, 4146, "tcp"},
-{"tgcconnect", {NULL}, 4146, "udp"},
-{"vrxpservman", {NULL}, 4147, "tcp"},
-{"vrxpservman", {NULL}, 4147, "udp"},
-{"hhb-handheld", {NULL}, 4148, "tcp"},
-{"hhb-handheld", {NULL}, 4148, "udp"},
-{"agslb", {NULL}, 4149, "tcp"},
-{"agslb", {NULL}, 4149, "udp"},
-{"PowerAlert-nsa", {NULL}, 4150, "tcp"},
-{"PowerAlert-nsa", {NULL}, 4150, "udp"},
-{"menandmice_noh", {NULL}, 4151, "tcp"},
-{"menandmice_noh", {NULL}, 4151, "udp"},
-{"idig_mux", {NULL}, 4152, "tcp"},
-{"idig_mux", {NULL}, 4152, "udp"},
-{"mbl-battd", {NULL}, 4153, "tcp"},
-{"mbl-battd", {NULL}, 4153, "udp"},
-{"atlinks", {NULL}, 4154, "tcp"},
-{"atlinks", {NULL}, 4154, "udp"},
-{"bzr", {NULL}, 4155, "tcp"},
-{"bzr", {NULL}, 4155, "udp"},
-{"stat-results", {NULL}, 4156, "tcp"},
-{"stat-results", {NULL}, 4156, "udp"},
-{"stat-scanner", {NULL}, 4157, "tcp"},
-{"stat-scanner", {NULL}, 4157, "udp"},
-{"stat-cc", {NULL}, 4158, "tcp"},
-{"stat-cc", {NULL}, 4158, "udp"},
-{"nss", {NULL}, 4159, "tcp"},
-{"nss", {NULL}, 4159, "udp"},
-{"jini-discovery", {NULL}, 4160, "tcp"},
-{"jini-discovery", {NULL}, 4160, "udp"},
-{"omscontact", {NULL}, 4161, "tcp"},
-{"omscontact", {NULL}, 4161, "udp"},
-{"omstopology", {NULL}, 4162, "tcp"},
-{"omstopology", {NULL}, 4162, "udp"},
-{"silverpeakpeer", {NULL}, 4163, "tcp"},
-{"silverpeakpeer", {NULL}, 4163, "udp"},
-{"silverpeakcomm", {NULL}, 4164, "tcp"},
-{"silverpeakcomm", {NULL}, 4164, "udp"},
-{"altcp", {NULL}, 4165, "tcp"},
-{"altcp", {NULL}, 4165, "udp"},
-{"joost", {NULL}, 4166, "tcp"},
-{"joost", {NULL}, 4166, "udp"},
-{"ddgn", {NULL}, 4167, "tcp"},
-{"ddgn", {NULL}, 4167, "udp"},
-{"pslicser", {NULL}, 4168, "tcp"},
-{"pslicser", {NULL}, 4168, "udp"},
-{"iadt", {NULL}, 4169, "tcp"},
-{"iadt-disc", {NULL}, 4169, "udp"},
-{"d-cinema-csp", {NULL}, 4170, "tcp"},
-{"ml-svnet", {NULL}, 4171, "tcp"},
-{"pcoip", {NULL}, 4172, "tcp"},
-{"pcoip", {NULL}, 4172, "udp"},
-{"smcluster", {NULL}, 4174, "tcp"},
-{"bccp", {NULL}, 4175, "tcp"},
-{"tl-ipcproxy", {NULL}, 4176, "tcp"},
-{"wello", {NULL}, 4177, "tcp"},
-{"wello", {NULL}, 4177, "udp"},
-{"storman", {NULL}, 4178, "tcp"},
-{"storman", {NULL}, 4178, "udp"},
-{"MaxumSP", {NULL}, 4179, "tcp"},
-{"MaxumSP", {NULL}, 4179, "udp"},
-{"httpx", {NULL}, 4180, "tcp"},
-{"httpx", {NULL}, 4180, "udp"},
-{"macbak", {NULL}, 4181, "tcp"},
-{"macbak", {NULL}, 4181, "udp"},
-{"pcptcpservice", {NULL}, 4182, "tcp"},
-{"pcptcpservice", {NULL}, 4182, "udp"},
-{"gmmp", {NULL}, 4183, "tcp"},
-{"gmmp", {NULL}, 4183, "udp"},
-{"universe_suite", {NULL}, 4184, "tcp"},
-{"universe_suite", {NULL}, 4184, "udp"},
-{"wcpp", {NULL}, 4185, "tcp"},
-{"wcpp", {NULL}, 4185, "udp"},
-{"boxbackupstore", {NULL}, 4186, "tcp"},
-{"csc_proxy", {NULL}, 4187, "tcp"},
-{"vatata", {NULL}, 4188, "tcp"},
-{"vatata", {NULL}, 4188, "udp"},
-{"pcep", {NULL}, 4189, "tcp"},
-{"sieve", {NULL}, 4190, "tcp"},
-{"dsmipv6", {NULL}, 4191, "udp"},
-{"azeti", {NULL}, 4192, "tcp"},
-{"azeti-bd", {NULL}, 4192, "udp"},
-{"pvxplusio", {NULL}, 4193, "tcp"},
-{"eims-admin", {NULL}, 4199, "tcp"},
-{"eims-admin", {NULL}, 4199, "udp"},
-{"corelccam", {NULL}, 4300, "tcp"},
-{"corelccam", {NULL}, 4300, "udp"},
-{"d-data", {NULL}, 4301, "tcp"},
-{"d-data", {NULL}, 4301, "udp"},
-{"d-data-control", {NULL}, 4302, "tcp"},
-{"d-data-control", {NULL}, 4302, "udp"},
-{"srcp", {NULL}, 4303, "tcp"},
-{"srcp", {NULL}, 4303, "udp"},
-{"owserver", {NULL}, 4304, "tcp"},
-{"owserver", {NULL}, 4304, "udp"},
-{"batman", {NULL}, 4305, "tcp"},
-{"batman", {NULL}, 4305, "udp"},
-{"pinghgl", {NULL}, 4306, "tcp"},
-{"pinghgl", {NULL}, 4306, "udp"},
-{"visicron-vs", {NULL}, 4307, "tcp"},
-{"visicron-vs", {NULL}, 4307, "udp"},
-{"compx-lockview", {NULL}, 4308, "tcp"},
-{"compx-lockview", {NULL}, 4308, "udp"},
-{"dserver", {NULL}, 4309, "tcp"},
-{"dserver", {NULL}, 4309, "udp"},
-{"mirrtex", {NULL}, 4310, "tcp"},
-{"mirrtex", {NULL}, 4310, "udp"},
-{"p6ssmc", {NULL}, 4311, "tcp"},
-{"pscl-mgt", {NULL}, 4312, "tcp"},
-{"perrla", {NULL}, 4313, "tcp"},
-{"fdt-rcatp", {NULL}, 4320, "tcp"},
-{"fdt-rcatp", {NULL}, 4320, "udp"},
-{"rwhois", {NULL}, 4321, "tcp"},
-{"rwhois", {NULL}, 4321, "udp"},
-{"trim-event", {NULL}, 4322, "tcp"},
-{"trim-event", {NULL}, 4322, "udp"},
-{"trim-ice", {NULL}, 4323, "tcp"},
-{"trim-ice", {NULL}, 4323, "udp"},
-{"balour", {NULL}, 4324, "tcp"},
-{"balour", {NULL}, 4324, "udp"},
-{"geognosisman", {NULL}, 4325, "tcp"},
-{"geognosisman", {NULL}, 4325, "udp"},
-{"geognosis", {NULL}, 4326, "tcp"},
-{"geognosis", {NULL}, 4326, "udp"},
-{"jaxer-web", {NULL}, 4327, "tcp"},
-{"jaxer-web", {NULL}, 4327, "udp"},
-{"jaxer-manager", {NULL}, 4328, "tcp"},
-{"jaxer-manager", {NULL}, 4328, "udp"},
-{"publiqare-sync", {NULL}, 4329, "tcp"},
-{"gaia", {NULL}, 4340, "tcp"},
-{"gaia", {NULL}, 4340, "udp"},
-{"lisp-data", {NULL}, 4341, "tcp"},
-{"lisp-data", {NULL}, 4341, "udp"},
-{"lisp-cons", {NULL}, 4342, "tcp"},
-{"lisp-control", {NULL}, 4342, "udp"},
-{"unicall", {NULL}, 4343, "tcp"},
-{"unicall", {NULL}, 4343, "udp"},
-{"vinainstall", {NULL}, 4344, "tcp"},
-{"vinainstall", {NULL}, 4344, "udp"},
-{"m4-network-as", {NULL}, 4345, "tcp"},
-{"m4-network-as", {NULL}, 4345, "udp"},
-{"elanlm", {NULL}, 4346, "tcp"},
-{"elanlm", {NULL}, 4346, "udp"},
-{"lansurveyor", {NULL}, 4347, "tcp"},
-{"lansurveyor", {NULL}, 4347, "udp"},
-{"itose", {NULL}, 4348, "tcp"},
-{"itose", {NULL}, 4348, "udp"},
-{"fsportmap", {NULL}, 4349, "tcp"},
-{"fsportmap", {NULL}, 4349, "udp"},
-{"net-device", {NULL}, 4350, "tcp"},
-{"net-device", {NULL}, 4350, "udp"},
-{"plcy-net-svcs", {NULL}, 4351, "tcp"},
-{"plcy-net-svcs", {NULL}, 4351, "udp"},
-{"pjlink", {NULL}, 4352, "tcp"},
-{"pjlink", {NULL}, 4352, "udp"},
-{"f5-iquery", {NULL}, 4353, "tcp"},
-{"f5-iquery", {NULL}, 4353, "udp"},
-{"qsnet-trans", {NULL}, 4354, "tcp"},
-{"qsnet-trans", {NULL}, 4354, "udp"},
-{"qsnet-workst", {NULL}, 4355, "tcp"},
-{"qsnet-workst", {NULL}, 4355, "udp"},
-{"qsnet-assist", {NULL}, 4356, "tcp"},
-{"qsnet-assist", {NULL}, 4356, "udp"},
-{"qsnet-cond", {NULL}, 4357, "tcp"},
-{"qsnet-cond", {NULL}, 4357, "udp"},
-{"qsnet-nucl", {NULL}, 4358, "tcp"},
-{"qsnet-nucl", {NULL}, 4358, "udp"},
-{"omabcastltkm", {NULL}, 4359, "tcp"},
-{"omabcastltkm", {NULL}, 4359, "udp"},
-{"matrix_vnet", {NULL}, 4360, "tcp"},
-{"nacnl", {NULL}, 4361, "udp"},
-{"afore-vdp-disc", {NULL}, 4362, "udp"},
-{"wxbrief", {NULL}, 4368, "tcp"},
-{"wxbrief", {NULL}, 4368, "udp"},
-{"epmd", {NULL}, 4369, "tcp"},
-{"epmd", {NULL}, 4369, "udp"},
-{"elpro_tunnel", {NULL}, 4370, "tcp"},
-{"elpro_tunnel", {NULL}, 4370, "udp"},
-{"l2c-control", {NULL}, 4371, "tcp"},
-{"l2c-disc", {NULL}, 4371, "udp"},
-{"l2c-data", {NULL}, 4372, "tcp"},
-{"l2c-data", {NULL}, 4372, "udp"},
-{"remctl", {NULL}, 4373, "tcp"},
-{"remctl", {NULL}, 4373, "udp"},
-{"psi-ptt", {NULL}, 4374, "tcp"},
-{"tolteces", {NULL}, 4375, "tcp"},
-{"tolteces", {NULL}, 4375, "udp"},
-{"bip", {NULL}, 4376, "tcp"},
-{"bip", {NULL}, 4376, "udp"},
-{"cp-spxsvr", {NULL}, 4377, "tcp"},
-{"cp-spxsvr", {NULL}, 4377, "udp"},
-{"cp-spxdpy", {NULL}, 4378, "tcp"},
-{"cp-spxdpy", {NULL}, 4378, "udp"},
-{"ctdb", {NULL}, 4379, "tcp"},
-{"ctdb", {NULL}, 4379, "udp"},
-{"xandros-cms", {NULL}, 4389, "tcp"},
-{"xandros-cms", {NULL}, 4389, "udp"},
-{"wiegand", {NULL}, 4390, "tcp"},
-{"wiegand", {NULL}, 4390, "udp"},
-{"apwi-imserver", {NULL}, 4391, "tcp"},
-{"apwi-rxserver", {NULL}, 4392, "tcp"},
-{"apwi-rxspooler", {NULL}, 4393, "tcp"},
-{"apwi-disc", {NULL}, 4394, "udp"},
-{"omnivisionesx", {NULL}, 4395, "tcp"},
-{"omnivisionesx", {NULL}, 4395, "udp"},
-{"fly", {NULL}, 4396, "tcp"},
-{"ds-srv", {NULL}, 4400, "tcp"},
-{"ds-srv", {NULL}, 4400, "udp"},
-{"ds-srvr", {NULL}, 4401, "tcp"},
-{"ds-srvr", {NULL}, 4401, "udp"},
-{"ds-clnt", {NULL}, 4402, "tcp"},
-{"ds-clnt", {NULL}, 4402, "udp"},
-{"ds-user", {NULL}, 4403, "tcp"},
-{"ds-user", {NULL}, 4403, "udp"},
-{"ds-admin", {NULL}, 4404, "tcp"},
-{"ds-admin", {NULL}, 4404, "udp"},
-{"ds-mail", {NULL}, 4405, "tcp"},
-{"ds-mail", {NULL}, 4405, "udp"},
-{"ds-slp", {NULL}, 4406, "tcp"},
-{"ds-slp", {NULL}, 4406, "udp"},
-{"nacagent", {NULL}, 4407, "tcp"},
-{"slscc", {NULL}, 4408, "tcp"},
-{"netcabinet-com", {NULL}, 4409, "tcp"},
-{"itwo-server", {NULL}, 4410, "tcp"},
-{"netrockey6", {NULL}, 4425, "tcp"},
-{"netrockey6", {NULL}, 4425, "udp"},
-{"beacon-port-2", {NULL}, 4426, "tcp"},
-{"beacon-port-2", {NULL}, 4426, "udp"},
-{"drizzle", {NULL}, 4427, "tcp"},
-{"omviserver", {NULL}, 4428, "tcp"},
-{"omviagent", {NULL}, 4429, "tcp"},
-{"rsqlserver", {NULL}, 4430, "tcp"},
-{"rsqlserver", {NULL}, 4430, "udp"},
-{"wspipe", {NULL}, 4431, "tcp"},
-{"netblox", {NULL}, 4441, "udp"},
-{"saris", {NULL}, 4442, "tcp"},
-{"saris", {NULL}, 4442, "udp"},
-{"pharos", {NULL}, 4443, "tcp"},
-{"pharos", {NULL}, 4443, "udp"},
-{"krb524", {NULL}, 4444, "tcp"},
-{"krb524", {NULL}, 4444, "udp"},
-{"nv-video", {NULL}, 4444, "tcp"},
-{"nv-video", {NULL}, 4444, "udp"},
-{"upnotifyp", {NULL}, 4445, "tcp"},
-{"upnotifyp", {NULL}, 4445, "udp"},
-{"n1-fwp", {NULL}, 4446, "tcp"},
-{"n1-fwp", {NULL}, 4446, "udp"},
-{"n1-rmgmt", {NULL}, 4447, "tcp"},
-{"n1-rmgmt", {NULL}, 4447, "udp"},
-{"asc-slmd", {NULL}, 4448, "tcp"},
-{"asc-slmd", {NULL}, 4448, "udp"},
-{"privatewire", {NULL}, 4449, "tcp"},
-{"privatewire", {NULL}, 4449, "udp"},
-{"camp", {NULL}, 4450, "tcp"},
-{"camp", {NULL}, 4450, "udp"},
-{"ctisystemmsg", {NULL}, 4451, "tcp"},
-{"ctisystemmsg", {NULL}, 4451, "udp"},
-{"ctiprogramload", {NULL}, 4452, "tcp"},
-{"ctiprogramload", {NULL}, 4452, "udp"},
-{"nssalertmgr", {NULL}, 4453, "tcp"},
-{"nssalertmgr", {NULL}, 4453, "udp"},
-{"nssagentmgr", {NULL}, 4454, "tcp"},
-{"nssagentmgr", {NULL}, 4454, "udp"},
-{"prchat-user", {NULL}, 4455, "tcp"},
-{"prchat-user", {NULL}, 4455, "udp"},
-{"prchat-server", {NULL}, 4456, "tcp"},
-{"prchat-server", {NULL}, 4456, "udp"},
-{"prRegister", {NULL}, 4457, "tcp"},
-{"prRegister", {NULL}, 4457, "udp"},
-{"mcp", {NULL}, 4458, "tcp"},
-{"mcp", {NULL}, 4458, "udp"},
-{"hpssmgmt", {NULL}, 4484, "tcp"},
-{"hpssmgmt", {NULL}, 4484, "udp"},
-{"assyst-dr", {NULL}, 4485, "tcp"},
-{"icms", {NULL}, 4486, "tcp"},
-{"icms", {NULL}, 4486, "udp"},
-{"prex-tcp", {NULL}, 4487, "tcp"},
-{"awacs-ice", {NULL}, 4488, "tcp"},
-{"awacs-ice", {NULL}, 4488, "udp"},
-{"ipsec-nat-t", {NULL}, 4500, "tcp"},
-{"ipsec-nat-t", {NULL}, 4500, "udp"},
-{"ehs", {NULL}, 4535, "tcp"},
-{"ehs", {NULL}, 4535, "udp"},
-{"ehs-ssl", {NULL}, 4536, "tcp"},
-{"ehs-ssl", {NULL}, 4536, "udp"},
-{"wssauthsvc", {NULL}, 4537, "tcp"},
-{"wssauthsvc", {NULL}, 4537, "udp"},
-{"swx-gate", {NULL}, 4538, "tcp"},
-{"swx-gate", {NULL}, 4538, "udp"},
-{"worldscores", {NULL}, 4545, "tcp"},
-{"worldscores", {NULL}, 4545, "udp"},
-{"sf-lm", {NULL}, 4546, "tcp"},
-{"sf-lm", {NULL}, 4546, "udp"},
-{"lanner-lm", {NULL}, 4547, "tcp"},
-{"lanner-lm", {NULL}, 4547, "udp"},
-{"synchromesh", {NULL}, 4548, "tcp"},
-{"synchromesh", {NULL}, 4548, "udp"},
-{"aegate", {NULL}, 4549, "tcp"},
-{"aegate", {NULL}, 4549, "udp"},
-{"gds-adppiw-db", {NULL}, 4550, "tcp"},
-{"gds-adppiw-db", {NULL}, 4550, "udp"},
-{"ieee-mih", {NULL}, 4551, "tcp"},
-{"ieee-mih", {NULL}, 4551, "udp"},
-{"menandmice-mon", {NULL}, 4552, "tcp"},
-{"menandmice-mon", {NULL}, 4552, "udp"},
-{"icshostsvc", {NULL}, 4553, "tcp"},
-{"msfrs", {NULL}, 4554, "tcp"},
-{"msfrs", {NULL}, 4554, "udp"},
-{"rsip", {NULL}, 4555, "tcp"},
-{"rsip", {NULL}, 4555, "udp"},
-{"dtn-bundle-tcp", {NULL}, 4556, "tcp"},
-{"dtn-bundle-udp", {NULL}, 4556, "udp"},
-{"mtcevrunqss", {NULL}, 4557, "udp"},
-{"mtcevrunqman", {NULL}, 4558, "udp"},
-{"hylafax", {NULL}, 4559, "tcp"},
-{"hylafax", {NULL}, 4559, "udp"},
-{"kwtc", {NULL}, 4566, "tcp"},
-{"kwtc", {NULL}, 4566, "udp"},
-{"tram", {NULL}, 4567, "tcp"},
-{"tram", {NULL}, 4567, "udp"},
-{"bmc-reporting", {NULL}, 4568, "tcp"},
-{"bmc-reporting", {NULL}, 4568, "udp"},
-{"iax", {NULL}, 4569, "tcp"},
-{"iax", {NULL}, 4569, "udp"},
-{"rid", {NULL}, 4590, "tcp"},
-{"l3t-at-an", {NULL}, 4591, "tcp"},
-{"l3t-at-an", {NULL}, 4591, "udp"},
-{"hrpd-ith-at-an", {NULL}, 4592, "udp"},
-{"ipt-anri-anri", {NULL}, 4593, "tcp"},
-{"ipt-anri-anri", {NULL}, 4593, "udp"},
-{"ias-session", {NULL}, 4594, "tcp"},
-{"ias-session", {NULL}, 4594, "udp"},
-{"ias-paging", {NULL}, 4595, "tcp"},
-{"ias-paging", {NULL}, 4595, "udp"},
-{"ias-neighbor", {NULL}, 4596, "tcp"},
-{"ias-neighbor", {NULL}, 4596, "udp"},
-{"a21-an-1xbs", {NULL}, 4597, "tcp"},
-{"a21-an-1xbs", {NULL}, 4597, "udp"},
-{"a16-an-an", {NULL}, 4598, "tcp"},
-{"a16-an-an", {NULL}, 4598, "udp"},
-{"a17-an-an", {NULL}, 4599, "tcp"},
-{"a17-an-an", {NULL}, 4599, "udp"},
-{"piranha1", {NULL}, 4600, "tcp"},
-{"piranha1", {NULL}, 4600, "udp"},
-{"piranha2", {NULL}, 4601, "tcp"},
-{"piranha2", {NULL}, 4601, "udp"},
-{"mtsserver", {NULL}, 4602, "tcp"},
-{"menandmice-upg", {NULL}, 4603, "tcp"},
-{"playsta2-app", {NULL}, 4658, "tcp"},
-{"playsta2-app", {NULL}, 4658, "udp"},
-{"playsta2-lob", {NULL}, 4659, "tcp"},
-{"playsta2-lob", {NULL}, 4659, "udp"},
-{"smaclmgr", {NULL}, 4660, "tcp"},
-{"smaclmgr", {NULL}, 4660, "udp"},
-{"kar2ouche", {NULL}, 4661, "tcp"},
-{"kar2ouche", {NULL}, 4661, "udp"},
-{"oms", {NULL}, 4662, "tcp"},
-{"oms", {NULL}, 4662, "udp"},
-{"noteit", {NULL}, 4663, "tcp"},
-{"noteit", {NULL}, 4663, "udp"},
-{"ems", {NULL}, 4664, "tcp"},
-{"ems", {NULL}, 4664, "udp"},
-{"contclientms", {NULL}, 4665, "tcp"},
-{"contclientms", {NULL}, 4665, "udp"},
-{"eportcomm", {NULL}, 4666, "tcp"},
-{"eportcomm", {NULL}, 4666, "udp"},
-{"mmacomm", {NULL}, 4667, "tcp"},
-{"mmacomm", {NULL}, 4667, "udp"},
-{"mmaeds", {NULL}, 4668, "tcp"},
-{"mmaeds", {NULL}, 4668, "udp"},
-{"eportcommdata", {NULL}, 4669, "tcp"},
-{"eportcommdata", {NULL}, 4669, "udp"},
-{"light", {NULL}, 4670, "tcp"},
-{"light", {NULL}, 4670, "udp"},
-{"acter", {NULL}, 4671, "tcp"},
-{"acter", {NULL}, 4671, "udp"},
-{"rfa", {NULL}, 4672, "tcp"},
-{"rfa", {NULL}, 4672, "udp"},
-{"cxws", {NULL}, 4673, "tcp"},
-{"cxws", {NULL}, 4673, "udp"},
-{"appiq-mgmt", {NULL}, 4674, "tcp"},
-{"appiq-mgmt", {NULL}, 4674, "udp"},
-{"dhct-status", {NULL}, 4675, "tcp"},
-{"dhct-status", {NULL}, 4675, "udp"},
-{"dhct-alerts", {NULL}, 4676, "tcp"},
-{"dhct-alerts", {NULL}, 4676, "udp"},
-{"bcs", {NULL}, 4677, "tcp"},
-{"bcs", {NULL}, 4677, "udp"},
-{"traversal", {NULL}, 4678, "tcp"},
-{"traversal", {NULL}, 4678, "udp"},
-{"mgesupervision", {NULL}, 4679, "tcp"},
-{"mgesupervision", {NULL}, 4679, "udp"},
-{"mgemanagement", {NULL}, 4680, "tcp"},
-{"mgemanagement", {NULL}, 4680, "udp"},
-{"parliant", {NULL}, 4681, "tcp"},
-{"parliant", {NULL}, 4681, "udp"},
-{"finisar", {NULL}, 4682, "tcp"},
-{"finisar", {NULL}, 4682, "udp"},
-{"spike", {NULL}, 4683, "tcp"},
-{"spike", {NULL}, 4683, "udp"},
-{"rfid-rp1", {NULL}, 4684, "tcp"},
-{"rfid-rp1", {NULL}, 4684, "udp"},
-{"autopac", {NULL}, 4685, "tcp"},
-{"autopac", {NULL}, 4685, "udp"},
-{"msp-os", {NULL}, 4686, "tcp"},
-{"msp-os", {NULL}, 4686, "udp"},
-{"nst", {NULL}, 4687, "tcp"},
-{"nst", {NULL}, 4687, "udp"},
-{"mobile-p2p", {NULL}, 4688, "tcp"},
-{"mobile-p2p", {NULL}, 4688, "udp"},
-{"altovacentral", {NULL}, 4689, "tcp"},
-{"altovacentral", {NULL}, 4689, "udp"},
-{"prelude", {NULL}, 4690, "tcp"},
-{"prelude", {NULL}, 4690, "udp"},
-{"mtn", {NULL}, 4691, "tcp"},
-{"mtn", {NULL}, 4691, "udp"},
-{"conspiracy", {NULL}, 4692, "tcp"},
-{"conspiracy", {NULL}, 4692, "udp"},
-{"netxms-agent", {NULL}, 4700, "tcp"},
-{"netxms-agent", {NULL}, 4700, "udp"},
-{"netxms-mgmt", {NULL}, 4701, "tcp"},
-{"netxms-mgmt", {NULL}, 4701, "udp"},
-{"netxms-sync", {NULL}, 4702, "tcp"},
-{"netxms-sync", {NULL}, 4702, "udp"},
-{"npqes-test", {NULL}, 4703, "tcp"},
-{"assuria-ins", {NULL}, 4704, "tcp"},
-{"truckstar", {NULL}, 4725, "tcp"},
-{"truckstar", {NULL}, 4725, "udp"},
-{"a26-fap-fgw", {NULL}, 4726, "udp"},
-{"fcis", {NULL}, 4727, "tcp"},
-{"fcis-disc", {NULL}, 4727, "udp"},
-{"capmux", {NULL}, 4728, "tcp"},
-{"capmux", {NULL}, 4728, "udp"},
-{"gsmtap", {NULL}, 4729, "udp"},
-{"gearman", {NULL}, 4730, "tcp"},
-{"gearman", {NULL}, 4730, "udp"},
-{"remcap", {NULL}, 4731, "tcp"},
-{"ohmtrigger", {NULL}, 4732, "udp"},
-{"resorcs", {NULL}, 4733, "tcp"},
-{"ipdr-sp", {NULL}, 4737, "tcp"},
-{"ipdr-sp", {NULL}, 4737, "udp"},
-{"solera-lpn", {NULL}, 4738, "tcp"},
-{"solera-lpn", {NULL}, 4738, "udp"},
-{"ipfix", {NULL}, 4739, "tcp"},
-{"ipfix", {NULL}, 4739, "udp"},
-{"ipfix", {NULL}, 4739, "sctp"},
-{"ipfixs", {NULL}, 4740, "tcp"},
-{"ipfixs", {NULL}, 4740, "sctp"},
-{"ipfixs", {NULL}, 4740, "udp"},
-{"lumimgrd", {NULL}, 4741, "tcp"},
-{"lumimgrd", {NULL}, 4741, "udp"},
-{"sicct", {NULL}, 4742, "tcp"},
-{"sicct-sdp", {NULL}, 4742, "udp"},
-{"openhpid", {NULL}, 4743, "tcp"},
-{"openhpid", {NULL}, 4743, "udp"},
-{"ifsp", {NULL}, 4744, "tcp"},
-{"ifsp", {NULL}, 4744, "udp"},
-{"fmp", {NULL}, 4745, "tcp"},
-{"fmp", {NULL}, 4745, "udp"},
-{"profilemac", {NULL}, 4749, "tcp"},
-{"profilemac", {NULL}, 4749, "udp"},
-{"ssad", {NULL}, 4750, "tcp"},
-{"ssad", {NULL}, 4750, "udp"},
-{"spocp", {NULL}, 4751, "tcp"},
-{"spocp", {NULL}, 4751, "udp"},
-{"snap", {NULL}, 4752, "tcp"},
-{"snap", {NULL}, 4752, "udp"},
-{"bfd-multi-ctl", {NULL}, 4784, "tcp"},
-{"bfd-multi-ctl", {NULL}, 4784, "udp"},
-{"cncp", {NULL}, 4785, "udp"},
-{"smart-install", {NULL}, 4786, "tcp"},
-{"sia-ctrl-plane", {NULL}, 4787, "tcp"},
-{"iims", {NULL}, 4800, "tcp"},
-{"iims", {NULL}, 4800, "udp"},
-{"iwec", {NULL}, 4801, "tcp"},
-{"iwec", {NULL}, 4801, "udp"},
-{"ilss", {NULL}, 4802, "tcp"},
-{"ilss", {NULL}, 4802, "udp"},
-{"notateit", {NULL}, 4803, "tcp"},
-{"notateit-disc", {NULL}, 4803, "udp"},
-{"aja-ntv4-disc", {NULL}, 4804, "udp"},
-{"htcp", {NULL}, 4827, "tcp"},
-{"htcp", {NULL}, 4827, "udp"},
-{"varadero-0", {NULL}, 4837, "tcp"},
-{"varadero-0", {NULL}, 4837, "udp"},
-{"varadero-1", {NULL}, 4838, "tcp"},
-{"varadero-1", {NULL}, 4838, "udp"},
-{"varadero-2", {NULL}, 4839, "tcp"},
-{"varadero-2", {NULL}, 4839, "udp"},
-{"opcua-tcp", {NULL}, 4840, "tcp"},
-{"opcua-udp", {NULL}, 4840, "udp"},
-{"quosa", {NULL}, 4841, "tcp"},
-{"quosa", {NULL}, 4841, "udp"},
-{"gw-asv", {NULL}, 4842, "tcp"},
-{"gw-asv", {NULL}, 4842, "udp"},
-{"opcua-tls", {NULL}, 4843, "tcp"},
-{"opcua-tls", {NULL}, 4843, "udp"},
-{"gw-log", {NULL}, 4844, "tcp"},
-{"gw-log", {NULL}, 4844, "udp"},
-{"wcr-remlib", {NULL}, 4845, "tcp"},
-{"wcr-remlib", {NULL}, 4845, "udp"},
-{"contamac_icm", {NULL}, 4846, "tcp"},
-{"contamac_icm", {NULL}, 4846, "udp"},
-{"wfc", {NULL}, 4847, "tcp"},
-{"wfc", {NULL}, 4847, "udp"},
-{"appserv-http", {NULL}, 4848, "tcp"},
-{"appserv-http", {NULL}, 4848, "udp"},
-{"appserv-https", {NULL}, 4849, "tcp"},
-{"appserv-https", {NULL}, 4849, "udp"},
-{"sun-as-nodeagt", {NULL}, 4850, "tcp"},
-{"sun-as-nodeagt", {NULL}, 4850, "udp"},
-{"derby-repli", {NULL}, 4851, "tcp"},
-{"derby-repli", {NULL}, 4851, "udp"},
-{"unify-debug", {NULL}, 4867, "tcp"},
-{"unify-debug", {NULL}, 4867, "udp"},
-{"phrelay", {NULL}, 4868, "tcp"},
-{"phrelay", {NULL}, 4868, "udp"},
-{"phrelaydbg", {NULL}, 4869, "tcp"},
-{"phrelaydbg", {NULL}, 4869, "udp"},
-{"cc-tracking", {NULL}, 4870, "tcp"},
-{"cc-tracking", {NULL}, 4870, "udp"},
-{"wired", {NULL}, 4871, "tcp"},
-{"wired", {NULL}, 4871, "udp"},
-{"tritium-can", {NULL}, 4876, "tcp"},
-{"tritium-can", {NULL}, 4876, "udp"},
-{"lmcs", {NULL}, 4877, "tcp"},
-{"lmcs", {NULL}, 4877, "udp"},
-{"inst-discovery", {NULL}, 4878, "udp"},
-{"wsdl-event", {NULL}, 4879, "tcp"},
-{"hislip", {NULL}, 4880, "tcp"},
-{"socp-t", {NULL}, 4881, "udp"},
-{"socp-c", {NULL}, 4882, "udp"},
-{"wmlserver", {NULL}, 4883, "tcp"},
-{"hivestor", {NULL}, 4884, "tcp"},
-{"hivestor", {NULL}, 4884, "udp"},
-{"abbs", {NULL}, 4885, "tcp"},
-{"abbs", {NULL}, 4885, "udp"},
-{"lyskom", {NULL}, 4894, "tcp"},
-{"lyskom", {NULL}, 4894, "udp"},
-{"radmin-port", {NULL}, 4899, "tcp"},
-{"radmin-port", {NULL}, 4899, "udp"},
-{"hfcs", {NULL}, 4900, "tcp"},
-{"hfcs", {NULL}, 4900, "udp"},
-{"flr_agent", {NULL}, 4901, "tcp"},
-{"magiccontrol", {NULL}, 4902, "tcp"},
-{"lutap", {NULL}, 4912, "tcp"},
-{"lutcp", {NULL}, 4913, "tcp"},
-{"bones", {NULL}, 4914, "tcp"},
-{"bones", {NULL}, 4914, "udp"},
-{"frcs", {NULL}, 4915, "tcp"},
-{"atsc-mh-ssc", {NULL}, 4937, "udp"},
-{"eq-office-4940", {NULL}, 4940, "tcp"},
-{"eq-office-4940", {NULL}, 4940, "udp"},
-{"eq-office-4941", {NULL}, 4941, "tcp"},
-{"eq-office-4941", {NULL}, 4941, "udp"},
-{"eq-office-4942", {NULL}, 4942, "tcp"},
-{"eq-office-4942", {NULL}, 4942, "udp"},
-{"munin", {NULL}, 4949, "tcp"},
-{"munin", {NULL}, 4949, "udp"},
-{"sybasesrvmon", {NULL}, 4950, "tcp"},
-{"sybasesrvmon", {NULL}, 4950, "udp"},
-{"pwgwims", {NULL}, 4951, "tcp"},
-{"pwgwims", {NULL}, 4951, "udp"},
-{"sagxtsds", {NULL}, 4952, "tcp"},
-{"sagxtsds", {NULL}, 4952, "udp"},
-{"dbsyncarbiter", {NULL}, 4953, "tcp"},
-{"ccss-qmm", {NULL}, 4969, "tcp"},
-{"ccss-qmm", {NULL}, 4969, "udp"},
-{"ccss-qsm", {NULL}, 4970, "tcp"},
-{"ccss-qsm", {NULL}, 4970, "udp"},
-{"webyast", {NULL}, 4984, "tcp"},
-{"gerhcs", {NULL}, 4985, "tcp"},
-{"mrip", {NULL}, 4986, "tcp"},
-{"mrip", {NULL}, 4986, "udp"},
-{"smar-se-port1", {NULL}, 4987, "tcp"},
-{"smar-se-port1", {NULL}, 4987, "udp"},
-{"smar-se-port2", {NULL}, 4988, "tcp"},
-{"smar-se-port2", {NULL}, 4988, "udp"},
-{"parallel", {NULL}, 4989, "tcp"},
-{"parallel", {NULL}, 4989, "udp"},
-{"busycal", {NULL}, 4990, "tcp"},
-{"busycal", {NULL}, 4990, "udp"},
-{"vrt", {NULL}, 4991, "tcp"},
-{"vrt", {NULL}, 4991, "udp"},
-{"hfcs-manager", {NULL}, 4999, "tcp"},
-{"hfcs-manager", {NULL}, 4999, "udp"},
-{"commplex-main", {NULL}, 5000, "tcp"},
-{"commplex-main", {NULL}, 5000, "udp"},
-{"commplex-link", {NULL}, 5001, "tcp"},
-{"commplex-link", {NULL}, 5001, "udp"},
-{"rfe", {NULL}, 5002, "tcp"},
-{"rfe", {NULL}, 5002, "udp"},
-{"fmpro-internal", {NULL}, 5003, "tcp"},
-{"fmpro-internal", {NULL}, 5003, "udp"},
-{"avt-profile-1", {NULL}, 5004, "tcp"},
-{"avt-profile-1", {NULL}, 5004, "udp"},
-{"avt-profile-1", {NULL}, 5004, "dccp"},
-{"avt-profile-2", {NULL}, 5005, "tcp"},
-{"avt-profile-2", {NULL}, 5005, "udp"},
-{"avt-profile-2", {NULL}, 5005, "dccp"},
-{"wsm-server", {NULL}, 5006, "tcp"},
-{"wsm-server", {NULL}, 5006, "udp"},
-{"wsm-server-ssl", {NULL}, 5007, "tcp"},
-{"wsm-server-ssl", {NULL}, 5007, "udp"},
-{"synapsis-edge", {NULL}, 5008, "tcp"},
-{"synapsis-edge", {NULL}, 5008, "udp"},
-{"winfs", {NULL}, 5009, "tcp"},
-{"winfs", {NULL}, 5009, "udp"},
-{"telelpathstart", {NULL}, 5010, "tcp"},
-{"telelpathstart", {NULL}, 5010, "udp"},
-{"telelpathattack", {NULL}, 5011, "tcp"},
-{"telelpathattack", {NULL}, 5011, "udp"},
-{"nsp", {NULL}, 5012, "tcp"},
-{"nsp", {NULL}, 5012, "udp"},
-{"fmpro-v6", {NULL}, 5013, "tcp"},
-{"fmpro-v6", {NULL}, 5013, "udp"},
-{"onpsocket", {NULL}, 5014, "udp"},
-{"fmwp", {NULL}, 5015, "tcp"},
-{"zenginkyo-1", {NULL}, 5020, "tcp"},
-{"zenginkyo-1", {NULL}, 5020, "udp"},
-{"zenginkyo-2", {NULL}, 5021, "tcp"},
-{"zenginkyo-2", {NULL}, 5021, "udp"},
-{"mice", {NULL}, 5022, "tcp"},
-{"mice", {NULL}, 5022, "udp"},
-{"htuilsrv", {NULL}, 5023, "tcp"},
-{"htuilsrv", {NULL}, 5023, "udp"},
-{"scpi-telnet", {NULL}, 5024, "tcp"},
-{"scpi-telnet", {NULL}, 5024, "udp"},
-{"scpi-raw", {NULL}, 5025, "tcp"},
-{"scpi-raw", {NULL}, 5025, "udp"},
-{"strexec-d", {NULL}, 5026, "tcp"},
-{"strexec-d", {NULL}, 5026, "udp"},
-{"strexec-s", {NULL}, 5027, "tcp"},
-{"strexec-s", {NULL}, 5027, "udp"},
-{"qvr", {NULL}, 5028, "tcp"},
-{"infobright", {NULL}, 5029, "tcp"},
-{"infobright", {NULL}, 5029, "udp"},
-{"surfpass", {NULL}, 5030, "tcp"},
-{"surfpass", {NULL}, 5030, "udp"},
-{"dmp", {NULL}, 5031, "udp"},
-{"asnaacceler8db", {NULL}, 5042, "tcp"},
-{"asnaacceler8db", {NULL}, 5042, "udp"},
-{"swxadmin", {NULL}, 5043, "tcp"},
-{"swxadmin", {NULL}, 5043, "udp"},
-{"lxi-evntsvc", {NULL}, 5044, "tcp"},
-{"lxi-evntsvc", {NULL}, 5044, "udp"},
-{"osp", {NULL}, 5045, "tcp"},
-{"vpm-udp", {NULL}, 5046, "udp"},
-{"iscape", {NULL}, 5047, "udp"},
-{"texai", {NULL}, 5048, "tcp"},
-{"ivocalize", {NULL}, 5049, "tcp"},
-{"ivocalize", {NULL}, 5049, "udp"},
-{"mmcc", {NULL}, 5050, "tcp"},
-{"mmcc", {NULL}, 5050, "udp"},
-{"ita-agent", {NULL}, 5051, "tcp"},
-{"ita-agent", {NULL}, 5051, "udp"},
-{"ita-manager", {NULL}, 5052, "tcp"},
-{"ita-manager", {NULL}, 5052, "udp"},
-{"rlm", {NULL}, 5053, "tcp"},
-{"rlm-admin", {NULL}, 5054, "tcp"},
-{"unot", {NULL}, 5055, "tcp"},
-{"unot", {NULL}, 5055, "udp"},
-{"intecom-ps1", {NULL}, 5056, "tcp"},
-{"intecom-ps1", {NULL}, 5056, "udp"},
-{"intecom-ps2", {NULL}, 5057, "tcp"},
-{"intecom-ps2", {NULL}, 5057, "udp"},
-{"locus-disc", {NULL}, 5058, "udp"},
-{"sds", {NULL}, 5059, "tcp"},
-{"sds", {NULL}, 5059, "udp"},
-{"sip", {NULL}, 5060, "tcp"},
-{"sip", {NULL}, 5060, "udp"},
-{"sip-tls", {NULL}, 5061, "tcp"},
-{"sip-tls", {NULL}, 5061, "udp"},
-{"na-localise", {NULL}, 5062, "tcp"},
-{"na-localise", {NULL}, 5062, "udp"},
-{"csrpc", {NULL}, 5063, "tcp"},
-{"ca-1", {NULL}, 5064, "tcp"},
-{"ca-1", {NULL}, 5064, "udp"},
-{"ca-2", {NULL}, 5065, "tcp"},
-{"ca-2", {NULL}, 5065, "udp"},
-{"stanag-5066", {NULL}, 5066, "tcp"},
-{"stanag-5066", {NULL}, 5066, "udp"},
-{"authentx", {NULL}, 5067, "tcp"},
-{"authentx", {NULL}, 5067, "udp"},
-{"bitforestsrv", {NULL}, 5068, "tcp"},
-{"i-net-2000-npr", {NULL}, 5069, "tcp"},
-{"i-net-2000-npr", {NULL}, 5069, "udp"},
-{"vtsas", {NULL}, 5070, "tcp"},
-{"vtsas", {NULL}, 5070, "udp"},
-{"powerschool", {NULL}, 5071, "tcp"},
-{"powerschool", {NULL}, 5071, "udp"},
-{"ayiya", {NULL}, 5072, "tcp"},
-{"ayiya", {NULL}, 5072, "udp"},
-{"tag-pm", {NULL}, 5073, "tcp"},
-{"tag-pm", {NULL}, 5073, "udp"},
-{"alesquery", {NULL}, 5074, "tcp"},
-{"alesquery", {NULL}, 5074, "udp"},
-{"cp-spxrpts", {NULL}, 5079, "udp"},
-{"onscreen", {NULL}, 5080, "tcp"},
-{"onscreen", {NULL}, 5080, "udp"},
-{"sdl-ets", {NULL}, 5081, "tcp"},
-{"sdl-ets", {NULL}, 5081, "udp"},
-{"qcp", {NULL}, 5082, "tcp"},
-{"qcp", {NULL}, 5082, "udp"},
-{"qfp", {NULL}, 5083, "tcp"},
-{"qfp", {NULL}, 5083, "udp"},
-{"llrp", {NULL}, 5084, "tcp"},
-{"llrp", {NULL}, 5084, "udp"},
-{"encrypted-llrp", {NULL}, 5085, "tcp"},
-{"encrypted-llrp", {NULL}, 5085, "udp"},
-{"aprigo-cs", {NULL}, 5086, "tcp"},
-{"car", {NULL}, 5090, "sctp"},
-{"cxtp", {NULL}, 5091, "sctp"},
-{"magpie", {NULL}, 5092, "udp"},
-{"sentinel-lm", {NULL}, 5093, "tcp"},
-{"sentinel-lm", {NULL}, 5093, "udp"},
-{"hart-ip", {NULL}, 5094, "tcp"},
-{"hart-ip", {NULL}, 5094, "udp"},
-{"sentlm-srv2srv", {NULL}, 5099, "tcp"},
-{"sentlm-srv2srv", {NULL}, 5099, "udp"},
-{"socalia", {NULL}, 5100, "tcp"},
-{"socalia", {NULL}, 5100, "udp"},
-{"talarian-tcp", {NULL}, 5101, "tcp"},
-{"talarian-udp", {NULL}, 5101, "udp"},
-{"oms-nonsecure", {NULL}, 5102, "tcp"},
-{"oms-nonsecure", {NULL}, 5102, "udp"},
-{"actifio-c2c", {NULL}, 5103, "tcp"},
-{"tinymessage", {NULL}, 5104, "udp"},
-{"hughes-ap", {NULL}, 5105, "udp"},
-{"taep-as-svc", {NULL}, 5111, "tcp"},
-{"taep-as-svc", {NULL}, 5111, "udp"},
-{"pm-cmdsvr", {NULL}, 5112, "tcp"},
-{"pm-cmdsvr", {NULL}, 5112, "udp"},
-{"ev-services", {NULL}, 5114, "tcp"},
-{"autobuild", {NULL}, 5115, "tcp"},
-{"emb-proj-cmd", {NULL}, 5116, "udp"},
-{"gradecam", {NULL}, 5117, "tcp"},
-{"nbt-pc", {NULL}, 5133, "tcp"},
-{"nbt-pc", {NULL}, 5133, "udp"},
-{"ppactivation", {NULL}, 5134, "tcp"},
-{"erp-scale", {NULL}, 5135, "tcp"},
-{"minotaur-sa", {NULL}, 5136, "udp"},
-{"ctsd", {NULL}, 5137, "tcp"},
-{"ctsd", {NULL}, 5137, "udp"},
-{"rmonitor_secure", {NULL}, 5145, "tcp"},
-{"rmonitor_secure", {NULL}, 5145, "udp"},
-{"social-alarm", {NULL}, 5146, "tcp"},
-{"atmp", {NULL}, 5150, "tcp"},
-{"atmp", {NULL}, 5150, "udp"},
-{"esri_sde", {NULL}, 5151, "tcp"},
-{"esri_sde", {NULL}, 5151, "udp"},
-{"sde-discovery", {NULL}, 5152, "tcp"},
-{"sde-discovery", {NULL}, 5152, "udp"},
-{"toruxserver", {NULL}, 5153, "tcp"},
-{"bzflag", {NULL}, 5154, "tcp"},
-{"bzflag", {NULL}, 5154, "udp"},
-{"asctrl-agent", {NULL}, 5155, "tcp"},
-{"asctrl-agent", {NULL}, 5155, "udp"},
-{"rugameonline", {NULL}, 5156, "tcp"},
-{"mediat", {NULL}, 5157, "tcp"},
-{"snmpssh", {NULL}, 5161, "tcp"},
-{"snmpssh-trap", {NULL}, 5162, "tcp"},
-{"sbackup", {NULL}, 5163, "tcp"},
-{"vpa", {NULL}, 5164, "tcp"},
-{"vpa-disc", {NULL}, 5164, "udp"},
-{"ife_icorp", {NULL}, 5165, "tcp"},
-{"ife_icorp", {NULL}, 5165, "udp"},
-{"winpcs", {NULL}, 5166, "tcp"},
-{"winpcs", {NULL}, 5166, "udp"},
-{"scte104", {NULL}, 5167, "tcp"},
-{"scte104", {NULL}, 5167, "udp"},
-{"scte30", {NULL}, 5168, "tcp"},
-{"scte30", {NULL}, 5168, "udp"},
-{"aol", {NULL}, 5190, "tcp"},
-{"aol", {NULL}, 5190, "udp"},
-{"aol-1", {NULL}, 5191, "tcp"},
-{"aol-1", {NULL}, 5191, "udp"},
-{"aol-2", {NULL}, 5192, "tcp"},
-{"aol-2", {NULL}, 5192, "udp"},
-{"aol-3", {NULL}, 5193, "tcp"},
-{"aol-3", {NULL}, 5193, "udp"},
-{"cpscomm", {NULL}, 5194, "tcp"},
-{"targus-getdata", {NULL}, 5200, "tcp"},
-{"targus-getdata", {NULL}, 5200, "udp"},
-{"targus-getdata1", {NULL}, 5201, "tcp"},
-{"targus-getdata1", {NULL}, 5201, "udp"},
-{"targus-getdata2", {NULL}, 5202, "tcp"},
-{"targus-getdata2", {NULL}, 5202, "udp"},
-{"targus-getdata3", {NULL}, 5203, "tcp"},
-{"targus-getdata3", {NULL}, 5203, "udp"},
-{"3exmp", {NULL}, 5221, "tcp"},
-{"xmpp-client", {NULL}, 5222, "tcp"},
-{"hpvirtgrp", {NULL}, 5223, "tcp"},
-{"hpvirtgrp", {NULL}, 5223, "udp"},
-{"hpvirtctrl", {NULL}, 5224, "tcp"},
-{"hpvirtctrl", {NULL}, 5224, "udp"},
-{"hp-server", {NULL}, 5225, "tcp"},
-{"hp-server", {NULL}, 5225, "udp"},
-{"hp-status", {NULL}, 5226, "tcp"},
-{"hp-status", {NULL}, 5226, "udp"},
-{"perfd", {NULL}, 5227, "tcp"},
-{"perfd", {NULL}, 5227, "udp"},
-{"hpvroom", {NULL}, 5228, "tcp"},
-{"csedaemon", {NULL}, 5232, "tcp"},
-{"enfs", {NULL}, 5233, "tcp"},
-{"eenet", {NULL}, 5234, "tcp"},
-{"eenet", {NULL}, 5234, "udp"},
-{"galaxy-network", {NULL}, 5235, "tcp"},
-{"galaxy-network", {NULL}, 5235, "udp"},
-{"padl2sim", {NULL}, 5236, "tcp"},
-{"padl2sim", {NULL}, 5236, "udp"},
-{"mnet-discovery", {NULL}, 5237, "tcp"},
-{"mnet-discovery", {NULL}, 5237, "udp"},
-{"downtools", {NULL}, 5245, "tcp"},
-{"downtools-disc", {NULL}, 5245, "udp"},
-{"capwap-control", {NULL}, 5246, "udp"},
-{"capwap-data", {NULL}, 5247, "udp"},
-{"caacws", {NULL}, 5248, "tcp"},
-{"caacws", {NULL}, 5248, "udp"},
-{"caaclang2", {NULL}, 5249, "tcp"},
-{"caaclang2", {NULL}, 5249, "udp"},
-{"soagateway", {NULL}, 5250, "tcp"},
-{"soagateway", {NULL}, 5250, "udp"},
-{"caevms", {NULL}, 5251, "tcp"},
-{"caevms", {NULL}, 5251, "udp"},
-{"movaz-ssc", {NULL}, 5252, "tcp"},
-{"movaz-ssc", {NULL}, 5252, "udp"},
-{"kpdp", {NULL}, 5253, "tcp"},
-{"3com-njack-1", {NULL}, 5264, "tcp"},
-{"3com-njack-1", {NULL}, 5264, "udp"},
-{"3com-njack-2", {NULL}, 5265, "tcp"},
-{"3com-njack-2", {NULL}, 5265, "udp"},
-{"xmpp-server", {NULL}, 5269, "tcp"},
-{"xmp", {NULL}, 5270, "tcp"},
-{"xmp", {NULL}, 5270, "udp"},
-{"cuelink", {NULL}, 5271, "tcp"},
-{"cuelink-disc", {NULL}, 5271, "udp"},
-{"pk", {NULL}, 5272, "tcp"},
-{"pk", {NULL}, 5272, "udp"},
-{"xmpp-bosh", {NULL}, 5280, "tcp"},
-{"undo-lm", {NULL}, 5281, "tcp"},
-{"transmit-port", {NULL}, 5282, "tcp"},
-{"transmit-port", {NULL}, 5282, "udp"},
-{"presence", {NULL}, 5298, "tcp"},
-{"presence", {NULL}, 5298, "udp"},
-{"nlg-data", {NULL}, 5299, "tcp"},
-{"nlg-data", {NULL}, 5299, "udp"},
-{"hacl-hb", {NULL}, 5300, "tcp"},
-{"hacl-hb", {NULL}, 5300, "udp"},
-{"hacl-gs", {NULL}, 5301, "tcp"},
-{"hacl-gs", {NULL}, 5301, "udp"},
-{"hacl-cfg", {NULL}, 5302, "tcp"},
-{"hacl-cfg", {NULL}, 5302, "udp"},
-{"hacl-probe", {NULL}, 5303, "tcp"},
-{"hacl-probe", {NULL}, 5303, "udp"},
-{"hacl-local", {NULL}, 5304, "tcp"},
-{"hacl-local", {NULL}, 5304, "udp"},
-{"hacl-test", {NULL}, 5305, "tcp"},
-{"hacl-test", {NULL}, 5305, "udp"},
-{"sun-mc-grp", {NULL}, 5306, "tcp"},
-{"sun-mc-grp", {NULL}, 5306, "udp"},
-{"sco-aip", {NULL}, 5307, "tcp"},
-{"sco-aip", {NULL}, 5307, "udp"},
-{"cfengine", {NULL}, 5308, "tcp"},
-{"cfengine", {NULL}, 5308, "udp"},
-{"jprinter", {NULL}, 5309, "tcp"},
-{"jprinter", {NULL}, 5309, "udp"},
-{"outlaws", {NULL}, 5310, "tcp"},
-{"outlaws", {NULL}, 5310, "udp"},
-{"permabit-cs", {NULL}, 5312, "tcp"},
-{"permabit-cs", {NULL}, 5312, "udp"},
-{"rrdp", {NULL}, 5313, "tcp"},
-{"rrdp", {NULL}, 5313, "udp"},
-{"opalis-rbt-ipc", {NULL}, 5314, "tcp"},
-{"opalis-rbt-ipc", {NULL}, 5314, "udp"},
-{"hacl-poll", {NULL}, 5315, "tcp"},
-{"hacl-poll", {NULL}, 5315, "udp"},
-{"hpdevms", {NULL}, 5316, "tcp"},
-{"hpdevms", {NULL}, 5316, "udp"},
-{"bsfserver-zn", {NULL}, 5320, "tcp"},
-{"bsfsvr-zn-ssl", {NULL}, 5321, "tcp"},
-{"kfserver", {NULL}, 5343, "tcp"},
-{"kfserver", {NULL}, 5343, "udp"},
-{"xkotodrcp", {NULL}, 5344, "tcp"},
-{"xkotodrcp", {NULL}, 5344, "udp"},
-{"stuns", {NULL}, 5349, "tcp"},
-{"stuns", {NULL}, 5349, "udp"},
-{"turns", {NULL}, 5349, "tcp"},
-{"turns", {NULL}, 5349, "udp"},
-{"stun-behaviors", {NULL}, 5349, "tcp"},
-{"stun-behaviors", {NULL}, 5349, "udp"},
-{"nat-pmp-status", {NULL}, 5350, "tcp"},
-{"nat-pmp-status", {NULL}, 5350, "udp"},
-{"nat-pmp", {NULL}, 5351, "tcp"},
-{"nat-pmp", {NULL}, 5351, "udp"},
-{"dns-llq", {NULL}, 5352, "tcp"},
-{"dns-llq", {NULL}, 5352, "udp"},
-{"mdns", {NULL}, 5353, "tcp"},
-{"mdns", {NULL}, 5353, "udp"},
-{"mdnsresponder", {NULL}, 5354, "tcp"},
-{"mdnsresponder", {NULL}, 5354, "udp"},
-{"llmnr", {NULL}, 5355, "tcp"},
-{"llmnr", {NULL}, 5355, "udp"},
-{"ms-smlbiz", {NULL}, 5356, "tcp"},
-{"ms-smlbiz", {NULL}, 5356, "udp"},
-{"wsdapi", {NULL}, 5357, "tcp"},
-{"wsdapi", {NULL}, 5357, "udp"},
-{"wsdapi-s", {NULL}, 5358, "tcp"},
-{"wsdapi-s", {NULL}, 5358, "udp"},
-{"ms-alerter", {NULL}, 5359, "tcp"},
-{"ms-alerter", {NULL}, 5359, "udp"},
-{"ms-sideshow", {NULL}, 5360, "tcp"},
-{"ms-sideshow", {NULL}, 5360, "udp"},
-{"ms-s-sideshow", {NULL}, 5361, "tcp"},
-{"ms-s-sideshow", {NULL}, 5361, "udp"},
-{"serverwsd2", {NULL}, 5362, "tcp"},
-{"serverwsd2", {NULL}, 5362, "udp"},
-{"net-projection", {NULL}, 5363, "tcp"},
-{"net-projection", {NULL}, 5363, "udp"},
-{"stresstester", {NULL}, 5397, "tcp"},
-{"stresstester", {NULL}, 5397, "udp"},
-{"elektron-admin", {NULL}, 5398, "tcp"},
-{"elektron-admin", {NULL}, 5398, "udp"},
-{"securitychase", {NULL}, 5399, "tcp"},
-{"securitychase", {NULL}, 5399, "udp"},
-{"excerpt", {NULL}, 5400, "tcp"},
-{"excerpt", {NULL}, 5400, "udp"},
-{"excerpts", {NULL}, 5401, "tcp"},
-{"excerpts", {NULL}, 5401, "udp"},
-{"mftp", {NULL}, 5402, "tcp"},
-{"mftp", {NULL}, 5402, "udp"},
-{"hpoms-ci-lstn", {NULL}, 5403, "tcp"},
-{"hpoms-ci-lstn", {NULL}, 5403, "udp"},
-{"hpoms-dps-lstn", {NULL}, 5404, "tcp"},
-{"hpoms-dps-lstn", {NULL}, 5404, "udp"},
-{"netsupport", {NULL}, 5405, "tcp"},
-{"netsupport", {NULL}, 5405, "udp"},
-{"systemics-sox", {NULL}, 5406, "tcp"},
-{"systemics-sox", {NULL}, 5406, "udp"},
-{"foresyte-clear", {NULL}, 5407, "tcp"},
-{"foresyte-clear", {NULL}, 5407, "udp"},
-{"foresyte-sec", {NULL}, 5408, "tcp"},
-{"foresyte-sec", {NULL}, 5408, "udp"},
-{"salient-dtasrv", {NULL}, 5409, "tcp"},
-{"salient-dtasrv", {NULL}, 5409, "udp"},
-{"salient-usrmgr", {NULL}, 5410, "tcp"},
-{"salient-usrmgr", {NULL}, 5410, "udp"},
-{"actnet", {NULL}, 5411, "tcp"},
-{"actnet", {NULL}, 5411, "udp"},
-{"continuus", {NULL}, 5412, "tcp"},
-{"continuus", {NULL}, 5412, "udp"},
-{"wwiotalk", {NULL}, 5413, "tcp"},
-{"wwiotalk", {NULL}, 5413, "udp"},
-{"statusd", {NULL}, 5414, "tcp"},
-{"statusd", {NULL}, 5414, "udp"},
-{"ns-server", {NULL}, 5415, "tcp"},
-{"ns-server", {NULL}, 5415, "udp"},
-{"sns-gateway", {NULL}, 5416, "tcp"},
-{"sns-gateway", {NULL}, 5416, "udp"},
-{"sns-agent", {NULL}, 5417, "tcp"},
-{"sns-agent", {NULL}, 5417, "udp"},
-{"mcntp", {NULL}, 5418, "tcp"},
-{"mcntp", {NULL}, 5418, "udp"},
-{"dj-ice", {NULL}, 5419, "tcp"},
-{"dj-ice", {NULL}, 5419, "udp"},
-{"cylink-c", {NULL}, 5420, "tcp"},
-{"cylink-c", {NULL}, 5420, "udp"},
-{"netsupport2", {NULL}, 5421, "tcp"},
-{"netsupport2", {NULL}, 5421, "udp"},
-{"salient-mux", {NULL}, 5422, "tcp"},
-{"salient-mux", {NULL}, 5422, "udp"},
-{"virtualuser", {NULL}, 5423, "tcp"},
-{"virtualuser", {NULL}, 5423, "udp"},
-{"beyond-remote", {NULL}, 5424, "tcp"},
-{"beyond-remote", {NULL}, 5424, "udp"},
-{"br-channel", {NULL}, 5425, "tcp"},
-{"br-channel", {NULL}, 5425, "udp"},
-{"devbasic", {NULL}, 5426, "tcp"},
-{"devbasic", {NULL}, 5426, "udp"},
-{"sco-peer-tta", {NULL}, 5427, "tcp"},
-{"sco-peer-tta", {NULL}, 5427, "udp"},
-{"telaconsole", {NULL}, 5428, "tcp"},
-{"telaconsole", {NULL}, 5428, "udp"},
-{"base", {NULL}, 5429, "tcp"},
-{"base", {NULL}, 5429, "udp"},
-{"radec-corp", {NULL}, 5430, "tcp"},
-{"radec-corp", {NULL}, 5430, "udp"},
-{"park-agent", {NULL}, 5431, "tcp"},
-{"park-agent", {NULL}, 5431, "udp"},
-{"postgresql", {NULL}, 5432, "tcp"},
-{"postgresql", {NULL}, 5432, "udp"},
-{"pyrrho", {NULL}, 5433, "tcp"},
-{"pyrrho", {NULL}, 5433, "udp"},
-{"sgi-arrayd", {NULL}, 5434, "tcp"},
-{"sgi-arrayd", {NULL}, 5434, "udp"},
-{"sceanics", {NULL}, 5435, "tcp"},
-{"sceanics", {NULL}, 5435, "udp"},
-{"pmip6-cntl", {NULL}, 5436, "udp"},
-{"pmip6-data", {NULL}, 5437, "udp"},
-{"spss", {NULL}, 5443, "tcp"},
-{"spss", {NULL}, 5443, "udp"},
-{"surebox", {NULL}, 5453, "tcp"},
-{"surebox", {NULL}, 5453, "udp"},
-{"apc-5454", {NULL}, 5454, "tcp"},
-{"apc-5454", {NULL}, 5454, "udp"},
-{"apc-5455", {NULL}, 5455, "tcp"},
-{"apc-5455", {NULL}, 5455, "udp"},
-{"apc-5456", {NULL}, 5456, "tcp"},
-{"apc-5456", {NULL}, 5456, "udp"},
-{"silkmeter", {NULL}, 5461, "tcp"},
-{"silkmeter", {NULL}, 5461, "udp"},
-{"ttl-publisher", {NULL}, 5462, "tcp"},
-{"ttl-publisher", {NULL}, 5462, "udp"},
-{"ttlpriceproxy", {NULL}, 5463, "tcp"},
-{"ttlpriceproxy", {NULL}, 5463, "udp"},
-{"quailnet", {NULL}, 5464, "tcp"},
-{"quailnet", {NULL}, 5464, "udp"},
-{"netops-broker", {NULL}, 5465, "tcp"},
-{"netops-broker", {NULL}, 5465, "udp"},
-{"fcp-addr-srvr1", {NULL}, 5500, "tcp"},
-{"fcp-addr-srvr1", {NULL}, 5500, "udp"},
-{"fcp-addr-srvr2", {NULL}, 5501, "tcp"},
-{"fcp-addr-srvr2", {NULL}, 5501, "udp"},
-{"fcp-srvr-inst1", {NULL}, 5502, "tcp"},
-{"fcp-srvr-inst1", {NULL}, 5502, "udp"},
-{"fcp-srvr-inst2", {NULL}, 5503, "tcp"},
-{"fcp-srvr-inst2", {NULL}, 5503, "udp"},
-{"fcp-cics-gw1", {NULL}, 5504, "tcp"},
-{"fcp-cics-gw1", {NULL}, 5504, "udp"},
-{"checkoutdb", {NULL}, 5505, "tcp"},
-{"checkoutdb", {NULL}, 5505, "udp"},
-{"amc", {NULL}, 5506, "tcp"},
-{"amc", {NULL}, 5506, "udp"},
-{"sgi-eventmond", {NULL}, 5553, "tcp"},
-{"sgi-eventmond", {NULL}, 5553, "udp"},
-{"sgi-esphttp", {NULL}, 5554, "tcp"},
-{"sgi-esphttp", {NULL}, 5554, "udp"},
-{"personal-agent", {NULL}, 5555, "tcp"},
-{"personal-agent", {NULL}, 5555, "udp"},
-{"freeciv", {NULL}, 5556, "tcp"},
-{"freeciv", {NULL}, 5556, "udp"},
-{"farenet", {NULL}, 5557, "tcp"},
-{"westec-connect", {NULL}, 5566, "tcp"},
-{"m-oap", {NULL}, 5567, "tcp"},
-{"m-oap", {NULL}, 5567, "udp"},
-{"sdt", {NULL}, 5568, "tcp"},
-{"sdt", {NULL}, 5568, "udp"},
-{"sdmmp", {NULL}, 5573, "tcp"},
-{"sdmmp", {NULL}, 5573, "udp"},
-{"lsi-bobcat", {NULL}, 5574, "tcp"},
-{"ora-oap", {NULL}, 5575, "tcp"},
-{"fdtracks", {NULL}, 5579, "tcp"},
-{"tmosms0", {NULL}, 5580, "tcp"},
-{"tmosms0", {NULL}, 5580, "udp"},
-{"tmosms1", {NULL}, 5581, "tcp"},
-{"tmosms1", {NULL}, 5581, "udp"},
-{"fac-restore", {NULL}, 5582, "tcp"},
-{"fac-restore", {NULL}, 5582, "udp"},
-{"tmo-icon-sync", {NULL}, 5583, "tcp"},
-{"tmo-icon-sync", {NULL}, 5583, "udp"},
-{"bis-web", {NULL}, 5584, "tcp"},
-{"bis-web", {NULL}, 5584, "udp"},
-{"bis-sync", {NULL}, 5585, "tcp"},
-{"bis-sync", {NULL}, 5585, "udp"},
-{"ininmessaging", {NULL}, 5597, "tcp"},
-{"ininmessaging", {NULL}, 5597, "udp"},
-{"mctfeed", {NULL}, 5598, "tcp"},
-{"mctfeed", {NULL}, 5598, "udp"},
-{"esinstall", {NULL}, 5599, "tcp"},
-{"esinstall", {NULL}, 5599, "udp"},
-{"esmmanager", {NULL}, 5600, "tcp"},
-{"esmmanager", {NULL}, 5600, "udp"},
-{"esmagent", {NULL}, 5601, "tcp"},
-{"esmagent", {NULL}, 5601, "udp"},
-{"a1-msc", {NULL}, 5602, "tcp"},
-{"a1-msc", {NULL}, 5602, "udp"},
-{"a1-bs", {NULL}, 5603, "tcp"},
-{"a1-bs", {NULL}, 5603, "udp"},
-{"a3-sdunode", {NULL}, 5604, "tcp"},
-{"a3-sdunode", {NULL}, 5604, "udp"},
-{"a4-sdunode", {NULL}, 5605, "tcp"},
-{"a4-sdunode", {NULL}, 5605, "udp"},
-{"ninaf", {NULL}, 5627, "tcp"},
-{"ninaf", {NULL}, 5627, "udp"},
-{"htrust", {NULL}, 5628, "tcp"},
-{"htrust", {NULL}, 5628, "udp"},
-{"symantec-sfdb", {NULL}, 5629, "tcp"},
-{"symantec-sfdb", {NULL}, 5629, "udp"},
-{"precise-comm", {NULL}, 5630, "tcp"},
-{"precise-comm", {NULL}, 5630, "udp"},
-{"pcanywheredata", {NULL}, 5631, "tcp"},
-{"pcanywheredata", {NULL}, 5631, "udp"},
-{"pcanywherestat", {NULL}, 5632, "tcp"},
-{"pcanywherestat", {NULL}, 5632, "udp"},
-{"beorl", {NULL}, 5633, "tcp"},
-{"beorl", {NULL}, 5633, "udp"},
-{"xprtld", {NULL}, 5634, "tcp"},
-{"xprtld", {NULL}, 5634, "udp"},
-{"sfmsso", {NULL}, 5635, "tcp"},
-{"sfm-db-server", {NULL}, 5636, "tcp"},
-{"cssc", {NULL}, 5637, "tcp"},
-{"amqps", {NULL}, 5671, "tcp"},
-{"amqps", {NULL}, 5671, "udp"},
-{"amqp", {NULL}, 5672, "tcp"},
-{"amqp", {NULL}, 5672, "udp"},
-{"amqp", {NULL}, 5672, "sctp"},
-{"jms", {NULL}, 5673, "tcp"},
-{"jms", {NULL}, 5673, "udp"},
-{"hyperscsi-port", {NULL}, 5674, "tcp"},
-{"hyperscsi-port", {NULL}, 5674, "udp"},
-{"v5ua", {NULL}, 5675, "tcp"},
-{"v5ua", {NULL}, 5675, "udp"},
-{"v5ua", {NULL}, 5675, "sctp"},
-{"raadmin", {NULL}, 5676, "tcp"},
-{"raadmin", {NULL}, 5676, "udp"},
-{"questdb2-lnchr", {NULL}, 5677, "tcp"},
-{"questdb2-lnchr", {NULL}, 5677, "udp"},
-{"rrac", {NULL}, 5678, "tcp"},
-{"rrac", {NULL}, 5678, "udp"},
-{"dccm", {NULL}, 5679, "tcp"},
-{"dccm", {NULL}, 5679, "udp"},
-{"auriga-router", {NULL}, 5680, "tcp"},
-{"auriga-router", {NULL}, 5680, "udp"},
-{"ncxcp", {NULL}, 5681, "tcp"},
-{"ncxcp", {NULL}, 5681, "udp"},
-{"brightcore", {NULL}, 5682, "udp"},
-{"ggz", {NULL}, 5688, "tcp"},
-{"ggz", {NULL}, 5688, "udp"},
-{"qmvideo", {NULL}, 5689, "tcp"},
-{"qmvideo", {NULL}, 5689, "udp"},
-{"proshareaudio", {NULL}, 5713, "tcp"},
-{"proshareaudio", {NULL}, 5713, "udp"},
-{"prosharevideo", {NULL}, 5714, "tcp"},
-{"prosharevideo", {NULL}, 5714, "udp"},
-{"prosharedata", {NULL}, 5715, "tcp"},
-{"prosharedata", {NULL}, 5715, "udp"},
-{"prosharerequest", {NULL}, 5716, "tcp"},
-{"prosharerequest", {NULL}, 5716, "udp"},
-{"prosharenotify", {NULL}, 5717, "tcp"},
-{"prosharenotify", {NULL}, 5717, "udp"},
-{"dpm", {NULL}, 5718, "tcp"},
-{"dpm", {NULL}, 5718, "udp"},
-{"dpm-agent", {NULL}, 5719, "tcp"},
-{"dpm-agent", {NULL}, 5719, "udp"},
-{"ms-licensing", {NULL}, 5720, "tcp"},
-{"ms-licensing", {NULL}, 5720, "udp"},
-{"dtpt", {NULL}, 5721, "tcp"},
-{"dtpt", {NULL}, 5721, "udp"},
-{"msdfsr", {NULL}, 5722, "tcp"},
-{"msdfsr", {NULL}, 5722, "udp"},
-{"omhs", {NULL}, 5723, "tcp"},
-{"omhs", {NULL}, 5723, "udp"},
-{"omsdk", {NULL}, 5724, "tcp"},
-{"omsdk", {NULL}, 5724, "udp"},
-{"ms-ilm", {NULL}, 5725, "tcp"},
-{"ms-ilm-sts", {NULL}, 5726, "tcp"},
-{"asgenf", {NULL}, 5727, "tcp"},
-{"io-dist-data", {NULL}, 5728, "tcp"},
-{"io-dist-group", {NULL}, 5728, "udp"},
-{"openmail", {NULL}, 5729, "tcp"},
-{"openmail", {NULL}, 5729, "udp"},
-{"unieng", {NULL}, 5730, "tcp"},
-{"unieng", {NULL}, 5730, "udp"},
-{"ida-discover1", {NULL}, 5741, "tcp"},
-{"ida-discover1", {NULL}, 5741, "udp"},
-{"ida-discover2", {NULL}, 5742, "tcp"},
-{"ida-discover2", {NULL}, 5742, "udp"},
-{"watchdoc-pod", {NULL}, 5743, "tcp"},
-{"watchdoc-pod", {NULL}, 5743, "udp"},
-{"watchdoc", {NULL}, 5744, "tcp"},
-{"watchdoc", {NULL}, 5744, "udp"},
-{"fcopy-server", {NULL}, 5745, "tcp"},
-{"fcopy-server", {NULL}, 5745, "udp"},
-{"fcopys-server", {NULL}, 5746, "tcp"},
-{"fcopys-server", {NULL}, 5746, "udp"},
-{"tunatic", {NULL}, 5747, "tcp"},
-{"tunatic", {NULL}, 5747, "udp"},
-{"tunalyzer", {NULL}, 5748, "tcp"},
-{"tunalyzer", {NULL}, 5748, "udp"},
-{"rscd", {NULL}, 5750, "tcp"},
-{"rscd", {NULL}, 5750, "udp"},
-{"openmailg", {NULL}, 5755, "tcp"},
-{"openmailg", {NULL}, 5755, "udp"},
-{"x500ms", {NULL}, 5757, "tcp"},
-{"x500ms", {NULL}, 5757, "udp"},
-{"openmailns", {NULL}, 5766, "tcp"},
-{"openmailns", {NULL}, 5766, "udp"},
-{"s-openmail", {NULL}, 5767, "tcp"},
-{"s-openmail", {NULL}, 5767, "udp"},
-{"openmailpxy", {NULL}, 5768, "tcp"},
-{"openmailpxy", {NULL}, 5768, "udp"},
-{"spramsca", {NULL}, 5769, "tcp"},
-{"spramsca", {NULL}, 5769, "udp"},
-{"spramsd", {NULL}, 5770, "tcp"},
-{"spramsd", {NULL}, 5770, "udp"},
-{"netagent", {NULL}, 5771, "tcp"},
-{"netagent", {NULL}, 5771, "udp"},
-{"dali-port", {NULL}, 5777, "tcp"},
-{"dali-port", {NULL}, 5777, "udp"},
-{"vts-rpc", {NULL}, 5780, "tcp"},
-{"3par-evts", {NULL}, 5781, "tcp"},
-{"3par-evts", {NULL}, 5781, "udp"},
-{"3par-mgmt", {NULL}, 5782, "tcp"},
-{"3par-mgmt", {NULL}, 5782, "udp"},
-{"3par-mgmt-ssl", {NULL}, 5783, "tcp"},
-{"3par-mgmt-ssl", {NULL}, 5783, "udp"},
-{"ibar", {NULL}, 5784, "udp"},
-{"3par-rcopy", {NULL}, 5785, "tcp"},
-{"3par-rcopy", {NULL}, 5785, "udp"},
-{"cisco-redu", {NULL}, 5786, "udp"},
-{"waascluster", {NULL}, 5787, "udp"},
-{"xtreamx", {NULL}, 5793, "tcp"},
-{"xtreamx", {NULL}, 5793, "udp"},
-{"spdp", {NULL}, 5794, "udp"},
-{"icmpd", {NULL}, 5813, "tcp"},
-{"icmpd", {NULL}, 5813, "udp"},
-{"spt-automation", {NULL}, 5814, "tcp"},
-{"spt-automation", {NULL}, 5814, "udp"},
-{"wherehoo", {NULL}, 5859, "tcp"},
-{"wherehoo", {NULL}, 5859, "udp"},
-{"ppsuitemsg", {NULL}, 5863, "tcp"},
-{"ppsuitemsg", {NULL}, 5863, "udp"},
-{"rfb", {NULL}, 5900, "tcp"},
-{"rfb", {NULL}, 5900, "udp"},
-{"cm", {NULL}, 5910, "tcp"},
-{"cm", {NULL}, 5910, "udp"},
-{"cpdlc", {NULL}, 5911, "tcp"},
-{"cpdlc", {NULL}, 5911, "udp"},
-{"fis", {NULL}, 5912, "tcp"},
-{"fis", {NULL}, 5912, "udp"},
-{"ads-c", {NULL}, 5913, "tcp"},
-{"ads-c", {NULL}, 5913, "udp"},
-{"indy", {NULL}, 5963, "tcp"},
-{"indy", {NULL}, 5963, "udp"},
-{"mppolicy-v5", {NULL}, 5968, "tcp"},
-{"mppolicy-v5", {NULL}, 5968, "udp"},
-{"mppolicy-mgr", {NULL}, 5969, "tcp"},
-{"mppolicy-mgr", {NULL}, 5969, "udp"},
-{"couchdb", {NULL}, 5984, "tcp"},
-{"couchdb", {NULL}, 5984, "udp"},
-{"wsman", {NULL}, 5985, "tcp"},
-{"wsman", {NULL}, 5985, "udp"},
-{"wsmans", {NULL}, 5986, "tcp"},
-{"wsmans", {NULL}, 5986, "udp"},
-{"wbem-rmi", {NULL}, 5987, "tcp"},
-{"wbem-rmi", {NULL}, 5987, "udp"},
-{"wbem-http", {NULL}, 5988, "tcp"},
-{"wbem-http", {NULL}, 5988, "udp"},
-{"wbem-https", {NULL}, 5989, "tcp"},
-{"wbem-https", {NULL}, 5989, "udp"},
-{"wbem-exp-https", {NULL}, 5990, "tcp"},
-{"wbem-exp-https", {NULL}, 5990, "udp"},
-{"nuxsl", {NULL}, 5991, "tcp"},
-{"nuxsl", {NULL}, 5991, "udp"},
-{"consul-insight", {NULL}, 5992, "tcp"},
-{"consul-insight", {NULL}, 5992, "udp"},
-{"cvsup", {NULL}, 5999, "tcp"},
-{"cvsup", {NULL}, 5999, "udp"},
-{"ndl-ahp-svc", {NULL}, 6064, "tcp"},
-{"ndl-ahp-svc", {NULL}, 6064, "udp"},
-{"winpharaoh", {NULL}, 6065, "tcp"},
-{"winpharaoh", {NULL}, 6065, "udp"},
-{"ewctsp", {NULL}, 6066, "tcp"},
-{"ewctsp", {NULL}, 6066, "udp"},
-{"gsmp", {NULL}, 6068, "tcp"},
-{"gsmp", {NULL}, 6068, "udp"},
-{"trip", {NULL}, 6069, "tcp"},
-{"trip", {NULL}, 6069, "udp"},
-{"messageasap", {NULL}, 6070, "tcp"},
-{"messageasap", {NULL}, 6070, "udp"},
-{"ssdtp", {NULL}, 6071, "tcp"},
-{"ssdtp", {NULL}, 6071, "udp"},
-{"diagnose-proc", {NULL}, 6072, "tcp"},
-{"diagnose-proc", {NULL}, 6072, "udp"},
-{"directplay8", {NULL}, 6073, "tcp"},
-{"directplay8", {NULL}, 6073, "udp"},
-{"max", {NULL}, 6074, "tcp"},
-{"max", {NULL}, 6074, "udp"},
-{"dpm-acm", {NULL}, 6075, "tcp"},
-{"miami-bcast", {NULL}, 6083, "udp"},
-{"p2p-sip", {NULL}, 6084, "tcp"},
-{"konspire2b", {NULL}, 6085, "tcp"},
-{"konspire2b", {NULL}, 6085, "udp"},
-{"pdtp", {NULL}, 6086, "tcp"},
-{"pdtp", {NULL}, 6086, "udp"},
-{"ldss", {NULL}, 6087, "tcp"},
-{"ldss", {NULL}, 6087, "udp"},
-{"raxa-mgmt", {NULL}, 6099, "tcp"},
-{"synchronet-db", {NULL}, 6100, "tcp"},
-{"synchronet-db", {NULL}, 6100, "udp"},
-{"synchronet-rtc", {NULL}, 6101, "tcp"},
-{"synchronet-rtc", {NULL}, 6101, "udp"},
-{"synchronet-upd", {NULL}, 6102, "tcp"},
-{"synchronet-upd", {NULL}, 6102, "udp"},
-{"rets", {NULL}, 6103, "tcp"},
-{"rets", {NULL}, 6103, "udp"},
-{"dbdb", {NULL}, 6104, "tcp"},
-{"dbdb", {NULL}, 6104, "udp"},
-{"primaserver", {NULL}, 6105, "tcp"},
-{"primaserver", {NULL}, 6105, "udp"},
-{"mpsserver", {NULL}, 6106, "tcp"},
-{"mpsserver", {NULL}, 6106, "udp"},
-{"etc-control", {NULL}, 6107, "tcp"},
-{"etc-control", {NULL}, 6107, "udp"},
-{"sercomm-scadmin", {NULL}, 6108, "tcp"},
-{"sercomm-scadmin", {NULL}, 6108, "udp"},
-{"globecast-id", {NULL}, 6109, "tcp"},
-{"globecast-id", {NULL}, 6109, "udp"},
-{"softcm", {NULL}, 6110, "tcp"},
-{"softcm", {NULL}, 6110, "udp"},
-{"spc", {NULL}, 6111, "tcp"},
-{"spc", {NULL}, 6111, "udp"},
-{"dtspcd", {NULL}, 6112, "tcp"},
-{"dtspcd", {NULL}, 6112, "udp"},
-{"dayliteserver", {NULL}, 6113, "tcp"},
-{"wrspice", {NULL}, 6114, "tcp"},
-{"xic", {NULL}, 6115, "tcp"},
-{"xtlserv", {NULL}, 6116, "tcp"},
-{"daylitetouch", {NULL}, 6117, "tcp"},
-{"spdy", {NULL}, 6121, "tcp"},
-{"bex-webadmin", {NULL}, 6122, "tcp"},
-{"bex-webadmin", {NULL}, 6122, "udp"},
-{"backup-express", {NULL}, 6123, "tcp"},
-{"backup-express", {NULL}, 6123, "udp"},
-{"pnbs", {NULL}, 6124, "tcp"},
-{"pnbs", {NULL}, 6124, "udp"},
-{"nbt-wol", {NULL}, 6133, "tcp"},
-{"nbt-wol", {NULL}, 6133, "udp"},
-{"pulsonixnls", {NULL}, 6140, "tcp"},
-{"pulsonixnls", {NULL}, 6140, "udp"},
-{"meta-corp", {NULL}, 6141, "tcp"},
-{"meta-corp", {NULL}, 6141, "udp"},
-{"aspentec-lm", {NULL}, 6142, "tcp"},
-{"aspentec-lm", {NULL}, 6142, "udp"},
-{"watershed-lm", {NULL}, 6143, "tcp"},
-{"watershed-lm", {NULL}, 6143, "udp"},
-{"statsci1-lm", {NULL}, 6144, "tcp"},
-{"statsci1-lm", {NULL}, 6144, "udp"},
-{"statsci2-lm", {NULL}, 6145, "tcp"},
-{"statsci2-lm", {NULL}, 6145, "udp"},
-{"lonewolf-lm", {NULL}, 6146, "tcp"},
-{"lonewolf-lm", {NULL}, 6146, "udp"},
-{"montage-lm", {NULL}, 6147, "tcp"},
-{"montage-lm", {NULL}, 6147, "udp"},
-{"ricardo-lm", {NULL}, 6148, "tcp"},
-{"ricardo-lm", {NULL}, 6148, "udp"},
-{"tal-pod", {NULL}, 6149, "tcp"},
-{"tal-pod", {NULL}, 6149, "udp"},
-{"efb-aci", {NULL}, 6159, "tcp"},
-{"patrol-ism", {NULL}, 6161, "tcp"},
-{"patrol-ism", {NULL}, 6161, "udp"},
-{"patrol-coll", {NULL}, 6162, "tcp"},
-{"patrol-coll", {NULL}, 6162, "udp"},
-{"pscribe", {NULL}, 6163, "tcp"},
-{"pscribe", {NULL}, 6163, "udp"},
-{"lm-x", {NULL}, 6200, "tcp"},
-{"lm-x", {NULL}, 6200, "udp"},
-{"radmind", {NULL}, 6222, "tcp"},
-{"radmind", {NULL}, 6222, "udp"},
-{"jeol-nsdtp-1", {NULL}, 6241, "tcp"},
-{"jeol-nsddp-1", {NULL}, 6241, "udp"},
-{"jeol-nsdtp-2", {NULL}, 6242, "tcp"},
-{"jeol-nsddp-2", {NULL}, 6242, "udp"},
-{"jeol-nsdtp-3", {NULL}, 6243, "tcp"},
-{"jeol-nsddp-3", {NULL}, 6243, "udp"},
-{"jeol-nsdtp-4", {NULL}, 6244, "tcp"},
-{"jeol-nsddp-4", {NULL}, 6244, "udp"},
-{"tl1-raw-ssl", {NULL}, 6251, "tcp"},
-{"tl1-raw-ssl", {NULL}, 6251, "udp"},
-{"tl1-ssh", {NULL}, 6252, "tcp"},
-{"tl1-ssh", {NULL}, 6252, "udp"},
-{"crip", {NULL}, 6253, "tcp"},
-{"crip", {NULL}, 6253, "udp"},
-{"gld", {NULL}, 6267, "tcp"},
-{"grid", {NULL}, 6268, "tcp"},
-{"grid", {NULL}, 6268, "udp"},
-{"grid-alt", {NULL}, 6269, "tcp"},
-{"grid-alt", {NULL}, 6269, "udp"},
-{"bmc-grx", {NULL}, 6300, "tcp"},
-{"bmc-grx", {NULL}, 6300, "udp"},
-{"bmc_ctd_ldap", {NULL}, 6301, "tcp"},
-{"bmc_ctd_ldap", {NULL}, 6301, "udp"},
-{"ufmp", {NULL}, 6306, "tcp"},
-{"ufmp", {NULL}, 6306, "udp"},
-{"scup", {NULL}, 6315, "tcp"},
-{"scup-disc", {NULL}, 6315, "udp"},
-{"abb-escp", {NULL}, 6316, "tcp"},
-{"abb-escp", {NULL}, 6316, "udp"},
-{"repsvc", {NULL}, 6320, "tcp"},
-{"repsvc", {NULL}, 6320, "udp"},
-{"emp-server1", {NULL}, 6321, "tcp"},
-{"emp-server1", {NULL}, 6321, "udp"},
-{"emp-server2", {NULL}, 6322, "tcp"},
-{"emp-server2", {NULL}, 6322, "udp"},
-{"sflow", {NULL}, 6343, "tcp"},
-{"sflow", {NULL}, 6343, "udp"},
-{"gnutella-svc", {NULL}, 6346, "tcp"},
-{"gnutella-svc", {NULL}, 6346, "udp"},
-{"gnutella-rtr", {NULL}, 6347, "tcp"},
-{"gnutella-rtr", {NULL}, 6347, "udp"},
-{"adap", {NULL}, 6350, "tcp"},
-{"adap", {NULL}, 6350, "udp"},
-{"pmcs", {NULL}, 6355, "tcp"},
-{"pmcs", {NULL}, 6355, "udp"},
-{"metaedit-mu", {NULL}, 6360, "tcp"},
-{"metaedit-mu", {NULL}, 6360, "udp"},
-{"metaedit-se", {NULL}, 6370, "tcp"},
-{"metaedit-se", {NULL}, 6370, "udp"},
-{"metatude-mds", {NULL}, 6382, "tcp"},
-{"metatude-mds", {NULL}, 6382, "udp"},
-{"clariion-evr01", {NULL}, 6389, "tcp"},
-{"clariion-evr01", {NULL}, 6389, "udp"},
-{"metaedit-ws", {NULL}, 6390, "tcp"},
-{"metaedit-ws", {NULL}, 6390, "udp"},
-{"faxcomservice", {NULL}, 6417, "tcp"},
-{"faxcomservice", {NULL}, 6417, "udp"},
-{"syserverremote", {NULL}, 6418, "tcp"},
-{"svdrp", {NULL}, 6419, "tcp"},
-{"nim-vdrshell", {NULL}, 6420, "tcp"},
-{"nim-vdrshell", {NULL}, 6420, "udp"},
-{"nim-wan", {NULL}, 6421, "tcp"},
-{"nim-wan", {NULL}, 6421, "udp"},
-{"pgbouncer", {NULL}, 6432, "tcp"},
-{"sun-sr-https", {NULL}, 6443, "tcp"},
-{"sun-sr-https", {NULL}, 6443, "udp"},
-{"sge_qmaster", {NULL}, 6444, "tcp"},
-{"sge_qmaster", {NULL}, 6444, "udp"},
-{"sge_execd", {NULL}, 6445, "tcp"},
-{"sge_execd", {NULL}, 6445, "udp"},
-{"mysql-proxy", {NULL}, 6446, "tcp"},
-{"mysql-proxy", {NULL}, 6446, "udp"},
-{"skip-cert-recv", {NULL}, 6455, "tcp"},
-{"skip-cert-send", {NULL}, 6456, "udp"},
-{"lvision-lm", {NULL}, 6471, "tcp"},
-{"lvision-lm", {NULL}, 6471, "udp"},
-{"sun-sr-http", {NULL}, 6480, "tcp"},
-{"sun-sr-http", {NULL}, 6480, "udp"},
-{"servicetags", {NULL}, 6481, "tcp"},
-{"servicetags", {NULL}, 6481, "udp"},
-{"ldoms-mgmt", {NULL}, 6482, "tcp"},
-{"ldoms-mgmt", {NULL}, 6482, "udp"},
-{"SunVTS-RMI", {NULL}, 6483, "tcp"},
-{"SunVTS-RMI", {NULL}, 6483, "udp"},
-{"sun-sr-jms", {NULL}, 6484, "tcp"},
-{"sun-sr-jms", {NULL}, 6484, "udp"},
-{"sun-sr-iiop", {NULL}, 6485, "tcp"},
-{"sun-sr-iiop", {NULL}, 6485, "udp"},
-{"sun-sr-iiops", {NULL}, 6486, "tcp"},
-{"sun-sr-iiops", {NULL}, 6486, "udp"},
-{"sun-sr-iiop-aut", {NULL}, 6487, "tcp"},
-{"sun-sr-iiop-aut", {NULL}, 6487, "udp"},
-{"sun-sr-jmx", {NULL}, 6488, "tcp"},
-{"sun-sr-jmx", {NULL}, 6488, "udp"},
-{"sun-sr-admin", {NULL}, 6489, "tcp"},
-{"sun-sr-admin", {NULL}, 6489, "udp"},
-{"boks", {NULL}, 6500, "tcp"},
-{"boks", {NULL}, 6500, "udp"},
-{"boks_servc", {NULL}, 6501, "tcp"},
-{"boks_servc", {NULL}, 6501, "udp"},
-{"boks_servm", {NULL}, 6502, "tcp"},
-{"boks_servm", {NULL}, 6502, "udp"},
-{"boks_clntd", {NULL}, 6503, "tcp"},
-{"boks_clntd", {NULL}, 6503, "udp"},
-{"badm_priv", {NULL}, 6505, "tcp"},
-{"badm_priv", {NULL}, 6505, "udp"},
-{"badm_pub", {NULL}, 6506, "tcp"},
-{"badm_pub", {NULL}, 6506, "udp"},
-{"bdir_priv", {NULL}, 6507, "tcp"},
-{"bdir_priv", {NULL}, 6507, "udp"},
-{"bdir_pub", {NULL}, 6508, "tcp"},
-{"bdir_pub", {NULL}, 6508, "udp"},
-{"mgcs-mfp-port", {NULL}, 6509, "tcp"},
-{"mgcs-mfp-port", {NULL}, 6509, "udp"},
-{"mcer-port", {NULL}, 6510, "tcp"},
-{"mcer-port", {NULL}, 6510, "udp"},
-{"netconf-tls", {NULL}, 6513, "tcp"},
-{"syslog-tls", {NULL}, 6514, "tcp"},
-{"syslog-tls", {NULL}, 6514, "udp"},
-{"syslog-tls", {NULL}, 6514, "dccp"},
-{"elipse-rec", {NULL}, 6515, "tcp"},
-{"elipse-rec", {NULL}, 6515, "udp"},
-{"lds-distrib", {NULL}, 6543, "tcp"},
-{"lds-distrib", {NULL}, 6543, "udp"},
-{"lds-dump", {NULL}, 6544, "tcp"},
-{"lds-dump", {NULL}, 6544, "udp"},
-{"apc-6547", {NULL}, 6547, "tcp"},
-{"apc-6547", {NULL}, 6547, "udp"},
-{"apc-6548", {NULL}, 6548, "tcp"},
-{"apc-6548", {NULL}, 6548, "udp"},
-{"apc-6549", {NULL}, 6549, "tcp"},
-{"apc-6549", {NULL}, 6549, "udp"},
-{"fg-sysupdate", {NULL}, 6550, "tcp"},
-{"fg-sysupdate", {NULL}, 6550, "udp"},
-{"sum", {NULL}, 6551, "tcp"},
-{"sum", {NULL}, 6551, "udp"},
-{"xdsxdm", {NULL}, 6558, "tcp"},
-{"xdsxdm", {NULL}, 6558, "udp"},
-{"sane-port", {NULL}, 6566, "tcp"},
-{"sane-port", {NULL}, 6566, "udp"},
-{"esp", {NULL}, 6567, "tcp"},
-{"esp", {NULL}, 6567, "udp"},
-{"canit_store", {NULL}, 6568, "tcp"},
-{"rp-reputation", {NULL}, 6568, "udp"},
-{"affiliate", {NULL}, 6579, "tcp"},
-{"affiliate", {NULL}, 6579, "udp"},
-{"parsec-master", {NULL}, 6580, "tcp"},
-{"parsec-master", {NULL}, 6580, "udp"},
-{"parsec-peer", {NULL}, 6581, "tcp"},
-{"parsec-peer", {NULL}, 6581, "udp"},
-{"parsec-game", {NULL}, 6582, "tcp"},
-{"parsec-game", {NULL}, 6582, "udp"},
-{"joaJewelSuite", {NULL}, 6583, "tcp"},
-{"joaJewelSuite", {NULL}, 6583, "udp"},
-{"mshvlm", {NULL}, 6600, "tcp"},
-{"mstmg-sstp", {NULL}, 6601, "tcp"},
-{"wsscomfrmwk", {NULL}, 6602, "tcp"},
-{"odette-ftps", {NULL}, 6619, "tcp"},
-{"odette-ftps", {NULL}, 6619, "udp"},
-{"kftp-data", {NULL}, 6620, "tcp"},
-{"kftp-data", {NULL}, 6620, "udp"},
-{"kftp", {NULL}, 6621, "tcp"},
-{"kftp", {NULL}, 6621, "udp"},
-{"mcftp", {NULL}, 6622, "tcp"},
-{"mcftp", {NULL}, 6622, "udp"},
-{"ktelnet", {NULL}, 6623, "tcp"},
-{"ktelnet", {NULL}, 6623, "udp"},
-{"datascaler-db", {NULL}, 6624, "tcp"},
-{"datascaler-ctl", {NULL}, 6625, "tcp"},
-{"wago-service", {NULL}, 6626, "tcp"},
-{"wago-service", {NULL}, 6626, "udp"},
-{"nexgen", {NULL}, 6627, "tcp"},
-{"nexgen", {NULL}, 6627, "udp"},
-{"afesc-mc", {NULL}, 6628, "tcp"},
-{"afesc-mc", {NULL}, 6628, "udp"},
-{"mxodbc-connect", {NULL}, 6632, "tcp"},
-{"pcs-sf-ui-man", {NULL}, 6655, "tcp"},
-{"emgmsg", {NULL}, 6656, "tcp"},
-{"palcom-disc", {NULL}, 6657, "udp"},
-{"vocaltec-gold", {NULL}, 6670, "tcp"},
-{"vocaltec-gold", {NULL}, 6670, "udp"},
-{"p4p-portal", {NULL}, 6671, "tcp"},
-{"p4p-portal", {NULL}, 6671, "udp"},
-{"vision_server", {NULL}, 6672, "tcp"},
-{"vision_server", {NULL}, 6672, "udp"},
-{"vision_elmd", {NULL}, 6673, "tcp"},
-{"vision_elmd", {NULL}, 6673, "udp"},
-{"vfbp", {NULL}, 6678, "tcp"},
-{"vfbp-disc", {NULL}, 6678, "udp"},
-{"osaut", {NULL}, 6679, "tcp"},
-{"osaut", {NULL}, 6679, "udp"},
-{"clever-ctrace", {NULL}, 6687, "tcp"},
-{"clever-tcpip", {NULL}, 6688, "tcp"},
-{"tsa", {NULL}, 6689, "tcp"},
-{"tsa", {NULL}, 6689, "udp"},
-{"babel", {NULL}, 6697, "udp"},
-{"kti-icad-srvr", {NULL}, 6701, "tcp"},
-{"kti-icad-srvr", {NULL}, 6701, "udp"},
-{"e-design-net", {NULL}, 6702, "tcp"},
-{"e-design-net", {NULL}, 6702, "udp"},
-{"e-design-web", {NULL}, 6703, "tcp"},
-{"e-design-web", {NULL}, 6703, "udp"},
-{"frc-hp", {NULL}, 6704, "sctp"},
-{"frc-mp", {NULL}, 6705, "sctp"},
-{"frc-lp", {NULL}, 6706, "sctp"},
-{"ibprotocol", {NULL}, 6714, "tcp"},
-{"ibprotocol", {NULL}, 6714, "udp"},
-{"fibotrader-com", {NULL}, 6715, "tcp"},
-{"fibotrader-com", {NULL}, 6715, "udp"},
-{"bmc-perf-agent", {NULL}, 6767, "tcp"},
-{"bmc-perf-agent", {NULL}, 6767, "udp"},
-{"bmc-perf-mgrd", {NULL}, 6768, "tcp"},
-{"bmc-perf-mgrd", {NULL}, 6768, "udp"},
-{"adi-gxp-srvprt", {NULL}, 6769, "tcp"},
-{"adi-gxp-srvprt", {NULL}, 6769, "udp"},
-{"plysrv-http", {NULL}, 6770, "tcp"},
-{"plysrv-http", {NULL}, 6770, "udp"},
-{"plysrv-https", {NULL}, 6771, "tcp"},
-{"plysrv-https", {NULL}, 6771, "udp"},
-{"dgpf-exchg", {NULL}, 6785, "tcp"},
-{"dgpf-exchg", {NULL}, 6785, "udp"},
-{"smc-jmx", {NULL}, 6786, "tcp"},
-{"smc-jmx", {NULL}, 6786, "udp"},
-{"smc-admin", {NULL}, 6787, "tcp"},
-{"smc-admin", {NULL}, 6787, "udp"},
-{"smc-http", {NULL}, 6788, "tcp"},
-{"smc-http", {NULL}, 6788, "udp"},
-{"smc-https", {NULL}, 6789, "tcp"},
-{"smc-https", {NULL}, 6789, "udp"},
-{"hnmp", {NULL}, 6790, "tcp"},
-{"hnmp", {NULL}, 6790, "udp"},
-{"hnm", {NULL}, 6791, "tcp"},
-{"hnm", {NULL}, 6791, "udp"},
-{"acnet", {NULL}, 6801, "tcp"},
-{"acnet", {NULL}, 6801, "udp"},
-{"pentbox-sim", {NULL}, 6817, "tcp"},
-{"ambit-lm", {NULL}, 6831, "tcp"},
-{"ambit-lm", {NULL}, 6831, "udp"},
-{"netmo-default", {NULL}, 6841, "tcp"},
-{"netmo-default", {NULL}, 6841, "udp"},
-{"netmo-http", {NULL}, 6842, "tcp"},
-{"netmo-http", {NULL}, 6842, "udp"},
-{"iccrushmore", {NULL}, 6850, "tcp"},
-{"iccrushmore", {NULL}, 6850, "udp"},
-{"acctopus-cc", {NULL}, 6868, "tcp"},
-{"acctopus-st", {NULL}, 6868, "udp"},
-{"muse", {NULL}, 6888, "tcp"},
-{"muse", {NULL}, 6888, "udp"},
-{"jetstream", {NULL}, 6901, "tcp"},
-{"xsmsvc", {NULL}, 6936, "tcp"},
-{"xsmsvc", {NULL}, 6936, "udp"},
-{"bioserver", {NULL}, 6946, "tcp"},
-{"bioserver", {NULL}, 6946, "udp"},
-{"otlp", {NULL}, 6951, "tcp"},
-{"otlp", {NULL}, 6951, "udp"},
-{"jmact3", {NULL}, 6961, "tcp"},
-{"jmact3", {NULL}, 6961, "udp"},
-{"jmevt2", {NULL}, 6962, "tcp"},
-{"jmevt2", {NULL}, 6962, "udp"},
-{"swismgr1", {NULL}, 6963, "tcp"},
-{"swismgr1", {NULL}, 6963, "udp"},
-{"swismgr2", {NULL}, 6964, "tcp"},
-{"swismgr2", {NULL}, 6964, "udp"},
-{"swistrap", {NULL}, 6965, "tcp"},
-{"swistrap", {NULL}, 6965, "udp"},
-{"swispol", {NULL}, 6966, "tcp"},
-{"swispol", {NULL}, 6966, "udp"},
-{"acmsoda", {NULL}, 6969, "tcp"},
-{"acmsoda", {NULL}, 6969, "udp"},
-{"MobilitySrv", {NULL}, 6997, "tcp"},
-{"MobilitySrv", {NULL}, 6997, "udp"},
-{"iatp-highpri", {NULL}, 6998, "tcp"},
-{"iatp-highpri", {NULL}, 6998, "udp"},
-{"iatp-normalpri", {NULL}, 6999, "tcp"},
-{"iatp-normalpri", {NULL}, 6999, "udp"},
-{"afs3-fileserver", {NULL}, 7000, "tcp"},
-{"afs3-fileserver", {NULL}, 7000, "udp"},
-{"afs3-callback", {NULL}, 7001, "tcp"},
-{"afs3-callback", {NULL}, 7001, "udp"},
-{"afs3-prserver", {NULL}, 7002, "tcp"},
-{"afs3-prserver", {NULL}, 7002, "udp"},
-{"afs3-vlserver", {NULL}, 7003, "tcp"},
-{"afs3-vlserver", {NULL}, 7003, "udp"},
-{"afs3-kaserver", {NULL}, 7004, "tcp"},
-{"afs3-kaserver", {NULL}, 7004, "udp"},
-{"afs3-volser", {NULL}, 7005, "tcp"},
-{"afs3-volser", {NULL}, 7005, "udp"},
-{"afs3-errors", {NULL}, 7006, "tcp"},
-{"afs3-errors", {NULL}, 7006, "udp"},
-{"afs3-bos", {NULL}, 7007, "tcp"},
-{"afs3-bos", {NULL}, 7007, "udp"},
-{"afs3-update", {NULL}, 7008, "tcp"},
-{"afs3-update", {NULL}, 7008, "udp"},
-{"afs3-rmtsys", {NULL}, 7009, "tcp"},
-{"afs3-rmtsys", {NULL}, 7009, "udp"},
-{"ups-onlinet", {NULL}, 7010, "tcp"},
-{"ups-onlinet", {NULL}, 7010, "udp"},
-{"talon-disc", {NULL}, 7011, "tcp"},
-{"talon-disc", {NULL}, 7011, "udp"},
-{"talon-engine", {NULL}, 7012, "tcp"},
-{"talon-engine", {NULL}, 7012, "udp"},
-{"microtalon-dis", {NULL}, 7013, "tcp"},
-{"microtalon-dis", {NULL}, 7013, "udp"},
-{"microtalon-com", {NULL}, 7014, "tcp"},
-{"microtalon-com", {NULL}, 7014, "udp"},
-{"talon-webserver", {NULL}, 7015, "tcp"},
-{"talon-webserver", {NULL}, 7015, "udp"},
-{"dpserve", {NULL}, 7020, "tcp"},
-{"dpserve", {NULL}, 7020, "udp"},
-{"dpserveadmin", {NULL}, 7021, "tcp"},
-{"dpserveadmin", {NULL}, 7021, "udp"},
-{"ctdp", {NULL}, 7022, "tcp"},
-{"ctdp", {NULL}, 7022, "udp"},
-{"ct2nmcs", {NULL}, 7023, "tcp"},
-{"ct2nmcs", {NULL}, 7023, "udp"},
-{"vmsvc", {NULL}, 7024, "tcp"},
-{"vmsvc", {NULL}, 7024, "udp"},
-{"vmsvc-2", {NULL}, 7025, "tcp"},
-{"vmsvc-2", {NULL}, 7025, "udp"},
-{"op-probe", {NULL}, 7030, "tcp"},
-{"op-probe", {NULL}, 7030, "udp"},
-{"arcp", {NULL}, 7070, "tcp"},
-{"arcp", {NULL}, 7070, "udp"},
-{"iwg1", {NULL}, 7071, "tcp"},
-{"iwg1", {NULL}, 7071, "udp"},
-{"empowerid", {NULL}, 7080, "tcp"},
-{"empowerid", {NULL}, 7080, "udp"},
-{"lazy-ptop", {NULL}, 7099, "tcp"},
-{"lazy-ptop", {NULL}, 7099, "udp"},
-{"font-service", {NULL}, 7100, "tcp"},
-{"font-service", {NULL}, 7100, "udp"},
-{"elcn", {NULL}, 7101, "tcp"},
-{"elcn", {NULL}, 7101, "udp"},
-{"aes-x170", {NULL}, 7107, "udp"},
-{"virprot-lm", {NULL}, 7121, "tcp"},
-{"virprot-lm", {NULL}, 7121, "udp"},
-{"scenidm", {NULL}, 7128, "tcp"},
-{"scenidm", {NULL}, 7128, "udp"},
-{"scenccs", {NULL}, 7129, "tcp"},
-{"scenccs", {NULL}, 7129, "udp"},
-{"cabsm-comm", {NULL}, 7161, "tcp"},
-{"cabsm-comm", {NULL}, 7161, "udp"},
-{"caistoragemgr", {NULL}, 7162, "tcp"},
-{"caistoragemgr", {NULL}, 7162, "udp"},
-{"cacsambroker", {NULL}, 7163, "tcp"},
-{"cacsambroker", {NULL}, 7163, "udp"},
-{"fsr", {NULL}, 7164, "tcp"},
-{"fsr", {NULL}, 7164, "udp"},
-{"doc-server", {NULL}, 7165, "tcp"},
-{"doc-server", {NULL}, 7165, "udp"},
-{"aruba-server", {NULL}, 7166, "tcp"},
-{"aruba-server", {NULL}, 7166, "udp"},
-{"casrmagent", {NULL}, 7167, "tcp"},
-{"cnckadserver", {NULL}, 7168, "tcp"},
-{"ccag-pib", {NULL}, 7169, "tcp"},
-{"ccag-pib", {NULL}, 7169, "udp"},
-{"nsrp", {NULL}, 7170, "tcp"},
-{"nsrp", {NULL}, 7170, "udp"},
-{"drm-production", {NULL}, 7171, "tcp"},
-{"drm-production", {NULL}, 7171, "udp"},
-{"zsecure", {NULL}, 7173, "tcp"},
-{"clutild", {NULL}, 7174, "tcp"},
-{"clutild", {NULL}, 7174, "udp"},
-{"fodms", {NULL}, 7200, "tcp"},
-{"fodms", {NULL}, 7200, "udp"},
-{"dlip", {NULL}, 7201, "tcp"},
-{"dlip", {NULL}, 7201, "udp"},
-{"ramp", {NULL}, 7227, "tcp"},
-{"ramp", {NULL}, 7227, "udp"},
-{"citrixupp", {NULL}, 7228, "tcp"},
-{"citrixuppg", {NULL}, 7229, "tcp"},
-{"pads", {NULL}, 7237, "tcp"},
-{"cnap", {NULL}, 7262, "tcp"},
-{"cnap", {NULL}, 7262, "udp"},
-{"watchme-7272", {NULL}, 7272, "tcp"},
-{"watchme-7272", {NULL}, 7272, "udp"},
-{"oma-rlp", {NULL}, 7273, "tcp"},
-{"oma-rlp", {NULL}, 7273, "udp"},
-{"oma-rlp-s", {NULL}, 7274, "tcp"},
-{"oma-rlp-s", {NULL}, 7274, "udp"},
-{"oma-ulp", {NULL}, 7275, "tcp"},
-{"oma-ulp", {NULL}, 7275, "udp"},
-{"oma-ilp", {NULL}, 7276, "tcp"},
-{"oma-ilp", {NULL}, 7276, "udp"},
-{"oma-ilp-s", {NULL}, 7277, "tcp"},
-{"oma-ilp-s", {NULL}, 7277, "udp"},
-{"oma-dcdocbs", {NULL}, 7278, "tcp"},
-{"oma-dcdocbs", {NULL}, 7278, "udp"},
-{"ctxlic", {NULL}, 7279, "tcp"},
-{"ctxlic", {NULL}, 7279, "udp"},
-{"itactionserver1", {NULL}, 7280, "tcp"},
-{"itactionserver1", {NULL}, 7280, "udp"},
-{"itactionserver2", {NULL}, 7281, "tcp"},
-{"itactionserver2", {NULL}, 7281, "udp"},
-{"mzca-action", {NULL}, 7282, "tcp"},
-{"mzca-alert", {NULL}, 7282, "udp"},
-{"lcm-server", {NULL}, 7365, "tcp"},
-{"lcm-server", {NULL}, 7365, "udp"},
-{"mindfilesys", {NULL}, 7391, "tcp"},
-{"mindfilesys", {NULL}, 7391, "udp"},
-{"mrssrendezvous", {NULL}, 7392, "tcp"},
-{"mrssrendezvous", {NULL}, 7392, "udp"},
-{"nfoldman", {NULL}, 7393, "tcp"},
-{"nfoldman", {NULL}, 7393, "udp"},
-{"fse", {NULL}, 7394, "tcp"},
-{"fse", {NULL}, 7394, "udp"},
-{"winqedit", {NULL}, 7395, "tcp"},
-{"winqedit", {NULL}, 7395, "udp"},
-{"hexarc", {NULL}, 7397, "tcp"},
-{"hexarc", {NULL}, 7397, "udp"},
-{"rtps-discovery", {NULL}, 7400, "tcp"},
-{"rtps-discovery", {NULL}, 7400, "udp"},
-{"rtps-dd-ut", {NULL}, 7401, "tcp"},
-{"rtps-dd-ut", {NULL}, 7401, "udp"},
-{"rtps-dd-mt", {NULL}, 7402, "tcp"},
-{"rtps-dd-mt", {NULL}, 7402, "udp"},
-{"ionixnetmon", {NULL}, 7410, "tcp"},
-{"ionixnetmon", {NULL}, 7410, "udp"},
-{"mtportmon", {NULL}, 7421, "tcp"},
-{"mtportmon", {NULL}, 7421, "udp"},
-{"pmdmgr", {NULL}, 7426, "tcp"},
-{"pmdmgr", {NULL}, 7426, "udp"},
-{"oveadmgr", {NULL}, 7427, "tcp"},
-{"oveadmgr", {NULL}, 7427, "udp"},
-{"ovladmgr", {NULL}, 7428, "tcp"},
-{"ovladmgr", {NULL}, 7428, "udp"},
-{"opi-sock", {NULL}, 7429, "tcp"},
-{"opi-sock", {NULL}, 7429, "udp"},
-{"xmpv7", {NULL}, 7430, "tcp"},
-{"xmpv7", {NULL}, 7430, "udp"},
-{"pmd", {NULL}, 7431, "tcp"},
-{"pmd", {NULL}, 7431, "udp"},
-{"faximum", {NULL}, 7437, "tcp"},
-{"faximum", {NULL}, 7437, "udp"},
-{"oracleas-https", {NULL}, 7443, "tcp"},
-{"oracleas-https", {NULL}, 7443, "udp"},
-{"rise", {NULL}, 7473, "tcp"},
-{"rise", {NULL}, 7473, "udp"},
-{"telops-lmd", {NULL}, 7491, "tcp"},
-{"telops-lmd", {NULL}, 7491, "udp"},
-{"silhouette", {NULL}, 7500, "tcp"},
-{"silhouette", {NULL}, 7500, "udp"},
-{"ovbus", {NULL}, 7501, "tcp"},
-{"ovbus", {NULL}, 7501, "udp"},
-{"acplt", {NULL}, 7509, "tcp"},
-{"ovhpas", {NULL}, 7510, "tcp"},
-{"ovhpas", {NULL}, 7510, "udp"},
-{"pafec-lm", {NULL}, 7511, "tcp"},
-{"pafec-lm", {NULL}, 7511, "udp"},
-{"saratoga", {NULL}, 7542, "tcp"},
-{"saratoga", {NULL}, 7542, "udp"},
-{"atul", {NULL}, 7543, "tcp"},
-{"atul", {NULL}, 7543, "udp"},
-{"nta-ds", {NULL}, 7544, "tcp"},
-{"nta-ds", {NULL}, 7544, "udp"},
-{"nta-us", {NULL}, 7545, "tcp"},
-{"nta-us", {NULL}, 7545, "udp"},
-{"cfs", {NULL}, 7546, "tcp"},
-{"cfs", {NULL}, 7546, "udp"},
-{"cwmp", {NULL}, 7547, "tcp"},
-{"cwmp", {NULL}, 7547, "udp"},
-{"tidp", {NULL}, 7548, "tcp"},
-{"tidp", {NULL}, 7548, "udp"},
-{"nls-tl", {NULL}, 7549, "tcp"},
-{"nls-tl", {NULL}, 7549, "udp"},
-{"sncp", {NULL}, 7560, "tcp"},
-{"sncp", {NULL}, 7560, "udp"},
-{"cfw", {NULL}, 7563, "tcp"},
-{"vsi-omega", {NULL}, 7566, "tcp"},
-{"vsi-omega", {NULL}, 7566, "udp"},
-{"dell-eql-asm", {NULL}, 7569, "tcp"},
-{"aries-kfinder", {NULL}, 7570, "tcp"},
-{"aries-kfinder", {NULL}, 7570, "udp"},
-{"sun-lm", {NULL}, 7588, "tcp"},
-{"sun-lm", {NULL}, 7588, "udp"},
-{"indi", {NULL}, 7624, "tcp"},
-{"indi", {NULL}, 7624, "udp"},
-{"simco", {NULL}, 7626, "tcp"},
-{"simco", {NULL}, 7626, "sctp"},
-{"soap-http", {NULL}, 7627, "tcp"},
-{"soap-http", {NULL}, 7627, "udp"},
-{"zen-pawn", {NULL}, 7628, "tcp"},
-{"zen-pawn", {NULL}, 7628, "udp"},
-{"xdas", {NULL}, 7629, "tcp"},
-{"xdas", {NULL}, 7629, "udp"},
-{"hawk", {NULL}, 7630, "tcp"},
-{"tesla-sys-msg", {NULL}, 7631, "tcp"},
-{"pmdfmgt", {NULL}, 7633, "tcp"},
-{"pmdfmgt", {NULL}, 7633, "udp"},
-{"cuseeme", {NULL}, 7648, "tcp"},
-{"cuseeme", {NULL}, 7648, "udp"},
-{"imqstomp", {NULL}, 7672, "tcp"},
-{"imqstomps", {NULL}, 7673, "tcp"},
-{"imqtunnels", {NULL}, 7674, "tcp"},
-{"imqtunnels", {NULL}, 7674, "udp"},
-{"imqtunnel", {NULL}, 7675, "tcp"},
-{"imqtunnel", {NULL}, 7675, "udp"},
-{"imqbrokerd", {NULL}, 7676, "tcp"},
-{"imqbrokerd", {NULL}, 7676, "udp"},
-{"sun-user-https", {NULL}, 7677, "tcp"},
-{"sun-user-https", {NULL}, 7677, "udp"},
-{"pando-pub", {NULL}, 7680, "tcp"},
-{"pando-pub", {NULL}, 7680, "udp"},
-{"collaber", {NULL}, 7689, "tcp"},
-{"collaber", {NULL}, 7689, "udp"},
-{"klio", {NULL}, 7697, "tcp"},
-{"klio", {NULL}, 7697, "udp"},
-{"em7-secom", {NULL}, 7700, "tcp"},
-{"sync-em7", {NULL}, 7707, "tcp"},
-{"sync-em7", {NULL}, 7707, "udp"},
-{"scinet", {NULL}, 7708, "tcp"},
-{"scinet", {NULL}, 7708, "udp"},
-{"medimageportal", {NULL}, 7720, "tcp"},
-{"medimageportal", {NULL}, 7720, "udp"},
-{"nsdeepfreezectl", {NULL}, 7724, "tcp"},
-{"nsdeepfreezectl", {NULL}, 7724, "udp"},
-{"nitrogen", {NULL}, 7725, "tcp"},
-{"nitrogen", {NULL}, 7725, "udp"},
-{"freezexservice", {NULL}, 7726, "tcp"},
-{"freezexservice", {NULL}, 7726, "udp"},
-{"trident-data", {NULL}, 7727, "tcp"},
-{"trident-data", {NULL}, 7727, "udp"},
-{"smip", {NULL}, 7734, "tcp"},
-{"smip", {NULL}, 7734, "udp"},
-{"aiagent", {NULL}, 7738, "tcp"},
-{"aiagent", {NULL}, 7738, "udp"},
-{"scriptview", {NULL}, 7741, "tcp"},
-{"scriptview", {NULL}, 7741, "udp"},
-{"msss", {NULL}, 7742, "tcp"},
-{"sstp-1", {NULL}, 7743, "tcp"},
-{"sstp-1", {NULL}, 7743, "udp"},
-{"raqmon-pdu", {NULL}, 7744, "tcp"},
-{"raqmon-pdu", {NULL}, 7744, "udp"},
-{"prgp", {NULL}, 7747, "tcp"},
-{"prgp", {NULL}, 7747, "udp"},
-{"cbt", {NULL}, 7777, "tcp"},
-{"cbt", {NULL}, 7777, "udp"},
-{"interwise", {NULL}, 7778, "tcp"},
-{"interwise", {NULL}, 7778, "udp"},
-{"vstat", {NULL}, 7779, "tcp"},
-{"vstat", {NULL}, 7779, "udp"},
-{"accu-lmgr", {NULL}, 7781, "tcp"},
-{"accu-lmgr", {NULL}, 7781, "udp"},
-{"minivend", {NULL}, 7786, "tcp"},
-{"minivend", {NULL}, 7786, "udp"},
-{"popup-reminders", {NULL}, 7787, "tcp"},
-{"popup-reminders", {NULL}, 7787, "udp"},
-{"office-tools", {NULL}, 7789, "tcp"},
-{"office-tools", {NULL}, 7789, "udp"},
-{"q3ade", {NULL}, 7794, "tcp"},
-{"q3ade", {NULL}, 7794, "udp"},
-{"pnet-conn", {NULL}, 7797, "tcp"},
-{"pnet-conn", {NULL}, 7797, "udp"},
-{"pnet-enc", {NULL}, 7798, "tcp"},
-{"pnet-enc", {NULL}, 7798, "udp"},
-{"altbsdp", {NULL}, 7799, "tcp"},
-{"altbsdp", {NULL}, 7799, "udp"},
-{"asr", {NULL}, 7800, "tcp"},
-{"asr", {NULL}, 7800, "udp"},
-{"ssp-client", {NULL}, 7801, "tcp"},
-{"ssp-client", {NULL}, 7801, "udp"},
-{"rbt-wanopt", {NULL}, 7810, "tcp"},
-{"rbt-wanopt", {NULL}, 7810, "udp"},
-{"apc-7845", {NULL}, 7845, "tcp"},
-{"apc-7845", {NULL}, 7845, "udp"},
-{"apc-7846", {NULL}, 7846, "tcp"},
-{"apc-7846", {NULL}, 7846, "udp"},
-{"mobileanalyzer", {NULL}, 7869, "tcp"},
-{"rbt-smc", {NULL}, 7870, "tcp"},
-{"pss", {NULL}, 7880, "tcp"},
-{"pss", {NULL}, 7880, "udp"},
-{"ubroker", {NULL}, 7887, "tcp"},
-{"ubroker", {NULL}, 7887, "udp"},
-{"mevent", {NULL}, 7900, "tcp"},
-{"mevent", {NULL}, 7900, "udp"},
-{"tnos-sp", {NULL}, 7901, "tcp"},
-{"tnos-sp", {NULL}, 7901, "udp"},
-{"tnos-dp", {NULL}, 7902, "tcp"},
-{"tnos-dp", {NULL}, 7902, "udp"},
-{"tnos-dps", {NULL}, 7903, "tcp"},
-{"tnos-dps", {NULL}, 7903, "udp"},
-{"qo-secure", {NULL}, 7913, "tcp"},
-{"qo-secure", {NULL}, 7913, "udp"},
-{"t2-drm", {NULL}, 7932, "tcp"},
-{"t2-drm", {NULL}, 7932, "udp"},
-{"t2-brm", {NULL}, 7933, "tcp"},
-{"t2-brm", {NULL}, 7933, "udp"},
-{"supercell", {NULL}, 7967, "tcp"},
-{"supercell", {NULL}, 7967, "udp"},
-{"micromuse-ncps", {NULL}, 7979, "tcp"},
-{"micromuse-ncps", {NULL}, 7979, "udp"},
-{"quest-vista", {NULL}, 7980, "tcp"},
-{"quest-vista", {NULL}, 7980, "udp"},
-{"sossd-collect", {NULL}, 7981, "tcp"},
-{"sossd-agent", {NULL}, 7982, "tcp"},
-{"sossd-disc", {NULL}, 7982, "udp"},
-{"pushns", {NULL}, 7997, "tcp"},
-{"usicontentpush", {NULL}, 7998, "udp"},
-{"irdmi2", {NULL}, 7999, "tcp"},
-{"irdmi2", {NULL}, 7999, "udp"},
-{"irdmi", {NULL}, 8000, "tcp"},
-{"irdmi", {NULL}, 8000, "udp"},
-{"vcom-tunnel", {NULL}, 8001, "tcp"},
-{"vcom-tunnel", {NULL}, 8001, "udp"},
-{"teradataordbms", {NULL}, 8002, "tcp"},
-{"teradataordbms", {NULL}, 8002, "udp"},
-{"mcreport", {NULL}, 8003, "tcp"},
-{"mcreport", {NULL}, 8003, "udp"},
-{"mxi", {NULL}, 8005, "tcp"},
-{"mxi", {NULL}, 8005, "udp"},
-{"http-alt", {NULL}, 8008, "tcp"},
-{"http-alt", {NULL}, 8008, "udp"},
-{"qbdb", {NULL}, 8019, "tcp"},
-{"qbdb", {NULL}, 8019, "udp"},
-{"intu-ec-svcdisc", {NULL}, 8020, "tcp"},
-{"intu-ec-svcdisc", {NULL}, 8020, "udp"},
-{"intu-ec-client", {NULL}, 8021, "tcp"},
-{"intu-ec-client", {NULL}, 8021, "udp"},
-{"oa-system", {NULL}, 8022, "tcp"},
-{"oa-system", {NULL}, 8022, "udp"},
-{"ca-audit-da", {NULL}, 8025, "tcp"},
-{"ca-audit-da", {NULL}, 8025, "udp"},
-{"ca-audit-ds", {NULL}, 8026, "tcp"},
-{"ca-audit-ds", {NULL}, 8026, "udp"},
-{"pro-ed", {NULL}, 8032, "tcp"},
-{"pro-ed", {NULL}, 8032, "udp"},
-{"mindprint", {NULL}, 8033, "tcp"},
-{"mindprint", {NULL}, 8033, "udp"},
-{"vantronix-mgmt", {NULL}, 8034, "tcp"},
-{"vantronix-mgmt", {NULL}, 8034, "udp"},
-{"ampify", {NULL}, 8040, "tcp"},
-{"ampify", {NULL}, 8040, "udp"},
-{"fs-agent", {NULL}, 8042, "tcp"},
-{"fs-server", {NULL}, 8043, "tcp"},
-{"fs-mgmt", {NULL}, 8044, "tcp"},
-{"senomix01", {NULL}, 8052, "tcp"},
-{"senomix01", {NULL}, 8052, "udp"},
-{"senomix02", {NULL}, 8053, "tcp"},
-{"senomix02", {NULL}, 8053, "udp"},
-{"senomix03", {NULL}, 8054, "tcp"},
-{"senomix03", {NULL}, 8054, "udp"},
-{"senomix04", {NULL}, 8055, "tcp"},
-{"senomix04", {NULL}, 8055, "udp"},
-{"senomix05", {NULL}, 8056, "tcp"},
-{"senomix05", {NULL}, 8056, "udp"},
-{"senomix06", {NULL}, 8057, "tcp"},
-{"senomix06", {NULL}, 8057, "udp"},
-{"senomix07", {NULL}, 8058, "tcp"},
-{"senomix07", {NULL}, 8058, "udp"},
-{"senomix08", {NULL}, 8059, "tcp"},
-{"senomix08", {NULL}, 8059, "udp"},
-{"gadugadu", {NULL}, 8074, "tcp"},
-{"gadugadu", {NULL}, 8074, "udp"},
-{"http-alt", {NULL}, 8080, "tcp"},
-{"http-alt", {NULL}, 8080, "udp"},
-{"sunproxyadmin", {NULL}, 8081, "tcp"},
-{"sunproxyadmin", {NULL}, 8081, "udp"},
-{"us-cli", {NULL}, 8082, "tcp"},
-{"us-cli", {NULL}, 8082, "udp"},
-{"us-srv", {NULL}, 8083, "tcp"},
-{"us-srv", {NULL}, 8083, "udp"},
-{"d-s-n", {NULL}, 8086, "tcp"},
-{"d-s-n", {NULL}, 8086, "udp"},
-{"simplifymedia", {NULL}, 8087, "tcp"},
-{"simplifymedia", {NULL}, 8087, "udp"},
-{"radan-http", {NULL}, 8088, "tcp"},
-{"radan-http", {NULL}, 8088, "udp"},
-{"jamlink", {NULL}, 8091, "tcp"},
-{"sac", {NULL}, 8097, "tcp"},
-{"sac", {NULL}, 8097, "udp"},
-{"xprint-server", {NULL}, 8100, "tcp"},
-{"xprint-server", {NULL}, 8100, "udp"},
-{"ldoms-migr", {NULL}, 8101, "tcp"},
-{"mtl8000-matrix", {NULL}, 8115, "tcp"},
-{"mtl8000-matrix", {NULL}, 8115, "udp"},
-{"cp-cluster", {NULL}, 8116, "tcp"},
-{"cp-cluster", {NULL}, 8116, "udp"},
-{"privoxy", {NULL}, 8118, "tcp"},
-{"privoxy", {NULL}, 8118, "udp"},
-{"apollo-data", {NULL}, 8121, "tcp"},
-{"apollo-data", {NULL}, 8121, "udp"},
-{"apollo-admin", {NULL}, 8122, "tcp"},
-{"apollo-admin", {NULL}, 8122, "udp"},
-{"paycash-online", {NULL}, 8128, "tcp"},
-{"paycash-online", {NULL}, 8128, "udp"},
-{"paycash-wbp", {NULL}, 8129, "tcp"},
-{"paycash-wbp", {NULL}, 8129, "udp"},
-{"indigo-vrmi", {NULL}, 8130, "tcp"},
-{"indigo-vrmi", {NULL}, 8130, "udp"},
-{"indigo-vbcp", {NULL}, 8131, "tcp"},
-{"indigo-vbcp", {NULL}, 8131, "udp"},
-{"dbabble", {NULL}, 8132, "tcp"},
-{"dbabble", {NULL}, 8132, "udp"},
-{"isdd", {NULL}, 8148, "tcp"},
-{"isdd", {NULL}, 8148, "udp"},
-{"patrol", {NULL}, 8160, "tcp"},
-{"patrol", {NULL}, 8160, "udp"},
-{"patrol-snmp", {NULL}, 8161, "tcp"},
-{"patrol-snmp", {NULL}, 8161, "udp"},
-{"vmware-fdm", {NULL}, 8182, "tcp"},
-{"vmware-fdm", {NULL}, 8182, "udp"},
-{"proremote", {NULL}, 8183, "tcp"},
-{"itach", {NULL}, 8184, "tcp"},
-{"itach", {NULL}, 8184, "udp"},
-{"spytechphone", {NULL}, 8192, "tcp"},
-{"spytechphone", {NULL}, 8192, "udp"},
-{"blp1", {NULL}, 8194, "tcp"},
-{"blp1", {NULL}, 8194, "udp"},
-{"blp2", {NULL}, 8195, "tcp"},
-{"blp2", {NULL}, 8195, "udp"},
-{"vvr-data", {NULL}, 8199, "tcp"},
-{"vvr-data", {NULL}, 8199, "udp"},
-{"trivnet1", {NULL}, 8200, "tcp"},
-{"trivnet1", {NULL}, 8200, "udp"},
-{"trivnet2", {NULL}, 8201, "tcp"},
-{"trivnet2", {NULL}, 8201, "udp"},
-{"lm-perfworks", {NULL}, 8204, "tcp"},
-{"lm-perfworks", {NULL}, 8204, "udp"},
-{"lm-instmgr", {NULL}, 8205, "tcp"},
-{"lm-instmgr", {NULL}, 8205, "udp"},
-{"lm-dta", {NULL}, 8206, "tcp"},
-{"lm-dta", {NULL}, 8206, "udp"},
-{"lm-sserver", {NULL}, 8207, "tcp"},
-{"lm-sserver", {NULL}, 8207, "udp"},
-{"lm-webwatcher", {NULL}, 8208, "tcp"},
-{"lm-webwatcher", {NULL}, 8208, "udp"},
-{"rexecj", {NULL}, 8230, "tcp"},
-{"rexecj", {NULL}, 8230, "udp"},
-{"synapse-nhttps", {NULL}, 8243, "tcp"},
-{"synapse-nhttps", {NULL}, 8243, "udp"},
-{"pando-sec", {NULL}, 8276, "tcp"},
-{"pando-sec", {NULL}, 8276, "udp"},
-{"synapse-nhttp", {NULL}, 8280, "tcp"},
-{"synapse-nhttp", {NULL}, 8280, "udp"},
-{"blp3", {NULL}, 8292, "tcp"},
-{"blp3", {NULL}, 8292, "udp"},
-{"hiperscan-id", {NULL}, 8293, "tcp"},
-{"blp4", {NULL}, 8294, "tcp"},
-{"blp4", {NULL}, 8294, "udp"},
-{"tmi", {NULL}, 8300, "tcp"},
-{"tmi", {NULL}, 8300, "udp"},
-{"amberon", {NULL}, 8301, "tcp"},
-{"amberon", {NULL}, 8301, "udp"},
-{"tnp-discover", {NULL}, 8320, "tcp"},
-{"tnp-discover", {NULL}, 8320, "udp"},
-{"tnp", {NULL}, 8321, "tcp"},
-{"tnp", {NULL}, 8321, "udp"},
-{"server-find", {NULL}, 8351, "tcp"},
-{"server-find", {NULL}, 8351, "udp"},
-{"cruise-enum", {NULL}, 8376, "tcp"},
-{"cruise-enum", {NULL}, 8376, "udp"},
-{"cruise-swroute", {NULL}, 8377, "tcp"},
-{"cruise-swroute", {NULL}, 8377, "udp"},
-{"cruise-config", {NULL}, 8378, "tcp"},
-{"cruise-config", {NULL}, 8378, "udp"},
-{"cruise-diags", {NULL}, 8379, "tcp"},
-{"cruise-diags", {NULL}, 8379, "udp"},
-{"cruise-update", {NULL}, 8380, "tcp"},
-{"cruise-update", {NULL}, 8380, "udp"},
-{"m2mservices", {NULL}, 8383, "tcp"},
-{"m2mservices", {NULL}, 8383, "udp"},
-{"cvd", {NULL}, 8400, "tcp"},
-{"cvd", {NULL}, 8400, "udp"},
-{"sabarsd", {NULL}, 8401, "tcp"},
-{"sabarsd", {NULL}, 8401, "udp"},
-{"abarsd", {NULL}, 8402, "tcp"},
-{"abarsd", {NULL}, 8402, "udp"},
-{"admind", {NULL}, 8403, "tcp"},
-{"admind", {NULL}, 8403, "udp"},
-{"svcloud", {NULL}, 8404, "tcp"},
-{"svbackup", {NULL}, 8405, "tcp"},
-{"espeech", {NULL}, 8416, "tcp"},
-{"espeech", {NULL}, 8416, "udp"},
-{"espeech-rtp", {NULL}, 8417, "tcp"},
-{"espeech-rtp", {NULL}, 8417, "udp"},
-{"cybro-a-bus", {NULL}, 8442, "tcp"},
-{"cybro-a-bus", {NULL}, 8442, "udp"},
-{"pcsync-https", {NULL}, 8443, "tcp"},
-{"pcsync-https", {NULL}, 8443, "udp"},
-{"pcsync-http", {NULL}, 8444, "tcp"},
-{"pcsync-http", {NULL}, 8444, "udp"},
-{"npmp", {NULL}, 8450, "tcp"},
-{"npmp", {NULL}, 8450, "udp"},
-{"cisco-avp", {NULL}, 8470, "tcp"},
-{"pim-port", {NULL}, 8471, "tcp"},
-{"pim-port", {NULL}, 8471, "sctp"},
-{"otv", {NULL}, 8472, "tcp"},
-{"otv", {NULL}, 8472, "udp"},
-{"vp2p", {NULL}, 8473, "tcp"},
-{"vp2p", {NULL}, 8473, "udp"},
-{"noteshare", {NULL}, 8474, "tcp"},
-{"noteshare", {NULL}, 8474, "udp"},
-{"fmtp", {NULL}, 8500, "tcp"},
-{"fmtp", {NULL}, 8500, "udp"},
-{"rtsp-alt", {NULL}, 8554, "tcp"},
-{"rtsp-alt", {NULL}, 8554, "udp"},
-{"d-fence", {NULL}, 8555, "tcp"},
-{"d-fence", {NULL}, 8555, "udp"},
-{"oap-admin", {NULL}, 8567, "tcp"},
-{"oap-admin", {NULL}, 8567, "udp"},
-{"asterix", {NULL}, 8600, "tcp"},
-{"asterix", {NULL}, 8600, "udp"},
-{"canon-mfnp", {NULL}, 8610, "tcp"},
-{"canon-mfnp", {NULL}, 8610, "udp"},
-{"canon-bjnp1", {NULL}, 8611, "tcp"},
-{"canon-bjnp1", {NULL}, 8611, "udp"},
-{"canon-bjnp2", {NULL}, 8612, "tcp"},
-{"canon-bjnp2", {NULL}, 8612, "udp"},
-{"canon-bjnp3", {NULL}, 8613, "tcp"},
-{"canon-bjnp3", {NULL}, 8613, "udp"},
-{"canon-bjnp4", {NULL}, 8614, "tcp"},
-{"canon-bjnp4", {NULL}, 8614, "udp"},
-{"sun-as-jmxrmi", {NULL}, 8686, "tcp"},
-{"sun-as-jmxrmi", {NULL}, 8686, "udp"},
-{"vnyx", {NULL}, 8699, "tcp"},
-{"vnyx", {NULL}, 8699, "udp"},
-{"dtp-net", {NULL}, 8732, "udp"},
-{"ibus", {NULL}, 8733, "tcp"},
-{"ibus", {NULL}, 8733, "udp"},
-{"mc-appserver", {NULL}, 8763, "tcp"},
-{"mc-appserver", {NULL}, 8763, "udp"},
-{"openqueue", {NULL}, 8764, "tcp"},
-{"openqueue", {NULL}, 8764, "udp"},
-{"ultraseek-http", {NULL}, 8765, "tcp"},
-{"ultraseek-http", {NULL}, 8765, "udp"},
-{"dpap", {NULL}, 8770, "tcp"},
-{"dpap", {NULL}, 8770, "udp"},
-{"msgclnt", {NULL}, 8786, "tcp"},
-{"msgclnt", {NULL}, 8786, "udp"},
-{"msgsrvr", {NULL}, 8787, "tcp"},
-{"msgsrvr", {NULL}, 8787, "udp"},
-{"sunwebadmin", {NULL}, 8800, "tcp"},
-{"sunwebadmin", {NULL}, 8800, "udp"},
-{"truecm", {NULL}, 8804, "tcp"},
-{"truecm", {NULL}, 8804, "udp"},
-{"dxspider", {NULL}, 8873, "tcp"},
-{"dxspider", {NULL}, 8873, "udp"},
-{"cddbp-alt", {NULL}, 8880, "tcp"},
-{"cddbp-alt", {NULL}, 8880, "udp"},
-{"secure-mqtt", {NULL}, 8883, "tcp"},
-{"secure-mqtt", {NULL}, 8883, "udp"},
-{"ddi-tcp-1", {NULL}, 8888, "tcp"},
-{"ddi-udp-1", {NULL}, 8888, "udp"},
-{"ddi-tcp-2", {NULL}, 8889, "tcp"},
-{"ddi-udp-2", {NULL}, 8889, "udp"},
-{"ddi-tcp-3", {NULL}, 8890, "tcp"},
-{"ddi-udp-3", {NULL}, 8890, "udp"},
-{"ddi-tcp-4", {NULL}, 8891, "tcp"},
-{"ddi-udp-4", {NULL}, 8891, "udp"},
-{"ddi-tcp-5", {NULL}, 8892, "tcp"},
-{"ddi-udp-5", {NULL}, 8892, "udp"},
-{"ddi-tcp-6", {NULL}, 8893, "tcp"},
-{"ddi-udp-6", {NULL}, 8893, "udp"},
-{"ddi-tcp-7", {NULL}, 8894, "tcp"},
-{"ddi-udp-7", {NULL}, 8894, "udp"},
-{"ospf-lite", {NULL}, 8899, "tcp"},
-{"ospf-lite", {NULL}, 8899, "udp"},
-{"jmb-cds1", {NULL}, 8900, "tcp"},
-{"jmb-cds1", {NULL}, 8900, "udp"},
-{"jmb-cds2", {NULL}, 8901, "tcp"},
-{"jmb-cds2", {NULL}, 8901, "udp"},
-{"manyone-http", {NULL}, 8910, "tcp"},
-{"manyone-http", {NULL}, 8910, "udp"},
-{"manyone-xml", {NULL}, 8911, "tcp"},
-{"manyone-xml", {NULL}, 8911, "udp"},
-{"wcbackup", {NULL}, 8912, "tcp"},
-{"wcbackup", {NULL}, 8912, "udp"},
-{"dragonfly", {NULL}, 8913, "tcp"},
-{"dragonfly", {NULL}, 8913, "udp"},
-{"twds", {NULL}, 8937, "tcp"},
-{"cumulus-admin", {NULL}, 8954, "tcp"},
-{"cumulus-admin", {NULL}, 8954, "udp"},
-{"sunwebadmins", {NULL}, 8989, "tcp"},
-{"sunwebadmins", {NULL}, 8989, "udp"},
-{"http-wmap", {NULL}, 8990, "tcp"},
-{"http-wmap", {NULL}, 8990, "udp"},
-{"https-wmap", {NULL}, 8991, "tcp"},
-{"https-wmap", {NULL}, 8991, "udp"},
-{"bctp", {NULL}, 8999, "tcp"},
-{"bctp", {NULL}, 8999, "udp"},
-{"cslistener", {NULL}, 9000, "tcp"},
-{"cslistener", {NULL}, 9000, "udp"},
-{"etlservicemgr", {NULL}, 9001, "tcp"},
-{"etlservicemgr", {NULL}, 9001, "udp"},
-{"dynamid", {NULL}, 9002, "tcp"},
-{"dynamid", {NULL}, 9002, "udp"},
-{"ogs-client", {NULL}, 9007, "udp"},
-{"ogs-server", {NULL}, 9008, "tcp"},
-{"pichat", {NULL}, 9009, "tcp"},
-{"pichat", {NULL}, 9009, "udp"},
-{"sdr", {NULL}, 9010, "tcp"},
-{"tambora", {NULL}, 9020, "tcp"},
-{"tambora", {NULL}, 9020, "udp"},
-{"panagolin-ident", {NULL}, 9021, "tcp"},
-{"panagolin-ident", {NULL}, 9021, "udp"},
-{"paragent", {NULL}, 9022, "tcp"},
-{"paragent", {NULL}, 9022, "udp"},
-{"swa-1", {NULL}, 9023, "tcp"},
-{"swa-1", {NULL}, 9023, "udp"},
-{"swa-2", {NULL}, 9024, "tcp"},
-{"swa-2", {NULL}, 9024, "udp"},
-{"swa-3", {NULL}, 9025, "tcp"},
-{"swa-3", {NULL}, 9025, "udp"},
-{"swa-4", {NULL}, 9026, "tcp"},
-{"swa-4", {NULL}, 9026, "udp"},
-{"versiera", {NULL}, 9050, "tcp"},
-{"fio-cmgmt", {NULL}, 9051, "tcp"},
-{"glrpc", {NULL}, 9080, "tcp"},
-{"glrpc", {NULL}, 9080, "udp"},
-{"lcs-ap", {NULL}, 9082, "sctp"},
-{"emc-pp-mgmtsvc", {NULL}, 9083, "tcp"},
-{"aurora", {NULL}, 9084, "tcp"},
-{"aurora", {NULL}, 9084, "udp"},
-{"aurora", {NULL}, 9084, "sctp"},
-{"ibm-rsyscon", {NULL}, 9085, "tcp"},
-{"ibm-rsyscon", {NULL}, 9085, "udp"},
-{"net2display", {NULL}, 9086, "tcp"},
-{"net2display", {NULL}, 9086, "udp"},
-{"classic", {NULL}, 9087, "tcp"},
-{"classic", {NULL}, 9087, "udp"},
-{"sqlexec", {NULL}, 9088, "tcp"},
-{"sqlexec", {NULL}, 9088, "udp"},
-{"sqlexec-ssl", {NULL}, 9089, "tcp"},
-{"sqlexec-ssl", {NULL}, 9089, "udp"},
-{"websm", {NULL}, 9090, "tcp"},
-{"websm", {NULL}, 9090, "udp"},
-{"xmltec-xmlmail", {NULL}, 9091, "tcp"},
-{"xmltec-xmlmail", {NULL}, 9091, "udp"},
-{"XmlIpcRegSvc", {NULL}, 9092, "tcp"},
-{"XmlIpcRegSvc", {NULL}, 9092, "udp"},
-{"hp-pdl-datastr", {NULL}, 9100, "tcp"},
-{"hp-pdl-datastr", {NULL}, 9100, "udp"},
-{"pdl-datastream", {NULL}, 9100, "tcp"},
-{"pdl-datastream", {NULL}, 9100, "udp"},
-{"bacula-dir", {NULL}, 9101, "tcp"},
-{"bacula-dir", {NULL}, 9101, "udp"},
-{"bacula-fd", {NULL}, 9102, "tcp"},
-{"bacula-fd", {NULL}, 9102, "udp"},
-{"bacula-sd", {NULL}, 9103, "tcp"},
-{"bacula-sd", {NULL}, 9103, "udp"},
-{"peerwire", {NULL}, 9104, "tcp"},
-{"peerwire", {NULL}, 9104, "udp"},
-{"xadmin", {NULL}, 9105, "tcp"},
-{"xadmin", {NULL}, 9105, "udp"},
-{"astergate", {NULL}, 9106, "tcp"},
-{"astergate-disc", {NULL}, 9106, "udp"},
-{"astergatefax", {NULL}, 9107, "tcp"},
-{"mxit", {NULL}, 9119, "tcp"},
-{"mxit", {NULL}, 9119, "udp"},
-{"dddp", {NULL}, 9131, "tcp"},
-{"dddp", {NULL}, 9131, "udp"},
-{"apani1", {NULL}, 9160, "tcp"},
-{"apani1", {NULL}, 9160, "udp"},
-{"apani2", {NULL}, 9161, "tcp"},
-{"apani2", {NULL}, 9161, "udp"},
-{"apani3", {NULL}, 9162, "tcp"},
-{"apani3", {NULL}, 9162, "udp"},
-{"apani4", {NULL}, 9163, "tcp"},
-{"apani4", {NULL}, 9163, "udp"},
-{"apani5", {NULL}, 9164, "tcp"},
-{"apani5", {NULL}, 9164, "udp"},
-{"sun-as-jpda", {NULL}, 9191, "tcp"},
-{"sun-as-jpda", {NULL}, 9191, "udp"},
-{"wap-wsp", {NULL}, 9200, "tcp"},
-{"wap-wsp", {NULL}, 9200, "udp"},
-{"wap-wsp-wtp", {NULL}, 9201, "tcp"},
-{"wap-wsp-wtp", {NULL}, 9201, "udp"},
-{"wap-wsp-s", {NULL}, 9202, "tcp"},
-{"wap-wsp-s", {NULL}, 9202, "udp"},
-{"wap-wsp-wtp-s", {NULL}, 9203, "tcp"},
-{"wap-wsp-wtp-s", {NULL}, 9203, "udp"},
-{"wap-vcard", {NULL}, 9204, "tcp"},
-{"wap-vcard", {NULL}, 9204, "udp"},
-{"wap-vcal", {NULL}, 9205, "tcp"},
-{"wap-vcal", {NULL}, 9205, "udp"},
-{"wap-vcard-s", {NULL}, 9206, "tcp"},
-{"wap-vcard-s", {NULL}, 9206, "udp"},
-{"wap-vcal-s", {NULL}, 9207, "tcp"},
-{"wap-vcal-s", {NULL}, 9207, "udp"},
-{"rjcdb-vcards", {NULL}, 9208, "tcp"},
-{"rjcdb-vcards", {NULL}, 9208, "udp"},
-{"almobile-system", {NULL}, 9209, "tcp"},
-{"almobile-system", {NULL}, 9209, "udp"},
-{"oma-mlp", {NULL}, 9210, "tcp"},
-{"oma-mlp", {NULL}, 9210, "udp"},
-{"oma-mlp-s", {NULL}, 9211, "tcp"},
-{"oma-mlp-s", {NULL}, 9211, "udp"},
-{"serverviewdbms", {NULL}, 9212, "tcp"},
-{"serverviewdbms", {NULL}, 9212, "udp"},
-{"serverstart", {NULL}, 9213, "tcp"},
-{"serverstart", {NULL}, 9213, "udp"},
-{"ipdcesgbs", {NULL}, 9214, "tcp"},
-{"ipdcesgbs", {NULL}, 9214, "udp"},
-{"insis", {NULL}, 9215, "tcp"},
-{"insis", {NULL}, 9215, "udp"},
-{"acme", {NULL}, 9216, "tcp"},
-{"acme", {NULL}, 9216, "udp"},
-{"fsc-port", {NULL}, 9217, "tcp"},
-{"fsc-port", {NULL}, 9217, "udp"},
-{"teamcoherence", {NULL}, 9222, "tcp"},
-{"teamcoherence", {NULL}, 9222, "udp"},
-{"mon", {NULL}, 9255, "tcp"},
-{"mon", {NULL}, 9255, "udp"},
-{"pegasus", {NULL}, 9278, "tcp"},
-{"pegasus", {NULL}, 9278, "udp"},
-{"pegasus-ctl", {NULL}, 9279, "tcp"},
-{"pegasus-ctl", {NULL}, 9279, "udp"},
-{"pgps", {NULL}, 9280, "tcp"},
-{"pgps", {NULL}, 9280, "udp"},
-{"swtp-port1", {NULL}, 9281, "tcp"},
-{"swtp-port1", {NULL}, 9281, "udp"},
-{"swtp-port2", {NULL}, 9282, "tcp"},
-{"swtp-port2", {NULL}, 9282, "udp"},
-{"callwaveiam", {NULL}, 9283, "tcp"},
-{"callwaveiam", {NULL}, 9283, "udp"},
-{"visd", {NULL}, 9284, "tcp"},
-{"visd", {NULL}, 9284, "udp"},
-{"n2h2server", {NULL}, 9285, "tcp"},
-{"n2h2server", {NULL}, 9285, "udp"},
-{"n2receive", {NULL}, 9286, "udp"},
-{"cumulus", {NULL}, 9287, "tcp"},
-{"cumulus", {NULL}, 9287, "udp"},
-{"armtechdaemon", {NULL}, 9292, "tcp"},
-{"armtechdaemon", {NULL}, 9292, "udp"},
-{"storview", {NULL}, 9293, "tcp"},
-{"storview", {NULL}, 9293, "udp"},
-{"armcenterhttp", {NULL}, 9294, "tcp"},
-{"armcenterhttp", {NULL}, 9294, "udp"},
-{"armcenterhttps", {NULL}, 9295, "tcp"},
-{"armcenterhttps", {NULL}, 9295, "udp"},
-{"vrace", {NULL}, 9300, "tcp"},
-{"vrace", {NULL}, 9300, "udp"},
-{"sphinxql", {NULL}, 9306, "tcp"},
-{"sphinxapi", {NULL}, 9312, "tcp"},
-{"secure-ts", {NULL}, 9318, "tcp"},
-{"secure-ts", {NULL}, 9318, "udp"},
-{"guibase", {NULL}, 9321, "tcp"},
-{"guibase", {NULL}, 9321, "udp"},
-{"mpidcmgr", {NULL}, 9343, "tcp"},
-{"mpidcmgr", {NULL}, 9343, "udp"},
-{"mphlpdmc", {NULL}, 9344, "tcp"},
-{"mphlpdmc", {NULL}, 9344, "udp"},
-{"ctechlicensing", {NULL}, 9346, "tcp"},
-{"ctechlicensing", {NULL}, 9346, "udp"},
-{"fjdmimgr", {NULL}, 9374, "tcp"},
-{"fjdmimgr", {NULL}, 9374, "udp"},
-{"boxp", {NULL}, 9380, "tcp"},
-{"boxp", {NULL}, 9380, "udp"},
-{"d2dconfig", {NULL}, 9387, "tcp"},
-{"d2ddatatrans", {NULL}, 9388, "tcp"},
-{"adws", {NULL}, 9389, "tcp"},
-{"otp", {NULL}, 9390, "tcp"},
-{"fjinvmgr", {NULL}, 9396, "tcp"},
-{"fjinvmgr", {NULL}, 9396, "udp"},
-{"mpidcagt", {NULL}, 9397, "tcp"},
-{"mpidcagt", {NULL}, 9397, "udp"},
-{"sec-t4net-srv", {NULL}, 9400, "tcp"},
-{"sec-t4net-srv", {NULL}, 9400, "udp"},
-{"sec-t4net-clt", {NULL}, 9401, "tcp"},
-{"sec-t4net-clt", {NULL}, 9401, "udp"},
-{"sec-pc2fax-srv", {NULL}, 9402, "tcp"},
-{"sec-pc2fax-srv", {NULL}, 9402, "udp"},
-{"git", {NULL}, 9418, "tcp"},
-{"git", {NULL}, 9418, "udp"},
-{"tungsten-https", {NULL}, 9443, "tcp"},
-{"tungsten-https", {NULL}, 9443, "udp"},
-{"wso2esb-console", {NULL}, 9444, "tcp"},
-{"wso2esb-console", {NULL}, 9444, "udp"},
-{"sntlkeyssrvr", {NULL}, 9450, "tcp"},
-{"sntlkeyssrvr", {NULL}, 9450, "udp"},
-{"ismserver", {NULL}, 9500, "tcp"},
-{"ismserver", {NULL}, 9500, "udp"},
-{"sma-spw", {NULL}, 9522, "udp"},
-{"mngsuite", {NULL}, 9535, "tcp"},
-{"mngsuite", {NULL}, 9535, "udp"},
-{"laes-bf", {NULL}, 9536, "tcp"},
-{"laes-bf", {NULL}, 9536, "udp"},
-{"trispen-sra", {NULL}, 9555, "tcp"},
-{"trispen-sra", {NULL}, 9555, "udp"},
-{"ldgateway", {NULL}, 9592, "tcp"},
-{"ldgateway", {NULL}, 9592, "udp"},
-{"cba8", {NULL}, 9593, "tcp"},
-{"cba8", {NULL}, 9593, "udp"},
-{"msgsys", {NULL}, 9594, "tcp"},
-{"msgsys", {NULL}, 9594, "udp"},
-{"pds", {NULL}, 9595, "tcp"},
-{"pds", {NULL}, 9595, "udp"},
-{"mercury-disc", {NULL}, 9596, "tcp"},
-{"mercury-disc", {NULL}, 9596, "udp"},
-{"pd-admin", {NULL}, 9597, "tcp"},
-{"pd-admin", {NULL}, 9597, "udp"},
-{"vscp", {NULL}, 9598, "tcp"},
-{"vscp", {NULL}, 9598, "udp"},
-{"robix", {NULL}, 9599, "tcp"},
-{"robix", {NULL}, 9599, "udp"},
-{"micromuse-ncpw", {NULL}, 9600, "tcp"},
-{"micromuse-ncpw", {NULL}, 9600, "udp"},
-{"streamcomm-ds", {NULL}, 9612, "tcp"},
-{"streamcomm-ds", {NULL}, 9612, "udp"},
-{"iadt-tls", {NULL}, 9614, "tcp"},
-{"erunbook_agent", {NULL}, 9616, "tcp"},
-{"erunbook_server", {NULL}, 9617, "tcp"},
-{"condor", {NULL}, 9618, "tcp"},
-{"condor", {NULL}, 9618, "udp"},
-{"odbcpathway", {NULL}, 9628, "tcp"},
-{"odbcpathway", {NULL}, 9628, "udp"},
-{"uniport", {NULL}, 9629, "tcp"},
-{"uniport", {NULL}, 9629, "udp"},
-{"peoctlr", {NULL}, 9630, "tcp"},
-{"peocoll", {NULL}, 9631, "tcp"},
-{"mc-comm", {NULL}, 9632, "udp"},
-{"pqsflows", {NULL}, 9640, "tcp"},
-{"xmms2", {NULL}, 9667, "tcp"},
-{"xmms2", {NULL}, 9667, "udp"},
-{"tec5-sdctp", {NULL}, 9668, "tcp"},
-{"tec5-sdctp", {NULL}, 9668, "udp"},
-{"client-wakeup", {NULL}, 9694, "tcp"},
-{"client-wakeup", {NULL}, 9694, "udp"},
-{"ccnx", {NULL}, 9695, "tcp"},
-{"ccnx", {NULL}, 9695, "udp"},
-{"board-roar", {NULL}, 9700, "tcp"},
-{"board-roar", {NULL}, 9700, "udp"},
-{"l5nas-parchan", {NULL}, 9747, "tcp"},
-{"l5nas-parchan", {NULL}, 9747, "udp"},
-{"board-voip", {NULL}, 9750, "tcp"},
-{"board-voip", {NULL}, 9750, "udp"},
-{"rasadv", {NULL}, 9753, "tcp"},
-{"rasadv", {NULL}, 9753, "udp"},
-{"tungsten-http", {NULL}, 9762, "tcp"},
-{"tungsten-http", {NULL}, 9762, "udp"},
-{"davsrc", {NULL}, 9800, "tcp"},
-{"davsrc", {NULL}, 9800, "udp"},
-{"sstp-2", {NULL}, 9801, "tcp"},
-{"sstp-2", {NULL}, 9801, "udp"},
-{"davsrcs", {NULL}, 9802, "tcp"},
-{"davsrcs", {NULL}, 9802, "udp"},
-{"sapv1", {NULL}, 9875, "tcp"},
-{"sapv1", {NULL}, 9875, "udp"},
-{"sd", {NULL}, 9876, "tcp"},
-{"sd", {NULL}, 9876, "udp"},
-{"cyborg-systems", {NULL}, 9888, "tcp"},
-{"cyborg-systems", {NULL}, 9888, "udp"},
-{"gt-proxy", {NULL}, 9889, "tcp"},
-{"gt-proxy", {NULL}, 9889, "udp"},
-{"monkeycom", {NULL}, 9898, "tcp"},
-{"monkeycom", {NULL}, 9898, "udp"},
-{"sctp-tunneling", {NULL}, 9899, "tcp"},
-{"sctp-tunneling", {NULL}, 9899, "udp"},
-{"iua", {NULL}, 9900, "tcp"},
-{"iua", {NULL}, 9900, "udp"},
-{"iua", {NULL}, 9900, "sctp"},
-{"enrp", {NULL}, 9901, "udp"},
-{"enrp-sctp", {NULL}, 9901, "sctp"},
-{"enrp-sctp-tls", {NULL}, 9902, "sctp"},
-{"domaintime", {NULL}, 9909, "tcp"},
-{"domaintime", {NULL}, 9909, "udp"},
-{"sype-transport", {NULL}, 9911, "tcp"},
-{"sype-transport", {NULL}, 9911, "udp"},
-{"apc-9950", {NULL}, 9950, "tcp"},
-{"apc-9950", {NULL}, 9950, "udp"},
-{"apc-9951", {NULL}, 9951, "tcp"},
-{"apc-9951", {NULL}, 9951, "udp"},
-{"apc-9952", {NULL}, 9952, "tcp"},
-{"apc-9952", {NULL}, 9952, "udp"},
-{"acis", {NULL}, 9953, "tcp"},
-{"acis", {NULL}, 9953, "udp"},
-{"odnsp", {NULL}, 9966, "tcp"},
-{"odnsp", {NULL}, 9966, "udp"},
-{"dsm-scm-target", {NULL}, 9987, "tcp"},
-{"dsm-scm-target", {NULL}, 9987, "udp"},
-{"nsesrvr", {NULL}, 9988, "tcp"},
-{"osm-appsrvr", {NULL}, 9990, "tcp"},
-{"osm-appsrvr", {NULL}, 9990, "udp"},
-{"osm-oev", {NULL}, 9991, "tcp"},
-{"osm-oev", {NULL}, 9991, "udp"},
-{"palace-1", {NULL}, 9992, "tcp"},
-{"palace-1", {NULL}, 9992, "udp"},
-{"palace-2", {NULL}, 9993, "tcp"},
-{"palace-2", {NULL}, 9993, "udp"},
-{"palace-3", {NULL}, 9994, "tcp"},
-{"palace-3", {NULL}, 9994, "udp"},
-{"palace-4", {NULL}, 9995, "tcp"},
-{"palace-4", {NULL}, 9995, "udp"},
-{"palace-5", {NULL}, 9996, "tcp"},
-{"palace-5", {NULL}, 9996, "udp"},
-{"palace-6", {NULL}, 9997, "tcp"},
-{"palace-6", {NULL}, 9997, "udp"},
-{"distinct32", {NULL}, 9998, "tcp"},
-{"distinct32", {NULL}, 9998, "udp"},
-{"distinct", {NULL}, 9999, "tcp"},
-{"distinct", {NULL}, 9999, "udp"},
-{"ndmp", {NULL}, 10000, "tcp"},
-{"ndmp", {NULL}, 10000, "udp"},
-{"scp-config", {NULL}, 10001, "tcp"},
-{"scp-config", {NULL}, 10001, "udp"},
-{"documentum", {NULL}, 10002, "tcp"},
-{"documentum", {NULL}, 10002, "udp"},
-{"documentum_s", {NULL}, 10003, "tcp"},
-{"documentum_s", {NULL}, 10003, "udp"},
-{"emcrmirccd", {NULL}, 10004, "tcp"},
-{"emcrmird", {NULL}, 10005, "tcp"},
-{"mvs-capacity", {NULL}, 10007, "tcp"},
-{"mvs-capacity", {NULL}, 10007, "udp"},
-{"octopus", {NULL}, 10008, "tcp"},
-{"octopus", {NULL}, 10008, "udp"},
-{"swdtp-sv", {NULL}, 10009, "tcp"},
-{"swdtp-sv", {NULL}, 10009, "udp"},
-{"rxapi", {NULL}, 10010, "tcp"},
-{"zabbix-agent", {NULL}, 10050, "tcp"},
-{"zabbix-agent", {NULL}, 10050, "udp"},
-{"zabbix-trapper", {NULL}, 10051, "tcp"},
-{"zabbix-trapper", {NULL}, 10051, "udp"},
-{"qptlmd", {NULL}, 10055, "tcp"},
-{"amanda", {NULL}, 10080, "tcp"},
-{"amanda", {NULL}, 10080, "udp"},
-{"famdc", {NULL}, 10081, "tcp"},
-{"famdc", {NULL}, 10081, "udp"},
-{"itap-ddtp", {NULL}, 10100, "tcp"},
-{"itap-ddtp", {NULL}, 10100, "udp"},
-{"ezmeeting-2", {NULL}, 10101, "tcp"},
-{"ezmeeting-2", {NULL}, 10101, "udp"},
-{"ezproxy-2", {NULL}, 10102, "tcp"},
-{"ezproxy-2", {NULL}, 10102, "udp"},
-{"ezrelay", {NULL}, 10103, "tcp"},
-{"ezrelay", {NULL}, 10103, "udp"},
-{"swdtp", {NULL}, 10104, "tcp"},
-{"swdtp", {NULL}, 10104, "udp"},
-{"bctp-server", {NULL}, 10107, "tcp"},
-{"bctp-server", {NULL}, 10107, "udp"},
-{"nmea-0183", {NULL}, 10110, "tcp"},
-{"nmea-0183", {NULL}, 10110, "udp"},
-{"netiq-endpoint", {NULL}, 10113, "tcp"},
-{"netiq-endpoint", {NULL}, 10113, "udp"},
-{"netiq-qcheck", {NULL}, 10114, "tcp"},
-{"netiq-qcheck", {NULL}, 10114, "udp"},
-{"netiq-endpt", {NULL}, 10115, "tcp"},
-{"netiq-endpt", {NULL}, 10115, "udp"},
-{"netiq-voipa", {NULL}, 10116, "tcp"},
-{"netiq-voipa", {NULL}, 10116, "udp"},
-{"iqrm", {NULL}, 10117, "tcp"},
-{"iqrm", {NULL}, 10117, "udp"},
-{"bmc-perf-sd", {NULL}, 10128, "tcp"},
-{"bmc-perf-sd", {NULL}, 10128, "udp"},
-{"bmc-gms", {NULL}, 10129, "tcp"},
-{"qb-db-server", {NULL}, 10160, "tcp"},
-{"qb-db-server", {NULL}, 10160, "udp"},
-{"snmptls", {NULL}, 10161, "tcp"},
-{"snmpdtls", {NULL}, 10161, "udp"},
-{"snmptls-trap", {NULL}, 10162, "tcp"},
-{"snmpdtls-trap", {NULL}, 10162, "udp"},
-{"trisoap", {NULL}, 10200, "tcp"},
-{"trisoap", {NULL}, 10200, "udp"},
-{"rsms", {NULL}, 10201, "tcp"},
-{"rscs", {NULL}, 10201, "udp"},
-{"apollo-relay", {NULL}, 10252, "tcp"},
-{"apollo-relay", {NULL}, 10252, "udp"},
-{"axis-wimp-port", {NULL}, 10260, "tcp"},
-{"axis-wimp-port", {NULL}, 10260, "udp"},
-{"blocks", {NULL}, 10288, "tcp"},
-{"blocks", {NULL}, 10288, "udp"},
-{"cosir", {NULL}, 10321, "tcp"},
-{"hip-nat-t", {NULL}, 10500, "udp"},
-{"MOS-lower", {NULL}, 10540, "tcp"},
-{"MOS-lower", {NULL}, 10540, "udp"},
-{"MOS-upper", {NULL}, 10541, "tcp"},
-{"MOS-upper", {NULL}, 10541, "udp"},
-{"MOS-aux", {NULL}, 10542, "tcp"},
-{"MOS-aux", {NULL}, 10542, "udp"},
-{"MOS-soap", {NULL}, 10543, "tcp"},
-{"MOS-soap", {NULL}, 10543, "udp"},
-{"MOS-soap-opt", {NULL}, 10544, "tcp"},
-{"MOS-soap-opt", {NULL}, 10544, "udp"},
-{"gap", {NULL}, 10800, "tcp"},
-{"gap", {NULL}, 10800, "udp"},
-{"lpdg", {NULL}, 10805, "tcp"},
-{"lpdg", {NULL}, 10805, "udp"},
-{"nbd", {NULL}, 10809, "tcp"},
-{"nmc-disc", {NULL}, 10810, "udp"},
-{"helix", {NULL}, 10860, "tcp"},
-{"helix", {NULL}, 10860, "udp"},
-{"rmiaux", {NULL}, 10990, "tcp"},
-{"rmiaux", {NULL}, 10990, "udp"},
-{"irisa", {NULL}, 11000, "tcp"},
-{"irisa", {NULL}, 11000, "udp"},
-{"metasys", {NULL}, 11001, "tcp"},
-{"metasys", {NULL}, 11001, "udp"},
-{"netapp-icmgmt", {NULL}, 11104, "tcp"},
-{"netapp-icdata", {NULL}, 11105, "tcp"},
-{"sgi-lk", {NULL}, 11106, "tcp"},
-{"sgi-lk", {NULL}, 11106, "udp"},
-{"vce", {NULL}, 11111, "tcp"},
-{"vce", {NULL}, 11111, "udp"},
-{"dicom", {NULL}, 11112, "tcp"},
-{"dicom", {NULL}, 11112, "udp"},
-{"suncacao-snmp", {NULL}, 11161, "tcp"},
-{"suncacao-snmp", {NULL}, 11161, "udp"},
-{"suncacao-jmxmp", {NULL}, 11162, "tcp"},
-{"suncacao-jmxmp", {NULL}, 11162, "udp"},
-{"suncacao-rmi", {NULL}, 11163, "tcp"},
-{"suncacao-rmi", {NULL}, 11163, "udp"},
-{"suncacao-csa", {NULL}, 11164, "tcp"},
-{"suncacao-csa", {NULL}, 11164, "udp"},
-{"suncacao-websvc", {NULL}, 11165, "tcp"},
-{"suncacao-websvc", {NULL}, 11165, "udp"},
-{"snss", {NULL}, 11171, "udp"},
-{"oemcacao-jmxmp", {NULL}, 11172, "tcp"},
-{"oemcacao-rmi", {NULL}, 11174, "tcp"},
-{"oemcacao-websvc", {NULL}, 11175, "tcp"},
-{"smsqp", {NULL}, 11201, "tcp"},
-{"smsqp", {NULL}, 11201, "udp"},
-{"wifree", {NULL}, 11208, "tcp"},
-{"wifree", {NULL}, 11208, "udp"},
-{"memcache", {NULL}, 11211, "tcp"},
-{"memcache", {NULL}, 11211, "udp"},
-{"imip", {NULL}, 11319, "tcp"},
-{"imip", {NULL}, 11319, "udp"},
-{"imip-channels", {NULL}, 11320, "tcp"},
-{"imip-channels", {NULL}, 11320, "udp"},
-{"arena-server", {NULL}, 11321, "tcp"},
-{"arena-server", {NULL}, 11321, "udp"},
-{"atm-uhas", {NULL}, 11367, "tcp"},
-{"atm-uhas", {NULL}, 11367, "udp"},
-{"hkp", {NULL}, 11371, "tcp"},
-{"hkp", {NULL}, 11371, "udp"},
-{"asgcypresstcps", {NULL}, 11489, "tcp"},
-{"tempest-port", {NULL}, 11600, "tcp"},
-{"tempest-port", {NULL}, 11600, "udp"},
-{"h323callsigalt", {NULL}, 11720, "tcp"},
-{"h323callsigalt", {NULL}, 11720, "udp"},
-{"intrepid-ssl", {NULL}, 11751, "tcp"},
-{"intrepid-ssl", {NULL}, 11751, "udp"},
-{"xoraya", {NULL}, 11876, "tcp"},
-{"xoraya", {NULL}, 11876, "udp"},
-{"x2e-disc", {NULL}, 11877, "udp"},
-{"sysinfo-sp", {NULL}, 11967, "tcp"},
-{"sysinfo-sp", {NULL}, 11967, "udp"},
-{"wmereceiving", {NULL}, 11997, "sctp"},
-{"wmedistribution", {NULL}, 11998, "sctp"},
-{"wmereporting", {NULL}, 11999, "sctp"},
-{"entextxid", {NULL}, 12000, "tcp"},
-{"entextxid", {NULL}, 12000, "udp"},
-{"entextnetwk", {NULL}, 12001, "tcp"},
-{"entextnetwk", {NULL}, 12001, "udp"},
-{"entexthigh", {NULL}, 12002, "tcp"},
-{"entexthigh", {NULL}, 12002, "udp"},
-{"entextmed", {NULL}, 12003, "tcp"},
-{"entextmed", {NULL}, 12003, "udp"},
-{"entextlow", {NULL}, 12004, "tcp"},
-{"entextlow", {NULL}, 12004, "udp"},
-{"dbisamserver1", {NULL}, 12005, "tcp"},
-{"dbisamserver1", {NULL}, 12005, "udp"},
-{"dbisamserver2", {NULL}, 12006, "tcp"},
-{"dbisamserver2", {NULL}, 12006, "udp"},
-{"accuracer", {NULL}, 12007, "tcp"},
-{"accuracer", {NULL}, 12007, "udp"},
-{"accuracer-dbms", {NULL}, 12008, "tcp"},
-{"accuracer-dbms", {NULL}, 12008, "udp"},
-{"edbsrvr", {NULL}, 12010, "tcp"},
-{"vipera", {NULL}, 12012, "tcp"},
-{"vipera", {NULL}, 12012, "udp"},
-{"vipera-ssl", {NULL}, 12013, "tcp"},
-{"vipera-ssl", {NULL}, 12013, "udp"},
-{"rets-ssl", {NULL}, 12109, "tcp"},
-{"rets-ssl", {NULL}, 12109, "udp"},
-{"nupaper-ss", {NULL}, 12121, "tcp"},
-{"nupaper-ss", {NULL}, 12121, "udp"},
-{"cawas", {NULL}, 12168, "tcp"},
-{"cawas", {NULL}, 12168, "udp"},
-{"hivep", {NULL}, 12172, "tcp"},
-{"hivep", {NULL}, 12172, "udp"},
-{"linogridengine", {NULL}, 12300, "tcp"},
-{"linogridengine", {NULL}, 12300, "udp"},
-{"warehouse-sss", {NULL}, 12321, "tcp"},
-{"warehouse-sss", {NULL}, 12321, "udp"},
-{"warehouse", {NULL}, 12322, "tcp"},
-{"warehouse", {NULL}, 12322, "udp"},
-{"italk", {NULL}, 12345, "tcp"},
-{"italk", {NULL}, 12345, "udp"},
-{"tsaf", {NULL}, 12753, "tcp"},
-{"tsaf", {NULL}, 12753, "udp"},
-{"i-zipqd", {NULL}, 13160, "tcp"},
-{"i-zipqd", {NULL}, 13160, "udp"},
-{"bcslogc", {NULL}, 13216, "tcp"},
-{"bcslogc", {NULL}, 13216, "udp"},
-{"rs-pias", {NULL}, 13217, "tcp"},
-{"rs-pias", {NULL}, 13217, "udp"},
-{"emc-vcas-tcp", {NULL}, 13218, "tcp"},
-{"emc-vcas-udp", {NULL}, 13218, "udp"},
-{"powwow-client", {NULL}, 13223, "tcp"},
-{"powwow-client", {NULL}, 13223, "udp"},
-{"powwow-server", {NULL}, 13224, "tcp"},
-{"powwow-server", {NULL}, 13224, "udp"},
-{"doip-data", {NULL}, 13400, "tcp"},
-{"doip-disc", {NULL}, 13400, "udp"},
-{"bprd", {NULL}, 13720, "tcp"},
-{"bprd", {NULL}, 13720, "udp"},
-{"bpdbm", {NULL}, 13721, "tcp"},
-{"bpdbm", {NULL}, 13721, "udp"},
-{"bpjava-msvc", {NULL}, 13722, "tcp"},
-{"bpjava-msvc", {NULL}, 13722, "udp"},
-{"vnetd", {NULL}, 13724, "tcp"},
-{"vnetd", {NULL}, 13724, "udp"},
-{"bpcd", {NULL}, 13782, "tcp"},
-{"bpcd", {NULL}, 13782, "udp"},
-{"vopied", {NULL}, 13783, "tcp"},
-{"vopied", {NULL}, 13783, "udp"},
-{"nbdb", {NULL}, 13785, "tcp"},
-{"nbdb", {NULL}, 13785, "udp"},
-{"nomdb", {NULL}, 13786, "tcp"},
-{"nomdb", {NULL}, 13786, "udp"},
-{"dsmcc-config", {NULL}, 13818, "tcp"},
-{"dsmcc-config", {NULL}, 13818, "udp"},
-{"dsmcc-session", {NULL}, 13819, "tcp"},
-{"dsmcc-session", {NULL}, 13819, "udp"},
-{"dsmcc-passthru", {NULL}, 13820, "tcp"},
-{"dsmcc-passthru", {NULL}, 13820, "udp"},
-{"dsmcc-download", {NULL}, 13821, "tcp"},
-{"dsmcc-download", {NULL}, 13821, "udp"},
-{"dsmcc-ccp", {NULL}, 13822, "tcp"},
-{"dsmcc-ccp", {NULL}, 13822, "udp"},
-{"bmdss", {NULL}, 13823, "tcp"},
-{"dta-systems", {NULL}, 13929, "tcp"},
-{"dta-systems", {NULL}, 13929, "udp"},
-{"medevolve", {NULL}, 13930, "tcp"},
-{"scotty-ft", {NULL}, 14000, "tcp"},
-{"scotty-ft", {NULL}, 14000, "udp"},
-{"sua", {NULL}, 14001, "tcp"},
-{"sua", {NULL}, 14001, "udp"},
-{"sua", {NULL}, 14001, "sctp"},
-{"sage-best-com1", {NULL}, 14033, "tcp"},
-{"sage-best-com1", {NULL}, 14033, "udp"},
-{"sage-best-com2", {NULL}, 14034, "tcp"},
-{"sage-best-com2", {NULL}, 14034, "udp"},
-{"vcs-app", {NULL}, 14141, "tcp"},
-{"vcs-app", {NULL}, 14141, "udp"},
-{"icpp", {NULL}, 14142, "tcp"},
-{"icpp", {NULL}, 14142, "udp"},
-{"gcm-app", {NULL}, 14145, "tcp"},
-{"gcm-app", {NULL}, 14145, "udp"},
-{"vrts-tdd", {NULL}, 14149, "tcp"},
-{"vrts-tdd", {NULL}, 14149, "udp"},
-{"vcscmd", {NULL}, 14150, "tcp"},
-{"vad", {NULL}, 14154, "tcp"},
-{"vad", {NULL}, 14154, "udp"},
-{"cps", {NULL}, 14250, "tcp"},
-{"cps", {NULL}, 14250, "udp"},
-{"ca-web-update", {NULL}, 14414, "tcp"},
-{"ca-web-update", {NULL}, 14414, "udp"},
-{"hde-lcesrvr-1", {NULL}, 14936, "tcp"},
-{"hde-lcesrvr-1", {NULL}, 14936, "udp"},
-{"hde-lcesrvr-2", {NULL}, 14937, "tcp"},
-{"hde-lcesrvr-2", {NULL}, 14937, "udp"},
-{"hydap", {NULL}, 15000, "tcp"},
-{"hydap", {NULL}, 15000, "udp"},
-{"xpilot", {NULL}, 15345, "tcp"},
-{"xpilot", {NULL}, 15345, "udp"},
-{"3link", {NULL}, 15363, "tcp"},
-{"3link", {NULL}, 15363, "udp"},
-{"cisco-snat", {NULL}, 15555, "tcp"},
-{"cisco-snat", {NULL}, 15555, "udp"},
-{"bex-xr", {NULL}, 15660, "tcp"},
-{"bex-xr", {NULL}, 15660, "udp"},
-{"ptp", {NULL}, 15740, "tcp"},
-{"ptp", {NULL}, 15740, "udp"},
-{"2ping", {NULL}, 15998, "udp"},
-{"programmar", {NULL}, 15999, "tcp"},
-{"fmsas", {NULL}, 16000, "tcp"},
-{"fmsascon", {NULL}, 16001, "tcp"},
-{"gsms", {NULL}, 16002, "tcp"},
-{"alfin", {NULL}, 16003, "udp"},
-{"jwpc", {NULL}, 16020, "tcp"},
-{"jwpc-bin", {NULL}, 16021, "tcp"},
-{"sun-sea-port", {NULL}, 16161, "tcp"},
-{"sun-sea-port", {NULL}, 16161, "udp"},
-{"solaris-audit", {NULL}, 16162, "tcp"},
-{"etb4j", {NULL}, 16309, "tcp"},
-{"etb4j", {NULL}, 16309, "udp"},
-{"pduncs", {NULL}, 16310, "tcp"},
-{"pduncs", {NULL}, 16310, "udp"},
-{"pdefmns", {NULL}, 16311, "tcp"},
-{"pdefmns", {NULL}, 16311, "udp"},
-{"netserialext1", {NULL}, 16360, "tcp"},
-{"netserialext1", {NULL}, 16360, "udp"},
-{"netserialext2", {NULL}, 16361, "tcp"},
-{"netserialext2", {NULL}, 16361, "udp"},
-{"netserialext3", {NULL}, 16367, "tcp"},
-{"netserialext3", {NULL}, 16367, "udp"},
-{"netserialext4", {NULL}, 16368, "tcp"},
-{"netserialext4", {NULL}, 16368, "udp"},
-{"connected", {NULL}, 16384, "tcp"},
-{"connected", {NULL}, 16384, "udp"},
-{"xoms", {NULL}, 16619, "tcp"},
-{"newbay-snc-mc", {NULL}, 16900, "tcp"},
-{"newbay-snc-mc", {NULL}, 16900, "udp"},
-{"sgcip", {NULL}, 16950, "tcp"},
-{"sgcip", {NULL}, 16950, "udp"},
-{"intel-rci-mp", {NULL}, 16991, "tcp"},
-{"intel-rci-mp", {NULL}, 16991, "udp"},
-{"amt-soap-http", {NULL}, 16992, "tcp"},
-{"amt-soap-http", {NULL}, 16992, "udp"},
-{"amt-soap-https", {NULL}, 16993, "tcp"},
-{"amt-soap-https", {NULL}, 16993, "udp"},
-{"amt-redir-tcp", {NULL}, 16994, "tcp"},
-{"amt-redir-tcp", {NULL}, 16994, "udp"},
-{"amt-redir-tls", {NULL}, 16995, "tcp"},
-{"amt-redir-tls", {NULL}, 16995, "udp"},
-{"isode-dua", {NULL}, 17007, "tcp"},
-{"isode-dua", {NULL}, 17007, "udp"},
-{"soundsvirtual", {NULL}, 17185, "tcp"},
-{"soundsvirtual", {NULL}, 17185, "udp"},
-{"chipper", {NULL}, 17219, "tcp"},
-{"chipper", {NULL}, 17219, "udp"},
-{"integrius-stp", {NULL}, 17234, "tcp"},
-{"integrius-stp", {NULL}, 17234, "udp"},
-{"ssh-mgmt", {NULL}, 17235, "tcp"},
-{"ssh-mgmt", {NULL}, 17235, "udp"},
-{"db-lsp", {NULL}, 17500, "tcp"},
-{"db-lsp-disc", {NULL}, 17500, "udp"},
-{"ea", {NULL}, 17729, "tcp"},
-{"ea", {NULL}, 17729, "udp"},
-{"zep", {NULL}, 17754, "tcp"},
-{"zep", {NULL}, 17754, "udp"},
-{"zigbee-ip", {NULL}, 17755, "tcp"},
-{"zigbee-ip", {NULL}, 17755, "udp"},
-{"zigbee-ips", {NULL}, 17756, "tcp"},
-{"zigbee-ips", {NULL}, 17756, "udp"},
-{"sw-orion", {NULL}, 17777, "tcp"},
-{"biimenu", {NULL}, 18000, "tcp"},
-{"biimenu", {NULL}, 18000, "udp"},
-{"radpdf", {NULL}, 18104, "tcp"},
-{"racf", {NULL}, 18136, "tcp"},
-{"opsec-cvp", {NULL}, 18181, "tcp"},
-{"opsec-cvp", {NULL}, 18181, "udp"},
-{"opsec-ufp", {NULL}, 18182, "tcp"},
-{"opsec-ufp", {NULL}, 18182, "udp"},
-{"opsec-sam", {NULL}, 18183, "tcp"},
-{"opsec-sam", {NULL}, 18183, "udp"},
-{"opsec-lea", {NULL}, 18184, "tcp"},
-{"opsec-lea", {NULL}, 18184, "udp"},
-{"opsec-omi", {NULL}, 18185, "tcp"},
-{"opsec-omi", {NULL}, 18185, "udp"},
-{"ohsc", {NULL}, 18186, "tcp"},
-{"ohsc", {NULL}, 18186, "udp"},
-{"opsec-ela", {NULL}, 18187, "tcp"},
-{"opsec-ela", {NULL}, 18187, "udp"},
-{"checkpoint-rtm", {NULL}, 18241, "tcp"},
-{"checkpoint-rtm", {NULL}, 18241, "udp"},
-{"gv-pf", {NULL}, 18262, "tcp"},
-{"gv-pf", {NULL}, 18262, "udp"},
-{"ac-cluster", {NULL}, 18463, "tcp"},
-{"ac-cluster", {NULL}, 18463, "udp"},
-{"rds-ib", {NULL}, 18634, "tcp"},
-{"rds-ib", {NULL}, 18634, "udp"},
-{"rds-ip", {NULL}, 18635, "tcp"},
-{"rds-ip", {NULL}, 18635, "udp"},
-{"ique", {NULL}, 18769, "tcp"},
-{"ique", {NULL}, 18769, "udp"},
-{"infotos", {NULL}, 18881, "tcp"},
-{"infotos", {NULL}, 18881, "udp"},
-{"apc-necmp", {NULL}, 18888, "tcp"},
-{"apc-necmp", {NULL}, 18888, "udp"},
-{"igrid", {NULL}, 19000, "tcp"},
-{"igrid", {NULL}, 19000, "udp"},
-{"j-link", {NULL}, 19020, "tcp"},
-{"opsec-uaa", {NULL}, 19191, "tcp"},
-{"opsec-uaa", {NULL}, 19191, "udp"},
-{"ua-secureagent", {NULL}, 19194, "tcp"},
-{"ua-secureagent", {NULL}, 19194, "udp"},
-{"keysrvr", {NULL}, 19283, "tcp"},
-{"keysrvr", {NULL}, 19283, "udp"},
-{"keyshadow", {NULL}, 19315, "tcp"},
-{"keyshadow", {NULL}, 19315, "udp"},
-{"mtrgtrans", {NULL}, 19398, "tcp"},
-{"mtrgtrans", {NULL}, 19398, "udp"},
-{"hp-sco", {NULL}, 19410, "tcp"},
-{"hp-sco", {NULL}, 19410, "udp"},
-{"hp-sca", {NULL}, 19411, "tcp"},
-{"hp-sca", {NULL}, 19411, "udp"},
-{"hp-sessmon", {NULL}, 19412, "tcp"},
-{"hp-sessmon", {NULL}, 19412, "udp"},
-{"fxuptp", {NULL}, 19539, "tcp"},
-{"fxuptp", {NULL}, 19539, "udp"},
-{"sxuptp", {NULL}, 19540, "tcp"},
-{"sxuptp", {NULL}, 19540, "udp"},
-{"jcp", {NULL}, 19541, "tcp"},
-{"jcp", {NULL}, 19541, "udp"},
-{"iec-104-sec", {NULL}, 19998, "tcp"},
-{"dnp-sec", {NULL}, 19999, "tcp"},
-{"dnp-sec", {NULL}, 19999, "udp"},
-{"dnp", {NULL}, 20000, "tcp"},
-{"dnp", {NULL}, 20000, "udp"},
-{"microsan", {NULL}, 20001, "tcp"},
-{"microsan", {NULL}, 20001, "udp"},
-{"commtact-http", {NULL}, 20002, "tcp"},
-{"commtact-http", {NULL}, 20002, "udp"},
-{"commtact-https", {NULL}, 20003, "tcp"},
-{"commtact-https", {NULL}, 20003, "udp"},
-{"openwebnet", {NULL}, 20005, "tcp"},
-{"openwebnet", {NULL}, 20005, "udp"},
-{"ss-idi-disc", {NULL}, 20012, "udp"},
-{"ss-idi", {NULL}, 20013, "tcp"},
-{"opendeploy", {NULL}, 20014, "tcp"},
-{"opendeploy", {NULL}, 20014, "udp"},
-{"nburn_id", {NULL}, 20034, "tcp"},
-{"nburn_id", {NULL}, 20034, "udp"},
-{"tmophl7mts", {NULL}, 20046, "tcp"},
-{"tmophl7mts", {NULL}, 20046, "udp"},
-{"mountd", {NULL}, 20048, "tcp"},
-{"mountd", {NULL}, 20048, "udp"},
-{"nfsrdma", {NULL}, 20049, "tcp"},
-{"nfsrdma", {NULL}, 20049, "udp"},
-{"nfsrdma", {NULL}, 20049, "sctp"},
-{"tolfab", {NULL}, 20167, "tcp"},
-{"tolfab", {NULL}, 20167, "udp"},
-{"ipdtp-port", {NULL}, 20202, "tcp"},
-{"ipdtp-port", {NULL}, 20202, "udp"},
-{"ipulse-ics", {NULL}, 20222, "tcp"},
-{"ipulse-ics", {NULL}, 20222, "udp"},
-{"emwavemsg", {NULL}, 20480, "tcp"},
-{"emwavemsg", {NULL}, 20480, "udp"},
-{"track", {NULL}, 20670, "tcp"},
-{"track", {NULL}, 20670, "udp"},
-{"athand-mmp", {NULL}, 20999, "tcp"},
-{"athand-mmp", {NULL}, 20999, "udp"},
-{"irtrans", {NULL}, 21000, "tcp"},
-{"irtrans", {NULL}, 21000, "udp"},
-{"dfserver", {NULL}, 21554, "tcp"},
-{"dfserver", {NULL}, 21554, "udp"},
-{"vofr-gateway", {NULL}, 21590, "tcp"},
-{"vofr-gateway", {NULL}, 21590, "udp"},
-{"tvpm", {NULL}, 21800, "tcp"},
-{"tvpm", {NULL}, 21800, "udp"},
-{"webphone", {NULL}, 21845, "tcp"},
-{"webphone", {NULL}, 21845, "udp"},
-{"netspeak-is", {NULL}, 21846, "tcp"},
-{"netspeak-is", {NULL}, 21846, "udp"},
-{"netspeak-cs", {NULL}, 21847, "tcp"},
-{"netspeak-cs", {NULL}, 21847, "udp"},
-{"netspeak-acd", {NULL}, 21848, "tcp"},
-{"netspeak-acd", {NULL}, 21848, "udp"},
-{"netspeak-cps", {NULL}, 21849, "tcp"},
-{"netspeak-cps", {NULL}, 21849, "udp"},
-{"snapenetio", {NULL}, 22000, "tcp"},
-{"snapenetio", {NULL}, 22000, "udp"},
-{"optocontrol", {NULL}, 22001, "tcp"},
-{"optocontrol", {NULL}, 22001, "udp"},
-{"optohost002", {NULL}, 22002, "tcp"},
-{"optohost002", {NULL}, 22002, "udp"},
-{"optohost003", {NULL}, 22003, "tcp"},
-{"optohost003", {NULL}, 22003, "udp"},
-{"optohost004", {NULL}, 22004, "tcp"},
-{"optohost004", {NULL}, 22004, "udp"},
-{"optohost004", {NULL}, 22005, "tcp"},
-{"optohost004", {NULL}, 22005, "udp"},
-{"dcap", {NULL}, 22125, "tcp"},
-{"gsidcap", {NULL}, 22128, "tcp"},
-{"wnn6", {NULL}, 22273, "tcp"},
-{"wnn6", {NULL}, 22273, "udp"},
-{"cis", {NULL}, 22305, "tcp"},
-{"cis", {NULL}, 22305, "udp"},
-{"cis-secure", {NULL}, 22343, "tcp"},
-{"cis-secure", {NULL}, 22343, "udp"},
-{"WibuKey", {NULL}, 22347, "tcp"},
-{"WibuKey", {NULL}, 22347, "udp"},
-{"CodeMeter", {NULL}, 22350, "tcp"},
-{"CodeMeter", {NULL}, 22350, "udp"},
-{"vocaltec-wconf", {NULL}, 22555, "tcp"},
-{"vocaltec-phone", {NULL}, 22555, "udp"},
-{"talikaserver", {NULL}, 22763, "tcp"},
-{"talikaserver", {NULL}, 22763, "udp"},
-{"aws-brf", {NULL}, 22800, "tcp"},
-{"aws-brf", {NULL}, 22800, "udp"},
-{"brf-gw", {NULL}, 22951, "tcp"},
-{"brf-gw", {NULL}, 22951, "udp"},
-{"inovaport1", {NULL}, 23000, "tcp"},
-{"inovaport1", {NULL}, 23000, "udp"},
-{"inovaport2", {NULL}, 23001, "tcp"},
-{"inovaport2", {NULL}, 23001, "udp"},
-{"inovaport3", {NULL}, 23002, "tcp"},
-{"inovaport3", {NULL}, 23002, "udp"},
-{"inovaport4", {NULL}, 23003, "tcp"},
-{"inovaport4", {NULL}, 23003, "udp"},
-{"inovaport5", {NULL}, 23004, "tcp"},
-{"inovaport5", {NULL}, 23004, "udp"},
-{"inovaport6", {NULL}, 23005, "tcp"},
-{"inovaport6", {NULL}, 23005, "udp"},
-{"s102", {NULL}, 23272, "udp"},
-{"elxmgmt", {NULL}, 23333, "tcp"},
-{"elxmgmt", {NULL}, 23333, "udp"},
-{"novar-dbase", {NULL}, 23400, "tcp"},
-{"novar-dbase", {NULL}, 23400, "udp"},
-{"novar-alarm", {NULL}, 23401, "tcp"},
-{"novar-alarm", {NULL}, 23401, "udp"},
-{"novar-global", {NULL}, 23402, "tcp"},
-{"novar-global", {NULL}, 23402, "udp"},
-{"aequus", {NULL}, 23456, "tcp"},
-{"aequus-alt", {NULL}, 23457, "tcp"},
-{"med-ltp", {NULL}, 24000, "tcp"},
-{"med-ltp", {NULL}, 24000, "udp"},
-{"med-fsp-rx", {NULL}, 24001, "tcp"},
-{"med-fsp-rx", {NULL}, 24001, "udp"},
-{"med-fsp-tx", {NULL}, 24002, "tcp"},
-{"med-fsp-tx", {NULL}, 24002, "udp"},
-{"med-supp", {NULL}, 24003, "tcp"},
-{"med-supp", {NULL}, 24003, "udp"},
-{"med-ovw", {NULL}, 24004, "tcp"},
-{"med-ovw", {NULL}, 24004, "udp"},
-{"med-ci", {NULL}, 24005, "tcp"},
-{"med-ci", {NULL}, 24005, "udp"},
-{"med-net-svc", {NULL}, 24006, "tcp"},
-{"med-net-svc", {NULL}, 24006, "udp"},
-{"filesphere", {NULL}, 24242, "tcp"},
-{"filesphere", {NULL}, 24242, "udp"},
-{"vista-4gl", {NULL}, 24249, "tcp"},
-{"vista-4gl", {NULL}, 24249, "udp"},
-{"ild", {NULL}, 24321, "tcp"},
-{"ild", {NULL}, 24321, "udp"},
-{"intel_rci", {NULL}, 24386, "tcp"},
-{"intel_rci", {NULL}, 24386, "udp"},
-{"tonidods", {NULL}, 24465, "tcp"},
-{"tonidods", {NULL}, 24465, "udp"},
-{"binkp", {NULL}, 24554, "tcp"},
-{"binkp", {NULL}, 24554, "udp"},
-{"canditv", {NULL}, 24676, "tcp"},
-{"canditv", {NULL}, 24676, "udp"},
-{"flashfiler", {NULL}, 24677, "tcp"},
-{"flashfiler", {NULL}, 24677, "udp"},
-{"proactivate", {NULL}, 24678, "tcp"},
-{"proactivate", {NULL}, 24678, "udp"},
-{"tcc-http", {NULL}, 24680, "tcp"},
-{"tcc-http", {NULL}, 24680, "udp"},
-{"cslg", {NULL}, 24754, "tcp"},
-{"find", {NULL}, 24922, "tcp"},
-{"find", {NULL}, 24922, "udp"},
-{"icl-twobase1", {NULL}, 25000, "tcp"},
-{"icl-twobase1", {NULL}, 25000, "udp"},
-{"icl-twobase2", {NULL}, 25001, "tcp"},
-{"icl-twobase2", {NULL}, 25001, "udp"},
-{"icl-twobase3", {NULL}, 25002, "tcp"},
-{"icl-twobase3", {NULL}, 25002, "udp"},
-{"icl-twobase4", {NULL}, 25003, "tcp"},
-{"icl-twobase4", {NULL}, 25003, "udp"},
-{"icl-twobase5", {NULL}, 25004, "tcp"},
-{"icl-twobase5", {NULL}, 25004, "udp"},
-{"icl-twobase6", {NULL}, 25005, "tcp"},
-{"icl-twobase6", {NULL}, 25005, "udp"},
-{"icl-twobase7", {NULL}, 25006, "tcp"},
-{"icl-twobase7", {NULL}, 25006, "udp"},
-{"icl-twobase8", {NULL}, 25007, "tcp"},
-{"icl-twobase8", {NULL}, 25007, "udp"},
-{"icl-twobase9", {NULL}, 25008, "tcp"},
-{"icl-twobase9", {NULL}, 25008, "udp"},
-{"icl-twobase10", {NULL}, 25009, "tcp"},
-{"icl-twobase10", {NULL}, 25009, "udp"},
-{"rna", {NULL}, 25471, "sctp"},
-{"sauterdongle", {NULL}, 25576, "tcp"},
-{"vocaltec-hos", {NULL}, 25793, "tcp"},
-{"vocaltec-hos", {NULL}, 25793, "udp"},
-{"tasp-net", {NULL}, 25900, "tcp"},
-{"tasp-net", {NULL}, 25900, "udp"},
-{"niobserver", {NULL}, 25901, "tcp"},
-{"niobserver", {NULL}, 25901, "udp"},
-{"nilinkanalyst", {NULL}, 25902, "tcp"},
-{"nilinkanalyst", {NULL}, 25902, "udp"},
-{"niprobe", {NULL}, 25903, "tcp"},
-{"niprobe", {NULL}, 25903, "udp"},
-{"quake", {NULL}, 26000, "tcp"},
-{"quake", {NULL}, 26000, "udp"},
-{"scscp", {NULL}, 26133, "tcp"},
-{"scscp", {NULL}, 26133, "udp"},
-{"wnn6-ds", {NULL}, 26208, "tcp"},
-{"wnn6-ds", {NULL}, 26208, "udp"},
-{"ezproxy", {NULL}, 26260, "tcp"},
-{"ezproxy", {NULL}, 26260, "udp"},
-{"ezmeeting", {NULL}, 26261, "tcp"},
-{"ezmeeting", {NULL}, 26261, "udp"},
-{"k3software-svr", {NULL}, 26262, "tcp"},
-{"k3software-svr", {NULL}, 26262, "udp"},
-{"k3software-cli", {NULL}, 26263, "tcp"},
-{"k3software-cli", {NULL}, 26263, "udp"},
-{"exoline-tcp", {NULL}, 26486, "tcp"},
-{"exoline-udp", {NULL}, 26486, "udp"},
-{"exoconfig", {NULL}, 26487, "tcp"},
-{"exoconfig", {NULL}, 26487, "udp"},
-{"exonet", {NULL}, 26489, "tcp"},
-{"exonet", {NULL}, 26489, "udp"},
-{"imagepump", {NULL}, 27345, "tcp"},
-{"imagepump", {NULL}, 27345, "udp"},
-{"jesmsjc", {NULL}, 27442, "tcp"},
-{"jesmsjc", {NULL}, 27442, "udp"},
-{"kopek-httphead", {NULL}, 27504, "tcp"},
-{"kopek-httphead", {NULL}, 27504, "udp"},
-{"ars-vista", {NULL}, 27782, "tcp"},
-{"ars-vista", {NULL}, 27782, "udp"},
-{"tw-auth-key", {NULL}, 27999, "tcp"},
-{"tw-auth-key", {NULL}, 27999, "udp"},
-{"nxlmd", {NULL}, 28000, "tcp"},
-{"nxlmd", {NULL}, 28000, "udp"},
-{"pqsp", {NULL}, 28001, "tcp"},
-{"siemensgsm", {NULL}, 28240, "tcp"},
-{"siemensgsm", {NULL}, 28240, "udp"},
-{"sgsap", {NULL}, 29118, "sctp"},
-{"otmp", {NULL}, 29167, "tcp"},
-{"otmp", {NULL}, 29167, "udp"},
-{"sbcap", {NULL}, 29168, "sctp"},
-{"iuhsctpassoc", {NULL}, 29169, "sctp"},
-{"pago-services1", {NULL}, 30001, "tcp"},
-{"pago-services1", {NULL}, 30001, "udp"},
-{"pago-services2", {NULL}, 30002, "tcp"},
-{"pago-services2", {NULL}, 30002, "udp"},
-{"kingdomsonline", {NULL}, 30260, "tcp"},
-{"kingdomsonline", {NULL}, 30260, "udp"},
-{"ovobs", {NULL}, 30999, "tcp"},
-{"ovobs", {NULL}, 30999, "udp"},
-{"autotrac-acp", {NULL}, 31020, "tcp"},
-{"yawn", {NULL}, 31029, "udp"},
-{"xqosd", {NULL}, 31416, "tcp"},
-{"xqosd", {NULL}, 31416, "udp"},
-{"tetrinet", {NULL}, 31457, "tcp"},
-{"tetrinet", {NULL}, 31457, "udp"},
-{"lm-mon", {NULL}, 31620, "tcp"},
-{"lm-mon", {NULL}, 31620, "udp"},
-{"dsx_monitor", {NULL}, 31685, "tcp"},
-{"gamesmith-port", {NULL}, 31765, "tcp"},
-{"gamesmith-port", {NULL}, 31765, "udp"},
-{"iceedcp_tx", {NULL}, 31948, "tcp"},
-{"iceedcp_tx", {NULL}, 31948, "udp"},
-{"iceedcp_rx", {NULL}, 31949, "tcp"},
-{"iceedcp_rx", {NULL}, 31949, "udp"},
-{"iracinghelper", {NULL}, 32034, "tcp"},
-{"iracinghelper", {NULL}, 32034, "udp"},
-{"t1distproc60", {NULL}, 32249, "tcp"},
-{"t1distproc60", {NULL}, 32249, "udp"},
-{"apm-link", {NULL}, 32483, "tcp"},
-{"apm-link", {NULL}, 32483, "udp"},
-{"sec-ntb-clnt", {NULL}, 32635, "tcp"},
-{"sec-ntb-clnt", {NULL}, 32635, "udp"},
-{"DMExpress", {NULL}, 32636, "tcp"},
-{"DMExpress", {NULL}, 32636, "udp"},
-{"filenet-powsrm", {NULL}, 32767, "tcp"},
-{"filenet-powsrm", {NULL}, 32767, "udp"},
-{"filenet-tms", {NULL}, 32768, "tcp"},
-{"filenet-tms", {NULL}, 32768, "udp"},
-{"filenet-rpc", {NULL}, 32769, "tcp"},
-{"filenet-rpc", {NULL}, 32769, "udp"},
-{"filenet-nch", {NULL}, 32770, "tcp"},
-{"filenet-nch", {NULL}, 32770, "udp"},
-{"filenet-rmi", {NULL}, 32771, "tcp"},
-{"filenet-rmi", {NULL}, 32771, "udp"},
-{"filenet-pa", {NULL}, 32772, "tcp"},
-{"filenet-pa", {NULL}, 32772, "udp"},
-{"filenet-cm", {NULL}, 32773, "tcp"},
-{"filenet-cm", {NULL}, 32773, "udp"},
-{"filenet-re", {NULL}, 32774, "tcp"},
-{"filenet-re", {NULL}, 32774, "udp"},
-{"filenet-pch", {NULL}, 32775, "tcp"},
-{"filenet-pch", {NULL}, 32775, "udp"},
-{"filenet-peior", {NULL}, 32776, "tcp"},
-{"filenet-peior", {NULL}, 32776, "udp"},
-{"filenet-obrok", {NULL}, 32777, "tcp"},
-{"filenet-obrok", {NULL}, 32777, "udp"},
-{"mlsn", {NULL}, 32801, "tcp"},
-{"mlsn", {NULL}, 32801, "udp"},
-{"retp", {NULL}, 32811, "tcp"},
-{"idmgratm", {NULL}, 32896, "tcp"},
-{"idmgratm", {NULL}, 32896, "udp"},
-{"aurora-balaena", {NULL}, 33123, "tcp"},
-{"aurora-balaena", {NULL}, 33123, "udp"},
-{"diamondport", {NULL}, 33331, "tcp"},
-{"diamondport", {NULL}, 33331, "udp"},
-{"dgi-serv", {NULL}, 33333, "tcp"},
-{"traceroute", {NULL}, 33434, "tcp"},
-{"traceroute", {NULL}, 33434, "udp"},
-{"snip-slave", {NULL}, 33656, "tcp"},
-{"snip-slave", {NULL}, 33656, "udp"},
-{"turbonote-2", {NULL}, 34249, "tcp"},
-{"turbonote-2", {NULL}, 34249, "udp"},
-{"p-net-local", {NULL}, 34378, "tcp"},
-{"p-net-local", {NULL}, 34378, "udp"},
-{"p-net-remote", {NULL}, 34379, "tcp"},
-{"p-net-remote", {NULL}, 34379, "udp"},
-{"dhanalakshmi", {NULL}, 34567, "tcp"},
-{"profinet-rt", {NULL}, 34962, "tcp"},
-{"profinet-rt", {NULL}, 34962, "udp"},
-{"profinet-rtm", {NULL}, 34963, "tcp"},
-{"profinet-rtm", {NULL}, 34963, "udp"},
-{"profinet-cm", {NULL}, 34964, "tcp"},
-{"profinet-cm", {NULL}, 34964, "udp"},
-{"ethercat", {NULL}, 34980, "tcp"},
-{"ethercat", {NULL}, 34980, "udp"},
-{"allpeers", {NULL}, 36001, "tcp"},
-{"allpeers", {NULL}, 36001, "udp"},
-{"s1-control", {NULL}, 36412, "sctp"},
-{"x2-control", {NULL}, 36422, "sctp"},
-{"m2ap", {NULL}, 36443, "sctp"},
-{"m3ap", {NULL}, 36444, "sctp"},
-{"kastenxpipe", {NULL}, 36865, "tcp"},
-{"kastenxpipe", {NULL}, 36865, "udp"},
-{"neckar", {NULL}, 37475, "tcp"},
-{"neckar", {NULL}, 37475, "udp"},
-{"unisys-eportal", {NULL}, 37654, "tcp"},
-{"unisys-eportal", {NULL}, 37654, "udp"},
-{"galaxy7-data", {NULL}, 38201, "tcp"},
-{"galaxy7-data", {NULL}, 38201, "udp"},
-{"fairview", {NULL}, 38202, "tcp"},
-{"fairview", {NULL}, 38202, "udp"},
-{"agpolicy", {NULL}, 38203, "tcp"},
-{"agpolicy", {NULL}, 38203, "udp"},
-{"turbonote-1", {NULL}, 39681, "tcp"},
-{"turbonote-1", {NULL}, 39681, "udp"},
-{"safetynetp", {NULL}, 40000, "tcp"},
-{"safetynetp", {NULL}, 40000, "udp"},
-{"cscp", {NULL}, 40841, "tcp"},
-{"cscp", {NULL}, 40841, "udp"},
-{"csccredir", {NULL}, 40842, "tcp"},
-{"csccredir", {NULL}, 40842, "udp"},
-{"csccfirewall", {NULL}, 40843, "tcp"},
-{"csccfirewall", {NULL}, 40843, "udp"},
-{"ortec-disc", {NULL}, 40853, "udp"},
-{"fs-qos", {NULL}, 41111, "tcp"},
-{"fs-qos", {NULL}, 41111, "udp"},
-{"tentacle", {NULL}, 41121, "tcp"},
-{"crestron-cip", {NULL}, 41794, "tcp"},
-{"crestron-cip", {NULL}, 41794, "udp"},
-{"crestron-ctp", {NULL}, 41795, "tcp"},
-{"crestron-ctp", {NULL}, 41795, "udp"},
-{"candp", {NULL}, 42508, "tcp"},
-{"candp", {NULL}, 42508, "udp"},
-{"candrp", {NULL}, 42509, "tcp"},
-{"candrp", {NULL}, 42509, "udp"},
-{"caerpc", {NULL}, 42510, "tcp"},
-{"caerpc", {NULL}, 42510, "udp"},
-{"reachout", {NULL}, 43188, "tcp"},
-{"reachout", {NULL}, 43188, "udp"},
-{"ndm-agent-port", {NULL}, 43189, "tcp"},
-{"ndm-agent-port", {NULL}, 43189, "udp"},
-{"ip-provision", {NULL}, 43190, "tcp"},
-{"ip-provision", {NULL}, 43190, "udp"},
-{"noit-transport", {NULL}, 43191, "tcp"},
-{"ew-mgmt", {NULL}, 43440, "tcp"},
-{"ew-disc-cmd", {NULL}, 43440, "udp"},
-{"ciscocsdb", {NULL}, 43441, "tcp"},
-{"ciscocsdb", {NULL}, 43441, "udp"},
-{"pmcd", {NULL}, 44321, "tcp"},
-{"pmcd", {NULL}, 44321, "udp"},
-{"pmcdproxy", {NULL}, 44322, "tcp"},
-{"pmcdproxy", {NULL}, 44322, "udp"},
-{"pcp", {NULL}, 44323, "udp"},
-{"rbr-debug", {NULL}, 44553, "tcp"},
-{"rbr-debug", {NULL}, 44553, "udp"},
-{"EtherNet/IP-2", {NULL}, 44818, "tcp"},
-{"EtherNet/IP-2", {NULL}, 44818, "udp"},
-{"invision-ag", {NULL}, 45054, "tcp"},
-{"invision-ag", {NULL}, 45054, "udp"},
-{"eba", {NULL}, 45678, "tcp"},
-{"eba", {NULL}, 45678, "udp"},
-{"qdb2service", {NULL}, 45825, "tcp"},
-{"qdb2service", {NULL}, 45825, "udp"},
-{"ssr-servermgr", {NULL}, 45966, "tcp"},
-{"ssr-servermgr", {NULL}, 45966, "udp"},
-{"mediabox", {NULL}, 46999, "tcp"},
-{"mediabox", {NULL}, 46999, "udp"},
-{"mbus", {NULL}, 47000, "tcp"},
-{"mbus", {NULL}, 47000, "udp"},
-{"winrm", {NULL}, 47001, "tcp"},
-{"dbbrowse", {NULL}, 47557, "tcp"},
-{"dbbrowse", {NULL}, 47557, "udp"},
-{"directplaysrvr", {NULL}, 47624, "tcp"},
-{"directplaysrvr", {NULL}, 47624, "udp"},
-{"ap", {NULL}, 47806, "tcp"},
-{"ap", {NULL}, 47806, "udp"},
-{"bacnet", {NULL}, 47808, "tcp"},
-{"bacnet", {NULL}, 47808, "udp"},
-{"nimcontroller", {NULL}, 48000, "tcp"},
-{"nimcontroller", {NULL}, 48000, "udp"},
-{"nimspooler", {NULL}, 48001, "tcp"},
-{"nimspooler", {NULL}, 48001, "udp"},
-{"nimhub", {NULL}, 48002, "tcp"},
-{"nimhub", {NULL}, 48002, "udp"},
-{"nimgtw", {NULL}, 48003, "tcp"},
-{"nimgtw", {NULL}, 48003, "udp"},
-{"nimbusdb", {NULL}, 48004, "tcp"},
-{"nimbusdbctrl", {NULL}, 48005, "tcp"},
-{"3gpp-cbsp", {NULL}, 48049, "tcp"},
-{"isnetserv", {NULL}, 48128, "tcp"},
-{"isnetserv", {NULL}, 48128, "udp"},
-{"blp5", {NULL}, 48129, "tcp"},
-{"blp5", {NULL}, 48129, "udp"},
-{"com-bardac-dw", {NULL}, 48556, "tcp"},
-{"com-bardac-dw", {NULL}, 48556, "udp"},
-{"iqobject", {NULL}, 48619, "tcp"},
-{"iqobject", {NULL}, 48619, "udp"},
-#endif /* USE_IANA_REGISTERED_PORTS */
-{ NULL, {NULL}, 0, NULL }
-};
-
-struct servent *getservbyport(int port, const char *proto)
-{
- unsigned short u_port;
- const char *protocol = NULL;
- int i, error = 0;
-
- u_port = ntohs((unsigned short)port);
-
- if (proto)
- {
- switch (strlen(proto)) {
- case 3:
- if (!strncasecmp(proto, "tcp", 3))
- protocol = "tcp";
- else if (!strncasecmp(proto, "udp", 3))
- protocol = "udp";
- else
- error = WSAEFAULT;
- break;
- case 4:
- if (!strncasecmp(proto, "sctp", 4))
- protocol = "sctp";
- else if (!strncasecmp(proto, "dccp", 4))
- protocol = "dccp";
- else
- error = WSAEFAULT;
- break;
- default:
- error = WSAEFAULT;
- }
- }
-
- if (!error)
- {
- for (i = 0; i < (sizeof(IANAports) / sizeof(IANAports[0])) - 1; i++)
- {
- if (u_port == IANAports[i].s_port)
- {
- if (!protocol || !strcasecmp(protocol, IANAports[i].s_proto))
- return (struct servent *)&IANAports[i];
- }
- }
- error = WSANO_DATA;
- }
-
- SET_SOCKERRNO(error);
- return NULL;
-}
-
-#endif /* _WIN32_WCE */
+
+ switch(OsvEx.dwPlatformId)
+ {
+ case V_PLATFORM_WIN32s:
+ return WIN_3X;
+
+ case V_PLATFORM_WIN32_WINDOWS:
+ return WIN_9X;
+
+ case V_PLATFORM_WIN32_NT:
+ return WIN_NT;
+
+ case V_PLATFORM_WIN32_CE:
+ return WIN_CE;
+
+ default:
+ return WIN_UNKNOWN;
+ }
+}
+
+#endif /* WIN32 && ! MSDOS */
+
+#if defined(_WIN32_WCE)
+
+/* IANA Well Known Ports are in range 0-1023 */
+#define USE_IANA_WELL_KNOWN_PORTS 1
+
+/* IANA Registered Ports are in range 1024-49151 */
+#define USE_IANA_REGISTERED_PORTS 1
+
+struct pvt_servent {
+ char *s_name;
+ char **s_aliases;
+ unsigned short s_port;
+ char *s_proto;
+};
+
+/*
+ * Ref: http://www.iana.org/assignments/port-numbers
+ */
+
+static struct pvt_servent IANAports[] = {
+#ifdef USE_IANA_WELL_KNOWN_PORTS
+{"tcpmux", {NULL}, 1, "tcp"},
+{"tcpmux", {NULL}, 1, "udp"},
+{"compressnet", {NULL}, 2, "tcp"},
+{"compressnet", {NULL}, 2, "udp"},
+{"compressnet", {NULL}, 3, "tcp"},
+{"compressnet", {NULL}, 3, "udp"},
+{"rje", {NULL}, 5, "tcp"},
+{"rje", {NULL}, 5, "udp"},
+{"echo", {NULL}, 7, "tcp"},
+{"echo", {NULL}, 7, "udp"},
+{"discard", {NULL}, 9, "tcp"},
+{"discard", {NULL}, 9, "udp"},
+{"discard", {NULL}, 9, "sctp"},
+{"discard", {NULL}, 9, "dccp"},
+{"systat", {NULL}, 11, "tcp"},
+{"systat", {NULL}, 11, "udp"},
+{"daytime", {NULL}, 13, "tcp"},
+{"daytime", {NULL}, 13, "udp"},
+{"qotd", {NULL}, 17, "tcp"},
+{"qotd", {NULL}, 17, "udp"},
+{"msp", {NULL}, 18, "tcp"},
+{"msp", {NULL}, 18, "udp"},
+{"chargen", {NULL}, 19, "tcp"},
+{"chargen", {NULL}, 19, "udp"},
+{"ftp-data", {NULL}, 20, "tcp"},
+{"ftp-data", {NULL}, 20, "udp"},
+{"ftp-data", {NULL}, 20, "sctp"},
+{"ftp", {NULL}, 21, "tcp"},
+{"ftp", {NULL}, 21, "udp"},
+{"ftp", {NULL}, 21, "sctp"},
+{"ssh", {NULL}, 22, "tcp"},
+{"ssh", {NULL}, 22, "udp"},
+{"ssh", {NULL}, 22, "sctp"},
+{"telnet", {NULL}, 23, "tcp"},
+{"telnet", {NULL}, 23, "udp"},
+{"smtp", {NULL}, 25, "tcp"},
+{"smtp", {NULL}, 25, "udp"},
+{"nsw-fe", {NULL}, 27, "tcp"},
+{"nsw-fe", {NULL}, 27, "udp"},
+{"msg-icp", {NULL}, 29, "tcp"},
+{"msg-icp", {NULL}, 29, "udp"},
+{"msg-auth", {NULL}, 31, "tcp"},
+{"msg-auth", {NULL}, 31, "udp"},
+{"dsp", {NULL}, 33, "tcp"},
+{"dsp", {NULL}, 33, "udp"},
+{"time", {NULL}, 37, "tcp"},
+{"time", {NULL}, 37, "udp"},
+{"rap", {NULL}, 38, "tcp"},
+{"rap", {NULL}, 38, "udp"},
+{"rlp", {NULL}, 39, "tcp"},
+{"rlp", {NULL}, 39, "udp"},
+{"graphics", {NULL}, 41, "tcp"},
+{"graphics", {NULL}, 41, "udp"},
+{"name", {NULL}, 42, "tcp"},
+{"name", {NULL}, 42, "udp"},
+{"nameserver", {NULL}, 42, "tcp"},
+{"nameserver", {NULL}, 42, "udp"},
+{"nicname", {NULL}, 43, "tcp"},
+{"nicname", {NULL}, 43, "udp"},
+{"mpm-flags", {NULL}, 44, "tcp"},
+{"mpm-flags", {NULL}, 44, "udp"},
+{"mpm", {NULL}, 45, "tcp"},
+{"mpm", {NULL}, 45, "udp"},
+{"mpm-snd", {NULL}, 46, "tcp"},
+{"mpm-snd", {NULL}, 46, "udp"},
+{"ni-ftp", {NULL}, 47, "tcp"},
+{"ni-ftp", {NULL}, 47, "udp"},
+{"auditd", {NULL}, 48, "tcp"},
+{"auditd", {NULL}, 48, "udp"},
+{"tacacs", {NULL}, 49, "tcp"},
+{"tacacs", {NULL}, 49, "udp"},
+{"re-mail-ck", {NULL}, 50, "tcp"},
+{"re-mail-ck", {NULL}, 50, "udp"},
+{"la-maint", {NULL}, 51, "tcp"},
+{"la-maint", {NULL}, 51, "udp"},
+{"xns-time", {NULL}, 52, "tcp"},
+{"xns-time", {NULL}, 52, "udp"},
+{"domain", {NULL}, 53, "tcp"},
+{"domain", {NULL}, 53, "udp"},
+{"xns-ch", {NULL}, 54, "tcp"},
+{"xns-ch", {NULL}, 54, "udp"},
+{"isi-gl", {NULL}, 55, "tcp"},
+{"isi-gl", {NULL}, 55, "udp"},
+{"xns-auth", {NULL}, 56, "tcp"},
+{"xns-auth", {NULL}, 56, "udp"},
+{"xns-mail", {NULL}, 58, "tcp"},
+{"xns-mail", {NULL}, 58, "udp"},
+{"ni-mail", {NULL}, 61, "tcp"},
+{"ni-mail", {NULL}, 61, "udp"},
+{"acas", {NULL}, 62, "tcp"},
+{"acas", {NULL}, 62, "udp"},
+{"whois++", {NULL}, 63, "tcp"},
+{"whois++", {NULL}, 63, "udp"},
+{"covia", {NULL}, 64, "tcp"},
+{"covia", {NULL}, 64, "udp"},
+{"tacacs-ds", {NULL}, 65, "tcp"},
+{"tacacs-ds", {NULL}, 65, "udp"},
+{"sql*net", {NULL}, 66, "tcp"},
+{"sql*net", {NULL}, 66, "udp"},
+{"bootps", {NULL}, 67, "tcp"},
+{"bootps", {NULL}, 67, "udp"},
+{"bootpc", {NULL}, 68, "tcp"},
+{"bootpc", {NULL}, 68, "udp"},
+{"tftp", {NULL}, 69, "tcp"},
+{"tftp", {NULL}, 69, "udp"},
+{"gopher", {NULL}, 70, "tcp"},
+{"gopher", {NULL}, 70, "udp"},
+{"netrjs-1", {NULL}, 71, "tcp"},
+{"netrjs-1", {NULL}, 71, "udp"},
+{"netrjs-2", {NULL}, 72, "tcp"},
+{"netrjs-2", {NULL}, 72, "udp"},
+{"netrjs-3", {NULL}, 73, "tcp"},
+{"netrjs-3", {NULL}, 73, "udp"},
+{"netrjs-4", {NULL}, 74, "tcp"},
+{"netrjs-4", {NULL}, 74, "udp"},
+{"deos", {NULL}, 76, "tcp"},
+{"deos", {NULL}, 76, "udp"},
+{"vettcp", {NULL}, 78, "tcp"},
+{"vettcp", {NULL}, 78, "udp"},
+{"finger", {NULL}, 79, "tcp"},
+{"finger", {NULL}, 79, "udp"},
+{"http", {NULL}, 80, "tcp"},
+{"http", {NULL}, 80, "udp"},
+{"www", {NULL}, 80, "tcp"},
+{"www", {NULL}, 80, "udp"},
+{"www-http", {NULL}, 80, "tcp"},
+{"www-http", {NULL}, 80, "udp"},
+{"http", {NULL}, 80, "sctp"},
+{"xfer", {NULL}, 82, "tcp"},
+{"xfer", {NULL}, 82, "udp"},
+{"mit-ml-dev", {NULL}, 83, "tcp"},
+{"mit-ml-dev", {NULL}, 83, "udp"},
+{"ctf", {NULL}, 84, "tcp"},
+{"ctf", {NULL}, 84, "udp"},
+{"mit-ml-dev", {NULL}, 85, "tcp"},
+{"mit-ml-dev", {NULL}, 85, "udp"},
+{"mfcobol", {NULL}, 86, "tcp"},
+{"mfcobol", {NULL}, 86, "udp"},
+{"kerberos", {NULL}, 88, "tcp"},
+{"kerberos", {NULL}, 88, "udp"},
+{"su-mit-tg", {NULL}, 89, "tcp"},
+{"su-mit-tg", {NULL}, 89, "udp"},
+{"dnsix", {NULL}, 90, "tcp"},
+{"dnsix", {NULL}, 90, "udp"},
+{"mit-dov", {NULL}, 91, "tcp"},
+{"mit-dov", {NULL}, 91, "udp"},
+{"npp", {NULL}, 92, "tcp"},
+{"npp", {NULL}, 92, "udp"},
+{"dcp", {NULL}, 93, "tcp"},
+{"dcp", {NULL}, 93, "udp"},
+{"objcall", {NULL}, 94, "tcp"},
+{"objcall", {NULL}, 94, "udp"},
+{"supdup", {NULL}, 95, "tcp"},
+{"supdup", {NULL}, 95, "udp"},
+{"dixie", {NULL}, 96, "tcp"},
+{"dixie", {NULL}, 96, "udp"},
+{"swift-rvf", {NULL}, 97, "tcp"},
+{"swift-rvf", {NULL}, 97, "udp"},
+{"tacnews", {NULL}, 98, "tcp"},
+{"tacnews", {NULL}, 98, "udp"},
+{"metagram", {NULL}, 99, "tcp"},
+{"metagram", {NULL}, 99, "udp"},
+{"newacct", {NULL}, 100, "tcp"},
+{"hostname", {NULL}, 101, "tcp"},
+{"hostname", {NULL}, 101, "udp"},
+{"iso-tsap", {NULL}, 102, "tcp"},
+{"iso-tsap", {NULL}, 102, "udp"},
+{"gppitnp", {NULL}, 103, "tcp"},
+{"gppitnp", {NULL}, 103, "udp"},
+{"acr-nema", {NULL}, 104, "tcp"},
+{"acr-nema", {NULL}, 104, "udp"},
+{"cso", {NULL}, 105, "tcp"},
+{"cso", {NULL}, 105, "udp"},
+{"csnet-ns", {NULL}, 105, "tcp"},
+{"csnet-ns", {NULL}, 105, "udp"},
+{"3com-tsmux", {NULL}, 106, "tcp"},
+{"3com-tsmux", {NULL}, 106, "udp"},
+{"rtelnet", {NULL}, 107, "tcp"},
+{"rtelnet", {NULL}, 107, "udp"},
+{"snagas", {NULL}, 108, "tcp"},
+{"snagas", {NULL}, 108, "udp"},
+{"pop2", {NULL}, 109, "tcp"},
+{"pop2", {NULL}, 109, "udp"},
+{"pop3", {NULL}, 110, "tcp"},
+{"pop3", {NULL}, 110, "udp"},
+{"sunrpc", {NULL}, 111, "tcp"},
+{"sunrpc", {NULL}, 111, "udp"},
+{"mcidas", {NULL}, 112, "tcp"},
+{"mcidas", {NULL}, 112, "udp"},
+{"ident", {NULL}, 113, "tcp"},
+{"auth", {NULL}, 113, "tcp"},
+{"auth", {NULL}, 113, "udp"},
+{"sftp", {NULL}, 115, "tcp"},
+{"sftp", {NULL}, 115, "udp"},
+{"ansanotify", {NULL}, 116, "tcp"},
+{"ansanotify", {NULL}, 116, "udp"},
+{"uucp-path", {NULL}, 117, "tcp"},
+{"uucp-path", {NULL}, 117, "udp"},
+{"sqlserv", {NULL}, 118, "tcp"},
+{"sqlserv", {NULL}, 118, "udp"},
+{"nntp", {NULL}, 119, "tcp"},
+{"nntp", {NULL}, 119, "udp"},
+{"cfdptkt", {NULL}, 120, "tcp"},
+{"cfdptkt", {NULL}, 120, "udp"},
+{"erpc", {NULL}, 121, "tcp"},
+{"erpc", {NULL}, 121, "udp"},
+{"smakynet", {NULL}, 122, "tcp"},
+{"smakynet", {NULL}, 122, "udp"},
+{"ntp", {NULL}, 123, "tcp"},
+{"ntp", {NULL}, 123, "udp"},
+{"ansatrader", {NULL}, 124, "tcp"},
+{"ansatrader", {NULL}, 124, "udp"},
+{"locus-map", {NULL}, 125, "tcp"},
+{"locus-map", {NULL}, 125, "udp"},
+{"nxedit", {NULL}, 126, "tcp"},
+{"nxedit", {NULL}, 126, "udp"},
+{"locus-con", {NULL}, 127, "tcp"},
+{"locus-con", {NULL}, 127, "udp"},
+{"gss-xlicen", {NULL}, 128, "tcp"},
+{"gss-xlicen", {NULL}, 128, "udp"},
+{"pwdgen", {NULL}, 129, "tcp"},
+{"pwdgen", {NULL}, 129, "udp"},
+{"cisco-fna", {NULL}, 130, "tcp"},
+{"cisco-fna", {NULL}, 130, "udp"},
+{"cisco-tna", {NULL}, 131, "tcp"},
+{"cisco-tna", {NULL}, 131, "udp"},
+{"cisco-sys", {NULL}, 132, "tcp"},
+{"cisco-sys", {NULL}, 132, "udp"},
+{"statsrv", {NULL}, 133, "tcp"},
+{"statsrv", {NULL}, 133, "udp"},
+{"ingres-net", {NULL}, 134, "tcp"},
+{"ingres-net", {NULL}, 134, "udp"},
+{"epmap", {NULL}, 135, "tcp"},
+{"epmap", {NULL}, 135, "udp"},
+{"profile", {NULL}, 136, "tcp"},
+{"profile", {NULL}, 136, "udp"},
+{"netbios-ns", {NULL}, 137, "tcp"},
+{"netbios-ns", {NULL}, 137, "udp"},
+{"netbios-dgm", {NULL}, 138, "tcp"},
+{"netbios-dgm", {NULL}, 138, "udp"},
+{"netbios-ssn", {NULL}, 139, "tcp"},
+{"netbios-ssn", {NULL}, 139, "udp"},
+{"emfis-data", {NULL}, 140, "tcp"},
+{"emfis-data", {NULL}, 140, "udp"},
+{"emfis-cntl", {NULL}, 141, "tcp"},
+{"emfis-cntl", {NULL}, 141, "udp"},
+{"bl-idm", {NULL}, 142, "tcp"},
+{"bl-idm", {NULL}, 142, "udp"},
+{"imap", {NULL}, 143, "tcp"},
+{"imap", {NULL}, 143, "udp"},
+{"uma", {NULL}, 144, "tcp"},
+{"uma", {NULL}, 144, "udp"},
+{"uaac", {NULL}, 145, "tcp"},
+{"uaac", {NULL}, 145, "udp"},
+{"iso-tp0", {NULL}, 146, "tcp"},
+{"iso-tp0", {NULL}, 146, "udp"},
+{"iso-ip", {NULL}, 147, "tcp"},
+{"iso-ip", {NULL}, 147, "udp"},
+{"jargon", {NULL}, 148, "tcp"},
+{"jargon", {NULL}, 148, "udp"},
+{"aed-512", {NULL}, 149, "tcp"},
+{"aed-512", {NULL}, 149, "udp"},
+{"sql-net", {NULL}, 150, "tcp"},
+{"sql-net", {NULL}, 150, "udp"},
+{"hems", {NULL}, 151, "tcp"},
+{"hems", {NULL}, 151, "udp"},
+{"bftp", {NULL}, 152, "tcp"},
+{"bftp", {NULL}, 152, "udp"},
+{"sgmp", {NULL}, 153, "tcp"},
+{"sgmp", {NULL}, 153, "udp"},
+{"netsc-prod", {NULL}, 154, "tcp"},
+{"netsc-prod", {NULL}, 154, "udp"},
+{"netsc-dev", {NULL}, 155, "tcp"},
+{"netsc-dev", {NULL}, 155, "udp"},
+{"sqlsrv", {NULL}, 156, "tcp"},
+{"sqlsrv", {NULL}, 156, "udp"},
+{"knet-cmp", {NULL}, 157, "tcp"},
+{"knet-cmp", {NULL}, 157, "udp"},
+{"pcmail-srv", {NULL}, 158, "tcp"},
+{"pcmail-srv", {NULL}, 158, "udp"},
+{"nss-routing", {NULL}, 159, "tcp"},
+{"nss-routing", {NULL}, 159, "udp"},
+{"sgmp-traps", {NULL}, 160, "tcp"},
+{"sgmp-traps", {NULL}, 160, "udp"},
+{"snmp", {NULL}, 161, "tcp"},
+{"snmp", {NULL}, 161, "udp"},
+{"snmptrap", {NULL}, 162, "tcp"},
+{"snmptrap", {NULL}, 162, "udp"},
+{"cmip-man", {NULL}, 163, "tcp"},
+{"cmip-man", {NULL}, 163, "udp"},
+{"cmip-agent", {NULL}, 164, "tcp"},
+{"cmip-agent", {NULL}, 164, "udp"},
+{"xns-courier", {NULL}, 165, "tcp"},
+{"xns-courier", {NULL}, 165, "udp"},
+{"s-net", {NULL}, 166, "tcp"},
+{"s-net", {NULL}, 166, "udp"},
+{"namp", {NULL}, 167, "tcp"},
+{"namp", {NULL}, 167, "udp"},
+{"rsvd", {NULL}, 168, "tcp"},
+{"rsvd", {NULL}, 168, "udp"},
+{"send", {NULL}, 169, "tcp"},
+{"send", {NULL}, 169, "udp"},
+{"print-srv", {NULL}, 170, "tcp"},
+{"print-srv", {NULL}, 170, "udp"},
+{"multiplex", {NULL}, 171, "tcp"},
+{"multiplex", {NULL}, 171, "udp"},
+{"cl/1", {NULL}, 172, "tcp"},
+{"cl/1", {NULL}, 172, "udp"},
+{"xyplex-mux", {NULL}, 173, "tcp"},
+{"xyplex-mux", {NULL}, 173, "udp"},
+{"mailq", {NULL}, 174, "tcp"},
+{"mailq", {NULL}, 174, "udp"},
+{"vmnet", {NULL}, 175, "tcp"},
+{"vmnet", {NULL}, 175, "udp"},
+{"genrad-mux", {NULL}, 176, "tcp"},
+{"genrad-mux", {NULL}, 176, "udp"},
+{"xdmcp", {NULL}, 177, "tcp"},
+{"xdmcp", {NULL}, 177, "udp"},
+{"nextstep", {NULL}, 178, "tcp"},
+{"nextstep", {NULL}, 178, "udp"},
+{"bgp", {NULL}, 179, "tcp"},
+{"bgp", {NULL}, 179, "udp"},
+{"bgp", {NULL}, 179, "sctp"},
+{"ris", {NULL}, 180, "tcp"},
+{"ris", {NULL}, 180, "udp"},
+{"unify", {NULL}, 181, "tcp"},
+{"unify", {NULL}, 181, "udp"},
+{"audit", {NULL}, 182, "tcp"},
+{"audit", {NULL}, 182, "udp"},
+{"ocbinder", {NULL}, 183, "tcp"},
+{"ocbinder", {NULL}, 183, "udp"},
+{"ocserver", {NULL}, 184, "tcp"},
+{"ocserver", {NULL}, 184, "udp"},
+{"remote-kis", {NULL}, 185, "tcp"},
+{"remote-kis", {NULL}, 185, "udp"},
+{"kis", {NULL}, 186, "tcp"},
+{"kis", {NULL}, 186, "udp"},
+{"aci", {NULL}, 187, "tcp"},
+{"aci", {NULL}, 187, "udp"},
+{"mumps", {NULL}, 188, "tcp"},
+{"mumps", {NULL}, 188, "udp"},
+{"qft", {NULL}, 189, "tcp"},
+{"qft", {NULL}, 189, "udp"},
+{"gacp", {NULL}, 190, "tcp"},
+{"gacp", {NULL}, 190, "udp"},
+{"prospero", {NULL}, 191, "tcp"},
+{"prospero", {NULL}, 191, "udp"},
+{"osu-nms", {NULL}, 192, "tcp"},
+{"osu-nms", {NULL}, 192, "udp"},
+{"srmp", {NULL}, 193, "tcp"},
+{"srmp", {NULL}, 193, "udp"},
+{"irc", {NULL}, 194, "tcp"},
+{"irc", {NULL}, 194, "udp"},
+{"dn6-nlm-aud", {NULL}, 195, "tcp"},
+{"dn6-nlm-aud", {NULL}, 195, "udp"},
+{"dn6-smm-red", {NULL}, 196, "tcp"},
+{"dn6-smm-red", {NULL}, 196, "udp"},
+{"dls", {NULL}, 197, "tcp"},
+{"dls", {NULL}, 197, "udp"},
+{"dls-mon", {NULL}, 198, "tcp"},
+{"dls-mon", {NULL}, 198, "udp"},
+{"smux", {NULL}, 199, "tcp"},
+{"smux", {NULL}, 199, "udp"},
+{"src", {NULL}, 200, "tcp"},
+{"src", {NULL}, 200, "udp"},
+{"at-rtmp", {NULL}, 201, "tcp"},
+{"at-rtmp", {NULL}, 201, "udp"},
+{"at-nbp", {NULL}, 202, "tcp"},
+{"at-nbp", {NULL}, 202, "udp"},
+{"at-3", {NULL}, 203, "tcp"},
+{"at-3", {NULL}, 203, "udp"},
+{"at-echo", {NULL}, 204, "tcp"},
+{"at-echo", {NULL}, 204, "udp"},
+{"at-5", {NULL}, 205, "tcp"},
+{"at-5", {NULL}, 205, "udp"},
+{"at-zis", {NULL}, 206, "tcp"},
+{"at-zis", {NULL}, 206, "udp"},
+{"at-7", {NULL}, 207, "tcp"},
+{"at-7", {NULL}, 207, "udp"},
+{"at-8", {NULL}, 208, "tcp"},
+{"at-8", {NULL}, 208, "udp"},
+{"qmtp", {NULL}, 209, "tcp"},
+{"qmtp", {NULL}, 209, "udp"},
+{"z39.50", {NULL}, 210, "tcp"},
+{"z39.50", {NULL}, 210, "udp"},
+{"914c/g", {NULL}, 211, "tcp"},
+{"914c/g", {NULL}, 211, "udp"},
+{"anet", {NULL}, 212, "tcp"},
+{"anet", {NULL}, 212, "udp"},
+{"ipx", {NULL}, 213, "tcp"},
+{"ipx", {NULL}, 213, "udp"},
+{"vmpwscs", {NULL}, 214, "tcp"},
+{"vmpwscs", {NULL}, 214, "udp"},
+{"softpc", {NULL}, 215, "tcp"},
+{"softpc", {NULL}, 215, "udp"},
+{"CAIlic", {NULL}, 216, "tcp"},
+{"CAIlic", {NULL}, 216, "udp"},
+{"dbase", {NULL}, 217, "tcp"},
+{"dbase", {NULL}, 217, "udp"},
+{"mpp", {NULL}, 218, "tcp"},
+{"mpp", {NULL}, 218, "udp"},
+{"uarps", {NULL}, 219, "tcp"},
+{"uarps", {NULL}, 219, "udp"},
+{"imap3", {NULL}, 220, "tcp"},
+{"imap3", {NULL}, 220, "udp"},
+{"fln-spx", {NULL}, 221, "tcp"},
+{"fln-spx", {NULL}, 221, "udp"},
+{"rsh-spx", {NULL}, 222, "tcp"},
+{"rsh-spx", {NULL}, 222, "udp"},
+{"cdc", {NULL}, 223, "tcp"},
+{"cdc", {NULL}, 223, "udp"},
+{"masqdialer", {NULL}, 224, "tcp"},
+{"masqdialer", {NULL}, 224, "udp"},
+{"direct", {NULL}, 242, "tcp"},
+{"direct", {NULL}, 242, "udp"},
+{"sur-meas", {NULL}, 243, "tcp"},
+{"sur-meas", {NULL}, 243, "udp"},
+{"inbusiness", {NULL}, 244, "tcp"},
+{"inbusiness", {NULL}, 244, "udp"},
+{"link", {NULL}, 245, "tcp"},
+{"link", {NULL}, 245, "udp"},
+{"dsp3270", {NULL}, 246, "tcp"},
+{"dsp3270", {NULL}, 246, "udp"},
+{"subntbcst_tftp", {NULL}, 247, "tcp"},
+{"subntbcst_tftp", {NULL}, 247, "udp"},
+{"bhfhs", {NULL}, 248, "tcp"},
+{"bhfhs", {NULL}, 248, "udp"},
+{"rap", {NULL}, 256, "tcp"},
+{"rap", {NULL}, 256, "udp"},
+{"set", {NULL}, 257, "tcp"},
+{"set", {NULL}, 257, "udp"},
+{"esro-gen", {NULL}, 259, "tcp"},
+{"esro-gen", {NULL}, 259, "udp"},
+{"openport", {NULL}, 260, "tcp"},
+{"openport", {NULL}, 260, "udp"},
+{"nsiiops", {NULL}, 261, "tcp"},
+{"nsiiops", {NULL}, 261, "udp"},
+{"arcisdms", {NULL}, 262, "tcp"},
+{"arcisdms", {NULL}, 262, "udp"},
+{"hdap", {NULL}, 263, "tcp"},
+{"hdap", {NULL}, 263, "udp"},
+{"bgmp", {NULL}, 264, "tcp"},
+{"bgmp", {NULL}, 264, "udp"},
+{"x-bone-ctl", {NULL}, 265, "tcp"},
+{"x-bone-ctl", {NULL}, 265, "udp"},
+{"sst", {NULL}, 266, "tcp"},
+{"sst", {NULL}, 266, "udp"},
+{"td-service", {NULL}, 267, "tcp"},
+{"td-service", {NULL}, 267, "udp"},
+{"td-replica", {NULL}, 268, "tcp"},
+{"td-replica", {NULL}, 268, "udp"},
+{"manet", {NULL}, 269, "tcp"},
+{"manet", {NULL}, 269, "udp"},
+{"gist", {NULL}, 270, "udp"},
+{"http-mgmt", {NULL}, 280, "tcp"},
+{"http-mgmt", {NULL}, 280, "udp"},
+{"personal-link", {NULL}, 281, "tcp"},
+{"personal-link", {NULL}, 281, "udp"},
+{"cableport-ax", {NULL}, 282, "tcp"},
+{"cableport-ax", {NULL}, 282, "udp"},
+{"rescap", {NULL}, 283, "tcp"},
+{"rescap", {NULL}, 283, "udp"},
+{"corerjd", {NULL}, 284, "tcp"},
+{"corerjd", {NULL}, 284, "udp"},
+{"fxp", {NULL}, 286, "tcp"},
+{"fxp", {NULL}, 286, "udp"},
+{"k-block", {NULL}, 287, "tcp"},
+{"k-block", {NULL}, 287, "udp"},
+{"novastorbakcup", {NULL}, 308, "tcp"},
+{"novastorbakcup", {NULL}, 308, "udp"},
+{"entrusttime", {NULL}, 309, "tcp"},
+{"entrusttime", {NULL}, 309, "udp"},
+{"bhmds", {NULL}, 310, "tcp"},
+{"bhmds", {NULL}, 310, "udp"},
+{"asip-webadmin", {NULL}, 311, "tcp"},
+{"asip-webadmin", {NULL}, 311, "udp"},
+{"vslmp", {NULL}, 312, "tcp"},
+{"vslmp", {NULL}, 312, "udp"},
+{"magenta-logic", {NULL}, 313, "tcp"},
+{"magenta-logic", {NULL}, 313, "udp"},
+{"opalis-robot", {NULL}, 314, "tcp"},
+{"opalis-robot", {NULL}, 314, "udp"},
+{"dpsi", {NULL}, 315, "tcp"},
+{"dpsi", {NULL}, 315, "udp"},
+{"decauth", {NULL}, 316, "tcp"},
+{"decauth", {NULL}, 316, "udp"},
+{"zannet", {NULL}, 317, "tcp"},
+{"zannet", {NULL}, 317, "udp"},
+{"pkix-timestamp", {NULL}, 318, "tcp"},
+{"pkix-timestamp", {NULL}, 318, "udp"},
+{"ptp-event", {NULL}, 319, "tcp"},
+{"ptp-event", {NULL}, 319, "udp"},
+{"ptp-general", {NULL}, 320, "tcp"},
+{"ptp-general", {NULL}, 320, "udp"},
+{"pip", {NULL}, 321, "tcp"},
+{"pip", {NULL}, 321, "udp"},
+{"rtsps", {NULL}, 322, "tcp"},
+{"rtsps", {NULL}, 322, "udp"},
+{"texar", {NULL}, 333, "tcp"},
+{"texar", {NULL}, 333, "udp"},
+{"pdap", {NULL}, 344, "tcp"},
+{"pdap", {NULL}, 344, "udp"},
+{"pawserv", {NULL}, 345, "tcp"},
+{"pawserv", {NULL}, 345, "udp"},
+{"zserv", {NULL}, 346, "tcp"},
+{"zserv", {NULL}, 346, "udp"},
+{"fatserv", {NULL}, 347, "tcp"},
+{"fatserv", {NULL}, 347, "udp"},
+{"csi-sgwp", {NULL}, 348, "tcp"},
+{"csi-sgwp", {NULL}, 348, "udp"},
+{"mftp", {NULL}, 349, "tcp"},
+{"mftp", {NULL}, 349, "udp"},
+{"matip-type-a", {NULL}, 350, "tcp"},
+{"matip-type-a", {NULL}, 350, "udp"},
+{"matip-type-b", {NULL}, 351, "tcp"},
+{"matip-type-b", {NULL}, 351, "udp"},
+{"bhoetty", {NULL}, 351, "tcp"},
+{"bhoetty", {NULL}, 351, "udp"},
+{"dtag-ste-sb", {NULL}, 352, "tcp"},
+{"dtag-ste-sb", {NULL}, 352, "udp"},
+{"bhoedap4", {NULL}, 352, "tcp"},
+{"bhoedap4", {NULL}, 352, "udp"},
+{"ndsauth", {NULL}, 353, "tcp"},
+{"ndsauth", {NULL}, 353, "udp"},
+{"bh611", {NULL}, 354, "tcp"},
+{"bh611", {NULL}, 354, "udp"},
+{"datex-asn", {NULL}, 355, "tcp"},
+{"datex-asn", {NULL}, 355, "udp"},
+{"cloanto-net-1", {NULL}, 356, "tcp"},
+{"cloanto-net-1", {NULL}, 356, "udp"},
+{"bhevent", {NULL}, 357, "tcp"},
+{"bhevent", {NULL}, 357, "udp"},
+{"shrinkwrap", {NULL}, 358, "tcp"},
+{"shrinkwrap", {NULL}, 358, "udp"},
+{"nsrmp", {NULL}, 359, "tcp"},
+{"nsrmp", {NULL}, 359, "udp"},
+{"scoi2odialog", {NULL}, 360, "tcp"},
+{"scoi2odialog", {NULL}, 360, "udp"},
+{"semantix", {NULL}, 361, "tcp"},
+{"semantix", {NULL}, 361, "udp"},
+{"srssend", {NULL}, 362, "tcp"},
+{"srssend", {NULL}, 362, "udp"},
+{"rsvp_tunnel", {NULL}, 363, "tcp"},
+{"rsvp_tunnel", {NULL}, 363, "udp"},
+{"aurora-cmgr", {NULL}, 364, "tcp"},
+{"aurora-cmgr", {NULL}, 364, "udp"},
+{"dtk", {NULL}, 365, "tcp"},
+{"dtk", {NULL}, 365, "udp"},
+{"odmr", {NULL}, 366, "tcp"},
+{"odmr", {NULL}, 366, "udp"},
+{"mortgageware", {NULL}, 367, "tcp"},
+{"mortgageware", {NULL}, 367, "udp"},
+{"qbikgdp", {NULL}, 368, "tcp"},
+{"qbikgdp", {NULL}, 368, "udp"},
+{"rpc2portmap", {NULL}, 369, "tcp"},
+{"rpc2portmap", {NULL}, 369, "udp"},
+{"codaauth2", {NULL}, 370, "tcp"},
+{"codaauth2", {NULL}, 370, "udp"},
+{"clearcase", {NULL}, 371, "tcp"},
+{"clearcase", {NULL}, 371, "udp"},
+{"ulistproc", {NULL}, 372, "tcp"},
+{"ulistproc", {NULL}, 372, "udp"},
+{"legent-1", {NULL}, 373, "tcp"},
+{"legent-1", {NULL}, 373, "udp"},
+{"legent-2", {NULL}, 374, "tcp"},
+{"legent-2", {NULL}, 374, "udp"},
+{"hassle", {NULL}, 375, "tcp"},
+{"hassle", {NULL}, 375, "udp"},
+{"nip", {NULL}, 376, "tcp"},
+{"nip", {NULL}, 376, "udp"},
+{"tnETOS", {NULL}, 377, "tcp"},
+{"tnETOS", {NULL}, 377, "udp"},
+{"dsETOS", {NULL}, 378, "tcp"},
+{"dsETOS", {NULL}, 378, "udp"},
+{"is99c", {NULL}, 379, "tcp"},
+{"is99c", {NULL}, 379, "udp"},
+{"is99s", {NULL}, 380, "tcp"},
+{"is99s", {NULL}, 380, "udp"},
+{"hp-collector", {NULL}, 381, "tcp"},
+{"hp-collector", {NULL}, 381, "udp"},
+{"hp-managed-node", {NULL}, 382, "tcp"},
+{"hp-managed-node", {NULL}, 382, "udp"},
+{"hp-alarm-mgr", {NULL}, 383, "tcp"},
+{"hp-alarm-mgr", {NULL}, 383, "udp"},
+{"arns", {NULL}, 384, "tcp"},
+{"arns", {NULL}, 384, "udp"},
+{"ibm-app", {NULL}, 385, "tcp"},
+{"ibm-app", {NULL}, 385, "udp"},
+{"asa", {NULL}, 386, "tcp"},
+{"asa", {NULL}, 386, "udp"},
+{"aurp", {NULL}, 387, "tcp"},
+{"aurp", {NULL}, 387, "udp"},
+{"unidata-ldm", {NULL}, 388, "tcp"},
+{"unidata-ldm", {NULL}, 388, "udp"},
+{"ldap", {NULL}, 389, "tcp"},
+{"ldap", {NULL}, 389, "udp"},
+{"uis", {NULL}, 390, "tcp"},
+{"uis", {NULL}, 390, "udp"},
+{"synotics-relay", {NULL}, 391, "tcp"},
+{"synotics-relay", {NULL}, 391, "udp"},
+{"synotics-broker", {NULL}, 392, "tcp"},
+{"synotics-broker", {NULL}, 392, "udp"},
+{"meta5", {NULL}, 393, "tcp"},
+{"meta5", {NULL}, 393, "udp"},
+{"embl-ndt", {NULL}, 394, "tcp"},
+{"embl-ndt", {NULL}, 394, "udp"},
+{"netcp", {NULL}, 395, "tcp"},
+{"netcp", {NULL}, 395, "udp"},
+{"netware-ip", {NULL}, 396, "tcp"},
+{"netware-ip", {NULL}, 396, "udp"},
+{"mptn", {NULL}, 397, "tcp"},
+{"mptn", {NULL}, 397, "udp"},
+{"kryptolan", {NULL}, 398, "tcp"},
+{"kryptolan", {NULL}, 398, "udp"},
+{"iso-tsap-c2", {NULL}, 399, "tcp"},
+{"iso-tsap-c2", {NULL}, 399, "udp"},
+{"osb-sd", {NULL}, 400, "tcp"},
+{"osb-sd", {NULL}, 400, "udp"},
+{"ups", {NULL}, 401, "tcp"},
+{"ups", {NULL}, 401, "udp"},
+{"genie", {NULL}, 402, "tcp"},
+{"genie", {NULL}, 402, "udp"},
+{"decap", {NULL}, 403, "tcp"},
+{"decap", {NULL}, 403, "udp"},
+{"nced", {NULL}, 404, "tcp"},
+{"nced", {NULL}, 404, "udp"},
+{"ncld", {NULL}, 405, "tcp"},
+{"ncld", {NULL}, 405, "udp"},
+{"imsp", {NULL}, 406, "tcp"},
+{"imsp", {NULL}, 406, "udp"},
+{"timbuktu", {NULL}, 407, "tcp"},
+{"timbuktu", {NULL}, 407, "udp"},
+{"prm-sm", {NULL}, 408, "tcp"},
+{"prm-sm", {NULL}, 408, "udp"},
+{"prm-nm", {NULL}, 409, "tcp"},
+{"prm-nm", {NULL}, 409, "udp"},
+{"decladebug", {NULL}, 410, "tcp"},
+{"decladebug", {NULL}, 410, "udp"},
+{"rmt", {NULL}, 411, "tcp"},
+{"rmt", {NULL}, 411, "udp"},
+{"synoptics-trap", {NULL}, 412, "tcp"},
+{"synoptics-trap", {NULL}, 412, "udp"},
+{"smsp", {NULL}, 413, "tcp"},
+{"smsp", {NULL}, 413, "udp"},
+{"infoseek", {NULL}, 414, "tcp"},
+{"infoseek", {NULL}, 414, "udp"},
+{"bnet", {NULL}, 415, "tcp"},
+{"bnet", {NULL}, 415, "udp"},
+{"silverplatter", {NULL}, 416, "tcp"},
+{"silverplatter", {NULL}, 416, "udp"},
+{"onmux", {NULL}, 417, "tcp"},
+{"onmux", {NULL}, 417, "udp"},
+{"hyper-g", {NULL}, 418, "tcp"},
+{"hyper-g", {NULL}, 418, "udp"},
+{"ariel1", {NULL}, 419, "tcp"},
+{"ariel1", {NULL}, 419, "udp"},
+{"smpte", {NULL}, 420, "tcp"},
+{"smpte", {NULL}, 420, "udp"},
+{"ariel2", {NULL}, 421, "tcp"},
+{"ariel2", {NULL}, 421, "udp"},
+{"ariel3", {NULL}, 422, "tcp"},
+{"ariel3", {NULL}, 422, "udp"},
+{"opc-job-start", {NULL}, 423, "tcp"},
+{"opc-job-start", {NULL}, 423, "udp"},
+{"opc-job-track", {NULL}, 424, "tcp"},
+{"opc-job-track", {NULL}, 424, "udp"},
+{"icad-el", {NULL}, 425, "tcp"},
+{"icad-el", {NULL}, 425, "udp"},
+{"smartsdp", {NULL}, 426, "tcp"},
+{"smartsdp", {NULL}, 426, "udp"},
+{"svrloc", {NULL}, 427, "tcp"},
+{"svrloc", {NULL}, 427, "udp"},
+{"ocs_cmu", {NULL}, 428, "tcp"},
+{"ocs_cmu", {NULL}, 428, "udp"},
+{"ocs_amu", {NULL}, 429, "tcp"},
+{"ocs_amu", {NULL}, 429, "udp"},
+{"utmpsd", {NULL}, 430, "tcp"},
+{"utmpsd", {NULL}, 430, "udp"},
+{"utmpcd", {NULL}, 431, "tcp"},
+{"utmpcd", {NULL}, 431, "udp"},
+{"iasd", {NULL}, 432, "tcp"},
+{"iasd", {NULL}, 432, "udp"},
+{"nnsp", {NULL}, 433, "tcp"},
+{"nnsp", {NULL}, 433, "udp"},
+{"mobileip-agent", {NULL}, 434, "tcp"},
+{"mobileip-agent", {NULL}, 434, "udp"},
+{"mobilip-mn", {NULL}, 435, "tcp"},
+{"mobilip-mn", {NULL}, 435, "udp"},
+{"dna-cml", {NULL}, 436, "tcp"},
+{"dna-cml", {NULL}, 436, "udp"},
+{"comscm", {NULL}, 437, "tcp"},
+{"comscm", {NULL}, 437, "udp"},
+{"dsfgw", {NULL}, 438, "tcp"},
+{"dsfgw", {NULL}, 438, "udp"},
+{"dasp", {NULL}, 439, "tcp"},
+{"dasp", {NULL}, 439, "udp"},
+{"sgcp", {NULL}, 440, "tcp"},
+{"sgcp", {NULL}, 440, "udp"},
+{"decvms-sysmgt", {NULL}, 441, "tcp"},
+{"decvms-sysmgt", {NULL}, 441, "udp"},
+{"cvc_hostd", {NULL}, 442, "tcp"},
+{"cvc_hostd", {NULL}, 442, "udp"},
+{"https", {NULL}, 443, "tcp"},
+{"https", {NULL}, 443, "udp"},
+{"https", {NULL}, 443, "sctp"},
+{"snpp", {NULL}, 444, "tcp"},
+{"snpp", {NULL}, 444, "udp"},
+{"microsoft-ds", {NULL}, 445, "tcp"},
+{"microsoft-ds", {NULL}, 445, "udp"},
+{"ddm-rdb", {NULL}, 446, "tcp"},
+{"ddm-rdb", {NULL}, 446, "udp"},
+{"ddm-dfm", {NULL}, 447, "tcp"},
+{"ddm-dfm", {NULL}, 447, "udp"},
+{"ddm-ssl", {NULL}, 448, "tcp"},
+{"ddm-ssl", {NULL}, 448, "udp"},
+{"as-servermap", {NULL}, 449, "tcp"},
+{"as-servermap", {NULL}, 449, "udp"},
+{"tserver", {NULL}, 450, "tcp"},
+{"tserver", {NULL}, 450, "udp"},
+{"sfs-smp-net", {NULL}, 451, "tcp"},
+{"sfs-smp-net", {NULL}, 451, "udp"},
+{"sfs-config", {NULL}, 452, "tcp"},
+{"sfs-config", {NULL}, 452, "udp"},
+{"creativeserver", {NULL}, 453, "tcp"},
+{"creativeserver", {NULL}, 453, "udp"},
+{"contentserver", {NULL}, 454, "tcp"},
+{"contentserver", {NULL}, 454, "udp"},
+{"creativepartnr", {NULL}, 455, "tcp"},
+{"creativepartnr", {NULL}, 455, "udp"},
+{"macon-tcp", {NULL}, 456, "tcp"},
+{"macon-udp", {NULL}, 456, "udp"},
+{"scohelp", {NULL}, 457, "tcp"},
+{"scohelp", {NULL}, 457, "udp"},
+{"appleqtc", {NULL}, 458, "tcp"},
+{"appleqtc", {NULL}, 458, "udp"},
+{"ampr-rcmd", {NULL}, 459, "tcp"},
+{"ampr-rcmd", {NULL}, 459, "udp"},
+{"skronk", {NULL}, 460, "tcp"},
+{"skronk", {NULL}, 460, "udp"},
+{"datasurfsrv", {NULL}, 461, "tcp"},
+{"datasurfsrv", {NULL}, 461, "udp"},
+{"datasurfsrvsec", {NULL}, 462, "tcp"},
+{"datasurfsrvsec", {NULL}, 462, "udp"},
+{"alpes", {NULL}, 463, "tcp"},
+{"alpes", {NULL}, 463, "udp"},
+{"kpasswd", {NULL}, 464, "tcp"},
+{"kpasswd", {NULL}, 464, "udp"},
+{"urd", {NULL}, 465, "tcp"},
+{"igmpv3lite", {NULL}, 465, "udp"},
+{"digital-vrc", {NULL}, 466, "tcp"},
+{"digital-vrc", {NULL}, 466, "udp"},
+{"mylex-mapd", {NULL}, 467, "tcp"},
+{"mylex-mapd", {NULL}, 467, "udp"},
+{"photuris", {NULL}, 468, "tcp"},
+{"photuris", {NULL}, 468, "udp"},
+{"rcp", {NULL}, 469, "tcp"},
+{"rcp", {NULL}, 469, "udp"},
+{"scx-proxy", {NULL}, 470, "tcp"},
+{"scx-proxy", {NULL}, 470, "udp"},
+{"mondex", {NULL}, 471, "tcp"},
+{"mondex", {NULL}, 471, "udp"},
+{"ljk-login", {NULL}, 472, "tcp"},
+{"ljk-login", {NULL}, 472, "udp"},
+{"hybrid-pop", {NULL}, 473, "tcp"},
+{"hybrid-pop", {NULL}, 473, "udp"},
+{"tn-tl-w1", {NULL}, 474, "tcp"},
+{"tn-tl-w2", {NULL}, 474, "udp"},
+{"tcpnethaspsrv", {NULL}, 475, "tcp"},
+{"tcpnethaspsrv", {NULL}, 475, "udp"},
+{"tn-tl-fd1", {NULL}, 476, "tcp"},
+{"tn-tl-fd1", {NULL}, 476, "udp"},
+{"ss7ns", {NULL}, 477, "tcp"},
+{"ss7ns", {NULL}, 477, "udp"},
+{"spsc", {NULL}, 478, "tcp"},
+{"spsc", {NULL}, 478, "udp"},
+{"iafserver", {NULL}, 479, "tcp"},
+{"iafserver", {NULL}, 479, "udp"},
+{"iafdbase", {NULL}, 480, "tcp"},
+{"iafdbase", {NULL}, 480, "udp"},
+{"ph", {NULL}, 481, "tcp"},
+{"ph", {NULL}, 481, "udp"},
+{"bgs-nsi", {NULL}, 482, "tcp"},
+{"bgs-nsi", {NULL}, 482, "udp"},
+{"ulpnet", {NULL}, 483, "tcp"},
+{"ulpnet", {NULL}, 483, "udp"},
+{"integra-sme", {NULL}, 484, "tcp"},
+{"integra-sme", {NULL}, 484, "udp"},
+{"powerburst", {NULL}, 485, "tcp"},
+{"powerburst", {NULL}, 485, "udp"},
+{"avian", {NULL}, 486, "tcp"},
+{"avian", {NULL}, 486, "udp"},
+{"saft", {NULL}, 487, "tcp"},
+{"saft", {NULL}, 487, "udp"},
+{"gss-http", {NULL}, 488, "tcp"},
+{"gss-http", {NULL}, 488, "udp"},
+{"nest-protocol", {NULL}, 489, "tcp"},
+{"nest-protocol", {NULL}, 489, "udp"},
+{"micom-pfs", {NULL}, 490, "tcp"},
+{"micom-pfs", {NULL}, 490, "udp"},
+{"go-login", {NULL}, 491, "tcp"},
+{"go-login", {NULL}, 491, "udp"},
+{"ticf-1", {NULL}, 492, "tcp"},
+{"ticf-1", {NULL}, 492, "udp"},
+{"ticf-2", {NULL}, 493, "tcp"},
+{"ticf-2", {NULL}, 493, "udp"},
+{"pov-ray", {NULL}, 494, "tcp"},
+{"pov-ray", {NULL}, 494, "udp"},
+{"intecourier", {NULL}, 495, "tcp"},
+{"intecourier", {NULL}, 495, "udp"},
+{"pim-rp-disc", {NULL}, 496, "tcp"},
+{"pim-rp-disc", {NULL}, 496, "udp"},
+{"dantz", {NULL}, 497, "tcp"},
+{"dantz", {NULL}, 497, "udp"},
+{"siam", {NULL}, 498, "tcp"},
+{"siam", {NULL}, 498, "udp"},
+{"iso-ill", {NULL}, 499, "tcp"},
+{"iso-ill", {NULL}, 499, "udp"},
+{"isakmp", {NULL}, 500, "tcp"},
+{"isakmp", {NULL}, 500, "udp"},
+{"stmf", {NULL}, 501, "tcp"},
+{"stmf", {NULL}, 501, "udp"},
+{"asa-appl-proto", {NULL}, 502, "tcp"},
+{"asa-appl-proto", {NULL}, 502, "udp"},
+{"intrinsa", {NULL}, 503, "tcp"},
+{"intrinsa", {NULL}, 503, "udp"},
+{"citadel", {NULL}, 504, "tcp"},
+{"citadel", {NULL}, 504, "udp"},
+{"mailbox-lm", {NULL}, 505, "tcp"},
+{"mailbox-lm", {NULL}, 505, "udp"},
+{"ohimsrv", {NULL}, 506, "tcp"},
+{"ohimsrv", {NULL}, 506, "udp"},
+{"crs", {NULL}, 507, "tcp"},
+{"crs", {NULL}, 507, "udp"},
+{"xvttp", {NULL}, 508, "tcp"},
+{"xvttp", {NULL}, 508, "udp"},
+{"snare", {NULL}, 509, "tcp"},
+{"snare", {NULL}, 509, "udp"},
+{"fcp", {NULL}, 510, "tcp"},
+{"fcp", {NULL}, 510, "udp"},
+{"passgo", {NULL}, 511, "tcp"},
+{"passgo", {NULL}, 511, "udp"},
+{"exec", {NULL}, 512, "tcp"},
+{"comsat", {NULL}, 512, "udp"},
+{"biff", {NULL}, 512, "udp"},
+{"login", {NULL}, 513, "tcp"},
+{"who", {NULL}, 513, "udp"},
+{"shell", {NULL}, 514, "tcp"},
+{"syslog", {NULL}, 514, "udp"},
+{"printer", {NULL}, 515, "tcp"},
+{"printer", {NULL}, 515, "udp"},
+{"videotex", {NULL}, 516, "tcp"},
+{"videotex", {NULL}, 516, "udp"},
+{"talk", {NULL}, 517, "tcp"},
+{"talk", {NULL}, 517, "udp"},
+{"ntalk", {NULL}, 518, "tcp"},
+{"ntalk", {NULL}, 518, "udp"},
+{"utime", {NULL}, 519, "tcp"},
+{"utime", {NULL}, 519, "udp"},
+{"efs", {NULL}, 520, "tcp"},
+{"router", {NULL}, 520, "udp"},
+{"ripng", {NULL}, 521, "tcp"},
+{"ripng", {NULL}, 521, "udp"},
+{"ulp", {NULL}, 522, "tcp"},
+{"ulp", {NULL}, 522, "udp"},
+{"ibm-db2", {NULL}, 523, "tcp"},
+{"ibm-db2", {NULL}, 523, "udp"},
+{"ncp", {NULL}, 524, "tcp"},
+{"ncp", {NULL}, 524, "udp"},
+{"timed", {NULL}, 525, "tcp"},
+{"timed", {NULL}, 525, "udp"},
+{"tempo", {NULL}, 526, "tcp"},
+{"tempo", {NULL}, 526, "udp"},
+{"stx", {NULL}, 527, "tcp"},
+{"stx", {NULL}, 527, "udp"},
+{"custix", {NULL}, 528, "tcp"},
+{"custix", {NULL}, 528, "udp"},
+{"irc-serv", {NULL}, 529, "tcp"},
+{"irc-serv", {NULL}, 529, "udp"},
+{"courier", {NULL}, 530, "tcp"},
+{"courier", {NULL}, 530, "udp"},
+{"conference", {NULL}, 531, "tcp"},
+{"conference", {NULL}, 531, "udp"},
+{"netnews", {NULL}, 532, "tcp"},
+{"netnews", {NULL}, 532, "udp"},
+{"netwall", {NULL}, 533, "tcp"},
+{"netwall", {NULL}, 533, "udp"},
+{"windream", {NULL}, 534, "tcp"},
+{"windream", {NULL}, 534, "udp"},
+{"iiop", {NULL}, 535, "tcp"},
+{"iiop", {NULL}, 535, "udp"},
+{"opalis-rdv", {NULL}, 536, "tcp"},
+{"opalis-rdv", {NULL}, 536, "udp"},
+{"nmsp", {NULL}, 537, "tcp"},
+{"nmsp", {NULL}, 537, "udp"},
+{"gdomap", {NULL}, 538, "tcp"},
+{"gdomap", {NULL}, 538, "udp"},
+{"apertus-ldp", {NULL}, 539, "tcp"},
+{"apertus-ldp", {NULL}, 539, "udp"},
+{"uucp", {NULL}, 540, "tcp"},
+{"uucp", {NULL}, 540, "udp"},
+{"uucp-rlogin", {NULL}, 541, "tcp"},
+{"uucp-rlogin", {NULL}, 541, "udp"},
+{"commerce", {NULL}, 542, "tcp"},
+{"commerce", {NULL}, 542, "udp"},
+{"klogin", {NULL}, 543, "tcp"},
+{"klogin", {NULL}, 543, "udp"},
+{"kshell", {NULL}, 544, "tcp"},
+{"kshell", {NULL}, 544, "udp"},
+{"appleqtcsrvr", {NULL}, 545, "tcp"},
+{"appleqtcsrvr", {NULL}, 545, "udp"},
+{"dhcpv6-client", {NULL}, 546, "tcp"},
+{"dhcpv6-client", {NULL}, 546, "udp"},
+{"dhcpv6-server", {NULL}, 547, "tcp"},
+{"dhcpv6-server", {NULL}, 547, "udp"},
+{"afpovertcp", {NULL}, 548, "tcp"},
+{"afpovertcp", {NULL}, 548, "udp"},
+{"idfp", {NULL}, 549, "tcp"},
+{"idfp", {NULL}, 549, "udp"},
+{"new-rwho", {NULL}, 550, "tcp"},
+{"new-rwho", {NULL}, 550, "udp"},
+{"cybercash", {NULL}, 551, "tcp"},
+{"cybercash", {NULL}, 551, "udp"},
+{"devshr-nts", {NULL}, 552, "tcp"},
+{"devshr-nts", {NULL}, 552, "udp"},
+{"pirp", {NULL}, 553, "tcp"},
+{"pirp", {NULL}, 553, "udp"},
+{"rtsp", {NULL}, 554, "tcp"},
+{"rtsp", {NULL}, 554, "udp"},
+{"dsf", {NULL}, 555, "tcp"},
+{"dsf", {NULL}, 555, "udp"},
+{"remotefs", {NULL}, 556, "tcp"},
+{"remotefs", {NULL}, 556, "udp"},
+{"openvms-sysipc", {NULL}, 557, "tcp"},
+{"openvms-sysipc", {NULL}, 557, "udp"},
+{"sdnskmp", {NULL}, 558, "tcp"},
+{"sdnskmp", {NULL}, 558, "udp"},
+{"teedtap", {NULL}, 559, "tcp"},
+{"teedtap", {NULL}, 559, "udp"},
+{"rmonitor", {NULL}, 560, "tcp"},
+{"rmonitor", {NULL}, 560, "udp"},
+{"monitor", {NULL}, 561, "tcp"},
+{"monitor", {NULL}, 561, "udp"},
+{"chshell", {NULL}, 562, "tcp"},
+{"chshell", {NULL}, 562, "udp"},
+{"nntps", {NULL}, 563, "tcp"},
+{"nntps", {NULL}, 563, "udp"},
+{"9pfs", {NULL}, 564, "tcp"},
+{"9pfs", {NULL}, 564, "udp"},
+{"whoami", {NULL}, 565, "tcp"},
+{"whoami", {NULL}, 565, "udp"},
+{"streettalk", {NULL}, 566, "tcp"},
+{"streettalk", {NULL}, 566, "udp"},
+{"banyan-rpc", {NULL}, 567, "tcp"},
+{"banyan-rpc", {NULL}, 567, "udp"},
+{"ms-shuttle", {NULL}, 568, "tcp"},
+{"ms-shuttle", {NULL}, 568, "udp"},
+{"ms-rome", {NULL}, 569, "tcp"},
+{"ms-rome", {NULL}, 569, "udp"},
+{"meter", {NULL}, 570, "tcp"},
+{"meter", {NULL}, 570, "udp"},
+{"meter", {NULL}, 571, "tcp"},
+{"meter", {NULL}, 571, "udp"},
+{"sonar", {NULL}, 572, "tcp"},
+{"sonar", {NULL}, 572, "udp"},
+{"banyan-vip", {NULL}, 573, "tcp"},
+{"banyan-vip", {NULL}, 573, "udp"},
+{"ftp-agent", {NULL}, 574, "tcp"},
+{"ftp-agent", {NULL}, 574, "udp"},
+{"vemmi", {NULL}, 575, "tcp"},
+{"vemmi", {NULL}, 575, "udp"},
+{"ipcd", {NULL}, 576, "tcp"},
+{"ipcd", {NULL}, 576, "udp"},
+{"vnas", {NULL}, 577, "tcp"},
+{"vnas", {NULL}, 577, "udp"},
+{"ipdd", {NULL}, 578, "tcp"},
+{"ipdd", {NULL}, 578, "udp"},
+{"decbsrv", {NULL}, 579, "tcp"},
+{"decbsrv", {NULL}, 579, "udp"},
+{"sntp-heartbeat", {NULL}, 580, "tcp"},
+{"sntp-heartbeat", {NULL}, 580, "udp"},
+{"bdp", {NULL}, 581, "tcp"},
+{"bdp", {NULL}, 581, "udp"},
+{"scc-security", {NULL}, 582, "tcp"},
+{"scc-security", {NULL}, 582, "udp"},
+{"philips-vc", {NULL}, 583, "tcp"},
+{"philips-vc", {NULL}, 583, "udp"},
+{"keyserver", {NULL}, 584, "tcp"},
+{"keyserver", {NULL}, 584, "udp"},
+{"password-chg", {NULL}, 586, "tcp"},
+{"password-chg", {NULL}, 586, "udp"},
+{"submission", {NULL}, 587, "tcp"},
+{"submission", {NULL}, 587, "udp"},
+{"cal", {NULL}, 588, "tcp"},
+{"cal", {NULL}, 588, "udp"},
+{"eyelink", {NULL}, 589, "tcp"},
+{"eyelink", {NULL}, 589, "udp"},
+{"tns-cml", {NULL}, 590, "tcp"},
+{"tns-cml", {NULL}, 590, "udp"},
+{"http-alt", {NULL}, 591, "tcp"},
+{"http-alt", {NULL}, 591, "udp"},
+{"eudora-set", {NULL}, 592, "tcp"},
+{"eudora-set", {NULL}, 592, "udp"},
+{"http-rpc-epmap", {NULL}, 593, "tcp"},
+{"http-rpc-epmap", {NULL}, 593, "udp"},
+{"tpip", {NULL}, 594, "tcp"},
+{"tpip", {NULL}, 594, "udp"},
+{"cab-protocol", {NULL}, 595, "tcp"},
+{"cab-protocol", {NULL}, 595, "udp"},
+{"smsd", {NULL}, 596, "tcp"},
+{"smsd", {NULL}, 596, "udp"},
+{"ptcnameservice", {NULL}, 597, "tcp"},
+{"ptcnameservice", {NULL}, 597, "udp"},
+{"sco-websrvrmg3", {NULL}, 598, "tcp"},
+{"sco-websrvrmg3", {NULL}, 598, "udp"},
+{"acp", {NULL}, 599, "tcp"},
+{"acp", {NULL}, 599, "udp"},
+{"ipcserver", {NULL}, 600, "tcp"},
+{"ipcserver", {NULL}, 600, "udp"},
+{"syslog-conn", {NULL}, 601, "tcp"},
+{"syslog-conn", {NULL}, 601, "udp"},
+{"xmlrpc-beep", {NULL}, 602, "tcp"},
+{"xmlrpc-beep", {NULL}, 602, "udp"},
+{"idxp", {NULL}, 603, "tcp"},
+{"idxp", {NULL}, 603, "udp"},
+{"tunnel", {NULL}, 604, "tcp"},
+{"tunnel", {NULL}, 604, "udp"},
+{"soap-beep", {NULL}, 605, "tcp"},
+{"soap-beep", {NULL}, 605, "udp"},
+{"urm", {NULL}, 606, "tcp"},
+{"urm", {NULL}, 606, "udp"},
+{"nqs", {NULL}, 607, "tcp"},
+{"nqs", {NULL}, 607, "udp"},
+{"sift-uft", {NULL}, 608, "tcp"},
+{"sift-uft", {NULL}, 608, "udp"},
+{"npmp-trap", {NULL}, 609, "tcp"},
+{"npmp-trap", {NULL}, 609, "udp"},
+{"npmp-local", {NULL}, 610, "tcp"},
+{"npmp-local", {NULL}, 610, "udp"},
+{"npmp-gui", {NULL}, 611, "tcp"},
+{"npmp-gui", {NULL}, 611, "udp"},
+{"hmmp-ind", {NULL}, 612, "tcp"},
+{"hmmp-ind", {NULL}, 612, "udp"},
+{"hmmp-op", {NULL}, 613, "tcp"},
+{"hmmp-op", {NULL}, 613, "udp"},
+{"sshell", {NULL}, 614, "tcp"},
+{"sshell", {NULL}, 614, "udp"},
+{"sco-inetmgr", {NULL}, 615, "tcp"},
+{"sco-inetmgr", {NULL}, 615, "udp"},
+{"sco-sysmgr", {NULL}, 616, "tcp"},
+{"sco-sysmgr", {NULL}, 616, "udp"},
+{"sco-dtmgr", {NULL}, 617, "tcp"},
+{"sco-dtmgr", {NULL}, 617, "udp"},
+{"dei-icda", {NULL}, 618, "tcp"},
+{"dei-icda", {NULL}, 618, "udp"},
+{"compaq-evm", {NULL}, 619, "tcp"},
+{"compaq-evm", {NULL}, 619, "udp"},
+{"sco-websrvrmgr", {NULL}, 620, "tcp"},
+{"sco-websrvrmgr", {NULL}, 620, "udp"},
+{"escp-ip", {NULL}, 621, "tcp"},
+{"escp-ip", {NULL}, 621, "udp"},
+{"collaborator", {NULL}, 622, "tcp"},
+{"collaborator", {NULL}, 622, "udp"},
+{"oob-ws-http", {NULL}, 623, "tcp"},
+{"asf-rmcp", {NULL}, 623, "udp"},
+{"cryptoadmin", {NULL}, 624, "tcp"},
+{"cryptoadmin", {NULL}, 624, "udp"},
+{"dec_dlm", {NULL}, 625, "tcp"},
+{"dec_dlm", {NULL}, 625, "udp"},
+{"asia", {NULL}, 626, "tcp"},
+{"asia", {NULL}, 626, "udp"},
+{"passgo-tivoli", {NULL}, 627, "tcp"},
+{"passgo-tivoli", {NULL}, 627, "udp"},
+{"qmqp", {NULL}, 628, "tcp"},
+{"qmqp", {NULL}, 628, "udp"},
+{"3com-amp3", {NULL}, 629, "tcp"},
+{"3com-amp3", {NULL}, 629, "udp"},
+{"rda", {NULL}, 630, "tcp"},
+{"rda", {NULL}, 630, "udp"},
+{"ipp", {NULL}, 631, "tcp"},
+{"ipp", {NULL}, 631, "udp"},
+{"bmpp", {NULL}, 632, "tcp"},
+{"bmpp", {NULL}, 632, "udp"},
+{"servstat", {NULL}, 633, "tcp"},
+{"servstat", {NULL}, 633, "udp"},
+{"ginad", {NULL}, 634, "tcp"},
+{"ginad", {NULL}, 634, "udp"},
+{"rlzdbase", {NULL}, 635, "tcp"},
+{"rlzdbase", {NULL}, 635, "udp"},
+{"ldaps", {NULL}, 636, "tcp"},
+{"ldaps", {NULL}, 636, "udp"},
+{"lanserver", {NULL}, 637, "tcp"},
+{"lanserver", {NULL}, 637, "udp"},
+{"mcns-sec", {NULL}, 638, "tcp"},
+{"mcns-sec", {NULL}, 638, "udp"},
+{"msdp", {NULL}, 639, "tcp"},
+{"msdp", {NULL}, 639, "udp"},
+{"entrust-sps", {NULL}, 640, "tcp"},
+{"entrust-sps", {NULL}, 640, "udp"},
+{"repcmd", {NULL}, 641, "tcp"},
+{"repcmd", {NULL}, 641, "udp"},
+{"esro-emsdp", {NULL}, 642, "tcp"},
+{"esro-emsdp", {NULL}, 642, "udp"},
+{"sanity", {NULL}, 643, "tcp"},
+{"sanity", {NULL}, 643, "udp"},
+{"dwr", {NULL}, 644, "tcp"},
+{"dwr", {NULL}, 644, "udp"},
+{"pssc", {NULL}, 645, "tcp"},
+{"pssc", {NULL}, 645, "udp"},
+{"ldp", {NULL}, 646, "tcp"},
+{"ldp", {NULL}, 646, "udp"},
+{"dhcp-failover", {NULL}, 647, "tcp"},
+{"dhcp-failover", {NULL}, 647, "udp"},
+{"rrp", {NULL}, 648, "tcp"},
+{"rrp", {NULL}, 648, "udp"},
+{"cadview-3d", {NULL}, 649, "tcp"},
+{"cadview-3d", {NULL}, 649, "udp"},
+{"obex", {NULL}, 650, "tcp"},
+{"obex", {NULL}, 650, "udp"},
+{"ieee-mms", {NULL}, 651, "tcp"},
+{"ieee-mms", {NULL}, 651, "udp"},
+{"hello-port", {NULL}, 652, "tcp"},
+{"hello-port", {NULL}, 652, "udp"},
+{"repscmd", {NULL}, 653, "tcp"},
+{"repscmd", {NULL}, 653, "udp"},
+{"aodv", {NULL}, 654, "tcp"},
+{"aodv", {NULL}, 654, "udp"},
+{"tinc", {NULL}, 655, "tcp"},
+{"tinc", {NULL}, 655, "udp"},
+{"spmp", {NULL}, 656, "tcp"},
+{"spmp", {NULL}, 656, "udp"},
+{"rmc", {NULL}, 657, "tcp"},
+{"rmc", {NULL}, 657, "udp"},
+{"tenfold", {NULL}, 658, "tcp"},
+{"tenfold", {NULL}, 658, "udp"},
+{"mac-srvr-admin", {NULL}, 660, "tcp"},
+{"mac-srvr-admin", {NULL}, 660, "udp"},
+{"hap", {NULL}, 661, "tcp"},
+{"hap", {NULL}, 661, "udp"},
+{"pftp", {NULL}, 662, "tcp"},
+{"pftp", {NULL}, 662, "udp"},
+{"purenoise", {NULL}, 663, "tcp"},
+{"purenoise", {NULL}, 663, "udp"},
+{"oob-ws-https", {NULL}, 664, "tcp"},
+{"asf-secure-rmcp", {NULL}, 664, "udp"},
+{"sun-dr", {NULL}, 665, "tcp"},
+{"sun-dr", {NULL}, 665, "udp"},
+{"mdqs", {NULL}, 666, "tcp"},
+{"mdqs", {NULL}, 666, "udp"},
+{"doom", {NULL}, 666, "tcp"},
+{"doom", {NULL}, 666, "udp"},
+{"disclose", {NULL}, 667, "tcp"},
+{"disclose", {NULL}, 667, "udp"},
+{"mecomm", {NULL}, 668, "tcp"},
+{"mecomm", {NULL}, 668, "udp"},
+{"meregister", {NULL}, 669, "tcp"},
+{"meregister", {NULL}, 669, "udp"},
+{"vacdsm-sws", {NULL}, 670, "tcp"},
+{"vacdsm-sws", {NULL}, 670, "udp"},
+{"vacdsm-app", {NULL}, 671, "tcp"},
+{"vacdsm-app", {NULL}, 671, "udp"},
+{"vpps-qua", {NULL}, 672, "tcp"},
+{"vpps-qua", {NULL}, 672, "udp"},
+{"cimplex", {NULL}, 673, "tcp"},
+{"cimplex", {NULL}, 673, "udp"},
+{"acap", {NULL}, 674, "tcp"},
+{"acap", {NULL}, 674, "udp"},
+{"dctp", {NULL}, 675, "tcp"},
+{"dctp", {NULL}, 675, "udp"},
+{"vpps-via", {NULL}, 676, "tcp"},
+{"vpps-via", {NULL}, 676, "udp"},
+{"vpp", {NULL}, 677, "tcp"},
+{"vpp", {NULL}, 677, "udp"},
+{"ggf-ncp", {NULL}, 678, "tcp"},
+{"ggf-ncp", {NULL}, 678, "udp"},
+{"mrm", {NULL}, 679, "tcp"},
+{"mrm", {NULL}, 679, "udp"},
+{"entrust-aaas", {NULL}, 680, "tcp"},
+{"entrust-aaas", {NULL}, 680, "udp"},
+{"entrust-aams", {NULL}, 681, "tcp"},
+{"entrust-aams", {NULL}, 681, "udp"},
+{"xfr", {NULL}, 682, "tcp"},
+{"xfr", {NULL}, 682, "udp"},
+{"corba-iiop", {NULL}, 683, "tcp"},
+{"corba-iiop", {NULL}, 683, "udp"},
+{"corba-iiop-ssl", {NULL}, 684, "tcp"},
+{"corba-iiop-ssl", {NULL}, 684, "udp"},
+{"mdc-portmapper", {NULL}, 685, "tcp"},
+{"mdc-portmapper", {NULL}, 685, "udp"},
+{"hcp-wismar", {NULL}, 686, "tcp"},
+{"hcp-wismar", {NULL}, 686, "udp"},
+{"asipregistry", {NULL}, 687, "tcp"},
+{"asipregistry", {NULL}, 687, "udp"},
+{"realm-rusd", {NULL}, 688, "tcp"},
+{"realm-rusd", {NULL}, 688, "udp"},
+{"nmap", {NULL}, 689, "tcp"},
+{"nmap", {NULL}, 689, "udp"},
+{"vatp", {NULL}, 690, "tcp"},
+{"vatp", {NULL}, 690, "udp"},
+{"msexch-routing", {NULL}, 691, "tcp"},
+{"msexch-routing", {NULL}, 691, "udp"},
+{"hyperwave-isp", {NULL}, 692, "tcp"},
+{"hyperwave-isp", {NULL}, 692, "udp"},
+{"connendp", {NULL}, 693, "tcp"},
+{"connendp", {NULL}, 693, "udp"},
+{"ha-cluster", {NULL}, 694, "tcp"},
+{"ha-cluster", {NULL}, 694, "udp"},
+{"ieee-mms-ssl", {NULL}, 695, "tcp"},
+{"ieee-mms-ssl", {NULL}, 695, "udp"},
+{"rushd", {NULL}, 696, "tcp"},
+{"rushd", {NULL}, 696, "udp"},
+{"uuidgen", {NULL}, 697, "tcp"},
+{"uuidgen", {NULL}, 697, "udp"},
+{"olsr", {NULL}, 698, "tcp"},
+{"olsr", {NULL}, 698, "udp"},
+{"accessnetwork", {NULL}, 699, "tcp"},
+{"accessnetwork", {NULL}, 699, "udp"},
+{"epp", {NULL}, 700, "tcp"},
+{"epp", {NULL}, 700, "udp"},
+{"lmp", {NULL}, 701, "tcp"},
+{"lmp", {NULL}, 701, "udp"},
+{"iris-beep", {NULL}, 702, "tcp"},
+{"iris-beep", {NULL}, 702, "udp"},
+{"elcsd", {NULL}, 704, "tcp"},
+{"elcsd", {NULL}, 704, "udp"},
+{"agentx", {NULL}, 705, "tcp"},
+{"agentx", {NULL}, 705, "udp"},
+{"silc", {NULL}, 706, "tcp"},
+{"silc", {NULL}, 706, "udp"},
+{"borland-dsj", {NULL}, 707, "tcp"},
+{"borland-dsj", {NULL}, 707, "udp"},
+{"entrust-kmsh", {NULL}, 709, "tcp"},
+{"entrust-kmsh", {NULL}, 709, "udp"},
+{"entrust-ash", {NULL}, 710, "tcp"},
+{"entrust-ash", {NULL}, 710, "udp"},
+{"cisco-tdp", {NULL}, 711, "tcp"},
+{"cisco-tdp", {NULL}, 711, "udp"},
+{"tbrpf", {NULL}, 712, "tcp"},
+{"tbrpf", {NULL}, 712, "udp"},
+{"iris-xpc", {NULL}, 713, "tcp"},
+{"iris-xpc", {NULL}, 713, "udp"},
+{"iris-xpcs", {NULL}, 714, "tcp"},
+{"iris-xpcs", {NULL}, 714, "udp"},
+{"iris-lwz", {NULL}, 715, "tcp"},
+{"iris-lwz", {NULL}, 715, "udp"},
+{"pana", {NULL}, 716, "udp"},
+{"netviewdm1", {NULL}, 729, "tcp"},
+{"netviewdm1", {NULL}, 729, "udp"},
+{"netviewdm2", {NULL}, 730, "tcp"},
+{"netviewdm2", {NULL}, 730, "udp"},
+{"netviewdm3", {NULL}, 731, "tcp"},
+{"netviewdm3", {NULL}, 731, "udp"},
+{"netgw", {NULL}, 741, "tcp"},
+{"netgw", {NULL}, 741, "udp"},
+{"netrcs", {NULL}, 742, "tcp"},
+{"netrcs", {NULL}, 742, "udp"},
+{"flexlm", {NULL}, 744, "tcp"},
+{"flexlm", {NULL}, 744, "udp"},
+{"fujitsu-dev", {NULL}, 747, "tcp"},
+{"fujitsu-dev", {NULL}, 747, "udp"},
+{"ris-cm", {NULL}, 748, "tcp"},
+{"ris-cm", {NULL}, 748, "udp"},
+{"kerberos-adm", {NULL}, 749, "tcp"},
+{"kerberos-adm", {NULL}, 749, "udp"},
+{"rfile", {NULL}, 750, "tcp"},
+{"loadav", {NULL}, 750, "udp"},
+{"kerberos-iv", {NULL}, 750, "udp"},
+{"pump", {NULL}, 751, "tcp"},
+{"pump", {NULL}, 751, "udp"},
+{"qrh", {NULL}, 752, "tcp"},
+{"qrh", {NULL}, 752, "udp"},
+{"rrh", {NULL}, 753, "tcp"},
+{"rrh", {NULL}, 753, "udp"},
+{"tell", {NULL}, 754, "tcp"},
+{"tell", {NULL}, 754, "udp"},
+{"nlogin", {NULL}, 758, "tcp"},
+{"nlogin", {NULL}, 758, "udp"},
+{"con", {NULL}, 759, "tcp"},
+{"con", {NULL}, 759, "udp"},
+{"ns", {NULL}, 760, "tcp"},
+{"ns", {NULL}, 760, "udp"},
+{"rxe", {NULL}, 761, "tcp"},
+{"rxe", {NULL}, 761, "udp"},
+{"quotad", {NULL}, 762, "tcp"},
+{"quotad", {NULL}, 762, "udp"},
+{"cycleserv", {NULL}, 763, "tcp"},
+{"cycleserv", {NULL}, 763, "udp"},
+{"omserv", {NULL}, 764, "tcp"},
+{"omserv", {NULL}, 764, "udp"},
+{"webster", {NULL}, 765, "tcp"},
+{"webster", {NULL}, 765, "udp"},
+{"phonebook", {NULL}, 767, "tcp"},
+{"phonebook", {NULL}, 767, "udp"},
+{"vid", {NULL}, 769, "tcp"},
+{"vid", {NULL}, 769, "udp"},
+{"cadlock", {NULL}, 770, "tcp"},
+{"cadlock", {NULL}, 770, "udp"},
+{"rtip", {NULL}, 771, "tcp"},
+{"rtip", {NULL}, 771, "udp"},
+{"cycleserv2", {NULL}, 772, "tcp"},
+{"cycleserv2", {NULL}, 772, "udp"},
+{"submit", {NULL}, 773, "tcp"},
+{"notify", {NULL}, 773, "udp"},
+{"rpasswd", {NULL}, 774, "tcp"},
+{"acmaint_dbd", {NULL}, 774, "udp"},
+{"entomb", {NULL}, 775, "tcp"},
+{"acmaint_transd", {NULL}, 775, "udp"},
+{"wpages", {NULL}, 776, "tcp"},
+{"wpages", {NULL}, 776, "udp"},
+{"multiling-http", {NULL}, 777, "tcp"},
+{"multiling-http", {NULL}, 777, "udp"},
+{"wpgs", {NULL}, 780, "tcp"},
+{"wpgs", {NULL}, 780, "udp"},
+{"mdbs_daemon", {NULL}, 800, "tcp"},
+{"mdbs_daemon", {NULL}, 800, "udp"},
+{"device", {NULL}, 801, "tcp"},
+{"device", {NULL}, 801, "udp"},
+{"fcp-udp", {NULL}, 810, "tcp"},
+{"fcp-udp", {NULL}, 810, "udp"},
+{"itm-mcell-s", {NULL}, 828, "tcp"},
+{"itm-mcell-s", {NULL}, 828, "udp"},
+{"pkix-3-ca-ra", {NULL}, 829, "tcp"},
+{"pkix-3-ca-ra", {NULL}, 829, "udp"},
+{"netconf-ssh", {NULL}, 830, "tcp"},
+{"netconf-ssh", {NULL}, 830, "udp"},
+{"netconf-beep", {NULL}, 831, "tcp"},
+{"netconf-beep", {NULL}, 831, "udp"},
+{"netconfsoaphttp", {NULL}, 832, "tcp"},
+{"netconfsoaphttp", {NULL}, 832, "udp"},
+{"netconfsoapbeep", {NULL}, 833, "tcp"},
+{"netconfsoapbeep", {NULL}, 833, "udp"},
+{"dhcp-failover2", {NULL}, 847, "tcp"},
+{"dhcp-failover2", {NULL}, 847, "udp"},
+{"gdoi", {NULL}, 848, "tcp"},
+{"gdoi", {NULL}, 848, "udp"},
+{"iscsi", {NULL}, 860, "tcp"},
+{"iscsi", {NULL}, 860, "udp"},
+{"owamp-control", {NULL}, 861, "tcp"},
+{"owamp-control", {NULL}, 861, "udp"},
+{"twamp-control", {NULL}, 862, "tcp"},
+{"twamp-control", {NULL}, 862, "udp"},
+{"rsync", {NULL}, 873, "tcp"},
+{"rsync", {NULL}, 873, "udp"},
+{"iclcnet-locate", {NULL}, 886, "tcp"},
+{"iclcnet-locate", {NULL}, 886, "udp"},
+{"iclcnet_svinfo", {NULL}, 887, "tcp"},
+{"iclcnet_svinfo", {NULL}, 887, "udp"},
+{"accessbuilder", {NULL}, 888, "tcp"},
+{"accessbuilder", {NULL}, 888, "udp"},
+{"cddbp", {NULL}, 888, "tcp"},
+{"omginitialrefs", {NULL}, 900, "tcp"},
+{"omginitialrefs", {NULL}, 900, "udp"},
+{"smpnameres", {NULL}, 901, "tcp"},
+{"smpnameres", {NULL}, 901, "udp"},
+{"ideafarm-door", {NULL}, 902, "tcp"},
+{"ideafarm-door", {NULL}, 902, "udp"},
+{"ideafarm-panic", {NULL}, 903, "tcp"},
+{"ideafarm-panic", {NULL}, 903, "udp"},
+{"kink", {NULL}, 910, "tcp"},
+{"kink", {NULL}, 910, "udp"},
+{"xact-backup", {NULL}, 911, "tcp"},
+{"xact-backup", {NULL}, 911, "udp"},
+{"apex-mesh", {NULL}, 912, "tcp"},
+{"apex-mesh", {NULL}, 912, "udp"},
+{"apex-edge", {NULL}, 913, "tcp"},
+{"apex-edge", {NULL}, 913, "udp"},
+{"ftps-data", {NULL}, 989, "tcp"},
+{"ftps-data", {NULL}, 989, "udp"},
+{"ftps", {NULL}, 990, "tcp"},
+{"ftps", {NULL}, 990, "udp"},
+{"nas", {NULL}, 991, "tcp"},
+{"nas", {NULL}, 991, "udp"},
+{"telnets", {NULL}, 992, "tcp"},
+{"telnets", {NULL}, 992, "udp"},
+{"imaps", {NULL}, 993, "tcp"},
+{"imaps", {NULL}, 993, "udp"},
+{"ircs", {NULL}, 994, "tcp"},
+{"ircs", {NULL}, 994, "udp"},
+{"pop3s", {NULL}, 995, "tcp"},
+{"pop3s", {NULL}, 995, "udp"},
+{"vsinet", {NULL}, 996, "tcp"},
+{"vsinet", {NULL}, 996, "udp"},
+{"maitrd", {NULL}, 997, "tcp"},
+{"maitrd", {NULL}, 997, "udp"},
+{"busboy", {NULL}, 998, "tcp"},
+{"puparp", {NULL}, 998, "udp"},
+{"garcon", {NULL}, 999, "tcp"},
+{"applix", {NULL}, 999, "udp"},
+{"puprouter", {NULL}, 999, "tcp"},
+{"puprouter", {NULL}, 999, "udp"},
+{"cadlock2", {NULL}, 1000, "tcp"},
+{"cadlock2", {NULL}, 1000, "udp"},
+{"surf", {NULL}, 1010, "tcp"},
+{"surf", {NULL}, 1010, "udp"},
+{"exp1", {NULL}, 1021, "tcp"},
+{"exp1", {NULL}, 1021, "udp"},
+{"exp2", {NULL}, 1022, "tcp"},
+{"exp2", {NULL}, 1022, "udp"},
+#endif /* USE_IANA_WELL_KNOWN_PORTS */
+#ifdef USE_IANA_REGISTERED_PORTS
+{"blackjack", {NULL}, 1025, "tcp"},
+{"blackjack", {NULL}, 1025, "udp"},
+{"cap", {NULL}, 1026, "tcp"},
+{"cap", {NULL}, 1026, "udp"},
+{"solid-mux", {NULL}, 1029, "tcp"},
+{"solid-mux", {NULL}, 1029, "udp"},
+{"iad1", {NULL}, 1030, "tcp"},
+{"iad1", {NULL}, 1030, "udp"},
+{"iad2", {NULL}, 1031, "tcp"},
+{"iad2", {NULL}, 1031, "udp"},
+{"iad3", {NULL}, 1032, "tcp"},
+{"iad3", {NULL}, 1032, "udp"},
+{"netinfo-local", {NULL}, 1033, "tcp"},
+{"netinfo-local", {NULL}, 1033, "udp"},
+{"activesync", {NULL}, 1034, "tcp"},
+{"activesync", {NULL}, 1034, "udp"},
+{"mxxrlogin", {NULL}, 1035, "tcp"},
+{"mxxrlogin", {NULL}, 1035, "udp"},
+{"nsstp", {NULL}, 1036, "tcp"},
+{"nsstp", {NULL}, 1036, "udp"},
+{"ams", {NULL}, 1037, "tcp"},
+{"ams", {NULL}, 1037, "udp"},
+{"mtqp", {NULL}, 1038, "tcp"},
+{"mtqp", {NULL}, 1038, "udp"},
+{"sbl", {NULL}, 1039, "tcp"},
+{"sbl", {NULL}, 1039, "udp"},
+{"netarx", {NULL}, 1040, "tcp"},
+{"netarx", {NULL}, 1040, "udp"},
+{"danf-ak2", {NULL}, 1041, "tcp"},
+{"danf-ak2", {NULL}, 1041, "udp"},
+{"afrog", {NULL}, 1042, "tcp"},
+{"afrog", {NULL}, 1042, "udp"},
+{"boinc-client", {NULL}, 1043, "tcp"},
+{"boinc-client", {NULL}, 1043, "udp"},
+{"dcutility", {NULL}, 1044, "tcp"},
+{"dcutility", {NULL}, 1044, "udp"},
+{"fpitp", {NULL}, 1045, "tcp"},
+{"fpitp", {NULL}, 1045, "udp"},
+{"wfremotertm", {NULL}, 1046, "tcp"},
+{"wfremotertm", {NULL}, 1046, "udp"},
+{"neod1", {NULL}, 1047, "tcp"},
+{"neod1", {NULL}, 1047, "udp"},
+{"neod2", {NULL}, 1048, "tcp"},
+{"neod2", {NULL}, 1048, "udp"},
+{"td-postman", {NULL}, 1049, "tcp"},
+{"td-postman", {NULL}, 1049, "udp"},
+{"cma", {NULL}, 1050, "tcp"},
+{"cma", {NULL}, 1050, "udp"},
+{"optima-vnet", {NULL}, 1051, "tcp"},
+{"optima-vnet", {NULL}, 1051, "udp"},
+{"ddt", {NULL}, 1052, "tcp"},
+{"ddt", {NULL}, 1052, "udp"},
+{"remote-as", {NULL}, 1053, "tcp"},
+{"remote-as", {NULL}, 1053, "udp"},
+{"brvread", {NULL}, 1054, "tcp"},
+{"brvread", {NULL}, 1054, "udp"},
+{"ansyslmd", {NULL}, 1055, "tcp"},
+{"ansyslmd", {NULL}, 1055, "udp"},
+{"vfo", {NULL}, 1056, "tcp"},
+{"vfo", {NULL}, 1056, "udp"},
+{"startron", {NULL}, 1057, "tcp"},
+{"startron", {NULL}, 1057, "udp"},
+{"nim", {NULL}, 1058, "tcp"},
+{"nim", {NULL}, 1058, "udp"},
+{"nimreg", {NULL}, 1059, "tcp"},
+{"nimreg", {NULL}, 1059, "udp"},
+{"polestar", {NULL}, 1060, "tcp"},
+{"polestar", {NULL}, 1060, "udp"},
+{"kiosk", {NULL}, 1061, "tcp"},
+{"kiosk", {NULL}, 1061, "udp"},
+{"veracity", {NULL}, 1062, "tcp"},
+{"veracity", {NULL}, 1062, "udp"},
+{"kyoceranetdev", {NULL}, 1063, "tcp"},
+{"kyoceranetdev", {NULL}, 1063, "udp"},
+{"jstel", {NULL}, 1064, "tcp"},
+{"jstel", {NULL}, 1064, "udp"},
+{"syscomlan", {NULL}, 1065, "tcp"},
+{"syscomlan", {NULL}, 1065, "udp"},
+{"fpo-fns", {NULL}, 1066, "tcp"},
+{"fpo-fns", {NULL}, 1066, "udp"},
+{"instl_boots", {NULL}, 1067, "tcp"},
+{"instl_boots", {NULL}, 1067, "udp"},
+{"instl_bootc", {NULL}, 1068, "tcp"},
+{"instl_bootc", {NULL}, 1068, "udp"},
+{"cognex-insight", {NULL}, 1069, "tcp"},
+{"cognex-insight", {NULL}, 1069, "udp"},
+{"gmrupdateserv", {NULL}, 1070, "tcp"},
+{"gmrupdateserv", {NULL}, 1070, "udp"},
+{"bsquare-voip", {NULL}, 1071, "tcp"},
+{"bsquare-voip", {NULL}, 1071, "udp"},
+{"cardax", {NULL}, 1072, "tcp"},
+{"cardax", {NULL}, 1072, "udp"},
+{"bridgecontrol", {NULL}, 1073, "tcp"},
+{"bridgecontrol", {NULL}, 1073, "udp"},
+{"warmspotMgmt", {NULL}, 1074, "tcp"},
+{"warmspotMgmt", {NULL}, 1074, "udp"},
+{"rdrmshc", {NULL}, 1075, "tcp"},
+{"rdrmshc", {NULL}, 1075, "udp"},
+{"dab-sti-c", {NULL}, 1076, "tcp"},
+{"dab-sti-c", {NULL}, 1076, "udp"},
+{"imgames", {NULL}, 1077, "tcp"},
+{"imgames", {NULL}, 1077, "udp"},
+{"avocent-proxy", {NULL}, 1078, "tcp"},
+{"avocent-proxy", {NULL}, 1078, "udp"},
+{"asprovatalk", {NULL}, 1079, "tcp"},
+{"asprovatalk", {NULL}, 1079, "udp"},
+{"socks", {NULL}, 1080, "tcp"},
+{"socks", {NULL}, 1080, "udp"},
+{"pvuniwien", {NULL}, 1081, "tcp"},
+{"pvuniwien", {NULL}, 1081, "udp"},
+{"amt-esd-prot", {NULL}, 1082, "tcp"},
+{"amt-esd-prot", {NULL}, 1082, "udp"},
+{"ansoft-lm-1", {NULL}, 1083, "tcp"},
+{"ansoft-lm-1", {NULL}, 1083, "udp"},
+{"ansoft-lm-2", {NULL}, 1084, "tcp"},
+{"ansoft-lm-2", {NULL}, 1084, "udp"},
+{"webobjects", {NULL}, 1085, "tcp"},
+{"webobjects", {NULL}, 1085, "udp"},
+{"cplscrambler-lg", {NULL}, 1086, "tcp"},
+{"cplscrambler-lg", {NULL}, 1086, "udp"},
+{"cplscrambler-in", {NULL}, 1087, "tcp"},
+{"cplscrambler-in", {NULL}, 1087, "udp"},
+{"cplscrambler-al", {NULL}, 1088, "tcp"},
+{"cplscrambler-al", {NULL}, 1088, "udp"},
+{"ff-annunc", {NULL}, 1089, "tcp"},
+{"ff-annunc", {NULL}, 1089, "udp"},
+{"ff-fms", {NULL}, 1090, "tcp"},
+{"ff-fms", {NULL}, 1090, "udp"},
+{"ff-sm", {NULL}, 1091, "tcp"},
+{"ff-sm", {NULL}, 1091, "udp"},
+{"obrpd", {NULL}, 1092, "tcp"},
+{"obrpd", {NULL}, 1092, "udp"},
+{"proofd", {NULL}, 1093, "tcp"},
+{"proofd", {NULL}, 1093, "udp"},
+{"rootd", {NULL}, 1094, "tcp"},
+{"rootd", {NULL}, 1094, "udp"},
+{"nicelink", {NULL}, 1095, "tcp"},
+{"nicelink", {NULL}, 1095, "udp"},
+{"cnrprotocol", {NULL}, 1096, "tcp"},
+{"cnrprotocol", {NULL}, 1096, "udp"},
+{"sunclustermgr", {NULL}, 1097, "tcp"},
+{"sunclustermgr", {NULL}, 1097, "udp"},
+{"rmiactivation", {NULL}, 1098, "tcp"},
+{"rmiactivation", {NULL}, 1098, "udp"},
+{"rmiregistry", {NULL}, 1099, "tcp"},
+{"rmiregistry", {NULL}, 1099, "udp"},
+{"mctp", {NULL}, 1100, "tcp"},
+{"mctp", {NULL}, 1100, "udp"},
+{"pt2-discover", {NULL}, 1101, "tcp"},
+{"pt2-discover", {NULL}, 1101, "udp"},
+{"adobeserver-1", {NULL}, 1102, "tcp"},
+{"adobeserver-1", {NULL}, 1102, "udp"},
+{"adobeserver-2", {NULL}, 1103, "tcp"},
+{"adobeserver-2", {NULL}, 1103, "udp"},
+{"xrl", {NULL}, 1104, "tcp"},
+{"xrl", {NULL}, 1104, "udp"},
+{"ftranhc", {NULL}, 1105, "tcp"},
+{"ftranhc", {NULL}, 1105, "udp"},
+{"isoipsigport-1", {NULL}, 1106, "tcp"},
+{"isoipsigport-1", {NULL}, 1106, "udp"},
+{"isoipsigport-2", {NULL}, 1107, "tcp"},
+{"isoipsigport-2", {NULL}, 1107, "udp"},
+{"ratio-adp", {NULL}, 1108, "tcp"},
+{"ratio-adp", {NULL}, 1108, "udp"},
+{"webadmstart", {NULL}, 1110, "tcp"},
+{"nfsd-keepalive", {NULL}, 1110, "udp"},
+{"lmsocialserver", {NULL}, 1111, "tcp"},
+{"lmsocialserver", {NULL}, 1111, "udp"},
+{"icp", {NULL}, 1112, "tcp"},
+{"icp", {NULL}, 1112, "udp"},
+{"ltp-deepspace", {NULL}, 1113, "tcp"},
+{"ltp-deepspace", {NULL}, 1113, "udp"},
+{"mini-sql", {NULL}, 1114, "tcp"},
+{"mini-sql", {NULL}, 1114, "udp"},
+{"ardus-trns", {NULL}, 1115, "tcp"},
+{"ardus-trns", {NULL}, 1115, "udp"},
+{"ardus-cntl", {NULL}, 1116, "tcp"},
+{"ardus-cntl", {NULL}, 1116, "udp"},
+{"ardus-mtrns", {NULL}, 1117, "tcp"},
+{"ardus-mtrns", {NULL}, 1117, "udp"},
+{"sacred", {NULL}, 1118, "tcp"},
+{"sacred", {NULL}, 1118, "udp"},
+{"bnetgame", {NULL}, 1119, "tcp"},
+{"bnetgame", {NULL}, 1119, "udp"},
+{"bnetfile", {NULL}, 1120, "tcp"},
+{"bnetfile", {NULL}, 1120, "udp"},
+{"rmpp", {NULL}, 1121, "tcp"},
+{"rmpp", {NULL}, 1121, "udp"},
+{"availant-mgr", {NULL}, 1122, "tcp"},
+{"availant-mgr", {NULL}, 1122, "udp"},
+{"murray", {NULL}, 1123, "tcp"},
+{"murray", {NULL}, 1123, "udp"},
+{"hpvmmcontrol", {NULL}, 1124, "tcp"},
+{"hpvmmcontrol", {NULL}, 1124, "udp"},
+{"hpvmmagent", {NULL}, 1125, "tcp"},
+{"hpvmmagent", {NULL}, 1125, "udp"},
+{"hpvmmdata", {NULL}, 1126, "tcp"},
+{"hpvmmdata", {NULL}, 1126, "udp"},
+{"kwdb-commn", {NULL}, 1127, "tcp"},
+{"kwdb-commn", {NULL}, 1127, "udp"},
+{"saphostctrl", {NULL}, 1128, "tcp"},
+{"saphostctrl", {NULL}, 1128, "udp"},
+{"saphostctrls", {NULL}, 1129, "tcp"},
+{"saphostctrls", {NULL}, 1129, "udp"},
+{"casp", {NULL}, 1130, "tcp"},
+{"casp", {NULL}, 1130, "udp"},
+{"caspssl", {NULL}, 1131, "tcp"},
+{"caspssl", {NULL}, 1131, "udp"},
+{"kvm-via-ip", {NULL}, 1132, "tcp"},
+{"kvm-via-ip", {NULL}, 1132, "udp"},
+{"dfn", {NULL}, 1133, "tcp"},
+{"dfn", {NULL}, 1133, "udp"},
+{"aplx", {NULL}, 1134, "tcp"},
+{"aplx", {NULL}, 1134, "udp"},
+{"omnivision", {NULL}, 1135, "tcp"},
+{"omnivision", {NULL}, 1135, "udp"},
+{"hhb-gateway", {NULL}, 1136, "tcp"},
+{"hhb-gateway", {NULL}, 1136, "udp"},
+{"trim", {NULL}, 1137, "tcp"},
+{"trim", {NULL}, 1137, "udp"},
+{"encrypted_admin", {NULL}, 1138, "tcp"},
+{"encrypted_admin", {NULL}, 1138, "udp"},
+{"evm", {NULL}, 1139, "tcp"},
+{"evm", {NULL}, 1139, "udp"},
+{"autonoc", {NULL}, 1140, "tcp"},
+{"autonoc", {NULL}, 1140, "udp"},
+{"mxomss", {NULL}, 1141, "tcp"},
+{"mxomss", {NULL}, 1141, "udp"},
+{"edtools", {NULL}, 1142, "tcp"},
+{"edtools", {NULL}, 1142, "udp"},
+{"imyx", {NULL}, 1143, "tcp"},
+{"imyx", {NULL}, 1143, "udp"},
+{"fuscript", {NULL}, 1144, "tcp"},
+{"fuscript", {NULL}, 1144, "udp"},
+{"x9-icue", {NULL}, 1145, "tcp"},
+{"x9-icue", {NULL}, 1145, "udp"},
+{"audit-transfer", {NULL}, 1146, "tcp"},
+{"audit-transfer", {NULL}, 1146, "udp"},
+{"capioverlan", {NULL}, 1147, "tcp"},
+{"capioverlan", {NULL}, 1147, "udp"},
+{"elfiq-repl", {NULL}, 1148, "tcp"},
+{"elfiq-repl", {NULL}, 1148, "udp"},
+{"bvtsonar", {NULL}, 1149, "tcp"},
+{"bvtsonar", {NULL}, 1149, "udp"},
+{"blaze", {NULL}, 1150, "tcp"},
+{"blaze", {NULL}, 1150, "udp"},
+{"unizensus", {NULL}, 1151, "tcp"},
+{"unizensus", {NULL}, 1151, "udp"},
+{"winpoplanmess", {NULL}, 1152, "tcp"},
+{"winpoplanmess", {NULL}, 1152, "udp"},
+{"c1222-acse", {NULL}, 1153, "tcp"},
+{"c1222-acse", {NULL}, 1153, "udp"},
+{"resacommunity", {NULL}, 1154, "tcp"},
+{"resacommunity", {NULL}, 1154, "udp"},
+{"nfa", {NULL}, 1155, "tcp"},
+{"nfa", {NULL}, 1155, "udp"},
+{"iascontrol-oms", {NULL}, 1156, "tcp"},
+{"iascontrol-oms", {NULL}, 1156, "udp"},
+{"iascontrol", {NULL}, 1157, "tcp"},
+{"iascontrol", {NULL}, 1157, "udp"},
+{"dbcontrol-oms", {NULL}, 1158, "tcp"},
+{"dbcontrol-oms", {NULL}, 1158, "udp"},
+{"oracle-oms", {NULL}, 1159, "tcp"},
+{"oracle-oms", {NULL}, 1159, "udp"},
+{"olsv", {NULL}, 1160, "tcp"},
+{"olsv", {NULL}, 1160, "udp"},
+{"health-polling", {NULL}, 1161, "tcp"},
+{"health-polling", {NULL}, 1161, "udp"},
+{"health-trap", {NULL}, 1162, "tcp"},
+{"health-trap", {NULL}, 1162, "udp"},
+{"sddp", {NULL}, 1163, "tcp"},
+{"sddp", {NULL}, 1163, "udp"},
+{"qsm-proxy", {NULL}, 1164, "tcp"},
+{"qsm-proxy", {NULL}, 1164, "udp"},
+{"qsm-gui", {NULL}, 1165, "tcp"},
+{"qsm-gui", {NULL}, 1165, "udp"},
+{"qsm-remote", {NULL}, 1166, "tcp"},
+{"qsm-remote", {NULL}, 1166, "udp"},
+{"cisco-ipsla", {NULL}, 1167, "tcp"},
+{"cisco-ipsla", {NULL}, 1167, "udp"},
+{"cisco-ipsla", {NULL}, 1167, "sctp"},
+{"vchat", {NULL}, 1168, "tcp"},
+{"vchat", {NULL}, 1168, "udp"},
+{"tripwire", {NULL}, 1169, "tcp"},
+{"tripwire", {NULL}, 1169, "udp"},
+{"atc-lm", {NULL}, 1170, "tcp"},
+{"atc-lm", {NULL}, 1170, "udp"},
+{"atc-appserver", {NULL}, 1171, "tcp"},
+{"atc-appserver", {NULL}, 1171, "udp"},
+{"dnap", {NULL}, 1172, "tcp"},
+{"dnap", {NULL}, 1172, "udp"},
+{"d-cinema-rrp", {NULL}, 1173, "tcp"},
+{"d-cinema-rrp", {NULL}, 1173, "udp"},
+{"fnet-remote-ui", {NULL}, 1174, "tcp"},
+{"fnet-remote-ui", {NULL}, 1174, "udp"},
+{"dossier", {NULL}, 1175, "tcp"},
+{"dossier", {NULL}, 1175, "udp"},
+{"indigo-server", {NULL}, 1176, "tcp"},
+{"indigo-server", {NULL}, 1176, "udp"},
+{"dkmessenger", {NULL}, 1177, "tcp"},
+{"dkmessenger", {NULL}, 1177, "udp"},
+{"sgi-storman", {NULL}, 1178, "tcp"},
+{"sgi-storman", {NULL}, 1178, "udp"},
+{"b2n", {NULL}, 1179, "tcp"},
+{"b2n", {NULL}, 1179, "udp"},
+{"mc-client", {NULL}, 1180, "tcp"},
+{"mc-client", {NULL}, 1180, "udp"},
+{"3comnetman", {NULL}, 1181, "tcp"},
+{"3comnetman", {NULL}, 1181, "udp"},
+{"accelenet", {NULL}, 1182, "tcp"},
+{"accelenet-data", {NULL}, 1182, "udp"},
+{"llsurfup-http", {NULL}, 1183, "tcp"},
+{"llsurfup-http", {NULL}, 1183, "udp"},
+{"llsurfup-https", {NULL}, 1184, "tcp"},
+{"llsurfup-https", {NULL}, 1184, "udp"},
+{"catchpole", {NULL}, 1185, "tcp"},
+{"catchpole", {NULL}, 1185, "udp"},
+{"mysql-cluster", {NULL}, 1186, "tcp"},
+{"mysql-cluster", {NULL}, 1186, "udp"},
+{"alias", {NULL}, 1187, "tcp"},
+{"alias", {NULL}, 1187, "udp"},
+{"hp-webadmin", {NULL}, 1188, "tcp"},
+{"hp-webadmin", {NULL}, 1188, "udp"},
+{"unet", {NULL}, 1189, "tcp"},
+{"unet", {NULL}, 1189, "udp"},
+{"commlinx-avl", {NULL}, 1190, "tcp"},
+{"commlinx-avl", {NULL}, 1190, "udp"},
+{"gpfs", {NULL}, 1191, "tcp"},
+{"gpfs", {NULL}, 1191, "udp"},
+{"caids-sensor", {NULL}, 1192, "tcp"},
+{"caids-sensor", {NULL}, 1192, "udp"},
+{"fiveacross", {NULL}, 1193, "tcp"},
+{"fiveacross", {NULL}, 1193, "udp"},
+{"openvpn", {NULL}, 1194, "tcp"},
+{"openvpn", {NULL}, 1194, "udp"},
+{"rsf-1", {NULL}, 1195, "tcp"},
+{"rsf-1", {NULL}, 1195, "udp"},
+{"netmagic", {NULL}, 1196, "tcp"},
+{"netmagic", {NULL}, 1196, "udp"},
+{"carrius-rshell", {NULL}, 1197, "tcp"},
+{"carrius-rshell", {NULL}, 1197, "udp"},
+{"cajo-discovery", {NULL}, 1198, "tcp"},
+{"cajo-discovery", {NULL}, 1198, "udp"},
+{"dmidi", {NULL}, 1199, "tcp"},
+{"dmidi", {NULL}, 1199, "udp"},
+{"scol", {NULL}, 1200, "tcp"},
+{"scol", {NULL}, 1200, "udp"},
+{"nucleus-sand", {NULL}, 1201, "tcp"},
+{"nucleus-sand", {NULL}, 1201, "udp"},
+{"caiccipc", {NULL}, 1202, "tcp"},
+{"caiccipc", {NULL}, 1202, "udp"},
+{"ssslic-mgr", {NULL}, 1203, "tcp"},
+{"ssslic-mgr", {NULL}, 1203, "udp"},
+{"ssslog-mgr", {NULL}, 1204, "tcp"},
+{"ssslog-mgr", {NULL}, 1204, "udp"},
+{"accord-mgc", {NULL}, 1205, "tcp"},
+{"accord-mgc", {NULL}, 1205, "udp"},
+{"anthony-data", {NULL}, 1206, "tcp"},
+{"anthony-data", {NULL}, 1206, "udp"},
+{"metasage", {NULL}, 1207, "tcp"},
+{"metasage", {NULL}, 1207, "udp"},
+{"seagull-ais", {NULL}, 1208, "tcp"},
+{"seagull-ais", {NULL}, 1208, "udp"},
+{"ipcd3", {NULL}, 1209, "tcp"},
+{"ipcd3", {NULL}, 1209, "udp"},
+{"eoss", {NULL}, 1210, "tcp"},
+{"eoss", {NULL}, 1210, "udp"},
+{"groove-dpp", {NULL}, 1211, "tcp"},
+{"groove-dpp", {NULL}, 1211, "udp"},
+{"lupa", {NULL}, 1212, "tcp"},
+{"lupa", {NULL}, 1212, "udp"},
+{"mpc-lifenet", {NULL}, 1213, "tcp"},
+{"mpc-lifenet", {NULL}, 1213, "udp"},
+{"kazaa", {NULL}, 1214, "tcp"},
+{"kazaa", {NULL}, 1214, "udp"},
+{"scanstat-1", {NULL}, 1215, "tcp"},
+{"scanstat-1", {NULL}, 1215, "udp"},
+{"etebac5", {NULL}, 1216, "tcp"},
+{"etebac5", {NULL}, 1216, "udp"},
+{"hpss-ndapi", {NULL}, 1217, "tcp"},
+{"hpss-ndapi", {NULL}, 1217, "udp"},
+{"aeroflight-ads", {NULL}, 1218, "tcp"},
+{"aeroflight-ads", {NULL}, 1218, "udp"},
+{"aeroflight-ret", {NULL}, 1219, "tcp"},
+{"aeroflight-ret", {NULL}, 1219, "udp"},
+{"qt-serveradmin", {NULL}, 1220, "tcp"},
+{"qt-serveradmin", {NULL}, 1220, "udp"},
+{"sweetware-apps", {NULL}, 1221, "tcp"},
+{"sweetware-apps", {NULL}, 1221, "udp"},
+{"nerv", {NULL}, 1222, "tcp"},
+{"nerv", {NULL}, 1222, "udp"},
+{"tgp", {NULL}, 1223, "tcp"},
+{"tgp", {NULL}, 1223, "udp"},
+{"vpnz", {NULL}, 1224, "tcp"},
+{"vpnz", {NULL}, 1224, "udp"},
+{"slinkysearch", {NULL}, 1225, "tcp"},
+{"slinkysearch", {NULL}, 1225, "udp"},
+{"stgxfws", {NULL}, 1226, "tcp"},
+{"stgxfws", {NULL}, 1226, "udp"},
+{"dns2go", {NULL}, 1227, "tcp"},
+{"dns2go", {NULL}, 1227, "udp"},
+{"florence", {NULL}, 1228, "tcp"},
+{"florence", {NULL}, 1228, "udp"},
+{"zented", {NULL}, 1229, "tcp"},
+{"zented", {NULL}, 1229, "udp"},
+{"periscope", {NULL}, 1230, "tcp"},
+{"periscope", {NULL}, 1230, "udp"},
+{"menandmice-lpm", {NULL}, 1231, "tcp"},
+{"menandmice-lpm", {NULL}, 1231, "udp"},
+{"univ-appserver", {NULL}, 1233, "tcp"},
+{"univ-appserver", {NULL}, 1233, "udp"},
+{"search-agent", {NULL}, 1234, "tcp"},
+{"search-agent", {NULL}, 1234, "udp"},
+{"mosaicsyssvc1", {NULL}, 1235, "tcp"},
+{"mosaicsyssvc1", {NULL}, 1235, "udp"},
+{"bvcontrol", {NULL}, 1236, "tcp"},
+{"bvcontrol", {NULL}, 1236, "udp"},
+{"tsdos390", {NULL}, 1237, "tcp"},
+{"tsdos390", {NULL}, 1237, "udp"},
+{"hacl-qs", {NULL}, 1238, "tcp"},
+{"hacl-qs", {NULL}, 1238, "udp"},
+{"nmsd", {NULL}, 1239, "tcp"},
+{"nmsd", {NULL}, 1239, "udp"},
+{"instantia", {NULL}, 1240, "tcp"},
+{"instantia", {NULL}, 1240, "udp"},
+{"nessus", {NULL}, 1241, "tcp"},
+{"nessus", {NULL}, 1241, "udp"},
+{"nmasoverip", {NULL}, 1242, "tcp"},
+{"nmasoverip", {NULL}, 1242, "udp"},
+{"serialgateway", {NULL}, 1243, "tcp"},
+{"serialgateway", {NULL}, 1243, "udp"},
+{"isbconference1", {NULL}, 1244, "tcp"},
+{"isbconference1", {NULL}, 1244, "udp"},
+{"isbconference2", {NULL}, 1245, "tcp"},
+{"isbconference2", {NULL}, 1245, "udp"},
+{"payrouter", {NULL}, 1246, "tcp"},
+{"payrouter", {NULL}, 1246, "udp"},
+{"visionpyramid", {NULL}, 1247, "tcp"},
+{"visionpyramid", {NULL}, 1247, "udp"},
+{"hermes", {NULL}, 1248, "tcp"},
+{"hermes", {NULL}, 1248, "udp"},
+{"mesavistaco", {NULL}, 1249, "tcp"},
+{"mesavistaco", {NULL}, 1249, "udp"},
+{"swldy-sias", {NULL}, 1250, "tcp"},
+{"swldy-sias", {NULL}, 1250, "udp"},
+{"servergraph", {NULL}, 1251, "tcp"},
+{"servergraph", {NULL}, 1251, "udp"},
+{"bspne-pcc", {NULL}, 1252, "tcp"},
+{"bspne-pcc", {NULL}, 1252, "udp"},
+{"q55-pcc", {NULL}, 1253, "tcp"},
+{"q55-pcc", {NULL}, 1253, "udp"},
+{"de-noc", {NULL}, 1254, "tcp"},
+{"de-noc", {NULL}, 1254, "udp"},
+{"de-cache-query", {NULL}, 1255, "tcp"},
+{"de-cache-query", {NULL}, 1255, "udp"},
+{"de-server", {NULL}, 1256, "tcp"},
+{"de-server", {NULL}, 1256, "udp"},
+{"shockwave2", {NULL}, 1257, "tcp"},
+{"shockwave2", {NULL}, 1257, "udp"},
+{"opennl", {NULL}, 1258, "tcp"},
+{"opennl", {NULL}, 1258, "udp"},
+{"opennl-voice", {NULL}, 1259, "tcp"},
+{"opennl-voice", {NULL}, 1259, "udp"},
+{"ibm-ssd", {NULL}, 1260, "tcp"},
+{"ibm-ssd", {NULL}, 1260, "udp"},
+{"mpshrsv", {NULL}, 1261, "tcp"},
+{"mpshrsv", {NULL}, 1261, "udp"},
+{"qnts-orb", {NULL}, 1262, "tcp"},
+{"qnts-orb", {NULL}, 1262, "udp"},
+{"dka", {NULL}, 1263, "tcp"},
+{"dka", {NULL}, 1263, "udp"},
+{"prat", {NULL}, 1264, "tcp"},
+{"prat", {NULL}, 1264, "udp"},
+{"dssiapi", {NULL}, 1265, "tcp"},
+{"dssiapi", {NULL}, 1265, "udp"},
+{"dellpwrappks", {NULL}, 1266, "tcp"},
+{"dellpwrappks", {NULL}, 1266, "udp"},
+{"epc", {NULL}, 1267, "tcp"},
+{"epc", {NULL}, 1267, "udp"},
+{"propel-msgsys", {NULL}, 1268, "tcp"},
+{"propel-msgsys", {NULL}, 1268, "udp"},
+{"watilapp", {NULL}, 1269, "tcp"},
+{"watilapp", {NULL}, 1269, "udp"},
+{"opsmgr", {NULL}, 1270, "tcp"},
+{"opsmgr", {NULL}, 1270, "udp"},
+{"excw", {NULL}, 1271, "tcp"},
+{"excw", {NULL}, 1271, "udp"},
+{"cspmlockmgr", {NULL}, 1272, "tcp"},
+{"cspmlockmgr", {NULL}, 1272, "udp"},
+{"emc-gateway", {NULL}, 1273, "tcp"},
+{"emc-gateway", {NULL}, 1273, "udp"},
+{"t1distproc", {NULL}, 1274, "tcp"},
+{"t1distproc", {NULL}, 1274, "udp"},
+{"ivcollector", {NULL}, 1275, "tcp"},
+{"ivcollector", {NULL}, 1275, "udp"},
+{"ivmanager", {NULL}, 1276, "tcp"},
+{"ivmanager", {NULL}, 1276, "udp"},
+{"miva-mqs", {NULL}, 1277, "tcp"},
+{"miva-mqs", {NULL}, 1277, "udp"},
+{"dellwebadmin-1", {NULL}, 1278, "tcp"},
+{"dellwebadmin-1", {NULL}, 1278, "udp"},
+{"dellwebadmin-2", {NULL}, 1279, "tcp"},
+{"dellwebadmin-2", {NULL}, 1279, "udp"},
+{"pictrography", {NULL}, 1280, "tcp"},
+{"pictrography", {NULL}, 1280, "udp"},
+{"healthd", {NULL}, 1281, "tcp"},
+{"healthd", {NULL}, 1281, "udp"},
+{"emperion", {NULL}, 1282, "tcp"},
+{"emperion", {NULL}, 1282, "udp"},
+{"productinfo", {NULL}, 1283, "tcp"},
+{"productinfo", {NULL}, 1283, "udp"},
+{"iee-qfx", {NULL}, 1284, "tcp"},
+{"iee-qfx", {NULL}, 1284, "udp"},
+{"neoiface", {NULL}, 1285, "tcp"},
+{"neoiface", {NULL}, 1285, "udp"},
+{"netuitive", {NULL}, 1286, "tcp"},
+{"netuitive", {NULL}, 1286, "udp"},
+{"routematch", {NULL}, 1287, "tcp"},
+{"routematch", {NULL}, 1287, "udp"},
+{"navbuddy", {NULL}, 1288, "tcp"},
+{"navbuddy", {NULL}, 1288, "udp"},
+{"jwalkserver", {NULL}, 1289, "tcp"},
+{"jwalkserver", {NULL}, 1289, "udp"},
+{"winjaserver", {NULL}, 1290, "tcp"},
+{"winjaserver", {NULL}, 1290, "udp"},
+{"seagulllms", {NULL}, 1291, "tcp"},
+{"seagulllms", {NULL}, 1291, "udp"},
+{"dsdn", {NULL}, 1292, "tcp"},
+{"dsdn", {NULL}, 1292, "udp"},
+{"pkt-krb-ipsec", {NULL}, 1293, "tcp"},
+{"pkt-krb-ipsec", {NULL}, 1293, "udp"},
+{"cmmdriver", {NULL}, 1294, "tcp"},
+{"cmmdriver", {NULL}, 1294, "udp"},
+{"ehtp", {NULL}, 1295, "tcp"},
+{"ehtp", {NULL}, 1295, "udp"},
+{"dproxy", {NULL}, 1296, "tcp"},
+{"dproxy", {NULL}, 1296, "udp"},
+{"sdproxy", {NULL}, 1297, "tcp"},
+{"sdproxy", {NULL}, 1297, "udp"},
+{"lpcp", {NULL}, 1298, "tcp"},
+{"lpcp", {NULL}, 1298, "udp"},
+{"hp-sci", {NULL}, 1299, "tcp"},
+{"hp-sci", {NULL}, 1299, "udp"},
+{"h323hostcallsc", {NULL}, 1300, "tcp"},
+{"h323hostcallsc", {NULL}, 1300, "udp"},
+{"ci3-software-1", {NULL}, 1301, "tcp"},
+{"ci3-software-1", {NULL}, 1301, "udp"},
+{"ci3-software-2", {NULL}, 1302, "tcp"},
+{"ci3-software-2", {NULL}, 1302, "udp"},
+{"sftsrv", {NULL}, 1303, "tcp"},
+{"sftsrv", {NULL}, 1303, "udp"},
+{"boomerang", {NULL}, 1304, "tcp"},
+{"boomerang", {NULL}, 1304, "udp"},
+{"pe-mike", {NULL}, 1305, "tcp"},
+{"pe-mike", {NULL}, 1305, "udp"},
+{"re-conn-proto", {NULL}, 1306, "tcp"},
+{"re-conn-proto", {NULL}, 1306, "udp"},
+{"pacmand", {NULL}, 1307, "tcp"},
+{"pacmand", {NULL}, 1307, "udp"},
+{"odsi", {NULL}, 1308, "tcp"},
+{"odsi", {NULL}, 1308, "udp"},
+{"jtag-server", {NULL}, 1309, "tcp"},
+{"jtag-server", {NULL}, 1309, "udp"},
+{"husky", {NULL}, 1310, "tcp"},
+{"husky", {NULL}, 1310, "udp"},
+{"rxmon", {NULL}, 1311, "tcp"},
+{"rxmon", {NULL}, 1311, "udp"},
+{"sti-envision", {NULL}, 1312, "tcp"},
+{"sti-envision", {NULL}, 1312, "udp"},
+{"bmc_patroldb", {NULL}, 1313, "tcp"},
+{"bmc_patroldb", {NULL}, 1313, "udp"},
+{"pdps", {NULL}, 1314, "tcp"},
+{"pdps", {NULL}, 1314, "udp"},
+{"els", {NULL}, 1315, "tcp"},
+{"els", {NULL}, 1315, "udp"},
+{"exbit-escp", {NULL}, 1316, "tcp"},
+{"exbit-escp", {NULL}, 1316, "udp"},
+{"vrts-ipcserver", {NULL}, 1317, "tcp"},
+{"vrts-ipcserver", {NULL}, 1317, "udp"},
+{"krb5gatekeeper", {NULL}, 1318, "tcp"},
+{"krb5gatekeeper", {NULL}, 1318, "udp"},
+{"amx-icsp", {NULL}, 1319, "tcp"},
+{"amx-icsp", {NULL}, 1319, "udp"},
+{"amx-axbnet", {NULL}, 1320, "tcp"},
+{"amx-axbnet", {NULL}, 1320, "udp"},
+{"pip", {NULL}, 1321, "tcp"},
+{"pip", {NULL}, 1321, "udp"},
+{"novation", {NULL}, 1322, "tcp"},
+{"novation", {NULL}, 1322, "udp"},
+{"brcd", {NULL}, 1323, "tcp"},
+{"brcd", {NULL}, 1323, "udp"},
+{"delta-mcp", {NULL}, 1324, "tcp"},
+{"delta-mcp", {NULL}, 1324, "udp"},
+{"dx-instrument", {NULL}, 1325, "tcp"},
+{"dx-instrument", {NULL}, 1325, "udp"},
+{"wimsic", {NULL}, 1326, "tcp"},
+{"wimsic", {NULL}, 1326, "udp"},
+{"ultrex", {NULL}, 1327, "tcp"},
+{"ultrex", {NULL}, 1327, "udp"},
+{"ewall", {NULL}, 1328, "tcp"},
+{"ewall", {NULL}, 1328, "udp"},
+{"netdb-export", {NULL}, 1329, "tcp"},
+{"netdb-export", {NULL}, 1329, "udp"},
+{"streetperfect", {NULL}, 1330, "tcp"},
+{"streetperfect", {NULL}, 1330, "udp"},
+{"intersan", {NULL}, 1331, "tcp"},
+{"intersan", {NULL}, 1331, "udp"},
+{"pcia-rxp-b", {NULL}, 1332, "tcp"},
+{"pcia-rxp-b", {NULL}, 1332, "udp"},
+{"passwrd-policy", {NULL}, 1333, "tcp"},
+{"passwrd-policy", {NULL}, 1333, "udp"},
+{"writesrv", {NULL}, 1334, "tcp"},
+{"writesrv", {NULL}, 1334, "udp"},
+{"digital-notary", {NULL}, 1335, "tcp"},
+{"digital-notary", {NULL}, 1335, "udp"},
+{"ischat", {NULL}, 1336, "tcp"},
+{"ischat", {NULL}, 1336, "udp"},
+{"menandmice-dns", {NULL}, 1337, "tcp"},
+{"menandmice-dns", {NULL}, 1337, "udp"},
+{"wmc-log-svc", {NULL}, 1338, "tcp"},
+{"wmc-log-svc", {NULL}, 1338, "udp"},
+{"kjtsiteserver", {NULL}, 1339, "tcp"},
+{"kjtsiteserver", {NULL}, 1339, "udp"},
+{"naap", {NULL}, 1340, "tcp"},
+{"naap", {NULL}, 1340, "udp"},
+{"qubes", {NULL}, 1341, "tcp"},
+{"qubes", {NULL}, 1341, "udp"},
+{"esbroker", {NULL}, 1342, "tcp"},
+{"esbroker", {NULL}, 1342, "udp"},
+{"re101", {NULL}, 1343, "tcp"},
+{"re101", {NULL}, 1343, "udp"},
+{"icap", {NULL}, 1344, "tcp"},
+{"icap", {NULL}, 1344, "udp"},
+{"vpjp", {NULL}, 1345, "tcp"},
+{"vpjp", {NULL}, 1345, "udp"},
+{"alta-ana-lm", {NULL}, 1346, "tcp"},
+{"alta-ana-lm", {NULL}, 1346, "udp"},
+{"bbn-mmc", {NULL}, 1347, "tcp"},
+{"bbn-mmc", {NULL}, 1347, "udp"},
+{"bbn-mmx", {NULL}, 1348, "tcp"},
+{"bbn-mmx", {NULL}, 1348, "udp"},
+{"sbook", {NULL}, 1349, "tcp"},
+{"sbook", {NULL}, 1349, "udp"},
+{"editbench", {NULL}, 1350, "tcp"},
+{"editbench", {NULL}, 1350, "udp"},
+{"equationbuilder", {NULL}, 1351, "tcp"},
+{"equationbuilder", {NULL}, 1351, "udp"},
+{"lotusnote", {NULL}, 1352, "tcp"},
+{"lotusnote", {NULL}, 1352, "udp"},
+{"relief", {NULL}, 1353, "tcp"},
+{"relief", {NULL}, 1353, "udp"},
+{"XSIP-network", {NULL}, 1354, "tcp"},
+{"XSIP-network", {NULL}, 1354, "udp"},
+{"intuitive-edge", {NULL}, 1355, "tcp"},
+{"intuitive-edge", {NULL}, 1355, "udp"},
+{"cuillamartin", {NULL}, 1356, "tcp"},
+{"cuillamartin", {NULL}, 1356, "udp"},
+{"pegboard", {NULL}, 1357, "tcp"},
+{"pegboard", {NULL}, 1357, "udp"},
+{"connlcli", {NULL}, 1358, "tcp"},
+{"connlcli", {NULL}, 1358, "udp"},
+{"ftsrv", {NULL}, 1359, "tcp"},
+{"ftsrv", {NULL}, 1359, "udp"},
+{"mimer", {NULL}, 1360, "tcp"},
+{"mimer", {NULL}, 1360, "udp"},
+{"linx", {NULL}, 1361, "tcp"},
+{"linx", {NULL}, 1361, "udp"},
+{"timeflies", {NULL}, 1362, "tcp"},
+{"timeflies", {NULL}, 1362, "udp"},
+{"ndm-requester", {NULL}, 1363, "tcp"},
+{"ndm-requester", {NULL}, 1363, "udp"},
+{"ndm-server", {NULL}, 1364, "tcp"},
+{"ndm-server", {NULL}, 1364, "udp"},
+{"adapt-sna", {NULL}, 1365, "tcp"},
+{"adapt-sna", {NULL}, 1365, "udp"},
+{"netware-csp", {NULL}, 1366, "tcp"},
+{"netware-csp", {NULL}, 1366, "udp"},
+{"dcs", {NULL}, 1367, "tcp"},
+{"dcs", {NULL}, 1367, "udp"},
+{"screencast", {NULL}, 1368, "tcp"},
+{"screencast", {NULL}, 1368, "udp"},
+{"gv-us", {NULL}, 1369, "tcp"},
+{"gv-us", {NULL}, 1369, "udp"},
+{"us-gv", {NULL}, 1370, "tcp"},
+{"us-gv", {NULL}, 1370, "udp"},
+{"fc-cli", {NULL}, 1371, "tcp"},
+{"fc-cli", {NULL}, 1371, "udp"},
+{"fc-ser", {NULL}, 1372, "tcp"},
+{"fc-ser", {NULL}, 1372, "udp"},
+{"chromagrafx", {NULL}, 1373, "tcp"},
+{"chromagrafx", {NULL}, 1373, "udp"},
+{"molly", {NULL}, 1374, "tcp"},
+{"molly", {NULL}, 1374, "udp"},
+{"bytex", {NULL}, 1375, "tcp"},
+{"bytex", {NULL}, 1375, "udp"},
+{"ibm-pps", {NULL}, 1376, "tcp"},
+{"ibm-pps", {NULL}, 1376, "udp"},
+{"cichlid", {NULL}, 1377, "tcp"},
+{"cichlid", {NULL}, 1377, "udp"},
+{"elan", {NULL}, 1378, "tcp"},
+{"elan", {NULL}, 1378, "udp"},
+{"dbreporter", {NULL}, 1379, "tcp"},
+{"dbreporter", {NULL}, 1379, "udp"},
+{"telesis-licman", {NULL}, 1380, "tcp"},
+{"telesis-licman", {NULL}, 1380, "udp"},
+{"apple-licman", {NULL}, 1381, "tcp"},
+{"apple-licman", {NULL}, 1381, "udp"},
+{"udt_os", {NULL}, 1382, "tcp"},
+{"udt_os", {NULL}, 1382, "udp"},
+{"gwha", {NULL}, 1383, "tcp"},
+{"gwha", {NULL}, 1383, "udp"},
+{"os-licman", {NULL}, 1384, "tcp"},
+{"os-licman", {NULL}, 1384, "udp"},
+{"atex_elmd", {NULL}, 1385, "tcp"},
+{"atex_elmd", {NULL}, 1385, "udp"},
+{"checksum", {NULL}, 1386, "tcp"},
+{"checksum", {NULL}, 1386, "udp"},
+{"cadsi-lm", {NULL}, 1387, "tcp"},
+{"cadsi-lm", {NULL}, 1387, "udp"},
+{"objective-dbc", {NULL}, 1388, "tcp"},
+{"objective-dbc", {NULL}, 1388, "udp"},
+{"iclpv-dm", {NULL}, 1389, "tcp"},
+{"iclpv-dm", {NULL}, 1389, "udp"},
+{"iclpv-sc", {NULL}, 1390, "tcp"},
+{"iclpv-sc", {NULL}, 1390, "udp"},
+{"iclpv-sas", {NULL}, 1391, "tcp"},
+{"iclpv-sas", {NULL}, 1391, "udp"},
+{"iclpv-pm", {NULL}, 1392, "tcp"},
+{"iclpv-pm", {NULL}, 1392, "udp"},
+{"iclpv-nls", {NULL}, 1393, "tcp"},
+{"iclpv-nls", {NULL}, 1393, "udp"},
+{"iclpv-nlc", {NULL}, 1394, "tcp"},
+{"iclpv-nlc", {NULL}, 1394, "udp"},
+{"iclpv-wsm", {NULL}, 1395, "tcp"},
+{"iclpv-wsm", {NULL}, 1395, "udp"},
+{"dvl-activemail", {NULL}, 1396, "tcp"},
+{"dvl-activemail", {NULL}, 1396, "udp"},
+{"audio-activmail", {NULL}, 1397, "tcp"},
+{"audio-activmail", {NULL}, 1397, "udp"},
+{"video-activmail", {NULL}, 1398, "tcp"},
+{"video-activmail", {NULL}, 1398, "udp"},
+{"cadkey-licman", {NULL}, 1399, "tcp"},
+{"cadkey-licman", {NULL}, 1399, "udp"},
+{"cadkey-tablet", {NULL}, 1400, "tcp"},
+{"cadkey-tablet", {NULL}, 1400, "udp"},
+{"goldleaf-licman", {NULL}, 1401, "tcp"},
+{"goldleaf-licman", {NULL}, 1401, "udp"},
+{"prm-sm-np", {NULL}, 1402, "tcp"},
+{"prm-sm-np", {NULL}, 1402, "udp"},
+{"prm-nm-np", {NULL}, 1403, "tcp"},
+{"prm-nm-np", {NULL}, 1403, "udp"},
+{"igi-lm", {NULL}, 1404, "tcp"},
+{"igi-lm", {NULL}, 1404, "udp"},
+{"ibm-res", {NULL}, 1405, "tcp"},
+{"ibm-res", {NULL}, 1405, "udp"},
+{"netlabs-lm", {NULL}, 1406, "tcp"},
+{"netlabs-lm", {NULL}, 1406, "udp"},
+{"dbsa-lm", {NULL}, 1407, "tcp"},
+{"dbsa-lm", {NULL}, 1407, "udp"},
+{"sophia-lm", {NULL}, 1408, "tcp"},
+{"sophia-lm", {NULL}, 1408, "udp"},
+{"here-lm", {NULL}, 1409, "tcp"},
+{"here-lm", {NULL}, 1409, "udp"},
+{"hiq", {NULL}, 1410, "tcp"},
+{"hiq", {NULL}, 1410, "udp"},
+{"af", {NULL}, 1411, "tcp"},
+{"af", {NULL}, 1411, "udp"},
+{"innosys", {NULL}, 1412, "tcp"},
+{"innosys", {NULL}, 1412, "udp"},
+{"innosys-acl", {NULL}, 1413, "tcp"},
+{"innosys-acl", {NULL}, 1413, "udp"},
+{"ibm-mqseries", {NULL}, 1414, "tcp"},
+{"ibm-mqseries", {NULL}, 1414, "udp"},
+{"dbstar", {NULL}, 1415, "tcp"},
+{"dbstar", {NULL}, 1415, "udp"},
+{"novell-lu6.2", {NULL}, 1416, "tcp"},
+{"novell-lu6.2", {NULL}, 1416, "udp"},
+{"timbuktu-srv1", {NULL}, 1417, "tcp"},
+{"timbuktu-srv1", {NULL}, 1417, "udp"},
+{"timbuktu-srv2", {NULL}, 1418, "tcp"},
+{"timbuktu-srv2", {NULL}, 1418, "udp"},
+{"timbuktu-srv3", {NULL}, 1419, "tcp"},
+{"timbuktu-srv3", {NULL}, 1419, "udp"},
+{"timbuktu-srv4", {NULL}, 1420, "tcp"},
+{"timbuktu-srv4", {NULL}, 1420, "udp"},
+{"gandalf-lm", {NULL}, 1421, "tcp"},
+{"gandalf-lm", {NULL}, 1421, "udp"},
+{"autodesk-lm", {NULL}, 1422, "tcp"},
+{"autodesk-lm", {NULL}, 1422, "udp"},
+{"essbase", {NULL}, 1423, "tcp"},
+{"essbase", {NULL}, 1423, "udp"},
+{"hybrid", {NULL}, 1424, "tcp"},
+{"hybrid", {NULL}, 1424, "udp"},
+{"zion-lm", {NULL}, 1425, "tcp"},
+{"zion-lm", {NULL}, 1425, "udp"},
+{"sais", {NULL}, 1426, "tcp"},
+{"sais", {NULL}, 1426, "udp"},
+{"mloadd", {NULL}, 1427, "tcp"},
+{"mloadd", {NULL}, 1427, "udp"},
+{"informatik-lm", {NULL}, 1428, "tcp"},
+{"informatik-lm", {NULL}, 1428, "udp"},
+{"nms", {NULL}, 1429, "tcp"},
+{"nms", {NULL}, 1429, "udp"},
+{"tpdu", {NULL}, 1430, "tcp"},
+{"tpdu", {NULL}, 1430, "udp"},
+{"rgtp", {NULL}, 1431, "tcp"},
+{"rgtp", {NULL}, 1431, "udp"},
+{"blueberry-lm", {NULL}, 1432, "tcp"},
+{"blueberry-lm", {NULL}, 1432, "udp"},
+{"ms-sql-s", {NULL}, 1433, "tcp"},
+{"ms-sql-s", {NULL}, 1433, "udp"},
+{"ms-sql-m", {NULL}, 1434, "tcp"},
+{"ms-sql-m", {NULL}, 1434, "udp"},
+{"ibm-cics", {NULL}, 1435, "tcp"},
+{"ibm-cics", {NULL}, 1435, "udp"},
+{"saism", {NULL}, 1436, "tcp"},
+{"saism", {NULL}, 1436, "udp"},
+{"tabula", {NULL}, 1437, "tcp"},
+{"tabula", {NULL}, 1437, "udp"},
+{"eicon-server", {NULL}, 1438, "tcp"},
+{"eicon-server", {NULL}, 1438, "udp"},
+{"eicon-x25", {NULL}, 1439, "tcp"},
+{"eicon-x25", {NULL}, 1439, "udp"},
+{"eicon-slp", {NULL}, 1440, "tcp"},
+{"eicon-slp", {NULL}, 1440, "udp"},
+{"cadis-1", {NULL}, 1441, "tcp"},
+{"cadis-1", {NULL}, 1441, "udp"},
+{"cadis-2", {NULL}, 1442, "tcp"},
+{"cadis-2", {NULL}, 1442, "udp"},
+{"ies-lm", {NULL}, 1443, "tcp"},
+{"ies-lm", {NULL}, 1443, "udp"},
+{"marcam-lm", {NULL}, 1444, "tcp"},
+{"marcam-lm", {NULL}, 1444, "udp"},
+{"proxima-lm", {NULL}, 1445, "tcp"},
+{"proxima-lm", {NULL}, 1445, "udp"},
+{"ora-lm", {NULL}, 1446, "tcp"},
+{"ora-lm", {NULL}, 1446, "udp"},
+{"apri-lm", {NULL}, 1447, "tcp"},
+{"apri-lm", {NULL}, 1447, "udp"},
+{"oc-lm", {NULL}, 1448, "tcp"},
+{"oc-lm", {NULL}, 1448, "udp"},
+{"peport", {NULL}, 1449, "tcp"},
+{"peport", {NULL}, 1449, "udp"},
+{"dwf", {NULL}, 1450, "tcp"},
+{"dwf", {NULL}, 1450, "udp"},
+{"infoman", {NULL}, 1451, "tcp"},
+{"infoman", {NULL}, 1451, "udp"},
+{"gtegsc-lm", {NULL}, 1452, "tcp"},
+{"gtegsc-lm", {NULL}, 1452, "udp"},
+{"genie-lm", {NULL}, 1453, "tcp"},
+{"genie-lm", {NULL}, 1453, "udp"},
+{"interhdl_elmd", {NULL}, 1454, "tcp"},
+{"interhdl_elmd", {NULL}, 1454, "udp"},
+{"esl-lm", {NULL}, 1455, "tcp"},
+{"esl-lm", {NULL}, 1455, "udp"},
+{"dca", {NULL}, 1456, "tcp"},
+{"dca", {NULL}, 1456, "udp"},
+{"valisys-lm", {NULL}, 1457, "tcp"},
+{"valisys-lm", {NULL}, 1457, "udp"},
+{"nrcabq-lm", {NULL}, 1458, "tcp"},
+{"nrcabq-lm", {NULL}, 1458, "udp"},
+{"proshare1", {NULL}, 1459, "tcp"},
+{"proshare1", {NULL}, 1459, "udp"},
+{"proshare2", {NULL}, 1460, "tcp"},
+{"proshare2", {NULL}, 1460, "udp"},
+{"ibm_wrless_lan", {NULL}, 1461, "tcp"},
+{"ibm_wrless_lan", {NULL}, 1461, "udp"},
+{"world-lm", {NULL}, 1462, "tcp"},
+{"world-lm", {NULL}, 1462, "udp"},
+{"nucleus", {NULL}, 1463, "tcp"},
+{"nucleus", {NULL}, 1463, "udp"},
+{"msl_lmd", {NULL}, 1464, "tcp"},
+{"msl_lmd", {NULL}, 1464, "udp"},
+{"pipes", {NULL}, 1465, "tcp"},
+{"pipes", {NULL}, 1465, "udp"},
+{"oceansoft-lm", {NULL}, 1466, "tcp"},
+{"oceansoft-lm", {NULL}, 1466, "udp"},
+{"csdmbase", {NULL}, 1467, "tcp"},
+{"csdmbase", {NULL}, 1467, "udp"},
+{"csdm", {NULL}, 1468, "tcp"},
+{"csdm", {NULL}, 1468, "udp"},
+{"aal-lm", {NULL}, 1469, "tcp"},
+{"aal-lm", {NULL}, 1469, "udp"},
+{"uaiact", {NULL}, 1470, "tcp"},
+{"uaiact", {NULL}, 1470, "udp"},
+{"csdmbase", {NULL}, 1471, "tcp"},
+{"csdmbase", {NULL}, 1471, "udp"},
+{"csdm", {NULL}, 1472, "tcp"},
+{"csdm", {NULL}, 1472, "udp"},
+{"openmath", {NULL}, 1473, "tcp"},
+{"openmath", {NULL}, 1473, "udp"},
+{"telefinder", {NULL}, 1474, "tcp"},
+{"telefinder", {NULL}, 1474, "udp"},
+{"taligent-lm", {NULL}, 1475, "tcp"},
+{"taligent-lm", {NULL}, 1475, "udp"},
+{"clvm-cfg", {NULL}, 1476, "tcp"},
+{"clvm-cfg", {NULL}, 1476, "udp"},
+{"ms-sna-server", {NULL}, 1477, "tcp"},
+{"ms-sna-server", {NULL}, 1477, "udp"},
+{"ms-sna-base", {NULL}, 1478, "tcp"},
+{"ms-sna-base", {NULL}, 1478, "udp"},
+{"dberegister", {NULL}, 1479, "tcp"},
+{"dberegister", {NULL}, 1479, "udp"},
+{"pacerforum", {NULL}, 1480, "tcp"},
+{"pacerforum", {NULL}, 1480, "udp"},
+{"airs", {NULL}, 1481, "tcp"},
+{"airs", {NULL}, 1481, "udp"},
+{"miteksys-lm", {NULL}, 1482, "tcp"},
+{"miteksys-lm", {NULL}, 1482, "udp"},
+{"afs", {NULL}, 1483, "tcp"},
+{"afs", {NULL}, 1483, "udp"},
+{"confluent", {NULL}, 1484, "tcp"},
+{"confluent", {NULL}, 1484, "udp"},
+{"lansource", {NULL}, 1485, "tcp"},
+{"lansource", {NULL}, 1485, "udp"},
+{"nms_topo_serv", {NULL}, 1486, "tcp"},
+{"nms_topo_serv", {NULL}, 1486, "udp"},
+{"localinfosrvr", {NULL}, 1487, "tcp"},
+{"localinfosrvr", {NULL}, 1487, "udp"},
+{"docstor", {NULL}, 1488, "tcp"},
+{"docstor", {NULL}, 1488, "udp"},
+{"dmdocbroker", {NULL}, 1489, "tcp"},
+{"dmdocbroker", {NULL}, 1489, "udp"},
+{"insitu-conf", {NULL}, 1490, "tcp"},
+{"insitu-conf", {NULL}, 1490, "udp"},
+{"stone-design-1", {NULL}, 1492, "tcp"},
+{"stone-design-1", {NULL}, 1492, "udp"},
+{"netmap_lm", {NULL}, 1493, "tcp"},
+{"netmap_lm", {NULL}, 1493, "udp"},
+{"ica", {NULL}, 1494, "tcp"},
+{"ica", {NULL}, 1494, "udp"},
+{"cvc", {NULL}, 1495, "tcp"},
+{"cvc", {NULL}, 1495, "udp"},
+{"liberty-lm", {NULL}, 1496, "tcp"},
+{"liberty-lm", {NULL}, 1496, "udp"},
+{"rfx-lm", {NULL}, 1497, "tcp"},
+{"rfx-lm", {NULL}, 1497, "udp"},
+{"sybase-sqlany", {NULL}, 1498, "tcp"},
+{"sybase-sqlany", {NULL}, 1498, "udp"},
+{"fhc", {NULL}, 1499, "tcp"},
+{"fhc", {NULL}, 1499, "udp"},
+{"vlsi-lm", {NULL}, 1500, "tcp"},
+{"vlsi-lm", {NULL}, 1500, "udp"},
+{"saiscm", {NULL}, 1501, "tcp"},
+{"saiscm", {NULL}, 1501, "udp"},
+{"shivadiscovery", {NULL}, 1502, "tcp"},
+{"shivadiscovery", {NULL}, 1502, "udp"},
+{"imtc-mcs", {NULL}, 1503, "tcp"},
+{"imtc-mcs", {NULL}, 1503, "udp"},
+{"evb-elm", {NULL}, 1504, "tcp"},
+{"evb-elm", {NULL}, 1504, "udp"},
+{"funkproxy", {NULL}, 1505, "tcp"},
+{"funkproxy", {NULL}, 1505, "udp"},
+{"utcd", {NULL}, 1506, "tcp"},
+{"utcd", {NULL}, 1506, "udp"},
+{"symplex", {NULL}, 1507, "tcp"},
+{"symplex", {NULL}, 1507, "udp"},
+{"diagmond", {NULL}, 1508, "tcp"},
+{"diagmond", {NULL}, 1508, "udp"},
+{"robcad-lm", {NULL}, 1509, "tcp"},
+{"robcad-lm", {NULL}, 1509, "udp"},
+{"mvx-lm", {NULL}, 1510, "tcp"},
+{"mvx-lm", {NULL}, 1510, "udp"},
+{"3l-l1", {NULL}, 1511, "tcp"},
+{"3l-l1", {NULL}, 1511, "udp"},
+{"wins", {NULL}, 1512, "tcp"},
+{"wins", {NULL}, 1512, "udp"},
+{"fujitsu-dtc", {NULL}, 1513, "tcp"},
+{"fujitsu-dtc", {NULL}, 1513, "udp"},
+{"fujitsu-dtcns", {NULL}, 1514, "tcp"},
+{"fujitsu-dtcns", {NULL}, 1514, "udp"},
+{"ifor-protocol", {NULL}, 1515, "tcp"},
+{"ifor-protocol", {NULL}, 1515, "udp"},
+{"vpad", {NULL}, 1516, "tcp"},
+{"vpad", {NULL}, 1516, "udp"},
+{"vpac", {NULL}, 1517, "tcp"},
+{"vpac", {NULL}, 1517, "udp"},
+{"vpvd", {NULL}, 1518, "tcp"},
+{"vpvd", {NULL}, 1518, "udp"},
+{"vpvc", {NULL}, 1519, "tcp"},
+{"vpvc", {NULL}, 1519, "udp"},
+{"atm-zip-office", {NULL}, 1520, "tcp"},
+{"atm-zip-office", {NULL}, 1520, "udp"},
+{"ncube-lm", {NULL}, 1521, "tcp"},
+{"ncube-lm", {NULL}, 1521, "udp"},
+{"ricardo-lm", {NULL}, 1522, "tcp"},
+{"ricardo-lm", {NULL}, 1522, "udp"},
+{"cichild-lm", {NULL}, 1523, "tcp"},
+{"cichild-lm", {NULL}, 1523, "udp"},
+{"ingreslock", {NULL}, 1524, "tcp"},
+{"ingreslock", {NULL}, 1524, "udp"},
+{"orasrv", {NULL}, 1525, "tcp"},
+{"orasrv", {NULL}, 1525, "udp"},
+{"prospero-np", {NULL}, 1525, "tcp"},
+{"prospero-np", {NULL}, 1525, "udp"},
+{"pdap-np", {NULL}, 1526, "tcp"},
+{"pdap-np", {NULL}, 1526, "udp"},
+{"tlisrv", {NULL}, 1527, "tcp"},
+{"tlisrv", {NULL}, 1527, "udp"},
+{"coauthor", {NULL}, 1529, "tcp"},
+{"coauthor", {NULL}, 1529, "udp"},
+{"rap-service", {NULL}, 1530, "tcp"},
+{"rap-service", {NULL}, 1530, "udp"},
+{"rap-listen", {NULL}, 1531, "tcp"},
+{"rap-listen", {NULL}, 1531, "udp"},
+{"miroconnect", {NULL}, 1532, "tcp"},
+{"miroconnect", {NULL}, 1532, "udp"},
+{"virtual-places", {NULL}, 1533, "tcp"},
+{"virtual-places", {NULL}, 1533, "udp"},
+{"micromuse-lm", {NULL}, 1534, "tcp"},
+{"micromuse-lm", {NULL}, 1534, "udp"},
+{"ampr-info", {NULL}, 1535, "tcp"},
+{"ampr-info", {NULL}, 1535, "udp"},
+{"ampr-inter", {NULL}, 1536, "tcp"},
+{"ampr-inter", {NULL}, 1536, "udp"},
+{"sdsc-lm", {NULL}, 1537, "tcp"},
+{"sdsc-lm", {NULL}, 1537, "udp"},
+{"3ds-lm", {NULL}, 1538, "tcp"},
+{"3ds-lm", {NULL}, 1538, "udp"},
+{"intellistor-lm", {NULL}, 1539, "tcp"},
+{"intellistor-lm", {NULL}, 1539, "udp"},
+{"rds", {NULL}, 1540, "tcp"},
+{"rds", {NULL}, 1540, "udp"},
+{"rds2", {NULL}, 1541, "tcp"},
+{"rds2", {NULL}, 1541, "udp"},
+{"gridgen-elmd", {NULL}, 1542, "tcp"},
+{"gridgen-elmd", {NULL}, 1542, "udp"},
+{"simba-cs", {NULL}, 1543, "tcp"},
+{"simba-cs", {NULL}, 1543, "udp"},
+{"aspeclmd", {NULL}, 1544, "tcp"},
+{"aspeclmd", {NULL}, 1544, "udp"},
+{"vistium-share", {NULL}, 1545, "tcp"},
+{"vistium-share", {NULL}, 1545, "udp"},
+{"abbaccuray", {NULL}, 1546, "tcp"},
+{"abbaccuray", {NULL}, 1546, "udp"},
+{"laplink", {NULL}, 1547, "tcp"},
+{"laplink", {NULL}, 1547, "udp"},
+{"axon-lm", {NULL}, 1548, "tcp"},
+{"axon-lm", {NULL}, 1548, "udp"},
+{"shivahose", {NULL}, 1549, "tcp"},
+{"shivasound", {NULL}, 1549, "udp"},
+{"3m-image-lm", {NULL}, 1550, "tcp"},
+{"3m-image-lm", {NULL}, 1550, "udp"},
+{"hecmtl-db", {NULL}, 1551, "tcp"},
+{"hecmtl-db", {NULL}, 1551, "udp"},
+{"pciarray", {NULL}, 1552, "tcp"},
+{"pciarray", {NULL}, 1552, "udp"},
+{"sna-cs", {NULL}, 1553, "tcp"},
+{"sna-cs", {NULL}, 1553, "udp"},
+{"caci-lm", {NULL}, 1554, "tcp"},
+{"caci-lm", {NULL}, 1554, "udp"},
+{"livelan", {NULL}, 1555, "tcp"},
+{"livelan", {NULL}, 1555, "udp"},
+{"veritas_pbx", {NULL}, 1556, "tcp"},
+{"veritas_pbx", {NULL}, 1556, "udp"},
+{"arbortext-lm", {NULL}, 1557, "tcp"},
+{"arbortext-lm", {NULL}, 1557, "udp"},
+{"xingmpeg", {NULL}, 1558, "tcp"},
+{"xingmpeg", {NULL}, 1558, "udp"},
+{"web2host", {NULL}, 1559, "tcp"},
+{"web2host", {NULL}, 1559, "udp"},
+{"asci-val", {NULL}, 1560, "tcp"},
+{"asci-val", {NULL}, 1560, "udp"},
+{"facilityview", {NULL}, 1561, "tcp"},
+{"facilityview", {NULL}, 1561, "udp"},
+{"pconnectmgr", {NULL}, 1562, "tcp"},
+{"pconnectmgr", {NULL}, 1562, "udp"},
+{"cadabra-lm", {NULL}, 1563, "tcp"},
+{"cadabra-lm", {NULL}, 1563, "udp"},
+{"pay-per-view", {NULL}, 1564, "tcp"},
+{"pay-per-view", {NULL}, 1564, "udp"},
+{"winddlb", {NULL}, 1565, "tcp"},
+{"winddlb", {NULL}, 1565, "udp"},
+{"corelvideo", {NULL}, 1566, "tcp"},
+{"corelvideo", {NULL}, 1566, "udp"},
+{"jlicelmd", {NULL}, 1567, "tcp"},
+{"jlicelmd", {NULL}, 1567, "udp"},
+{"tsspmap", {NULL}, 1568, "tcp"},
+{"tsspmap", {NULL}, 1568, "udp"},
+{"ets", {NULL}, 1569, "tcp"},
+{"ets", {NULL}, 1569, "udp"},
+{"orbixd", {NULL}, 1570, "tcp"},
+{"orbixd", {NULL}, 1570, "udp"},
+{"rdb-dbs-disp", {NULL}, 1571, "tcp"},
+{"rdb-dbs-disp", {NULL}, 1571, "udp"},
+{"chip-lm", {NULL}, 1572, "tcp"},
+{"chip-lm", {NULL}, 1572, "udp"},
+{"itscomm-ns", {NULL}, 1573, "tcp"},
+{"itscomm-ns", {NULL}, 1573, "udp"},
+{"mvel-lm", {NULL}, 1574, "tcp"},
+{"mvel-lm", {NULL}, 1574, "udp"},
+{"oraclenames", {NULL}, 1575, "tcp"},
+{"oraclenames", {NULL}, 1575, "udp"},
+{"moldflow-lm", {NULL}, 1576, "tcp"},
+{"moldflow-lm", {NULL}, 1576, "udp"},
+{"hypercube-lm", {NULL}, 1577, "tcp"},
+{"hypercube-lm", {NULL}, 1577, "udp"},
+{"jacobus-lm", {NULL}, 1578, "tcp"},
+{"jacobus-lm", {NULL}, 1578, "udp"},
+{"ioc-sea-lm", {NULL}, 1579, "tcp"},
+{"ioc-sea-lm", {NULL}, 1579, "udp"},
+{"tn-tl-r1", {NULL}, 1580, "tcp"},
+{"tn-tl-r2", {NULL}, 1580, "udp"},
+{"mil-2045-47001", {NULL}, 1581, "tcp"},
+{"mil-2045-47001", {NULL}, 1581, "udp"},
+{"msims", {NULL}, 1582, "tcp"},
+{"msims", {NULL}, 1582, "udp"},
+{"simbaexpress", {NULL}, 1583, "tcp"},
+{"simbaexpress", {NULL}, 1583, "udp"},
+{"tn-tl-fd2", {NULL}, 1584, "tcp"},
+{"tn-tl-fd2", {NULL}, 1584, "udp"},
+{"intv", {NULL}, 1585, "tcp"},
+{"intv", {NULL}, 1585, "udp"},
+{"ibm-abtact", {NULL}, 1586, "tcp"},
+{"ibm-abtact", {NULL}, 1586, "udp"},
+{"pra_elmd", {NULL}, 1587, "tcp"},
+{"pra_elmd", {NULL}, 1587, "udp"},
+{"triquest-lm", {NULL}, 1588, "tcp"},
+{"triquest-lm", {NULL}, 1588, "udp"},
+{"vqp", {NULL}, 1589, "tcp"},
+{"vqp", {NULL}, 1589, "udp"},
+{"gemini-lm", {NULL}, 1590, "tcp"},
+{"gemini-lm", {NULL}, 1590, "udp"},
+{"ncpm-pm", {NULL}, 1591, "tcp"},
+{"ncpm-pm", {NULL}, 1591, "udp"},
+{"commonspace", {NULL}, 1592, "tcp"},
+{"commonspace", {NULL}, 1592, "udp"},
+{"mainsoft-lm", {NULL}, 1593, "tcp"},
+{"mainsoft-lm", {NULL}, 1593, "udp"},
+{"sixtrak", {NULL}, 1594, "tcp"},
+{"sixtrak", {NULL}, 1594, "udp"},
+{"radio", {NULL}, 1595, "tcp"},
+{"radio", {NULL}, 1595, "udp"},
+{"radio-sm", {NULL}, 1596, "tcp"},
+{"radio-bc", {NULL}, 1596, "udp"},
+{"orbplus-iiop", {NULL}, 1597, "tcp"},
+{"orbplus-iiop", {NULL}, 1597, "udp"},
+{"picknfs", {NULL}, 1598, "tcp"},
+{"picknfs", {NULL}, 1598, "udp"},
+{"simbaservices", {NULL}, 1599, "tcp"},
+{"simbaservices", {NULL}, 1599, "udp"},
+{"issd", {NULL}, 1600, "tcp"},
+{"issd", {NULL}, 1600, "udp"},
+{"aas", {NULL}, 1601, "tcp"},
+{"aas", {NULL}, 1601, "udp"},
+{"inspect", {NULL}, 1602, "tcp"},
+{"inspect", {NULL}, 1602, "udp"},
+{"picodbc", {NULL}, 1603, "tcp"},
+{"picodbc", {NULL}, 1603, "udp"},
+{"icabrowser", {NULL}, 1604, "tcp"},
+{"icabrowser", {NULL}, 1604, "udp"},
+{"slp", {NULL}, 1605, "tcp"},
+{"slp", {NULL}, 1605, "udp"},
+{"slm-api", {NULL}, 1606, "tcp"},
+{"slm-api", {NULL}, 1606, "udp"},
+{"stt", {NULL}, 1607, "tcp"},
+{"stt", {NULL}, 1607, "udp"},
+{"smart-lm", {NULL}, 1608, "tcp"},
+{"smart-lm", {NULL}, 1608, "udp"},
+{"isysg-lm", {NULL}, 1609, "tcp"},
+{"isysg-lm", {NULL}, 1609, "udp"},
+{"taurus-wh", {NULL}, 1610, "tcp"},
+{"taurus-wh", {NULL}, 1610, "udp"},
+{"ill", {NULL}, 1611, "tcp"},
+{"ill", {NULL}, 1611, "udp"},
+{"netbill-trans", {NULL}, 1612, "tcp"},
+{"netbill-trans", {NULL}, 1612, "udp"},
+{"netbill-keyrep", {NULL}, 1613, "tcp"},
+{"netbill-keyrep", {NULL}, 1613, "udp"},
+{"netbill-cred", {NULL}, 1614, "tcp"},
+{"netbill-cred", {NULL}, 1614, "udp"},
+{"netbill-auth", {NULL}, 1615, "tcp"},
+{"netbill-auth", {NULL}, 1615, "udp"},
+{"netbill-prod", {NULL}, 1616, "tcp"},
+{"netbill-prod", {NULL}, 1616, "udp"},
+{"nimrod-agent", {NULL}, 1617, "tcp"},
+{"nimrod-agent", {NULL}, 1617, "udp"},
+{"skytelnet", {NULL}, 1618, "tcp"},
+{"skytelnet", {NULL}, 1618, "udp"},
+{"xs-openstorage", {NULL}, 1619, "tcp"},
+{"xs-openstorage", {NULL}, 1619, "udp"},
+{"faxportwinport", {NULL}, 1620, "tcp"},
+{"faxportwinport", {NULL}, 1620, "udp"},
+{"softdataphone", {NULL}, 1621, "tcp"},
+{"softdataphone", {NULL}, 1621, "udp"},
+{"ontime", {NULL}, 1622, "tcp"},
+{"ontime", {NULL}, 1622, "udp"},
+{"jaleosnd", {NULL}, 1623, "tcp"},
+{"jaleosnd", {NULL}, 1623, "udp"},
+{"udp-sr-port", {NULL}, 1624, "tcp"},
+{"udp-sr-port", {NULL}, 1624, "udp"},
+{"svs-omagent", {NULL}, 1625, "tcp"},
+{"svs-omagent", {NULL}, 1625, "udp"},
+{"shockwave", {NULL}, 1626, "tcp"},
+{"shockwave", {NULL}, 1626, "udp"},
+{"t128-gateway", {NULL}, 1627, "tcp"},
+{"t128-gateway", {NULL}, 1627, "udp"},
+{"lontalk-norm", {NULL}, 1628, "tcp"},
+{"lontalk-norm", {NULL}, 1628, "udp"},
+{"lontalk-urgnt", {NULL}, 1629, "tcp"},
+{"lontalk-urgnt", {NULL}, 1629, "udp"},
+{"oraclenet8cman", {NULL}, 1630, "tcp"},
+{"oraclenet8cman", {NULL}, 1630, "udp"},
+{"visitview", {NULL}, 1631, "tcp"},
+{"visitview", {NULL}, 1631, "udp"},
+{"pammratc", {NULL}, 1632, "tcp"},
+{"pammratc", {NULL}, 1632, "udp"},
+{"pammrpc", {NULL}, 1633, "tcp"},
+{"pammrpc", {NULL}, 1633, "udp"},
+{"loaprobe", {NULL}, 1634, "tcp"},
+{"loaprobe", {NULL}, 1634, "udp"},
+{"edb-server1", {NULL}, 1635, "tcp"},
+{"edb-server1", {NULL}, 1635, "udp"},
+{"isdc", {NULL}, 1636, "tcp"},
+{"isdc", {NULL}, 1636, "udp"},
+{"islc", {NULL}, 1637, "tcp"},
+{"islc", {NULL}, 1637, "udp"},
+{"ismc", {NULL}, 1638, "tcp"},
+{"ismc", {NULL}, 1638, "udp"},
+{"cert-initiator", {NULL}, 1639, "tcp"},
+{"cert-initiator", {NULL}, 1639, "udp"},
+{"cert-responder", {NULL}, 1640, "tcp"},
+{"cert-responder", {NULL}, 1640, "udp"},
+{"invision", {NULL}, 1641, "tcp"},
+{"invision", {NULL}, 1641, "udp"},
+{"isis-am", {NULL}, 1642, "tcp"},
+{"isis-am", {NULL}, 1642, "udp"},
+{"isis-ambc", {NULL}, 1643, "tcp"},
+{"isis-ambc", {NULL}, 1643, "udp"},
+{"saiseh", {NULL}, 1644, "tcp"},
+{"sightline", {NULL}, 1645, "tcp"},
+{"sightline", {NULL}, 1645, "udp"},
+{"sa-msg-port", {NULL}, 1646, "tcp"},
+{"sa-msg-port", {NULL}, 1646, "udp"},
+{"rsap", {NULL}, 1647, "tcp"},
+{"rsap", {NULL}, 1647, "udp"},
+{"concurrent-lm", {NULL}, 1648, "tcp"},
+{"concurrent-lm", {NULL}, 1648, "udp"},
+{"kermit", {NULL}, 1649, "tcp"},
+{"kermit", {NULL}, 1649, "udp"},
+{"nkd", {NULL}, 1650, "tcp"},
+{"nkd", {NULL}, 1650, "udp"},
+{"shiva_confsrvr", {NULL}, 1651, "tcp"},
+{"shiva_confsrvr", {NULL}, 1651, "udp"},
+{"xnmp", {NULL}, 1652, "tcp"},
+{"xnmp", {NULL}, 1652, "udp"},
+{"alphatech-lm", {NULL}, 1653, "tcp"},
+{"alphatech-lm", {NULL}, 1653, "udp"},
+{"stargatealerts", {NULL}, 1654, "tcp"},
+{"stargatealerts", {NULL}, 1654, "udp"},
+{"dec-mbadmin", {NULL}, 1655, "tcp"},
+{"dec-mbadmin", {NULL}, 1655, "udp"},
+{"dec-mbadmin-h", {NULL}, 1656, "tcp"},
+{"dec-mbadmin-h", {NULL}, 1656, "udp"},
+{"fujitsu-mmpdc", {NULL}, 1657, "tcp"},
+{"fujitsu-mmpdc", {NULL}, 1657, "udp"},
+{"sixnetudr", {NULL}, 1658, "tcp"},
+{"sixnetudr", {NULL}, 1658, "udp"},
+{"sg-lm", {NULL}, 1659, "tcp"},
+{"sg-lm", {NULL}, 1659, "udp"},
+{"skip-mc-gikreq", {NULL}, 1660, "tcp"},
+{"skip-mc-gikreq", {NULL}, 1660, "udp"},
+{"netview-aix-1", {NULL}, 1661, "tcp"},
+{"netview-aix-1", {NULL}, 1661, "udp"},
+{"netview-aix-2", {NULL}, 1662, "tcp"},
+{"netview-aix-2", {NULL}, 1662, "udp"},
+{"netview-aix-3", {NULL}, 1663, "tcp"},
+{"netview-aix-3", {NULL}, 1663, "udp"},
+{"netview-aix-4", {NULL}, 1664, "tcp"},
+{"netview-aix-4", {NULL}, 1664, "udp"},
+{"netview-aix-5", {NULL}, 1665, "tcp"},
+{"netview-aix-5", {NULL}, 1665, "udp"},
+{"netview-aix-6", {NULL}, 1666, "tcp"},
+{"netview-aix-6", {NULL}, 1666, "udp"},
+{"netview-aix-7", {NULL}, 1667, "tcp"},
+{"netview-aix-7", {NULL}, 1667, "udp"},
+{"netview-aix-8", {NULL}, 1668, "tcp"},
+{"netview-aix-8", {NULL}, 1668, "udp"},
+{"netview-aix-9", {NULL}, 1669, "tcp"},
+{"netview-aix-9", {NULL}, 1669, "udp"},
+{"netview-aix-10", {NULL}, 1670, "tcp"},
+{"netview-aix-10", {NULL}, 1670, "udp"},
+{"netview-aix-11", {NULL}, 1671, "tcp"},
+{"netview-aix-11", {NULL}, 1671, "udp"},
+{"netview-aix-12", {NULL}, 1672, "tcp"},
+{"netview-aix-12", {NULL}, 1672, "udp"},
+{"proshare-mc-1", {NULL}, 1673, "tcp"},
+{"proshare-mc-1", {NULL}, 1673, "udp"},
+{"proshare-mc-2", {NULL}, 1674, "tcp"},
+{"proshare-mc-2", {NULL}, 1674, "udp"},
+{"pdp", {NULL}, 1675, "tcp"},
+{"pdp", {NULL}, 1675, "udp"},
+{"netcomm1", {NULL}, 1676, "tcp"},
+{"netcomm2", {NULL}, 1676, "udp"},
+{"groupwise", {NULL}, 1677, "tcp"},
+{"groupwise", {NULL}, 1677, "udp"},
+{"prolink", {NULL}, 1678, "tcp"},
+{"prolink", {NULL}, 1678, "udp"},
+{"darcorp-lm", {NULL}, 1679, "tcp"},
+{"darcorp-lm", {NULL}, 1679, "udp"},
+{"microcom-sbp", {NULL}, 1680, "tcp"},
+{"microcom-sbp", {NULL}, 1680, "udp"},
+{"sd-elmd", {NULL}, 1681, "tcp"},
+{"sd-elmd", {NULL}, 1681, "udp"},
+{"lanyon-lantern", {NULL}, 1682, "tcp"},
+{"lanyon-lantern", {NULL}, 1682, "udp"},
+{"ncpm-hip", {NULL}, 1683, "tcp"},
+{"ncpm-hip", {NULL}, 1683, "udp"},
+{"snaresecure", {NULL}, 1684, "tcp"},
+{"snaresecure", {NULL}, 1684, "udp"},
+{"n2nremote", {NULL}, 1685, "tcp"},
+{"n2nremote", {NULL}, 1685, "udp"},
+{"cvmon", {NULL}, 1686, "tcp"},
+{"cvmon", {NULL}, 1686, "udp"},
+{"nsjtp-ctrl", {NULL}, 1687, "tcp"},
+{"nsjtp-ctrl", {NULL}, 1687, "udp"},
+{"nsjtp-data", {NULL}, 1688, "tcp"},
+{"nsjtp-data", {NULL}, 1688, "udp"},
+{"firefox", {NULL}, 1689, "tcp"},
+{"firefox", {NULL}, 1689, "udp"},
+{"ng-umds", {NULL}, 1690, "tcp"},
+{"ng-umds", {NULL}, 1690, "udp"},
+{"empire-empuma", {NULL}, 1691, "tcp"},
+{"empire-empuma", {NULL}, 1691, "udp"},
+{"sstsys-lm", {NULL}, 1692, "tcp"},
+{"sstsys-lm", {NULL}, 1692, "udp"},
+{"rrirtr", {NULL}, 1693, "tcp"},
+{"rrirtr", {NULL}, 1693, "udp"},
+{"rrimwm", {NULL}, 1694, "tcp"},
+{"rrimwm", {NULL}, 1694, "udp"},
+{"rrilwm", {NULL}, 1695, "tcp"},
+{"rrilwm", {NULL}, 1695, "udp"},
+{"rrifmm", {NULL}, 1696, "tcp"},
+{"rrifmm", {NULL}, 1696, "udp"},
+{"rrisat", {NULL}, 1697, "tcp"},
+{"rrisat", {NULL}, 1697, "udp"},
+{"rsvp-encap-1", {NULL}, 1698, "tcp"},
+{"rsvp-encap-1", {NULL}, 1698, "udp"},
+{"rsvp-encap-2", {NULL}, 1699, "tcp"},
+{"rsvp-encap-2", {NULL}, 1699, "udp"},
+{"mps-raft", {NULL}, 1700, "tcp"},
+{"mps-raft", {NULL}, 1700, "udp"},
+{"l2f", {NULL}, 1701, "tcp"},
+{"l2f", {NULL}, 1701, "udp"},
+{"l2tp", {NULL}, 1701, "tcp"},
+{"l2tp", {NULL}, 1701, "udp"},
+{"deskshare", {NULL}, 1702, "tcp"},
+{"deskshare", {NULL}, 1702, "udp"},
+{"hb-engine", {NULL}, 1703, "tcp"},
+{"hb-engine", {NULL}, 1703, "udp"},
+{"bcs-broker", {NULL}, 1704, "tcp"},
+{"bcs-broker", {NULL}, 1704, "udp"},
+{"slingshot", {NULL}, 1705, "tcp"},
+{"slingshot", {NULL}, 1705, "udp"},
+{"jetform", {NULL}, 1706, "tcp"},
+{"jetform", {NULL}, 1706, "udp"},
+{"vdmplay", {NULL}, 1707, "tcp"},
+{"vdmplay", {NULL}, 1707, "udp"},
+{"gat-lmd", {NULL}, 1708, "tcp"},
+{"gat-lmd", {NULL}, 1708, "udp"},
+{"centra", {NULL}, 1709, "tcp"},
+{"centra", {NULL}, 1709, "udp"},
+{"impera", {NULL}, 1710, "tcp"},
+{"impera", {NULL}, 1710, "udp"},
+{"pptconference", {NULL}, 1711, "tcp"},
+{"pptconference", {NULL}, 1711, "udp"},
+{"registrar", {NULL}, 1712, "tcp"},
+{"registrar", {NULL}, 1712, "udp"},
+{"conferencetalk", {NULL}, 1713, "tcp"},
+{"conferencetalk", {NULL}, 1713, "udp"},
+{"sesi-lm", {NULL}, 1714, "tcp"},
+{"sesi-lm", {NULL}, 1714, "udp"},
+{"houdini-lm", {NULL}, 1715, "tcp"},
+{"houdini-lm", {NULL}, 1715, "udp"},
+{"xmsg", {NULL}, 1716, "tcp"},
+{"xmsg", {NULL}, 1716, "udp"},
+{"fj-hdnet", {NULL}, 1717, "tcp"},
+{"fj-hdnet", {NULL}, 1717, "udp"},
+{"h323gatedisc", {NULL}, 1718, "tcp"},
+{"h323gatedisc", {NULL}, 1718, "udp"},
+{"h323gatestat", {NULL}, 1719, "tcp"},
+{"h323gatestat", {NULL}, 1719, "udp"},
+{"h323hostcall", {NULL}, 1720, "tcp"},
+{"h323hostcall", {NULL}, 1720, "udp"},
+{"caicci", {NULL}, 1721, "tcp"},
+{"caicci", {NULL}, 1721, "udp"},
+{"hks-lm", {NULL}, 1722, "tcp"},
+{"hks-lm", {NULL}, 1722, "udp"},
+{"pptp", {NULL}, 1723, "tcp"},
+{"pptp", {NULL}, 1723, "udp"},
+{"csbphonemaster", {NULL}, 1724, "tcp"},
+{"csbphonemaster", {NULL}, 1724, "udp"},
+{"iden-ralp", {NULL}, 1725, "tcp"},
+{"iden-ralp", {NULL}, 1725, "udp"},
+{"iberiagames", {NULL}, 1726, "tcp"},
+{"iberiagames", {NULL}, 1726, "udp"},
+{"winddx", {NULL}, 1727, "tcp"},
+{"winddx", {NULL}, 1727, "udp"},
+{"telindus", {NULL}, 1728, "tcp"},
+{"telindus", {NULL}, 1728, "udp"},
+{"citynl", {NULL}, 1729, "tcp"},
+{"citynl", {NULL}, 1729, "udp"},
+{"roketz", {NULL}, 1730, "tcp"},
+{"roketz", {NULL}, 1730, "udp"},
+{"msiccp", {NULL}, 1731, "tcp"},
+{"msiccp", {NULL}, 1731, "udp"},
+{"proxim", {NULL}, 1732, "tcp"},
+{"proxim", {NULL}, 1732, "udp"},
+{"siipat", {NULL}, 1733, "tcp"},
+{"siipat", {NULL}, 1733, "udp"},
+{"cambertx-lm", {NULL}, 1734, "tcp"},
+{"cambertx-lm", {NULL}, 1734, "udp"},
+{"privatechat", {NULL}, 1735, "tcp"},
+{"privatechat", {NULL}, 1735, "udp"},
+{"street-stream", {NULL}, 1736, "tcp"},
+{"street-stream", {NULL}, 1736, "udp"},
+{"ultimad", {NULL}, 1737, "tcp"},
+{"ultimad", {NULL}, 1737, "udp"},
+{"gamegen1", {NULL}, 1738, "tcp"},
+{"gamegen1", {NULL}, 1738, "udp"},
+{"webaccess", {NULL}, 1739, "tcp"},
+{"webaccess", {NULL}, 1739, "udp"},
+{"encore", {NULL}, 1740, "tcp"},
+{"encore", {NULL}, 1740, "udp"},
+{"cisco-net-mgmt", {NULL}, 1741, "tcp"},
+{"cisco-net-mgmt", {NULL}, 1741, "udp"},
+{"3Com-nsd", {NULL}, 1742, "tcp"},
+{"3Com-nsd", {NULL}, 1742, "udp"},
+{"cinegrfx-lm", {NULL}, 1743, "tcp"},
+{"cinegrfx-lm", {NULL}, 1743, "udp"},
+{"ncpm-ft", {NULL}, 1744, "tcp"},
+{"ncpm-ft", {NULL}, 1744, "udp"},
+{"remote-winsock", {NULL}, 1745, "tcp"},
+{"remote-winsock", {NULL}, 1745, "udp"},
+{"ftrapid-1", {NULL}, 1746, "tcp"},
+{"ftrapid-1", {NULL}, 1746, "udp"},
+{"ftrapid-2", {NULL}, 1747, "tcp"},
+{"ftrapid-2", {NULL}, 1747, "udp"},
+{"oracle-em1", {NULL}, 1748, "tcp"},
+{"oracle-em1", {NULL}, 1748, "udp"},
+{"aspen-services", {NULL}, 1749, "tcp"},
+{"aspen-services", {NULL}, 1749, "udp"},
+{"sslp", {NULL}, 1750, "tcp"},
+{"sslp", {NULL}, 1750, "udp"},
+{"swiftnet", {NULL}, 1751, "tcp"},
+{"swiftnet", {NULL}, 1751, "udp"},
+{"lofr-lm", {NULL}, 1752, "tcp"},
+{"lofr-lm", {NULL}, 1752, "udp"},
+{"oracle-em2", {NULL}, 1754, "tcp"},
+{"oracle-em2", {NULL}, 1754, "udp"},
+{"ms-streaming", {NULL}, 1755, "tcp"},
+{"ms-streaming", {NULL}, 1755, "udp"},
+{"capfast-lmd", {NULL}, 1756, "tcp"},
+{"capfast-lmd", {NULL}, 1756, "udp"},
+{"cnhrp", {NULL}, 1757, "tcp"},
+{"cnhrp", {NULL}, 1757, "udp"},
+{"tftp-mcast", {NULL}, 1758, "tcp"},
+{"tftp-mcast", {NULL}, 1758, "udp"},
+{"spss-lm", {NULL}, 1759, "tcp"},
+{"spss-lm", {NULL}, 1759, "udp"},
+{"www-ldap-gw", {NULL}, 1760, "tcp"},
+{"www-ldap-gw", {NULL}, 1760, "udp"},
+{"cft-0", {NULL}, 1761, "tcp"},
+{"cft-0", {NULL}, 1761, "udp"},
+{"cft-1", {NULL}, 1762, "tcp"},
+{"cft-1", {NULL}, 1762, "udp"},
+{"cft-2", {NULL}, 1763, "tcp"},
+{"cft-2", {NULL}, 1763, "udp"},
+{"cft-3", {NULL}, 1764, "tcp"},
+{"cft-3", {NULL}, 1764, "udp"},
+{"cft-4", {NULL}, 1765, "tcp"},
+{"cft-4", {NULL}, 1765, "udp"},
+{"cft-5", {NULL}, 1766, "tcp"},
+{"cft-5", {NULL}, 1766, "udp"},
+{"cft-6", {NULL}, 1767, "tcp"},
+{"cft-6", {NULL}, 1767, "udp"},
+{"cft-7", {NULL}, 1768, "tcp"},
+{"cft-7", {NULL}, 1768, "udp"},
+{"bmc-net-adm", {NULL}, 1769, "tcp"},
+{"bmc-net-adm", {NULL}, 1769, "udp"},
+{"bmc-net-svc", {NULL}, 1770, "tcp"},
+{"bmc-net-svc", {NULL}, 1770, "udp"},
+{"vaultbase", {NULL}, 1771, "tcp"},
+{"vaultbase", {NULL}, 1771, "udp"},
+{"essweb-gw", {NULL}, 1772, "tcp"},
+{"essweb-gw", {NULL}, 1772, "udp"},
+{"kmscontrol", {NULL}, 1773, "tcp"},
+{"kmscontrol", {NULL}, 1773, "udp"},
+{"global-dtserv", {NULL}, 1774, "tcp"},
+{"global-dtserv", {NULL}, 1774, "udp"},
+{"femis", {NULL}, 1776, "tcp"},
+{"femis", {NULL}, 1776, "udp"},
+{"powerguardian", {NULL}, 1777, "tcp"},
+{"powerguardian", {NULL}, 1777, "udp"},
+{"prodigy-intrnet", {NULL}, 1778, "tcp"},
+{"prodigy-intrnet", {NULL}, 1778, "udp"},
+{"pharmasoft", {NULL}, 1779, "tcp"},
+{"pharmasoft", {NULL}, 1779, "udp"},
+{"dpkeyserv", {NULL}, 1780, "tcp"},
+{"dpkeyserv", {NULL}, 1780, "udp"},
+{"answersoft-lm", {NULL}, 1781, "tcp"},
+{"answersoft-lm", {NULL}, 1781, "udp"},
+{"hp-hcip", {NULL}, 1782, "tcp"},
+{"hp-hcip", {NULL}, 1782, "udp"},
+{"finle-lm", {NULL}, 1784, "tcp"},
+{"finle-lm", {NULL}, 1784, "udp"},
+{"windlm", {NULL}, 1785, "tcp"},
+{"windlm", {NULL}, 1785, "udp"},
+{"funk-logger", {NULL}, 1786, "tcp"},
+{"funk-logger", {NULL}, 1786, "udp"},
+{"funk-license", {NULL}, 1787, "tcp"},
+{"funk-license", {NULL}, 1787, "udp"},
+{"psmond", {NULL}, 1788, "tcp"},
+{"psmond", {NULL}, 1788, "udp"},
+{"hello", {NULL}, 1789, "tcp"},
+{"hello", {NULL}, 1789, "udp"},
+{"nmsp", {NULL}, 1790, "tcp"},
+{"nmsp", {NULL}, 1790, "udp"},
+{"ea1", {NULL}, 1791, "tcp"},
+{"ea1", {NULL}, 1791, "udp"},
+{"ibm-dt-2", {NULL}, 1792, "tcp"},
+{"ibm-dt-2", {NULL}, 1792, "udp"},
+{"rsc-robot", {NULL}, 1793, "tcp"},
+{"rsc-robot", {NULL}, 1793, "udp"},
+{"cera-bcm", {NULL}, 1794, "tcp"},
+{"cera-bcm", {NULL}, 1794, "udp"},
+{"dpi-proxy", {NULL}, 1795, "tcp"},
+{"dpi-proxy", {NULL}, 1795, "udp"},
+{"vocaltec-admin", {NULL}, 1796, "tcp"},
+{"vocaltec-admin", {NULL}, 1796, "udp"},
+{"uma", {NULL}, 1797, "tcp"},
+{"uma", {NULL}, 1797, "udp"},
+{"etp", {NULL}, 1798, "tcp"},
+{"etp", {NULL}, 1798, "udp"},
+{"netrisk", {NULL}, 1799, "tcp"},
+{"netrisk", {NULL}, 1799, "udp"},
+{"ansys-lm", {NULL}, 1800, "tcp"},
+{"ansys-lm", {NULL}, 1800, "udp"},
+{"msmq", {NULL}, 1801, "tcp"},
+{"msmq", {NULL}, 1801, "udp"},
+{"concomp1", {NULL}, 1802, "tcp"},
+{"concomp1", {NULL}, 1802, "udp"},
+{"hp-hcip-gwy", {NULL}, 1803, "tcp"},
+{"hp-hcip-gwy", {NULL}, 1803, "udp"},
+{"enl", {NULL}, 1804, "tcp"},
+{"enl", {NULL}, 1804, "udp"},
+{"enl-name", {NULL}, 1805, "tcp"},
+{"enl-name", {NULL}, 1805, "udp"},
+{"musiconline", {NULL}, 1806, "tcp"},
+{"musiconline", {NULL}, 1806, "udp"},
+{"fhsp", {NULL}, 1807, "tcp"},
+{"fhsp", {NULL}, 1807, "udp"},
+{"oracle-vp2", {NULL}, 1808, "tcp"},
+{"oracle-vp2", {NULL}, 1808, "udp"},
+{"oracle-vp1", {NULL}, 1809, "tcp"},
+{"oracle-vp1", {NULL}, 1809, "udp"},
+{"jerand-lm", {NULL}, 1810, "tcp"},
+{"jerand-lm", {NULL}, 1810, "udp"},
+{"scientia-sdb", {NULL}, 1811, "tcp"},
+{"scientia-sdb", {NULL}, 1811, "udp"},
+{"radius", {NULL}, 1812, "tcp"},
+{"radius", {NULL}, 1812, "udp"},
+{"radius-acct", {NULL}, 1813, "tcp"},
+{"radius-acct", {NULL}, 1813, "udp"},
+{"tdp-suite", {NULL}, 1814, "tcp"},
+{"tdp-suite", {NULL}, 1814, "udp"},
+{"mmpft", {NULL}, 1815, "tcp"},
+{"mmpft", {NULL}, 1815, "udp"},
+{"harp", {NULL}, 1816, "tcp"},
+{"harp", {NULL}, 1816, "udp"},
+{"rkb-oscs", {NULL}, 1817, "tcp"},
+{"rkb-oscs", {NULL}, 1817, "udp"},
+{"etftp", {NULL}, 1818, "tcp"},
+{"etftp", {NULL}, 1818, "udp"},
+{"plato-lm", {NULL}, 1819, "tcp"},
+{"plato-lm", {NULL}, 1819, "udp"},
+{"mcagent", {NULL}, 1820, "tcp"},
+{"mcagent", {NULL}, 1820, "udp"},
+{"donnyworld", {NULL}, 1821, "tcp"},
+{"donnyworld", {NULL}, 1821, "udp"},
+{"es-elmd", {NULL}, 1822, "tcp"},
+{"es-elmd", {NULL}, 1822, "udp"},
+{"unisys-lm", {NULL}, 1823, "tcp"},
+{"unisys-lm", {NULL}, 1823, "udp"},
+{"metrics-pas", {NULL}, 1824, "tcp"},
+{"metrics-pas", {NULL}, 1824, "udp"},
+{"direcpc-video", {NULL}, 1825, "tcp"},
+{"direcpc-video", {NULL}, 1825, "udp"},
+{"ardt", {NULL}, 1826, "tcp"},
+{"ardt", {NULL}, 1826, "udp"},
+{"asi", {NULL}, 1827, "tcp"},
+{"asi", {NULL}, 1827, "udp"},
+{"itm-mcell-u", {NULL}, 1828, "tcp"},
+{"itm-mcell-u", {NULL}, 1828, "udp"},
+{"optika-emedia", {NULL}, 1829, "tcp"},
+{"optika-emedia", {NULL}, 1829, "udp"},
+{"net8-cman", {NULL}, 1830, "tcp"},
+{"net8-cman", {NULL}, 1830, "udp"},
+{"myrtle", {NULL}, 1831, "tcp"},
+{"myrtle", {NULL}, 1831, "udp"},
+{"tht-treasure", {NULL}, 1832, "tcp"},
+{"tht-treasure", {NULL}, 1832, "udp"},
+{"udpradio", {NULL}, 1833, "tcp"},
+{"udpradio", {NULL}, 1833, "udp"},
+{"ardusuni", {NULL}, 1834, "tcp"},
+{"ardusuni", {NULL}, 1834, "udp"},
+{"ardusmul", {NULL}, 1835, "tcp"},
+{"ardusmul", {NULL}, 1835, "udp"},
+{"ste-smsc", {NULL}, 1836, "tcp"},
+{"ste-smsc", {NULL}, 1836, "udp"},
+{"csoft1", {NULL}, 1837, "tcp"},
+{"csoft1", {NULL}, 1837, "udp"},
+{"talnet", {NULL}, 1838, "tcp"},
+{"talnet", {NULL}, 1838, "udp"},
+{"netopia-vo1", {NULL}, 1839, "tcp"},
+{"netopia-vo1", {NULL}, 1839, "udp"},
+{"netopia-vo2", {NULL}, 1840, "tcp"},
+{"netopia-vo2", {NULL}, 1840, "udp"},
+{"netopia-vo3", {NULL}, 1841, "tcp"},
+{"netopia-vo3", {NULL}, 1841, "udp"},
+{"netopia-vo4", {NULL}, 1842, "tcp"},
+{"netopia-vo4", {NULL}, 1842, "udp"},
+{"netopia-vo5", {NULL}, 1843, "tcp"},
+{"netopia-vo5", {NULL}, 1843, "udp"},
+{"direcpc-dll", {NULL}, 1844, "tcp"},
+{"direcpc-dll", {NULL}, 1844, "udp"},
+{"altalink", {NULL}, 1845, "tcp"},
+{"altalink", {NULL}, 1845, "udp"},
+{"tunstall-pnc", {NULL}, 1846, "tcp"},
+{"tunstall-pnc", {NULL}, 1846, "udp"},
+{"slp-notify", {NULL}, 1847, "tcp"},
+{"slp-notify", {NULL}, 1847, "udp"},
+{"fjdocdist", {NULL}, 1848, "tcp"},
+{"fjdocdist", {NULL}, 1848, "udp"},
+{"alpha-sms", {NULL}, 1849, "tcp"},
+{"alpha-sms", {NULL}, 1849, "udp"},
+{"gsi", {NULL}, 1850, "tcp"},
+{"gsi", {NULL}, 1850, "udp"},
+{"ctcd", {NULL}, 1851, "tcp"},
+{"ctcd", {NULL}, 1851, "udp"},
+{"virtual-time", {NULL}, 1852, "tcp"},
+{"virtual-time", {NULL}, 1852, "udp"},
+{"vids-avtp", {NULL}, 1853, "tcp"},
+{"vids-avtp", {NULL}, 1853, "udp"},
+{"buddy-draw", {NULL}, 1854, "tcp"},
+{"buddy-draw", {NULL}, 1854, "udp"},
+{"fiorano-rtrsvc", {NULL}, 1855, "tcp"},
+{"fiorano-rtrsvc", {NULL}, 1855, "udp"},
+{"fiorano-msgsvc", {NULL}, 1856, "tcp"},
+{"fiorano-msgsvc", {NULL}, 1856, "udp"},
+{"datacaptor", {NULL}, 1857, "tcp"},
+{"datacaptor", {NULL}, 1857, "udp"},
+{"privateark", {NULL}, 1858, "tcp"},
+{"privateark", {NULL}, 1858, "udp"},
+{"gammafetchsvr", {NULL}, 1859, "tcp"},
+{"gammafetchsvr", {NULL}, 1859, "udp"},
+{"sunscalar-svc", {NULL}, 1860, "tcp"},
+{"sunscalar-svc", {NULL}, 1860, "udp"},
+{"lecroy-vicp", {NULL}, 1861, "tcp"},
+{"lecroy-vicp", {NULL}, 1861, "udp"},
+{"mysql-cm-agent", {NULL}, 1862, "tcp"},
+{"mysql-cm-agent", {NULL}, 1862, "udp"},
+{"msnp", {NULL}, 1863, "tcp"},
+{"msnp", {NULL}, 1863, "udp"},
+{"paradym-31port", {NULL}, 1864, "tcp"},
+{"paradym-31port", {NULL}, 1864, "udp"},
+{"entp", {NULL}, 1865, "tcp"},
+{"entp", {NULL}, 1865, "udp"},
+{"swrmi", {NULL}, 1866, "tcp"},
+{"swrmi", {NULL}, 1866, "udp"},
+{"udrive", {NULL}, 1867, "tcp"},
+{"udrive", {NULL}, 1867, "udp"},
+{"viziblebrowser", {NULL}, 1868, "tcp"},
+{"viziblebrowser", {NULL}, 1868, "udp"},
+{"transact", {NULL}, 1869, "tcp"},
+{"transact", {NULL}, 1869, "udp"},
+{"sunscalar-dns", {NULL}, 1870, "tcp"},
+{"sunscalar-dns", {NULL}, 1870, "udp"},
+{"canocentral0", {NULL}, 1871, "tcp"},
+{"canocentral0", {NULL}, 1871, "udp"},
+{"canocentral1", {NULL}, 1872, "tcp"},
+{"canocentral1", {NULL}, 1872, "udp"},
+{"fjmpjps", {NULL}, 1873, "tcp"},
+{"fjmpjps", {NULL}, 1873, "udp"},
+{"fjswapsnp", {NULL}, 1874, "tcp"},
+{"fjswapsnp", {NULL}, 1874, "udp"},
+{"westell-stats", {NULL}, 1875, "tcp"},
+{"westell-stats", {NULL}, 1875, "udp"},
+{"ewcappsrv", {NULL}, 1876, "tcp"},
+{"ewcappsrv", {NULL}, 1876, "udp"},
+{"hp-webqosdb", {NULL}, 1877, "tcp"},
+{"hp-webqosdb", {NULL}, 1877, "udp"},
+{"drmsmc", {NULL}, 1878, "tcp"},
+{"drmsmc", {NULL}, 1878, "udp"},
+{"nettgain-nms", {NULL}, 1879, "tcp"},
+{"nettgain-nms", {NULL}, 1879, "udp"},
+{"vsat-control", {NULL}, 1880, "tcp"},
+{"vsat-control", {NULL}, 1880, "udp"},
+{"ibm-mqseries2", {NULL}, 1881, "tcp"},
+{"ibm-mqseries2", {NULL}, 1881, "udp"},
+{"ecsqdmn", {NULL}, 1882, "tcp"},
+{"ecsqdmn", {NULL}, 1882, "udp"},
+{"ibm-mqisdp", {NULL}, 1883, "tcp"},
+{"ibm-mqisdp", {NULL}, 1883, "udp"},
+{"idmaps", {NULL}, 1884, "tcp"},
+{"idmaps", {NULL}, 1884, "udp"},
+{"vrtstrapserver", {NULL}, 1885, "tcp"},
+{"vrtstrapserver", {NULL}, 1885, "udp"},
+{"leoip", {NULL}, 1886, "tcp"},
+{"leoip", {NULL}, 1886, "udp"},
+{"filex-lport", {NULL}, 1887, "tcp"},
+{"filex-lport", {NULL}, 1887, "udp"},
+{"ncconfig", {NULL}, 1888, "tcp"},
+{"ncconfig", {NULL}, 1888, "udp"},
+{"unify-adapter", {NULL}, 1889, "tcp"},
+{"unify-adapter", {NULL}, 1889, "udp"},
+{"wilkenlistener", {NULL}, 1890, "tcp"},
+{"wilkenlistener", {NULL}, 1890, "udp"},
+{"childkey-notif", {NULL}, 1891, "tcp"},
+{"childkey-notif", {NULL}, 1891, "udp"},
+{"childkey-ctrl", {NULL}, 1892, "tcp"},
+{"childkey-ctrl", {NULL}, 1892, "udp"},
+{"elad", {NULL}, 1893, "tcp"},
+{"elad", {NULL}, 1893, "udp"},
+{"o2server-port", {NULL}, 1894, "tcp"},
+{"o2server-port", {NULL}, 1894, "udp"},
+{"b-novative-ls", {NULL}, 1896, "tcp"},
+{"b-novative-ls", {NULL}, 1896, "udp"},
+{"metaagent", {NULL}, 1897, "tcp"},
+{"metaagent", {NULL}, 1897, "udp"},
+{"cymtec-port", {NULL}, 1898, "tcp"},
+{"cymtec-port", {NULL}, 1898, "udp"},
+{"mc2studios", {NULL}, 1899, "tcp"},
+{"mc2studios", {NULL}, 1899, "udp"},
+{"ssdp", {NULL}, 1900, "tcp"},
+{"ssdp", {NULL}, 1900, "udp"},
+{"fjicl-tep-a", {NULL}, 1901, "tcp"},
+{"fjicl-tep-a", {NULL}, 1901, "udp"},
+{"fjicl-tep-b", {NULL}, 1902, "tcp"},
+{"fjicl-tep-b", {NULL}, 1902, "udp"},
+{"linkname", {NULL}, 1903, "tcp"},
+{"linkname", {NULL}, 1903, "udp"},
+{"fjicl-tep-c", {NULL}, 1904, "tcp"},
+{"fjicl-tep-c", {NULL}, 1904, "udp"},
+{"sugp", {NULL}, 1905, "tcp"},
+{"sugp", {NULL}, 1905, "udp"},
+{"tpmd", {NULL}, 1906, "tcp"},
+{"tpmd", {NULL}, 1906, "udp"},
+{"intrastar", {NULL}, 1907, "tcp"},
+{"intrastar", {NULL}, 1907, "udp"},
+{"dawn", {NULL}, 1908, "tcp"},
+{"dawn", {NULL}, 1908, "udp"},
+{"global-wlink", {NULL}, 1909, "tcp"},
+{"global-wlink", {NULL}, 1909, "udp"},
+{"ultrabac", {NULL}, 1910, "tcp"},
+{"ultrabac", {NULL}, 1910, "udp"},
+{"mtp", {NULL}, 1911, "tcp"},
+{"mtp", {NULL}, 1911, "udp"},
+{"rhp-iibp", {NULL}, 1912, "tcp"},
+{"rhp-iibp", {NULL}, 1912, "udp"},
+{"armadp", {NULL}, 1913, "tcp"},
+{"armadp", {NULL}, 1913, "udp"},
+{"elm-momentum", {NULL}, 1914, "tcp"},
+{"elm-momentum", {NULL}, 1914, "udp"},
+{"facelink", {NULL}, 1915, "tcp"},
+{"facelink", {NULL}, 1915, "udp"},
+{"persona", {NULL}, 1916, "tcp"},
+{"persona", {NULL}, 1916, "udp"},
+{"noagent", {NULL}, 1917, "tcp"},
+{"noagent", {NULL}, 1917, "udp"},
+{"can-nds", {NULL}, 1918, "tcp"},
+{"can-nds", {NULL}, 1918, "udp"},
+{"can-dch", {NULL}, 1919, "tcp"},
+{"can-dch", {NULL}, 1919, "udp"},
+{"can-ferret", {NULL}, 1920, "tcp"},
+{"can-ferret", {NULL}, 1920, "udp"},
+{"noadmin", {NULL}, 1921, "tcp"},
+{"noadmin", {NULL}, 1921, "udp"},
+{"tapestry", {NULL}, 1922, "tcp"},
+{"tapestry", {NULL}, 1922, "udp"},
+{"spice", {NULL}, 1923, "tcp"},
+{"spice", {NULL}, 1923, "udp"},
+{"xiip", {NULL}, 1924, "tcp"},
+{"xiip", {NULL}, 1924, "udp"},
+{"discovery-port", {NULL}, 1925, "tcp"},
+{"discovery-port", {NULL}, 1925, "udp"},
+{"egs", {NULL}, 1926, "tcp"},
+{"egs", {NULL}, 1926, "udp"},
+{"videte-cipc", {NULL}, 1927, "tcp"},
+{"videte-cipc", {NULL}, 1927, "udp"},
+{"emsd-port", {NULL}, 1928, "tcp"},
+{"emsd-port", {NULL}, 1928, "udp"},
+{"bandwiz-system", {NULL}, 1929, "tcp"},
+{"bandwiz-system", {NULL}, 1929, "udp"},
+{"driveappserver", {NULL}, 1930, "tcp"},
+{"driveappserver", {NULL}, 1930, "udp"},
+{"amdsched", {NULL}, 1931, "tcp"},
+{"amdsched", {NULL}, 1931, "udp"},
+{"ctt-broker", {NULL}, 1932, "tcp"},
+{"ctt-broker", {NULL}, 1932, "udp"},
+{"xmapi", {NULL}, 1933, "tcp"},
+{"xmapi", {NULL}, 1933, "udp"},
+{"xaapi", {NULL}, 1934, "tcp"},
+{"xaapi", {NULL}, 1934, "udp"},
+{"macromedia-fcs", {NULL}, 1935, "tcp"},
+{"macromedia-fcs", {NULL}, 1935, "udp"},
+{"jetcmeserver", {NULL}, 1936, "tcp"},
+{"jetcmeserver", {NULL}, 1936, "udp"},
+{"jwserver", {NULL}, 1937, "tcp"},
+{"jwserver", {NULL}, 1937, "udp"},
+{"jwclient", {NULL}, 1938, "tcp"},
+{"jwclient", {NULL}, 1938, "udp"},
+{"jvserver", {NULL}, 1939, "tcp"},
+{"jvserver", {NULL}, 1939, "udp"},
+{"jvclient", {NULL}, 1940, "tcp"},
+{"jvclient", {NULL}, 1940, "udp"},
+{"dic-aida", {NULL}, 1941, "tcp"},
+{"dic-aida", {NULL}, 1941, "udp"},
+{"res", {NULL}, 1942, "tcp"},
+{"res", {NULL}, 1942, "udp"},
+{"beeyond-media", {NULL}, 1943, "tcp"},
+{"beeyond-media", {NULL}, 1943, "udp"},
+{"close-combat", {NULL}, 1944, "tcp"},
+{"close-combat", {NULL}, 1944, "udp"},
+{"dialogic-elmd", {NULL}, 1945, "tcp"},
+{"dialogic-elmd", {NULL}, 1945, "udp"},
+{"tekpls", {NULL}, 1946, "tcp"},
+{"tekpls", {NULL}, 1946, "udp"},
+{"sentinelsrm", {NULL}, 1947, "tcp"},
+{"sentinelsrm", {NULL}, 1947, "udp"},
+{"eye2eye", {NULL}, 1948, "tcp"},
+{"eye2eye", {NULL}, 1948, "udp"},
+{"ismaeasdaqlive", {NULL}, 1949, "tcp"},
+{"ismaeasdaqlive", {NULL}, 1949, "udp"},
+{"ismaeasdaqtest", {NULL}, 1950, "tcp"},
+{"ismaeasdaqtest", {NULL}, 1950, "udp"},
+{"bcs-lmserver", {NULL}, 1951, "tcp"},
+{"bcs-lmserver", {NULL}, 1951, "udp"},
+{"mpnjsc", {NULL}, 1952, "tcp"},
+{"mpnjsc", {NULL}, 1952, "udp"},
+{"rapidbase", {NULL}, 1953, "tcp"},
+{"rapidbase", {NULL}, 1953, "udp"},
+{"abr-api", {NULL}, 1954, "tcp"},
+{"abr-api", {NULL}, 1954, "udp"},
+{"abr-secure", {NULL}, 1955, "tcp"},
+{"abr-secure", {NULL}, 1955, "udp"},
+{"vrtl-vmf-ds", {NULL}, 1956, "tcp"},
+{"vrtl-vmf-ds", {NULL}, 1956, "udp"},
+{"unix-status", {NULL}, 1957, "tcp"},
+{"unix-status", {NULL}, 1957, "udp"},
+{"dxadmind", {NULL}, 1958, "tcp"},
+{"dxadmind", {NULL}, 1958, "udp"},
+{"simp-all", {NULL}, 1959, "tcp"},
+{"simp-all", {NULL}, 1959, "udp"},
+{"nasmanager", {NULL}, 1960, "tcp"},
+{"nasmanager", {NULL}, 1960, "udp"},
+{"bts-appserver", {NULL}, 1961, "tcp"},
+{"bts-appserver", {NULL}, 1961, "udp"},
+{"biap-mp", {NULL}, 1962, "tcp"},
+{"biap-mp", {NULL}, 1962, "udp"},
+{"webmachine", {NULL}, 1963, "tcp"},
+{"webmachine", {NULL}, 1963, "udp"},
+{"solid-e-engine", {NULL}, 1964, "tcp"},
+{"solid-e-engine", {NULL}, 1964, "udp"},
+{"tivoli-npm", {NULL}, 1965, "tcp"},
+{"tivoli-npm", {NULL}, 1965, "udp"},
+{"slush", {NULL}, 1966, "tcp"},
+{"slush", {NULL}, 1966, "udp"},
+{"sns-quote", {NULL}, 1967, "tcp"},
+{"sns-quote", {NULL}, 1967, "udp"},
+{"lipsinc", {NULL}, 1968, "tcp"},
+{"lipsinc", {NULL}, 1968, "udp"},
+{"lipsinc1", {NULL}, 1969, "tcp"},
+{"lipsinc1", {NULL}, 1969, "udp"},
+{"netop-rc", {NULL}, 1970, "tcp"},
+{"netop-rc", {NULL}, 1970, "udp"},
+{"netop-school", {NULL}, 1971, "tcp"},
+{"netop-school", {NULL}, 1971, "udp"},
+{"intersys-cache", {NULL}, 1972, "tcp"},
+{"intersys-cache", {NULL}, 1972, "udp"},
+{"dlsrap", {NULL}, 1973, "tcp"},
+{"dlsrap", {NULL}, 1973, "udp"},
+{"drp", {NULL}, 1974, "tcp"},
+{"drp", {NULL}, 1974, "udp"},
+{"tcoflashagent", {NULL}, 1975, "tcp"},
+{"tcoflashagent", {NULL}, 1975, "udp"},
+{"tcoregagent", {NULL}, 1976, "tcp"},
+{"tcoregagent", {NULL}, 1976, "udp"},
+{"tcoaddressbook", {NULL}, 1977, "tcp"},
+{"tcoaddressbook", {NULL}, 1977, "udp"},
+{"unisql", {NULL}, 1978, "tcp"},
+{"unisql", {NULL}, 1978, "udp"},
+{"unisql-java", {NULL}, 1979, "tcp"},
+{"unisql-java", {NULL}, 1979, "udp"},
+{"pearldoc-xact", {NULL}, 1980, "tcp"},
+{"pearldoc-xact", {NULL}, 1980, "udp"},
+{"p2pq", {NULL}, 1981, "tcp"},
+{"p2pq", {NULL}, 1981, "udp"},
+{"estamp", {NULL}, 1982, "tcp"},
+{"estamp", {NULL}, 1982, "udp"},
+{"lhtp", {NULL}, 1983, "tcp"},
+{"lhtp", {NULL}, 1983, "udp"},
+{"bb", {NULL}, 1984, "tcp"},
+{"bb", {NULL}, 1984, "udp"},
+{"hsrp", {NULL}, 1985, "tcp"},
+{"hsrp", {NULL}, 1985, "udp"},
+{"licensedaemon", {NULL}, 1986, "tcp"},
+{"licensedaemon", {NULL}, 1986, "udp"},
+{"tr-rsrb-p1", {NULL}, 1987, "tcp"},
+{"tr-rsrb-p1", {NULL}, 1987, "udp"},
+{"tr-rsrb-p2", {NULL}, 1988, "tcp"},
+{"tr-rsrb-p2", {NULL}, 1988, "udp"},
+{"tr-rsrb-p3", {NULL}, 1989, "tcp"},
+{"tr-rsrb-p3", {NULL}, 1989, "udp"},
+{"mshnet", {NULL}, 1989, "tcp"},
+{"mshnet", {NULL}, 1989, "udp"},
+{"stun-p1", {NULL}, 1990, "tcp"},
+{"stun-p1", {NULL}, 1990, "udp"},
+{"stun-p2", {NULL}, 1991, "tcp"},
+{"stun-p2", {NULL}, 1991, "udp"},
+{"stun-p3", {NULL}, 1992, "tcp"},
+{"stun-p3", {NULL}, 1992, "udp"},
+{"ipsendmsg", {NULL}, 1992, "tcp"},
+{"ipsendmsg", {NULL}, 1992, "udp"},
+{"snmp-tcp-port", {NULL}, 1993, "tcp"},
+{"snmp-tcp-port", {NULL}, 1993, "udp"},
+{"stun-port", {NULL}, 1994, "tcp"},
+{"stun-port", {NULL}, 1994, "udp"},
+{"perf-port", {NULL}, 1995, "tcp"},
+{"perf-port", {NULL}, 1995, "udp"},
+{"tr-rsrb-port", {NULL}, 1996, "tcp"},
+{"tr-rsrb-port", {NULL}, 1996, "udp"},
+{"gdp-port", {NULL}, 1997, "tcp"},
+{"gdp-port", {NULL}, 1997, "udp"},
+{"x25-svc-port", {NULL}, 1998, "tcp"},
+{"x25-svc-port", {NULL}, 1998, "udp"},
+{"tcp-id-port", {NULL}, 1999, "tcp"},
+{"tcp-id-port", {NULL}, 1999, "udp"},
+{"cisco-sccp", {NULL}, 2000, "tcp"},
+{"cisco-sccp", {NULL}, 2000, "udp"},
+{"dc", {NULL}, 2001, "tcp"},
+{"wizard", {NULL}, 2001, "udp"},
+{"globe", {NULL}, 2002, "tcp"},
+{"globe", {NULL}, 2002, "udp"},
+{"brutus", {NULL}, 2003, "tcp"},
+{"brutus", {NULL}, 2003, "udp"},
+{"mailbox", {NULL}, 2004, "tcp"},
+{"emce", {NULL}, 2004, "udp"},
+{"berknet", {NULL}, 2005, "tcp"},
+{"oracle", {NULL}, 2005, "udp"},
+{"invokator", {NULL}, 2006, "tcp"},
+{"raid-cd", {NULL}, 2006, "udp"},
+{"dectalk", {NULL}, 2007, "tcp"},
+{"raid-am", {NULL}, 2007, "udp"},
+{"conf", {NULL}, 2008, "tcp"},
+{"terminaldb", {NULL}, 2008, "udp"},
+{"news", {NULL}, 2009, "tcp"},
+{"whosockami", {NULL}, 2009, "udp"},
+{"search", {NULL}, 2010, "tcp"},
+{"pipe_server", {NULL}, 2010, "udp"},
+{"raid-cc", {NULL}, 2011, "tcp"},
+{"servserv", {NULL}, 2011, "udp"},
+{"ttyinfo", {NULL}, 2012, "tcp"},
+{"raid-ac", {NULL}, 2012, "udp"},
+{"raid-am", {NULL}, 2013, "tcp"},
+{"raid-cd", {NULL}, 2013, "udp"},
+{"troff", {NULL}, 2014, "tcp"},
+{"raid-sf", {NULL}, 2014, "udp"},
+{"cypress", {NULL}, 2015, "tcp"},
+{"raid-cs", {NULL}, 2015, "udp"},
+{"bootserver", {NULL}, 2016, "tcp"},
+{"bootserver", {NULL}, 2016, "udp"},
+{"cypress-stat", {NULL}, 2017, "tcp"},
+{"bootclient", {NULL}, 2017, "udp"},
+{"terminaldb", {NULL}, 2018, "tcp"},
+{"rellpack", {NULL}, 2018, "udp"},
+{"whosockami", {NULL}, 2019, "tcp"},
+{"about", {NULL}, 2019, "udp"},
+{"xinupageserver", {NULL}, 2020, "tcp"},
+{"xinupageserver", {NULL}, 2020, "udp"},
+{"servexec", {NULL}, 2021, "tcp"},
+{"xinuexpansion1", {NULL}, 2021, "udp"},
+{"down", {NULL}, 2022, "tcp"},
+{"xinuexpansion2", {NULL}, 2022, "udp"},
+{"xinuexpansion3", {NULL}, 2023, "tcp"},
+{"xinuexpansion3", {NULL}, 2023, "udp"},
+{"xinuexpansion4", {NULL}, 2024, "tcp"},
+{"xinuexpansion4", {NULL}, 2024, "udp"},
+{"ellpack", {NULL}, 2025, "tcp"},
+{"xribs", {NULL}, 2025, "udp"},
+{"scrabble", {NULL}, 2026, "tcp"},
+{"scrabble", {NULL}, 2026, "udp"},
+{"shadowserver", {NULL}, 2027, "tcp"},
+{"shadowserver", {NULL}, 2027, "udp"},
+{"submitserver", {NULL}, 2028, "tcp"},
+{"submitserver", {NULL}, 2028, "udp"},
+{"hsrpv6", {NULL}, 2029, "tcp"},
+{"hsrpv6", {NULL}, 2029, "udp"},
+{"device2", {NULL}, 2030, "tcp"},
+{"device2", {NULL}, 2030, "udp"},
+{"mobrien-chat", {NULL}, 2031, "tcp"},
+{"mobrien-chat", {NULL}, 2031, "udp"},
+{"blackboard", {NULL}, 2032, "tcp"},
+{"blackboard", {NULL}, 2032, "udp"},
+{"glogger", {NULL}, 2033, "tcp"},
+{"glogger", {NULL}, 2033, "udp"},
+{"scoremgr", {NULL}, 2034, "tcp"},
+{"scoremgr", {NULL}, 2034, "udp"},
+{"imsldoc", {NULL}, 2035, "tcp"},
+{"imsldoc", {NULL}, 2035, "udp"},
+{"e-dpnet", {NULL}, 2036, "tcp"},
+{"e-dpnet", {NULL}, 2036, "udp"},
+{"applus", {NULL}, 2037, "tcp"},
+{"applus", {NULL}, 2037, "udp"},
+{"objectmanager", {NULL}, 2038, "tcp"},
+{"objectmanager", {NULL}, 2038, "udp"},
+{"prizma", {NULL}, 2039, "tcp"},
+{"prizma", {NULL}, 2039, "udp"},
+{"lam", {NULL}, 2040, "tcp"},
+{"lam", {NULL}, 2040, "udp"},
+{"interbase", {NULL}, 2041, "tcp"},
+{"interbase", {NULL}, 2041, "udp"},
+{"isis", {NULL}, 2042, "tcp"},
+{"isis", {NULL}, 2042, "udp"},
+{"isis-bcast", {NULL}, 2043, "tcp"},
+{"isis-bcast", {NULL}, 2043, "udp"},
+{"rimsl", {NULL}, 2044, "tcp"},
+{"rimsl", {NULL}, 2044, "udp"},
+{"cdfunc", {NULL}, 2045, "tcp"},
+{"cdfunc", {NULL}, 2045, "udp"},
+{"sdfunc", {NULL}, 2046, "tcp"},
+{"sdfunc", {NULL}, 2046, "udp"},
+{"dls", {NULL}, 2047, "tcp"},
+{"dls", {NULL}, 2047, "udp"},
+{"dls-monitor", {NULL}, 2048, "tcp"},
+{"dls-monitor", {NULL}, 2048, "udp"},
+{"shilp", {NULL}, 2049, "tcp"},
+{"shilp", {NULL}, 2049, "udp"},
+{"nfs", {NULL}, 2049, "tcp"},
+{"nfs", {NULL}, 2049, "udp"},
+{"nfs", {NULL}, 2049, "sctp"},
+{"av-emb-config", {NULL}, 2050, "tcp"},
+{"av-emb-config", {NULL}, 2050, "udp"},
+{"epnsdp", {NULL}, 2051, "tcp"},
+{"epnsdp", {NULL}, 2051, "udp"},
+{"clearvisn", {NULL}, 2052, "tcp"},
+{"clearvisn", {NULL}, 2052, "udp"},
+{"lot105-ds-upd", {NULL}, 2053, "tcp"},
+{"lot105-ds-upd", {NULL}, 2053, "udp"},
+{"weblogin", {NULL}, 2054, "tcp"},
+{"weblogin", {NULL}, 2054, "udp"},
+{"iop", {NULL}, 2055, "tcp"},
+{"iop", {NULL}, 2055, "udp"},
+{"omnisky", {NULL}, 2056, "tcp"},
+{"omnisky", {NULL}, 2056, "udp"},
+{"rich-cp", {NULL}, 2057, "tcp"},
+{"rich-cp", {NULL}, 2057, "udp"},
+{"newwavesearch", {NULL}, 2058, "tcp"},
+{"newwavesearch", {NULL}, 2058, "udp"},
+{"bmc-messaging", {NULL}, 2059, "tcp"},
+{"bmc-messaging", {NULL}, 2059, "udp"},
+{"teleniumdaemon", {NULL}, 2060, "tcp"},
+{"teleniumdaemon", {NULL}, 2060, "udp"},
+{"netmount", {NULL}, 2061, "tcp"},
+{"netmount", {NULL}, 2061, "udp"},
+{"icg-swp", {NULL}, 2062, "tcp"},
+{"icg-swp", {NULL}, 2062, "udp"},
+{"icg-bridge", {NULL}, 2063, "tcp"},
+{"icg-bridge", {NULL}, 2063, "udp"},
+{"icg-iprelay", {NULL}, 2064, "tcp"},
+{"icg-iprelay", {NULL}, 2064, "udp"},
+{"dlsrpn", {NULL}, 2065, "tcp"},
+{"dlsrpn", {NULL}, 2065, "udp"},
+{"aura", {NULL}, 2066, "tcp"},
+{"aura", {NULL}, 2066, "udp"},
+{"dlswpn", {NULL}, 2067, "tcp"},
+{"dlswpn", {NULL}, 2067, "udp"},
+{"avauthsrvprtcl", {NULL}, 2068, "tcp"},
+{"avauthsrvprtcl", {NULL}, 2068, "udp"},
+{"event-port", {NULL}, 2069, "tcp"},
+{"event-port", {NULL}, 2069, "udp"},
+{"ah-esp-encap", {NULL}, 2070, "tcp"},
+{"ah-esp-encap", {NULL}, 2070, "udp"},
+{"acp-port", {NULL}, 2071, "tcp"},
+{"acp-port", {NULL}, 2071, "udp"},
+{"msync", {NULL}, 2072, "tcp"},
+{"msync", {NULL}, 2072, "udp"},
+{"gxs-data-port", {NULL}, 2073, "tcp"},
+{"gxs-data-port", {NULL}, 2073, "udp"},
+{"vrtl-vmf-sa", {NULL}, 2074, "tcp"},
+{"vrtl-vmf-sa", {NULL}, 2074, "udp"},
+{"newlixengine", {NULL}, 2075, "tcp"},
+{"newlixengine", {NULL}, 2075, "udp"},
+{"newlixconfig", {NULL}, 2076, "tcp"},
+{"newlixconfig", {NULL}, 2076, "udp"},
+{"tsrmagt", {NULL}, 2077, "tcp"},
+{"tsrmagt", {NULL}, 2077, "udp"},
+{"tpcsrvr", {NULL}, 2078, "tcp"},
+{"tpcsrvr", {NULL}, 2078, "udp"},
+{"idware-router", {NULL}, 2079, "tcp"},
+{"idware-router", {NULL}, 2079, "udp"},
+{"autodesk-nlm", {NULL}, 2080, "tcp"},
+{"autodesk-nlm", {NULL}, 2080, "udp"},
+{"kme-trap-port", {NULL}, 2081, "tcp"},
+{"kme-trap-port", {NULL}, 2081, "udp"},
+{"infowave", {NULL}, 2082, "tcp"},
+{"infowave", {NULL}, 2082, "udp"},
+{"radsec", {NULL}, 2083, "tcp"},
+{"radsec", {NULL}, 2083, "udp"},
+{"sunclustergeo", {NULL}, 2084, "tcp"},
+{"sunclustergeo", {NULL}, 2084, "udp"},
+{"ada-cip", {NULL}, 2085, "tcp"},
+{"ada-cip", {NULL}, 2085, "udp"},
+{"gnunet", {NULL}, 2086, "tcp"},
+{"gnunet", {NULL}, 2086, "udp"},
+{"eli", {NULL}, 2087, "tcp"},
+{"eli", {NULL}, 2087, "udp"},
+{"ip-blf", {NULL}, 2088, "tcp"},
+{"ip-blf", {NULL}, 2088, "udp"},
+{"sep", {NULL}, 2089, "tcp"},
+{"sep", {NULL}, 2089, "udp"},
+{"lrp", {NULL}, 2090, "tcp"},
+{"lrp", {NULL}, 2090, "udp"},
+{"prp", {NULL}, 2091, "tcp"},
+{"prp", {NULL}, 2091, "udp"},
+{"descent3", {NULL}, 2092, "tcp"},
+{"descent3", {NULL}, 2092, "udp"},
+{"nbx-cc", {NULL}, 2093, "tcp"},
+{"nbx-cc", {NULL}, 2093, "udp"},
+{"nbx-au", {NULL}, 2094, "tcp"},
+{"nbx-au", {NULL}, 2094, "udp"},
+{"nbx-ser", {NULL}, 2095, "tcp"},
+{"nbx-ser", {NULL}, 2095, "udp"},
+{"nbx-dir", {NULL}, 2096, "tcp"},
+{"nbx-dir", {NULL}, 2096, "udp"},
+{"jetformpreview", {NULL}, 2097, "tcp"},
+{"jetformpreview", {NULL}, 2097, "udp"},
+{"dialog-port", {NULL}, 2098, "tcp"},
+{"dialog-port", {NULL}, 2098, "udp"},
+{"h2250-annex-g", {NULL}, 2099, "tcp"},
+{"h2250-annex-g", {NULL}, 2099, "udp"},
+{"amiganetfs", {NULL}, 2100, "tcp"},
+{"amiganetfs", {NULL}, 2100, "udp"},
+{"rtcm-sc104", {NULL}, 2101, "tcp"},
+{"rtcm-sc104", {NULL}, 2101, "udp"},
+{"zephyr-srv", {NULL}, 2102, "tcp"},
+{"zephyr-srv", {NULL}, 2102, "udp"},
+{"zephyr-clt", {NULL}, 2103, "tcp"},
+{"zephyr-clt", {NULL}, 2103, "udp"},
+{"zephyr-hm", {NULL}, 2104, "tcp"},
+{"zephyr-hm", {NULL}, 2104, "udp"},
+{"minipay", {NULL}, 2105, "tcp"},
+{"minipay", {NULL}, 2105, "udp"},
+{"mzap", {NULL}, 2106, "tcp"},
+{"mzap", {NULL}, 2106, "udp"},
+{"bintec-admin", {NULL}, 2107, "tcp"},
+{"bintec-admin", {NULL}, 2107, "udp"},
+{"comcam", {NULL}, 2108, "tcp"},
+{"comcam", {NULL}, 2108, "udp"},
+{"ergolight", {NULL}, 2109, "tcp"},
+{"ergolight", {NULL}, 2109, "udp"},
+{"umsp", {NULL}, 2110, "tcp"},
+{"umsp", {NULL}, 2110, "udp"},
+{"dsatp", {NULL}, 2111, "tcp"},
+{"dsatp", {NULL}, 2111, "udp"},
+{"idonix-metanet", {NULL}, 2112, "tcp"},
+{"idonix-metanet", {NULL}, 2112, "udp"},
+{"hsl-storm", {NULL}, 2113, "tcp"},
+{"hsl-storm", {NULL}, 2113, "udp"},
+{"newheights", {NULL}, 2114, "tcp"},
+{"newheights", {NULL}, 2114, "udp"},
+{"kdm", {NULL}, 2115, "tcp"},
+{"kdm", {NULL}, 2115, "udp"},
+{"ccowcmr", {NULL}, 2116, "tcp"},
+{"ccowcmr", {NULL}, 2116, "udp"},
+{"mentaclient", {NULL}, 2117, "tcp"},
+{"mentaclient", {NULL}, 2117, "udp"},
+{"mentaserver", {NULL}, 2118, "tcp"},
+{"mentaserver", {NULL}, 2118, "udp"},
+{"gsigatekeeper", {NULL}, 2119, "tcp"},
+{"gsigatekeeper", {NULL}, 2119, "udp"},
+{"qencp", {NULL}, 2120, "tcp"},
+{"qencp", {NULL}, 2120, "udp"},
+{"scientia-ssdb", {NULL}, 2121, "tcp"},
+{"scientia-ssdb", {NULL}, 2121, "udp"},
+{"caupc-remote", {NULL}, 2122, "tcp"},
+{"caupc-remote", {NULL}, 2122, "udp"},
+{"gtp-control", {NULL}, 2123, "tcp"},
+{"gtp-control", {NULL}, 2123, "udp"},
+{"elatelink", {NULL}, 2124, "tcp"},
+{"elatelink", {NULL}, 2124, "udp"},
+{"lockstep", {NULL}, 2125, "tcp"},
+{"lockstep", {NULL}, 2125, "udp"},
+{"pktcable-cops", {NULL}, 2126, "tcp"},
+{"pktcable-cops", {NULL}, 2126, "udp"},
+{"index-pc-wb", {NULL}, 2127, "tcp"},
+{"index-pc-wb", {NULL}, 2127, "udp"},
+{"net-steward", {NULL}, 2128, "tcp"},
+{"net-steward", {NULL}, 2128, "udp"},
+{"cs-live", {NULL}, 2129, "tcp"},
+{"cs-live", {NULL}, 2129, "udp"},
+{"xds", {NULL}, 2130, "tcp"},
+{"xds", {NULL}, 2130, "udp"},
+{"avantageb2b", {NULL}, 2131, "tcp"},
+{"avantageb2b", {NULL}, 2131, "udp"},
+{"solera-epmap", {NULL}, 2132, "tcp"},
+{"solera-epmap", {NULL}, 2132, "udp"},
+{"zymed-zpp", {NULL}, 2133, "tcp"},
+{"zymed-zpp", {NULL}, 2133, "udp"},
+{"avenue", {NULL}, 2134, "tcp"},
+{"avenue", {NULL}, 2134, "udp"},
+{"gris", {NULL}, 2135, "tcp"},
+{"gris", {NULL}, 2135, "udp"},
+{"appworxsrv", {NULL}, 2136, "tcp"},
+{"appworxsrv", {NULL}, 2136, "udp"},
+{"connect", {NULL}, 2137, "tcp"},
+{"connect", {NULL}, 2137, "udp"},
+{"unbind-cluster", {NULL}, 2138, "tcp"},
+{"unbind-cluster", {NULL}, 2138, "udp"},
+{"ias-auth", {NULL}, 2139, "tcp"},
+{"ias-auth", {NULL}, 2139, "udp"},
+{"ias-reg", {NULL}, 2140, "tcp"},
+{"ias-reg", {NULL}, 2140, "udp"},
+{"ias-admind", {NULL}, 2141, "tcp"},
+{"ias-admind", {NULL}, 2141, "udp"},
+{"tdmoip", {NULL}, 2142, "tcp"},
+{"tdmoip", {NULL}, 2142, "udp"},
+{"lv-jc", {NULL}, 2143, "tcp"},
+{"lv-jc", {NULL}, 2143, "udp"},
+{"lv-ffx", {NULL}, 2144, "tcp"},
+{"lv-ffx", {NULL}, 2144, "udp"},
+{"lv-pici", {NULL}, 2145, "tcp"},
+{"lv-pici", {NULL}, 2145, "udp"},
+{"lv-not", {NULL}, 2146, "tcp"},
+{"lv-not", {NULL}, 2146, "udp"},
+{"lv-auth", {NULL}, 2147, "tcp"},
+{"lv-auth", {NULL}, 2147, "udp"},
+{"veritas-ucl", {NULL}, 2148, "tcp"},
+{"veritas-ucl", {NULL}, 2148, "udp"},
+{"acptsys", {NULL}, 2149, "tcp"},
+{"acptsys", {NULL}, 2149, "udp"},
+{"dynamic3d", {NULL}, 2150, "tcp"},
+{"dynamic3d", {NULL}, 2150, "udp"},
+{"docent", {NULL}, 2151, "tcp"},
+{"docent", {NULL}, 2151, "udp"},
+{"gtp-user", {NULL}, 2152, "tcp"},
+{"gtp-user", {NULL}, 2152, "udp"},
+{"ctlptc", {NULL}, 2153, "tcp"},
+{"ctlptc", {NULL}, 2153, "udp"},
+{"stdptc", {NULL}, 2154, "tcp"},
+{"stdptc", {NULL}, 2154, "udp"},
+{"brdptc", {NULL}, 2155, "tcp"},
+{"brdptc", {NULL}, 2155, "udp"},
+{"trp", {NULL}, 2156, "tcp"},
+{"trp", {NULL}, 2156, "udp"},
+{"xnds", {NULL}, 2157, "tcp"},
+{"xnds", {NULL}, 2157, "udp"},
+{"touchnetplus", {NULL}, 2158, "tcp"},
+{"touchnetplus", {NULL}, 2158, "udp"},
+{"gdbremote", {NULL}, 2159, "tcp"},
+{"gdbremote", {NULL}, 2159, "udp"},
+{"apc-2160", {NULL}, 2160, "tcp"},
+{"apc-2160", {NULL}, 2160, "udp"},
+{"apc-2161", {NULL}, 2161, "tcp"},
+{"apc-2161", {NULL}, 2161, "udp"},
+{"navisphere", {NULL}, 2162, "tcp"},
+{"navisphere", {NULL}, 2162, "udp"},
+{"navisphere-sec", {NULL}, 2163, "tcp"},
+{"navisphere-sec", {NULL}, 2163, "udp"},
+{"ddns-v3", {NULL}, 2164, "tcp"},
+{"ddns-v3", {NULL}, 2164, "udp"},
+{"x-bone-api", {NULL}, 2165, "tcp"},
+{"x-bone-api", {NULL}, 2165, "udp"},
+{"iwserver", {NULL}, 2166, "tcp"},
+{"iwserver", {NULL}, 2166, "udp"},
+{"raw-serial", {NULL}, 2167, "tcp"},
+{"raw-serial", {NULL}, 2167, "udp"},
+{"easy-soft-mux", {NULL}, 2168, "tcp"},
+{"easy-soft-mux", {NULL}, 2168, "udp"},
+{"brain", {NULL}, 2169, "tcp"},
+{"brain", {NULL}, 2169, "udp"},
+{"eyetv", {NULL}, 2170, "tcp"},
+{"eyetv", {NULL}, 2170, "udp"},
+{"msfw-storage", {NULL}, 2171, "tcp"},
+{"msfw-storage", {NULL}, 2171, "udp"},
+{"msfw-s-storage", {NULL}, 2172, "tcp"},
+{"msfw-s-storage", {NULL}, 2172, "udp"},
+{"msfw-replica", {NULL}, 2173, "tcp"},
+{"msfw-replica", {NULL}, 2173, "udp"},
+{"msfw-array", {NULL}, 2174, "tcp"},
+{"msfw-array", {NULL}, 2174, "udp"},
+{"airsync", {NULL}, 2175, "tcp"},
+{"airsync", {NULL}, 2175, "udp"},
+{"rapi", {NULL}, 2176, "tcp"},
+{"rapi", {NULL}, 2176, "udp"},
+{"qwave", {NULL}, 2177, "tcp"},
+{"qwave", {NULL}, 2177, "udp"},
+{"bitspeer", {NULL}, 2178, "tcp"},
+{"bitspeer", {NULL}, 2178, "udp"},
+{"vmrdp", {NULL}, 2179, "tcp"},
+{"vmrdp", {NULL}, 2179, "udp"},
+{"mc-gt-srv", {NULL}, 2180, "tcp"},
+{"mc-gt-srv", {NULL}, 2180, "udp"},
+{"eforward", {NULL}, 2181, "tcp"},
+{"eforward", {NULL}, 2181, "udp"},
+{"cgn-stat", {NULL}, 2182, "tcp"},
+{"cgn-stat", {NULL}, 2182, "udp"},
+{"cgn-config", {NULL}, 2183, "tcp"},
+{"cgn-config", {NULL}, 2183, "udp"},
+{"nvd", {NULL}, 2184, "tcp"},
+{"nvd", {NULL}, 2184, "udp"},
+{"onbase-dds", {NULL}, 2185, "tcp"},
+{"onbase-dds", {NULL}, 2185, "udp"},
+{"gtaua", {NULL}, 2186, "tcp"},
+{"gtaua", {NULL}, 2186, "udp"},
+{"ssmc", {NULL}, 2187, "tcp"},
+{"ssmd", {NULL}, 2187, "udp"},
+{"tivoconnect", {NULL}, 2190, "tcp"},
+{"tivoconnect", {NULL}, 2190, "udp"},
+{"tvbus", {NULL}, 2191, "tcp"},
+{"tvbus", {NULL}, 2191, "udp"},
+{"asdis", {NULL}, 2192, "tcp"},
+{"asdis", {NULL}, 2192, "udp"},
+{"drwcs", {NULL}, 2193, "tcp"},
+{"drwcs", {NULL}, 2193, "udp"},
+{"mnp-exchange", {NULL}, 2197, "tcp"},
+{"mnp-exchange", {NULL}, 2197, "udp"},
+{"onehome-remote", {NULL}, 2198, "tcp"},
+{"onehome-remote", {NULL}, 2198, "udp"},
+{"onehome-help", {NULL}, 2199, "tcp"},
+{"onehome-help", {NULL}, 2199, "udp"},
+{"ici", {NULL}, 2200, "tcp"},
+{"ici", {NULL}, 2200, "udp"},
+{"ats", {NULL}, 2201, "tcp"},
+{"ats", {NULL}, 2201, "udp"},
+{"imtc-map", {NULL}, 2202, "tcp"},
+{"imtc-map", {NULL}, 2202, "udp"},
+{"b2-runtime", {NULL}, 2203, "tcp"},
+{"b2-runtime", {NULL}, 2203, "udp"},
+{"b2-license", {NULL}, 2204, "tcp"},
+{"b2-license", {NULL}, 2204, "udp"},
+{"jps", {NULL}, 2205, "tcp"},
+{"jps", {NULL}, 2205, "udp"},
+{"hpocbus", {NULL}, 2206, "tcp"},
+{"hpocbus", {NULL}, 2206, "udp"},
+{"hpssd", {NULL}, 2207, "tcp"},
+{"hpssd", {NULL}, 2207, "udp"},
+{"hpiod", {NULL}, 2208, "tcp"},
+{"hpiod", {NULL}, 2208, "udp"},
+{"rimf-ps", {NULL}, 2209, "tcp"},
+{"rimf-ps", {NULL}, 2209, "udp"},
+{"noaaport", {NULL}, 2210, "tcp"},
+{"noaaport", {NULL}, 2210, "udp"},
+{"emwin", {NULL}, 2211, "tcp"},
+{"emwin", {NULL}, 2211, "udp"},
+{"leecoposserver", {NULL}, 2212, "tcp"},
+{"leecoposserver", {NULL}, 2212, "udp"},
+{"kali", {NULL}, 2213, "tcp"},
+{"kali", {NULL}, 2213, "udp"},
+{"rpi", {NULL}, 2214, "tcp"},
+{"rpi", {NULL}, 2214, "udp"},
+{"ipcore", {NULL}, 2215, "tcp"},
+{"ipcore", {NULL}, 2215, "udp"},
+{"vtu-comms", {NULL}, 2216, "tcp"},
+{"vtu-comms", {NULL}, 2216, "udp"},
+{"gotodevice", {NULL}, 2217, "tcp"},
+{"gotodevice", {NULL}, 2217, "udp"},
+{"bounzza", {NULL}, 2218, "tcp"},
+{"bounzza", {NULL}, 2218, "udp"},
+{"netiq-ncap", {NULL}, 2219, "tcp"},
+{"netiq-ncap", {NULL}, 2219, "udp"},
+{"netiq", {NULL}, 2220, "tcp"},
+{"netiq", {NULL}, 2220, "udp"},
+{"rockwell-csp1", {NULL}, 2221, "tcp"},
+{"rockwell-csp1", {NULL}, 2221, "udp"},
+{"EtherNet/IP-1", {NULL}, 2222, "tcp"},
+{"EtherNet/IP-1", {NULL}, 2222, "udp"},
+{"rockwell-csp2", {NULL}, 2223, "tcp"},
+{"rockwell-csp2", {NULL}, 2223, "udp"},
+{"efi-mg", {NULL}, 2224, "tcp"},
+{"efi-mg", {NULL}, 2224, "udp"},
+{"rcip-itu", {NULL}, 2225, "tcp"},
+{"rcip-itu", {NULL}, 2225, "sctp"},
+{"di-drm", {NULL}, 2226, "tcp"},
+{"di-drm", {NULL}, 2226, "udp"},
+{"di-msg", {NULL}, 2227, "tcp"},
+{"di-msg", {NULL}, 2227, "udp"},
+{"ehome-ms", {NULL}, 2228, "tcp"},
+{"ehome-ms", {NULL}, 2228, "udp"},
+{"datalens", {NULL}, 2229, "tcp"},
+{"datalens", {NULL}, 2229, "udp"},
+{"queueadm", {NULL}, 2230, "tcp"},
+{"queueadm", {NULL}, 2230, "udp"},
+{"wimaxasncp", {NULL}, 2231, "tcp"},
+{"wimaxasncp", {NULL}, 2231, "udp"},
+{"ivs-video", {NULL}, 2232, "tcp"},
+{"ivs-video", {NULL}, 2232, "udp"},
+{"infocrypt", {NULL}, 2233, "tcp"},
+{"infocrypt", {NULL}, 2233, "udp"},
+{"directplay", {NULL}, 2234, "tcp"},
+{"directplay", {NULL}, 2234, "udp"},
+{"sercomm-wlink", {NULL}, 2235, "tcp"},
+{"sercomm-wlink", {NULL}, 2235, "udp"},
+{"nani", {NULL}, 2236, "tcp"},
+{"nani", {NULL}, 2236, "udp"},
+{"optech-port1-lm", {NULL}, 2237, "tcp"},
+{"optech-port1-lm", {NULL}, 2237, "udp"},
+{"aviva-sna", {NULL}, 2238, "tcp"},
+{"aviva-sna", {NULL}, 2238, "udp"},
+{"imagequery", {NULL}, 2239, "tcp"},
+{"imagequery", {NULL}, 2239, "udp"},
+{"recipe", {NULL}, 2240, "tcp"},
+{"recipe", {NULL}, 2240, "udp"},
+{"ivsd", {NULL}, 2241, "tcp"},
+{"ivsd", {NULL}, 2241, "udp"},
+{"foliocorp", {NULL}, 2242, "tcp"},
+{"foliocorp", {NULL}, 2242, "udp"},
+{"magicom", {NULL}, 2243, "tcp"},
+{"magicom", {NULL}, 2243, "udp"},
+{"nmsserver", {NULL}, 2244, "tcp"},
+{"nmsserver", {NULL}, 2244, "udp"},
+{"hao", {NULL}, 2245, "tcp"},
+{"hao", {NULL}, 2245, "udp"},
+{"pc-mta-addrmap", {NULL}, 2246, "tcp"},
+{"pc-mta-addrmap", {NULL}, 2246, "udp"},
+{"antidotemgrsvr", {NULL}, 2247, "tcp"},
+{"antidotemgrsvr", {NULL}, 2247, "udp"},
+{"ums", {NULL}, 2248, "tcp"},
+{"ums", {NULL}, 2248, "udp"},
+{"rfmp", {NULL}, 2249, "tcp"},
+{"rfmp", {NULL}, 2249, "udp"},
+{"remote-collab", {NULL}, 2250, "tcp"},
+{"remote-collab", {NULL}, 2250, "udp"},
+{"dif-port", {NULL}, 2251, "tcp"},
+{"dif-port", {NULL}, 2251, "udp"},
+{"njenet-ssl", {NULL}, 2252, "tcp"},
+{"njenet-ssl", {NULL}, 2252, "udp"},
+{"dtv-chan-req", {NULL}, 2253, "tcp"},
+{"dtv-chan-req", {NULL}, 2253, "udp"},
+{"seispoc", {NULL}, 2254, "tcp"},
+{"seispoc", {NULL}, 2254, "udp"},
+{"vrtp", {NULL}, 2255, "tcp"},
+{"vrtp", {NULL}, 2255, "udp"},
+{"pcc-mfp", {NULL}, 2256, "tcp"},
+{"pcc-mfp", {NULL}, 2256, "udp"},
+{"simple-tx-rx", {NULL}, 2257, "tcp"},
+{"simple-tx-rx", {NULL}, 2257, "udp"},
+{"rcts", {NULL}, 2258, "tcp"},
+{"rcts", {NULL}, 2258, "udp"},
+{"acd-pm", {NULL}, 2259, "tcp"},
+{"acd-pm", {NULL}, 2259, "udp"},
+{"apc-2260", {NULL}, 2260, "tcp"},
+{"apc-2260", {NULL}, 2260, "udp"},
+{"comotionmaster", {NULL}, 2261, "tcp"},
+{"comotionmaster", {NULL}, 2261, "udp"},
+{"comotionback", {NULL}, 2262, "tcp"},
+{"comotionback", {NULL}, 2262, "udp"},
+{"ecwcfg", {NULL}, 2263, "tcp"},
+{"ecwcfg", {NULL}, 2263, "udp"},
+{"apx500api-1", {NULL}, 2264, "tcp"},
+{"apx500api-1", {NULL}, 2264, "udp"},
+{"apx500api-2", {NULL}, 2265, "tcp"},
+{"apx500api-2", {NULL}, 2265, "udp"},
+{"mfserver", {NULL}, 2266, "tcp"},
+{"mfserver", {NULL}, 2266, "udp"},
+{"ontobroker", {NULL}, 2267, "tcp"},
+{"ontobroker", {NULL}, 2267, "udp"},
+{"amt", {NULL}, 2268, "tcp"},
+{"amt", {NULL}, 2268, "udp"},
+{"mikey", {NULL}, 2269, "tcp"},
+{"mikey", {NULL}, 2269, "udp"},
+{"starschool", {NULL}, 2270, "tcp"},
+{"starschool", {NULL}, 2270, "udp"},
+{"mmcals", {NULL}, 2271, "tcp"},
+{"mmcals", {NULL}, 2271, "udp"},
+{"mmcal", {NULL}, 2272, "tcp"},
+{"mmcal", {NULL}, 2272, "udp"},
+{"mysql-im", {NULL}, 2273, "tcp"},
+{"mysql-im", {NULL}, 2273, "udp"},
+{"pcttunnell", {NULL}, 2274, "tcp"},
+{"pcttunnell", {NULL}, 2274, "udp"},
+{"ibridge-data", {NULL}, 2275, "tcp"},
+{"ibridge-data", {NULL}, 2275, "udp"},
+{"ibridge-mgmt", {NULL}, 2276, "tcp"},
+{"ibridge-mgmt", {NULL}, 2276, "udp"},
+{"bluectrlproxy", {NULL}, 2277, "tcp"},
+{"bluectrlproxy", {NULL}, 2277, "udp"},
+{"s3db", {NULL}, 2278, "tcp"},
+{"s3db", {NULL}, 2278, "udp"},
+{"xmquery", {NULL}, 2279, "tcp"},
+{"xmquery", {NULL}, 2279, "udp"},
+{"lnvpoller", {NULL}, 2280, "tcp"},
+{"lnvpoller", {NULL}, 2280, "udp"},
+{"lnvconsole", {NULL}, 2281, "tcp"},
+{"lnvconsole", {NULL}, 2281, "udp"},
+{"lnvalarm", {NULL}, 2282, "tcp"},
+{"lnvalarm", {NULL}, 2282, "udp"},
+{"lnvstatus", {NULL}, 2283, "tcp"},
+{"lnvstatus", {NULL}, 2283, "udp"},
+{"lnvmaps", {NULL}, 2284, "tcp"},
+{"lnvmaps", {NULL}, 2284, "udp"},
+{"lnvmailmon", {NULL}, 2285, "tcp"},
+{"lnvmailmon", {NULL}, 2285, "udp"},
+{"nas-metering", {NULL}, 2286, "tcp"},
+{"nas-metering", {NULL}, 2286, "udp"},
+{"dna", {NULL}, 2287, "tcp"},
+{"dna", {NULL}, 2287, "udp"},
+{"netml", {NULL}, 2288, "tcp"},
+{"netml", {NULL}, 2288, "udp"},
+{"dict-lookup", {NULL}, 2289, "tcp"},
+{"dict-lookup", {NULL}, 2289, "udp"},
+{"sonus-logging", {NULL}, 2290, "tcp"},
+{"sonus-logging", {NULL}, 2290, "udp"},
+{"eapsp", {NULL}, 2291, "tcp"},
+{"eapsp", {NULL}, 2291, "udp"},
+{"mib-streaming", {NULL}, 2292, "tcp"},
+{"mib-streaming", {NULL}, 2292, "udp"},
+{"npdbgmngr", {NULL}, 2293, "tcp"},
+{"npdbgmngr", {NULL}, 2293, "udp"},
+{"konshus-lm", {NULL}, 2294, "tcp"},
+{"konshus-lm", {NULL}, 2294, "udp"},
+{"advant-lm", {NULL}, 2295, "tcp"},
+{"advant-lm", {NULL}, 2295, "udp"},
+{"theta-lm", {NULL}, 2296, "tcp"},
+{"theta-lm", {NULL}, 2296, "udp"},
+{"d2k-datamover1", {NULL}, 2297, "tcp"},
+{"d2k-datamover1", {NULL}, 2297, "udp"},
+{"d2k-datamover2", {NULL}, 2298, "tcp"},
+{"d2k-datamover2", {NULL}, 2298, "udp"},
+{"pc-telecommute", {NULL}, 2299, "tcp"},
+{"pc-telecommute", {NULL}, 2299, "udp"},
+{"cvmmon", {NULL}, 2300, "tcp"},
+{"cvmmon", {NULL}, 2300, "udp"},
+{"cpq-wbem", {NULL}, 2301, "tcp"},
+{"cpq-wbem", {NULL}, 2301, "udp"},
+{"binderysupport", {NULL}, 2302, "tcp"},
+{"binderysupport", {NULL}, 2302, "udp"},
+{"proxy-gateway", {NULL}, 2303, "tcp"},
+{"proxy-gateway", {NULL}, 2303, "udp"},
+{"attachmate-uts", {NULL}, 2304, "tcp"},
+{"attachmate-uts", {NULL}, 2304, "udp"},
+{"mt-scaleserver", {NULL}, 2305, "tcp"},
+{"mt-scaleserver", {NULL}, 2305, "udp"},
+{"tappi-boxnet", {NULL}, 2306, "tcp"},
+{"tappi-boxnet", {NULL}, 2306, "udp"},
+{"pehelp", {NULL}, 2307, "tcp"},
+{"pehelp", {NULL}, 2307, "udp"},
+{"sdhelp", {NULL}, 2308, "tcp"},
+{"sdhelp", {NULL}, 2308, "udp"},
+{"sdserver", {NULL}, 2309, "tcp"},
+{"sdserver", {NULL}, 2309, "udp"},
+{"sdclient", {NULL}, 2310, "tcp"},
+{"sdclient", {NULL}, 2310, "udp"},
+{"messageservice", {NULL}, 2311, "tcp"},
+{"messageservice", {NULL}, 2311, "udp"},
+{"wanscaler", {NULL}, 2312, "tcp"},
+{"wanscaler", {NULL}, 2312, "udp"},
+{"iapp", {NULL}, 2313, "tcp"},
+{"iapp", {NULL}, 2313, "udp"},
+{"cr-websystems", {NULL}, 2314, "tcp"},
+{"cr-websystems", {NULL}, 2314, "udp"},
+{"precise-sft", {NULL}, 2315, "tcp"},
+{"precise-sft", {NULL}, 2315, "udp"},
+{"sent-lm", {NULL}, 2316, "tcp"},
+{"sent-lm", {NULL}, 2316, "udp"},
+{"attachmate-g32", {NULL}, 2317, "tcp"},
+{"attachmate-g32", {NULL}, 2317, "udp"},
+{"cadencecontrol", {NULL}, 2318, "tcp"},
+{"cadencecontrol", {NULL}, 2318, "udp"},
+{"infolibria", {NULL}, 2319, "tcp"},
+{"infolibria", {NULL}, 2319, "udp"},
+{"siebel-ns", {NULL}, 2320, "tcp"},
+{"siebel-ns", {NULL}, 2320, "udp"},
+{"rdlap", {NULL}, 2321, "tcp"},
+{"rdlap", {NULL}, 2321, "udp"},
+{"ofsd", {NULL}, 2322, "tcp"},
+{"ofsd", {NULL}, 2322, "udp"},
+{"3d-nfsd", {NULL}, 2323, "tcp"},
+{"3d-nfsd", {NULL}, 2323, "udp"},
+{"cosmocall", {NULL}, 2324, "tcp"},
+{"cosmocall", {NULL}, 2324, "udp"},
+{"ansysli", {NULL}, 2325, "tcp"},
+{"ansysli", {NULL}, 2325, "udp"},
+{"idcp", {NULL}, 2326, "tcp"},
+{"idcp", {NULL}, 2326, "udp"},
+{"xingcsm", {NULL}, 2327, "tcp"},
+{"xingcsm", {NULL}, 2327, "udp"},
+{"netrix-sftm", {NULL}, 2328, "tcp"},
+{"netrix-sftm", {NULL}, 2328, "udp"},
+{"nvd", {NULL}, 2329, "tcp"},
+{"nvd", {NULL}, 2329, "udp"},
+{"tscchat", {NULL}, 2330, "tcp"},
+{"tscchat", {NULL}, 2330, "udp"},
+{"agentview", {NULL}, 2331, "tcp"},
+{"agentview", {NULL}, 2331, "udp"},
+{"rcc-host", {NULL}, 2332, "tcp"},
+{"rcc-host", {NULL}, 2332, "udp"},
+{"snapp", {NULL}, 2333, "tcp"},
+{"snapp", {NULL}, 2333, "udp"},
+{"ace-client", {NULL}, 2334, "tcp"},
+{"ace-client", {NULL}, 2334, "udp"},
+{"ace-proxy", {NULL}, 2335, "tcp"},
+{"ace-proxy", {NULL}, 2335, "udp"},
+{"appleugcontrol", {NULL}, 2336, "tcp"},
+{"appleugcontrol", {NULL}, 2336, "udp"},
+{"ideesrv", {NULL}, 2337, "tcp"},
+{"ideesrv", {NULL}, 2337, "udp"},
+{"norton-lambert", {NULL}, 2338, "tcp"},
+{"norton-lambert", {NULL}, 2338, "udp"},
+{"3com-webview", {NULL}, 2339, "tcp"},
+{"3com-webview", {NULL}, 2339, "udp"},
+{"wrs_registry", {NULL}, 2340, "tcp"},
+{"wrs_registry", {NULL}, 2340, "udp"},
+{"xiostatus", {NULL}, 2341, "tcp"},
+{"xiostatus", {NULL}, 2341, "udp"},
+{"manage-exec", {NULL}, 2342, "tcp"},
+{"manage-exec", {NULL}, 2342, "udp"},
+{"nati-logos", {NULL}, 2343, "tcp"},
+{"nati-logos", {NULL}, 2343, "udp"},
+{"fcmsys", {NULL}, 2344, "tcp"},
+{"fcmsys", {NULL}, 2344, "udp"},
+{"dbm", {NULL}, 2345, "tcp"},
+{"dbm", {NULL}, 2345, "udp"},
+{"redstorm_join", {NULL}, 2346, "tcp"},
+{"redstorm_join", {NULL}, 2346, "udp"},
+{"redstorm_find", {NULL}, 2347, "tcp"},
+{"redstorm_find", {NULL}, 2347, "udp"},
+{"redstorm_info", {NULL}, 2348, "tcp"},
+{"redstorm_info", {NULL}, 2348, "udp"},
+{"redstorm_diag", {NULL}, 2349, "tcp"},
+{"redstorm_diag", {NULL}, 2349, "udp"},
+{"psbserver", {NULL}, 2350, "tcp"},
+{"psbserver", {NULL}, 2350, "udp"},
+{"psrserver", {NULL}, 2351, "tcp"},
+{"psrserver", {NULL}, 2351, "udp"},
+{"pslserver", {NULL}, 2352, "tcp"},
+{"pslserver", {NULL}, 2352, "udp"},
+{"pspserver", {NULL}, 2353, "tcp"},
+{"pspserver", {NULL}, 2353, "udp"},
+{"psprserver", {NULL}, 2354, "tcp"},
+{"psprserver", {NULL}, 2354, "udp"},
+{"psdbserver", {NULL}, 2355, "tcp"},
+{"psdbserver", {NULL}, 2355, "udp"},
+{"gxtelmd", {NULL}, 2356, "tcp"},
+{"gxtelmd", {NULL}, 2356, "udp"},
+{"unihub-server", {NULL}, 2357, "tcp"},
+{"unihub-server", {NULL}, 2357, "udp"},
+{"futrix", {NULL}, 2358, "tcp"},
+{"futrix", {NULL}, 2358, "udp"},
+{"flukeserver", {NULL}, 2359, "tcp"},
+{"flukeserver", {NULL}, 2359, "udp"},
+{"nexstorindltd", {NULL}, 2360, "tcp"},
+{"nexstorindltd", {NULL}, 2360, "udp"},
+{"tl1", {NULL}, 2361, "tcp"},
+{"tl1", {NULL}, 2361, "udp"},
+{"digiman", {NULL}, 2362, "tcp"},
+{"digiman", {NULL}, 2362, "udp"},
+{"mediacntrlnfsd", {NULL}, 2363, "tcp"},
+{"mediacntrlnfsd", {NULL}, 2363, "udp"},
+{"oi-2000", {NULL}, 2364, "tcp"},
+{"oi-2000", {NULL}, 2364, "udp"},
+{"dbref", {NULL}, 2365, "tcp"},
+{"dbref", {NULL}, 2365, "udp"},
+{"qip-login", {NULL}, 2366, "tcp"},
+{"qip-login", {NULL}, 2366, "udp"},
+{"service-ctrl", {NULL}, 2367, "tcp"},
+{"service-ctrl", {NULL}, 2367, "udp"},
+{"opentable", {NULL}, 2368, "tcp"},
+{"opentable", {NULL}, 2368, "udp"},
+{"l3-hbmon", {NULL}, 2370, "tcp"},
+{"l3-hbmon", {NULL}, 2370, "udp"},
+{"worldwire", {NULL}, 2371, "tcp"},
+{"worldwire", {NULL}, 2371, "udp"},
+{"lanmessenger", {NULL}, 2372, "tcp"},
+{"lanmessenger", {NULL}, 2372, "udp"},
+{"remographlm", {NULL}, 2373, "tcp"},
+{"hydra", {NULL}, 2374, "tcp"},
+{"compaq-https", {NULL}, 2381, "tcp"},
+{"compaq-https", {NULL}, 2381, "udp"},
+{"ms-olap3", {NULL}, 2382, "tcp"},
+{"ms-olap3", {NULL}, 2382, "udp"},
+{"ms-olap4", {NULL}, 2383, "tcp"},
+{"ms-olap4", {NULL}, 2383, "udp"},
+{"sd-request", {NULL}, 2384, "tcp"},
+{"sd-capacity", {NULL}, 2384, "udp"},
+{"sd-data", {NULL}, 2385, "tcp"},
+{"sd-data", {NULL}, 2385, "udp"},
+{"virtualtape", {NULL}, 2386, "tcp"},
+{"virtualtape", {NULL}, 2386, "udp"},
+{"vsamredirector", {NULL}, 2387, "tcp"},
+{"vsamredirector", {NULL}, 2387, "udp"},
+{"mynahautostart", {NULL}, 2388, "tcp"},
+{"mynahautostart", {NULL}, 2388, "udp"},
+{"ovsessionmgr", {NULL}, 2389, "tcp"},
+{"ovsessionmgr", {NULL}, 2389, "udp"},
+{"rsmtp", {NULL}, 2390, "tcp"},
+{"rsmtp", {NULL}, 2390, "udp"},
+{"3com-net-mgmt", {NULL}, 2391, "tcp"},
+{"3com-net-mgmt", {NULL}, 2391, "udp"},
+{"tacticalauth", {NULL}, 2392, "tcp"},
+{"tacticalauth", {NULL}, 2392, "udp"},
+{"ms-olap1", {NULL}, 2393, "tcp"},
+{"ms-olap1", {NULL}, 2393, "udp"},
+{"ms-olap2", {NULL}, 2394, "tcp"},
+{"ms-olap2", {NULL}, 2394, "udp"},
+{"lan900_remote", {NULL}, 2395, "tcp"},
+{"lan900_remote", {NULL}, 2395, "udp"},
+{"wusage", {NULL}, 2396, "tcp"},
+{"wusage", {NULL}, 2396, "udp"},
+{"ncl", {NULL}, 2397, "tcp"},
+{"ncl", {NULL}, 2397, "udp"},
+{"orbiter", {NULL}, 2398, "tcp"},
+{"orbiter", {NULL}, 2398, "udp"},
+{"fmpro-fdal", {NULL}, 2399, "tcp"},
+{"fmpro-fdal", {NULL}, 2399, "udp"},
+{"opequus-server", {NULL}, 2400, "tcp"},
+{"opequus-server", {NULL}, 2400, "udp"},
+{"cvspserver", {NULL}, 2401, "tcp"},
+{"cvspserver", {NULL}, 2401, "udp"},
+{"taskmaster2000", {NULL}, 2402, "tcp"},
+{"taskmaster2000", {NULL}, 2402, "udp"},
+{"taskmaster2000", {NULL}, 2403, "tcp"},
+{"taskmaster2000", {NULL}, 2403, "udp"},
+{"iec-104", {NULL}, 2404, "tcp"},
+{"iec-104", {NULL}, 2404, "udp"},
+{"trc-netpoll", {NULL}, 2405, "tcp"},
+{"trc-netpoll", {NULL}, 2405, "udp"},
+{"jediserver", {NULL}, 2406, "tcp"},
+{"jediserver", {NULL}, 2406, "udp"},
+{"orion", {NULL}, 2407, "tcp"},
+{"orion", {NULL}, 2407, "udp"},
+{"optimanet", {NULL}, 2408, "tcp"},
+{"optimanet", {NULL}, 2408, "udp"},
+{"sns-protocol", {NULL}, 2409, "tcp"},
+{"sns-protocol", {NULL}, 2409, "udp"},
+{"vrts-registry", {NULL}, 2410, "tcp"},
+{"vrts-registry", {NULL}, 2410, "udp"},
+{"netwave-ap-mgmt", {NULL}, 2411, "tcp"},
+{"netwave-ap-mgmt", {NULL}, 2411, "udp"},
+{"cdn", {NULL}, 2412, "tcp"},
+{"cdn", {NULL}, 2412, "udp"},
+{"orion-rmi-reg", {NULL}, 2413, "tcp"},
+{"orion-rmi-reg", {NULL}, 2413, "udp"},
+{"beeyond", {NULL}, 2414, "tcp"},
+{"beeyond", {NULL}, 2414, "udp"},
+{"codima-rtp", {NULL}, 2415, "tcp"},
+{"codima-rtp", {NULL}, 2415, "udp"},
+{"rmtserver", {NULL}, 2416, "tcp"},
+{"rmtserver", {NULL}, 2416, "udp"},
+{"composit-server", {NULL}, 2417, "tcp"},
+{"composit-server", {NULL}, 2417, "udp"},
+{"cas", {NULL}, 2418, "tcp"},
+{"cas", {NULL}, 2418, "udp"},
+{"attachmate-s2s", {NULL}, 2419, "tcp"},
+{"attachmate-s2s", {NULL}, 2419, "udp"},
+{"dslremote-mgmt", {NULL}, 2420, "tcp"},
+{"dslremote-mgmt", {NULL}, 2420, "udp"},
+{"g-talk", {NULL}, 2421, "tcp"},
+{"g-talk", {NULL}, 2421, "udp"},
+{"crmsbits", {NULL}, 2422, "tcp"},
+{"crmsbits", {NULL}, 2422, "udp"},
+{"rnrp", {NULL}, 2423, "tcp"},
+{"rnrp", {NULL}, 2423, "udp"},
+{"kofax-svr", {NULL}, 2424, "tcp"},
+{"kofax-svr", {NULL}, 2424, "udp"},
+{"fjitsuappmgr", {NULL}, 2425, "tcp"},
+{"fjitsuappmgr", {NULL}, 2425, "udp"},
+{"mgcp-gateway", {NULL}, 2427, "tcp"},
+{"mgcp-gateway", {NULL}, 2427, "udp"},
+{"ott", {NULL}, 2428, "tcp"},
+{"ott", {NULL}, 2428, "udp"},
+{"ft-role", {NULL}, 2429, "tcp"},
+{"ft-role", {NULL}, 2429, "udp"},
+{"venus", {NULL}, 2430, "tcp"},
+{"venus", {NULL}, 2430, "udp"},
+{"venus-se", {NULL}, 2431, "tcp"},
+{"venus-se", {NULL}, 2431, "udp"},
+{"codasrv", {NULL}, 2432, "tcp"},
+{"codasrv", {NULL}, 2432, "udp"},
+{"codasrv-se", {NULL}, 2433, "tcp"},
+{"codasrv-se", {NULL}, 2433, "udp"},
+{"pxc-epmap", {NULL}, 2434, "tcp"},
+{"pxc-epmap", {NULL}, 2434, "udp"},
+{"optilogic", {NULL}, 2435, "tcp"},
+{"optilogic", {NULL}, 2435, "udp"},
+{"topx", {NULL}, 2436, "tcp"},
+{"topx", {NULL}, 2436, "udp"},
+{"unicontrol", {NULL}, 2437, "tcp"},
+{"unicontrol", {NULL}, 2437, "udp"},
+{"msp", {NULL}, 2438, "tcp"},
+{"msp", {NULL}, 2438, "udp"},
+{"sybasedbsynch", {NULL}, 2439, "tcp"},
+{"sybasedbsynch", {NULL}, 2439, "udp"},
+{"spearway", {NULL}, 2440, "tcp"},
+{"spearway", {NULL}, 2440, "udp"},
+{"pvsw-inet", {NULL}, 2441, "tcp"},
+{"pvsw-inet", {NULL}, 2441, "udp"},
+{"netangel", {NULL}, 2442, "tcp"},
+{"netangel", {NULL}, 2442, "udp"},
+{"powerclientcsf", {NULL}, 2443, "tcp"},
+{"powerclientcsf", {NULL}, 2443, "udp"},
+{"btpp2sectrans", {NULL}, 2444, "tcp"},
+{"btpp2sectrans", {NULL}, 2444, "udp"},
+{"dtn1", {NULL}, 2445, "tcp"},
+{"dtn1", {NULL}, 2445, "udp"},
+{"bues_service", {NULL}, 2446, "tcp"},
+{"bues_service", {NULL}, 2446, "udp"},
+{"ovwdb", {NULL}, 2447, "tcp"},
+{"ovwdb", {NULL}, 2447, "udp"},
+{"hpppssvr", {NULL}, 2448, "tcp"},
+{"hpppssvr", {NULL}, 2448, "udp"},
+{"ratl", {NULL}, 2449, "tcp"},
+{"ratl", {NULL}, 2449, "udp"},
+{"netadmin", {NULL}, 2450, "tcp"},
+{"netadmin", {NULL}, 2450, "udp"},
+{"netchat", {NULL}, 2451, "tcp"},
+{"netchat", {NULL}, 2451, "udp"},
+{"snifferclient", {NULL}, 2452, "tcp"},
+{"snifferclient", {NULL}, 2452, "udp"},
+{"madge-ltd", {NULL}, 2453, "tcp"},
+{"madge-ltd", {NULL}, 2453, "udp"},
+{"indx-dds", {NULL}, 2454, "tcp"},
+{"indx-dds", {NULL}, 2454, "udp"},
+{"wago-io-system", {NULL}, 2455, "tcp"},
+{"wago-io-system", {NULL}, 2455, "udp"},
+{"altav-remmgt", {NULL}, 2456, "tcp"},
+{"altav-remmgt", {NULL}, 2456, "udp"},
+{"rapido-ip", {NULL}, 2457, "tcp"},
+{"rapido-ip", {NULL}, 2457, "udp"},
+{"griffin", {NULL}, 2458, "tcp"},
+{"griffin", {NULL}, 2458, "udp"},
+{"community", {NULL}, 2459, "tcp"},
+{"community", {NULL}, 2459, "udp"},
+{"ms-theater", {NULL}, 2460, "tcp"},
+{"ms-theater", {NULL}, 2460, "udp"},
+{"qadmifoper", {NULL}, 2461, "tcp"},
+{"qadmifoper", {NULL}, 2461, "udp"},
+{"qadmifevent", {NULL}, 2462, "tcp"},
+{"qadmifevent", {NULL}, 2462, "udp"},
+{"lsi-raid-mgmt", {NULL}, 2463, "tcp"},
+{"lsi-raid-mgmt", {NULL}, 2463, "udp"},
+{"direcpc-si", {NULL}, 2464, "tcp"},
+{"direcpc-si", {NULL}, 2464, "udp"},
+{"lbm", {NULL}, 2465, "tcp"},
+{"lbm", {NULL}, 2465, "udp"},
+{"lbf", {NULL}, 2466, "tcp"},
+{"lbf", {NULL}, 2466, "udp"},
+{"high-criteria", {NULL}, 2467, "tcp"},
+{"high-criteria", {NULL}, 2467, "udp"},
+{"qip-msgd", {NULL}, 2468, "tcp"},
+{"qip-msgd", {NULL}, 2468, "udp"},
+{"mti-tcs-comm", {NULL}, 2469, "tcp"},
+{"mti-tcs-comm", {NULL}, 2469, "udp"},
+{"taskman-port", {NULL}, 2470, "tcp"},
+{"taskman-port", {NULL}, 2470, "udp"},
+{"seaodbc", {NULL}, 2471, "tcp"},
+{"seaodbc", {NULL}, 2471, "udp"},
+{"c3", {NULL}, 2472, "tcp"},
+{"c3", {NULL}, 2472, "udp"},
+{"aker-cdp", {NULL}, 2473, "tcp"},
+{"aker-cdp", {NULL}, 2473, "udp"},
+{"vitalanalysis", {NULL}, 2474, "tcp"},
+{"vitalanalysis", {NULL}, 2474, "udp"},
+{"ace-server", {NULL}, 2475, "tcp"},
+{"ace-server", {NULL}, 2475, "udp"},
+{"ace-svr-prop", {NULL}, 2476, "tcp"},
+{"ace-svr-prop", {NULL}, 2476, "udp"},
+{"ssm-cvs", {NULL}, 2477, "tcp"},
+{"ssm-cvs", {NULL}, 2477, "udp"},
+{"ssm-cssps", {NULL}, 2478, "tcp"},
+{"ssm-cssps", {NULL}, 2478, "udp"},
+{"ssm-els", {NULL}, 2479, "tcp"},
+{"ssm-els", {NULL}, 2479, "udp"},
+{"powerexchange", {NULL}, 2480, "tcp"},
+{"powerexchange", {NULL}, 2480, "udp"},
+{"giop", {NULL}, 2481, "tcp"},
+{"giop", {NULL}, 2481, "udp"},
+{"giop-ssl", {NULL}, 2482, "tcp"},
+{"giop-ssl", {NULL}, 2482, "udp"},
+{"ttc", {NULL}, 2483, "tcp"},
+{"ttc", {NULL}, 2483, "udp"},
+{"ttc-ssl", {NULL}, 2484, "tcp"},
+{"ttc-ssl", {NULL}, 2484, "udp"},
+{"netobjects1", {NULL}, 2485, "tcp"},
+{"netobjects1", {NULL}, 2485, "udp"},
+{"netobjects2", {NULL}, 2486, "tcp"},
+{"netobjects2", {NULL}, 2486, "udp"},
+{"pns", {NULL}, 2487, "tcp"},
+{"pns", {NULL}, 2487, "udp"},
+{"moy-corp", {NULL}, 2488, "tcp"},
+{"moy-corp", {NULL}, 2488, "udp"},
+{"tsilb", {NULL}, 2489, "tcp"},
+{"tsilb", {NULL}, 2489, "udp"},
+{"qip-qdhcp", {NULL}, 2490, "tcp"},
+{"qip-qdhcp", {NULL}, 2490, "udp"},
+{"conclave-cpp", {NULL}, 2491, "tcp"},
+{"conclave-cpp", {NULL}, 2491, "udp"},
+{"groove", {NULL}, 2492, "tcp"},
+{"groove", {NULL}, 2492, "udp"},
+{"talarian-mqs", {NULL}, 2493, "tcp"},
+{"talarian-mqs", {NULL}, 2493, "udp"},
+{"bmc-ar", {NULL}, 2494, "tcp"},
+{"bmc-ar", {NULL}, 2494, "udp"},
+{"fast-rem-serv", {NULL}, 2495, "tcp"},
+{"fast-rem-serv", {NULL}, 2495, "udp"},
+{"dirgis", {NULL}, 2496, "tcp"},
+{"dirgis", {NULL}, 2496, "udp"},
+{"quaddb", {NULL}, 2497, "tcp"},
+{"quaddb", {NULL}, 2497, "udp"},
+{"odn-castraq", {NULL}, 2498, "tcp"},
+{"odn-castraq", {NULL}, 2498, "udp"},
+{"unicontrol", {NULL}, 2499, "tcp"},
+{"unicontrol", {NULL}, 2499, "udp"},
+{"rtsserv", {NULL}, 2500, "tcp"},
+{"rtsserv", {NULL}, 2500, "udp"},
+{"rtsclient", {NULL}, 2501, "tcp"},
+{"rtsclient", {NULL}, 2501, "udp"},
+{"kentrox-prot", {NULL}, 2502, "tcp"},
+{"kentrox-prot", {NULL}, 2502, "udp"},
+{"nms-dpnss", {NULL}, 2503, "tcp"},
+{"nms-dpnss", {NULL}, 2503, "udp"},
+{"wlbs", {NULL}, 2504, "tcp"},
+{"wlbs", {NULL}, 2504, "udp"},
+{"ppcontrol", {NULL}, 2505, "tcp"},
+{"ppcontrol", {NULL}, 2505, "udp"},
+{"jbroker", {NULL}, 2506, "tcp"},
+{"jbroker", {NULL}, 2506, "udp"},
+{"spock", {NULL}, 2507, "tcp"},
+{"spock", {NULL}, 2507, "udp"},
+{"jdatastore", {NULL}, 2508, "tcp"},
+{"jdatastore", {NULL}, 2508, "udp"},
+{"fjmpss", {NULL}, 2509, "tcp"},
+{"fjmpss", {NULL}, 2509, "udp"},
+{"fjappmgrbulk", {NULL}, 2510, "tcp"},
+{"fjappmgrbulk", {NULL}, 2510, "udp"},
+{"metastorm", {NULL}, 2511, "tcp"},
+{"metastorm", {NULL}, 2511, "udp"},
+{"citrixima", {NULL}, 2512, "tcp"},
+{"citrixima", {NULL}, 2512, "udp"},
+{"citrixadmin", {NULL}, 2513, "tcp"},
+{"citrixadmin", {NULL}, 2513, "udp"},
+{"facsys-ntp", {NULL}, 2514, "tcp"},
+{"facsys-ntp", {NULL}, 2514, "udp"},
+{"facsys-router", {NULL}, 2515, "tcp"},
+{"facsys-router", {NULL}, 2515, "udp"},
+{"maincontrol", {NULL}, 2516, "tcp"},
+{"maincontrol", {NULL}, 2516, "udp"},
+{"call-sig-trans", {NULL}, 2517, "tcp"},
+{"call-sig-trans", {NULL}, 2517, "udp"},
+{"willy", {NULL}, 2518, "tcp"},
+{"willy", {NULL}, 2518, "udp"},
+{"globmsgsvc", {NULL}, 2519, "tcp"},
+{"globmsgsvc", {NULL}, 2519, "udp"},
+{"pvsw", {NULL}, 2520, "tcp"},
+{"pvsw", {NULL}, 2520, "udp"},
+{"adaptecmgr", {NULL}, 2521, "tcp"},
+{"adaptecmgr", {NULL}, 2521, "udp"},
+{"windb", {NULL}, 2522, "tcp"},
+{"windb", {NULL}, 2522, "udp"},
+{"qke-llc-v3", {NULL}, 2523, "tcp"},
+{"qke-llc-v3", {NULL}, 2523, "udp"},
+{"optiwave-lm", {NULL}, 2524, "tcp"},
+{"optiwave-lm", {NULL}, 2524, "udp"},
+{"ms-v-worlds", {NULL}, 2525, "tcp"},
+{"ms-v-worlds", {NULL}, 2525, "udp"},
+{"ema-sent-lm", {NULL}, 2526, "tcp"},
+{"ema-sent-lm", {NULL}, 2526, "udp"},
+{"iqserver", {NULL}, 2527, "tcp"},
+{"iqserver", {NULL}, 2527, "udp"},
+{"ncr_ccl", {NULL}, 2528, "tcp"},
+{"ncr_ccl", {NULL}, 2528, "udp"},
+{"utsftp", {NULL}, 2529, "tcp"},
+{"utsftp", {NULL}, 2529, "udp"},
+{"vrcommerce", {NULL}, 2530, "tcp"},
+{"vrcommerce", {NULL}, 2530, "udp"},
+{"ito-e-gui", {NULL}, 2531, "tcp"},
+{"ito-e-gui", {NULL}, 2531, "udp"},
+{"ovtopmd", {NULL}, 2532, "tcp"},
+{"ovtopmd", {NULL}, 2532, "udp"},
+{"snifferserver", {NULL}, 2533, "tcp"},
+{"snifferserver", {NULL}, 2533, "udp"},
+{"combox-web-acc", {NULL}, 2534, "tcp"},
+{"combox-web-acc", {NULL}, 2534, "udp"},
+{"madcap", {NULL}, 2535, "tcp"},
+{"madcap", {NULL}, 2535, "udp"},
+{"btpp2audctr1", {NULL}, 2536, "tcp"},
+{"btpp2audctr1", {NULL}, 2536, "udp"},
+{"upgrade", {NULL}, 2537, "tcp"},
+{"upgrade", {NULL}, 2537, "udp"},
+{"vnwk-prapi", {NULL}, 2538, "tcp"},
+{"vnwk-prapi", {NULL}, 2538, "udp"},
+{"vsiadmin", {NULL}, 2539, "tcp"},
+{"vsiadmin", {NULL}, 2539, "udp"},
+{"lonworks", {NULL}, 2540, "tcp"},
+{"lonworks", {NULL}, 2540, "udp"},
+{"lonworks2", {NULL}, 2541, "tcp"},
+{"lonworks2", {NULL}, 2541, "udp"},
+{"udrawgraph", {NULL}, 2542, "tcp"},
+{"udrawgraph", {NULL}, 2542, "udp"},
+{"reftek", {NULL}, 2543, "tcp"},
+{"reftek", {NULL}, 2543, "udp"},
+{"novell-zen", {NULL}, 2544, "tcp"},
+{"novell-zen", {NULL}, 2544, "udp"},
+{"sis-emt", {NULL}, 2545, "tcp"},
+{"sis-emt", {NULL}, 2545, "udp"},
+{"vytalvaultbrtp", {NULL}, 2546, "tcp"},
+{"vytalvaultbrtp", {NULL}, 2546, "udp"},
+{"vytalvaultvsmp", {NULL}, 2547, "tcp"},
+{"vytalvaultvsmp", {NULL}, 2547, "udp"},
+{"vytalvaultpipe", {NULL}, 2548, "tcp"},
+{"vytalvaultpipe", {NULL}, 2548, "udp"},
+{"ipass", {NULL}, 2549, "tcp"},
+{"ipass", {NULL}, 2549, "udp"},
+{"ads", {NULL}, 2550, "tcp"},
+{"ads", {NULL}, 2550, "udp"},
+{"isg-uda-server", {NULL}, 2551, "tcp"},
+{"isg-uda-server", {NULL}, 2551, "udp"},
+{"call-logging", {NULL}, 2552, "tcp"},
+{"call-logging", {NULL}, 2552, "udp"},
+{"efidiningport", {NULL}, 2553, "tcp"},
+{"efidiningport", {NULL}, 2553, "udp"},
+{"vcnet-link-v10", {NULL}, 2554, "tcp"},
+{"vcnet-link-v10", {NULL}, 2554, "udp"},
+{"compaq-wcp", {NULL}, 2555, "tcp"},
+{"compaq-wcp", {NULL}, 2555, "udp"},
+{"nicetec-nmsvc", {NULL}, 2556, "tcp"},
+{"nicetec-nmsvc", {NULL}, 2556, "udp"},
+{"nicetec-mgmt", {NULL}, 2557, "tcp"},
+{"nicetec-mgmt", {NULL}, 2557, "udp"},
+{"pclemultimedia", {NULL}, 2558, "tcp"},
+{"pclemultimedia", {NULL}, 2558, "udp"},
+{"lstp", {NULL}, 2559, "tcp"},
+{"lstp", {NULL}, 2559, "udp"},
+{"labrat", {NULL}, 2560, "tcp"},
+{"labrat", {NULL}, 2560, "udp"},
+{"mosaixcc", {NULL}, 2561, "tcp"},
+{"mosaixcc", {NULL}, 2561, "udp"},
+{"delibo", {NULL}, 2562, "tcp"},
+{"delibo", {NULL}, 2562, "udp"},
+{"cti-redwood", {NULL}, 2563, "tcp"},
+{"cti-redwood", {NULL}, 2563, "udp"},
+{"hp-3000-telnet", {NULL}, 2564, "tcp"},
+{"coord-svr", {NULL}, 2565, "tcp"},
+{"coord-svr", {NULL}, 2565, "udp"},
+{"pcs-pcw", {NULL}, 2566, "tcp"},
+{"pcs-pcw", {NULL}, 2566, "udp"},
+{"clp", {NULL}, 2567, "tcp"},
+{"clp", {NULL}, 2567, "udp"},
+{"spamtrap", {NULL}, 2568, "tcp"},
+{"spamtrap", {NULL}, 2568, "udp"},
+{"sonuscallsig", {NULL}, 2569, "tcp"},
+{"sonuscallsig", {NULL}, 2569, "udp"},
+{"hs-port", {NULL}, 2570, "tcp"},
+{"hs-port", {NULL}, 2570, "udp"},
+{"cecsvc", {NULL}, 2571, "tcp"},
+{"cecsvc", {NULL}, 2571, "udp"},
+{"ibp", {NULL}, 2572, "tcp"},
+{"ibp", {NULL}, 2572, "udp"},
+{"trustestablish", {NULL}, 2573, "tcp"},
+{"trustestablish", {NULL}, 2573, "udp"},
+{"blockade-bpsp", {NULL}, 2574, "tcp"},
+{"blockade-bpsp", {NULL}, 2574, "udp"},
+{"hl7", {NULL}, 2575, "tcp"},
+{"hl7", {NULL}, 2575, "udp"},
+{"tclprodebugger", {NULL}, 2576, "tcp"},
+{"tclprodebugger", {NULL}, 2576, "udp"},
+{"scipticslsrvr", {NULL}, 2577, "tcp"},
+{"scipticslsrvr", {NULL}, 2577, "udp"},
+{"rvs-isdn-dcp", {NULL}, 2578, "tcp"},
+{"rvs-isdn-dcp", {NULL}, 2578, "udp"},
+{"mpfoncl", {NULL}, 2579, "tcp"},
+{"mpfoncl", {NULL}, 2579, "udp"},
+{"tributary", {NULL}, 2580, "tcp"},
+{"tributary", {NULL}, 2580, "udp"},
+{"argis-te", {NULL}, 2581, "tcp"},
+{"argis-te", {NULL}, 2581, "udp"},
+{"argis-ds", {NULL}, 2582, "tcp"},
+{"argis-ds", {NULL}, 2582, "udp"},
+{"mon", {NULL}, 2583, "tcp"},
+{"mon", {NULL}, 2583, "udp"},
+{"cyaserv", {NULL}, 2584, "tcp"},
+{"cyaserv", {NULL}, 2584, "udp"},
+{"netx-server", {NULL}, 2585, "tcp"},
+{"netx-server", {NULL}, 2585, "udp"},
+{"netx-agent", {NULL}, 2586, "tcp"},
+{"netx-agent", {NULL}, 2586, "udp"},
+{"masc", {NULL}, 2587, "tcp"},
+{"masc", {NULL}, 2587, "udp"},
+{"privilege", {NULL}, 2588, "tcp"},
+{"privilege", {NULL}, 2588, "udp"},
+{"quartus-tcl", {NULL}, 2589, "tcp"},
+{"quartus-tcl", {NULL}, 2589, "udp"},
+{"idotdist", {NULL}, 2590, "tcp"},
+{"idotdist", {NULL}, 2590, "udp"},
+{"maytagshuffle", {NULL}, 2591, "tcp"},
+{"maytagshuffle", {NULL}, 2591, "udp"},
+{"netrek", {NULL}, 2592, "tcp"},
+{"netrek", {NULL}, 2592, "udp"},
+{"mns-mail", {NULL}, 2593, "tcp"},
+{"mns-mail", {NULL}, 2593, "udp"},
+{"dts", {NULL}, 2594, "tcp"},
+{"dts", {NULL}, 2594, "udp"},
+{"worldfusion1", {NULL}, 2595, "tcp"},
+{"worldfusion1", {NULL}, 2595, "udp"},
+{"worldfusion2", {NULL}, 2596, "tcp"},
+{"worldfusion2", {NULL}, 2596, "udp"},
+{"homesteadglory", {NULL}, 2597, "tcp"},
+{"homesteadglory", {NULL}, 2597, "udp"},
+{"citriximaclient", {NULL}, 2598, "tcp"},
+{"citriximaclient", {NULL}, 2598, "udp"},
+{"snapd", {NULL}, 2599, "tcp"},
+{"snapd", {NULL}, 2599, "udp"},
+{"hpstgmgr", {NULL}, 2600, "tcp"},
+{"hpstgmgr", {NULL}, 2600, "udp"},
+{"discp-client", {NULL}, 2601, "tcp"},
+{"discp-client", {NULL}, 2601, "udp"},
+{"discp-server", {NULL}, 2602, "tcp"},
+{"discp-server", {NULL}, 2602, "udp"},
+{"servicemeter", {NULL}, 2603, "tcp"},
+{"servicemeter", {NULL}, 2603, "udp"},
+{"nsc-ccs", {NULL}, 2604, "tcp"},
+{"nsc-ccs", {NULL}, 2604, "udp"},
+{"nsc-posa", {NULL}, 2605, "tcp"},
+{"nsc-posa", {NULL}, 2605, "udp"},
+{"netmon", {NULL}, 2606, "tcp"},
+{"netmon", {NULL}, 2606, "udp"},
+{"connection", {NULL}, 2607, "tcp"},
+{"connection", {NULL}, 2607, "udp"},
+{"wag-service", {NULL}, 2608, "tcp"},
+{"wag-service", {NULL}, 2608, "udp"},
+{"system-monitor", {NULL}, 2609, "tcp"},
+{"system-monitor", {NULL}, 2609, "udp"},
+{"versa-tek", {NULL}, 2610, "tcp"},
+{"versa-tek", {NULL}, 2610, "udp"},
+{"lionhead", {NULL}, 2611, "tcp"},
+{"lionhead", {NULL}, 2611, "udp"},
+{"qpasa-agent", {NULL}, 2612, "tcp"},
+{"qpasa-agent", {NULL}, 2612, "udp"},
+{"smntubootstrap", {NULL}, 2613, "tcp"},
+{"smntubootstrap", {NULL}, 2613, "udp"},
+{"neveroffline", {NULL}, 2614, "tcp"},
+{"neveroffline", {NULL}, 2614, "udp"},
+{"firepower", {NULL}, 2615, "tcp"},
+{"firepower", {NULL}, 2615, "udp"},
+{"appswitch-emp", {NULL}, 2616, "tcp"},
+{"appswitch-emp", {NULL}, 2616, "udp"},
+{"cmadmin", {NULL}, 2617, "tcp"},
+{"cmadmin", {NULL}, 2617, "udp"},
+{"priority-e-com", {NULL}, 2618, "tcp"},
+{"priority-e-com", {NULL}, 2618, "udp"},
+{"bruce", {NULL}, 2619, "tcp"},
+{"bruce", {NULL}, 2619, "udp"},
+{"lpsrecommender", {NULL}, 2620, "tcp"},
+{"lpsrecommender", {NULL}, 2620, "udp"},
+{"miles-apart", {NULL}, 2621, "tcp"},
+{"miles-apart", {NULL}, 2621, "udp"},
+{"metricadbc", {NULL}, 2622, "tcp"},
+{"metricadbc", {NULL}, 2622, "udp"},
+{"lmdp", {NULL}, 2623, "tcp"},
+{"lmdp", {NULL}, 2623, "udp"},
+{"aria", {NULL}, 2624, "tcp"},
+{"aria", {NULL}, 2624, "udp"},
+{"blwnkl-port", {NULL}, 2625, "tcp"},
+{"blwnkl-port", {NULL}, 2625, "udp"},
+{"gbjd816", {NULL}, 2626, "tcp"},
+{"gbjd816", {NULL}, 2626, "udp"},
+{"moshebeeri", {NULL}, 2627, "tcp"},
+{"moshebeeri", {NULL}, 2627, "udp"},
+{"dict", {NULL}, 2628, "tcp"},
+{"dict", {NULL}, 2628, "udp"},
+{"sitaraserver", {NULL}, 2629, "tcp"},
+{"sitaraserver", {NULL}, 2629, "udp"},
+{"sitaramgmt", {NULL}, 2630, "tcp"},
+{"sitaramgmt", {NULL}, 2630, "udp"},
+{"sitaradir", {NULL}, 2631, "tcp"},
+{"sitaradir", {NULL}, 2631, "udp"},
+{"irdg-post", {NULL}, 2632, "tcp"},
+{"irdg-post", {NULL}, 2632, "udp"},
+{"interintelli", {NULL}, 2633, "tcp"},
+{"interintelli", {NULL}, 2633, "udp"},
+{"pk-electronics", {NULL}, 2634, "tcp"},
+{"pk-electronics", {NULL}, 2634, "udp"},
+{"backburner", {NULL}, 2635, "tcp"},
+{"backburner", {NULL}, 2635, "udp"},
+{"solve", {NULL}, 2636, "tcp"},
+{"solve", {NULL}, 2636, "udp"},
+{"imdocsvc", {NULL}, 2637, "tcp"},
+{"imdocsvc", {NULL}, 2637, "udp"},
+{"sybaseanywhere", {NULL}, 2638, "tcp"},
+{"sybaseanywhere", {NULL}, 2638, "udp"},
+{"aminet", {NULL}, 2639, "tcp"},
+{"aminet", {NULL}, 2639, "udp"},
+{"sai_sentlm", {NULL}, 2640, "tcp"},
+{"sai_sentlm", {NULL}, 2640, "udp"},
+{"hdl-srv", {NULL}, 2641, "tcp"},
+{"hdl-srv", {NULL}, 2641, "udp"},
+{"tragic", {NULL}, 2642, "tcp"},
+{"tragic", {NULL}, 2642, "udp"},
+{"gte-samp", {NULL}, 2643, "tcp"},
+{"gte-samp", {NULL}, 2643, "udp"},
+{"travsoft-ipx-t", {NULL}, 2644, "tcp"},
+{"travsoft-ipx-t", {NULL}, 2644, "udp"},
+{"novell-ipx-cmd", {NULL}, 2645, "tcp"},
+{"novell-ipx-cmd", {NULL}, 2645, "udp"},
+{"and-lm", {NULL}, 2646, "tcp"},
+{"and-lm", {NULL}, 2646, "udp"},
+{"syncserver", {NULL}, 2647, "tcp"},
+{"syncserver", {NULL}, 2647, "udp"},
+{"upsnotifyprot", {NULL}, 2648, "tcp"},
+{"upsnotifyprot", {NULL}, 2648, "udp"},
+{"vpsipport", {NULL}, 2649, "tcp"},
+{"vpsipport", {NULL}, 2649, "udp"},
+{"eristwoguns", {NULL}, 2650, "tcp"},
+{"eristwoguns", {NULL}, 2650, "udp"},
+{"ebinsite", {NULL}, 2651, "tcp"},
+{"ebinsite", {NULL}, 2651, "udp"},
+{"interpathpanel", {NULL}, 2652, "tcp"},
+{"interpathpanel", {NULL}, 2652, "udp"},
+{"sonus", {NULL}, 2653, "tcp"},
+{"sonus", {NULL}, 2653, "udp"},
+{"corel_vncadmin", {NULL}, 2654, "tcp"},
+{"corel_vncadmin", {NULL}, 2654, "udp"},
+{"unglue", {NULL}, 2655, "tcp"},
+{"unglue", {NULL}, 2655, "udp"},
+{"kana", {NULL}, 2656, "tcp"},
+{"kana", {NULL}, 2656, "udp"},
+{"sns-dispatcher", {NULL}, 2657, "tcp"},
+{"sns-dispatcher", {NULL}, 2657, "udp"},
+{"sns-admin", {NULL}, 2658, "tcp"},
+{"sns-admin", {NULL}, 2658, "udp"},
+{"sns-query", {NULL}, 2659, "tcp"},
+{"sns-query", {NULL}, 2659, "udp"},
+{"gcmonitor", {NULL}, 2660, "tcp"},
+{"gcmonitor", {NULL}, 2660, "udp"},
+{"olhost", {NULL}, 2661, "tcp"},
+{"olhost", {NULL}, 2661, "udp"},
+{"bintec-capi", {NULL}, 2662, "tcp"},
+{"bintec-capi", {NULL}, 2662, "udp"},
+{"bintec-tapi", {NULL}, 2663, "tcp"},
+{"bintec-tapi", {NULL}, 2663, "udp"},
+{"patrol-mq-gm", {NULL}, 2664, "tcp"},
+{"patrol-mq-gm", {NULL}, 2664, "udp"},
+{"patrol-mq-nm", {NULL}, 2665, "tcp"},
+{"patrol-mq-nm", {NULL}, 2665, "udp"},
+{"extensis", {NULL}, 2666, "tcp"},
+{"extensis", {NULL}, 2666, "udp"},
+{"alarm-clock-s", {NULL}, 2667, "tcp"},
+{"alarm-clock-s", {NULL}, 2667, "udp"},
+{"alarm-clock-c", {NULL}, 2668, "tcp"},
+{"alarm-clock-c", {NULL}, 2668, "udp"},
+{"toad", {NULL}, 2669, "tcp"},
+{"toad", {NULL}, 2669, "udp"},
+{"tve-announce", {NULL}, 2670, "tcp"},
+{"tve-announce", {NULL}, 2670, "udp"},
+{"newlixreg", {NULL}, 2671, "tcp"},
+{"newlixreg", {NULL}, 2671, "udp"},
+{"nhserver", {NULL}, 2672, "tcp"},
+{"nhserver", {NULL}, 2672, "udp"},
+{"firstcall42", {NULL}, 2673, "tcp"},
+{"firstcall42", {NULL}, 2673, "udp"},
+{"ewnn", {NULL}, 2674, "tcp"},
+{"ewnn", {NULL}, 2674, "udp"},
+{"ttc-etap", {NULL}, 2675, "tcp"},
+{"ttc-etap", {NULL}, 2675, "udp"},
+{"simslink", {NULL}, 2676, "tcp"},
+{"simslink", {NULL}, 2676, "udp"},
+{"gadgetgate1way", {NULL}, 2677, "tcp"},
+{"gadgetgate1way", {NULL}, 2677, "udp"},
+{"gadgetgate2way", {NULL}, 2678, "tcp"},
+{"gadgetgate2way", {NULL}, 2678, "udp"},
+{"syncserverssl", {NULL}, 2679, "tcp"},
+{"syncserverssl", {NULL}, 2679, "udp"},
+{"pxc-sapxom", {NULL}, 2680, "tcp"},
+{"pxc-sapxom", {NULL}, 2680, "udp"},
+{"mpnjsomb", {NULL}, 2681, "tcp"},
+{"mpnjsomb", {NULL}, 2681, "udp"},
+{"ncdloadbalance", {NULL}, 2683, "tcp"},
+{"ncdloadbalance", {NULL}, 2683, "udp"},
+{"mpnjsosv", {NULL}, 2684, "tcp"},
+{"mpnjsosv", {NULL}, 2684, "udp"},
+{"mpnjsocl", {NULL}, 2685, "tcp"},
+{"mpnjsocl", {NULL}, 2685, "udp"},
+{"mpnjsomg", {NULL}, 2686, "tcp"},
+{"mpnjsomg", {NULL}, 2686, "udp"},
+{"pq-lic-mgmt", {NULL}, 2687, "tcp"},
+{"pq-lic-mgmt", {NULL}, 2687, "udp"},
+{"md-cg-http", {NULL}, 2688, "tcp"},
+{"md-cg-http", {NULL}, 2688, "udp"},
+{"fastlynx", {NULL}, 2689, "tcp"},
+{"fastlynx", {NULL}, 2689, "udp"},
+{"hp-nnm-data", {NULL}, 2690, "tcp"},
+{"hp-nnm-data", {NULL}, 2690, "udp"},
+{"itinternet", {NULL}, 2691, "tcp"},
+{"itinternet", {NULL}, 2691, "udp"},
+{"admins-lms", {NULL}, 2692, "tcp"},
+{"admins-lms", {NULL}, 2692, "udp"},
+{"pwrsevent", {NULL}, 2694, "tcp"},
+{"pwrsevent", {NULL}, 2694, "udp"},
+{"vspread", {NULL}, 2695, "tcp"},
+{"vspread", {NULL}, 2695, "udp"},
+{"unifyadmin", {NULL}, 2696, "tcp"},
+{"unifyadmin", {NULL}, 2696, "udp"},
+{"oce-snmp-trap", {NULL}, 2697, "tcp"},
+{"oce-snmp-trap", {NULL}, 2697, "udp"},
+{"mck-ivpip", {NULL}, 2698, "tcp"},
+{"mck-ivpip", {NULL}, 2698, "udp"},
+{"csoft-plusclnt", {NULL}, 2699, "tcp"},
+{"csoft-plusclnt", {NULL}, 2699, "udp"},
+{"tqdata", {NULL}, 2700, "tcp"},
+{"tqdata", {NULL}, 2700, "udp"},
+{"sms-rcinfo", {NULL}, 2701, "tcp"},
+{"sms-rcinfo", {NULL}, 2701, "udp"},
+{"sms-xfer", {NULL}, 2702, "tcp"},
+{"sms-xfer", {NULL}, 2702, "udp"},
+{"sms-chat", {NULL}, 2703, "tcp"},
+{"sms-chat", {NULL}, 2703, "udp"},
+{"sms-remctrl", {NULL}, 2704, "tcp"},
+{"sms-remctrl", {NULL}, 2704, "udp"},
+{"sds-admin", {NULL}, 2705, "tcp"},
+{"sds-admin", {NULL}, 2705, "udp"},
+{"ncdmirroring", {NULL}, 2706, "tcp"},
+{"ncdmirroring", {NULL}, 2706, "udp"},
+{"emcsymapiport", {NULL}, 2707, "tcp"},
+{"emcsymapiport", {NULL}, 2707, "udp"},
+{"banyan-net", {NULL}, 2708, "tcp"},
+{"banyan-net", {NULL}, 2708, "udp"},
+{"supermon", {NULL}, 2709, "tcp"},
+{"supermon", {NULL}, 2709, "udp"},
+{"sso-service", {NULL}, 2710, "tcp"},
+{"sso-service", {NULL}, 2710, "udp"},
+{"sso-control", {NULL}, 2711, "tcp"},
+{"sso-control", {NULL}, 2711, "udp"},
+{"aocp", {NULL}, 2712, "tcp"},
+{"aocp", {NULL}, 2712, "udp"},
+{"raventbs", {NULL}, 2713, "tcp"},
+{"raventbs", {NULL}, 2713, "udp"},
+{"raventdm", {NULL}, 2714, "tcp"},
+{"raventdm", {NULL}, 2714, "udp"},
+{"hpstgmgr2", {NULL}, 2715, "tcp"},
+{"hpstgmgr2", {NULL}, 2715, "udp"},
+{"inova-ip-disco", {NULL}, 2716, "tcp"},
+{"inova-ip-disco", {NULL}, 2716, "udp"},
+{"pn-requester", {NULL}, 2717, "tcp"},
+{"pn-requester", {NULL}, 2717, "udp"},
+{"pn-requester2", {NULL}, 2718, "tcp"},
+{"pn-requester2", {NULL}, 2718, "udp"},
+{"scan-change", {NULL}, 2719, "tcp"},
+{"scan-change", {NULL}, 2719, "udp"},
+{"wkars", {NULL}, 2720, "tcp"},
+{"wkars", {NULL}, 2720, "udp"},
+{"smart-diagnose", {NULL}, 2721, "tcp"},
+{"smart-diagnose", {NULL}, 2721, "udp"},
+{"proactivesrvr", {NULL}, 2722, "tcp"},
+{"proactivesrvr", {NULL}, 2722, "udp"},
+{"watchdog-nt", {NULL}, 2723, "tcp"},
+{"watchdog-nt", {NULL}, 2723, "udp"},
+{"qotps", {NULL}, 2724, "tcp"},
+{"qotps", {NULL}, 2724, "udp"},
+{"msolap-ptp2", {NULL}, 2725, "tcp"},
+{"msolap-ptp2", {NULL}, 2725, "udp"},
+{"tams", {NULL}, 2726, "tcp"},
+{"tams", {NULL}, 2726, "udp"},
+{"mgcp-callagent", {NULL}, 2727, "tcp"},
+{"mgcp-callagent", {NULL}, 2727, "udp"},
+{"sqdr", {NULL}, 2728, "tcp"},
+{"sqdr", {NULL}, 2728, "udp"},
+{"tcim-control", {NULL}, 2729, "tcp"},
+{"tcim-control", {NULL}, 2729, "udp"},
+{"nec-raidplus", {NULL}, 2730, "tcp"},
+{"nec-raidplus", {NULL}, 2730, "udp"},
+{"fyre-messanger", {NULL}, 2731, "tcp"},
+{"fyre-messanger", {NULL}, 2731, "udp"},
+{"g5m", {NULL}, 2732, "tcp"},
+{"g5m", {NULL}, 2732, "udp"},
+{"signet-ctf", {NULL}, 2733, "tcp"},
+{"signet-ctf", {NULL}, 2733, "udp"},
+{"ccs-software", {NULL}, 2734, "tcp"},
+{"ccs-software", {NULL}, 2734, "udp"},
+{"netiq-mc", {NULL}, 2735, "tcp"},
+{"netiq-mc", {NULL}, 2735, "udp"},
+{"radwiz-nms-srv", {NULL}, 2736, "tcp"},
+{"radwiz-nms-srv", {NULL}, 2736, "udp"},
+{"srp-feedback", {NULL}, 2737, "tcp"},
+{"srp-feedback", {NULL}, 2737, "udp"},
+{"ndl-tcp-ois-gw", {NULL}, 2738, "tcp"},
+{"ndl-tcp-ois-gw", {NULL}, 2738, "udp"},
+{"tn-timing", {NULL}, 2739, "tcp"},
+{"tn-timing", {NULL}, 2739, "udp"},
+{"alarm", {NULL}, 2740, "tcp"},
+{"alarm", {NULL}, 2740, "udp"},
+{"tsb", {NULL}, 2741, "tcp"},
+{"tsb", {NULL}, 2741, "udp"},
+{"tsb2", {NULL}, 2742, "tcp"},
+{"tsb2", {NULL}, 2742, "udp"},
+{"murx", {NULL}, 2743, "tcp"},
+{"murx", {NULL}, 2743, "udp"},
+{"honyaku", {NULL}, 2744, "tcp"},
+{"honyaku", {NULL}, 2744, "udp"},
+{"urbisnet", {NULL}, 2745, "tcp"},
+{"urbisnet", {NULL}, 2745, "udp"},
+{"cpudpencap", {NULL}, 2746, "tcp"},
+{"cpudpencap", {NULL}, 2746, "udp"},
+{"fjippol-swrly", {NULL}, 2747, "tcp"},
+{"fjippol-swrly", {NULL}, 2747, "udp"},
+{"fjippol-polsvr", {NULL}, 2748, "tcp"},
+{"fjippol-polsvr", {NULL}, 2748, "udp"},
+{"fjippol-cnsl", {NULL}, 2749, "tcp"},
+{"fjippol-cnsl", {NULL}, 2749, "udp"},
+{"fjippol-port1", {NULL}, 2750, "tcp"},
+{"fjippol-port1", {NULL}, 2750, "udp"},
+{"fjippol-port2", {NULL}, 2751, "tcp"},
+{"fjippol-port2", {NULL}, 2751, "udp"},
+{"rsisysaccess", {NULL}, 2752, "tcp"},
+{"rsisysaccess", {NULL}, 2752, "udp"},
+{"de-spot", {NULL}, 2753, "tcp"},
+{"de-spot", {NULL}, 2753, "udp"},
+{"apollo-cc", {NULL}, 2754, "tcp"},
+{"apollo-cc", {NULL}, 2754, "udp"},
+{"expresspay", {NULL}, 2755, "tcp"},
+{"expresspay", {NULL}, 2755, "udp"},
+{"simplement-tie", {NULL}, 2756, "tcp"},
+{"simplement-tie", {NULL}, 2756, "udp"},
+{"cnrp", {NULL}, 2757, "tcp"},
+{"cnrp", {NULL}, 2757, "udp"},
+{"apollo-status", {NULL}, 2758, "tcp"},
+{"apollo-status", {NULL}, 2758, "udp"},
+{"apollo-gms", {NULL}, 2759, "tcp"},
+{"apollo-gms", {NULL}, 2759, "udp"},
+{"sabams", {NULL}, 2760, "tcp"},
+{"sabams", {NULL}, 2760, "udp"},
+{"dicom-iscl", {NULL}, 2761, "tcp"},
+{"dicom-iscl", {NULL}, 2761, "udp"},
+{"dicom-tls", {NULL}, 2762, "tcp"},
+{"dicom-tls", {NULL}, 2762, "udp"},
+{"desktop-dna", {NULL}, 2763, "tcp"},
+{"desktop-dna", {NULL}, 2763, "udp"},
+{"data-insurance", {NULL}, 2764, "tcp"},
+{"data-insurance", {NULL}, 2764, "udp"},
+{"qip-audup", {NULL}, 2765, "tcp"},
+{"qip-audup", {NULL}, 2765, "udp"},
+{"compaq-scp", {NULL}, 2766, "tcp"},
+{"compaq-scp", {NULL}, 2766, "udp"},
+{"uadtc", {NULL}, 2767, "tcp"},
+{"uadtc", {NULL}, 2767, "udp"},
+{"uacs", {NULL}, 2768, "tcp"},
+{"uacs", {NULL}, 2768, "udp"},
+{"exce", {NULL}, 2769, "tcp"},
+{"exce", {NULL}, 2769, "udp"},
+{"veronica", {NULL}, 2770, "tcp"},
+{"veronica", {NULL}, 2770, "udp"},
+{"vergencecm", {NULL}, 2771, "tcp"},
+{"vergencecm", {NULL}, 2771, "udp"},
+{"auris", {NULL}, 2772, "tcp"},
+{"auris", {NULL}, 2772, "udp"},
+{"rbakcup1", {NULL}, 2773, "tcp"},
+{"rbakcup1", {NULL}, 2773, "udp"},
+{"rbakcup2", {NULL}, 2774, "tcp"},
+{"rbakcup2", {NULL}, 2774, "udp"},
+{"smpp", {NULL}, 2775, "tcp"},
+{"smpp", {NULL}, 2775, "udp"},
+{"ridgeway1", {NULL}, 2776, "tcp"},
+{"ridgeway1", {NULL}, 2776, "udp"},
+{"ridgeway2", {NULL}, 2777, "tcp"},
+{"ridgeway2", {NULL}, 2777, "udp"},
+{"gwen-sonya", {NULL}, 2778, "tcp"},
+{"gwen-sonya", {NULL}, 2778, "udp"},
+{"lbc-sync", {NULL}, 2779, "tcp"},
+{"lbc-sync", {NULL}, 2779, "udp"},
+{"lbc-control", {NULL}, 2780, "tcp"},
+{"lbc-control", {NULL}, 2780, "udp"},
+{"whosells", {NULL}, 2781, "tcp"},
+{"whosells", {NULL}, 2781, "udp"},
+{"everydayrc", {NULL}, 2782, "tcp"},
+{"everydayrc", {NULL}, 2782, "udp"},
+{"aises", {NULL}, 2783, "tcp"},
+{"aises", {NULL}, 2783, "udp"},
+{"www-dev", {NULL}, 2784, "tcp"},
+{"www-dev", {NULL}, 2784, "udp"},
+{"aic-np", {NULL}, 2785, "tcp"},
+{"aic-np", {NULL}, 2785, "udp"},
+{"aic-oncrpc", {NULL}, 2786, "tcp"},
+{"aic-oncrpc", {NULL}, 2786, "udp"},
+{"piccolo", {NULL}, 2787, "tcp"},
+{"piccolo", {NULL}, 2787, "udp"},
+{"fryeserv", {NULL}, 2788, "tcp"},
+{"fryeserv", {NULL}, 2788, "udp"},
+{"media-agent", {NULL}, 2789, "tcp"},
+{"media-agent", {NULL}, 2789, "udp"},
+{"plgproxy", {NULL}, 2790, "tcp"},
+{"plgproxy", {NULL}, 2790, "udp"},
+{"mtport-regist", {NULL}, 2791, "tcp"},
+{"mtport-regist", {NULL}, 2791, "udp"},
+{"f5-globalsite", {NULL}, 2792, "tcp"},
+{"f5-globalsite", {NULL}, 2792, "udp"},
+{"initlsmsad", {NULL}, 2793, "tcp"},
+{"initlsmsad", {NULL}, 2793, "udp"},
+{"livestats", {NULL}, 2795, "tcp"},
+{"livestats", {NULL}, 2795, "udp"},
+{"ac-tech", {NULL}, 2796, "tcp"},
+{"ac-tech", {NULL}, 2796, "udp"},
+{"esp-encap", {NULL}, 2797, "tcp"},
+{"esp-encap", {NULL}, 2797, "udp"},
+{"tmesis-upshot", {NULL}, 2798, "tcp"},
+{"tmesis-upshot", {NULL}, 2798, "udp"},
+{"icon-discover", {NULL}, 2799, "tcp"},
+{"icon-discover", {NULL}, 2799, "udp"},
+{"acc-raid", {NULL}, 2800, "tcp"},
+{"acc-raid", {NULL}, 2800, "udp"},
+{"igcp", {NULL}, 2801, "tcp"},
+{"igcp", {NULL}, 2801, "udp"},
+{"veritas-tcp1", {NULL}, 2802, "tcp"},
+{"veritas-udp1", {NULL}, 2802, "udp"},
+{"btprjctrl", {NULL}, 2803, "tcp"},
+{"btprjctrl", {NULL}, 2803, "udp"},
+{"dvr-esm", {NULL}, 2804, "tcp"},
+{"dvr-esm", {NULL}, 2804, "udp"},
+{"wta-wsp-s", {NULL}, 2805, "tcp"},
+{"wta-wsp-s", {NULL}, 2805, "udp"},
+{"cspuni", {NULL}, 2806, "tcp"},
+{"cspuni", {NULL}, 2806, "udp"},
+{"cspmulti", {NULL}, 2807, "tcp"},
+{"cspmulti", {NULL}, 2807, "udp"},
+{"j-lan-p", {NULL}, 2808, "tcp"},
+{"j-lan-p", {NULL}, 2808, "udp"},
+{"corbaloc", {NULL}, 2809, "tcp"},
+{"corbaloc", {NULL}, 2809, "udp"},
+{"netsteward", {NULL}, 2810, "tcp"},
+{"netsteward", {NULL}, 2810, "udp"},
+{"gsiftp", {NULL}, 2811, "tcp"},
+{"gsiftp", {NULL}, 2811, "udp"},
+{"atmtcp", {NULL}, 2812, "tcp"},
+{"atmtcp", {NULL}, 2812, "udp"},
+{"llm-pass", {NULL}, 2813, "tcp"},
+{"llm-pass", {NULL}, 2813, "udp"},
+{"llm-csv", {NULL}, 2814, "tcp"},
+{"llm-csv", {NULL}, 2814, "udp"},
+{"lbc-measure", {NULL}, 2815, "tcp"},
+{"lbc-measure", {NULL}, 2815, "udp"},
+{"lbc-watchdog", {NULL}, 2816, "tcp"},
+{"lbc-watchdog", {NULL}, 2816, "udp"},
+{"nmsigport", {NULL}, 2817, "tcp"},
+{"nmsigport", {NULL}, 2817, "udp"},
+{"rmlnk", {NULL}, 2818, "tcp"},
+{"rmlnk", {NULL}, 2818, "udp"},
+{"fc-faultnotify", {NULL}, 2819, "tcp"},
+{"fc-faultnotify", {NULL}, 2819, "udp"},
+{"univision", {NULL}, 2820, "tcp"},
+{"univision", {NULL}, 2820, "udp"},
+{"vrts-at-port", {NULL}, 2821, "tcp"},
+{"vrts-at-port", {NULL}, 2821, "udp"},
+{"ka0wuc", {NULL}, 2822, "tcp"},
+{"ka0wuc", {NULL}, 2822, "udp"},
+{"cqg-netlan", {NULL}, 2823, "tcp"},
+{"cqg-netlan", {NULL}, 2823, "udp"},
+{"cqg-netlan-1", {NULL}, 2824, "tcp"},
+{"cqg-netlan-1", {NULL}, 2824, "udp"},
+{"slc-systemlog", {NULL}, 2826, "tcp"},
+{"slc-systemlog", {NULL}, 2826, "udp"},
+{"slc-ctrlrloops", {NULL}, 2827, "tcp"},
+{"slc-ctrlrloops", {NULL}, 2827, "udp"},
+{"itm-lm", {NULL}, 2828, "tcp"},
+{"itm-lm", {NULL}, 2828, "udp"},
+{"silkp1", {NULL}, 2829, "tcp"},
+{"silkp1", {NULL}, 2829, "udp"},
+{"silkp2", {NULL}, 2830, "tcp"},
+{"silkp2", {NULL}, 2830, "udp"},
+{"silkp3", {NULL}, 2831, "tcp"},
+{"silkp3", {NULL}, 2831, "udp"},
+{"silkp4", {NULL}, 2832, "tcp"},
+{"silkp4", {NULL}, 2832, "udp"},
+{"glishd", {NULL}, 2833, "tcp"},
+{"glishd", {NULL}, 2833, "udp"},
+{"evtp", {NULL}, 2834, "tcp"},
+{"evtp", {NULL}, 2834, "udp"},
+{"evtp-data", {NULL}, 2835, "tcp"},
+{"evtp-data", {NULL}, 2835, "udp"},
+{"catalyst", {NULL}, 2836, "tcp"},
+{"catalyst", {NULL}, 2836, "udp"},
+{"repliweb", {NULL}, 2837, "tcp"},
+{"repliweb", {NULL}, 2837, "udp"},
+{"starbot", {NULL}, 2838, "tcp"},
+{"starbot", {NULL}, 2838, "udp"},
+{"nmsigport", {NULL}, 2839, "tcp"},
+{"nmsigport", {NULL}, 2839, "udp"},
+{"l3-exprt", {NULL}, 2840, "tcp"},
+{"l3-exprt", {NULL}, 2840, "udp"},
+{"l3-ranger", {NULL}, 2841, "tcp"},
+{"l3-ranger", {NULL}, 2841, "udp"},
+{"l3-hawk", {NULL}, 2842, "tcp"},
+{"l3-hawk", {NULL}, 2842, "udp"},
+{"pdnet", {NULL}, 2843, "tcp"},
+{"pdnet", {NULL}, 2843, "udp"},
+{"bpcp-poll", {NULL}, 2844, "tcp"},
+{"bpcp-poll", {NULL}, 2844, "udp"},
+{"bpcp-trap", {NULL}, 2845, "tcp"},
+{"bpcp-trap", {NULL}, 2845, "udp"},
+{"aimpp-hello", {NULL}, 2846, "tcp"},
+{"aimpp-hello", {NULL}, 2846, "udp"},
+{"aimpp-port-req", {NULL}, 2847, "tcp"},
+{"aimpp-port-req", {NULL}, 2847, "udp"},
+{"amt-blc-port", {NULL}, 2848, "tcp"},
+{"amt-blc-port", {NULL}, 2848, "udp"},
+{"fxp", {NULL}, 2849, "tcp"},
+{"fxp", {NULL}, 2849, "udp"},
+{"metaconsole", {NULL}, 2850, "tcp"},
+{"metaconsole", {NULL}, 2850, "udp"},
+{"webemshttp", {NULL}, 2851, "tcp"},
+{"webemshttp", {NULL}, 2851, "udp"},
+{"bears-01", {NULL}, 2852, "tcp"},
+{"bears-01", {NULL}, 2852, "udp"},
+{"ispipes", {NULL}, 2853, "tcp"},
+{"ispipes", {NULL}, 2853, "udp"},
+{"infomover", {NULL}, 2854, "tcp"},
+{"infomover", {NULL}, 2854, "udp"},
+{"msrp", {NULL}, 2855, "tcp"},
+{"msrp", {NULL}, 2855, "udp"},
+{"cesdinv", {NULL}, 2856, "tcp"},
+{"cesdinv", {NULL}, 2856, "udp"},
+{"simctlp", {NULL}, 2857, "tcp"},
+{"simctlp", {NULL}, 2857, "udp"},
+{"ecnp", {NULL}, 2858, "tcp"},
+{"ecnp", {NULL}, 2858, "udp"},
+{"activememory", {NULL}, 2859, "tcp"},
+{"activememory", {NULL}, 2859, "udp"},
+{"dialpad-voice1", {NULL}, 2860, "tcp"},
+{"dialpad-voice1", {NULL}, 2860, "udp"},
+{"dialpad-voice2", {NULL}, 2861, "tcp"},
+{"dialpad-voice2", {NULL}, 2861, "udp"},
+{"ttg-protocol", {NULL}, 2862, "tcp"},
+{"ttg-protocol", {NULL}, 2862, "udp"},
+{"sonardata", {NULL}, 2863, "tcp"},
+{"sonardata", {NULL}, 2863, "udp"},
+{"astromed-main", {NULL}, 2864, "tcp"},
+{"astromed-main", {NULL}, 2864, "udp"},
+{"pit-vpn", {NULL}, 2865, "tcp"},
+{"pit-vpn", {NULL}, 2865, "udp"},
+{"iwlistener", {NULL}, 2866, "tcp"},
+{"iwlistener", {NULL}, 2866, "udp"},
+{"esps-portal", {NULL}, 2867, "tcp"},
+{"esps-portal", {NULL}, 2867, "udp"},
+{"npep-messaging", {NULL}, 2868, "tcp"},
+{"npep-messaging", {NULL}, 2868, "udp"},
+{"icslap", {NULL}, 2869, "tcp"},
+{"icslap", {NULL}, 2869, "udp"},
+{"daishi", {NULL}, 2870, "tcp"},
+{"daishi", {NULL}, 2870, "udp"},
+{"msi-selectplay", {NULL}, 2871, "tcp"},
+{"msi-selectplay", {NULL}, 2871, "udp"},
+{"radix", {NULL}, 2872, "tcp"},
+{"radix", {NULL}, 2872, "udp"},
+{"dxmessagebase1", {NULL}, 2874, "tcp"},
+{"dxmessagebase1", {NULL}, 2874, "udp"},
+{"dxmessagebase2", {NULL}, 2875, "tcp"},
+{"dxmessagebase2", {NULL}, 2875, "udp"},
+{"sps-tunnel", {NULL}, 2876, "tcp"},
+{"sps-tunnel", {NULL}, 2876, "udp"},
+{"bluelance", {NULL}, 2877, "tcp"},
+{"bluelance", {NULL}, 2877, "udp"},
+{"aap", {NULL}, 2878, "tcp"},
+{"aap", {NULL}, 2878, "udp"},
+{"ucentric-ds", {NULL}, 2879, "tcp"},
+{"ucentric-ds", {NULL}, 2879, "udp"},
+{"synapse", {NULL}, 2880, "tcp"},
+{"synapse", {NULL}, 2880, "udp"},
+{"ndsp", {NULL}, 2881, "tcp"},
+{"ndsp", {NULL}, 2881, "udp"},
+{"ndtp", {NULL}, 2882, "tcp"},
+{"ndtp", {NULL}, 2882, "udp"},
+{"ndnp", {NULL}, 2883, "tcp"},
+{"ndnp", {NULL}, 2883, "udp"},
+{"flashmsg", {NULL}, 2884, "tcp"},
+{"flashmsg", {NULL}, 2884, "udp"},
+{"topflow", {NULL}, 2885, "tcp"},
+{"topflow", {NULL}, 2885, "udp"},
+{"responselogic", {NULL}, 2886, "tcp"},
+{"responselogic", {NULL}, 2886, "udp"},
+{"aironetddp", {NULL}, 2887, "tcp"},
+{"aironetddp", {NULL}, 2887, "udp"},
+{"spcsdlobby", {NULL}, 2888, "tcp"},
+{"spcsdlobby", {NULL}, 2888, "udp"},
+{"rsom", {NULL}, 2889, "tcp"},
+{"rsom", {NULL}, 2889, "udp"},
+{"cspclmulti", {NULL}, 2890, "tcp"},
+{"cspclmulti", {NULL}, 2890, "udp"},
+{"cinegrfx-elmd", {NULL}, 2891, "tcp"},
+{"cinegrfx-elmd", {NULL}, 2891, "udp"},
+{"snifferdata", {NULL}, 2892, "tcp"},
+{"snifferdata", {NULL}, 2892, "udp"},
+{"vseconnector", {NULL}, 2893, "tcp"},
+{"vseconnector", {NULL}, 2893, "udp"},
+{"abacus-remote", {NULL}, 2894, "tcp"},
+{"abacus-remote", {NULL}, 2894, "udp"},
+{"natuslink", {NULL}, 2895, "tcp"},
+{"natuslink", {NULL}, 2895, "udp"},
+{"ecovisiong6-1", {NULL}, 2896, "tcp"},
+{"ecovisiong6-1", {NULL}, 2896, "udp"},
+{"citrix-rtmp", {NULL}, 2897, "tcp"},
+{"citrix-rtmp", {NULL}, 2897, "udp"},
+{"appliance-cfg", {NULL}, 2898, "tcp"},
+{"appliance-cfg", {NULL}, 2898, "udp"},
+{"powergemplus", {NULL}, 2899, "tcp"},
+{"powergemplus", {NULL}, 2899, "udp"},
+{"quicksuite", {NULL}, 2900, "tcp"},
+{"quicksuite", {NULL}, 2900, "udp"},
+{"allstorcns", {NULL}, 2901, "tcp"},
+{"allstorcns", {NULL}, 2901, "udp"},
+{"netaspi", {NULL}, 2902, "tcp"},
+{"netaspi", {NULL}, 2902, "udp"},
+{"suitcase", {NULL}, 2903, "tcp"},
+{"suitcase", {NULL}, 2903, "udp"},
+{"m2ua", {NULL}, 2904, "tcp"},
+{"m2ua", {NULL}, 2904, "udp"},
+{"m2ua", {NULL}, 2904, "sctp"},
+{"m3ua", {NULL}, 2905, "tcp"},
+{"m3ua", {NULL}, 2905, "sctp"},
+{"caller9", {NULL}, 2906, "tcp"},
+{"caller9", {NULL}, 2906, "udp"},
+{"webmethods-b2b", {NULL}, 2907, "tcp"},
+{"webmethods-b2b", {NULL}, 2907, "udp"},
+{"mao", {NULL}, 2908, "tcp"},
+{"mao", {NULL}, 2908, "udp"},
+{"funk-dialout", {NULL}, 2909, "tcp"},
+{"funk-dialout", {NULL}, 2909, "udp"},
+{"tdaccess", {NULL}, 2910, "tcp"},
+{"tdaccess", {NULL}, 2910, "udp"},
+{"blockade", {NULL}, 2911, "tcp"},
+{"blockade", {NULL}, 2911, "udp"},
+{"epicon", {NULL}, 2912, "tcp"},
+{"epicon", {NULL}, 2912, "udp"},
+{"boosterware", {NULL}, 2913, "tcp"},
+{"boosterware", {NULL}, 2913, "udp"},
+{"gamelobby", {NULL}, 2914, "tcp"},
+{"gamelobby", {NULL}, 2914, "udp"},
+{"tksocket", {NULL}, 2915, "tcp"},
+{"tksocket", {NULL}, 2915, "udp"},
+{"elvin_server", {NULL}, 2916, "tcp"},
+{"elvin_server", {NULL}, 2916, "udp"},
+{"elvin_client", {NULL}, 2917, "tcp"},
+{"elvin_client", {NULL}, 2917, "udp"},
+{"kastenchasepad", {NULL}, 2918, "tcp"},
+{"kastenchasepad", {NULL}, 2918, "udp"},
+{"roboer", {NULL}, 2919, "tcp"},
+{"roboer", {NULL}, 2919, "udp"},
+{"roboeda", {NULL}, 2920, "tcp"},
+{"roboeda", {NULL}, 2920, "udp"},
+{"cesdcdman", {NULL}, 2921, "tcp"},
+{"cesdcdman", {NULL}, 2921, "udp"},
+{"cesdcdtrn", {NULL}, 2922, "tcp"},
+{"cesdcdtrn", {NULL}, 2922, "udp"},
+{"wta-wsp-wtp-s", {NULL}, 2923, "tcp"},
+{"wta-wsp-wtp-s", {NULL}, 2923, "udp"},
+{"precise-vip", {NULL}, 2924, "tcp"},
+{"precise-vip", {NULL}, 2924, "udp"},
+{"mobile-file-dl", {NULL}, 2926, "tcp"},
+{"mobile-file-dl", {NULL}, 2926, "udp"},
+{"unimobilectrl", {NULL}, 2927, "tcp"},
+{"unimobilectrl", {NULL}, 2927, "udp"},
+{"redstone-cpss", {NULL}, 2928, "tcp"},
+{"redstone-cpss", {NULL}, 2928, "udp"},
+{"amx-webadmin", {NULL}, 2929, "tcp"},
+{"amx-webadmin", {NULL}, 2929, "udp"},
+{"amx-weblinx", {NULL}, 2930, "tcp"},
+{"amx-weblinx", {NULL}, 2930, "udp"},
+{"circle-x", {NULL}, 2931, "tcp"},
+{"circle-x", {NULL}, 2931, "udp"},
+{"incp", {NULL}, 2932, "tcp"},
+{"incp", {NULL}, 2932, "udp"},
+{"4-tieropmgw", {NULL}, 2933, "tcp"},
+{"4-tieropmgw", {NULL}, 2933, "udp"},
+{"4-tieropmcli", {NULL}, 2934, "tcp"},
+{"4-tieropmcli", {NULL}, 2934, "udp"},
+{"qtp", {NULL}, 2935, "tcp"},
+{"qtp", {NULL}, 2935, "udp"},
+{"otpatch", {NULL}, 2936, "tcp"},
+{"otpatch", {NULL}, 2936, "udp"},
+{"pnaconsult-lm", {NULL}, 2937, "tcp"},
+{"pnaconsult-lm", {NULL}, 2937, "udp"},
+{"sm-pas-1", {NULL}, 2938, "tcp"},
+{"sm-pas-1", {NULL}, 2938, "udp"},
+{"sm-pas-2", {NULL}, 2939, "tcp"},
+{"sm-pas-2", {NULL}, 2939, "udp"},
+{"sm-pas-3", {NULL}, 2940, "tcp"},
+{"sm-pas-3", {NULL}, 2940, "udp"},
+{"sm-pas-4", {NULL}, 2941, "tcp"},
+{"sm-pas-4", {NULL}, 2941, "udp"},
+{"sm-pas-5", {NULL}, 2942, "tcp"},
+{"sm-pas-5", {NULL}, 2942, "udp"},
+{"ttnrepository", {NULL}, 2943, "tcp"},
+{"ttnrepository", {NULL}, 2943, "udp"},
+{"megaco-h248", {NULL}, 2944, "tcp"},
+{"megaco-h248", {NULL}, 2944, "udp"},
+{"megaco-h248", {NULL}, 2944, "sctp"},
+{"h248-binary", {NULL}, 2945, "tcp"},
+{"h248-binary", {NULL}, 2945, "udp"},
+{"h248-binary", {NULL}, 2945, "sctp"},
+{"fjsvmpor", {NULL}, 2946, "tcp"},
+{"fjsvmpor", {NULL}, 2946, "udp"},
+{"gpsd", {NULL}, 2947, "tcp"},
+{"gpsd", {NULL}, 2947, "udp"},
+{"wap-push", {NULL}, 2948, "tcp"},
+{"wap-push", {NULL}, 2948, "udp"},
+{"wap-pushsecure", {NULL}, 2949, "tcp"},
+{"wap-pushsecure", {NULL}, 2949, "udp"},
+{"esip", {NULL}, 2950, "tcp"},
+{"esip", {NULL}, 2950, "udp"},
+{"ottp", {NULL}, 2951, "tcp"},
+{"ottp", {NULL}, 2951, "udp"},
+{"mpfwsas", {NULL}, 2952, "tcp"},
+{"mpfwsas", {NULL}, 2952, "udp"},
+{"ovalarmsrv", {NULL}, 2953, "tcp"},
+{"ovalarmsrv", {NULL}, 2953, "udp"},
+{"ovalarmsrv-cmd", {NULL}, 2954, "tcp"},
+{"ovalarmsrv-cmd", {NULL}, 2954, "udp"},
+{"csnotify", {NULL}, 2955, "tcp"},
+{"csnotify", {NULL}, 2955, "udp"},
+{"ovrimosdbman", {NULL}, 2956, "tcp"},
+{"ovrimosdbman", {NULL}, 2956, "udp"},
+{"jmact5", {NULL}, 2957, "tcp"},
+{"jmact5", {NULL}, 2957, "udp"},
+{"jmact6", {NULL}, 2958, "tcp"},
+{"jmact6", {NULL}, 2958, "udp"},
+{"rmopagt", {NULL}, 2959, "tcp"},
+{"rmopagt", {NULL}, 2959, "udp"},
+{"dfoxserver", {NULL}, 2960, "tcp"},
+{"dfoxserver", {NULL}, 2960, "udp"},
+{"boldsoft-lm", {NULL}, 2961, "tcp"},
+{"boldsoft-lm", {NULL}, 2961, "udp"},
+{"iph-policy-cli", {NULL}, 2962, "tcp"},
+{"iph-policy-cli", {NULL}, 2962, "udp"},
+{"iph-policy-adm", {NULL}, 2963, "tcp"},
+{"iph-policy-adm", {NULL}, 2963, "udp"},
+{"bullant-srap", {NULL}, 2964, "tcp"},
+{"bullant-srap", {NULL}, 2964, "udp"},
+{"bullant-rap", {NULL}, 2965, "tcp"},
+{"bullant-rap", {NULL}, 2965, "udp"},
+{"idp-infotrieve", {NULL}, 2966, "tcp"},
+{"idp-infotrieve", {NULL}, 2966, "udp"},
+{"ssc-agent", {NULL}, 2967, "tcp"},
+{"ssc-agent", {NULL}, 2967, "udp"},
+{"enpp", {NULL}, 2968, "tcp"},
+{"enpp", {NULL}, 2968, "udp"},
+{"essp", {NULL}, 2969, "tcp"},
+{"essp", {NULL}, 2969, "udp"},
+{"index-net", {NULL}, 2970, "tcp"},
+{"index-net", {NULL}, 2970, "udp"},
+{"netclip", {NULL}, 2971, "tcp"},
+{"netclip", {NULL}, 2971, "udp"},
+{"pmsm-webrctl", {NULL}, 2972, "tcp"},
+{"pmsm-webrctl", {NULL}, 2972, "udp"},
+{"svnetworks", {NULL}, 2973, "tcp"},
+{"svnetworks", {NULL}, 2973, "udp"},
+{"signal", {NULL}, 2974, "tcp"},
+{"signal", {NULL}, 2974, "udp"},
+{"fjmpcm", {NULL}, 2975, "tcp"},
+{"fjmpcm", {NULL}, 2975, "udp"},
+{"cns-srv-port", {NULL}, 2976, "tcp"},
+{"cns-srv-port", {NULL}, 2976, "udp"},
+{"ttc-etap-ns", {NULL}, 2977, "tcp"},
+{"ttc-etap-ns", {NULL}, 2977, "udp"},
+{"ttc-etap-ds", {NULL}, 2978, "tcp"},
+{"ttc-etap-ds", {NULL}, 2978, "udp"},
+{"h263-video", {NULL}, 2979, "tcp"},
+{"h263-video", {NULL}, 2979, "udp"},
+{"wimd", {NULL}, 2980, "tcp"},
+{"wimd", {NULL}, 2980, "udp"},
+{"mylxamport", {NULL}, 2981, "tcp"},
+{"mylxamport", {NULL}, 2981, "udp"},
+{"iwb-whiteboard", {NULL}, 2982, "tcp"},
+{"iwb-whiteboard", {NULL}, 2982, "udp"},
+{"netplan", {NULL}, 2983, "tcp"},
+{"netplan", {NULL}, 2983, "udp"},
+{"hpidsadmin", {NULL}, 2984, "tcp"},
+{"hpidsadmin", {NULL}, 2984, "udp"},
+{"hpidsagent", {NULL}, 2985, "tcp"},
+{"hpidsagent", {NULL}, 2985, "udp"},
+{"stonefalls", {NULL}, 2986, "tcp"},
+{"stonefalls", {NULL}, 2986, "udp"},
+{"identify", {NULL}, 2987, "tcp"},
+{"identify", {NULL}, 2987, "udp"},
+{"hippad", {NULL}, 2988, "tcp"},
+{"hippad", {NULL}, 2988, "udp"},
+{"zarkov", {NULL}, 2989, "tcp"},
+{"zarkov", {NULL}, 2989, "udp"},
+{"boscap", {NULL}, 2990, "tcp"},
+{"boscap", {NULL}, 2990, "udp"},
+{"wkstn-mon", {NULL}, 2991, "tcp"},
+{"wkstn-mon", {NULL}, 2991, "udp"},
+{"avenyo", {NULL}, 2992, "tcp"},
+{"avenyo", {NULL}, 2992, "udp"},
+{"veritas-vis1", {NULL}, 2993, "tcp"},
+{"veritas-vis1", {NULL}, 2993, "udp"},
+{"veritas-vis2", {NULL}, 2994, "tcp"},
+{"veritas-vis2", {NULL}, 2994, "udp"},
+{"idrs", {NULL}, 2995, "tcp"},
+{"idrs", {NULL}, 2995, "udp"},
+{"vsixml", {NULL}, 2996, "tcp"},
+{"vsixml", {NULL}, 2996, "udp"},
+{"rebol", {NULL}, 2997, "tcp"},
+{"rebol", {NULL}, 2997, "udp"},
+{"realsecure", {NULL}, 2998, "tcp"},
+{"realsecure", {NULL}, 2998, "udp"},
+{"remoteware-un", {NULL}, 2999, "tcp"},
+{"remoteware-un", {NULL}, 2999, "udp"},
+{"hbci", {NULL}, 3000, "tcp"},
+{"hbci", {NULL}, 3000, "udp"},
+{"remoteware-cl", {NULL}, 3000, "tcp"},
+{"remoteware-cl", {NULL}, 3000, "udp"},
+{"exlm-agent", {NULL}, 3002, "tcp"},
+{"exlm-agent", {NULL}, 3002, "udp"},
+{"remoteware-srv", {NULL}, 3002, "tcp"},
+{"remoteware-srv", {NULL}, 3002, "udp"},
+{"cgms", {NULL}, 3003, "tcp"},
+{"cgms", {NULL}, 3003, "udp"},
+{"csoftragent", {NULL}, 3004, "tcp"},
+{"csoftragent", {NULL}, 3004, "udp"},
+{"geniuslm", {NULL}, 3005, "tcp"},
+{"geniuslm", {NULL}, 3005, "udp"},
+{"ii-admin", {NULL}, 3006, "tcp"},
+{"ii-admin", {NULL}, 3006, "udp"},
+{"lotusmtap", {NULL}, 3007, "tcp"},
+{"lotusmtap", {NULL}, 3007, "udp"},
+{"midnight-tech", {NULL}, 3008, "tcp"},
+{"midnight-tech", {NULL}, 3008, "udp"},
+{"pxc-ntfy", {NULL}, 3009, "tcp"},
+{"pxc-ntfy", {NULL}, 3009, "udp"},
+{"gw", {NULL}, 3010, "tcp"},
+{"ping-pong", {NULL}, 3010, "udp"},
+{"trusted-web", {NULL}, 3011, "tcp"},
+{"trusted-web", {NULL}, 3011, "udp"},
+{"twsdss", {NULL}, 3012, "tcp"},
+{"twsdss", {NULL}, 3012, "udp"},
+{"gilatskysurfer", {NULL}, 3013, "tcp"},
+{"gilatskysurfer", {NULL}, 3013, "udp"},
+{"broker_service", {NULL}, 3014, "tcp"},
+{"broker_service", {NULL}, 3014, "udp"},
+{"nati-dstp", {NULL}, 3015, "tcp"},
+{"nati-dstp", {NULL}, 3015, "udp"},
+{"notify_srvr", {NULL}, 3016, "tcp"},
+{"notify_srvr", {NULL}, 3016, "udp"},
+{"event_listener", {NULL}, 3017, "tcp"},
+{"event_listener", {NULL}, 3017, "udp"},
+{"srvc_registry", {NULL}, 3018, "tcp"},
+{"srvc_registry", {NULL}, 3018, "udp"},
+{"resource_mgr", {NULL}, 3019, "tcp"},
+{"resource_mgr", {NULL}, 3019, "udp"},
+{"cifs", {NULL}, 3020, "tcp"},
+{"cifs", {NULL}, 3020, "udp"},
+{"agriserver", {NULL}, 3021, "tcp"},
+{"agriserver", {NULL}, 3021, "udp"},
+{"csregagent", {NULL}, 3022, "tcp"},
+{"csregagent", {NULL}, 3022, "udp"},
+{"magicnotes", {NULL}, 3023, "tcp"},
+{"magicnotes", {NULL}, 3023, "udp"},
+{"nds_sso", {NULL}, 3024, "tcp"},
+{"nds_sso", {NULL}, 3024, "udp"},
+{"arepa-raft", {NULL}, 3025, "tcp"},
+{"arepa-raft", {NULL}, 3025, "udp"},
+{"agri-gateway", {NULL}, 3026, "tcp"},
+{"agri-gateway", {NULL}, 3026, "udp"},
+{"LiebDevMgmt_C", {NULL}, 3027, "tcp"},
+{"LiebDevMgmt_C", {NULL}, 3027, "udp"},
+{"LiebDevMgmt_DM", {NULL}, 3028, "tcp"},
+{"LiebDevMgmt_DM", {NULL}, 3028, "udp"},
+{"LiebDevMgmt_A", {NULL}, 3029, "tcp"},
+{"LiebDevMgmt_A", {NULL}, 3029, "udp"},
+{"arepa-cas", {NULL}, 3030, "tcp"},
+{"arepa-cas", {NULL}, 3030, "udp"},
+{"eppc", {NULL}, 3031, "tcp"},
+{"eppc", {NULL}, 3031, "udp"},
+{"redwood-chat", {NULL}, 3032, "tcp"},
+{"redwood-chat", {NULL}, 3032, "udp"},
+{"pdb", {NULL}, 3033, "tcp"},
+{"pdb", {NULL}, 3033, "udp"},
+{"osmosis-aeea", {NULL}, 3034, "tcp"},
+{"osmosis-aeea", {NULL}, 3034, "udp"},
+{"fjsv-gssagt", {NULL}, 3035, "tcp"},
+{"fjsv-gssagt", {NULL}, 3035, "udp"},
+{"hagel-dump", {NULL}, 3036, "tcp"},
+{"hagel-dump", {NULL}, 3036, "udp"},
+{"hp-san-mgmt", {NULL}, 3037, "tcp"},
+{"hp-san-mgmt", {NULL}, 3037, "udp"},
+{"santak-ups", {NULL}, 3038, "tcp"},
+{"santak-ups", {NULL}, 3038, "udp"},
+{"cogitate", {NULL}, 3039, "tcp"},
+{"cogitate", {NULL}, 3039, "udp"},
+{"tomato-springs", {NULL}, 3040, "tcp"},
+{"tomato-springs", {NULL}, 3040, "udp"},
+{"di-traceware", {NULL}, 3041, "tcp"},
+{"di-traceware", {NULL}, 3041, "udp"},
+{"journee", {NULL}, 3042, "tcp"},
+{"journee", {NULL}, 3042, "udp"},
+{"brp", {NULL}, 3043, "tcp"},
+{"brp", {NULL}, 3043, "udp"},
+{"epp", {NULL}, 3044, "tcp"},
+{"epp", {NULL}, 3044, "udp"},
+{"responsenet", {NULL}, 3045, "tcp"},
+{"responsenet", {NULL}, 3045, "udp"},
+{"di-ase", {NULL}, 3046, "tcp"},
+{"di-ase", {NULL}, 3046, "udp"},
+{"hlserver", {NULL}, 3047, "tcp"},
+{"hlserver", {NULL}, 3047, "udp"},
+{"pctrader", {NULL}, 3048, "tcp"},
+{"pctrader", {NULL}, 3048, "udp"},
+{"nsws", {NULL}, 3049, "tcp"},
+{"nsws", {NULL}, 3049, "udp"},
+{"gds_db", {NULL}, 3050, "tcp"},
+{"gds_db", {NULL}, 3050, "udp"},
+{"galaxy-server", {NULL}, 3051, "tcp"},
+{"galaxy-server", {NULL}, 3051, "udp"},
+{"apc-3052", {NULL}, 3052, "tcp"},
+{"apc-3052", {NULL}, 3052, "udp"},
+{"dsom-server", {NULL}, 3053, "tcp"},
+{"dsom-server", {NULL}, 3053, "udp"},
+{"amt-cnf-prot", {NULL}, 3054, "tcp"},
+{"amt-cnf-prot", {NULL}, 3054, "udp"},
+{"policyserver", {NULL}, 3055, "tcp"},
+{"policyserver", {NULL}, 3055, "udp"},
+{"cdl-server", {NULL}, 3056, "tcp"},
+{"cdl-server", {NULL}, 3056, "udp"},
+{"goahead-fldup", {NULL}, 3057, "tcp"},
+{"goahead-fldup", {NULL}, 3057, "udp"},
+{"videobeans", {NULL}, 3058, "tcp"},
+{"videobeans", {NULL}, 3058, "udp"},
+{"qsoft", {NULL}, 3059, "tcp"},
+{"qsoft", {NULL}, 3059, "udp"},
+{"interserver", {NULL}, 3060, "tcp"},
+{"interserver", {NULL}, 3060, "udp"},
+{"cautcpd", {NULL}, 3061, "tcp"},
+{"cautcpd", {NULL}, 3061, "udp"},
+{"ncacn-ip-tcp", {NULL}, 3062, "tcp"},
+{"ncacn-ip-tcp", {NULL}, 3062, "udp"},
+{"ncadg-ip-udp", {NULL}, 3063, "tcp"},
+{"ncadg-ip-udp", {NULL}, 3063, "udp"},
+{"rprt", {NULL}, 3064, "tcp"},
+{"rprt", {NULL}, 3064, "udp"},
+{"slinterbase", {NULL}, 3065, "tcp"},
+{"slinterbase", {NULL}, 3065, "udp"},
+{"netattachsdmp", {NULL}, 3066, "tcp"},
+{"netattachsdmp", {NULL}, 3066, "udp"},
+{"fjhpjp", {NULL}, 3067, "tcp"},
+{"fjhpjp", {NULL}, 3067, "udp"},
+{"ls3bcast", {NULL}, 3068, "tcp"},
+{"ls3bcast", {NULL}, 3068, "udp"},
+{"ls3", {NULL}, 3069, "tcp"},
+{"ls3", {NULL}, 3069, "udp"},
+{"mgxswitch", {NULL}, 3070, "tcp"},
+{"mgxswitch", {NULL}, 3070, "udp"},
+{"csd-mgmt-port", {NULL}, 3071, "tcp"},
+{"csd-mgmt-port", {NULL}, 3071, "udp"},
+{"csd-monitor", {NULL}, 3072, "tcp"},
+{"csd-monitor", {NULL}, 3072, "udp"},
+{"vcrp", {NULL}, 3073, "tcp"},
+{"vcrp", {NULL}, 3073, "udp"},
+{"xbox", {NULL}, 3074, "tcp"},
+{"xbox", {NULL}, 3074, "udp"},
+{"orbix-locator", {NULL}, 3075, "tcp"},
+{"orbix-locator", {NULL}, 3075, "udp"},
+{"orbix-config", {NULL}, 3076, "tcp"},
+{"orbix-config", {NULL}, 3076, "udp"},
+{"orbix-loc-ssl", {NULL}, 3077, "tcp"},
+{"orbix-loc-ssl", {NULL}, 3077, "udp"},
+{"orbix-cfg-ssl", {NULL}, 3078, "tcp"},
+{"orbix-cfg-ssl", {NULL}, 3078, "udp"},
+{"lv-frontpanel", {NULL}, 3079, "tcp"},
+{"lv-frontpanel", {NULL}, 3079, "udp"},
+{"stm_pproc", {NULL}, 3080, "tcp"},
+{"stm_pproc", {NULL}, 3080, "udp"},
+{"tl1-lv", {NULL}, 3081, "tcp"},
+{"tl1-lv", {NULL}, 3081, "udp"},
+{"tl1-raw", {NULL}, 3082, "tcp"},
+{"tl1-raw", {NULL}, 3082, "udp"},
+{"tl1-telnet", {NULL}, 3083, "tcp"},
+{"tl1-telnet", {NULL}, 3083, "udp"},
+{"itm-mccs", {NULL}, 3084, "tcp"},
+{"itm-mccs", {NULL}, 3084, "udp"},
+{"pcihreq", {NULL}, 3085, "tcp"},
+{"pcihreq", {NULL}, 3085, "udp"},
+{"jdl-dbkitchen", {NULL}, 3086, "tcp"},
+{"jdl-dbkitchen", {NULL}, 3086, "udp"},
+{"asoki-sma", {NULL}, 3087, "tcp"},
+{"asoki-sma", {NULL}, 3087, "udp"},
+{"xdtp", {NULL}, 3088, "tcp"},
+{"xdtp", {NULL}, 3088, "udp"},
+{"ptk-alink", {NULL}, 3089, "tcp"},
+{"ptk-alink", {NULL}, 3089, "udp"},
+{"stss", {NULL}, 3090, "tcp"},
+{"stss", {NULL}, 3090, "udp"},
+{"1ci-smcs", {NULL}, 3091, "tcp"},
+{"1ci-smcs", {NULL}, 3091, "udp"},
+{"rapidmq-center", {NULL}, 3093, "tcp"},
+{"rapidmq-center", {NULL}, 3093, "udp"},
+{"rapidmq-reg", {NULL}, 3094, "tcp"},
+{"rapidmq-reg", {NULL}, 3094, "udp"},
+{"panasas", {NULL}, 3095, "tcp"},
+{"panasas", {NULL}, 3095, "udp"},
+{"ndl-aps", {NULL}, 3096, "tcp"},
+{"ndl-aps", {NULL}, 3096, "udp"},
+{"itu-bicc-stc", {NULL}, 3097, "sctp"},
+{"umm-port", {NULL}, 3098, "tcp"},
+{"umm-port", {NULL}, 3098, "udp"},
+{"chmd", {NULL}, 3099, "tcp"},
+{"chmd", {NULL}, 3099, "udp"},
+{"opcon-xps", {NULL}, 3100, "tcp"},
+{"opcon-xps", {NULL}, 3100, "udp"},
+{"hp-pxpib", {NULL}, 3101, "tcp"},
+{"hp-pxpib", {NULL}, 3101, "udp"},
+{"slslavemon", {NULL}, 3102, "tcp"},
+{"slslavemon", {NULL}, 3102, "udp"},
+{"autocuesmi", {NULL}, 3103, "tcp"},
+{"autocuesmi", {NULL}, 3103, "udp"},
+{"autocuelog", {NULL}, 3104, "tcp"},
+{"autocuetime", {NULL}, 3104, "udp"},
+{"cardbox", {NULL}, 3105, "tcp"},
+{"cardbox", {NULL}, 3105, "udp"},
+{"cardbox-http", {NULL}, 3106, "tcp"},
+{"cardbox-http", {NULL}, 3106, "udp"},
+{"business", {NULL}, 3107, "tcp"},
+{"business", {NULL}, 3107, "udp"},
+{"geolocate", {NULL}, 3108, "tcp"},
+{"geolocate", {NULL}, 3108, "udp"},
+{"personnel", {NULL}, 3109, "tcp"},
+{"personnel", {NULL}, 3109, "udp"},
+{"sim-control", {NULL}, 3110, "tcp"},
+{"sim-control", {NULL}, 3110, "udp"},
+{"wsynch", {NULL}, 3111, "tcp"},
+{"wsynch", {NULL}, 3111, "udp"},
+{"ksysguard", {NULL}, 3112, "tcp"},
+{"ksysguard", {NULL}, 3112, "udp"},
+{"cs-auth-svr", {NULL}, 3113, "tcp"},
+{"cs-auth-svr", {NULL}, 3113, "udp"},
+{"ccmad", {NULL}, 3114, "tcp"},
+{"ccmad", {NULL}, 3114, "udp"},
+{"mctet-master", {NULL}, 3115, "tcp"},
+{"mctet-master", {NULL}, 3115, "udp"},
+{"mctet-gateway", {NULL}, 3116, "tcp"},
+{"mctet-gateway", {NULL}, 3116, "udp"},
+{"mctet-jserv", {NULL}, 3117, "tcp"},
+{"mctet-jserv", {NULL}, 3117, "udp"},
+{"pkagent", {NULL}, 3118, "tcp"},
+{"pkagent", {NULL}, 3118, "udp"},
+{"d2000kernel", {NULL}, 3119, "tcp"},
+{"d2000kernel", {NULL}, 3119, "udp"},
+{"d2000webserver", {NULL}, 3120, "tcp"},
+{"d2000webserver", {NULL}, 3120, "udp"},
+{"vtr-emulator", {NULL}, 3122, "tcp"},
+{"vtr-emulator", {NULL}, 3122, "udp"},
+{"edix", {NULL}, 3123, "tcp"},
+{"edix", {NULL}, 3123, "udp"},
+{"beacon-port", {NULL}, 3124, "tcp"},
+{"beacon-port", {NULL}, 3124, "udp"},
+{"a13-an", {NULL}, 3125, "tcp"},
+{"a13-an", {NULL}, 3125, "udp"},
+{"ctx-bridge", {NULL}, 3127, "tcp"},
+{"ctx-bridge", {NULL}, 3127, "udp"},
+{"ndl-aas", {NULL}, 3128, "tcp"},
+{"ndl-aas", {NULL}, 3128, "udp"},
+{"netport-id", {NULL}, 3129, "tcp"},
+{"netport-id", {NULL}, 3129, "udp"},
+{"icpv2", {NULL}, 3130, "tcp"},
+{"icpv2", {NULL}, 3130, "udp"},
+{"netbookmark", {NULL}, 3131, "tcp"},
+{"netbookmark", {NULL}, 3131, "udp"},
+{"ms-rule-engine", {NULL}, 3132, "tcp"},
+{"ms-rule-engine", {NULL}, 3132, "udp"},
+{"prism-deploy", {NULL}, 3133, "tcp"},
+{"prism-deploy", {NULL}, 3133, "udp"},
+{"ecp", {NULL}, 3134, "tcp"},
+{"ecp", {NULL}, 3134, "udp"},
+{"peerbook-port", {NULL}, 3135, "tcp"},
+{"peerbook-port", {NULL}, 3135, "udp"},
+{"grubd", {NULL}, 3136, "tcp"},
+{"grubd", {NULL}, 3136, "udp"},
+{"rtnt-1", {NULL}, 3137, "tcp"},
+{"rtnt-1", {NULL}, 3137, "udp"},
+{"rtnt-2", {NULL}, 3138, "tcp"},
+{"rtnt-2", {NULL}, 3138, "udp"},
+{"incognitorv", {NULL}, 3139, "tcp"},
+{"incognitorv", {NULL}, 3139, "udp"},
+{"ariliamulti", {NULL}, 3140, "tcp"},
+{"ariliamulti", {NULL}, 3140, "udp"},
+{"vmodem", {NULL}, 3141, "tcp"},
+{"vmodem", {NULL}, 3141, "udp"},
+{"rdc-wh-eos", {NULL}, 3142, "tcp"},
+{"rdc-wh-eos", {NULL}, 3142, "udp"},
+{"seaview", {NULL}, 3143, "tcp"},
+{"seaview", {NULL}, 3143, "udp"},
+{"tarantella", {NULL}, 3144, "tcp"},
+{"tarantella", {NULL}, 3144, "udp"},
+{"csi-lfap", {NULL}, 3145, "tcp"},
+{"csi-lfap", {NULL}, 3145, "udp"},
+{"bears-02", {NULL}, 3146, "tcp"},
+{"bears-02", {NULL}, 3146, "udp"},
+{"rfio", {NULL}, 3147, "tcp"},
+{"rfio", {NULL}, 3147, "udp"},
+{"nm-game-admin", {NULL}, 3148, "tcp"},
+{"nm-game-admin", {NULL}, 3148, "udp"},
+{"nm-game-server", {NULL}, 3149, "tcp"},
+{"nm-game-server", {NULL}, 3149, "udp"},
+{"nm-asses-admin", {NULL}, 3150, "tcp"},
+{"nm-asses-admin", {NULL}, 3150, "udp"},
+{"nm-assessor", {NULL}, 3151, "tcp"},
+{"nm-assessor", {NULL}, 3151, "udp"},
+{"feitianrockey", {NULL}, 3152, "tcp"},
+{"feitianrockey", {NULL}, 3152, "udp"},
+{"s8-client-port", {NULL}, 3153, "tcp"},
+{"s8-client-port", {NULL}, 3153, "udp"},
+{"ccmrmi", {NULL}, 3154, "tcp"},
+{"ccmrmi", {NULL}, 3154, "udp"},
+{"jpegmpeg", {NULL}, 3155, "tcp"},
+{"jpegmpeg", {NULL}, 3155, "udp"},
+{"indura", {NULL}, 3156, "tcp"},
+{"indura", {NULL}, 3156, "udp"},
+{"e3consultants", {NULL}, 3157, "tcp"},
+{"e3consultants", {NULL}, 3157, "udp"},
+{"stvp", {NULL}, 3158, "tcp"},
+{"stvp", {NULL}, 3158, "udp"},
+{"navegaweb-port", {NULL}, 3159, "tcp"},
+{"navegaweb-port", {NULL}, 3159, "udp"},
+{"tip-app-server", {NULL}, 3160, "tcp"},
+{"tip-app-server", {NULL}, 3160, "udp"},
+{"doc1lm", {NULL}, 3161, "tcp"},
+{"doc1lm", {NULL}, 3161, "udp"},
+{"sflm", {NULL}, 3162, "tcp"},
+{"sflm", {NULL}, 3162, "udp"},
+{"res-sap", {NULL}, 3163, "tcp"},
+{"res-sap", {NULL}, 3163, "udp"},
+{"imprs", {NULL}, 3164, "tcp"},
+{"imprs", {NULL}, 3164, "udp"},
+{"newgenpay", {NULL}, 3165, "tcp"},
+{"newgenpay", {NULL}, 3165, "udp"},
+{"sossecollector", {NULL}, 3166, "tcp"},
+{"sossecollector", {NULL}, 3166, "udp"},
+{"nowcontact", {NULL}, 3167, "tcp"},
+{"nowcontact", {NULL}, 3167, "udp"},
+{"poweronnud", {NULL}, 3168, "tcp"},
+{"poweronnud", {NULL}, 3168, "udp"},
+{"serverview-as", {NULL}, 3169, "tcp"},
+{"serverview-as", {NULL}, 3169, "udp"},
+{"serverview-asn", {NULL}, 3170, "tcp"},
+{"serverview-asn", {NULL}, 3170, "udp"},
+{"serverview-gf", {NULL}, 3171, "tcp"},
+{"serverview-gf", {NULL}, 3171, "udp"},
+{"serverview-rm", {NULL}, 3172, "tcp"},
+{"serverview-rm", {NULL}, 3172, "udp"},
+{"serverview-icc", {NULL}, 3173, "tcp"},
+{"serverview-icc", {NULL}, 3173, "udp"},
+{"armi-server", {NULL}, 3174, "tcp"},
+{"armi-server", {NULL}, 3174, "udp"},
+{"t1-e1-over-ip", {NULL}, 3175, "tcp"},
+{"t1-e1-over-ip", {NULL}, 3175, "udp"},
+{"ars-master", {NULL}, 3176, "tcp"},
+{"ars-master", {NULL}, 3176, "udp"},
+{"phonex-port", {NULL}, 3177, "tcp"},
+{"phonex-port", {NULL}, 3177, "udp"},
+{"radclientport", {NULL}, 3178, "tcp"},
+{"radclientport", {NULL}, 3178, "udp"},
+{"h2gf-w-2m", {NULL}, 3179, "tcp"},
+{"h2gf-w-2m", {NULL}, 3179, "udp"},
+{"mc-brk-srv", {NULL}, 3180, "tcp"},
+{"mc-brk-srv", {NULL}, 3180, "udp"},
+{"bmcpatrolagent", {NULL}, 3181, "tcp"},
+{"bmcpatrolagent", {NULL}, 3181, "udp"},
+{"bmcpatrolrnvu", {NULL}, 3182, "tcp"},
+{"bmcpatrolrnvu", {NULL}, 3182, "udp"},
+{"cops-tls", {NULL}, 3183, "tcp"},
+{"cops-tls", {NULL}, 3183, "udp"},
+{"apogeex-port", {NULL}, 3184, "tcp"},
+{"apogeex-port", {NULL}, 3184, "udp"},
+{"smpppd", {NULL}, 3185, "tcp"},
+{"smpppd", {NULL}, 3185, "udp"},
+{"iiw-port", {NULL}, 3186, "tcp"},
+{"iiw-port", {NULL}, 3186, "udp"},
+{"odi-port", {NULL}, 3187, "tcp"},
+{"odi-port", {NULL}, 3187, "udp"},
+{"brcm-comm-port", {NULL}, 3188, "tcp"},
+{"brcm-comm-port", {NULL}, 3188, "udp"},
+{"pcle-infex", {NULL}, 3189, "tcp"},
+{"pcle-infex", {NULL}, 3189, "udp"},
+{"csvr-proxy", {NULL}, 3190, "tcp"},
+{"csvr-proxy", {NULL}, 3190, "udp"},
+{"csvr-sslproxy", {NULL}, 3191, "tcp"},
+{"csvr-sslproxy", {NULL}, 3191, "udp"},
+{"firemonrcc", {NULL}, 3192, "tcp"},
+{"firemonrcc", {NULL}, 3192, "udp"},
+{"spandataport", {NULL}, 3193, "tcp"},
+{"spandataport", {NULL}, 3193, "udp"},
+{"magbind", {NULL}, 3194, "tcp"},
+{"magbind", {NULL}, 3194, "udp"},
+{"ncu-1", {NULL}, 3195, "tcp"},
+{"ncu-1", {NULL}, 3195, "udp"},
+{"ncu-2", {NULL}, 3196, "tcp"},
+{"ncu-2", {NULL}, 3196, "udp"},
+{"embrace-dp-s", {NULL}, 3197, "tcp"},
+{"embrace-dp-s", {NULL}, 3197, "udp"},
+{"embrace-dp-c", {NULL}, 3198, "tcp"},
+{"embrace-dp-c", {NULL}, 3198, "udp"},
+{"dmod-workspace", {NULL}, 3199, "tcp"},
+{"dmod-workspace", {NULL}, 3199, "udp"},
+{"tick-port", {NULL}, 3200, "tcp"},
+{"tick-port", {NULL}, 3200, "udp"},
+{"cpq-tasksmart", {NULL}, 3201, "tcp"},
+{"cpq-tasksmart", {NULL}, 3201, "udp"},
+{"intraintra", {NULL}, 3202, "tcp"},
+{"intraintra", {NULL}, 3202, "udp"},
+{"netwatcher-mon", {NULL}, 3203, "tcp"},
+{"netwatcher-mon", {NULL}, 3203, "udp"},
+{"netwatcher-db", {NULL}, 3204, "tcp"},
+{"netwatcher-db", {NULL}, 3204, "udp"},
+{"isns", {NULL}, 3205, "tcp"},
+{"isns", {NULL}, 3205, "udp"},
+{"ironmail", {NULL}, 3206, "tcp"},
+{"ironmail", {NULL}, 3206, "udp"},
+{"vx-auth-port", {NULL}, 3207, "tcp"},
+{"vx-auth-port", {NULL}, 3207, "udp"},
+{"pfu-prcallback", {NULL}, 3208, "tcp"},
+{"pfu-prcallback", {NULL}, 3208, "udp"},
+{"netwkpathengine", {NULL}, 3209, "tcp"},
+{"netwkpathengine", {NULL}, 3209, "udp"},
+{"flamenco-proxy", {NULL}, 3210, "tcp"},
+{"flamenco-proxy", {NULL}, 3210, "udp"},
+{"avsecuremgmt", {NULL}, 3211, "tcp"},
+{"avsecuremgmt", {NULL}, 3211, "udp"},
+{"surveyinst", {NULL}, 3212, "tcp"},
+{"surveyinst", {NULL}, 3212, "udp"},
+{"neon24x7", {NULL}, 3213, "tcp"},
+{"neon24x7", {NULL}, 3213, "udp"},
+{"jmq-daemon-1", {NULL}, 3214, "tcp"},
+{"jmq-daemon-1", {NULL}, 3214, "udp"},
+{"jmq-daemon-2", {NULL}, 3215, "tcp"},
+{"jmq-daemon-2", {NULL}, 3215, "udp"},
+{"ferrari-foam", {NULL}, 3216, "tcp"},
+{"ferrari-foam", {NULL}, 3216, "udp"},
+{"unite", {NULL}, 3217, "tcp"},
+{"unite", {NULL}, 3217, "udp"},
+{"smartpackets", {NULL}, 3218, "tcp"},
+{"smartpackets", {NULL}, 3218, "udp"},
+{"wms-messenger", {NULL}, 3219, "tcp"},
+{"wms-messenger", {NULL}, 3219, "udp"},
+{"xnm-ssl", {NULL}, 3220, "tcp"},
+{"xnm-ssl", {NULL}, 3220, "udp"},
+{"xnm-clear-text", {NULL}, 3221, "tcp"},
+{"xnm-clear-text", {NULL}, 3221, "udp"},
+{"glbp", {NULL}, 3222, "tcp"},
+{"glbp", {NULL}, 3222, "udp"},
+{"digivote", {NULL}, 3223, "tcp"},
+{"digivote", {NULL}, 3223, "udp"},
+{"aes-discovery", {NULL}, 3224, "tcp"},
+{"aes-discovery", {NULL}, 3224, "udp"},
+{"fcip-port", {NULL}, 3225, "tcp"},
+{"fcip-port", {NULL}, 3225, "udp"},
+{"isi-irp", {NULL}, 3226, "tcp"},
+{"isi-irp", {NULL}, 3226, "udp"},
+{"dwnmshttp", {NULL}, 3227, "tcp"},
+{"dwnmshttp", {NULL}, 3227, "udp"},
+{"dwmsgserver", {NULL}, 3228, "tcp"},
+{"dwmsgserver", {NULL}, 3228, "udp"},
+{"global-cd-port", {NULL}, 3229, "tcp"},
+{"global-cd-port", {NULL}, 3229, "udp"},
+{"sftdst-port", {NULL}, 3230, "tcp"},
+{"sftdst-port", {NULL}, 3230, "udp"},
+{"vidigo", {NULL}, 3231, "tcp"},
+{"vidigo", {NULL}, 3231, "udp"},
+{"mdtp", {NULL}, 3232, "tcp"},
+{"mdtp", {NULL}, 3232, "udp"},
+{"whisker", {NULL}, 3233, "tcp"},
+{"whisker", {NULL}, 3233, "udp"},
+{"alchemy", {NULL}, 3234, "tcp"},
+{"alchemy", {NULL}, 3234, "udp"},
+{"mdap-port", {NULL}, 3235, "tcp"},
+{"mdap-port", {NULL}, 3235, "udp"},
+{"apparenet-ts", {NULL}, 3236, "tcp"},
+{"apparenet-ts", {NULL}, 3236, "udp"},
+{"apparenet-tps", {NULL}, 3237, "tcp"},
+{"apparenet-tps", {NULL}, 3237, "udp"},
+{"apparenet-as", {NULL}, 3238, "tcp"},
+{"apparenet-as", {NULL}, 3238, "udp"},
+{"apparenet-ui", {NULL}, 3239, "tcp"},
+{"apparenet-ui", {NULL}, 3239, "udp"},
+{"triomotion", {NULL}, 3240, "tcp"},
+{"triomotion", {NULL}, 3240, "udp"},
+{"sysorb", {NULL}, 3241, "tcp"},
+{"sysorb", {NULL}, 3241, "udp"},
+{"sdp-id-port", {NULL}, 3242, "tcp"},
+{"sdp-id-port", {NULL}, 3242, "udp"},
+{"timelot", {NULL}, 3243, "tcp"},
+{"timelot", {NULL}, 3243, "udp"},
+{"onesaf", {NULL}, 3244, "tcp"},
+{"onesaf", {NULL}, 3244, "udp"},
+{"vieo-fe", {NULL}, 3245, "tcp"},
+{"vieo-fe", {NULL}, 3245, "udp"},
+{"dvt-system", {NULL}, 3246, "tcp"},
+{"dvt-system", {NULL}, 3246, "udp"},
+{"dvt-data", {NULL}, 3247, "tcp"},
+{"dvt-data", {NULL}, 3247, "udp"},
+{"procos-lm", {NULL}, 3248, "tcp"},
+{"procos-lm", {NULL}, 3248, "udp"},
+{"ssp", {NULL}, 3249, "tcp"},
+{"ssp", {NULL}, 3249, "udp"},
+{"hicp", {NULL}, 3250, "tcp"},
+{"hicp", {NULL}, 3250, "udp"},
+{"sysscanner", {NULL}, 3251, "tcp"},
+{"sysscanner", {NULL}, 3251, "udp"},
+{"dhe", {NULL}, 3252, "tcp"},
+{"dhe", {NULL}, 3252, "udp"},
+{"pda-data", {NULL}, 3253, "tcp"},
+{"pda-data", {NULL}, 3253, "udp"},
+{"pda-sys", {NULL}, 3254, "tcp"},
+{"pda-sys", {NULL}, 3254, "udp"},
+{"semaphore", {NULL}, 3255, "tcp"},
+{"semaphore", {NULL}, 3255, "udp"},
+{"cpqrpm-agent", {NULL}, 3256, "tcp"},
+{"cpqrpm-agent", {NULL}, 3256, "udp"},
+{"cpqrpm-server", {NULL}, 3257, "tcp"},
+{"cpqrpm-server", {NULL}, 3257, "udp"},
+{"ivecon-port", {NULL}, 3258, "tcp"},
+{"ivecon-port", {NULL}, 3258, "udp"},
+{"epncdp2", {NULL}, 3259, "tcp"},
+{"epncdp2", {NULL}, 3259, "udp"},
+{"iscsi-target", {NULL}, 3260, "tcp"},
+{"iscsi-target", {NULL}, 3260, "udp"},
+{"winshadow", {NULL}, 3261, "tcp"},
+{"winshadow", {NULL}, 3261, "udp"},
+{"necp", {NULL}, 3262, "tcp"},
+{"necp", {NULL}, 3262, "udp"},
+{"ecolor-imager", {NULL}, 3263, "tcp"},
+{"ecolor-imager", {NULL}, 3263, "udp"},
+{"ccmail", {NULL}, 3264, "tcp"},
+{"ccmail", {NULL}, 3264, "udp"},
+{"altav-tunnel", {NULL}, 3265, "tcp"},
+{"altav-tunnel", {NULL}, 3265, "udp"},
+{"ns-cfg-server", {NULL}, 3266, "tcp"},
+{"ns-cfg-server", {NULL}, 3266, "udp"},
+{"ibm-dial-out", {NULL}, 3267, "tcp"},
+{"ibm-dial-out", {NULL}, 3267, "udp"},
+{"msft-gc", {NULL}, 3268, "tcp"},
+{"msft-gc", {NULL}, 3268, "udp"},
+{"msft-gc-ssl", {NULL}, 3269, "tcp"},
+{"msft-gc-ssl", {NULL}, 3269, "udp"},
+{"verismart", {NULL}, 3270, "tcp"},
+{"verismart", {NULL}, 3270, "udp"},
+{"csoft-prev", {NULL}, 3271, "tcp"},
+{"csoft-prev", {NULL}, 3271, "udp"},
+{"user-manager", {NULL}, 3272, "tcp"},
+{"user-manager", {NULL}, 3272, "udp"},
+{"sxmp", {NULL}, 3273, "tcp"},
+{"sxmp", {NULL}, 3273, "udp"},
+{"ordinox-server", {NULL}, 3274, "tcp"},
+{"ordinox-server", {NULL}, 3274, "udp"},
+{"samd", {NULL}, 3275, "tcp"},
+{"samd", {NULL}, 3275, "udp"},
+{"maxim-asics", {NULL}, 3276, "tcp"},
+{"maxim-asics", {NULL}, 3276, "udp"},
+{"awg-proxy", {NULL}, 3277, "tcp"},
+{"awg-proxy", {NULL}, 3277, "udp"},
+{"lkcmserver", {NULL}, 3278, "tcp"},
+{"lkcmserver", {NULL}, 3278, "udp"},
+{"admind", {NULL}, 3279, "tcp"},
+{"admind", {NULL}, 3279, "udp"},
+{"vs-server", {NULL}, 3280, "tcp"},
+{"vs-server", {NULL}, 3280, "udp"},
+{"sysopt", {NULL}, 3281, "tcp"},
+{"sysopt", {NULL}, 3281, "udp"},
+{"datusorb", {NULL}, 3282, "tcp"},
+{"datusorb", {NULL}, 3282, "udp"},
+{"net-assistant", {NULL}, 3283, "tcp"},
+{"net-assistant", {NULL}, 3283, "udp"},
+{"4talk", {NULL}, 3284, "tcp"},
+{"4talk", {NULL}, 3284, "udp"},
+{"plato", {NULL}, 3285, "tcp"},
+{"plato", {NULL}, 3285, "udp"},
+{"e-net", {NULL}, 3286, "tcp"},
+{"e-net", {NULL}, 3286, "udp"},
+{"directvdata", {NULL}, 3287, "tcp"},
+{"directvdata", {NULL}, 3287, "udp"},
+{"cops", {NULL}, 3288, "tcp"},
+{"cops", {NULL}, 3288, "udp"},
+{"enpc", {NULL}, 3289, "tcp"},
+{"enpc", {NULL}, 3289, "udp"},
+{"caps-lm", {NULL}, 3290, "tcp"},
+{"caps-lm", {NULL}, 3290, "udp"},
+{"sah-lm", {NULL}, 3291, "tcp"},
+{"sah-lm", {NULL}, 3291, "udp"},
+{"cart-o-rama", {NULL}, 3292, "tcp"},
+{"cart-o-rama", {NULL}, 3292, "udp"},
+{"fg-fps", {NULL}, 3293, "tcp"},
+{"fg-fps", {NULL}, 3293, "udp"},
+{"fg-gip", {NULL}, 3294, "tcp"},
+{"fg-gip", {NULL}, 3294, "udp"},
+{"dyniplookup", {NULL}, 3295, "tcp"},
+{"dyniplookup", {NULL}, 3295, "udp"},
+{"rib-slm", {NULL}, 3296, "tcp"},
+{"rib-slm", {NULL}, 3296, "udp"},
+{"cytel-lm", {NULL}, 3297, "tcp"},
+{"cytel-lm", {NULL}, 3297, "udp"},
+{"deskview", {NULL}, 3298, "tcp"},
+{"deskview", {NULL}, 3298, "udp"},
+{"pdrncs", {NULL}, 3299, "tcp"},
+{"pdrncs", {NULL}, 3299, "udp"},
+{"mcs-fastmail", {NULL}, 3302, "tcp"},
+{"mcs-fastmail", {NULL}, 3302, "udp"},
+{"opsession-clnt", {NULL}, 3303, "tcp"},
+{"opsession-clnt", {NULL}, 3303, "udp"},
+{"opsession-srvr", {NULL}, 3304, "tcp"},
+{"opsession-srvr", {NULL}, 3304, "udp"},
+{"odette-ftp", {NULL}, 3305, "tcp"},
+{"odette-ftp", {NULL}, 3305, "udp"},
+{"mysql", {NULL}, 3306, "tcp"},
+{"mysql", {NULL}, 3306, "udp"},
+{"opsession-prxy", {NULL}, 3307, "tcp"},
+{"opsession-prxy", {NULL}, 3307, "udp"},
+{"tns-server", {NULL}, 3308, "tcp"},
+{"tns-server", {NULL}, 3308, "udp"},
+{"tns-adv", {NULL}, 3309, "tcp"},
+{"tns-adv", {NULL}, 3309, "udp"},
+{"dyna-access", {NULL}, 3310, "tcp"},
+{"dyna-access", {NULL}, 3310, "udp"},
+{"mcns-tel-ret", {NULL}, 3311, "tcp"},
+{"mcns-tel-ret", {NULL}, 3311, "udp"},
+{"appman-server", {NULL}, 3312, "tcp"},
+{"appman-server", {NULL}, 3312, "udp"},
+{"uorb", {NULL}, 3313, "tcp"},
+{"uorb", {NULL}, 3313, "udp"},
+{"uohost", {NULL}, 3314, "tcp"},
+{"uohost", {NULL}, 3314, "udp"},
+{"cdid", {NULL}, 3315, "tcp"},
+{"cdid", {NULL}, 3315, "udp"},
+{"aicc-cmi", {NULL}, 3316, "tcp"},
+{"aicc-cmi", {NULL}, 3316, "udp"},
+{"vsaiport", {NULL}, 3317, "tcp"},
+{"vsaiport", {NULL}, 3317, "udp"},
+{"ssrip", {NULL}, 3318, "tcp"},
+{"ssrip", {NULL}, 3318, "udp"},
+{"sdt-lmd", {NULL}, 3319, "tcp"},
+{"sdt-lmd", {NULL}, 3319, "udp"},
+{"officelink2000", {NULL}, 3320, "tcp"},
+{"officelink2000", {NULL}, 3320, "udp"},
+{"vnsstr", {NULL}, 3321, "tcp"},
+{"vnsstr", {NULL}, 3321, "udp"},
+{"sftu", {NULL}, 3326, "tcp"},
+{"sftu", {NULL}, 3326, "udp"},
+{"bbars", {NULL}, 3327, "tcp"},
+{"bbars", {NULL}, 3327, "udp"},
+{"egptlm", {NULL}, 3328, "tcp"},
+{"egptlm", {NULL}, 3328, "udp"},
+{"hp-device-disc", {NULL}, 3329, "tcp"},
+{"hp-device-disc", {NULL}, 3329, "udp"},
+{"mcs-calypsoicf", {NULL}, 3330, "tcp"},
+{"mcs-calypsoicf", {NULL}, 3330, "udp"},
+{"mcs-messaging", {NULL}, 3331, "tcp"},
+{"mcs-messaging", {NULL}, 3331, "udp"},
+{"mcs-mailsvr", {NULL}, 3332, "tcp"},
+{"mcs-mailsvr", {NULL}, 3332, "udp"},
+{"dec-notes", {NULL}, 3333, "tcp"},
+{"dec-notes", {NULL}, 3333, "udp"},
+{"directv-web", {NULL}, 3334, "tcp"},
+{"directv-web", {NULL}, 3334, "udp"},
+{"directv-soft", {NULL}, 3335, "tcp"},
+{"directv-soft", {NULL}, 3335, "udp"},
+{"directv-tick", {NULL}, 3336, "tcp"},
+{"directv-tick", {NULL}, 3336, "udp"},
+{"directv-catlg", {NULL}, 3337, "tcp"},
+{"directv-catlg", {NULL}, 3337, "udp"},
+{"anet-b", {NULL}, 3338, "tcp"},
+{"anet-b", {NULL}, 3338, "udp"},
+{"anet-l", {NULL}, 3339, "tcp"},
+{"anet-l", {NULL}, 3339, "udp"},
+{"anet-m", {NULL}, 3340, "tcp"},
+{"anet-m", {NULL}, 3340, "udp"},
+{"anet-h", {NULL}, 3341, "tcp"},
+{"anet-h", {NULL}, 3341, "udp"},
+{"webtie", {NULL}, 3342, "tcp"},
+{"webtie", {NULL}, 3342, "udp"},
+{"ms-cluster-net", {NULL}, 3343, "tcp"},
+{"ms-cluster-net", {NULL}, 3343, "udp"},
+{"bnt-manager", {NULL}, 3344, "tcp"},
+{"bnt-manager", {NULL}, 3344, "udp"},
+{"influence", {NULL}, 3345, "tcp"},
+{"influence", {NULL}, 3345, "udp"},
+{"trnsprntproxy", {NULL}, 3346, "tcp"},
+{"trnsprntproxy", {NULL}, 3346, "udp"},
+{"phoenix-rpc", {NULL}, 3347, "tcp"},
+{"phoenix-rpc", {NULL}, 3347, "udp"},
+{"pangolin-laser", {NULL}, 3348, "tcp"},
+{"pangolin-laser", {NULL}, 3348, "udp"},
+{"chevinservices", {NULL}, 3349, "tcp"},
+{"chevinservices", {NULL}, 3349, "udp"},
+{"findviatv", {NULL}, 3350, "tcp"},
+{"findviatv", {NULL}, 3350, "udp"},
+{"btrieve", {NULL}, 3351, "tcp"},
+{"btrieve", {NULL}, 3351, "udp"},
+{"ssql", {NULL}, 3352, "tcp"},
+{"ssql", {NULL}, 3352, "udp"},
+{"fatpipe", {NULL}, 3353, "tcp"},
+{"fatpipe", {NULL}, 3353, "udp"},
+{"suitjd", {NULL}, 3354, "tcp"},
+{"suitjd", {NULL}, 3354, "udp"},
+{"ordinox-dbase", {NULL}, 3355, "tcp"},
+{"ordinox-dbase", {NULL}, 3355, "udp"},
+{"upnotifyps", {NULL}, 3356, "tcp"},
+{"upnotifyps", {NULL}, 3356, "udp"},
+{"adtech-test", {NULL}, 3357, "tcp"},
+{"adtech-test", {NULL}, 3357, "udp"},
+{"mpsysrmsvr", {NULL}, 3358, "tcp"},
+{"mpsysrmsvr", {NULL}, 3358, "udp"},
+{"wg-netforce", {NULL}, 3359, "tcp"},
+{"wg-netforce", {NULL}, 3359, "udp"},
+{"kv-server", {NULL}, 3360, "tcp"},
+{"kv-server", {NULL}, 3360, "udp"},
+{"kv-agent", {NULL}, 3361, "tcp"},
+{"kv-agent", {NULL}, 3361, "udp"},
+{"dj-ilm", {NULL}, 3362, "tcp"},
+{"dj-ilm", {NULL}, 3362, "udp"},
+{"nati-vi-server", {NULL}, 3363, "tcp"},
+{"nati-vi-server", {NULL}, 3363, "udp"},
+{"creativeserver", {NULL}, 3364, "tcp"},
+{"creativeserver", {NULL}, 3364, "udp"},
+{"contentserver", {NULL}, 3365, "tcp"},
+{"contentserver", {NULL}, 3365, "udp"},
+{"creativepartnr", {NULL}, 3366, "tcp"},
+{"creativepartnr", {NULL}, 3366, "udp"},
+{"tip2", {NULL}, 3372, "tcp"},
+{"tip2", {NULL}, 3372, "udp"},
+{"lavenir-lm", {NULL}, 3373, "tcp"},
+{"lavenir-lm", {NULL}, 3373, "udp"},
+{"cluster-disc", {NULL}, 3374, "tcp"},
+{"cluster-disc", {NULL}, 3374, "udp"},
+{"vsnm-agent", {NULL}, 3375, "tcp"},
+{"vsnm-agent", {NULL}, 3375, "udp"},
+{"cdbroker", {NULL}, 3376, "tcp"},
+{"cdbroker", {NULL}, 3376, "udp"},
+{"cogsys-lm", {NULL}, 3377, "tcp"},
+{"cogsys-lm", {NULL}, 3377, "udp"},
+{"wsicopy", {NULL}, 3378, "tcp"},
+{"wsicopy", {NULL}, 3378, "udp"},
+{"socorfs", {NULL}, 3379, "tcp"},
+{"socorfs", {NULL}, 3379, "udp"},
+{"sns-channels", {NULL}, 3380, "tcp"},
+{"sns-channels", {NULL}, 3380, "udp"},
+{"geneous", {NULL}, 3381, "tcp"},
+{"geneous", {NULL}, 3381, "udp"},
+{"fujitsu-neat", {NULL}, 3382, "tcp"},
+{"fujitsu-neat", {NULL}, 3382, "udp"},
+{"esp-lm", {NULL}, 3383, "tcp"},
+{"esp-lm", {NULL}, 3383, "udp"},
+{"hp-clic", {NULL}, 3384, "tcp"},
+{"hp-clic", {NULL}, 3384, "udp"},
+{"qnxnetman", {NULL}, 3385, "tcp"},
+{"qnxnetman", {NULL}, 3385, "udp"},
+{"gprs-data", {NULL}, 3386, "tcp"},
+{"gprs-sig", {NULL}, 3386, "udp"},
+{"backroomnet", {NULL}, 3387, "tcp"},
+{"backroomnet", {NULL}, 3387, "udp"},
+{"cbserver", {NULL}, 3388, "tcp"},
+{"cbserver", {NULL}, 3388, "udp"},
+{"ms-wbt-server", {NULL}, 3389, "tcp"},
+{"ms-wbt-server", {NULL}, 3389, "udp"},
+{"dsc", {NULL}, 3390, "tcp"},
+{"dsc", {NULL}, 3390, "udp"},
+{"savant", {NULL}, 3391, "tcp"},
+{"savant", {NULL}, 3391, "udp"},
+{"efi-lm", {NULL}, 3392, "tcp"},
+{"efi-lm", {NULL}, 3392, "udp"},
+{"d2k-tapestry1", {NULL}, 3393, "tcp"},
+{"d2k-tapestry1", {NULL}, 3393, "udp"},
+{"d2k-tapestry2", {NULL}, 3394, "tcp"},
+{"d2k-tapestry2", {NULL}, 3394, "udp"},
+{"dyna-lm", {NULL}, 3395, "tcp"},
+{"dyna-lm", {NULL}, 3395, "udp"},
+{"printer_agent", {NULL}, 3396, "tcp"},
+{"printer_agent", {NULL}, 3396, "udp"},
+{"cloanto-lm", {NULL}, 3397, "tcp"},
+{"cloanto-lm", {NULL}, 3397, "udp"},
+{"mercantile", {NULL}, 3398, "tcp"},
+{"mercantile", {NULL}, 3398, "udp"},
+{"csms", {NULL}, 3399, "tcp"},
+{"csms", {NULL}, 3399, "udp"},
+{"csms2", {NULL}, 3400, "tcp"},
+{"csms2", {NULL}, 3400, "udp"},
+{"filecast", {NULL}, 3401, "tcp"},
+{"filecast", {NULL}, 3401, "udp"},
+{"fxaengine-net", {NULL}, 3402, "tcp"},
+{"fxaengine-net", {NULL}, 3402, "udp"},
+{"nokia-ann-ch1", {NULL}, 3405, "tcp"},
+{"nokia-ann-ch1", {NULL}, 3405, "udp"},
+{"nokia-ann-ch2", {NULL}, 3406, "tcp"},
+{"nokia-ann-ch2", {NULL}, 3406, "udp"},
+{"ldap-admin", {NULL}, 3407, "tcp"},
+{"ldap-admin", {NULL}, 3407, "udp"},
+{"BESApi", {NULL}, 3408, "tcp"},
+{"BESApi", {NULL}, 3408, "udp"},
+{"networklens", {NULL}, 3409, "tcp"},
+{"networklens", {NULL}, 3409, "udp"},
+{"networklenss", {NULL}, 3410, "tcp"},
+{"networklenss", {NULL}, 3410, "udp"},
+{"biolink-auth", {NULL}, 3411, "tcp"},
+{"biolink-auth", {NULL}, 3411, "udp"},
+{"xmlblaster", {NULL}, 3412, "tcp"},
+{"xmlblaster", {NULL}, 3412, "udp"},
+{"svnet", {NULL}, 3413, "tcp"},
+{"svnet", {NULL}, 3413, "udp"},
+{"wip-port", {NULL}, 3414, "tcp"},
+{"wip-port", {NULL}, 3414, "udp"},
+{"bcinameservice", {NULL}, 3415, "tcp"},
+{"bcinameservice", {NULL}, 3415, "udp"},
+{"commandport", {NULL}, 3416, "tcp"},
+{"commandport", {NULL}, 3416, "udp"},
+{"csvr", {NULL}, 3417, "tcp"},
+{"csvr", {NULL}, 3417, "udp"},
+{"rnmap", {NULL}, 3418, "tcp"},
+{"rnmap", {NULL}, 3418, "udp"},
+{"softaudit", {NULL}, 3419, "tcp"},
+{"softaudit", {NULL}, 3419, "udp"},
+{"ifcp-port", {NULL}, 3420, "tcp"},
+{"ifcp-port", {NULL}, 3420, "udp"},
+{"bmap", {NULL}, 3421, "tcp"},
+{"bmap", {NULL}, 3421, "udp"},
+{"rusb-sys-port", {NULL}, 3422, "tcp"},
+{"rusb-sys-port", {NULL}, 3422, "udp"},
+{"xtrm", {NULL}, 3423, "tcp"},
+{"xtrm", {NULL}, 3423, "udp"},
+{"xtrms", {NULL}, 3424, "tcp"},
+{"xtrms", {NULL}, 3424, "udp"},
+{"agps-port", {NULL}, 3425, "tcp"},
+{"agps-port", {NULL}, 3425, "udp"},
+{"arkivio", {NULL}, 3426, "tcp"},
+{"arkivio", {NULL}, 3426, "udp"},
+{"websphere-snmp", {NULL}, 3427, "tcp"},
+{"websphere-snmp", {NULL}, 3427, "udp"},
+{"twcss", {NULL}, 3428, "tcp"},
+{"twcss", {NULL}, 3428, "udp"},
+{"gcsp", {NULL}, 3429, "tcp"},
+{"gcsp", {NULL}, 3429, "udp"},
+{"ssdispatch", {NULL}, 3430, "tcp"},
+{"ssdispatch", {NULL}, 3430, "udp"},
+{"ndl-als", {NULL}, 3431, "tcp"},
+{"ndl-als", {NULL}, 3431, "udp"},
+{"osdcp", {NULL}, 3432, "tcp"},
+{"osdcp", {NULL}, 3432, "udp"},
+{"alta-smp", {NULL}, 3433, "tcp"},
+{"alta-smp", {NULL}, 3433, "udp"},
+{"opencm", {NULL}, 3434, "tcp"},
+{"opencm", {NULL}, 3434, "udp"},
+{"pacom", {NULL}, 3435, "tcp"},
+{"pacom", {NULL}, 3435, "udp"},
+{"gc-config", {NULL}, 3436, "tcp"},
+{"gc-config", {NULL}, 3436, "udp"},
+{"autocueds", {NULL}, 3437, "tcp"},
+{"autocueds", {NULL}, 3437, "udp"},
+{"spiral-admin", {NULL}, 3438, "tcp"},
+{"spiral-admin", {NULL}, 3438, "udp"},
+{"hri-port", {NULL}, 3439, "tcp"},
+{"hri-port", {NULL}, 3439, "udp"},
+{"ans-console", {NULL}, 3440, "tcp"},
+{"ans-console", {NULL}, 3440, "udp"},
+{"connect-client", {NULL}, 3441, "tcp"},
+{"connect-client", {NULL}, 3441, "udp"},
+{"connect-server", {NULL}, 3442, "tcp"},
+{"connect-server", {NULL}, 3442, "udp"},
+{"ov-nnm-websrv", {NULL}, 3443, "tcp"},
+{"ov-nnm-websrv", {NULL}, 3443, "udp"},
+{"denali-server", {NULL}, 3444, "tcp"},
+{"denali-server", {NULL}, 3444, "udp"},
+{"monp", {NULL}, 3445, "tcp"},
+{"monp", {NULL}, 3445, "udp"},
+{"3comfaxrpc", {NULL}, 3446, "tcp"},
+{"3comfaxrpc", {NULL}, 3446, "udp"},
+{"directnet", {NULL}, 3447, "tcp"},
+{"directnet", {NULL}, 3447, "udp"},
+{"dnc-port", {NULL}, 3448, "tcp"},
+{"dnc-port", {NULL}, 3448, "udp"},
+{"hotu-chat", {NULL}, 3449, "tcp"},
+{"hotu-chat", {NULL}, 3449, "udp"},
+{"castorproxy", {NULL}, 3450, "tcp"},
+{"castorproxy", {NULL}, 3450, "udp"},
+{"asam", {NULL}, 3451, "tcp"},
+{"asam", {NULL}, 3451, "udp"},
+{"sabp-signal", {NULL}, 3452, "tcp"},
+{"sabp-signal", {NULL}, 3452, "udp"},
+{"pscupd", {NULL}, 3453, "tcp"},
+{"pscupd", {NULL}, 3453, "udp"},
+{"mira", {NULL}, 3454, "tcp"},
+{"prsvp", {NULL}, 3455, "tcp"},
+{"prsvp", {NULL}, 3455, "udp"},
+{"vat", {NULL}, 3456, "tcp"},
+{"vat", {NULL}, 3456, "udp"},
+{"vat-control", {NULL}, 3457, "tcp"},
+{"vat-control", {NULL}, 3457, "udp"},
+{"d3winosfi", {NULL}, 3458, "tcp"},
+{"d3winosfi", {NULL}, 3458, "udp"},
+{"integral", {NULL}, 3459, "tcp"},
+{"integral", {NULL}, 3459, "udp"},
+{"edm-manager", {NULL}, 3460, "tcp"},
+{"edm-manager", {NULL}, 3460, "udp"},
+{"edm-stager", {NULL}, 3461, "tcp"},
+{"edm-stager", {NULL}, 3461, "udp"},
+{"edm-std-notify", {NULL}, 3462, "tcp"},
+{"edm-std-notify", {NULL}, 3462, "udp"},
+{"edm-adm-notify", {NULL}, 3463, "tcp"},
+{"edm-adm-notify", {NULL}, 3463, "udp"},
+{"edm-mgr-sync", {NULL}, 3464, "tcp"},
+{"edm-mgr-sync", {NULL}, 3464, "udp"},
+{"edm-mgr-cntrl", {NULL}, 3465, "tcp"},
+{"edm-mgr-cntrl", {NULL}, 3465, "udp"},
+{"workflow", {NULL}, 3466, "tcp"},
+{"workflow", {NULL}, 3466, "udp"},
+{"rcst", {NULL}, 3467, "tcp"},
+{"rcst", {NULL}, 3467, "udp"},
+{"ttcmremotectrl", {NULL}, 3468, "tcp"},
+{"ttcmremotectrl", {NULL}, 3468, "udp"},
+{"pluribus", {NULL}, 3469, "tcp"},
+{"pluribus", {NULL}, 3469, "udp"},
+{"jt400", {NULL}, 3470, "tcp"},
+{"jt400", {NULL}, 3470, "udp"},
+{"jt400-ssl", {NULL}, 3471, "tcp"},
+{"jt400-ssl", {NULL}, 3471, "udp"},
+{"jaugsremotec-1", {NULL}, 3472, "tcp"},
+{"jaugsremotec-1", {NULL}, 3472, "udp"},
+{"jaugsremotec-2", {NULL}, 3473, "tcp"},
+{"jaugsremotec-2", {NULL}, 3473, "udp"},
+{"ttntspauto", {NULL}, 3474, "tcp"},
+{"ttntspauto", {NULL}, 3474, "udp"},
+{"genisar-port", {NULL}, 3475, "tcp"},
+{"genisar-port", {NULL}, 3475, "udp"},
+{"nppmp", {NULL}, 3476, "tcp"},
+{"nppmp", {NULL}, 3476, "udp"},
+{"ecomm", {NULL}, 3477, "tcp"},
+{"ecomm", {NULL}, 3477, "udp"},
+{"stun", {NULL}, 3478, "tcp"},
+{"stun", {NULL}, 3478, "udp"},
+{"turn", {NULL}, 3478, "tcp"},
+{"turn", {NULL}, 3478, "udp"},
+{"stun-behavior", {NULL}, 3478, "tcp"},
+{"stun-behavior", {NULL}, 3478, "udp"},
+{"twrpc", {NULL}, 3479, "tcp"},
+{"twrpc", {NULL}, 3479, "udp"},
+{"plethora", {NULL}, 3480, "tcp"},
+{"plethora", {NULL}, 3480, "udp"},
+{"cleanerliverc", {NULL}, 3481, "tcp"},
+{"cleanerliverc", {NULL}, 3481, "udp"},
+{"vulture", {NULL}, 3482, "tcp"},
+{"vulture", {NULL}, 3482, "udp"},
+{"slim-devices", {NULL}, 3483, "tcp"},
+{"slim-devices", {NULL}, 3483, "udp"},
+{"gbs-stp", {NULL}, 3484, "tcp"},
+{"gbs-stp", {NULL}, 3484, "udp"},
+{"celatalk", {NULL}, 3485, "tcp"},
+{"celatalk", {NULL}, 3485, "udp"},
+{"ifsf-hb-port", {NULL}, 3486, "tcp"},
+{"ifsf-hb-port", {NULL}, 3486, "udp"},
+{"ltctcp", {NULL}, 3487, "tcp"},
+{"ltcudp", {NULL}, 3487, "udp"},
+{"fs-rh-srv", {NULL}, 3488, "tcp"},
+{"fs-rh-srv", {NULL}, 3488, "udp"},
+{"dtp-dia", {NULL}, 3489, "tcp"},
+{"dtp-dia", {NULL}, 3489, "udp"},
+{"colubris", {NULL}, 3490, "tcp"},
+{"colubris", {NULL}, 3490, "udp"},
+{"swr-port", {NULL}, 3491, "tcp"},
+{"swr-port", {NULL}, 3491, "udp"},
+{"tvdumtray-port", {NULL}, 3492, "tcp"},
+{"tvdumtray-port", {NULL}, 3492, "udp"},
+{"nut", {NULL}, 3493, "tcp"},
+{"nut", {NULL}, 3493, "udp"},
+{"ibm3494", {NULL}, 3494, "tcp"},
+{"ibm3494", {NULL}, 3494, "udp"},
+{"seclayer-tcp", {NULL}, 3495, "tcp"},
+{"seclayer-tcp", {NULL}, 3495, "udp"},
+{"seclayer-tls", {NULL}, 3496, "tcp"},
+{"seclayer-tls", {NULL}, 3496, "udp"},
+{"ipether232port", {NULL}, 3497, "tcp"},
+{"ipether232port", {NULL}, 3497, "udp"},
+{"dashpas-port", {NULL}, 3498, "tcp"},
+{"dashpas-port", {NULL}, 3498, "udp"},
+{"sccip-media", {NULL}, 3499, "tcp"},
+{"sccip-media", {NULL}, 3499, "udp"},
+{"rtmp-port", {NULL}, 3500, "tcp"},
+{"rtmp-port", {NULL}, 3500, "udp"},
+{"isoft-p2p", {NULL}, 3501, "tcp"},
+{"isoft-p2p", {NULL}, 3501, "udp"},
+{"avinstalldisc", {NULL}, 3502, "tcp"},
+{"avinstalldisc", {NULL}, 3502, "udp"},
+{"lsp-ping", {NULL}, 3503, "tcp"},
+{"lsp-ping", {NULL}, 3503, "udp"},
+{"ironstorm", {NULL}, 3504, "tcp"},
+{"ironstorm", {NULL}, 3504, "udp"},
+{"ccmcomm", {NULL}, 3505, "tcp"},
+{"ccmcomm", {NULL}, 3505, "udp"},
+{"apc-3506", {NULL}, 3506, "tcp"},
+{"apc-3506", {NULL}, 3506, "udp"},
+{"nesh-broker", {NULL}, 3507, "tcp"},
+{"nesh-broker", {NULL}, 3507, "udp"},
+{"interactionweb", {NULL}, 3508, "tcp"},
+{"interactionweb", {NULL}, 3508, "udp"},
+{"vt-ssl", {NULL}, 3509, "tcp"},
+{"vt-ssl", {NULL}, 3509, "udp"},
+{"xss-port", {NULL}, 3510, "tcp"},
+{"xss-port", {NULL}, 3510, "udp"},
+{"webmail-2", {NULL}, 3511, "tcp"},
+{"webmail-2", {NULL}, 3511, "udp"},
+{"aztec", {NULL}, 3512, "tcp"},
+{"aztec", {NULL}, 3512, "udp"},
+{"arcpd", {NULL}, 3513, "tcp"},
+{"arcpd", {NULL}, 3513, "udp"},
+{"must-p2p", {NULL}, 3514, "tcp"},
+{"must-p2p", {NULL}, 3514, "udp"},
+{"must-backplane", {NULL}, 3515, "tcp"},
+{"must-backplane", {NULL}, 3515, "udp"},
+{"smartcard-port", {NULL}, 3516, "tcp"},
+{"smartcard-port", {NULL}, 3516, "udp"},
+{"802-11-iapp", {NULL}, 3517, "tcp"},
+{"802-11-iapp", {NULL}, 3517, "udp"},
+{"artifact-msg", {NULL}, 3518, "tcp"},
+{"artifact-msg", {NULL}, 3518, "udp"},
+{"nvmsgd", {NULL}, 3519, "tcp"},
+{"galileo", {NULL}, 3519, "udp"},
+{"galileolog", {NULL}, 3520, "tcp"},
+{"galileolog", {NULL}, 3520, "udp"},
+{"mc3ss", {NULL}, 3521, "tcp"},
+{"mc3ss", {NULL}, 3521, "udp"},
+{"nssocketport", {NULL}, 3522, "tcp"},
+{"nssocketport", {NULL}, 3522, "udp"},
+{"odeumservlink", {NULL}, 3523, "tcp"},
+{"odeumservlink", {NULL}, 3523, "udp"},
+{"ecmport", {NULL}, 3524, "tcp"},
+{"ecmport", {NULL}, 3524, "udp"},
+{"eisport", {NULL}, 3525, "tcp"},
+{"eisport", {NULL}, 3525, "udp"},
+{"starquiz-port", {NULL}, 3526, "tcp"},
+{"starquiz-port", {NULL}, 3526, "udp"},
+{"beserver-msg-q", {NULL}, 3527, "tcp"},
+{"beserver-msg-q", {NULL}, 3527, "udp"},
+{"jboss-iiop", {NULL}, 3528, "tcp"},
+{"jboss-iiop", {NULL}, 3528, "udp"},
+{"jboss-iiop-ssl", {NULL}, 3529, "tcp"},
+{"jboss-iiop-ssl", {NULL}, 3529, "udp"},
+{"gf", {NULL}, 3530, "tcp"},
+{"gf", {NULL}, 3530, "udp"},
+{"joltid", {NULL}, 3531, "tcp"},
+{"joltid", {NULL}, 3531, "udp"},
+{"raven-rmp", {NULL}, 3532, "tcp"},
+{"raven-rmp", {NULL}, 3532, "udp"},
+{"raven-rdp", {NULL}, 3533, "tcp"},
+{"raven-rdp", {NULL}, 3533, "udp"},
+{"urld-port", {NULL}, 3534, "tcp"},
+{"urld-port", {NULL}, 3534, "udp"},
+{"ms-la", {NULL}, 3535, "tcp"},
+{"ms-la", {NULL}, 3535, "udp"},
+{"snac", {NULL}, 3536, "tcp"},
+{"snac", {NULL}, 3536, "udp"},
+{"ni-visa-remote", {NULL}, 3537, "tcp"},
+{"ni-visa-remote", {NULL}, 3537, "udp"},
+{"ibm-diradm", {NULL}, 3538, "tcp"},
+{"ibm-diradm", {NULL}, 3538, "udp"},
+{"ibm-diradm-ssl", {NULL}, 3539, "tcp"},
+{"ibm-diradm-ssl", {NULL}, 3539, "udp"},
+{"pnrp-port", {NULL}, 3540, "tcp"},
+{"pnrp-port", {NULL}, 3540, "udp"},
+{"voispeed-port", {NULL}, 3541, "tcp"},
+{"voispeed-port", {NULL}, 3541, "udp"},
+{"hacl-monitor", {NULL}, 3542, "tcp"},
+{"hacl-monitor", {NULL}, 3542, "udp"},
+{"qftest-lookup", {NULL}, 3543, "tcp"},
+{"qftest-lookup", {NULL}, 3543, "udp"},
+{"teredo", {NULL}, 3544, "tcp"},
+{"teredo", {NULL}, 3544, "udp"},
+{"camac", {NULL}, 3545, "tcp"},
+{"camac", {NULL}, 3545, "udp"},
+{"symantec-sim", {NULL}, 3547, "tcp"},
+{"symantec-sim", {NULL}, 3547, "udp"},
+{"interworld", {NULL}, 3548, "tcp"},
+{"interworld", {NULL}, 3548, "udp"},
+{"tellumat-nms", {NULL}, 3549, "tcp"},
+{"tellumat-nms", {NULL}, 3549, "udp"},
+{"ssmpp", {NULL}, 3550, "tcp"},
+{"ssmpp", {NULL}, 3550, "udp"},
+{"apcupsd", {NULL}, 3551, "tcp"},
+{"apcupsd", {NULL}, 3551, "udp"},
+{"taserver", {NULL}, 3552, "tcp"},
+{"taserver", {NULL}, 3552, "udp"},
+{"rbr-discovery", {NULL}, 3553, "tcp"},
+{"rbr-discovery", {NULL}, 3553, "udp"},
+{"questnotify", {NULL}, 3554, "tcp"},
+{"questnotify", {NULL}, 3554, "udp"},
+{"razor", {NULL}, 3555, "tcp"},
+{"razor", {NULL}, 3555, "udp"},
+{"sky-transport", {NULL}, 3556, "tcp"},
+{"sky-transport", {NULL}, 3556, "udp"},
+{"personalos-001", {NULL}, 3557, "tcp"},
+{"personalos-001", {NULL}, 3557, "udp"},
+{"mcp-port", {NULL}, 3558, "tcp"},
+{"mcp-port", {NULL}, 3558, "udp"},
+{"cctv-port", {NULL}, 3559, "tcp"},
+{"cctv-port", {NULL}, 3559, "udp"},
+{"iniserve-port", {NULL}, 3560, "tcp"},
+{"iniserve-port", {NULL}, 3560, "udp"},
+{"bmc-onekey", {NULL}, 3561, "tcp"},
+{"bmc-onekey", {NULL}, 3561, "udp"},
+{"sdbproxy", {NULL}, 3562, "tcp"},
+{"sdbproxy", {NULL}, 3562, "udp"},
+{"watcomdebug", {NULL}, 3563, "tcp"},
+{"watcomdebug", {NULL}, 3563, "udp"},
+{"esimport", {NULL}, 3564, "tcp"},
+{"esimport", {NULL}, 3564, "udp"},
+{"m2pa", {NULL}, 3565, "tcp"},
+{"m2pa", {NULL}, 3565, "sctp"},
+{"quest-data-hub", {NULL}, 3566, "tcp"},
+{"oap", {NULL}, 3567, "tcp"},
+{"oap", {NULL}, 3567, "udp"},
+{"oap-s", {NULL}, 3568, "tcp"},
+{"oap-s", {NULL}, 3568, "udp"},
+{"mbg-ctrl", {NULL}, 3569, "tcp"},
+{"mbg-ctrl", {NULL}, 3569, "udp"},
+{"mccwebsvr-port", {NULL}, 3570, "tcp"},
+{"mccwebsvr-port", {NULL}, 3570, "udp"},
+{"megardsvr-port", {NULL}, 3571, "tcp"},
+{"megardsvr-port", {NULL}, 3571, "udp"},
+{"megaregsvrport", {NULL}, 3572, "tcp"},
+{"megaregsvrport", {NULL}, 3572, "udp"},
+{"tag-ups-1", {NULL}, 3573, "tcp"},
+{"tag-ups-1", {NULL}, 3573, "udp"},
+{"dmaf-server", {NULL}, 3574, "tcp"},
+{"dmaf-caster", {NULL}, 3574, "udp"},
+{"ccm-port", {NULL}, 3575, "tcp"},
+{"ccm-port", {NULL}, 3575, "udp"},
+{"cmc-port", {NULL}, 3576, "tcp"},
+{"cmc-port", {NULL}, 3576, "udp"},
+{"config-port", {NULL}, 3577, "tcp"},
+{"config-port", {NULL}, 3577, "udp"},
+{"data-port", {NULL}, 3578, "tcp"},
+{"data-port", {NULL}, 3578, "udp"},
+{"ttat3lb", {NULL}, 3579, "tcp"},
+{"ttat3lb", {NULL}, 3579, "udp"},
+{"nati-svrloc", {NULL}, 3580, "tcp"},
+{"nati-svrloc", {NULL}, 3580, "udp"},
+{"kfxaclicensing", {NULL}, 3581, "tcp"},
+{"kfxaclicensing", {NULL}, 3581, "udp"},
+{"press", {NULL}, 3582, "tcp"},
+{"press", {NULL}, 3582, "udp"},
+{"canex-watch", {NULL}, 3583, "tcp"},
+{"canex-watch", {NULL}, 3583, "udp"},
+{"u-dbap", {NULL}, 3584, "tcp"},
+{"u-dbap", {NULL}, 3584, "udp"},
+{"emprise-lls", {NULL}, 3585, "tcp"},
+{"emprise-lls", {NULL}, 3585, "udp"},
+{"emprise-lsc", {NULL}, 3586, "tcp"},
+{"emprise-lsc", {NULL}, 3586, "udp"},
+{"p2pgroup", {NULL}, 3587, "tcp"},
+{"p2pgroup", {NULL}, 3587, "udp"},
+{"sentinel", {NULL}, 3588, "tcp"},
+{"sentinel", {NULL}, 3588, "udp"},
+{"isomair", {NULL}, 3589, "tcp"},
+{"isomair", {NULL}, 3589, "udp"},
+{"wv-csp-sms", {NULL}, 3590, "tcp"},
+{"wv-csp-sms", {NULL}, 3590, "udp"},
+{"gtrack-server", {NULL}, 3591, "tcp"},
+{"gtrack-server", {NULL}, 3591, "udp"},
+{"gtrack-ne", {NULL}, 3592, "tcp"},
+{"gtrack-ne", {NULL}, 3592, "udp"},
+{"bpmd", {NULL}, 3593, "tcp"},
+{"bpmd", {NULL}, 3593, "udp"},
+{"mediaspace", {NULL}, 3594, "tcp"},
+{"mediaspace", {NULL}, 3594, "udp"},
+{"shareapp", {NULL}, 3595, "tcp"},
+{"shareapp", {NULL}, 3595, "udp"},
+{"iw-mmogame", {NULL}, 3596, "tcp"},
+{"iw-mmogame", {NULL}, 3596, "udp"},
+{"a14", {NULL}, 3597, "tcp"},
+{"a14", {NULL}, 3597, "udp"},
+{"a15", {NULL}, 3598, "tcp"},
+{"a15", {NULL}, 3598, "udp"},
+{"quasar-server", {NULL}, 3599, "tcp"},
+{"quasar-server", {NULL}, 3599, "udp"},
+{"trap-daemon", {NULL}, 3600, "tcp"},
+{"trap-daemon", {NULL}, 3600, "udp"},
+{"visinet-gui", {NULL}, 3601, "tcp"},
+{"visinet-gui", {NULL}, 3601, "udp"},
+{"infiniswitchcl", {NULL}, 3602, "tcp"},
+{"infiniswitchcl", {NULL}, 3602, "udp"},
+{"int-rcv-cntrl", {NULL}, 3603, "tcp"},
+{"int-rcv-cntrl", {NULL}, 3603, "udp"},
+{"bmc-jmx-port", {NULL}, 3604, "tcp"},
+{"bmc-jmx-port", {NULL}, 3604, "udp"},
+{"comcam-io", {NULL}, 3605, "tcp"},
+{"comcam-io", {NULL}, 3605, "udp"},
+{"splitlock", {NULL}, 3606, "tcp"},
+{"splitlock", {NULL}, 3606, "udp"},
+{"precise-i3", {NULL}, 3607, "tcp"},
+{"precise-i3", {NULL}, 3607, "udp"},
+{"trendchip-dcp", {NULL}, 3608, "tcp"},
+{"trendchip-dcp", {NULL}, 3608, "udp"},
+{"cpdi-pidas-cm", {NULL}, 3609, "tcp"},
+{"cpdi-pidas-cm", {NULL}, 3609, "udp"},
+{"echonet", {NULL}, 3610, "tcp"},
+{"echonet", {NULL}, 3610, "udp"},
+{"six-degrees", {NULL}, 3611, "tcp"},
+{"six-degrees", {NULL}, 3611, "udp"},
+{"hp-dataprotect", {NULL}, 3612, "tcp"},
+{"hp-dataprotect", {NULL}, 3612, "udp"},
+{"alaris-disc", {NULL}, 3613, "tcp"},
+{"alaris-disc", {NULL}, 3613, "udp"},
+{"sigma-port", {NULL}, 3614, "tcp"},
+{"sigma-port", {NULL}, 3614, "udp"},
+{"start-network", {NULL}, 3615, "tcp"},
+{"start-network", {NULL}, 3615, "udp"},
+{"cd3o-protocol", {NULL}, 3616, "tcp"},
+{"cd3o-protocol", {NULL}, 3616, "udp"},
+{"sharp-server", {NULL}, 3617, "tcp"},
+{"sharp-server", {NULL}, 3617, "udp"},
+{"aairnet-1", {NULL}, 3618, "tcp"},
+{"aairnet-1", {NULL}, 3618, "udp"},
+{"aairnet-2", {NULL}, 3619, "tcp"},
+{"aairnet-2", {NULL}, 3619, "udp"},
+{"ep-pcp", {NULL}, 3620, "tcp"},
+{"ep-pcp", {NULL}, 3620, "udp"},
+{"ep-nsp", {NULL}, 3621, "tcp"},
+{"ep-nsp", {NULL}, 3621, "udp"},
+{"ff-lr-port", {NULL}, 3622, "tcp"},
+{"ff-lr-port", {NULL}, 3622, "udp"},
+{"haipe-discover", {NULL}, 3623, "tcp"},
+{"haipe-discover", {NULL}, 3623, "udp"},
+{"dist-upgrade", {NULL}, 3624, "tcp"},
+{"dist-upgrade", {NULL}, 3624, "udp"},
+{"volley", {NULL}, 3625, "tcp"},
+{"volley", {NULL}, 3625, "udp"},
+{"bvcdaemon-port", {NULL}, 3626, "tcp"},
+{"bvcdaemon-port", {NULL}, 3626, "udp"},
+{"jamserverport", {NULL}, 3627, "tcp"},
+{"jamserverport", {NULL}, 3627, "udp"},
+{"ept-machine", {NULL}, 3628, "tcp"},
+{"ept-machine", {NULL}, 3628, "udp"},
+{"escvpnet", {NULL}, 3629, "tcp"},
+{"escvpnet", {NULL}, 3629, "udp"},
+{"cs-remote-db", {NULL}, 3630, "tcp"},
+{"cs-remote-db", {NULL}, 3630, "udp"},
+{"cs-services", {NULL}, 3631, "tcp"},
+{"cs-services", {NULL}, 3631, "udp"},
+{"distcc", {NULL}, 3632, "tcp"},
+{"distcc", {NULL}, 3632, "udp"},
+{"wacp", {NULL}, 3633, "tcp"},
+{"wacp", {NULL}, 3633, "udp"},
+{"hlibmgr", {NULL}, 3634, "tcp"},
+{"hlibmgr", {NULL}, 3634, "udp"},
+{"sdo", {NULL}, 3635, "tcp"},
+{"sdo", {NULL}, 3635, "udp"},
+{"servistaitsm", {NULL}, 3636, "tcp"},
+{"servistaitsm", {NULL}, 3636, "udp"},
+{"scservp", {NULL}, 3637, "tcp"},
+{"scservp", {NULL}, 3637, "udp"},
+{"ehp-backup", {NULL}, 3638, "tcp"},
+{"ehp-backup", {NULL}, 3638, "udp"},
+{"xap-ha", {NULL}, 3639, "tcp"},
+{"xap-ha", {NULL}, 3639, "udp"},
+{"netplay-port1", {NULL}, 3640, "tcp"},
+{"netplay-port1", {NULL}, 3640, "udp"},
+{"netplay-port2", {NULL}, 3641, "tcp"},
+{"netplay-port2", {NULL}, 3641, "udp"},
+{"juxml-port", {NULL}, 3642, "tcp"},
+{"juxml-port", {NULL}, 3642, "udp"},
+{"audiojuggler", {NULL}, 3643, "tcp"},
+{"audiojuggler", {NULL}, 3643, "udp"},
+{"ssowatch", {NULL}, 3644, "tcp"},
+{"ssowatch", {NULL}, 3644, "udp"},
+{"cyc", {NULL}, 3645, "tcp"},
+{"cyc", {NULL}, 3645, "udp"},
+{"xss-srv-port", {NULL}, 3646, "tcp"},
+{"xss-srv-port", {NULL}, 3646, "udp"},
+{"splitlock-gw", {NULL}, 3647, "tcp"},
+{"splitlock-gw", {NULL}, 3647, "udp"},
+{"fjcp", {NULL}, 3648, "tcp"},
+{"fjcp", {NULL}, 3648, "udp"},
+{"nmmp", {NULL}, 3649, "tcp"},
+{"nmmp", {NULL}, 3649, "udp"},
+{"prismiq-plugin", {NULL}, 3650, "tcp"},
+{"prismiq-plugin", {NULL}, 3650, "udp"},
+{"xrpc-registry", {NULL}, 3651, "tcp"},
+{"xrpc-registry", {NULL}, 3651, "udp"},
+{"vxcrnbuport", {NULL}, 3652, "tcp"},
+{"vxcrnbuport", {NULL}, 3652, "udp"},
+{"tsp", {NULL}, 3653, "tcp"},
+{"tsp", {NULL}, 3653, "udp"},
+{"vaprtm", {NULL}, 3654, "tcp"},
+{"vaprtm", {NULL}, 3654, "udp"},
+{"abatemgr", {NULL}, 3655, "tcp"},
+{"abatemgr", {NULL}, 3655, "udp"},
+{"abatjss", {NULL}, 3656, "tcp"},
+{"abatjss", {NULL}, 3656, "udp"},
+{"immedianet-bcn", {NULL}, 3657, "tcp"},
+{"immedianet-bcn", {NULL}, 3657, "udp"},
+{"ps-ams", {NULL}, 3658, "tcp"},
+{"ps-ams", {NULL}, 3658, "udp"},
+{"apple-sasl", {NULL}, 3659, "tcp"},
+{"apple-sasl", {NULL}, 3659, "udp"},
+{"can-nds-ssl", {NULL}, 3660, "tcp"},
+{"can-nds-ssl", {NULL}, 3660, "udp"},
+{"can-ferret-ssl", {NULL}, 3661, "tcp"},
+{"can-ferret-ssl", {NULL}, 3661, "udp"},
+{"pserver", {NULL}, 3662, "tcp"},
+{"pserver", {NULL}, 3662, "udp"},
+{"dtp", {NULL}, 3663, "tcp"},
+{"dtp", {NULL}, 3663, "udp"},
+{"ups-engine", {NULL}, 3664, "tcp"},
+{"ups-engine", {NULL}, 3664, "udp"},
+{"ent-engine", {NULL}, 3665, "tcp"},
+{"ent-engine", {NULL}, 3665, "udp"},
+{"eserver-pap", {NULL}, 3666, "tcp"},
+{"eserver-pap", {NULL}, 3666, "udp"},
+{"infoexch", {NULL}, 3667, "tcp"},
+{"infoexch", {NULL}, 3667, "udp"},
+{"dell-rm-port", {NULL}, 3668, "tcp"},
+{"dell-rm-port", {NULL}, 3668, "udp"},
+{"casanswmgmt", {NULL}, 3669, "tcp"},
+{"casanswmgmt", {NULL}, 3669, "udp"},
+{"smile", {NULL}, 3670, "tcp"},
+{"smile", {NULL}, 3670, "udp"},
+{"efcp", {NULL}, 3671, "tcp"},
+{"efcp", {NULL}, 3671, "udp"},
+{"lispworks-orb", {NULL}, 3672, "tcp"},
+{"lispworks-orb", {NULL}, 3672, "udp"},
+{"mediavault-gui", {NULL}, 3673, "tcp"},
+{"mediavault-gui", {NULL}, 3673, "udp"},
+{"wininstall-ipc", {NULL}, 3674, "tcp"},
+{"wininstall-ipc", {NULL}, 3674, "udp"},
+{"calltrax", {NULL}, 3675, "tcp"},
+{"calltrax", {NULL}, 3675, "udp"},
+{"va-pacbase", {NULL}, 3676, "tcp"},
+{"va-pacbase", {NULL}, 3676, "udp"},
+{"roverlog", {NULL}, 3677, "tcp"},
+{"roverlog", {NULL}, 3677, "udp"},
+{"ipr-dglt", {NULL}, 3678, "tcp"},
+{"ipr-dglt", {NULL}, 3678, "udp"},
+{"newton-dock", {NULL}, 3679, "tcp"},
+{"newton-dock", {NULL}, 3679, "udp"},
+{"npds-tracker", {NULL}, 3680, "tcp"},
+{"npds-tracker", {NULL}, 3680, "udp"},
+{"bts-x73", {NULL}, 3681, "tcp"},
+{"bts-x73", {NULL}, 3681, "udp"},
+{"cas-mapi", {NULL}, 3682, "tcp"},
+{"cas-mapi", {NULL}, 3682, "udp"},
+{"bmc-ea", {NULL}, 3683, "tcp"},
+{"bmc-ea", {NULL}, 3683, "udp"},
+{"faxstfx-port", {NULL}, 3684, "tcp"},
+{"faxstfx-port", {NULL}, 3684, "udp"},
+{"dsx-agent", {NULL}, 3685, "tcp"},
+{"dsx-agent", {NULL}, 3685, "udp"},
+{"tnmpv2", {NULL}, 3686, "tcp"},
+{"tnmpv2", {NULL}, 3686, "udp"},
+{"simple-push", {NULL}, 3687, "tcp"},
+{"simple-push", {NULL}, 3687, "udp"},
+{"simple-push-s", {NULL}, 3688, "tcp"},
+{"simple-push-s", {NULL}, 3688, "udp"},
+{"daap", {NULL}, 3689, "tcp"},
+{"daap", {NULL}, 3689, "udp"},
+{"svn", {NULL}, 3690, "tcp"},
+{"svn", {NULL}, 3690, "udp"},
+{"magaya-network", {NULL}, 3691, "tcp"},
+{"magaya-network", {NULL}, 3691, "udp"},
+{"intelsync", {NULL}, 3692, "tcp"},
+{"intelsync", {NULL}, 3692, "udp"},
+{"bmc-data-coll", {NULL}, 3695, "tcp"},
+{"bmc-data-coll", {NULL}, 3695, "udp"},
+{"telnetcpcd", {NULL}, 3696, "tcp"},
+{"telnetcpcd", {NULL}, 3696, "udp"},
+{"nw-license", {NULL}, 3697, "tcp"},
+{"nw-license", {NULL}, 3697, "udp"},
+{"sagectlpanel", {NULL}, 3698, "tcp"},
+{"sagectlpanel", {NULL}, 3698, "udp"},
+{"kpn-icw", {NULL}, 3699, "tcp"},
+{"kpn-icw", {NULL}, 3699, "udp"},
+{"lrs-paging", {NULL}, 3700, "tcp"},
+{"lrs-paging", {NULL}, 3700, "udp"},
+{"netcelera", {NULL}, 3701, "tcp"},
+{"netcelera", {NULL}, 3701, "udp"},
+{"ws-discovery", {NULL}, 3702, "tcp"},
+{"ws-discovery", {NULL}, 3702, "udp"},
+{"adobeserver-3", {NULL}, 3703, "tcp"},
+{"adobeserver-3", {NULL}, 3703, "udp"},
+{"adobeserver-4", {NULL}, 3704, "tcp"},
+{"adobeserver-4", {NULL}, 3704, "udp"},
+{"adobeserver-5", {NULL}, 3705, "tcp"},
+{"adobeserver-5", {NULL}, 3705, "udp"},
+{"rt-event", {NULL}, 3706, "tcp"},
+{"rt-event", {NULL}, 3706, "udp"},
+{"rt-event-s", {NULL}, 3707, "tcp"},
+{"rt-event-s", {NULL}, 3707, "udp"},
+{"sun-as-iiops", {NULL}, 3708, "tcp"},
+{"sun-as-iiops", {NULL}, 3708, "udp"},
+{"ca-idms", {NULL}, 3709, "tcp"},
+{"ca-idms", {NULL}, 3709, "udp"},
+{"portgate-auth", {NULL}, 3710, "tcp"},
+{"portgate-auth", {NULL}, 3710, "udp"},
+{"edb-server2", {NULL}, 3711, "tcp"},
+{"edb-server2", {NULL}, 3711, "udp"},
+{"sentinel-ent", {NULL}, 3712, "tcp"},
+{"sentinel-ent", {NULL}, 3712, "udp"},
+{"tftps", {NULL}, 3713, "tcp"},
+{"tftps", {NULL}, 3713, "udp"},
+{"delos-dms", {NULL}, 3714, "tcp"},
+{"delos-dms", {NULL}, 3714, "udp"},
+{"anoto-rendezv", {NULL}, 3715, "tcp"},
+{"anoto-rendezv", {NULL}, 3715, "udp"},
+{"wv-csp-sms-cir", {NULL}, 3716, "tcp"},
+{"wv-csp-sms-cir", {NULL}, 3716, "udp"},
+{"wv-csp-udp-cir", {NULL}, 3717, "tcp"},
+{"wv-csp-udp-cir", {NULL}, 3717, "udp"},
+{"opus-services", {NULL}, 3718, "tcp"},
+{"opus-services", {NULL}, 3718, "udp"},
+{"itelserverport", {NULL}, 3719, "tcp"},
+{"itelserverport", {NULL}, 3719, "udp"},
+{"ufastro-instr", {NULL}, 3720, "tcp"},
+{"ufastro-instr", {NULL}, 3720, "udp"},
+{"xsync", {NULL}, 3721, "tcp"},
+{"xsync", {NULL}, 3721, "udp"},
+{"xserveraid", {NULL}, 3722, "tcp"},
+{"xserveraid", {NULL}, 3722, "udp"},
+{"sychrond", {NULL}, 3723, "tcp"},
+{"sychrond", {NULL}, 3723, "udp"},
+{"blizwow", {NULL}, 3724, "tcp"},
+{"blizwow", {NULL}, 3724, "udp"},
+{"na-er-tip", {NULL}, 3725, "tcp"},
+{"na-er-tip", {NULL}, 3725, "udp"},
+{"array-manager", {NULL}, 3726, "tcp"},
+{"array-manager", {NULL}, 3726, "udp"},
+{"e-mdu", {NULL}, 3727, "tcp"},
+{"e-mdu", {NULL}, 3727, "udp"},
+{"e-woa", {NULL}, 3728, "tcp"},
+{"e-woa", {NULL}, 3728, "udp"},
+{"fksp-audit", {NULL}, 3729, "tcp"},
+{"fksp-audit", {NULL}, 3729, "udp"},
+{"client-ctrl", {NULL}, 3730, "tcp"},
+{"client-ctrl", {NULL}, 3730, "udp"},
+{"smap", {NULL}, 3731, "tcp"},
+{"smap", {NULL}, 3731, "udp"},
+{"m-wnn", {NULL}, 3732, "tcp"},
+{"m-wnn", {NULL}, 3732, "udp"},
+{"multip-msg", {NULL}, 3733, "tcp"},
+{"multip-msg", {NULL}, 3733, "udp"},
+{"synel-data", {NULL}, 3734, "tcp"},
+{"synel-data", {NULL}, 3734, "udp"},
+{"pwdis", {NULL}, 3735, "tcp"},
+{"pwdis", {NULL}, 3735, "udp"},
+{"rs-rmi", {NULL}, 3736, "tcp"},
+{"rs-rmi", {NULL}, 3736, "udp"},
+{"xpanel", {NULL}, 3737, "tcp"},
+{"versatalk", {NULL}, 3738, "tcp"},
+{"versatalk", {NULL}, 3738, "udp"},
+{"launchbird-lm", {NULL}, 3739, "tcp"},
+{"launchbird-lm", {NULL}, 3739, "udp"},
+{"heartbeat", {NULL}, 3740, "tcp"},
+{"heartbeat", {NULL}, 3740, "udp"},
+{"wysdma", {NULL}, 3741, "tcp"},
+{"wysdma", {NULL}, 3741, "udp"},
+{"cst-port", {NULL}, 3742, "tcp"},
+{"cst-port", {NULL}, 3742, "udp"},
+{"ipcs-command", {NULL}, 3743, "tcp"},
+{"ipcs-command", {NULL}, 3743, "udp"},
+{"sasg", {NULL}, 3744, "tcp"},
+{"sasg", {NULL}, 3744, "udp"},
+{"gw-call-port", {NULL}, 3745, "tcp"},
+{"gw-call-port", {NULL}, 3745, "udp"},
+{"linktest", {NULL}, 3746, "tcp"},
+{"linktest", {NULL}, 3746, "udp"},
+{"linktest-s", {NULL}, 3747, "tcp"},
+{"linktest-s", {NULL}, 3747, "udp"},
+{"webdata", {NULL}, 3748, "tcp"},
+{"webdata", {NULL}, 3748, "udp"},
+{"cimtrak", {NULL}, 3749, "tcp"},
+{"cimtrak", {NULL}, 3749, "udp"},
+{"cbos-ip-port", {NULL}, 3750, "tcp"},
+{"cbos-ip-port", {NULL}, 3750, "udp"},
+{"gprs-cube", {NULL}, 3751, "tcp"},
+{"gprs-cube", {NULL}, 3751, "udp"},
+{"vipremoteagent", {NULL}, 3752, "tcp"},
+{"vipremoteagent", {NULL}, 3752, "udp"},
+{"nattyserver", {NULL}, 3753, "tcp"},
+{"nattyserver", {NULL}, 3753, "udp"},
+{"timestenbroker", {NULL}, 3754, "tcp"},
+{"timestenbroker", {NULL}, 3754, "udp"},
+{"sas-remote-hlp", {NULL}, 3755, "tcp"},
+{"sas-remote-hlp", {NULL}, 3755, "udp"},
+{"canon-capt", {NULL}, 3756, "tcp"},
+{"canon-capt", {NULL}, 3756, "udp"},
+{"grf-port", {NULL}, 3757, "tcp"},
+{"grf-port", {NULL}, 3757, "udp"},
+{"apw-registry", {NULL}, 3758, "tcp"},
+{"apw-registry", {NULL}, 3758, "udp"},
+{"exapt-lmgr", {NULL}, 3759, "tcp"},
+{"exapt-lmgr", {NULL}, 3759, "udp"},
+{"adtempusclient", {NULL}, 3760, "tcp"},
+{"adtempusclient", {NULL}, 3760, "udp"},
+{"gsakmp", {NULL}, 3761, "tcp"},
+{"gsakmp", {NULL}, 3761, "udp"},
+{"gbs-smp", {NULL}, 3762, "tcp"},
+{"gbs-smp", {NULL}, 3762, "udp"},
+{"xo-wave", {NULL}, 3763, "tcp"},
+{"xo-wave", {NULL}, 3763, "udp"},
+{"mni-prot-rout", {NULL}, 3764, "tcp"},
+{"mni-prot-rout", {NULL}, 3764, "udp"},
+{"rtraceroute", {NULL}, 3765, "tcp"},
+{"rtraceroute", {NULL}, 3765, "udp"},
+{"listmgr-port", {NULL}, 3767, "tcp"},
+{"listmgr-port", {NULL}, 3767, "udp"},
+{"rblcheckd", {NULL}, 3768, "tcp"},
+{"rblcheckd", {NULL}, 3768, "udp"},
+{"haipe-otnk", {NULL}, 3769, "tcp"},
+{"haipe-otnk", {NULL}, 3769, "udp"},
+{"cindycollab", {NULL}, 3770, "tcp"},
+{"cindycollab", {NULL}, 3770, "udp"},
+{"paging-port", {NULL}, 3771, "tcp"},
+{"paging-port", {NULL}, 3771, "udp"},
+{"ctp", {NULL}, 3772, "tcp"},
+{"ctp", {NULL}, 3772, "udp"},
+{"ctdhercules", {NULL}, 3773, "tcp"},
+{"ctdhercules", {NULL}, 3773, "udp"},
+{"zicom", {NULL}, 3774, "tcp"},
+{"zicom", {NULL}, 3774, "udp"},
+{"ispmmgr", {NULL}, 3775, "tcp"},
+{"ispmmgr", {NULL}, 3775, "udp"},
+{"dvcprov-port", {NULL}, 3776, "tcp"},
+{"dvcprov-port", {NULL}, 3776, "udp"},
+{"jibe-eb", {NULL}, 3777, "tcp"},
+{"jibe-eb", {NULL}, 3777, "udp"},
+{"c-h-it-port", {NULL}, 3778, "tcp"},
+{"c-h-it-port", {NULL}, 3778, "udp"},
+{"cognima", {NULL}, 3779, "tcp"},
+{"cognima", {NULL}, 3779, "udp"},
+{"nnp", {NULL}, 3780, "tcp"},
+{"nnp", {NULL}, 3780, "udp"},
+{"abcvoice-port", {NULL}, 3781, "tcp"},
+{"abcvoice-port", {NULL}, 3781, "udp"},
+{"iso-tp0s", {NULL}, 3782, "tcp"},
+{"iso-tp0s", {NULL}, 3782, "udp"},
+{"bim-pem", {NULL}, 3783, "tcp"},
+{"bim-pem", {NULL}, 3783, "udp"},
+{"bfd-control", {NULL}, 3784, "tcp"},
+{"bfd-control", {NULL}, 3784, "udp"},
+{"bfd-echo", {NULL}, 3785, "tcp"},
+{"bfd-echo", {NULL}, 3785, "udp"},
+{"upstriggervsw", {NULL}, 3786, "tcp"},
+{"upstriggervsw", {NULL}, 3786, "udp"},
+{"fintrx", {NULL}, 3787, "tcp"},
+{"fintrx", {NULL}, 3787, "udp"},
+{"isrp-port", {NULL}, 3788, "tcp"},
+{"isrp-port", {NULL}, 3788, "udp"},
+{"remotedeploy", {NULL}, 3789, "tcp"},
+{"remotedeploy", {NULL}, 3789, "udp"},
+{"quickbooksrds", {NULL}, 3790, "tcp"},
+{"quickbooksrds", {NULL}, 3790, "udp"},
+{"tvnetworkvideo", {NULL}, 3791, "tcp"},
+{"tvnetworkvideo", {NULL}, 3791, "udp"},
+{"sitewatch", {NULL}, 3792, "tcp"},
+{"sitewatch", {NULL}, 3792, "udp"},
+{"dcsoftware", {NULL}, 3793, "tcp"},
+{"dcsoftware", {NULL}, 3793, "udp"},
+{"jaus", {NULL}, 3794, "tcp"},
+{"jaus", {NULL}, 3794, "udp"},
+{"myblast", {NULL}, 3795, "tcp"},
+{"myblast", {NULL}, 3795, "udp"},
+{"spw-dialer", {NULL}, 3796, "tcp"},
+{"spw-dialer", {NULL}, 3796, "udp"},
+{"idps", {NULL}, 3797, "tcp"},
+{"idps", {NULL}, 3797, "udp"},
+{"minilock", {NULL}, 3798, "tcp"},
+{"minilock", {NULL}, 3798, "udp"},
+{"radius-dynauth", {NULL}, 3799, "tcp"},
+{"radius-dynauth", {NULL}, 3799, "udp"},
+{"pwgpsi", {NULL}, 3800, "tcp"},
+{"pwgpsi", {NULL}, 3800, "udp"},
+{"ibm-mgr", {NULL}, 3801, "tcp"},
+{"ibm-mgr", {NULL}, 3801, "udp"},
+{"vhd", {NULL}, 3802, "tcp"},
+{"vhd", {NULL}, 3802, "udp"},
+{"soniqsync", {NULL}, 3803, "tcp"},
+{"soniqsync", {NULL}, 3803, "udp"},
+{"iqnet-port", {NULL}, 3804, "tcp"},
+{"iqnet-port", {NULL}, 3804, "udp"},
+{"tcpdataserver", {NULL}, 3805, "tcp"},
+{"tcpdataserver", {NULL}, 3805, "udp"},
+{"wsmlb", {NULL}, 3806, "tcp"},
+{"wsmlb", {NULL}, 3806, "udp"},
+{"spugna", {NULL}, 3807, "tcp"},
+{"spugna", {NULL}, 3807, "udp"},
+{"sun-as-iiops-ca", {NULL}, 3808, "tcp"},
+{"sun-as-iiops-ca", {NULL}, 3808, "udp"},
+{"apocd", {NULL}, 3809, "tcp"},
+{"apocd", {NULL}, 3809, "udp"},
+{"wlanauth", {NULL}, 3810, "tcp"},
+{"wlanauth", {NULL}, 3810, "udp"},
+{"amp", {NULL}, 3811, "tcp"},
+{"amp", {NULL}, 3811, "udp"},
+{"neto-wol-server", {NULL}, 3812, "tcp"},
+{"neto-wol-server", {NULL}, 3812, "udp"},
+{"rap-ip", {NULL}, 3813, "tcp"},
+{"rap-ip", {NULL}, 3813, "udp"},
+{"neto-dcs", {NULL}, 3814, "tcp"},
+{"neto-dcs", {NULL}, 3814, "udp"},
+{"lansurveyorxml", {NULL}, 3815, "tcp"},
+{"lansurveyorxml", {NULL}, 3815, "udp"},
+{"sunlps-http", {NULL}, 3816, "tcp"},
+{"sunlps-http", {NULL}, 3816, "udp"},
+{"tapeware", {NULL}, 3817, "tcp"},
+{"tapeware", {NULL}, 3817, "udp"},
+{"crinis-hb", {NULL}, 3818, "tcp"},
+{"crinis-hb", {NULL}, 3818, "udp"},
+{"epl-slp", {NULL}, 3819, "tcp"},
+{"epl-slp", {NULL}, 3819, "udp"},
+{"scp", {NULL}, 3820, "tcp"},
+{"scp", {NULL}, 3820, "udp"},
+{"pmcp", {NULL}, 3821, "tcp"},
+{"pmcp", {NULL}, 3821, "udp"},
+{"acp-discovery", {NULL}, 3822, "tcp"},
+{"acp-discovery", {NULL}, 3822, "udp"},
+{"acp-conduit", {NULL}, 3823, "tcp"},
+{"acp-conduit", {NULL}, 3823, "udp"},
+{"acp-policy", {NULL}, 3824, "tcp"},
+{"acp-policy", {NULL}, 3824, "udp"},
+{"ffserver", {NULL}, 3825, "tcp"},
+{"ffserver", {NULL}, 3825, "udp"},
+{"wormux", {NULL}, 3826, "tcp"},
+{"wormux", {NULL}, 3826, "udp"},
+{"netmpi", {NULL}, 3827, "tcp"},
+{"netmpi", {NULL}, 3827, "udp"},
+{"neteh", {NULL}, 3828, "tcp"},
+{"neteh", {NULL}, 3828, "udp"},
+{"neteh-ext", {NULL}, 3829, "tcp"},
+{"neteh-ext", {NULL}, 3829, "udp"},
+{"cernsysmgmtagt", {NULL}, 3830, "tcp"},
+{"cernsysmgmtagt", {NULL}, 3830, "udp"},
+{"dvapps", {NULL}, 3831, "tcp"},
+{"dvapps", {NULL}, 3831, "udp"},
+{"xxnetserver", {NULL}, 3832, "tcp"},
+{"xxnetserver", {NULL}, 3832, "udp"},
+{"aipn-auth", {NULL}, 3833, "tcp"},
+{"aipn-auth", {NULL}, 3833, "udp"},
+{"spectardata", {NULL}, 3834, "tcp"},
+{"spectardata", {NULL}, 3834, "udp"},
+{"spectardb", {NULL}, 3835, "tcp"},
+{"spectardb", {NULL}, 3835, "udp"},
+{"markem-dcp", {NULL}, 3836, "tcp"},
+{"markem-dcp", {NULL}, 3836, "udp"},
+{"mkm-discovery", {NULL}, 3837, "tcp"},
+{"mkm-discovery", {NULL}, 3837, "udp"},
+{"sos", {NULL}, 3838, "tcp"},
+{"sos", {NULL}, 3838, "udp"},
+{"amx-rms", {NULL}, 3839, "tcp"},
+{"amx-rms", {NULL}, 3839, "udp"},
+{"flirtmitmir", {NULL}, 3840, "tcp"},
+{"flirtmitmir", {NULL}, 3840, "udp"},
+{"zfirm-shiprush3", {NULL}, 3841, "tcp"},
+{"zfirm-shiprush3", {NULL}, 3841, "udp"},
+{"nhci", {NULL}, 3842, "tcp"},
+{"nhci", {NULL}, 3842, "udp"},
+{"quest-agent", {NULL}, 3843, "tcp"},
+{"quest-agent", {NULL}, 3843, "udp"},
+{"rnm", {NULL}, 3844, "tcp"},
+{"rnm", {NULL}, 3844, "udp"},
+{"v-one-spp", {NULL}, 3845, "tcp"},
+{"v-one-spp", {NULL}, 3845, "udp"},
+{"an-pcp", {NULL}, 3846, "tcp"},
+{"an-pcp", {NULL}, 3846, "udp"},
+{"msfw-control", {NULL}, 3847, "tcp"},
+{"msfw-control", {NULL}, 3847, "udp"},
+{"item", {NULL}, 3848, "tcp"},
+{"item", {NULL}, 3848, "udp"},
+{"spw-dnspreload", {NULL}, 3849, "tcp"},
+{"spw-dnspreload", {NULL}, 3849, "udp"},
+{"qtms-bootstrap", {NULL}, 3850, "tcp"},
+{"qtms-bootstrap", {NULL}, 3850, "udp"},
+{"spectraport", {NULL}, 3851, "tcp"},
+{"spectraport", {NULL}, 3851, "udp"},
+{"sse-app-config", {NULL}, 3852, "tcp"},
+{"sse-app-config", {NULL}, 3852, "udp"},
+{"sscan", {NULL}, 3853, "tcp"},
+{"sscan", {NULL}, 3853, "udp"},
+{"stryker-com", {NULL}, 3854, "tcp"},
+{"stryker-com", {NULL}, 3854, "udp"},
+{"opentrac", {NULL}, 3855, "tcp"},
+{"opentrac", {NULL}, 3855, "udp"},
+{"informer", {NULL}, 3856, "tcp"},
+{"informer", {NULL}, 3856, "udp"},
+{"trap-port", {NULL}, 3857, "tcp"},
+{"trap-port", {NULL}, 3857, "udp"},
+{"trap-port-mom", {NULL}, 3858, "tcp"},
+{"trap-port-mom", {NULL}, 3858, "udp"},
+{"nav-port", {NULL}, 3859, "tcp"},
+{"nav-port", {NULL}, 3859, "udp"},
+{"sasp", {NULL}, 3860, "tcp"},
+{"sasp", {NULL}, 3860, "udp"},
+{"winshadow-hd", {NULL}, 3861, "tcp"},
+{"winshadow-hd", {NULL}, 3861, "udp"},
+{"giga-pocket", {NULL}, 3862, "tcp"},
+{"giga-pocket", {NULL}, 3862, "udp"},
+{"asap-tcp", {NULL}, 3863, "tcp"},
+{"asap-udp", {NULL}, 3863, "udp"},
+{"asap-sctp", {NULL}, 3863, "sctp"},
+{"asap-tcp-tls", {NULL}, 3864, "tcp"},
+{"asap-sctp-tls", {NULL}, 3864, "sctp"},
+{"xpl", {NULL}, 3865, "tcp"},
+{"xpl", {NULL}, 3865, "udp"},
+{"dzdaemon", {NULL}, 3866, "tcp"},
+{"dzdaemon", {NULL}, 3866, "udp"},
+{"dzoglserver", {NULL}, 3867, "tcp"},
+{"dzoglserver", {NULL}, 3867, "udp"},
+{"diameter", {NULL}, 3868, "tcp"},
+{"diameter", {NULL}, 3868, "sctp"},
+{"ovsam-mgmt", {NULL}, 3869, "tcp"},
+{"ovsam-mgmt", {NULL}, 3869, "udp"},
+{"ovsam-d-agent", {NULL}, 3870, "tcp"},
+{"ovsam-d-agent", {NULL}, 3870, "udp"},
+{"avocent-adsap", {NULL}, 3871, "tcp"},
+{"avocent-adsap", {NULL}, 3871, "udp"},
+{"oem-agent", {NULL}, 3872, "tcp"},
+{"oem-agent", {NULL}, 3872, "udp"},
+{"fagordnc", {NULL}, 3873, "tcp"},
+{"fagordnc", {NULL}, 3873, "udp"},
+{"sixxsconfig", {NULL}, 3874, "tcp"},
+{"sixxsconfig", {NULL}, 3874, "udp"},
+{"pnbscada", {NULL}, 3875, "tcp"},
+{"pnbscada", {NULL}, 3875, "udp"},
+{"dl_agent", {NULL}, 3876, "tcp"},
+{"dl_agent", {NULL}, 3876, "udp"},
+{"xmpcr-interface", {NULL}, 3877, "tcp"},
+{"xmpcr-interface", {NULL}, 3877, "udp"},
+{"fotogcad", {NULL}, 3878, "tcp"},
+{"fotogcad", {NULL}, 3878, "udp"},
+{"appss-lm", {NULL}, 3879, "tcp"},
+{"appss-lm", {NULL}, 3879, "udp"},
+{"igrs", {NULL}, 3880, "tcp"},
+{"igrs", {NULL}, 3880, "udp"},
+{"idac", {NULL}, 3881, "tcp"},
+{"idac", {NULL}, 3881, "udp"},
+{"msdts1", {NULL}, 3882, "tcp"},
+{"msdts1", {NULL}, 3882, "udp"},
+{"vrpn", {NULL}, 3883, "tcp"},
+{"vrpn", {NULL}, 3883, "udp"},
+{"softrack-meter", {NULL}, 3884, "tcp"},
+{"softrack-meter", {NULL}, 3884, "udp"},
+{"topflow-ssl", {NULL}, 3885, "tcp"},
+{"topflow-ssl", {NULL}, 3885, "udp"},
+{"nei-management", {NULL}, 3886, "tcp"},
+{"nei-management", {NULL}, 3886, "udp"},
+{"ciphire-data", {NULL}, 3887, "tcp"},
+{"ciphire-data", {NULL}, 3887, "udp"},
+{"ciphire-serv", {NULL}, 3888, "tcp"},
+{"ciphire-serv", {NULL}, 3888, "udp"},
+{"dandv-tester", {NULL}, 3889, "tcp"},
+{"dandv-tester", {NULL}, 3889, "udp"},
+{"ndsconnect", {NULL}, 3890, "tcp"},
+{"ndsconnect", {NULL}, 3890, "udp"},
+{"rtc-pm-port", {NULL}, 3891, "tcp"},
+{"rtc-pm-port", {NULL}, 3891, "udp"},
+{"pcc-image-port", {NULL}, 3892, "tcp"},
+{"pcc-image-port", {NULL}, 3892, "udp"},
+{"cgi-starapi", {NULL}, 3893, "tcp"},
+{"cgi-starapi", {NULL}, 3893, "udp"},
+{"syam-agent", {NULL}, 3894, "tcp"},
+{"syam-agent", {NULL}, 3894, "udp"},
+{"syam-smc", {NULL}, 3895, "tcp"},
+{"syam-smc", {NULL}, 3895, "udp"},
+{"sdo-tls", {NULL}, 3896, "tcp"},
+{"sdo-tls", {NULL}, 3896, "udp"},
+{"sdo-ssh", {NULL}, 3897, "tcp"},
+{"sdo-ssh", {NULL}, 3897, "udp"},
+{"senip", {NULL}, 3898, "tcp"},
+{"senip", {NULL}, 3898, "udp"},
+{"itv-control", {NULL}, 3899, "tcp"},
+{"itv-control", {NULL}, 3899, "udp"},
+{"udt_os", {NULL}, 3900, "tcp"},
+{"udt_os", {NULL}, 3900, "udp"},
+{"nimsh", {NULL}, 3901, "tcp"},
+{"nimsh", {NULL}, 3901, "udp"},
+{"nimaux", {NULL}, 3902, "tcp"},
+{"nimaux", {NULL}, 3902, "udp"},
+{"charsetmgr", {NULL}, 3903, "tcp"},
+{"charsetmgr", {NULL}, 3903, "udp"},
+{"omnilink-port", {NULL}, 3904, "tcp"},
+{"omnilink-port", {NULL}, 3904, "udp"},
+{"mupdate", {NULL}, 3905, "tcp"},
+{"mupdate", {NULL}, 3905, "udp"},
+{"topovista-data", {NULL}, 3906, "tcp"},
+{"topovista-data", {NULL}, 3906, "udp"},
+{"imoguia-port", {NULL}, 3907, "tcp"},
+{"imoguia-port", {NULL}, 3907, "udp"},
+{"hppronetman", {NULL}, 3908, "tcp"},
+{"hppronetman", {NULL}, 3908, "udp"},
+{"surfcontrolcpa", {NULL}, 3909, "tcp"},
+{"surfcontrolcpa", {NULL}, 3909, "udp"},
+{"prnrequest", {NULL}, 3910, "tcp"},
+{"prnrequest", {NULL}, 3910, "udp"},
+{"prnstatus", {NULL}, 3911, "tcp"},
+{"prnstatus", {NULL}, 3911, "udp"},
+{"gbmt-stars", {NULL}, 3912, "tcp"},
+{"gbmt-stars", {NULL}, 3912, "udp"},
+{"listcrt-port", {NULL}, 3913, "tcp"},
+{"listcrt-port", {NULL}, 3913, "udp"},
+{"listcrt-port-2", {NULL}, 3914, "tcp"},
+{"listcrt-port-2", {NULL}, 3914, "udp"},
+{"agcat", {NULL}, 3915, "tcp"},
+{"agcat", {NULL}, 3915, "udp"},
+{"wysdmc", {NULL}, 3916, "tcp"},
+{"wysdmc", {NULL}, 3916, "udp"},
+{"aftmux", {NULL}, 3917, "tcp"},
+{"aftmux", {NULL}, 3917, "udp"},
+{"pktcablemmcops", {NULL}, 3918, "tcp"},
+{"pktcablemmcops", {NULL}, 3918, "udp"},
+{"hyperip", {NULL}, 3919, "tcp"},
+{"hyperip", {NULL}, 3919, "udp"},
+{"exasoftport1", {NULL}, 3920, "tcp"},
+{"exasoftport1", {NULL}, 3920, "udp"},
+{"herodotus-net", {NULL}, 3921, "tcp"},
+{"herodotus-net", {NULL}, 3921, "udp"},
+{"sor-update", {NULL}, 3922, "tcp"},
+{"sor-update", {NULL}, 3922, "udp"},
+{"symb-sb-port", {NULL}, 3923, "tcp"},
+{"symb-sb-port", {NULL}, 3923, "udp"},
+{"mpl-gprs-port", {NULL}, 3924, "tcp"},
+{"mpl-gprs-port", {NULL}, 3924, "udp"},
+{"zmp", {NULL}, 3925, "tcp"},
+{"zmp", {NULL}, 3925, "udp"},
+{"winport", {NULL}, 3926, "tcp"},
+{"winport", {NULL}, 3926, "udp"},
+{"natdataservice", {NULL}, 3927, "tcp"},
+{"natdataservice", {NULL}, 3927, "udp"},
+{"netboot-pxe", {NULL}, 3928, "tcp"},
+{"netboot-pxe", {NULL}, 3928, "udp"},
+{"smauth-port", {NULL}, 3929, "tcp"},
+{"smauth-port", {NULL}, 3929, "udp"},
+{"syam-webserver", {NULL}, 3930, "tcp"},
+{"syam-webserver", {NULL}, 3930, "udp"},
+{"msr-plugin-port", {NULL}, 3931, "tcp"},
+{"msr-plugin-port", {NULL}, 3931, "udp"},
+{"dyn-site", {NULL}, 3932, "tcp"},
+{"dyn-site", {NULL}, 3932, "udp"},
+{"plbserve-port", {NULL}, 3933, "tcp"},
+{"plbserve-port", {NULL}, 3933, "udp"},
+{"sunfm-port", {NULL}, 3934, "tcp"},
+{"sunfm-port", {NULL}, 3934, "udp"},
+{"sdp-portmapper", {NULL}, 3935, "tcp"},
+{"sdp-portmapper", {NULL}, 3935, "udp"},
+{"mailprox", {NULL}, 3936, "tcp"},
+{"mailprox", {NULL}, 3936, "udp"},
+{"dvbservdsc", {NULL}, 3937, "tcp"},
+{"dvbservdsc", {NULL}, 3937, "udp"},
+{"dbcontrol_agent", {NULL}, 3938, "tcp"},
+{"dbcontrol_agent", {NULL}, 3938, "udp"},
+{"aamp", {NULL}, 3939, "tcp"},
+{"aamp", {NULL}, 3939, "udp"},
+{"xecp-node", {NULL}, 3940, "tcp"},
+{"xecp-node", {NULL}, 3940, "udp"},
+{"homeportal-web", {NULL}, 3941, "tcp"},
+{"homeportal-web", {NULL}, 3941, "udp"},
+{"srdp", {NULL}, 3942, "tcp"},
+{"srdp", {NULL}, 3942, "udp"},
+{"tig", {NULL}, 3943, "tcp"},
+{"tig", {NULL}, 3943, "udp"},
+{"sops", {NULL}, 3944, "tcp"},
+{"sops", {NULL}, 3944, "udp"},
+{"emcads", {NULL}, 3945, "tcp"},
+{"emcads", {NULL}, 3945, "udp"},
+{"backupedge", {NULL}, 3946, "tcp"},
+{"backupedge", {NULL}, 3946, "udp"},
+{"ccp", {NULL}, 3947, "tcp"},
+{"ccp", {NULL}, 3947, "udp"},
+{"apdap", {NULL}, 3948, "tcp"},
+{"apdap", {NULL}, 3948, "udp"},
+{"drip", {NULL}, 3949, "tcp"},
+{"drip", {NULL}, 3949, "udp"},
+{"namemunge", {NULL}, 3950, "tcp"},
+{"namemunge", {NULL}, 3950, "udp"},
+{"pwgippfax", {NULL}, 3951, "tcp"},
+{"pwgippfax", {NULL}, 3951, "udp"},
+{"i3-sessionmgr", {NULL}, 3952, "tcp"},
+{"i3-sessionmgr", {NULL}, 3952, "udp"},
+{"xmlink-connect", {NULL}, 3953, "tcp"},
+{"xmlink-connect", {NULL}, 3953, "udp"},
+{"adrep", {NULL}, 3954, "tcp"},
+{"adrep", {NULL}, 3954, "udp"},
+{"p2pcommunity", {NULL}, 3955, "tcp"},
+{"p2pcommunity", {NULL}, 3955, "udp"},
+{"gvcp", {NULL}, 3956, "tcp"},
+{"gvcp", {NULL}, 3956, "udp"},
+{"mqe-broker", {NULL}, 3957, "tcp"},
+{"mqe-broker", {NULL}, 3957, "udp"},
+{"mqe-agent", {NULL}, 3958, "tcp"},
+{"mqe-agent", {NULL}, 3958, "udp"},
+{"treehopper", {NULL}, 3959, "tcp"},
+{"treehopper", {NULL}, 3959, "udp"},
+{"bess", {NULL}, 3960, "tcp"},
+{"bess", {NULL}, 3960, "udp"},
+{"proaxess", {NULL}, 3961, "tcp"},
+{"proaxess", {NULL}, 3961, "udp"},
+{"sbi-agent", {NULL}, 3962, "tcp"},
+{"sbi-agent", {NULL}, 3962, "udp"},
+{"thrp", {NULL}, 3963, "tcp"},
+{"thrp", {NULL}, 3963, "udp"},
+{"sasggprs", {NULL}, 3964, "tcp"},
+{"sasggprs", {NULL}, 3964, "udp"},
+{"ati-ip-to-ncpe", {NULL}, 3965, "tcp"},
+{"ati-ip-to-ncpe", {NULL}, 3965, "udp"},
+{"bflckmgr", {NULL}, 3966, "tcp"},
+{"bflckmgr", {NULL}, 3966, "udp"},
+{"ppsms", {NULL}, 3967, "tcp"},
+{"ppsms", {NULL}, 3967, "udp"},
+{"ianywhere-dbns", {NULL}, 3968, "tcp"},
+{"ianywhere-dbns", {NULL}, 3968, "udp"},
+{"landmarks", {NULL}, 3969, "tcp"},
+{"landmarks", {NULL}, 3969, "udp"},
+{"lanrevagent", {NULL}, 3970, "tcp"},
+{"lanrevagent", {NULL}, 3970, "udp"},
+{"lanrevserver", {NULL}, 3971, "tcp"},
+{"lanrevserver", {NULL}, 3971, "udp"},
+{"iconp", {NULL}, 3972, "tcp"},
+{"iconp", {NULL}, 3972, "udp"},
+{"progistics", {NULL}, 3973, "tcp"},
+{"progistics", {NULL}, 3973, "udp"},
+{"citysearch", {NULL}, 3974, "tcp"},
+{"citysearch", {NULL}, 3974, "udp"},
+{"airshot", {NULL}, 3975, "tcp"},
+{"airshot", {NULL}, 3975, "udp"},
+{"opswagent", {NULL}, 3976, "tcp"},
+{"opswagent", {NULL}, 3976, "udp"},
+{"opswmanager", {NULL}, 3977, "tcp"},
+{"opswmanager", {NULL}, 3977, "udp"},
+{"secure-cfg-svr", {NULL}, 3978, "tcp"},
+{"secure-cfg-svr", {NULL}, 3978, "udp"},
+{"smwan", {NULL}, 3979, "tcp"},
+{"smwan", {NULL}, 3979, "udp"},
+{"acms", {NULL}, 3980, "tcp"},
+{"acms", {NULL}, 3980, "udp"},
+{"starfish", {NULL}, 3981, "tcp"},
+{"starfish", {NULL}, 3981, "udp"},
+{"eis", {NULL}, 3982, "tcp"},
+{"eis", {NULL}, 3982, "udp"},
+{"eisp", {NULL}, 3983, "tcp"},
+{"eisp", {NULL}, 3983, "udp"},
+{"mapper-nodemgr", {NULL}, 3984, "tcp"},
+{"mapper-nodemgr", {NULL}, 3984, "udp"},
+{"mapper-mapethd", {NULL}, 3985, "tcp"},
+{"mapper-mapethd", {NULL}, 3985, "udp"},
+{"mapper-ws_ethd", {NULL}, 3986, "tcp"},
+{"mapper-ws_ethd", {NULL}, 3986, "udp"},
+{"centerline", {NULL}, 3987, "tcp"},
+{"centerline", {NULL}, 3987, "udp"},
+{"dcs-config", {NULL}, 3988, "tcp"},
+{"dcs-config", {NULL}, 3988, "udp"},
+{"bv-queryengine", {NULL}, 3989, "tcp"},
+{"bv-queryengine", {NULL}, 3989, "udp"},
+{"bv-is", {NULL}, 3990, "tcp"},
+{"bv-is", {NULL}, 3990, "udp"},
+{"bv-smcsrv", {NULL}, 3991, "tcp"},
+{"bv-smcsrv", {NULL}, 3991, "udp"},
+{"bv-ds", {NULL}, 3992, "tcp"},
+{"bv-ds", {NULL}, 3992, "udp"},
+{"bv-agent", {NULL}, 3993, "tcp"},
+{"bv-agent", {NULL}, 3993, "udp"},
+{"iss-mgmt-ssl", {NULL}, 3995, "tcp"},
+{"iss-mgmt-ssl", {NULL}, 3995, "udp"},
+{"abcsoftware", {NULL}, 3996, "tcp"},
+{"abcsoftware", {NULL}, 3996, "udp"},
+{"agentsease-db", {NULL}, 3997, "tcp"},
+{"agentsease-db", {NULL}, 3997, "udp"},
+{"dnx", {NULL}, 3998, "tcp"},
+{"dnx", {NULL}, 3998, "udp"},
+{"nvcnet", {NULL}, 3999, "tcp"},
+{"nvcnet", {NULL}, 3999, "udp"},
+{"terabase", {NULL}, 4000, "tcp"},
+{"terabase", {NULL}, 4000, "udp"},
+{"newoak", {NULL}, 4001, "tcp"},
+{"newoak", {NULL}, 4001, "udp"},
+{"pxc-spvr-ft", {NULL}, 4002, "tcp"},
+{"pxc-spvr-ft", {NULL}, 4002, "udp"},
+{"pxc-splr-ft", {NULL}, 4003, "tcp"},
+{"pxc-splr-ft", {NULL}, 4003, "udp"},
+{"pxc-roid", {NULL}, 4004, "tcp"},
+{"pxc-roid", {NULL}, 4004, "udp"},
+{"pxc-pin", {NULL}, 4005, "tcp"},
+{"pxc-pin", {NULL}, 4005, "udp"},
+{"pxc-spvr", {NULL}, 4006, "tcp"},
+{"pxc-spvr", {NULL}, 4006, "udp"},
+{"pxc-splr", {NULL}, 4007, "tcp"},
+{"pxc-splr", {NULL}, 4007, "udp"},
+{"netcheque", {NULL}, 4008, "tcp"},
+{"netcheque", {NULL}, 4008, "udp"},
+{"chimera-hwm", {NULL}, 4009, "tcp"},
+{"chimera-hwm", {NULL}, 4009, "udp"},
+{"samsung-unidex", {NULL}, 4010, "tcp"},
+{"samsung-unidex", {NULL}, 4010, "udp"},
+{"altserviceboot", {NULL}, 4011, "tcp"},
+{"altserviceboot", {NULL}, 4011, "udp"},
+{"pda-gate", {NULL}, 4012, "tcp"},
+{"pda-gate", {NULL}, 4012, "udp"},
+{"acl-manager", {NULL}, 4013, "tcp"},
+{"acl-manager", {NULL}, 4013, "udp"},
+{"taiclock", {NULL}, 4014, "tcp"},
+{"taiclock", {NULL}, 4014, "udp"},
+{"talarian-mcast1", {NULL}, 4015, "tcp"},
+{"talarian-mcast1", {NULL}, 4015, "udp"},
+{"talarian-mcast2", {NULL}, 4016, "tcp"},
+{"talarian-mcast2", {NULL}, 4016, "udp"},
+{"talarian-mcast3", {NULL}, 4017, "tcp"},
+{"talarian-mcast3", {NULL}, 4017, "udp"},
+{"talarian-mcast4", {NULL}, 4018, "tcp"},
+{"talarian-mcast4", {NULL}, 4018, "udp"},
+{"talarian-mcast5", {NULL}, 4019, "tcp"},
+{"talarian-mcast5", {NULL}, 4019, "udp"},
+{"trap", {NULL}, 4020, "tcp"},
+{"trap", {NULL}, 4020, "udp"},
+{"nexus-portal", {NULL}, 4021, "tcp"},
+{"nexus-portal", {NULL}, 4021, "udp"},
+{"dnox", {NULL}, 4022, "tcp"},
+{"dnox", {NULL}, 4022, "udp"},
+{"esnm-zoning", {NULL}, 4023, "tcp"},
+{"esnm-zoning", {NULL}, 4023, "udp"},
+{"tnp1-port", {NULL}, 4024, "tcp"},
+{"tnp1-port", {NULL}, 4024, "udp"},
+{"partimage", {NULL}, 4025, "tcp"},
+{"partimage", {NULL}, 4025, "udp"},
+{"as-debug", {NULL}, 4026, "tcp"},
+{"as-debug", {NULL}, 4026, "udp"},
+{"bxp", {NULL}, 4027, "tcp"},
+{"bxp", {NULL}, 4027, "udp"},
+{"dtserver-port", {NULL}, 4028, "tcp"},
+{"dtserver-port", {NULL}, 4028, "udp"},
+{"ip-qsig", {NULL}, 4029, "tcp"},
+{"ip-qsig", {NULL}, 4029, "udp"},
+{"jdmn-port", {NULL}, 4030, "tcp"},
+{"jdmn-port", {NULL}, 4030, "udp"},
+{"suucp", {NULL}, 4031, "tcp"},
+{"suucp", {NULL}, 4031, "udp"},
+{"vrts-auth-port", {NULL}, 4032, "tcp"},
+{"vrts-auth-port", {NULL}, 4032, "udp"},
+{"sanavigator", {NULL}, 4033, "tcp"},
+{"sanavigator", {NULL}, 4033, "udp"},
+{"ubxd", {NULL}, 4034, "tcp"},
+{"ubxd", {NULL}, 4034, "udp"},
+{"wap-push-http", {NULL}, 4035, "tcp"},
+{"wap-push-http", {NULL}, 4035, "udp"},
+{"wap-push-https", {NULL}, 4036, "tcp"},
+{"wap-push-https", {NULL}, 4036, "udp"},
+{"ravehd", {NULL}, 4037, "tcp"},
+{"ravehd", {NULL}, 4037, "udp"},
+{"fazzt-ptp", {NULL}, 4038, "tcp"},
+{"fazzt-ptp", {NULL}, 4038, "udp"},
+{"fazzt-admin", {NULL}, 4039, "tcp"},
+{"fazzt-admin", {NULL}, 4039, "udp"},
+{"yo-main", {NULL}, 4040, "tcp"},
+{"yo-main", {NULL}, 4040, "udp"},
+{"houston", {NULL}, 4041, "tcp"},
+{"houston", {NULL}, 4041, "udp"},
+{"ldxp", {NULL}, 4042, "tcp"},
+{"ldxp", {NULL}, 4042, "udp"},
+{"nirp", {NULL}, 4043, "tcp"},
+{"nirp", {NULL}, 4043, "udp"},
+{"ltp", {NULL}, 4044, "tcp"},
+{"ltp", {NULL}, 4044, "udp"},
+{"npp", {NULL}, 4045, "tcp"},
+{"npp", {NULL}, 4045, "udp"},
+{"acp-proto", {NULL}, 4046, "tcp"},
+{"acp-proto", {NULL}, 4046, "udp"},
+{"ctp-state", {NULL}, 4047, "tcp"},
+{"ctp-state", {NULL}, 4047, "udp"},
+{"wafs", {NULL}, 4049, "tcp"},
+{"wafs", {NULL}, 4049, "udp"},
+{"cisco-wafs", {NULL}, 4050, "tcp"},
+{"cisco-wafs", {NULL}, 4050, "udp"},
+{"cppdp", {NULL}, 4051, "tcp"},
+{"cppdp", {NULL}, 4051, "udp"},
+{"interact", {NULL}, 4052, "tcp"},
+{"interact", {NULL}, 4052, "udp"},
+{"ccu-comm-1", {NULL}, 4053, "tcp"},
+{"ccu-comm-1", {NULL}, 4053, "udp"},
+{"ccu-comm-2", {NULL}, 4054, "tcp"},
+{"ccu-comm-2", {NULL}, 4054, "udp"},
+{"ccu-comm-3", {NULL}, 4055, "tcp"},
+{"ccu-comm-3", {NULL}, 4055, "udp"},
+{"lms", {NULL}, 4056, "tcp"},
+{"lms", {NULL}, 4056, "udp"},
+{"wfm", {NULL}, 4057, "tcp"},
+{"wfm", {NULL}, 4057, "udp"},
+{"kingfisher", {NULL}, 4058, "tcp"},
+{"kingfisher", {NULL}, 4058, "udp"},
+{"dlms-cosem", {NULL}, 4059, "tcp"},
+{"dlms-cosem", {NULL}, 4059, "udp"},
+{"dsmeter_iatc", {NULL}, 4060, "tcp"},
+{"dsmeter_iatc", {NULL}, 4060, "udp"},
+{"ice-location", {NULL}, 4061, "tcp"},
+{"ice-location", {NULL}, 4061, "udp"},
+{"ice-slocation", {NULL}, 4062, "tcp"},
+{"ice-slocation", {NULL}, 4062, "udp"},
+{"ice-router", {NULL}, 4063, "tcp"},
+{"ice-router", {NULL}, 4063, "udp"},
+{"ice-srouter", {NULL}, 4064, "tcp"},
+{"ice-srouter", {NULL}, 4064, "udp"},
+{"avanti_cdp", {NULL}, 4065, "tcp"},
+{"avanti_cdp", {NULL}, 4065, "udp"},
+{"pmas", {NULL}, 4066, "tcp"},
+{"pmas", {NULL}, 4066, "udp"},
+{"idp", {NULL}, 4067, "tcp"},
+{"idp", {NULL}, 4067, "udp"},
+{"ipfltbcst", {NULL}, 4068, "tcp"},
+{"ipfltbcst", {NULL}, 4068, "udp"},
+{"minger", {NULL}, 4069, "tcp"},
+{"minger", {NULL}, 4069, "udp"},
+{"tripe", {NULL}, 4070, "tcp"},
+{"tripe", {NULL}, 4070, "udp"},
+{"aibkup", {NULL}, 4071, "tcp"},
+{"aibkup", {NULL}, 4071, "udp"},
+{"zieto-sock", {NULL}, 4072, "tcp"},
+{"zieto-sock", {NULL}, 4072, "udp"},
+{"iRAPP", {NULL}, 4073, "tcp"},
+{"iRAPP", {NULL}, 4073, "udp"},
+{"cequint-cityid", {NULL}, 4074, "tcp"},
+{"cequint-cityid", {NULL}, 4074, "udp"},
+{"perimlan", {NULL}, 4075, "tcp"},
+{"perimlan", {NULL}, 4075, "udp"},
+{"seraph", {NULL}, 4076, "tcp"},
+{"seraph", {NULL}, 4076, "udp"},
+{"ascomalarm", {NULL}, 4077, "udp"},
+{"cssp", {NULL}, 4078, "tcp"},
+{"santools", {NULL}, 4079, "tcp"},
+{"santools", {NULL}, 4079, "udp"},
+{"lorica-in", {NULL}, 4080, "tcp"},
+{"lorica-in", {NULL}, 4080, "udp"},
+{"lorica-in-sec", {NULL}, 4081, "tcp"},
+{"lorica-in-sec", {NULL}, 4081, "udp"},
+{"lorica-out", {NULL}, 4082, "tcp"},
+{"lorica-out", {NULL}, 4082, "udp"},
+{"lorica-out-sec", {NULL}, 4083, "tcp"},
+{"lorica-out-sec", {NULL}, 4083, "udp"},
+{"fortisphere-vm", {NULL}, 4084, "udp"},
+{"ezmessagesrv", {NULL}, 4085, "tcp"},
+{"ftsync", {NULL}, 4086, "udp"},
+{"applusservice", {NULL}, 4087, "tcp"},
+{"npsp", {NULL}, 4088, "tcp"},
+{"opencore", {NULL}, 4089, "tcp"},
+{"opencore", {NULL}, 4089, "udp"},
+{"omasgport", {NULL}, 4090, "tcp"},
+{"omasgport", {NULL}, 4090, "udp"},
+{"ewinstaller", {NULL}, 4091, "tcp"},
+{"ewinstaller", {NULL}, 4091, "udp"},
+{"ewdgs", {NULL}, 4092, "tcp"},
+{"ewdgs", {NULL}, 4092, "udp"},
+{"pvxpluscs", {NULL}, 4093, "tcp"},
+{"pvxpluscs", {NULL}, 4093, "udp"},
+{"sysrqd", {NULL}, 4094, "tcp"},
+{"sysrqd", {NULL}, 4094, "udp"},
+{"xtgui", {NULL}, 4095, "tcp"},
+{"xtgui", {NULL}, 4095, "udp"},
+{"bre", {NULL}, 4096, "tcp"},
+{"bre", {NULL}, 4096, "udp"},
+{"patrolview", {NULL}, 4097, "tcp"},
+{"patrolview", {NULL}, 4097, "udp"},
+{"drmsfsd", {NULL}, 4098, "tcp"},
+{"drmsfsd", {NULL}, 4098, "udp"},
+{"dpcp", {NULL}, 4099, "tcp"},
+{"dpcp", {NULL}, 4099, "udp"},
+{"igo-incognito", {NULL}, 4100, "tcp"},
+{"igo-incognito", {NULL}, 4100, "udp"},
+{"brlp-0", {NULL}, 4101, "tcp"},
+{"brlp-0", {NULL}, 4101, "udp"},
+{"brlp-1", {NULL}, 4102, "tcp"},
+{"brlp-1", {NULL}, 4102, "udp"},
+{"brlp-2", {NULL}, 4103, "tcp"},
+{"brlp-2", {NULL}, 4103, "udp"},
+{"brlp-3", {NULL}, 4104, "tcp"},
+{"brlp-3", {NULL}, 4104, "udp"},
+{"shofarplayer", {NULL}, 4105, "tcp"},
+{"shofarplayer", {NULL}, 4105, "udp"},
+{"synchronite", {NULL}, 4106, "tcp"},
+{"synchronite", {NULL}, 4106, "udp"},
+{"j-ac", {NULL}, 4107, "tcp"},
+{"j-ac", {NULL}, 4107, "udp"},
+{"accel", {NULL}, 4108, "tcp"},
+{"accel", {NULL}, 4108, "udp"},
+{"izm", {NULL}, 4109, "tcp"},
+{"izm", {NULL}, 4109, "udp"},
+{"g2tag", {NULL}, 4110, "tcp"},
+{"g2tag", {NULL}, 4110, "udp"},
+{"xgrid", {NULL}, 4111, "tcp"},
+{"xgrid", {NULL}, 4111, "udp"},
+{"apple-vpns-rp", {NULL}, 4112, "tcp"},
+{"apple-vpns-rp", {NULL}, 4112, "udp"},
+{"aipn-reg", {NULL}, 4113, "tcp"},
+{"aipn-reg", {NULL}, 4113, "udp"},
+{"jomamqmonitor", {NULL}, 4114, "tcp"},
+{"jomamqmonitor", {NULL}, 4114, "udp"},
+{"cds", {NULL}, 4115, "tcp"},
+{"cds", {NULL}, 4115, "udp"},
+{"smartcard-tls", {NULL}, 4116, "tcp"},
+{"smartcard-tls", {NULL}, 4116, "udp"},
+{"hillrserv", {NULL}, 4117, "tcp"},
+{"hillrserv", {NULL}, 4117, "udp"},
+{"netscript", {NULL}, 4118, "tcp"},
+{"netscript", {NULL}, 4118, "udp"},
+{"assuria-slm", {NULL}, 4119, "tcp"},
+{"assuria-slm", {NULL}, 4119, "udp"},
+{"e-builder", {NULL}, 4121, "tcp"},
+{"e-builder", {NULL}, 4121, "udp"},
+{"fprams", {NULL}, 4122, "tcp"},
+{"fprams", {NULL}, 4122, "udp"},
+{"z-wave", {NULL}, 4123, "tcp"},
+{"z-wave", {NULL}, 4123, "udp"},
+{"tigv2", {NULL}, 4124, "tcp"},
+{"tigv2", {NULL}, 4124, "udp"},
+{"opsview-envoy", {NULL}, 4125, "tcp"},
+{"opsview-envoy", {NULL}, 4125, "udp"},
+{"ddrepl", {NULL}, 4126, "tcp"},
+{"ddrepl", {NULL}, 4126, "udp"},
+{"unikeypro", {NULL}, 4127, "tcp"},
+{"unikeypro", {NULL}, 4127, "udp"},
+{"nufw", {NULL}, 4128, "tcp"},
+{"nufw", {NULL}, 4128, "udp"},
+{"nuauth", {NULL}, 4129, "tcp"},
+{"nuauth", {NULL}, 4129, "udp"},
+{"fronet", {NULL}, 4130, "tcp"},
+{"fronet", {NULL}, 4130, "udp"},
+{"stars", {NULL}, 4131, "tcp"},
+{"stars", {NULL}, 4131, "udp"},
+{"nuts_dem", {NULL}, 4132, "tcp"},
+{"nuts_dem", {NULL}, 4132, "udp"},
+{"nuts_bootp", {NULL}, 4133, "tcp"},
+{"nuts_bootp", {NULL}, 4133, "udp"},
+{"nifty-hmi", {NULL}, 4134, "tcp"},
+{"nifty-hmi", {NULL}, 4134, "udp"},
+{"cl-db-attach", {NULL}, 4135, "tcp"},
+{"cl-db-attach", {NULL}, 4135, "udp"},
+{"cl-db-request", {NULL}, 4136, "tcp"},
+{"cl-db-request", {NULL}, 4136, "udp"},
+{"cl-db-remote", {NULL}, 4137, "tcp"},
+{"cl-db-remote", {NULL}, 4137, "udp"},
+{"nettest", {NULL}, 4138, "tcp"},
+{"nettest", {NULL}, 4138, "udp"},
+{"thrtx", {NULL}, 4139, "tcp"},
+{"thrtx", {NULL}, 4139, "udp"},
+{"cedros_fds", {NULL}, 4140, "tcp"},
+{"cedros_fds", {NULL}, 4140, "udp"},
+{"oirtgsvc", {NULL}, 4141, "tcp"},
+{"oirtgsvc", {NULL}, 4141, "udp"},
+{"oidocsvc", {NULL}, 4142, "tcp"},
+{"oidocsvc", {NULL}, 4142, "udp"},
+{"oidsr", {NULL}, 4143, "tcp"},
+{"oidsr", {NULL}, 4143, "udp"},
+{"vvr-control", {NULL}, 4145, "tcp"},
+{"vvr-control", {NULL}, 4145, "udp"},
+{"tgcconnect", {NULL}, 4146, "tcp"},
+{"tgcconnect", {NULL}, 4146, "udp"},
+{"vrxpservman", {NULL}, 4147, "tcp"},
+{"vrxpservman", {NULL}, 4147, "udp"},
+{"hhb-handheld", {NULL}, 4148, "tcp"},
+{"hhb-handheld", {NULL}, 4148, "udp"},
+{"agslb", {NULL}, 4149, "tcp"},
+{"agslb", {NULL}, 4149, "udp"},
+{"PowerAlert-nsa", {NULL}, 4150, "tcp"},
+{"PowerAlert-nsa", {NULL}, 4150, "udp"},
+{"menandmice_noh", {NULL}, 4151, "tcp"},
+{"menandmice_noh", {NULL}, 4151, "udp"},
+{"idig_mux", {NULL}, 4152, "tcp"},
+{"idig_mux", {NULL}, 4152, "udp"},
+{"mbl-battd", {NULL}, 4153, "tcp"},
+{"mbl-battd", {NULL}, 4153, "udp"},
+{"atlinks", {NULL}, 4154, "tcp"},
+{"atlinks", {NULL}, 4154, "udp"},
+{"bzr", {NULL}, 4155, "tcp"},
+{"bzr", {NULL}, 4155, "udp"},
+{"stat-results", {NULL}, 4156, "tcp"},
+{"stat-results", {NULL}, 4156, "udp"},
+{"stat-scanner", {NULL}, 4157, "tcp"},
+{"stat-scanner", {NULL}, 4157, "udp"},
+{"stat-cc", {NULL}, 4158, "tcp"},
+{"stat-cc", {NULL}, 4158, "udp"},
+{"nss", {NULL}, 4159, "tcp"},
+{"nss", {NULL}, 4159, "udp"},
+{"jini-discovery", {NULL}, 4160, "tcp"},
+{"jini-discovery", {NULL}, 4160, "udp"},
+{"omscontact", {NULL}, 4161, "tcp"},
+{"omscontact", {NULL}, 4161, "udp"},
+{"omstopology", {NULL}, 4162, "tcp"},
+{"omstopology", {NULL}, 4162, "udp"},
+{"silverpeakpeer", {NULL}, 4163, "tcp"},
+{"silverpeakpeer", {NULL}, 4163, "udp"},
+{"silverpeakcomm", {NULL}, 4164, "tcp"},
+{"silverpeakcomm", {NULL}, 4164, "udp"},
+{"altcp", {NULL}, 4165, "tcp"},
+{"altcp", {NULL}, 4165, "udp"},
+{"joost", {NULL}, 4166, "tcp"},
+{"joost", {NULL}, 4166, "udp"},
+{"ddgn", {NULL}, 4167, "tcp"},
+{"ddgn", {NULL}, 4167, "udp"},
+{"pslicser", {NULL}, 4168, "tcp"},
+{"pslicser", {NULL}, 4168, "udp"},
+{"iadt", {NULL}, 4169, "tcp"},
+{"iadt-disc", {NULL}, 4169, "udp"},
+{"d-cinema-csp", {NULL}, 4170, "tcp"},
+{"ml-svnet", {NULL}, 4171, "tcp"},
+{"pcoip", {NULL}, 4172, "tcp"},
+{"pcoip", {NULL}, 4172, "udp"},
+{"smcluster", {NULL}, 4174, "tcp"},
+{"bccp", {NULL}, 4175, "tcp"},
+{"tl-ipcproxy", {NULL}, 4176, "tcp"},
+{"wello", {NULL}, 4177, "tcp"},
+{"wello", {NULL}, 4177, "udp"},
+{"storman", {NULL}, 4178, "tcp"},
+{"storman", {NULL}, 4178, "udp"},
+{"MaxumSP", {NULL}, 4179, "tcp"},
+{"MaxumSP", {NULL}, 4179, "udp"},
+{"httpx", {NULL}, 4180, "tcp"},
+{"httpx", {NULL}, 4180, "udp"},
+{"macbak", {NULL}, 4181, "tcp"},
+{"macbak", {NULL}, 4181, "udp"},
+{"pcptcpservice", {NULL}, 4182, "tcp"},
+{"pcptcpservice", {NULL}, 4182, "udp"},
+{"gmmp", {NULL}, 4183, "tcp"},
+{"gmmp", {NULL}, 4183, "udp"},
+{"universe_suite", {NULL}, 4184, "tcp"},
+{"universe_suite", {NULL}, 4184, "udp"},
+{"wcpp", {NULL}, 4185, "tcp"},
+{"wcpp", {NULL}, 4185, "udp"},
+{"boxbackupstore", {NULL}, 4186, "tcp"},
+{"csc_proxy", {NULL}, 4187, "tcp"},
+{"vatata", {NULL}, 4188, "tcp"},
+{"vatata", {NULL}, 4188, "udp"},
+{"pcep", {NULL}, 4189, "tcp"},
+{"sieve", {NULL}, 4190, "tcp"},
+{"dsmipv6", {NULL}, 4191, "udp"},
+{"azeti", {NULL}, 4192, "tcp"},
+{"azeti-bd", {NULL}, 4192, "udp"},
+{"pvxplusio", {NULL}, 4193, "tcp"},
+{"eims-admin", {NULL}, 4199, "tcp"},
+{"eims-admin", {NULL}, 4199, "udp"},
+{"corelccam", {NULL}, 4300, "tcp"},
+{"corelccam", {NULL}, 4300, "udp"},
+{"d-data", {NULL}, 4301, "tcp"},
+{"d-data", {NULL}, 4301, "udp"},
+{"d-data-control", {NULL}, 4302, "tcp"},
+{"d-data-control", {NULL}, 4302, "udp"},
+{"srcp", {NULL}, 4303, "tcp"},
+{"srcp", {NULL}, 4303, "udp"},
+{"owserver", {NULL}, 4304, "tcp"},
+{"owserver", {NULL}, 4304, "udp"},
+{"batman", {NULL}, 4305, "tcp"},
+{"batman", {NULL}, 4305, "udp"},
+{"pinghgl", {NULL}, 4306, "tcp"},
+{"pinghgl", {NULL}, 4306, "udp"},
+{"visicron-vs", {NULL}, 4307, "tcp"},
+{"visicron-vs", {NULL}, 4307, "udp"},
+{"compx-lockview", {NULL}, 4308, "tcp"},
+{"compx-lockview", {NULL}, 4308, "udp"},
+{"dserver", {NULL}, 4309, "tcp"},
+{"dserver", {NULL}, 4309, "udp"},
+{"mirrtex", {NULL}, 4310, "tcp"},
+{"mirrtex", {NULL}, 4310, "udp"},
+{"p6ssmc", {NULL}, 4311, "tcp"},
+{"pscl-mgt", {NULL}, 4312, "tcp"},
+{"perrla", {NULL}, 4313, "tcp"},
+{"fdt-rcatp", {NULL}, 4320, "tcp"},
+{"fdt-rcatp", {NULL}, 4320, "udp"},
+{"rwhois", {NULL}, 4321, "tcp"},
+{"rwhois", {NULL}, 4321, "udp"},
+{"trim-event", {NULL}, 4322, "tcp"},
+{"trim-event", {NULL}, 4322, "udp"},
+{"trim-ice", {NULL}, 4323, "tcp"},
+{"trim-ice", {NULL}, 4323, "udp"},
+{"balour", {NULL}, 4324, "tcp"},
+{"balour", {NULL}, 4324, "udp"},
+{"geognosisman", {NULL}, 4325, "tcp"},
+{"geognosisman", {NULL}, 4325, "udp"},
+{"geognosis", {NULL}, 4326, "tcp"},
+{"geognosis", {NULL}, 4326, "udp"},
+{"jaxer-web", {NULL}, 4327, "tcp"},
+{"jaxer-web", {NULL}, 4327, "udp"},
+{"jaxer-manager", {NULL}, 4328, "tcp"},
+{"jaxer-manager", {NULL}, 4328, "udp"},
+{"publiqare-sync", {NULL}, 4329, "tcp"},
+{"gaia", {NULL}, 4340, "tcp"},
+{"gaia", {NULL}, 4340, "udp"},
+{"lisp-data", {NULL}, 4341, "tcp"},
+{"lisp-data", {NULL}, 4341, "udp"},
+{"lisp-cons", {NULL}, 4342, "tcp"},
+{"lisp-control", {NULL}, 4342, "udp"},
+{"unicall", {NULL}, 4343, "tcp"},
+{"unicall", {NULL}, 4343, "udp"},
+{"vinainstall", {NULL}, 4344, "tcp"},
+{"vinainstall", {NULL}, 4344, "udp"},
+{"m4-network-as", {NULL}, 4345, "tcp"},
+{"m4-network-as", {NULL}, 4345, "udp"},
+{"elanlm", {NULL}, 4346, "tcp"},
+{"elanlm", {NULL}, 4346, "udp"},
+{"lansurveyor", {NULL}, 4347, "tcp"},
+{"lansurveyor", {NULL}, 4347, "udp"},
+{"itose", {NULL}, 4348, "tcp"},
+{"itose", {NULL}, 4348, "udp"},
+{"fsportmap", {NULL}, 4349, "tcp"},
+{"fsportmap", {NULL}, 4349, "udp"},
+{"net-device", {NULL}, 4350, "tcp"},
+{"net-device", {NULL}, 4350, "udp"},
+{"plcy-net-svcs", {NULL}, 4351, "tcp"},
+{"plcy-net-svcs", {NULL}, 4351, "udp"},
+{"pjlink", {NULL}, 4352, "tcp"},
+{"pjlink", {NULL}, 4352, "udp"},
+{"f5-iquery", {NULL}, 4353, "tcp"},
+{"f5-iquery", {NULL}, 4353, "udp"},
+{"qsnet-trans", {NULL}, 4354, "tcp"},
+{"qsnet-trans", {NULL}, 4354, "udp"},
+{"qsnet-workst", {NULL}, 4355, "tcp"},
+{"qsnet-workst", {NULL}, 4355, "udp"},
+{"qsnet-assist", {NULL}, 4356, "tcp"},
+{"qsnet-assist", {NULL}, 4356, "udp"},
+{"qsnet-cond", {NULL}, 4357, "tcp"},
+{"qsnet-cond", {NULL}, 4357, "udp"},
+{"qsnet-nucl", {NULL}, 4358, "tcp"},
+{"qsnet-nucl", {NULL}, 4358, "udp"},
+{"omabcastltkm", {NULL}, 4359, "tcp"},
+{"omabcastltkm", {NULL}, 4359, "udp"},
+{"matrix_vnet", {NULL}, 4360, "tcp"},
+{"nacnl", {NULL}, 4361, "udp"},
+{"afore-vdp-disc", {NULL}, 4362, "udp"},
+{"wxbrief", {NULL}, 4368, "tcp"},
+{"wxbrief", {NULL}, 4368, "udp"},
+{"epmd", {NULL}, 4369, "tcp"},
+{"epmd", {NULL}, 4369, "udp"},
+{"elpro_tunnel", {NULL}, 4370, "tcp"},
+{"elpro_tunnel", {NULL}, 4370, "udp"},
+{"l2c-control", {NULL}, 4371, "tcp"},
+{"l2c-disc", {NULL}, 4371, "udp"},
+{"l2c-data", {NULL}, 4372, "tcp"},
+{"l2c-data", {NULL}, 4372, "udp"},
+{"remctl", {NULL}, 4373, "tcp"},
+{"remctl", {NULL}, 4373, "udp"},
+{"psi-ptt", {NULL}, 4374, "tcp"},
+{"tolteces", {NULL}, 4375, "tcp"},
+{"tolteces", {NULL}, 4375, "udp"},
+{"bip", {NULL}, 4376, "tcp"},
+{"bip", {NULL}, 4376, "udp"},
+{"cp-spxsvr", {NULL}, 4377, "tcp"},
+{"cp-spxsvr", {NULL}, 4377, "udp"},
+{"cp-spxdpy", {NULL}, 4378, "tcp"},
+{"cp-spxdpy", {NULL}, 4378, "udp"},
+{"ctdb", {NULL}, 4379, "tcp"},
+{"ctdb", {NULL}, 4379, "udp"},
+{"xandros-cms", {NULL}, 4389, "tcp"},
+{"xandros-cms", {NULL}, 4389, "udp"},
+{"wiegand", {NULL}, 4390, "tcp"},
+{"wiegand", {NULL}, 4390, "udp"},
+{"apwi-imserver", {NULL}, 4391, "tcp"},
+{"apwi-rxserver", {NULL}, 4392, "tcp"},
+{"apwi-rxspooler", {NULL}, 4393, "tcp"},
+{"apwi-disc", {NULL}, 4394, "udp"},
+{"omnivisionesx", {NULL}, 4395, "tcp"},
+{"omnivisionesx", {NULL}, 4395, "udp"},
+{"fly", {NULL}, 4396, "tcp"},
+{"ds-srv", {NULL}, 4400, "tcp"},
+{"ds-srv", {NULL}, 4400, "udp"},
+{"ds-srvr", {NULL}, 4401, "tcp"},
+{"ds-srvr", {NULL}, 4401, "udp"},
+{"ds-clnt", {NULL}, 4402, "tcp"},
+{"ds-clnt", {NULL}, 4402, "udp"},
+{"ds-user", {NULL}, 4403, "tcp"},
+{"ds-user", {NULL}, 4403, "udp"},
+{"ds-admin", {NULL}, 4404, "tcp"},
+{"ds-admin", {NULL}, 4404, "udp"},
+{"ds-mail", {NULL}, 4405, "tcp"},
+{"ds-mail", {NULL}, 4405, "udp"},
+{"ds-slp", {NULL}, 4406, "tcp"},
+{"ds-slp", {NULL}, 4406, "udp"},
+{"nacagent", {NULL}, 4407, "tcp"},
+{"slscc", {NULL}, 4408, "tcp"},
+{"netcabinet-com", {NULL}, 4409, "tcp"},
+{"itwo-server", {NULL}, 4410, "tcp"},
+{"netrockey6", {NULL}, 4425, "tcp"},
+{"netrockey6", {NULL}, 4425, "udp"},
+{"beacon-port-2", {NULL}, 4426, "tcp"},
+{"beacon-port-2", {NULL}, 4426, "udp"},
+{"drizzle", {NULL}, 4427, "tcp"},
+{"omviserver", {NULL}, 4428, "tcp"},
+{"omviagent", {NULL}, 4429, "tcp"},
+{"rsqlserver", {NULL}, 4430, "tcp"},
+{"rsqlserver", {NULL}, 4430, "udp"},
+{"wspipe", {NULL}, 4431, "tcp"},
+{"netblox", {NULL}, 4441, "udp"},
+{"saris", {NULL}, 4442, "tcp"},
+{"saris", {NULL}, 4442, "udp"},
+{"pharos", {NULL}, 4443, "tcp"},
+{"pharos", {NULL}, 4443, "udp"},
+{"krb524", {NULL}, 4444, "tcp"},
+{"krb524", {NULL}, 4444, "udp"},
+{"nv-video", {NULL}, 4444, "tcp"},
+{"nv-video", {NULL}, 4444, "udp"},
+{"upnotifyp", {NULL}, 4445, "tcp"},
+{"upnotifyp", {NULL}, 4445, "udp"},
+{"n1-fwp", {NULL}, 4446, "tcp"},
+{"n1-fwp", {NULL}, 4446, "udp"},
+{"n1-rmgmt", {NULL}, 4447, "tcp"},
+{"n1-rmgmt", {NULL}, 4447, "udp"},
+{"asc-slmd", {NULL}, 4448, "tcp"},
+{"asc-slmd", {NULL}, 4448, "udp"},
+{"privatewire", {NULL}, 4449, "tcp"},
+{"privatewire", {NULL}, 4449, "udp"},
+{"camp", {NULL}, 4450, "tcp"},
+{"camp", {NULL}, 4450, "udp"},
+{"ctisystemmsg", {NULL}, 4451, "tcp"},
+{"ctisystemmsg", {NULL}, 4451, "udp"},
+{"ctiprogramload", {NULL}, 4452, "tcp"},
+{"ctiprogramload", {NULL}, 4452, "udp"},
+{"nssalertmgr", {NULL}, 4453, "tcp"},
+{"nssalertmgr", {NULL}, 4453, "udp"},
+{"nssagentmgr", {NULL}, 4454, "tcp"},
+{"nssagentmgr", {NULL}, 4454, "udp"},
+{"prchat-user", {NULL}, 4455, "tcp"},
+{"prchat-user", {NULL}, 4455, "udp"},
+{"prchat-server", {NULL}, 4456, "tcp"},
+{"prchat-server", {NULL}, 4456, "udp"},
+{"prRegister", {NULL}, 4457, "tcp"},
+{"prRegister", {NULL}, 4457, "udp"},
+{"mcp", {NULL}, 4458, "tcp"},
+{"mcp", {NULL}, 4458, "udp"},
+{"hpssmgmt", {NULL}, 4484, "tcp"},
+{"hpssmgmt", {NULL}, 4484, "udp"},
+{"assyst-dr", {NULL}, 4485, "tcp"},
+{"icms", {NULL}, 4486, "tcp"},
+{"icms", {NULL}, 4486, "udp"},
+{"prex-tcp", {NULL}, 4487, "tcp"},
+{"awacs-ice", {NULL}, 4488, "tcp"},
+{"awacs-ice", {NULL}, 4488, "udp"},
+{"ipsec-nat-t", {NULL}, 4500, "tcp"},
+{"ipsec-nat-t", {NULL}, 4500, "udp"},
+{"ehs", {NULL}, 4535, "tcp"},
+{"ehs", {NULL}, 4535, "udp"},
+{"ehs-ssl", {NULL}, 4536, "tcp"},
+{"ehs-ssl", {NULL}, 4536, "udp"},
+{"wssauthsvc", {NULL}, 4537, "tcp"},
+{"wssauthsvc", {NULL}, 4537, "udp"},
+{"swx-gate", {NULL}, 4538, "tcp"},
+{"swx-gate", {NULL}, 4538, "udp"},
+{"worldscores", {NULL}, 4545, "tcp"},
+{"worldscores", {NULL}, 4545, "udp"},
+{"sf-lm", {NULL}, 4546, "tcp"},
+{"sf-lm", {NULL}, 4546, "udp"},
+{"lanner-lm", {NULL}, 4547, "tcp"},
+{"lanner-lm", {NULL}, 4547, "udp"},
+{"synchromesh", {NULL}, 4548, "tcp"},
+{"synchromesh", {NULL}, 4548, "udp"},
+{"aegate", {NULL}, 4549, "tcp"},
+{"aegate", {NULL}, 4549, "udp"},
+{"gds-adppiw-db", {NULL}, 4550, "tcp"},
+{"gds-adppiw-db", {NULL}, 4550, "udp"},
+{"ieee-mih", {NULL}, 4551, "tcp"},
+{"ieee-mih", {NULL}, 4551, "udp"},
+{"menandmice-mon", {NULL}, 4552, "tcp"},
+{"menandmice-mon", {NULL}, 4552, "udp"},
+{"icshostsvc", {NULL}, 4553, "tcp"},
+{"msfrs", {NULL}, 4554, "tcp"},
+{"msfrs", {NULL}, 4554, "udp"},
+{"rsip", {NULL}, 4555, "tcp"},
+{"rsip", {NULL}, 4555, "udp"},
+{"dtn-bundle-tcp", {NULL}, 4556, "tcp"},
+{"dtn-bundle-udp", {NULL}, 4556, "udp"},
+{"mtcevrunqss", {NULL}, 4557, "udp"},
+{"mtcevrunqman", {NULL}, 4558, "udp"},
+{"hylafax", {NULL}, 4559, "tcp"},
+{"hylafax", {NULL}, 4559, "udp"},
+{"kwtc", {NULL}, 4566, "tcp"},
+{"kwtc", {NULL}, 4566, "udp"},
+{"tram", {NULL}, 4567, "tcp"},
+{"tram", {NULL}, 4567, "udp"},
+{"bmc-reporting", {NULL}, 4568, "tcp"},
+{"bmc-reporting", {NULL}, 4568, "udp"},
+{"iax", {NULL}, 4569, "tcp"},
+{"iax", {NULL}, 4569, "udp"},
+{"rid", {NULL}, 4590, "tcp"},
+{"l3t-at-an", {NULL}, 4591, "tcp"},
+{"l3t-at-an", {NULL}, 4591, "udp"},
+{"hrpd-ith-at-an", {NULL}, 4592, "udp"},
+{"ipt-anri-anri", {NULL}, 4593, "tcp"},
+{"ipt-anri-anri", {NULL}, 4593, "udp"},
+{"ias-session", {NULL}, 4594, "tcp"},
+{"ias-session", {NULL}, 4594, "udp"},
+{"ias-paging", {NULL}, 4595, "tcp"},
+{"ias-paging", {NULL}, 4595, "udp"},
+{"ias-neighbor", {NULL}, 4596, "tcp"},
+{"ias-neighbor", {NULL}, 4596, "udp"},
+{"a21-an-1xbs", {NULL}, 4597, "tcp"},
+{"a21-an-1xbs", {NULL}, 4597, "udp"},
+{"a16-an-an", {NULL}, 4598, "tcp"},
+{"a16-an-an", {NULL}, 4598, "udp"},
+{"a17-an-an", {NULL}, 4599, "tcp"},
+{"a17-an-an", {NULL}, 4599, "udp"},
+{"piranha1", {NULL}, 4600, "tcp"},
+{"piranha1", {NULL}, 4600, "udp"},
+{"piranha2", {NULL}, 4601, "tcp"},
+{"piranha2", {NULL}, 4601, "udp"},
+{"mtsserver", {NULL}, 4602, "tcp"},
+{"menandmice-upg", {NULL}, 4603, "tcp"},
+{"playsta2-app", {NULL}, 4658, "tcp"},
+{"playsta2-app", {NULL}, 4658, "udp"},
+{"playsta2-lob", {NULL}, 4659, "tcp"},
+{"playsta2-lob", {NULL}, 4659, "udp"},
+{"smaclmgr", {NULL}, 4660, "tcp"},
+{"smaclmgr", {NULL}, 4660, "udp"},
+{"kar2ouche", {NULL}, 4661, "tcp"},
+{"kar2ouche", {NULL}, 4661, "udp"},
+{"oms", {NULL}, 4662, "tcp"},
+{"oms", {NULL}, 4662, "udp"},
+{"noteit", {NULL}, 4663, "tcp"},
+{"noteit", {NULL}, 4663, "udp"},
+{"ems", {NULL}, 4664, "tcp"},
+{"ems", {NULL}, 4664, "udp"},
+{"contclientms", {NULL}, 4665, "tcp"},
+{"contclientms", {NULL}, 4665, "udp"},
+{"eportcomm", {NULL}, 4666, "tcp"},
+{"eportcomm", {NULL}, 4666, "udp"},
+{"mmacomm", {NULL}, 4667, "tcp"},
+{"mmacomm", {NULL}, 4667, "udp"},
+{"mmaeds", {NULL}, 4668, "tcp"},
+{"mmaeds", {NULL}, 4668, "udp"},
+{"eportcommdata", {NULL}, 4669, "tcp"},
+{"eportcommdata", {NULL}, 4669, "udp"},
+{"light", {NULL}, 4670, "tcp"},
+{"light", {NULL}, 4670, "udp"},
+{"acter", {NULL}, 4671, "tcp"},
+{"acter", {NULL}, 4671, "udp"},
+{"rfa", {NULL}, 4672, "tcp"},
+{"rfa", {NULL}, 4672, "udp"},
+{"cxws", {NULL}, 4673, "tcp"},
+{"cxws", {NULL}, 4673, "udp"},
+{"appiq-mgmt", {NULL}, 4674, "tcp"},
+{"appiq-mgmt", {NULL}, 4674, "udp"},
+{"dhct-status", {NULL}, 4675, "tcp"},
+{"dhct-status", {NULL}, 4675, "udp"},
+{"dhct-alerts", {NULL}, 4676, "tcp"},
+{"dhct-alerts", {NULL}, 4676, "udp"},
+{"bcs", {NULL}, 4677, "tcp"},
+{"bcs", {NULL}, 4677, "udp"},
+{"traversal", {NULL}, 4678, "tcp"},
+{"traversal", {NULL}, 4678, "udp"},
+{"mgesupervision", {NULL}, 4679, "tcp"},
+{"mgesupervision", {NULL}, 4679, "udp"},
+{"mgemanagement", {NULL}, 4680, "tcp"},
+{"mgemanagement", {NULL}, 4680, "udp"},
+{"parliant", {NULL}, 4681, "tcp"},
+{"parliant", {NULL}, 4681, "udp"},
+{"finisar", {NULL}, 4682, "tcp"},
+{"finisar", {NULL}, 4682, "udp"},
+{"spike", {NULL}, 4683, "tcp"},
+{"spike", {NULL}, 4683, "udp"},
+{"rfid-rp1", {NULL}, 4684, "tcp"},
+{"rfid-rp1", {NULL}, 4684, "udp"},
+{"autopac", {NULL}, 4685, "tcp"},
+{"autopac", {NULL}, 4685, "udp"},
+{"msp-os", {NULL}, 4686, "tcp"},
+{"msp-os", {NULL}, 4686, "udp"},
+{"nst", {NULL}, 4687, "tcp"},
+{"nst", {NULL}, 4687, "udp"},
+{"mobile-p2p", {NULL}, 4688, "tcp"},
+{"mobile-p2p", {NULL}, 4688, "udp"},
+{"altovacentral", {NULL}, 4689, "tcp"},
+{"altovacentral", {NULL}, 4689, "udp"},
+{"prelude", {NULL}, 4690, "tcp"},
+{"prelude", {NULL}, 4690, "udp"},
+{"mtn", {NULL}, 4691, "tcp"},
+{"mtn", {NULL}, 4691, "udp"},
+{"conspiracy", {NULL}, 4692, "tcp"},
+{"conspiracy", {NULL}, 4692, "udp"},
+{"netxms-agent", {NULL}, 4700, "tcp"},
+{"netxms-agent", {NULL}, 4700, "udp"},
+{"netxms-mgmt", {NULL}, 4701, "tcp"},
+{"netxms-mgmt", {NULL}, 4701, "udp"},
+{"netxms-sync", {NULL}, 4702, "tcp"},
+{"netxms-sync", {NULL}, 4702, "udp"},
+{"npqes-test", {NULL}, 4703, "tcp"},
+{"assuria-ins", {NULL}, 4704, "tcp"},
+{"truckstar", {NULL}, 4725, "tcp"},
+{"truckstar", {NULL}, 4725, "udp"},
+{"a26-fap-fgw", {NULL}, 4726, "udp"},
+{"fcis", {NULL}, 4727, "tcp"},
+{"fcis-disc", {NULL}, 4727, "udp"},
+{"capmux", {NULL}, 4728, "tcp"},
+{"capmux", {NULL}, 4728, "udp"},
+{"gsmtap", {NULL}, 4729, "udp"},
+{"gearman", {NULL}, 4730, "tcp"},
+{"gearman", {NULL}, 4730, "udp"},
+{"remcap", {NULL}, 4731, "tcp"},
+{"ohmtrigger", {NULL}, 4732, "udp"},
+{"resorcs", {NULL}, 4733, "tcp"},
+{"ipdr-sp", {NULL}, 4737, "tcp"},
+{"ipdr-sp", {NULL}, 4737, "udp"},
+{"solera-lpn", {NULL}, 4738, "tcp"},
+{"solera-lpn", {NULL}, 4738, "udp"},
+{"ipfix", {NULL}, 4739, "tcp"},
+{"ipfix", {NULL}, 4739, "udp"},
+{"ipfix", {NULL}, 4739, "sctp"},
+{"ipfixs", {NULL}, 4740, "tcp"},
+{"ipfixs", {NULL}, 4740, "sctp"},
+{"ipfixs", {NULL}, 4740, "udp"},
+{"lumimgrd", {NULL}, 4741, "tcp"},
+{"lumimgrd", {NULL}, 4741, "udp"},
+{"sicct", {NULL}, 4742, "tcp"},
+{"sicct-sdp", {NULL}, 4742, "udp"},
+{"openhpid", {NULL}, 4743, "tcp"},
+{"openhpid", {NULL}, 4743, "udp"},
+{"ifsp", {NULL}, 4744, "tcp"},
+{"ifsp", {NULL}, 4744, "udp"},
+{"fmp", {NULL}, 4745, "tcp"},
+{"fmp", {NULL}, 4745, "udp"},
+{"profilemac", {NULL}, 4749, "tcp"},
+{"profilemac", {NULL}, 4749, "udp"},
+{"ssad", {NULL}, 4750, "tcp"},
+{"ssad", {NULL}, 4750, "udp"},
+{"spocp", {NULL}, 4751, "tcp"},
+{"spocp", {NULL}, 4751, "udp"},
+{"snap", {NULL}, 4752, "tcp"},
+{"snap", {NULL}, 4752, "udp"},
+{"bfd-multi-ctl", {NULL}, 4784, "tcp"},
+{"bfd-multi-ctl", {NULL}, 4784, "udp"},
+{"cncp", {NULL}, 4785, "udp"},
+{"smart-install", {NULL}, 4786, "tcp"},
+{"sia-ctrl-plane", {NULL}, 4787, "tcp"},
+{"iims", {NULL}, 4800, "tcp"},
+{"iims", {NULL}, 4800, "udp"},
+{"iwec", {NULL}, 4801, "tcp"},
+{"iwec", {NULL}, 4801, "udp"},
+{"ilss", {NULL}, 4802, "tcp"},
+{"ilss", {NULL}, 4802, "udp"},
+{"notateit", {NULL}, 4803, "tcp"},
+{"notateit-disc", {NULL}, 4803, "udp"},
+{"aja-ntv4-disc", {NULL}, 4804, "udp"},
+{"htcp", {NULL}, 4827, "tcp"},
+{"htcp", {NULL}, 4827, "udp"},
+{"varadero-0", {NULL}, 4837, "tcp"},
+{"varadero-0", {NULL}, 4837, "udp"},
+{"varadero-1", {NULL}, 4838, "tcp"},
+{"varadero-1", {NULL}, 4838, "udp"},
+{"varadero-2", {NULL}, 4839, "tcp"},
+{"varadero-2", {NULL}, 4839, "udp"},
+{"opcua-tcp", {NULL}, 4840, "tcp"},
+{"opcua-udp", {NULL}, 4840, "udp"},
+{"quosa", {NULL}, 4841, "tcp"},
+{"quosa", {NULL}, 4841, "udp"},
+{"gw-asv", {NULL}, 4842, "tcp"},
+{"gw-asv", {NULL}, 4842, "udp"},
+{"opcua-tls", {NULL}, 4843, "tcp"},
+{"opcua-tls", {NULL}, 4843, "udp"},
+{"gw-log", {NULL}, 4844, "tcp"},
+{"gw-log", {NULL}, 4844, "udp"},
+{"wcr-remlib", {NULL}, 4845, "tcp"},
+{"wcr-remlib", {NULL}, 4845, "udp"},
+{"contamac_icm", {NULL}, 4846, "tcp"},
+{"contamac_icm", {NULL}, 4846, "udp"},
+{"wfc", {NULL}, 4847, "tcp"},
+{"wfc", {NULL}, 4847, "udp"},
+{"appserv-http", {NULL}, 4848, "tcp"},
+{"appserv-http", {NULL}, 4848, "udp"},
+{"appserv-https", {NULL}, 4849, "tcp"},
+{"appserv-https", {NULL}, 4849, "udp"},
+{"sun-as-nodeagt", {NULL}, 4850, "tcp"},
+{"sun-as-nodeagt", {NULL}, 4850, "udp"},
+{"derby-repli", {NULL}, 4851, "tcp"},
+{"derby-repli", {NULL}, 4851, "udp"},
+{"unify-debug", {NULL}, 4867, "tcp"},
+{"unify-debug", {NULL}, 4867, "udp"},
+{"phrelay", {NULL}, 4868, "tcp"},
+{"phrelay", {NULL}, 4868, "udp"},
+{"phrelaydbg", {NULL}, 4869, "tcp"},
+{"phrelaydbg", {NULL}, 4869, "udp"},
+{"cc-tracking", {NULL}, 4870, "tcp"},
+{"cc-tracking", {NULL}, 4870, "udp"},
+{"wired", {NULL}, 4871, "tcp"},
+{"wired", {NULL}, 4871, "udp"},
+{"tritium-can", {NULL}, 4876, "tcp"},
+{"tritium-can", {NULL}, 4876, "udp"},
+{"lmcs", {NULL}, 4877, "tcp"},
+{"lmcs", {NULL}, 4877, "udp"},
+{"inst-discovery", {NULL}, 4878, "udp"},
+{"wsdl-event", {NULL}, 4879, "tcp"},
+{"hislip", {NULL}, 4880, "tcp"},
+{"socp-t", {NULL}, 4881, "udp"},
+{"socp-c", {NULL}, 4882, "udp"},
+{"wmlserver", {NULL}, 4883, "tcp"},
+{"hivestor", {NULL}, 4884, "tcp"},
+{"hivestor", {NULL}, 4884, "udp"},
+{"abbs", {NULL}, 4885, "tcp"},
+{"abbs", {NULL}, 4885, "udp"},
+{"lyskom", {NULL}, 4894, "tcp"},
+{"lyskom", {NULL}, 4894, "udp"},
+{"radmin-port", {NULL}, 4899, "tcp"},
+{"radmin-port", {NULL}, 4899, "udp"},
+{"hfcs", {NULL}, 4900, "tcp"},
+{"hfcs", {NULL}, 4900, "udp"},
+{"flr_agent", {NULL}, 4901, "tcp"},
+{"magiccontrol", {NULL}, 4902, "tcp"},
+{"lutap", {NULL}, 4912, "tcp"},
+{"lutcp", {NULL}, 4913, "tcp"},
+{"bones", {NULL}, 4914, "tcp"},
+{"bones", {NULL}, 4914, "udp"},
+{"frcs", {NULL}, 4915, "tcp"},
+{"atsc-mh-ssc", {NULL}, 4937, "udp"},
+{"eq-office-4940", {NULL}, 4940, "tcp"},
+{"eq-office-4940", {NULL}, 4940, "udp"},
+{"eq-office-4941", {NULL}, 4941, "tcp"},
+{"eq-office-4941", {NULL}, 4941, "udp"},
+{"eq-office-4942", {NULL}, 4942, "tcp"},
+{"eq-office-4942", {NULL}, 4942, "udp"},
+{"munin", {NULL}, 4949, "tcp"},
+{"munin", {NULL}, 4949, "udp"},
+{"sybasesrvmon", {NULL}, 4950, "tcp"},
+{"sybasesrvmon", {NULL}, 4950, "udp"},
+{"pwgwims", {NULL}, 4951, "tcp"},
+{"pwgwims", {NULL}, 4951, "udp"},
+{"sagxtsds", {NULL}, 4952, "tcp"},
+{"sagxtsds", {NULL}, 4952, "udp"},
+{"dbsyncarbiter", {NULL}, 4953, "tcp"},
+{"ccss-qmm", {NULL}, 4969, "tcp"},
+{"ccss-qmm", {NULL}, 4969, "udp"},
+{"ccss-qsm", {NULL}, 4970, "tcp"},
+{"ccss-qsm", {NULL}, 4970, "udp"},
+{"webyast", {NULL}, 4984, "tcp"},
+{"gerhcs", {NULL}, 4985, "tcp"},
+{"mrip", {NULL}, 4986, "tcp"},
+{"mrip", {NULL}, 4986, "udp"},
+{"smar-se-port1", {NULL}, 4987, "tcp"},
+{"smar-se-port1", {NULL}, 4987, "udp"},
+{"smar-se-port2", {NULL}, 4988, "tcp"},
+{"smar-se-port2", {NULL}, 4988, "udp"},
+{"parallel", {NULL}, 4989, "tcp"},
+{"parallel", {NULL}, 4989, "udp"},
+{"busycal", {NULL}, 4990, "tcp"},
+{"busycal", {NULL}, 4990, "udp"},
+{"vrt", {NULL}, 4991, "tcp"},
+{"vrt", {NULL}, 4991, "udp"},
+{"hfcs-manager", {NULL}, 4999, "tcp"},
+{"hfcs-manager", {NULL}, 4999, "udp"},
+{"commplex-main", {NULL}, 5000, "tcp"},
+{"commplex-main", {NULL}, 5000, "udp"},
+{"commplex-link", {NULL}, 5001, "tcp"},
+{"commplex-link", {NULL}, 5001, "udp"},
+{"rfe", {NULL}, 5002, "tcp"},
+{"rfe", {NULL}, 5002, "udp"},
+{"fmpro-internal", {NULL}, 5003, "tcp"},
+{"fmpro-internal", {NULL}, 5003, "udp"},
+{"avt-profile-1", {NULL}, 5004, "tcp"},
+{"avt-profile-1", {NULL}, 5004, "udp"},
+{"avt-profile-1", {NULL}, 5004, "dccp"},
+{"avt-profile-2", {NULL}, 5005, "tcp"},
+{"avt-profile-2", {NULL}, 5005, "udp"},
+{"avt-profile-2", {NULL}, 5005, "dccp"},
+{"wsm-server", {NULL}, 5006, "tcp"},
+{"wsm-server", {NULL}, 5006, "udp"},
+{"wsm-server-ssl", {NULL}, 5007, "tcp"},
+{"wsm-server-ssl", {NULL}, 5007, "udp"},
+{"synapsis-edge", {NULL}, 5008, "tcp"},
+{"synapsis-edge", {NULL}, 5008, "udp"},
+{"winfs", {NULL}, 5009, "tcp"},
+{"winfs", {NULL}, 5009, "udp"},
+{"telelpathstart", {NULL}, 5010, "tcp"},
+{"telelpathstart", {NULL}, 5010, "udp"},
+{"telelpathattack", {NULL}, 5011, "tcp"},
+{"telelpathattack", {NULL}, 5011, "udp"},
+{"nsp", {NULL}, 5012, "tcp"},
+{"nsp", {NULL}, 5012, "udp"},
+{"fmpro-v6", {NULL}, 5013, "tcp"},
+{"fmpro-v6", {NULL}, 5013, "udp"},
+{"onpsocket", {NULL}, 5014, "udp"},
+{"fmwp", {NULL}, 5015, "tcp"},
+{"zenginkyo-1", {NULL}, 5020, "tcp"},
+{"zenginkyo-1", {NULL}, 5020, "udp"},
+{"zenginkyo-2", {NULL}, 5021, "tcp"},
+{"zenginkyo-2", {NULL}, 5021, "udp"},
+{"mice", {NULL}, 5022, "tcp"},
+{"mice", {NULL}, 5022, "udp"},
+{"htuilsrv", {NULL}, 5023, "tcp"},
+{"htuilsrv", {NULL}, 5023, "udp"},
+{"scpi-telnet", {NULL}, 5024, "tcp"},
+{"scpi-telnet", {NULL}, 5024, "udp"},
+{"scpi-raw", {NULL}, 5025, "tcp"},
+{"scpi-raw", {NULL}, 5025, "udp"},
+{"strexec-d", {NULL}, 5026, "tcp"},
+{"strexec-d", {NULL}, 5026, "udp"},
+{"strexec-s", {NULL}, 5027, "tcp"},
+{"strexec-s", {NULL}, 5027, "udp"},
+{"qvr", {NULL}, 5028, "tcp"},
+{"infobright", {NULL}, 5029, "tcp"},
+{"infobright", {NULL}, 5029, "udp"},
+{"surfpass", {NULL}, 5030, "tcp"},
+{"surfpass", {NULL}, 5030, "udp"},
+{"dmp", {NULL}, 5031, "udp"},
+{"asnaacceler8db", {NULL}, 5042, "tcp"},
+{"asnaacceler8db", {NULL}, 5042, "udp"},
+{"swxadmin", {NULL}, 5043, "tcp"},
+{"swxadmin", {NULL}, 5043, "udp"},
+{"lxi-evntsvc", {NULL}, 5044, "tcp"},
+{"lxi-evntsvc", {NULL}, 5044, "udp"},
+{"osp", {NULL}, 5045, "tcp"},
+{"vpm-udp", {NULL}, 5046, "udp"},
+{"iscape", {NULL}, 5047, "udp"},
+{"texai", {NULL}, 5048, "tcp"},
+{"ivocalize", {NULL}, 5049, "tcp"},
+{"ivocalize", {NULL}, 5049, "udp"},
+{"mmcc", {NULL}, 5050, "tcp"},
+{"mmcc", {NULL}, 5050, "udp"},
+{"ita-agent", {NULL}, 5051, "tcp"},
+{"ita-agent", {NULL}, 5051, "udp"},
+{"ita-manager", {NULL}, 5052, "tcp"},
+{"ita-manager", {NULL}, 5052, "udp"},
+{"rlm", {NULL}, 5053, "tcp"},
+{"rlm-admin", {NULL}, 5054, "tcp"},
+{"unot", {NULL}, 5055, "tcp"},
+{"unot", {NULL}, 5055, "udp"},
+{"intecom-ps1", {NULL}, 5056, "tcp"},
+{"intecom-ps1", {NULL}, 5056, "udp"},
+{"intecom-ps2", {NULL}, 5057, "tcp"},
+{"intecom-ps2", {NULL}, 5057, "udp"},
+{"locus-disc", {NULL}, 5058, "udp"},
+{"sds", {NULL}, 5059, "tcp"},
+{"sds", {NULL}, 5059, "udp"},
+{"sip", {NULL}, 5060, "tcp"},
+{"sip", {NULL}, 5060, "udp"},
+{"sip-tls", {NULL}, 5061, "tcp"},
+{"sip-tls", {NULL}, 5061, "udp"},
+{"na-localise", {NULL}, 5062, "tcp"},
+{"na-localise", {NULL}, 5062, "udp"},
+{"csrpc", {NULL}, 5063, "tcp"},
+{"ca-1", {NULL}, 5064, "tcp"},
+{"ca-1", {NULL}, 5064, "udp"},
+{"ca-2", {NULL}, 5065, "tcp"},
+{"ca-2", {NULL}, 5065, "udp"},
+{"stanag-5066", {NULL}, 5066, "tcp"},
+{"stanag-5066", {NULL}, 5066, "udp"},
+{"authentx", {NULL}, 5067, "tcp"},
+{"authentx", {NULL}, 5067, "udp"},
+{"bitforestsrv", {NULL}, 5068, "tcp"},
+{"i-net-2000-npr", {NULL}, 5069, "tcp"},
+{"i-net-2000-npr", {NULL}, 5069, "udp"},
+{"vtsas", {NULL}, 5070, "tcp"},
+{"vtsas", {NULL}, 5070, "udp"},
+{"powerschool", {NULL}, 5071, "tcp"},
+{"powerschool", {NULL}, 5071, "udp"},
+{"ayiya", {NULL}, 5072, "tcp"},
+{"ayiya", {NULL}, 5072, "udp"},
+{"tag-pm", {NULL}, 5073, "tcp"},
+{"tag-pm", {NULL}, 5073, "udp"},
+{"alesquery", {NULL}, 5074, "tcp"},
+{"alesquery", {NULL}, 5074, "udp"},
+{"cp-spxrpts", {NULL}, 5079, "udp"},
+{"onscreen", {NULL}, 5080, "tcp"},
+{"onscreen", {NULL}, 5080, "udp"},
+{"sdl-ets", {NULL}, 5081, "tcp"},
+{"sdl-ets", {NULL}, 5081, "udp"},
+{"qcp", {NULL}, 5082, "tcp"},
+{"qcp", {NULL}, 5082, "udp"},
+{"qfp", {NULL}, 5083, "tcp"},
+{"qfp", {NULL}, 5083, "udp"},
+{"llrp", {NULL}, 5084, "tcp"},
+{"llrp", {NULL}, 5084, "udp"},
+{"encrypted-llrp", {NULL}, 5085, "tcp"},
+{"encrypted-llrp", {NULL}, 5085, "udp"},
+{"aprigo-cs", {NULL}, 5086, "tcp"},
+{"car", {NULL}, 5090, "sctp"},
+{"cxtp", {NULL}, 5091, "sctp"},
+{"magpie", {NULL}, 5092, "udp"},
+{"sentinel-lm", {NULL}, 5093, "tcp"},
+{"sentinel-lm", {NULL}, 5093, "udp"},
+{"hart-ip", {NULL}, 5094, "tcp"},
+{"hart-ip", {NULL}, 5094, "udp"},
+{"sentlm-srv2srv", {NULL}, 5099, "tcp"},
+{"sentlm-srv2srv", {NULL}, 5099, "udp"},
+{"socalia", {NULL}, 5100, "tcp"},
+{"socalia", {NULL}, 5100, "udp"},
+{"talarian-tcp", {NULL}, 5101, "tcp"},
+{"talarian-udp", {NULL}, 5101, "udp"},
+{"oms-nonsecure", {NULL}, 5102, "tcp"},
+{"oms-nonsecure", {NULL}, 5102, "udp"},
+{"actifio-c2c", {NULL}, 5103, "tcp"},
+{"tinymessage", {NULL}, 5104, "udp"},
+{"hughes-ap", {NULL}, 5105, "udp"},
+{"taep-as-svc", {NULL}, 5111, "tcp"},
+{"taep-as-svc", {NULL}, 5111, "udp"},
+{"pm-cmdsvr", {NULL}, 5112, "tcp"},
+{"pm-cmdsvr", {NULL}, 5112, "udp"},
+{"ev-services", {NULL}, 5114, "tcp"},
+{"autobuild", {NULL}, 5115, "tcp"},
+{"emb-proj-cmd", {NULL}, 5116, "udp"},
+{"gradecam", {NULL}, 5117, "tcp"},
+{"nbt-pc", {NULL}, 5133, "tcp"},
+{"nbt-pc", {NULL}, 5133, "udp"},
+{"ppactivation", {NULL}, 5134, "tcp"},
+{"erp-scale", {NULL}, 5135, "tcp"},
+{"minotaur-sa", {NULL}, 5136, "udp"},
+{"ctsd", {NULL}, 5137, "tcp"},
+{"ctsd", {NULL}, 5137, "udp"},
+{"rmonitor_secure", {NULL}, 5145, "tcp"},
+{"rmonitor_secure", {NULL}, 5145, "udp"},
+{"social-alarm", {NULL}, 5146, "tcp"},
+{"atmp", {NULL}, 5150, "tcp"},
+{"atmp", {NULL}, 5150, "udp"},
+{"esri_sde", {NULL}, 5151, "tcp"},
+{"esri_sde", {NULL}, 5151, "udp"},
+{"sde-discovery", {NULL}, 5152, "tcp"},
+{"sde-discovery", {NULL}, 5152, "udp"},
+{"toruxserver", {NULL}, 5153, "tcp"},
+{"bzflag", {NULL}, 5154, "tcp"},
+{"bzflag", {NULL}, 5154, "udp"},
+{"asctrl-agent", {NULL}, 5155, "tcp"},
+{"asctrl-agent", {NULL}, 5155, "udp"},
+{"rugameonline", {NULL}, 5156, "tcp"},
+{"mediat", {NULL}, 5157, "tcp"},
+{"snmpssh", {NULL}, 5161, "tcp"},
+{"snmpssh-trap", {NULL}, 5162, "tcp"},
+{"sbackup", {NULL}, 5163, "tcp"},
+{"vpa", {NULL}, 5164, "tcp"},
+{"vpa-disc", {NULL}, 5164, "udp"},
+{"ife_icorp", {NULL}, 5165, "tcp"},
+{"ife_icorp", {NULL}, 5165, "udp"},
+{"winpcs", {NULL}, 5166, "tcp"},
+{"winpcs", {NULL}, 5166, "udp"},
+{"scte104", {NULL}, 5167, "tcp"},
+{"scte104", {NULL}, 5167, "udp"},
+{"scte30", {NULL}, 5168, "tcp"},
+{"scte30", {NULL}, 5168, "udp"},
+{"aol", {NULL}, 5190, "tcp"},
+{"aol", {NULL}, 5190, "udp"},
+{"aol-1", {NULL}, 5191, "tcp"},
+{"aol-1", {NULL}, 5191, "udp"},
+{"aol-2", {NULL}, 5192, "tcp"},
+{"aol-2", {NULL}, 5192, "udp"},
+{"aol-3", {NULL}, 5193, "tcp"},
+{"aol-3", {NULL}, 5193, "udp"},
+{"cpscomm", {NULL}, 5194, "tcp"},
+{"targus-getdata", {NULL}, 5200, "tcp"},
+{"targus-getdata", {NULL}, 5200, "udp"},
+{"targus-getdata1", {NULL}, 5201, "tcp"},
+{"targus-getdata1", {NULL}, 5201, "udp"},
+{"targus-getdata2", {NULL}, 5202, "tcp"},
+{"targus-getdata2", {NULL}, 5202, "udp"},
+{"targus-getdata3", {NULL}, 5203, "tcp"},
+{"targus-getdata3", {NULL}, 5203, "udp"},
+{"3exmp", {NULL}, 5221, "tcp"},
+{"xmpp-client", {NULL}, 5222, "tcp"},
+{"hpvirtgrp", {NULL}, 5223, "tcp"},
+{"hpvirtgrp", {NULL}, 5223, "udp"},
+{"hpvirtctrl", {NULL}, 5224, "tcp"},
+{"hpvirtctrl", {NULL}, 5224, "udp"},
+{"hp-server", {NULL}, 5225, "tcp"},
+{"hp-server", {NULL}, 5225, "udp"},
+{"hp-status", {NULL}, 5226, "tcp"},
+{"hp-status", {NULL}, 5226, "udp"},
+{"perfd", {NULL}, 5227, "tcp"},
+{"perfd", {NULL}, 5227, "udp"},
+{"hpvroom", {NULL}, 5228, "tcp"},
+{"csedaemon", {NULL}, 5232, "tcp"},
+{"enfs", {NULL}, 5233, "tcp"},
+{"eenet", {NULL}, 5234, "tcp"},
+{"eenet", {NULL}, 5234, "udp"},
+{"galaxy-network", {NULL}, 5235, "tcp"},
+{"galaxy-network", {NULL}, 5235, "udp"},
+{"padl2sim", {NULL}, 5236, "tcp"},
+{"padl2sim", {NULL}, 5236, "udp"},
+{"mnet-discovery", {NULL}, 5237, "tcp"},
+{"mnet-discovery", {NULL}, 5237, "udp"},
+{"downtools", {NULL}, 5245, "tcp"},
+{"downtools-disc", {NULL}, 5245, "udp"},
+{"capwap-control", {NULL}, 5246, "udp"},
+{"capwap-data", {NULL}, 5247, "udp"},
+{"caacws", {NULL}, 5248, "tcp"},
+{"caacws", {NULL}, 5248, "udp"},
+{"caaclang2", {NULL}, 5249, "tcp"},
+{"caaclang2", {NULL}, 5249, "udp"},
+{"soagateway", {NULL}, 5250, "tcp"},
+{"soagateway", {NULL}, 5250, "udp"},
+{"caevms", {NULL}, 5251, "tcp"},
+{"caevms", {NULL}, 5251, "udp"},
+{"movaz-ssc", {NULL}, 5252, "tcp"},
+{"movaz-ssc", {NULL}, 5252, "udp"},
+{"kpdp", {NULL}, 5253, "tcp"},
+{"3com-njack-1", {NULL}, 5264, "tcp"},
+{"3com-njack-1", {NULL}, 5264, "udp"},
+{"3com-njack-2", {NULL}, 5265, "tcp"},
+{"3com-njack-2", {NULL}, 5265, "udp"},
+{"xmpp-server", {NULL}, 5269, "tcp"},
+{"xmp", {NULL}, 5270, "tcp"},
+{"xmp", {NULL}, 5270, "udp"},
+{"cuelink", {NULL}, 5271, "tcp"},
+{"cuelink-disc", {NULL}, 5271, "udp"},
+{"pk", {NULL}, 5272, "tcp"},
+{"pk", {NULL}, 5272, "udp"},
+{"xmpp-bosh", {NULL}, 5280, "tcp"},
+{"undo-lm", {NULL}, 5281, "tcp"},
+{"transmit-port", {NULL}, 5282, "tcp"},
+{"transmit-port", {NULL}, 5282, "udp"},
+{"presence", {NULL}, 5298, "tcp"},
+{"presence", {NULL}, 5298, "udp"},
+{"nlg-data", {NULL}, 5299, "tcp"},
+{"nlg-data", {NULL}, 5299, "udp"},
+{"hacl-hb", {NULL}, 5300, "tcp"},
+{"hacl-hb", {NULL}, 5300, "udp"},
+{"hacl-gs", {NULL}, 5301, "tcp"},
+{"hacl-gs", {NULL}, 5301, "udp"},
+{"hacl-cfg", {NULL}, 5302, "tcp"},
+{"hacl-cfg", {NULL}, 5302, "udp"},
+{"hacl-probe", {NULL}, 5303, "tcp"},
+{"hacl-probe", {NULL}, 5303, "udp"},
+{"hacl-local", {NULL}, 5304, "tcp"},
+{"hacl-local", {NULL}, 5304, "udp"},
+{"hacl-test", {NULL}, 5305, "tcp"},
+{"hacl-test", {NULL}, 5305, "udp"},
+{"sun-mc-grp", {NULL}, 5306, "tcp"},
+{"sun-mc-grp", {NULL}, 5306, "udp"},
+{"sco-aip", {NULL}, 5307, "tcp"},
+{"sco-aip", {NULL}, 5307, "udp"},
+{"cfengine", {NULL}, 5308, "tcp"},
+{"cfengine", {NULL}, 5308, "udp"},
+{"jprinter", {NULL}, 5309, "tcp"},
+{"jprinter", {NULL}, 5309, "udp"},
+{"outlaws", {NULL}, 5310, "tcp"},
+{"outlaws", {NULL}, 5310, "udp"},
+{"permabit-cs", {NULL}, 5312, "tcp"},
+{"permabit-cs", {NULL}, 5312, "udp"},
+{"rrdp", {NULL}, 5313, "tcp"},
+{"rrdp", {NULL}, 5313, "udp"},
+{"opalis-rbt-ipc", {NULL}, 5314, "tcp"},
+{"opalis-rbt-ipc", {NULL}, 5314, "udp"},
+{"hacl-poll", {NULL}, 5315, "tcp"},
+{"hacl-poll", {NULL}, 5315, "udp"},
+{"hpdevms", {NULL}, 5316, "tcp"},
+{"hpdevms", {NULL}, 5316, "udp"},
+{"bsfserver-zn", {NULL}, 5320, "tcp"},
+{"bsfsvr-zn-ssl", {NULL}, 5321, "tcp"},
+{"kfserver", {NULL}, 5343, "tcp"},
+{"kfserver", {NULL}, 5343, "udp"},
+{"xkotodrcp", {NULL}, 5344, "tcp"},
+{"xkotodrcp", {NULL}, 5344, "udp"},
+{"stuns", {NULL}, 5349, "tcp"},
+{"stuns", {NULL}, 5349, "udp"},
+{"turns", {NULL}, 5349, "tcp"},
+{"turns", {NULL}, 5349, "udp"},
+{"stun-behaviors", {NULL}, 5349, "tcp"},
+{"stun-behaviors", {NULL}, 5349, "udp"},
+{"nat-pmp-status", {NULL}, 5350, "tcp"},
+{"nat-pmp-status", {NULL}, 5350, "udp"},
+{"nat-pmp", {NULL}, 5351, "tcp"},
+{"nat-pmp", {NULL}, 5351, "udp"},
+{"dns-llq", {NULL}, 5352, "tcp"},
+{"dns-llq", {NULL}, 5352, "udp"},
+{"mdns", {NULL}, 5353, "tcp"},
+{"mdns", {NULL}, 5353, "udp"},
+{"mdnsresponder", {NULL}, 5354, "tcp"},
+{"mdnsresponder", {NULL}, 5354, "udp"},
+{"llmnr", {NULL}, 5355, "tcp"},
+{"llmnr", {NULL}, 5355, "udp"},
+{"ms-smlbiz", {NULL}, 5356, "tcp"},
+{"ms-smlbiz", {NULL}, 5356, "udp"},
+{"wsdapi", {NULL}, 5357, "tcp"},
+{"wsdapi", {NULL}, 5357, "udp"},
+{"wsdapi-s", {NULL}, 5358, "tcp"},
+{"wsdapi-s", {NULL}, 5358, "udp"},
+{"ms-alerter", {NULL}, 5359, "tcp"},
+{"ms-alerter", {NULL}, 5359, "udp"},
+{"ms-sideshow", {NULL}, 5360, "tcp"},
+{"ms-sideshow", {NULL}, 5360, "udp"},
+{"ms-s-sideshow", {NULL}, 5361, "tcp"},
+{"ms-s-sideshow", {NULL}, 5361, "udp"},
+{"serverwsd2", {NULL}, 5362, "tcp"},
+{"serverwsd2", {NULL}, 5362, "udp"},
+{"net-projection", {NULL}, 5363, "tcp"},
+{"net-projection", {NULL}, 5363, "udp"},
+{"stresstester", {NULL}, 5397, "tcp"},
+{"stresstester", {NULL}, 5397, "udp"},
+{"elektron-admin", {NULL}, 5398, "tcp"},
+{"elektron-admin", {NULL}, 5398, "udp"},
+{"securitychase", {NULL}, 5399, "tcp"},
+{"securitychase", {NULL}, 5399, "udp"},
+{"excerpt", {NULL}, 5400, "tcp"},
+{"excerpt", {NULL}, 5400, "udp"},
+{"excerpts", {NULL}, 5401, "tcp"},
+{"excerpts", {NULL}, 5401, "udp"},
+{"mftp", {NULL}, 5402, "tcp"},
+{"mftp", {NULL}, 5402, "udp"},
+{"hpoms-ci-lstn", {NULL}, 5403, "tcp"},
+{"hpoms-ci-lstn", {NULL}, 5403, "udp"},
+{"hpoms-dps-lstn", {NULL}, 5404, "tcp"},
+{"hpoms-dps-lstn", {NULL}, 5404, "udp"},
+{"netsupport", {NULL}, 5405, "tcp"},
+{"netsupport", {NULL}, 5405, "udp"},
+{"systemics-sox", {NULL}, 5406, "tcp"},
+{"systemics-sox", {NULL}, 5406, "udp"},
+{"foresyte-clear", {NULL}, 5407, "tcp"},
+{"foresyte-clear", {NULL}, 5407, "udp"},
+{"foresyte-sec", {NULL}, 5408, "tcp"},
+{"foresyte-sec", {NULL}, 5408, "udp"},
+{"salient-dtasrv", {NULL}, 5409, "tcp"},
+{"salient-dtasrv", {NULL}, 5409, "udp"},
+{"salient-usrmgr", {NULL}, 5410, "tcp"},
+{"salient-usrmgr", {NULL}, 5410, "udp"},
+{"actnet", {NULL}, 5411, "tcp"},
+{"actnet", {NULL}, 5411, "udp"},
+{"continuus", {NULL}, 5412, "tcp"},
+{"continuus", {NULL}, 5412, "udp"},
+{"wwiotalk", {NULL}, 5413, "tcp"},
+{"wwiotalk", {NULL}, 5413, "udp"},
+{"statusd", {NULL}, 5414, "tcp"},
+{"statusd", {NULL}, 5414, "udp"},
+{"ns-server", {NULL}, 5415, "tcp"},
+{"ns-server", {NULL}, 5415, "udp"},
+{"sns-gateway", {NULL}, 5416, "tcp"},
+{"sns-gateway", {NULL}, 5416, "udp"},
+{"sns-agent", {NULL}, 5417, "tcp"},
+{"sns-agent", {NULL}, 5417, "udp"},
+{"mcntp", {NULL}, 5418, "tcp"},
+{"mcntp", {NULL}, 5418, "udp"},
+{"dj-ice", {NULL}, 5419, "tcp"},
+{"dj-ice", {NULL}, 5419, "udp"},
+{"cylink-c", {NULL}, 5420, "tcp"},
+{"cylink-c", {NULL}, 5420, "udp"},
+{"netsupport2", {NULL}, 5421, "tcp"},
+{"netsupport2", {NULL}, 5421, "udp"},
+{"salient-mux", {NULL}, 5422, "tcp"},
+{"salient-mux", {NULL}, 5422, "udp"},
+{"virtualuser", {NULL}, 5423, "tcp"},
+{"virtualuser", {NULL}, 5423, "udp"},
+{"beyond-remote", {NULL}, 5424, "tcp"},
+{"beyond-remote", {NULL}, 5424, "udp"},
+{"br-channel", {NULL}, 5425, "tcp"},
+{"br-channel", {NULL}, 5425, "udp"},
+{"devbasic", {NULL}, 5426, "tcp"},
+{"devbasic", {NULL}, 5426, "udp"},
+{"sco-peer-tta", {NULL}, 5427, "tcp"},
+{"sco-peer-tta", {NULL}, 5427, "udp"},
+{"telaconsole", {NULL}, 5428, "tcp"},
+{"telaconsole", {NULL}, 5428, "udp"},
+{"base", {NULL}, 5429, "tcp"},
+{"base", {NULL}, 5429, "udp"},
+{"radec-corp", {NULL}, 5430, "tcp"},
+{"radec-corp", {NULL}, 5430, "udp"},
+{"park-agent", {NULL}, 5431, "tcp"},
+{"park-agent", {NULL}, 5431, "udp"},
+{"postgresql", {NULL}, 5432, "tcp"},
+{"postgresql", {NULL}, 5432, "udp"},
+{"pyrrho", {NULL}, 5433, "tcp"},
+{"pyrrho", {NULL}, 5433, "udp"},
+{"sgi-arrayd", {NULL}, 5434, "tcp"},
+{"sgi-arrayd", {NULL}, 5434, "udp"},
+{"sceanics", {NULL}, 5435, "tcp"},
+{"sceanics", {NULL}, 5435, "udp"},
+{"pmip6-cntl", {NULL}, 5436, "udp"},
+{"pmip6-data", {NULL}, 5437, "udp"},
+{"spss", {NULL}, 5443, "tcp"},
+{"spss", {NULL}, 5443, "udp"},
+{"surebox", {NULL}, 5453, "tcp"},
+{"surebox", {NULL}, 5453, "udp"},
+{"apc-5454", {NULL}, 5454, "tcp"},
+{"apc-5454", {NULL}, 5454, "udp"},
+{"apc-5455", {NULL}, 5455, "tcp"},
+{"apc-5455", {NULL}, 5455, "udp"},
+{"apc-5456", {NULL}, 5456, "tcp"},
+{"apc-5456", {NULL}, 5456, "udp"},
+{"silkmeter", {NULL}, 5461, "tcp"},
+{"silkmeter", {NULL}, 5461, "udp"},
+{"ttl-publisher", {NULL}, 5462, "tcp"},
+{"ttl-publisher", {NULL}, 5462, "udp"},
+{"ttlpriceproxy", {NULL}, 5463, "tcp"},
+{"ttlpriceproxy", {NULL}, 5463, "udp"},
+{"quailnet", {NULL}, 5464, "tcp"},
+{"quailnet", {NULL}, 5464, "udp"},
+{"netops-broker", {NULL}, 5465, "tcp"},
+{"netops-broker", {NULL}, 5465, "udp"},
+{"fcp-addr-srvr1", {NULL}, 5500, "tcp"},
+{"fcp-addr-srvr1", {NULL}, 5500, "udp"},
+{"fcp-addr-srvr2", {NULL}, 5501, "tcp"},
+{"fcp-addr-srvr2", {NULL}, 5501, "udp"},
+{"fcp-srvr-inst1", {NULL}, 5502, "tcp"},
+{"fcp-srvr-inst1", {NULL}, 5502, "udp"},
+{"fcp-srvr-inst2", {NULL}, 5503, "tcp"},
+{"fcp-srvr-inst2", {NULL}, 5503, "udp"},
+{"fcp-cics-gw1", {NULL}, 5504, "tcp"},
+{"fcp-cics-gw1", {NULL}, 5504, "udp"},
+{"checkoutdb", {NULL}, 5505, "tcp"},
+{"checkoutdb", {NULL}, 5505, "udp"},
+{"amc", {NULL}, 5506, "tcp"},
+{"amc", {NULL}, 5506, "udp"},
+{"sgi-eventmond", {NULL}, 5553, "tcp"},
+{"sgi-eventmond", {NULL}, 5553, "udp"},
+{"sgi-esphttp", {NULL}, 5554, "tcp"},
+{"sgi-esphttp", {NULL}, 5554, "udp"},
+{"personal-agent", {NULL}, 5555, "tcp"},
+{"personal-agent", {NULL}, 5555, "udp"},
+{"freeciv", {NULL}, 5556, "tcp"},
+{"freeciv", {NULL}, 5556, "udp"},
+{"farenet", {NULL}, 5557, "tcp"},
+{"westec-connect", {NULL}, 5566, "tcp"},
+{"m-oap", {NULL}, 5567, "tcp"},
+{"m-oap", {NULL}, 5567, "udp"},
+{"sdt", {NULL}, 5568, "tcp"},
+{"sdt", {NULL}, 5568, "udp"},
+{"sdmmp", {NULL}, 5573, "tcp"},
+{"sdmmp", {NULL}, 5573, "udp"},
+{"lsi-bobcat", {NULL}, 5574, "tcp"},
+{"ora-oap", {NULL}, 5575, "tcp"},
+{"fdtracks", {NULL}, 5579, "tcp"},
+{"tmosms0", {NULL}, 5580, "tcp"},
+{"tmosms0", {NULL}, 5580, "udp"},
+{"tmosms1", {NULL}, 5581, "tcp"},
+{"tmosms1", {NULL}, 5581, "udp"},
+{"fac-restore", {NULL}, 5582, "tcp"},
+{"fac-restore", {NULL}, 5582, "udp"},
+{"tmo-icon-sync", {NULL}, 5583, "tcp"},
+{"tmo-icon-sync", {NULL}, 5583, "udp"},
+{"bis-web", {NULL}, 5584, "tcp"},
+{"bis-web", {NULL}, 5584, "udp"},
+{"bis-sync", {NULL}, 5585, "tcp"},
+{"bis-sync", {NULL}, 5585, "udp"},
+{"ininmessaging", {NULL}, 5597, "tcp"},
+{"ininmessaging", {NULL}, 5597, "udp"},
+{"mctfeed", {NULL}, 5598, "tcp"},
+{"mctfeed", {NULL}, 5598, "udp"},
+{"esinstall", {NULL}, 5599, "tcp"},
+{"esinstall", {NULL}, 5599, "udp"},
+{"esmmanager", {NULL}, 5600, "tcp"},
+{"esmmanager", {NULL}, 5600, "udp"},
+{"esmagent", {NULL}, 5601, "tcp"},
+{"esmagent", {NULL}, 5601, "udp"},
+{"a1-msc", {NULL}, 5602, "tcp"},
+{"a1-msc", {NULL}, 5602, "udp"},
+{"a1-bs", {NULL}, 5603, "tcp"},
+{"a1-bs", {NULL}, 5603, "udp"},
+{"a3-sdunode", {NULL}, 5604, "tcp"},
+{"a3-sdunode", {NULL}, 5604, "udp"},
+{"a4-sdunode", {NULL}, 5605, "tcp"},
+{"a4-sdunode", {NULL}, 5605, "udp"},
+{"ninaf", {NULL}, 5627, "tcp"},
+{"ninaf", {NULL}, 5627, "udp"},
+{"htrust", {NULL}, 5628, "tcp"},
+{"htrust", {NULL}, 5628, "udp"},
+{"symantec-sfdb", {NULL}, 5629, "tcp"},
+{"symantec-sfdb", {NULL}, 5629, "udp"},
+{"precise-comm", {NULL}, 5630, "tcp"},
+{"precise-comm", {NULL}, 5630, "udp"},
+{"pcanywheredata", {NULL}, 5631, "tcp"},
+{"pcanywheredata", {NULL}, 5631, "udp"},
+{"pcanywherestat", {NULL}, 5632, "tcp"},
+{"pcanywherestat", {NULL}, 5632, "udp"},
+{"beorl", {NULL}, 5633, "tcp"},
+{"beorl", {NULL}, 5633, "udp"},
+{"xprtld", {NULL}, 5634, "tcp"},
+{"xprtld", {NULL}, 5634, "udp"},
+{"sfmsso", {NULL}, 5635, "tcp"},
+{"sfm-db-server", {NULL}, 5636, "tcp"},
+{"cssc", {NULL}, 5637, "tcp"},
+{"amqps", {NULL}, 5671, "tcp"},
+{"amqps", {NULL}, 5671, "udp"},
+{"amqp", {NULL}, 5672, "tcp"},
+{"amqp", {NULL}, 5672, "udp"},
+{"amqp", {NULL}, 5672, "sctp"},
+{"jms", {NULL}, 5673, "tcp"},
+{"jms", {NULL}, 5673, "udp"},
+{"hyperscsi-port", {NULL}, 5674, "tcp"},
+{"hyperscsi-port", {NULL}, 5674, "udp"},
+{"v5ua", {NULL}, 5675, "tcp"},
+{"v5ua", {NULL}, 5675, "udp"},
+{"v5ua", {NULL}, 5675, "sctp"},
+{"raadmin", {NULL}, 5676, "tcp"},
+{"raadmin", {NULL}, 5676, "udp"},
+{"questdb2-lnchr", {NULL}, 5677, "tcp"},
+{"questdb2-lnchr", {NULL}, 5677, "udp"},
+{"rrac", {NULL}, 5678, "tcp"},
+{"rrac", {NULL}, 5678, "udp"},
+{"dccm", {NULL}, 5679, "tcp"},
+{"dccm", {NULL}, 5679, "udp"},
+{"auriga-router", {NULL}, 5680, "tcp"},
+{"auriga-router", {NULL}, 5680, "udp"},
+{"ncxcp", {NULL}, 5681, "tcp"},
+{"ncxcp", {NULL}, 5681, "udp"},
+{"brightcore", {NULL}, 5682, "udp"},
+{"ggz", {NULL}, 5688, "tcp"},
+{"ggz", {NULL}, 5688, "udp"},
+{"qmvideo", {NULL}, 5689, "tcp"},
+{"qmvideo", {NULL}, 5689, "udp"},
+{"proshareaudio", {NULL}, 5713, "tcp"},
+{"proshareaudio", {NULL}, 5713, "udp"},
+{"prosharevideo", {NULL}, 5714, "tcp"},
+{"prosharevideo", {NULL}, 5714, "udp"},
+{"prosharedata", {NULL}, 5715, "tcp"},
+{"prosharedata", {NULL}, 5715, "udp"},
+{"prosharerequest", {NULL}, 5716, "tcp"},
+{"prosharerequest", {NULL}, 5716, "udp"},
+{"prosharenotify", {NULL}, 5717, "tcp"},
+{"prosharenotify", {NULL}, 5717, "udp"},
+{"dpm", {NULL}, 5718, "tcp"},
+{"dpm", {NULL}, 5718, "udp"},
+{"dpm-agent", {NULL}, 5719, "tcp"},
+{"dpm-agent", {NULL}, 5719, "udp"},
+{"ms-licensing", {NULL}, 5720, "tcp"},
+{"ms-licensing", {NULL}, 5720, "udp"},
+{"dtpt", {NULL}, 5721, "tcp"},
+{"dtpt", {NULL}, 5721, "udp"},
+{"msdfsr", {NULL}, 5722, "tcp"},
+{"msdfsr", {NULL}, 5722, "udp"},
+{"omhs", {NULL}, 5723, "tcp"},
+{"omhs", {NULL}, 5723, "udp"},
+{"omsdk", {NULL}, 5724, "tcp"},
+{"omsdk", {NULL}, 5724, "udp"},
+{"ms-ilm", {NULL}, 5725, "tcp"},
+{"ms-ilm-sts", {NULL}, 5726, "tcp"},
+{"asgenf", {NULL}, 5727, "tcp"},
+{"io-dist-data", {NULL}, 5728, "tcp"},
+{"io-dist-group", {NULL}, 5728, "udp"},
+{"openmail", {NULL}, 5729, "tcp"},
+{"openmail", {NULL}, 5729, "udp"},
+{"unieng", {NULL}, 5730, "tcp"},
+{"unieng", {NULL}, 5730, "udp"},
+{"ida-discover1", {NULL}, 5741, "tcp"},
+{"ida-discover1", {NULL}, 5741, "udp"},
+{"ida-discover2", {NULL}, 5742, "tcp"},
+{"ida-discover2", {NULL}, 5742, "udp"},
+{"watchdoc-pod", {NULL}, 5743, "tcp"},
+{"watchdoc-pod", {NULL}, 5743, "udp"},
+{"watchdoc", {NULL}, 5744, "tcp"},
+{"watchdoc", {NULL}, 5744, "udp"},
+{"fcopy-server", {NULL}, 5745, "tcp"},
+{"fcopy-server", {NULL}, 5745, "udp"},
+{"fcopys-server", {NULL}, 5746, "tcp"},
+{"fcopys-server", {NULL}, 5746, "udp"},
+{"tunatic", {NULL}, 5747, "tcp"},
+{"tunatic", {NULL}, 5747, "udp"},
+{"tunalyzer", {NULL}, 5748, "tcp"},
+{"tunalyzer", {NULL}, 5748, "udp"},
+{"rscd", {NULL}, 5750, "tcp"},
+{"rscd", {NULL}, 5750, "udp"},
+{"openmailg", {NULL}, 5755, "tcp"},
+{"openmailg", {NULL}, 5755, "udp"},
+{"x500ms", {NULL}, 5757, "tcp"},
+{"x500ms", {NULL}, 5757, "udp"},
+{"openmailns", {NULL}, 5766, "tcp"},
+{"openmailns", {NULL}, 5766, "udp"},
+{"s-openmail", {NULL}, 5767, "tcp"},
+{"s-openmail", {NULL}, 5767, "udp"},
+{"openmailpxy", {NULL}, 5768, "tcp"},
+{"openmailpxy", {NULL}, 5768, "udp"},
+{"spramsca", {NULL}, 5769, "tcp"},
+{"spramsca", {NULL}, 5769, "udp"},
+{"spramsd", {NULL}, 5770, "tcp"},
+{"spramsd", {NULL}, 5770, "udp"},
+{"netagent", {NULL}, 5771, "tcp"},
+{"netagent", {NULL}, 5771, "udp"},
+{"dali-port", {NULL}, 5777, "tcp"},
+{"dali-port", {NULL}, 5777, "udp"},
+{"vts-rpc", {NULL}, 5780, "tcp"},
+{"3par-evts", {NULL}, 5781, "tcp"},
+{"3par-evts", {NULL}, 5781, "udp"},
+{"3par-mgmt", {NULL}, 5782, "tcp"},
+{"3par-mgmt", {NULL}, 5782, "udp"},
+{"3par-mgmt-ssl", {NULL}, 5783, "tcp"},
+{"3par-mgmt-ssl", {NULL}, 5783, "udp"},
+{"ibar", {NULL}, 5784, "udp"},
+{"3par-rcopy", {NULL}, 5785, "tcp"},
+{"3par-rcopy", {NULL}, 5785, "udp"},
+{"cisco-redu", {NULL}, 5786, "udp"},
+{"waascluster", {NULL}, 5787, "udp"},
+{"xtreamx", {NULL}, 5793, "tcp"},
+{"xtreamx", {NULL}, 5793, "udp"},
+{"spdp", {NULL}, 5794, "udp"},
+{"icmpd", {NULL}, 5813, "tcp"},
+{"icmpd", {NULL}, 5813, "udp"},
+{"spt-automation", {NULL}, 5814, "tcp"},
+{"spt-automation", {NULL}, 5814, "udp"},
+{"wherehoo", {NULL}, 5859, "tcp"},
+{"wherehoo", {NULL}, 5859, "udp"},
+{"ppsuitemsg", {NULL}, 5863, "tcp"},
+{"ppsuitemsg", {NULL}, 5863, "udp"},
+{"rfb", {NULL}, 5900, "tcp"},
+{"rfb", {NULL}, 5900, "udp"},
+{"cm", {NULL}, 5910, "tcp"},
+{"cm", {NULL}, 5910, "udp"},
+{"cpdlc", {NULL}, 5911, "tcp"},
+{"cpdlc", {NULL}, 5911, "udp"},
+{"fis", {NULL}, 5912, "tcp"},
+{"fis", {NULL}, 5912, "udp"},
+{"ads-c", {NULL}, 5913, "tcp"},
+{"ads-c", {NULL}, 5913, "udp"},
+{"indy", {NULL}, 5963, "tcp"},
+{"indy", {NULL}, 5963, "udp"},
+{"mppolicy-v5", {NULL}, 5968, "tcp"},
+{"mppolicy-v5", {NULL}, 5968, "udp"},
+{"mppolicy-mgr", {NULL}, 5969, "tcp"},
+{"mppolicy-mgr", {NULL}, 5969, "udp"},
+{"couchdb", {NULL}, 5984, "tcp"},
+{"couchdb", {NULL}, 5984, "udp"},
+{"wsman", {NULL}, 5985, "tcp"},
+{"wsman", {NULL}, 5985, "udp"},
+{"wsmans", {NULL}, 5986, "tcp"},
+{"wsmans", {NULL}, 5986, "udp"},
+{"wbem-rmi", {NULL}, 5987, "tcp"},
+{"wbem-rmi", {NULL}, 5987, "udp"},
+{"wbem-http", {NULL}, 5988, "tcp"},
+{"wbem-http", {NULL}, 5988, "udp"},
+{"wbem-https", {NULL}, 5989, "tcp"},
+{"wbem-https", {NULL}, 5989, "udp"},
+{"wbem-exp-https", {NULL}, 5990, "tcp"},
+{"wbem-exp-https", {NULL}, 5990, "udp"},
+{"nuxsl", {NULL}, 5991, "tcp"},
+{"nuxsl", {NULL}, 5991, "udp"},
+{"consul-insight", {NULL}, 5992, "tcp"},
+{"consul-insight", {NULL}, 5992, "udp"},
+{"cvsup", {NULL}, 5999, "tcp"},
+{"cvsup", {NULL}, 5999, "udp"},
+{"ndl-ahp-svc", {NULL}, 6064, "tcp"},
+{"ndl-ahp-svc", {NULL}, 6064, "udp"},
+{"winpharaoh", {NULL}, 6065, "tcp"},
+{"winpharaoh", {NULL}, 6065, "udp"},
+{"ewctsp", {NULL}, 6066, "tcp"},
+{"ewctsp", {NULL}, 6066, "udp"},
+{"gsmp", {NULL}, 6068, "tcp"},
+{"gsmp", {NULL}, 6068, "udp"},
+{"trip", {NULL}, 6069, "tcp"},
+{"trip", {NULL}, 6069, "udp"},
+{"messageasap", {NULL}, 6070, "tcp"},
+{"messageasap", {NULL}, 6070, "udp"},
+{"ssdtp", {NULL}, 6071, "tcp"},
+{"ssdtp", {NULL}, 6071, "udp"},
+{"diagnose-proc", {NULL}, 6072, "tcp"},
+{"diagnose-proc", {NULL}, 6072, "udp"},
+{"directplay8", {NULL}, 6073, "tcp"},
+{"directplay8", {NULL}, 6073, "udp"},
+{"max", {NULL}, 6074, "tcp"},
+{"max", {NULL}, 6074, "udp"},
+{"dpm-acm", {NULL}, 6075, "tcp"},
+{"miami-bcast", {NULL}, 6083, "udp"},
+{"p2p-sip", {NULL}, 6084, "tcp"},
+{"konspire2b", {NULL}, 6085, "tcp"},
+{"konspire2b", {NULL}, 6085, "udp"},
+{"pdtp", {NULL}, 6086, "tcp"},
+{"pdtp", {NULL}, 6086, "udp"},
+{"ldss", {NULL}, 6087, "tcp"},
+{"ldss", {NULL}, 6087, "udp"},
+{"raxa-mgmt", {NULL}, 6099, "tcp"},
+{"synchronet-db", {NULL}, 6100, "tcp"},
+{"synchronet-db", {NULL}, 6100, "udp"},
+{"synchronet-rtc", {NULL}, 6101, "tcp"},
+{"synchronet-rtc", {NULL}, 6101, "udp"},
+{"synchronet-upd", {NULL}, 6102, "tcp"},
+{"synchronet-upd", {NULL}, 6102, "udp"},
+{"rets", {NULL}, 6103, "tcp"},
+{"rets", {NULL}, 6103, "udp"},
+{"dbdb", {NULL}, 6104, "tcp"},
+{"dbdb", {NULL}, 6104, "udp"},
+{"primaserver", {NULL}, 6105, "tcp"},
+{"primaserver", {NULL}, 6105, "udp"},
+{"mpsserver", {NULL}, 6106, "tcp"},
+{"mpsserver", {NULL}, 6106, "udp"},
+{"etc-control", {NULL}, 6107, "tcp"},
+{"etc-control", {NULL}, 6107, "udp"},
+{"sercomm-scadmin", {NULL}, 6108, "tcp"},
+{"sercomm-scadmin", {NULL}, 6108, "udp"},
+{"globecast-id", {NULL}, 6109, "tcp"},
+{"globecast-id", {NULL}, 6109, "udp"},
+{"softcm", {NULL}, 6110, "tcp"},
+{"softcm", {NULL}, 6110, "udp"},
+{"spc", {NULL}, 6111, "tcp"},
+{"spc", {NULL}, 6111, "udp"},
+{"dtspcd", {NULL}, 6112, "tcp"},
+{"dtspcd", {NULL}, 6112, "udp"},
+{"dayliteserver", {NULL}, 6113, "tcp"},
+{"wrspice", {NULL}, 6114, "tcp"},
+{"xic", {NULL}, 6115, "tcp"},
+{"xtlserv", {NULL}, 6116, "tcp"},
+{"daylitetouch", {NULL}, 6117, "tcp"},
+{"spdy", {NULL}, 6121, "tcp"},
+{"bex-webadmin", {NULL}, 6122, "tcp"},
+{"bex-webadmin", {NULL}, 6122, "udp"},
+{"backup-express", {NULL}, 6123, "tcp"},
+{"backup-express", {NULL}, 6123, "udp"},
+{"pnbs", {NULL}, 6124, "tcp"},
+{"pnbs", {NULL}, 6124, "udp"},
+{"nbt-wol", {NULL}, 6133, "tcp"},
+{"nbt-wol", {NULL}, 6133, "udp"},
+{"pulsonixnls", {NULL}, 6140, "tcp"},
+{"pulsonixnls", {NULL}, 6140, "udp"},
+{"meta-corp", {NULL}, 6141, "tcp"},
+{"meta-corp", {NULL}, 6141, "udp"},
+{"aspentec-lm", {NULL}, 6142, "tcp"},
+{"aspentec-lm", {NULL}, 6142, "udp"},
+{"watershed-lm", {NULL}, 6143, "tcp"},
+{"watershed-lm", {NULL}, 6143, "udp"},
+{"statsci1-lm", {NULL}, 6144, "tcp"},
+{"statsci1-lm", {NULL}, 6144, "udp"},
+{"statsci2-lm", {NULL}, 6145, "tcp"},
+{"statsci2-lm", {NULL}, 6145, "udp"},
+{"lonewolf-lm", {NULL}, 6146, "tcp"},
+{"lonewolf-lm", {NULL}, 6146, "udp"},
+{"montage-lm", {NULL}, 6147, "tcp"},
+{"montage-lm", {NULL}, 6147, "udp"},
+{"ricardo-lm", {NULL}, 6148, "tcp"},
+{"ricardo-lm", {NULL}, 6148, "udp"},
+{"tal-pod", {NULL}, 6149, "tcp"},
+{"tal-pod", {NULL}, 6149, "udp"},
+{"efb-aci", {NULL}, 6159, "tcp"},
+{"patrol-ism", {NULL}, 6161, "tcp"},
+{"patrol-ism", {NULL}, 6161, "udp"},
+{"patrol-coll", {NULL}, 6162, "tcp"},
+{"patrol-coll", {NULL}, 6162, "udp"},
+{"pscribe", {NULL}, 6163, "tcp"},
+{"pscribe", {NULL}, 6163, "udp"},
+{"lm-x", {NULL}, 6200, "tcp"},
+{"lm-x", {NULL}, 6200, "udp"},
+{"radmind", {NULL}, 6222, "tcp"},
+{"radmind", {NULL}, 6222, "udp"},
+{"jeol-nsdtp-1", {NULL}, 6241, "tcp"},
+{"jeol-nsddp-1", {NULL}, 6241, "udp"},
+{"jeol-nsdtp-2", {NULL}, 6242, "tcp"},
+{"jeol-nsddp-2", {NULL}, 6242, "udp"},
+{"jeol-nsdtp-3", {NULL}, 6243, "tcp"},
+{"jeol-nsddp-3", {NULL}, 6243, "udp"},
+{"jeol-nsdtp-4", {NULL}, 6244, "tcp"},
+{"jeol-nsddp-4", {NULL}, 6244, "udp"},
+{"tl1-raw-ssl", {NULL}, 6251, "tcp"},
+{"tl1-raw-ssl", {NULL}, 6251, "udp"},
+{"tl1-ssh", {NULL}, 6252, "tcp"},
+{"tl1-ssh", {NULL}, 6252, "udp"},
+{"crip", {NULL}, 6253, "tcp"},
+{"crip", {NULL}, 6253, "udp"},
+{"gld", {NULL}, 6267, "tcp"},
+{"grid", {NULL}, 6268, "tcp"},
+{"grid", {NULL}, 6268, "udp"},
+{"grid-alt", {NULL}, 6269, "tcp"},
+{"grid-alt", {NULL}, 6269, "udp"},
+{"bmc-grx", {NULL}, 6300, "tcp"},
+{"bmc-grx", {NULL}, 6300, "udp"},
+{"bmc_ctd_ldap", {NULL}, 6301, "tcp"},
+{"bmc_ctd_ldap", {NULL}, 6301, "udp"},
+{"ufmp", {NULL}, 6306, "tcp"},
+{"ufmp", {NULL}, 6306, "udp"},
+{"scup", {NULL}, 6315, "tcp"},
+{"scup-disc", {NULL}, 6315, "udp"},
+{"abb-escp", {NULL}, 6316, "tcp"},
+{"abb-escp", {NULL}, 6316, "udp"},
+{"repsvc", {NULL}, 6320, "tcp"},
+{"repsvc", {NULL}, 6320, "udp"},
+{"emp-server1", {NULL}, 6321, "tcp"},
+{"emp-server1", {NULL}, 6321, "udp"},
+{"emp-server2", {NULL}, 6322, "tcp"},
+{"emp-server2", {NULL}, 6322, "udp"},
+{"sflow", {NULL}, 6343, "tcp"},
+{"sflow", {NULL}, 6343, "udp"},
+{"gnutella-svc", {NULL}, 6346, "tcp"},
+{"gnutella-svc", {NULL}, 6346, "udp"},
+{"gnutella-rtr", {NULL}, 6347, "tcp"},
+{"gnutella-rtr", {NULL}, 6347, "udp"},
+{"adap", {NULL}, 6350, "tcp"},
+{"adap", {NULL}, 6350, "udp"},
+{"pmcs", {NULL}, 6355, "tcp"},
+{"pmcs", {NULL}, 6355, "udp"},
+{"metaedit-mu", {NULL}, 6360, "tcp"},
+{"metaedit-mu", {NULL}, 6360, "udp"},
+{"metaedit-se", {NULL}, 6370, "tcp"},
+{"metaedit-se", {NULL}, 6370, "udp"},
+{"metatude-mds", {NULL}, 6382, "tcp"},
+{"metatude-mds", {NULL}, 6382, "udp"},
+{"clariion-evr01", {NULL}, 6389, "tcp"},
+{"clariion-evr01", {NULL}, 6389, "udp"},
+{"metaedit-ws", {NULL}, 6390, "tcp"},
+{"metaedit-ws", {NULL}, 6390, "udp"},
+{"faxcomservice", {NULL}, 6417, "tcp"},
+{"faxcomservice", {NULL}, 6417, "udp"},
+{"syserverremote", {NULL}, 6418, "tcp"},
+{"svdrp", {NULL}, 6419, "tcp"},
+{"nim-vdrshell", {NULL}, 6420, "tcp"},
+{"nim-vdrshell", {NULL}, 6420, "udp"},
+{"nim-wan", {NULL}, 6421, "tcp"},
+{"nim-wan", {NULL}, 6421, "udp"},
+{"pgbouncer", {NULL}, 6432, "tcp"},
+{"sun-sr-https", {NULL}, 6443, "tcp"},
+{"sun-sr-https", {NULL}, 6443, "udp"},
+{"sge_qmaster", {NULL}, 6444, "tcp"},
+{"sge_qmaster", {NULL}, 6444, "udp"},
+{"sge_execd", {NULL}, 6445, "tcp"},
+{"sge_execd", {NULL}, 6445, "udp"},
+{"mysql-proxy", {NULL}, 6446, "tcp"},
+{"mysql-proxy", {NULL}, 6446, "udp"},
+{"skip-cert-recv", {NULL}, 6455, "tcp"},
+{"skip-cert-send", {NULL}, 6456, "udp"},
+{"lvision-lm", {NULL}, 6471, "tcp"},
+{"lvision-lm", {NULL}, 6471, "udp"},
+{"sun-sr-http", {NULL}, 6480, "tcp"},
+{"sun-sr-http", {NULL}, 6480, "udp"},
+{"servicetags", {NULL}, 6481, "tcp"},
+{"servicetags", {NULL}, 6481, "udp"},
+{"ldoms-mgmt", {NULL}, 6482, "tcp"},
+{"ldoms-mgmt", {NULL}, 6482, "udp"},
+{"SunVTS-RMI", {NULL}, 6483, "tcp"},
+{"SunVTS-RMI", {NULL}, 6483, "udp"},
+{"sun-sr-jms", {NULL}, 6484, "tcp"},
+{"sun-sr-jms", {NULL}, 6484, "udp"},
+{"sun-sr-iiop", {NULL}, 6485, "tcp"},
+{"sun-sr-iiop", {NULL}, 6485, "udp"},
+{"sun-sr-iiops", {NULL}, 6486, "tcp"},
+{"sun-sr-iiops", {NULL}, 6486, "udp"},
+{"sun-sr-iiop-aut", {NULL}, 6487, "tcp"},
+{"sun-sr-iiop-aut", {NULL}, 6487, "udp"},
+{"sun-sr-jmx", {NULL}, 6488, "tcp"},
+{"sun-sr-jmx", {NULL}, 6488, "udp"},
+{"sun-sr-admin", {NULL}, 6489, "tcp"},
+{"sun-sr-admin", {NULL}, 6489, "udp"},
+{"boks", {NULL}, 6500, "tcp"},
+{"boks", {NULL}, 6500, "udp"},
+{"boks_servc", {NULL}, 6501, "tcp"},
+{"boks_servc", {NULL}, 6501, "udp"},
+{"boks_servm", {NULL}, 6502, "tcp"},
+{"boks_servm", {NULL}, 6502, "udp"},
+{"boks_clntd", {NULL}, 6503, "tcp"},
+{"boks_clntd", {NULL}, 6503, "udp"},
+{"badm_priv", {NULL}, 6505, "tcp"},
+{"badm_priv", {NULL}, 6505, "udp"},
+{"badm_pub", {NULL}, 6506, "tcp"},
+{"badm_pub", {NULL}, 6506, "udp"},
+{"bdir_priv", {NULL}, 6507, "tcp"},
+{"bdir_priv", {NULL}, 6507, "udp"},
+{"bdir_pub", {NULL}, 6508, "tcp"},
+{"bdir_pub", {NULL}, 6508, "udp"},
+{"mgcs-mfp-port", {NULL}, 6509, "tcp"},
+{"mgcs-mfp-port", {NULL}, 6509, "udp"},
+{"mcer-port", {NULL}, 6510, "tcp"},
+{"mcer-port", {NULL}, 6510, "udp"},
+{"netconf-tls", {NULL}, 6513, "tcp"},
+{"syslog-tls", {NULL}, 6514, "tcp"},
+{"syslog-tls", {NULL}, 6514, "udp"},
+{"syslog-tls", {NULL}, 6514, "dccp"},
+{"elipse-rec", {NULL}, 6515, "tcp"},
+{"elipse-rec", {NULL}, 6515, "udp"},
+{"lds-distrib", {NULL}, 6543, "tcp"},
+{"lds-distrib", {NULL}, 6543, "udp"},
+{"lds-dump", {NULL}, 6544, "tcp"},
+{"lds-dump", {NULL}, 6544, "udp"},
+{"apc-6547", {NULL}, 6547, "tcp"},
+{"apc-6547", {NULL}, 6547, "udp"},
+{"apc-6548", {NULL}, 6548, "tcp"},
+{"apc-6548", {NULL}, 6548, "udp"},
+{"apc-6549", {NULL}, 6549, "tcp"},
+{"apc-6549", {NULL}, 6549, "udp"},
+{"fg-sysupdate", {NULL}, 6550, "tcp"},
+{"fg-sysupdate", {NULL}, 6550, "udp"},
+{"sum", {NULL}, 6551, "tcp"},
+{"sum", {NULL}, 6551, "udp"},
+{"xdsxdm", {NULL}, 6558, "tcp"},
+{"xdsxdm", {NULL}, 6558, "udp"},
+{"sane-port", {NULL}, 6566, "tcp"},
+{"sane-port", {NULL}, 6566, "udp"},
+{"esp", {NULL}, 6567, "tcp"},
+{"esp", {NULL}, 6567, "udp"},
+{"canit_store", {NULL}, 6568, "tcp"},
+{"rp-reputation", {NULL}, 6568, "udp"},
+{"affiliate", {NULL}, 6579, "tcp"},
+{"affiliate", {NULL}, 6579, "udp"},
+{"parsec-master", {NULL}, 6580, "tcp"},
+{"parsec-master", {NULL}, 6580, "udp"},
+{"parsec-peer", {NULL}, 6581, "tcp"},
+{"parsec-peer", {NULL}, 6581, "udp"},
+{"parsec-game", {NULL}, 6582, "tcp"},
+{"parsec-game", {NULL}, 6582, "udp"},
+{"joaJewelSuite", {NULL}, 6583, "tcp"},
+{"joaJewelSuite", {NULL}, 6583, "udp"},
+{"mshvlm", {NULL}, 6600, "tcp"},
+{"mstmg-sstp", {NULL}, 6601, "tcp"},
+{"wsscomfrmwk", {NULL}, 6602, "tcp"},
+{"odette-ftps", {NULL}, 6619, "tcp"},
+{"odette-ftps", {NULL}, 6619, "udp"},
+{"kftp-data", {NULL}, 6620, "tcp"},
+{"kftp-data", {NULL}, 6620, "udp"},
+{"kftp", {NULL}, 6621, "tcp"},
+{"kftp", {NULL}, 6621, "udp"},
+{"mcftp", {NULL}, 6622, "tcp"},
+{"mcftp", {NULL}, 6622, "udp"},
+{"ktelnet", {NULL}, 6623, "tcp"},
+{"ktelnet", {NULL}, 6623, "udp"},
+{"datascaler-db", {NULL}, 6624, "tcp"},
+{"datascaler-ctl", {NULL}, 6625, "tcp"},
+{"wago-service", {NULL}, 6626, "tcp"},
+{"wago-service", {NULL}, 6626, "udp"},
+{"nexgen", {NULL}, 6627, "tcp"},
+{"nexgen", {NULL}, 6627, "udp"},
+{"afesc-mc", {NULL}, 6628, "tcp"},
+{"afesc-mc", {NULL}, 6628, "udp"},
+{"mxodbc-connect", {NULL}, 6632, "tcp"},
+{"pcs-sf-ui-man", {NULL}, 6655, "tcp"},
+{"emgmsg", {NULL}, 6656, "tcp"},
+{"palcom-disc", {NULL}, 6657, "udp"},
+{"vocaltec-gold", {NULL}, 6670, "tcp"},
+{"vocaltec-gold", {NULL}, 6670, "udp"},
+{"p4p-portal", {NULL}, 6671, "tcp"},
+{"p4p-portal", {NULL}, 6671, "udp"},
+{"vision_server", {NULL}, 6672, "tcp"},
+{"vision_server", {NULL}, 6672, "udp"},
+{"vision_elmd", {NULL}, 6673, "tcp"},
+{"vision_elmd", {NULL}, 6673, "udp"},
+{"vfbp", {NULL}, 6678, "tcp"},
+{"vfbp-disc", {NULL}, 6678, "udp"},
+{"osaut", {NULL}, 6679, "tcp"},
+{"osaut", {NULL}, 6679, "udp"},
+{"clever-ctrace", {NULL}, 6687, "tcp"},
+{"clever-tcpip", {NULL}, 6688, "tcp"},
+{"tsa", {NULL}, 6689, "tcp"},
+{"tsa", {NULL}, 6689, "udp"},
+{"babel", {NULL}, 6697, "udp"},
+{"kti-icad-srvr", {NULL}, 6701, "tcp"},
+{"kti-icad-srvr", {NULL}, 6701, "udp"},
+{"e-design-net", {NULL}, 6702, "tcp"},
+{"e-design-net", {NULL}, 6702, "udp"},
+{"e-design-web", {NULL}, 6703, "tcp"},
+{"e-design-web", {NULL}, 6703, "udp"},
+{"frc-hp", {NULL}, 6704, "sctp"},
+{"frc-mp", {NULL}, 6705, "sctp"},
+{"frc-lp", {NULL}, 6706, "sctp"},
+{"ibprotocol", {NULL}, 6714, "tcp"},
+{"ibprotocol", {NULL}, 6714, "udp"},
+{"fibotrader-com", {NULL}, 6715, "tcp"},
+{"fibotrader-com", {NULL}, 6715, "udp"},
+{"bmc-perf-agent", {NULL}, 6767, "tcp"},
+{"bmc-perf-agent", {NULL}, 6767, "udp"},
+{"bmc-perf-mgrd", {NULL}, 6768, "tcp"},
+{"bmc-perf-mgrd", {NULL}, 6768, "udp"},
+{"adi-gxp-srvprt", {NULL}, 6769, "tcp"},
+{"adi-gxp-srvprt", {NULL}, 6769, "udp"},
+{"plysrv-http", {NULL}, 6770, "tcp"},
+{"plysrv-http", {NULL}, 6770, "udp"},
+{"plysrv-https", {NULL}, 6771, "tcp"},
+{"plysrv-https", {NULL}, 6771, "udp"},
+{"dgpf-exchg", {NULL}, 6785, "tcp"},
+{"dgpf-exchg", {NULL}, 6785, "udp"},
+{"smc-jmx", {NULL}, 6786, "tcp"},
+{"smc-jmx", {NULL}, 6786, "udp"},
+{"smc-admin", {NULL}, 6787, "tcp"},
+{"smc-admin", {NULL}, 6787, "udp"},
+{"smc-http", {NULL}, 6788, "tcp"},
+{"smc-http", {NULL}, 6788, "udp"},
+{"smc-https", {NULL}, 6789, "tcp"},
+{"smc-https", {NULL}, 6789, "udp"},
+{"hnmp", {NULL}, 6790, "tcp"},
+{"hnmp", {NULL}, 6790, "udp"},
+{"hnm", {NULL}, 6791, "tcp"},
+{"hnm", {NULL}, 6791, "udp"},
+{"acnet", {NULL}, 6801, "tcp"},
+{"acnet", {NULL}, 6801, "udp"},
+{"pentbox-sim", {NULL}, 6817, "tcp"},
+{"ambit-lm", {NULL}, 6831, "tcp"},
+{"ambit-lm", {NULL}, 6831, "udp"},
+{"netmo-default", {NULL}, 6841, "tcp"},
+{"netmo-default", {NULL}, 6841, "udp"},
+{"netmo-http", {NULL}, 6842, "tcp"},
+{"netmo-http", {NULL}, 6842, "udp"},
+{"iccrushmore", {NULL}, 6850, "tcp"},
+{"iccrushmore", {NULL}, 6850, "udp"},
+{"acctopus-cc", {NULL}, 6868, "tcp"},
+{"acctopus-st", {NULL}, 6868, "udp"},
+{"muse", {NULL}, 6888, "tcp"},
+{"muse", {NULL}, 6888, "udp"},
+{"jetstream", {NULL}, 6901, "tcp"},
+{"xsmsvc", {NULL}, 6936, "tcp"},
+{"xsmsvc", {NULL}, 6936, "udp"},
+{"bioserver", {NULL}, 6946, "tcp"},
+{"bioserver", {NULL}, 6946, "udp"},
+{"otlp", {NULL}, 6951, "tcp"},
+{"otlp", {NULL}, 6951, "udp"},
+{"jmact3", {NULL}, 6961, "tcp"},
+{"jmact3", {NULL}, 6961, "udp"},
+{"jmevt2", {NULL}, 6962, "tcp"},
+{"jmevt2", {NULL}, 6962, "udp"},
+{"swismgr1", {NULL}, 6963, "tcp"},
+{"swismgr1", {NULL}, 6963, "udp"},
+{"swismgr2", {NULL}, 6964, "tcp"},
+{"swismgr2", {NULL}, 6964, "udp"},
+{"swistrap", {NULL}, 6965, "tcp"},
+{"swistrap", {NULL}, 6965, "udp"},
+{"swispol", {NULL}, 6966, "tcp"},
+{"swispol", {NULL}, 6966, "udp"},
+{"acmsoda", {NULL}, 6969, "tcp"},
+{"acmsoda", {NULL}, 6969, "udp"},
+{"MobilitySrv", {NULL}, 6997, "tcp"},
+{"MobilitySrv", {NULL}, 6997, "udp"},
+{"iatp-highpri", {NULL}, 6998, "tcp"},
+{"iatp-highpri", {NULL}, 6998, "udp"},
+{"iatp-normalpri", {NULL}, 6999, "tcp"},
+{"iatp-normalpri", {NULL}, 6999, "udp"},
+{"afs3-fileserver", {NULL}, 7000, "tcp"},
+{"afs3-fileserver", {NULL}, 7000, "udp"},
+{"afs3-callback", {NULL}, 7001, "tcp"},
+{"afs3-callback", {NULL}, 7001, "udp"},
+{"afs3-prserver", {NULL}, 7002, "tcp"},
+{"afs3-prserver", {NULL}, 7002, "udp"},
+{"afs3-vlserver", {NULL}, 7003, "tcp"},
+{"afs3-vlserver", {NULL}, 7003, "udp"},
+{"afs3-kaserver", {NULL}, 7004, "tcp"},
+{"afs3-kaserver", {NULL}, 7004, "udp"},
+{"afs3-volser", {NULL}, 7005, "tcp"},
+{"afs3-volser", {NULL}, 7005, "udp"},
+{"afs3-errors", {NULL}, 7006, "tcp"},
+{"afs3-errors", {NULL}, 7006, "udp"},
+{"afs3-bos", {NULL}, 7007, "tcp"},
+{"afs3-bos", {NULL}, 7007, "udp"},
+{"afs3-update", {NULL}, 7008, "tcp"},
+{"afs3-update", {NULL}, 7008, "udp"},
+{"afs3-rmtsys", {NULL}, 7009, "tcp"},
+{"afs3-rmtsys", {NULL}, 7009, "udp"},
+{"ups-onlinet", {NULL}, 7010, "tcp"},
+{"ups-onlinet", {NULL}, 7010, "udp"},
+{"talon-disc", {NULL}, 7011, "tcp"},
+{"talon-disc", {NULL}, 7011, "udp"},
+{"talon-engine", {NULL}, 7012, "tcp"},
+{"talon-engine", {NULL}, 7012, "udp"},
+{"microtalon-dis", {NULL}, 7013, "tcp"},
+{"microtalon-dis", {NULL}, 7013, "udp"},
+{"microtalon-com", {NULL}, 7014, "tcp"},
+{"microtalon-com", {NULL}, 7014, "udp"},
+{"talon-webserver", {NULL}, 7015, "tcp"},
+{"talon-webserver", {NULL}, 7015, "udp"},
+{"dpserve", {NULL}, 7020, "tcp"},
+{"dpserve", {NULL}, 7020, "udp"},
+{"dpserveadmin", {NULL}, 7021, "tcp"},
+{"dpserveadmin", {NULL}, 7021, "udp"},
+{"ctdp", {NULL}, 7022, "tcp"},
+{"ctdp", {NULL}, 7022, "udp"},
+{"ct2nmcs", {NULL}, 7023, "tcp"},
+{"ct2nmcs", {NULL}, 7023, "udp"},
+{"vmsvc", {NULL}, 7024, "tcp"},
+{"vmsvc", {NULL}, 7024, "udp"},
+{"vmsvc-2", {NULL}, 7025, "tcp"},
+{"vmsvc-2", {NULL}, 7025, "udp"},
+{"op-probe", {NULL}, 7030, "tcp"},
+{"op-probe", {NULL}, 7030, "udp"},
+{"arcp", {NULL}, 7070, "tcp"},
+{"arcp", {NULL}, 7070, "udp"},
+{"iwg1", {NULL}, 7071, "tcp"},
+{"iwg1", {NULL}, 7071, "udp"},
+{"empowerid", {NULL}, 7080, "tcp"},
+{"empowerid", {NULL}, 7080, "udp"},
+{"lazy-ptop", {NULL}, 7099, "tcp"},
+{"lazy-ptop", {NULL}, 7099, "udp"},
+{"font-service", {NULL}, 7100, "tcp"},
+{"font-service", {NULL}, 7100, "udp"},
+{"elcn", {NULL}, 7101, "tcp"},
+{"elcn", {NULL}, 7101, "udp"},
+{"aes-x170", {NULL}, 7107, "udp"},
+{"virprot-lm", {NULL}, 7121, "tcp"},
+{"virprot-lm", {NULL}, 7121, "udp"},
+{"scenidm", {NULL}, 7128, "tcp"},
+{"scenidm", {NULL}, 7128, "udp"},
+{"scenccs", {NULL}, 7129, "tcp"},
+{"scenccs", {NULL}, 7129, "udp"},
+{"cabsm-comm", {NULL}, 7161, "tcp"},
+{"cabsm-comm", {NULL}, 7161, "udp"},
+{"caistoragemgr", {NULL}, 7162, "tcp"},
+{"caistoragemgr", {NULL}, 7162, "udp"},
+{"cacsambroker", {NULL}, 7163, "tcp"},
+{"cacsambroker", {NULL}, 7163, "udp"},
+{"fsr", {NULL}, 7164, "tcp"},
+{"fsr", {NULL}, 7164, "udp"},
+{"doc-server", {NULL}, 7165, "tcp"},
+{"doc-server", {NULL}, 7165, "udp"},
+{"aruba-server", {NULL}, 7166, "tcp"},
+{"aruba-server", {NULL}, 7166, "udp"},
+{"casrmagent", {NULL}, 7167, "tcp"},
+{"cnckadserver", {NULL}, 7168, "tcp"},
+{"ccag-pib", {NULL}, 7169, "tcp"},
+{"ccag-pib", {NULL}, 7169, "udp"},
+{"nsrp", {NULL}, 7170, "tcp"},
+{"nsrp", {NULL}, 7170, "udp"},
+{"drm-production", {NULL}, 7171, "tcp"},
+{"drm-production", {NULL}, 7171, "udp"},
+{"zsecure", {NULL}, 7173, "tcp"},
+{"clutild", {NULL}, 7174, "tcp"},
+{"clutild", {NULL}, 7174, "udp"},
+{"fodms", {NULL}, 7200, "tcp"},
+{"fodms", {NULL}, 7200, "udp"},
+{"dlip", {NULL}, 7201, "tcp"},
+{"dlip", {NULL}, 7201, "udp"},
+{"ramp", {NULL}, 7227, "tcp"},
+{"ramp", {NULL}, 7227, "udp"},
+{"citrixupp", {NULL}, 7228, "tcp"},
+{"citrixuppg", {NULL}, 7229, "tcp"},
+{"pads", {NULL}, 7237, "tcp"},
+{"cnap", {NULL}, 7262, "tcp"},
+{"cnap", {NULL}, 7262, "udp"},
+{"watchme-7272", {NULL}, 7272, "tcp"},
+{"watchme-7272", {NULL}, 7272, "udp"},
+{"oma-rlp", {NULL}, 7273, "tcp"},
+{"oma-rlp", {NULL}, 7273, "udp"},
+{"oma-rlp-s", {NULL}, 7274, "tcp"},
+{"oma-rlp-s", {NULL}, 7274, "udp"},
+{"oma-ulp", {NULL}, 7275, "tcp"},
+{"oma-ulp", {NULL}, 7275, "udp"},
+{"oma-ilp", {NULL}, 7276, "tcp"},
+{"oma-ilp", {NULL}, 7276, "udp"},
+{"oma-ilp-s", {NULL}, 7277, "tcp"},
+{"oma-ilp-s", {NULL}, 7277, "udp"},
+{"oma-dcdocbs", {NULL}, 7278, "tcp"},
+{"oma-dcdocbs", {NULL}, 7278, "udp"},
+{"ctxlic", {NULL}, 7279, "tcp"},
+{"ctxlic", {NULL}, 7279, "udp"},
+{"itactionserver1", {NULL}, 7280, "tcp"},
+{"itactionserver1", {NULL}, 7280, "udp"},
+{"itactionserver2", {NULL}, 7281, "tcp"},
+{"itactionserver2", {NULL}, 7281, "udp"},
+{"mzca-action", {NULL}, 7282, "tcp"},
+{"mzca-alert", {NULL}, 7282, "udp"},
+{"lcm-server", {NULL}, 7365, "tcp"},
+{"lcm-server", {NULL}, 7365, "udp"},
+{"mindfilesys", {NULL}, 7391, "tcp"},
+{"mindfilesys", {NULL}, 7391, "udp"},
+{"mrssrendezvous", {NULL}, 7392, "tcp"},
+{"mrssrendezvous", {NULL}, 7392, "udp"},
+{"nfoldman", {NULL}, 7393, "tcp"},
+{"nfoldman", {NULL}, 7393, "udp"},
+{"fse", {NULL}, 7394, "tcp"},
+{"fse", {NULL}, 7394, "udp"},
+{"winqedit", {NULL}, 7395, "tcp"},
+{"winqedit", {NULL}, 7395, "udp"},
+{"hexarc", {NULL}, 7397, "tcp"},
+{"hexarc", {NULL}, 7397, "udp"},
+{"rtps-discovery", {NULL}, 7400, "tcp"},
+{"rtps-discovery", {NULL}, 7400, "udp"},
+{"rtps-dd-ut", {NULL}, 7401, "tcp"},
+{"rtps-dd-ut", {NULL}, 7401, "udp"},
+{"rtps-dd-mt", {NULL}, 7402, "tcp"},
+{"rtps-dd-mt", {NULL}, 7402, "udp"},
+{"ionixnetmon", {NULL}, 7410, "tcp"},
+{"ionixnetmon", {NULL}, 7410, "udp"},
+{"mtportmon", {NULL}, 7421, "tcp"},
+{"mtportmon", {NULL}, 7421, "udp"},
+{"pmdmgr", {NULL}, 7426, "tcp"},
+{"pmdmgr", {NULL}, 7426, "udp"},
+{"oveadmgr", {NULL}, 7427, "tcp"},
+{"oveadmgr", {NULL}, 7427, "udp"},
+{"ovladmgr", {NULL}, 7428, "tcp"},
+{"ovladmgr", {NULL}, 7428, "udp"},
+{"opi-sock", {NULL}, 7429, "tcp"},
+{"opi-sock", {NULL}, 7429, "udp"},
+{"xmpv7", {NULL}, 7430, "tcp"},
+{"xmpv7", {NULL}, 7430, "udp"},
+{"pmd", {NULL}, 7431, "tcp"},
+{"pmd", {NULL}, 7431, "udp"},
+{"faximum", {NULL}, 7437, "tcp"},
+{"faximum", {NULL}, 7437, "udp"},
+{"oracleas-https", {NULL}, 7443, "tcp"},
+{"oracleas-https", {NULL}, 7443, "udp"},
+{"rise", {NULL}, 7473, "tcp"},
+{"rise", {NULL}, 7473, "udp"},
+{"telops-lmd", {NULL}, 7491, "tcp"},
+{"telops-lmd", {NULL}, 7491, "udp"},
+{"silhouette", {NULL}, 7500, "tcp"},
+{"silhouette", {NULL}, 7500, "udp"},
+{"ovbus", {NULL}, 7501, "tcp"},
+{"ovbus", {NULL}, 7501, "udp"},
+{"acplt", {NULL}, 7509, "tcp"},
+{"ovhpas", {NULL}, 7510, "tcp"},
+{"ovhpas", {NULL}, 7510, "udp"},
+{"pafec-lm", {NULL}, 7511, "tcp"},
+{"pafec-lm", {NULL}, 7511, "udp"},
+{"saratoga", {NULL}, 7542, "tcp"},
+{"saratoga", {NULL}, 7542, "udp"},
+{"atul", {NULL}, 7543, "tcp"},
+{"atul", {NULL}, 7543, "udp"},
+{"nta-ds", {NULL}, 7544, "tcp"},
+{"nta-ds", {NULL}, 7544, "udp"},
+{"nta-us", {NULL}, 7545, "tcp"},
+{"nta-us", {NULL}, 7545, "udp"},
+{"cfs", {NULL}, 7546, "tcp"},
+{"cfs", {NULL}, 7546, "udp"},
+{"cwmp", {NULL}, 7547, "tcp"},
+{"cwmp", {NULL}, 7547, "udp"},
+{"tidp", {NULL}, 7548, "tcp"},
+{"tidp", {NULL}, 7548, "udp"},
+{"nls-tl", {NULL}, 7549, "tcp"},
+{"nls-tl", {NULL}, 7549, "udp"},
+{"sncp", {NULL}, 7560, "tcp"},
+{"sncp", {NULL}, 7560, "udp"},
+{"cfw", {NULL}, 7563, "tcp"},
+{"vsi-omega", {NULL}, 7566, "tcp"},
+{"vsi-omega", {NULL}, 7566, "udp"},
+{"dell-eql-asm", {NULL}, 7569, "tcp"},
+{"aries-kfinder", {NULL}, 7570, "tcp"},
+{"aries-kfinder", {NULL}, 7570, "udp"},
+{"sun-lm", {NULL}, 7588, "tcp"},
+{"sun-lm", {NULL}, 7588, "udp"},
+{"indi", {NULL}, 7624, "tcp"},
+{"indi", {NULL}, 7624, "udp"},
+{"simco", {NULL}, 7626, "tcp"},
+{"simco", {NULL}, 7626, "sctp"},
+{"soap-http", {NULL}, 7627, "tcp"},
+{"soap-http", {NULL}, 7627, "udp"},
+{"zen-pawn", {NULL}, 7628, "tcp"},
+{"zen-pawn", {NULL}, 7628, "udp"},
+{"xdas", {NULL}, 7629, "tcp"},
+{"xdas", {NULL}, 7629, "udp"},
+{"hawk", {NULL}, 7630, "tcp"},
+{"tesla-sys-msg", {NULL}, 7631, "tcp"},
+{"pmdfmgt", {NULL}, 7633, "tcp"},
+{"pmdfmgt", {NULL}, 7633, "udp"},
+{"cuseeme", {NULL}, 7648, "tcp"},
+{"cuseeme", {NULL}, 7648, "udp"},
+{"imqstomp", {NULL}, 7672, "tcp"},
+{"imqstomps", {NULL}, 7673, "tcp"},
+{"imqtunnels", {NULL}, 7674, "tcp"},
+{"imqtunnels", {NULL}, 7674, "udp"},
+{"imqtunnel", {NULL}, 7675, "tcp"},
+{"imqtunnel", {NULL}, 7675, "udp"},
+{"imqbrokerd", {NULL}, 7676, "tcp"},
+{"imqbrokerd", {NULL}, 7676, "udp"},
+{"sun-user-https", {NULL}, 7677, "tcp"},
+{"sun-user-https", {NULL}, 7677, "udp"},
+{"pando-pub", {NULL}, 7680, "tcp"},
+{"pando-pub", {NULL}, 7680, "udp"},
+{"collaber", {NULL}, 7689, "tcp"},
+{"collaber", {NULL}, 7689, "udp"},
+{"klio", {NULL}, 7697, "tcp"},
+{"klio", {NULL}, 7697, "udp"},
+{"em7-secom", {NULL}, 7700, "tcp"},
+{"sync-em7", {NULL}, 7707, "tcp"},
+{"sync-em7", {NULL}, 7707, "udp"},
+{"scinet", {NULL}, 7708, "tcp"},
+{"scinet", {NULL}, 7708, "udp"},
+{"medimageportal", {NULL}, 7720, "tcp"},
+{"medimageportal", {NULL}, 7720, "udp"},
+{"nsdeepfreezectl", {NULL}, 7724, "tcp"},
+{"nsdeepfreezectl", {NULL}, 7724, "udp"},
+{"nitrogen", {NULL}, 7725, "tcp"},
+{"nitrogen", {NULL}, 7725, "udp"},
+{"freezexservice", {NULL}, 7726, "tcp"},
+{"freezexservice", {NULL}, 7726, "udp"},
+{"trident-data", {NULL}, 7727, "tcp"},
+{"trident-data", {NULL}, 7727, "udp"},
+{"smip", {NULL}, 7734, "tcp"},
+{"smip", {NULL}, 7734, "udp"},
+{"aiagent", {NULL}, 7738, "tcp"},
+{"aiagent", {NULL}, 7738, "udp"},
+{"scriptview", {NULL}, 7741, "tcp"},
+{"scriptview", {NULL}, 7741, "udp"},
+{"msss", {NULL}, 7742, "tcp"},
+{"sstp-1", {NULL}, 7743, "tcp"},
+{"sstp-1", {NULL}, 7743, "udp"},
+{"raqmon-pdu", {NULL}, 7744, "tcp"},
+{"raqmon-pdu", {NULL}, 7744, "udp"},
+{"prgp", {NULL}, 7747, "tcp"},
+{"prgp", {NULL}, 7747, "udp"},
+{"cbt", {NULL}, 7777, "tcp"},
+{"cbt", {NULL}, 7777, "udp"},
+{"interwise", {NULL}, 7778, "tcp"},
+{"interwise", {NULL}, 7778, "udp"},
+{"vstat", {NULL}, 7779, "tcp"},
+{"vstat", {NULL}, 7779, "udp"},
+{"accu-lmgr", {NULL}, 7781, "tcp"},
+{"accu-lmgr", {NULL}, 7781, "udp"},
+{"minivend", {NULL}, 7786, "tcp"},
+{"minivend", {NULL}, 7786, "udp"},
+{"popup-reminders", {NULL}, 7787, "tcp"},
+{"popup-reminders", {NULL}, 7787, "udp"},
+{"office-tools", {NULL}, 7789, "tcp"},
+{"office-tools", {NULL}, 7789, "udp"},
+{"q3ade", {NULL}, 7794, "tcp"},
+{"q3ade", {NULL}, 7794, "udp"},
+{"pnet-conn", {NULL}, 7797, "tcp"},
+{"pnet-conn", {NULL}, 7797, "udp"},
+{"pnet-enc", {NULL}, 7798, "tcp"},
+{"pnet-enc", {NULL}, 7798, "udp"},
+{"altbsdp", {NULL}, 7799, "tcp"},
+{"altbsdp", {NULL}, 7799, "udp"},
+{"asr", {NULL}, 7800, "tcp"},
+{"asr", {NULL}, 7800, "udp"},
+{"ssp-client", {NULL}, 7801, "tcp"},
+{"ssp-client", {NULL}, 7801, "udp"},
+{"rbt-wanopt", {NULL}, 7810, "tcp"},
+{"rbt-wanopt", {NULL}, 7810, "udp"},
+{"apc-7845", {NULL}, 7845, "tcp"},
+{"apc-7845", {NULL}, 7845, "udp"},
+{"apc-7846", {NULL}, 7846, "tcp"},
+{"apc-7846", {NULL}, 7846, "udp"},
+{"mobileanalyzer", {NULL}, 7869, "tcp"},
+{"rbt-smc", {NULL}, 7870, "tcp"},
+{"pss", {NULL}, 7880, "tcp"},
+{"pss", {NULL}, 7880, "udp"},
+{"ubroker", {NULL}, 7887, "tcp"},
+{"ubroker", {NULL}, 7887, "udp"},
+{"mevent", {NULL}, 7900, "tcp"},
+{"mevent", {NULL}, 7900, "udp"},
+{"tnos-sp", {NULL}, 7901, "tcp"},
+{"tnos-sp", {NULL}, 7901, "udp"},
+{"tnos-dp", {NULL}, 7902, "tcp"},
+{"tnos-dp", {NULL}, 7902, "udp"},
+{"tnos-dps", {NULL}, 7903, "tcp"},
+{"tnos-dps", {NULL}, 7903, "udp"},
+{"qo-secure", {NULL}, 7913, "tcp"},
+{"qo-secure", {NULL}, 7913, "udp"},
+{"t2-drm", {NULL}, 7932, "tcp"},
+{"t2-drm", {NULL}, 7932, "udp"},
+{"t2-brm", {NULL}, 7933, "tcp"},
+{"t2-brm", {NULL}, 7933, "udp"},
+{"supercell", {NULL}, 7967, "tcp"},
+{"supercell", {NULL}, 7967, "udp"},
+{"micromuse-ncps", {NULL}, 7979, "tcp"},
+{"micromuse-ncps", {NULL}, 7979, "udp"},
+{"quest-vista", {NULL}, 7980, "tcp"},
+{"quest-vista", {NULL}, 7980, "udp"},
+{"sossd-collect", {NULL}, 7981, "tcp"},
+{"sossd-agent", {NULL}, 7982, "tcp"},
+{"sossd-disc", {NULL}, 7982, "udp"},
+{"pushns", {NULL}, 7997, "tcp"},
+{"usicontentpush", {NULL}, 7998, "udp"},
+{"irdmi2", {NULL}, 7999, "tcp"},
+{"irdmi2", {NULL}, 7999, "udp"},
+{"irdmi", {NULL}, 8000, "tcp"},
+{"irdmi", {NULL}, 8000, "udp"},
+{"vcom-tunnel", {NULL}, 8001, "tcp"},
+{"vcom-tunnel", {NULL}, 8001, "udp"},
+{"teradataordbms", {NULL}, 8002, "tcp"},
+{"teradataordbms", {NULL}, 8002, "udp"},
+{"mcreport", {NULL}, 8003, "tcp"},
+{"mcreport", {NULL}, 8003, "udp"},
+{"mxi", {NULL}, 8005, "tcp"},
+{"mxi", {NULL}, 8005, "udp"},
+{"http-alt", {NULL}, 8008, "tcp"},
+{"http-alt", {NULL}, 8008, "udp"},
+{"qbdb", {NULL}, 8019, "tcp"},
+{"qbdb", {NULL}, 8019, "udp"},
+{"intu-ec-svcdisc", {NULL}, 8020, "tcp"},
+{"intu-ec-svcdisc", {NULL}, 8020, "udp"},
+{"intu-ec-client", {NULL}, 8021, "tcp"},
+{"intu-ec-client", {NULL}, 8021, "udp"},
+{"oa-system", {NULL}, 8022, "tcp"},
+{"oa-system", {NULL}, 8022, "udp"},
+{"ca-audit-da", {NULL}, 8025, "tcp"},
+{"ca-audit-da", {NULL}, 8025, "udp"},
+{"ca-audit-ds", {NULL}, 8026, "tcp"},
+{"ca-audit-ds", {NULL}, 8026, "udp"},
+{"pro-ed", {NULL}, 8032, "tcp"},
+{"pro-ed", {NULL}, 8032, "udp"},
+{"mindprint", {NULL}, 8033, "tcp"},
+{"mindprint", {NULL}, 8033, "udp"},
+{"vantronix-mgmt", {NULL}, 8034, "tcp"},
+{"vantronix-mgmt", {NULL}, 8034, "udp"},
+{"ampify", {NULL}, 8040, "tcp"},
+{"ampify", {NULL}, 8040, "udp"},
+{"fs-agent", {NULL}, 8042, "tcp"},
+{"fs-server", {NULL}, 8043, "tcp"},
+{"fs-mgmt", {NULL}, 8044, "tcp"},
+{"senomix01", {NULL}, 8052, "tcp"},
+{"senomix01", {NULL}, 8052, "udp"},
+{"senomix02", {NULL}, 8053, "tcp"},
+{"senomix02", {NULL}, 8053, "udp"},
+{"senomix03", {NULL}, 8054, "tcp"},
+{"senomix03", {NULL}, 8054, "udp"},
+{"senomix04", {NULL}, 8055, "tcp"},
+{"senomix04", {NULL}, 8055, "udp"},
+{"senomix05", {NULL}, 8056, "tcp"},
+{"senomix05", {NULL}, 8056, "udp"},
+{"senomix06", {NULL}, 8057, "tcp"},
+{"senomix06", {NULL}, 8057, "udp"},
+{"senomix07", {NULL}, 8058, "tcp"},
+{"senomix07", {NULL}, 8058, "udp"},
+{"senomix08", {NULL}, 8059, "tcp"},
+{"senomix08", {NULL}, 8059, "udp"},
+{"gadugadu", {NULL}, 8074, "tcp"},
+{"gadugadu", {NULL}, 8074, "udp"},
+{"http-alt", {NULL}, 8080, "tcp"},
+{"http-alt", {NULL}, 8080, "udp"},
+{"sunproxyadmin", {NULL}, 8081, "tcp"},
+{"sunproxyadmin", {NULL}, 8081, "udp"},
+{"us-cli", {NULL}, 8082, "tcp"},
+{"us-cli", {NULL}, 8082, "udp"},
+{"us-srv", {NULL}, 8083, "tcp"},
+{"us-srv", {NULL}, 8083, "udp"},
+{"d-s-n", {NULL}, 8086, "tcp"},
+{"d-s-n", {NULL}, 8086, "udp"},
+{"simplifymedia", {NULL}, 8087, "tcp"},
+{"simplifymedia", {NULL}, 8087, "udp"},
+{"radan-http", {NULL}, 8088, "tcp"},
+{"radan-http", {NULL}, 8088, "udp"},
+{"jamlink", {NULL}, 8091, "tcp"},
+{"sac", {NULL}, 8097, "tcp"},
+{"sac", {NULL}, 8097, "udp"},
+{"xprint-server", {NULL}, 8100, "tcp"},
+{"xprint-server", {NULL}, 8100, "udp"},
+{"ldoms-migr", {NULL}, 8101, "tcp"},
+{"mtl8000-matrix", {NULL}, 8115, "tcp"},
+{"mtl8000-matrix", {NULL}, 8115, "udp"},
+{"cp-cluster", {NULL}, 8116, "tcp"},
+{"cp-cluster", {NULL}, 8116, "udp"},
+{"privoxy", {NULL}, 8118, "tcp"},
+{"privoxy", {NULL}, 8118, "udp"},
+{"apollo-data", {NULL}, 8121, "tcp"},
+{"apollo-data", {NULL}, 8121, "udp"},
+{"apollo-admin", {NULL}, 8122, "tcp"},
+{"apollo-admin", {NULL}, 8122, "udp"},
+{"paycash-online", {NULL}, 8128, "tcp"},
+{"paycash-online", {NULL}, 8128, "udp"},
+{"paycash-wbp", {NULL}, 8129, "tcp"},
+{"paycash-wbp", {NULL}, 8129, "udp"},
+{"indigo-vrmi", {NULL}, 8130, "tcp"},
+{"indigo-vrmi", {NULL}, 8130, "udp"},
+{"indigo-vbcp", {NULL}, 8131, "tcp"},
+{"indigo-vbcp", {NULL}, 8131, "udp"},
+{"dbabble", {NULL}, 8132, "tcp"},
+{"dbabble", {NULL}, 8132, "udp"},
+{"isdd", {NULL}, 8148, "tcp"},
+{"isdd", {NULL}, 8148, "udp"},
+{"patrol", {NULL}, 8160, "tcp"},
+{"patrol", {NULL}, 8160, "udp"},
+{"patrol-snmp", {NULL}, 8161, "tcp"},
+{"patrol-snmp", {NULL}, 8161, "udp"},
+{"vmware-fdm", {NULL}, 8182, "tcp"},
+{"vmware-fdm", {NULL}, 8182, "udp"},
+{"proremote", {NULL}, 8183, "tcp"},
+{"itach", {NULL}, 8184, "tcp"},
+{"itach", {NULL}, 8184, "udp"},
+{"spytechphone", {NULL}, 8192, "tcp"},
+{"spytechphone", {NULL}, 8192, "udp"},
+{"blp1", {NULL}, 8194, "tcp"},
+{"blp1", {NULL}, 8194, "udp"},
+{"blp2", {NULL}, 8195, "tcp"},
+{"blp2", {NULL}, 8195, "udp"},
+{"vvr-data", {NULL}, 8199, "tcp"},
+{"vvr-data", {NULL}, 8199, "udp"},
+{"trivnet1", {NULL}, 8200, "tcp"},
+{"trivnet1", {NULL}, 8200, "udp"},
+{"trivnet2", {NULL}, 8201, "tcp"},
+{"trivnet2", {NULL}, 8201, "udp"},
+{"lm-perfworks", {NULL}, 8204, "tcp"},
+{"lm-perfworks", {NULL}, 8204, "udp"},
+{"lm-instmgr", {NULL}, 8205, "tcp"},
+{"lm-instmgr", {NULL}, 8205, "udp"},
+{"lm-dta", {NULL}, 8206, "tcp"},
+{"lm-dta", {NULL}, 8206, "udp"},
+{"lm-sserver", {NULL}, 8207, "tcp"},
+{"lm-sserver", {NULL}, 8207, "udp"},
+{"lm-webwatcher", {NULL}, 8208, "tcp"},
+{"lm-webwatcher", {NULL}, 8208, "udp"},
+{"rexecj", {NULL}, 8230, "tcp"},
+{"rexecj", {NULL}, 8230, "udp"},
+{"synapse-nhttps", {NULL}, 8243, "tcp"},
+{"synapse-nhttps", {NULL}, 8243, "udp"},
+{"pando-sec", {NULL}, 8276, "tcp"},
+{"pando-sec", {NULL}, 8276, "udp"},
+{"synapse-nhttp", {NULL}, 8280, "tcp"},
+{"synapse-nhttp", {NULL}, 8280, "udp"},
+{"blp3", {NULL}, 8292, "tcp"},
+{"blp3", {NULL}, 8292, "udp"},
+{"hiperscan-id", {NULL}, 8293, "tcp"},
+{"blp4", {NULL}, 8294, "tcp"},
+{"blp4", {NULL}, 8294, "udp"},
+{"tmi", {NULL}, 8300, "tcp"},
+{"tmi", {NULL}, 8300, "udp"},
+{"amberon", {NULL}, 8301, "tcp"},
+{"amberon", {NULL}, 8301, "udp"},
+{"tnp-discover", {NULL}, 8320, "tcp"},
+{"tnp-discover", {NULL}, 8320, "udp"},
+{"tnp", {NULL}, 8321, "tcp"},
+{"tnp", {NULL}, 8321, "udp"},
+{"server-find", {NULL}, 8351, "tcp"},
+{"server-find", {NULL}, 8351, "udp"},
+{"cruise-enum", {NULL}, 8376, "tcp"},
+{"cruise-enum", {NULL}, 8376, "udp"},
+{"cruise-swroute", {NULL}, 8377, "tcp"},
+{"cruise-swroute", {NULL}, 8377, "udp"},
+{"cruise-config", {NULL}, 8378, "tcp"},
+{"cruise-config", {NULL}, 8378, "udp"},
+{"cruise-diags", {NULL}, 8379, "tcp"},
+{"cruise-diags", {NULL}, 8379, "udp"},
+{"cruise-update", {NULL}, 8380, "tcp"},
+{"cruise-update", {NULL}, 8380, "udp"},
+{"m2mservices", {NULL}, 8383, "tcp"},
+{"m2mservices", {NULL}, 8383, "udp"},
+{"cvd", {NULL}, 8400, "tcp"},
+{"cvd", {NULL}, 8400, "udp"},
+{"sabarsd", {NULL}, 8401, "tcp"},
+{"sabarsd", {NULL}, 8401, "udp"},
+{"abarsd", {NULL}, 8402, "tcp"},
+{"abarsd", {NULL}, 8402, "udp"},
+{"admind", {NULL}, 8403, "tcp"},
+{"admind", {NULL}, 8403, "udp"},
+{"svcloud", {NULL}, 8404, "tcp"},
+{"svbackup", {NULL}, 8405, "tcp"},
+{"espeech", {NULL}, 8416, "tcp"},
+{"espeech", {NULL}, 8416, "udp"},
+{"espeech-rtp", {NULL}, 8417, "tcp"},
+{"espeech-rtp", {NULL}, 8417, "udp"},
+{"cybro-a-bus", {NULL}, 8442, "tcp"},
+{"cybro-a-bus", {NULL}, 8442, "udp"},
+{"pcsync-https", {NULL}, 8443, "tcp"},
+{"pcsync-https", {NULL}, 8443, "udp"},
+{"pcsync-http", {NULL}, 8444, "tcp"},
+{"pcsync-http", {NULL}, 8444, "udp"},
+{"npmp", {NULL}, 8450, "tcp"},
+{"npmp", {NULL}, 8450, "udp"},
+{"cisco-avp", {NULL}, 8470, "tcp"},
+{"pim-port", {NULL}, 8471, "tcp"},
+{"pim-port", {NULL}, 8471, "sctp"},
+{"otv", {NULL}, 8472, "tcp"},
+{"otv", {NULL}, 8472, "udp"},
+{"vp2p", {NULL}, 8473, "tcp"},
+{"vp2p", {NULL}, 8473, "udp"},
+{"noteshare", {NULL}, 8474, "tcp"},
+{"noteshare", {NULL}, 8474, "udp"},
+{"fmtp", {NULL}, 8500, "tcp"},
+{"fmtp", {NULL}, 8500, "udp"},
+{"rtsp-alt", {NULL}, 8554, "tcp"},
+{"rtsp-alt", {NULL}, 8554, "udp"},
+{"d-fence", {NULL}, 8555, "tcp"},
+{"d-fence", {NULL}, 8555, "udp"},
+{"oap-admin", {NULL}, 8567, "tcp"},
+{"oap-admin", {NULL}, 8567, "udp"},
+{"asterix", {NULL}, 8600, "tcp"},
+{"asterix", {NULL}, 8600, "udp"},
+{"canon-mfnp", {NULL}, 8610, "tcp"},
+{"canon-mfnp", {NULL}, 8610, "udp"},
+{"canon-bjnp1", {NULL}, 8611, "tcp"},
+{"canon-bjnp1", {NULL}, 8611, "udp"},
+{"canon-bjnp2", {NULL}, 8612, "tcp"},
+{"canon-bjnp2", {NULL}, 8612, "udp"},
+{"canon-bjnp3", {NULL}, 8613, "tcp"},
+{"canon-bjnp3", {NULL}, 8613, "udp"},
+{"canon-bjnp4", {NULL}, 8614, "tcp"},
+{"canon-bjnp4", {NULL}, 8614, "udp"},
+{"sun-as-jmxrmi", {NULL}, 8686, "tcp"},
+{"sun-as-jmxrmi", {NULL}, 8686, "udp"},
+{"vnyx", {NULL}, 8699, "tcp"},
+{"vnyx", {NULL}, 8699, "udp"},
+{"dtp-net", {NULL}, 8732, "udp"},
+{"ibus", {NULL}, 8733, "tcp"},
+{"ibus", {NULL}, 8733, "udp"},
+{"mc-appserver", {NULL}, 8763, "tcp"},
+{"mc-appserver", {NULL}, 8763, "udp"},
+{"openqueue", {NULL}, 8764, "tcp"},
+{"openqueue", {NULL}, 8764, "udp"},
+{"ultraseek-http", {NULL}, 8765, "tcp"},
+{"ultraseek-http", {NULL}, 8765, "udp"},
+{"dpap", {NULL}, 8770, "tcp"},
+{"dpap", {NULL}, 8770, "udp"},
+{"msgclnt", {NULL}, 8786, "tcp"},
+{"msgclnt", {NULL}, 8786, "udp"},
+{"msgsrvr", {NULL}, 8787, "tcp"},
+{"msgsrvr", {NULL}, 8787, "udp"},
+{"sunwebadmin", {NULL}, 8800, "tcp"},
+{"sunwebadmin", {NULL}, 8800, "udp"},
+{"truecm", {NULL}, 8804, "tcp"},
+{"truecm", {NULL}, 8804, "udp"},
+{"dxspider", {NULL}, 8873, "tcp"},
+{"dxspider", {NULL}, 8873, "udp"},
+{"cddbp-alt", {NULL}, 8880, "tcp"},
+{"cddbp-alt", {NULL}, 8880, "udp"},
+{"secure-mqtt", {NULL}, 8883, "tcp"},
+{"secure-mqtt", {NULL}, 8883, "udp"},
+{"ddi-tcp-1", {NULL}, 8888, "tcp"},
+{"ddi-udp-1", {NULL}, 8888, "udp"},
+{"ddi-tcp-2", {NULL}, 8889, "tcp"},
+{"ddi-udp-2", {NULL}, 8889, "udp"},
+{"ddi-tcp-3", {NULL}, 8890, "tcp"},
+{"ddi-udp-3", {NULL}, 8890, "udp"},
+{"ddi-tcp-4", {NULL}, 8891, "tcp"},
+{"ddi-udp-4", {NULL}, 8891, "udp"},
+{"ddi-tcp-5", {NULL}, 8892, "tcp"},
+{"ddi-udp-5", {NULL}, 8892, "udp"},
+{"ddi-tcp-6", {NULL}, 8893, "tcp"},
+{"ddi-udp-6", {NULL}, 8893, "udp"},
+{"ddi-tcp-7", {NULL}, 8894, "tcp"},
+{"ddi-udp-7", {NULL}, 8894, "udp"},
+{"ospf-lite", {NULL}, 8899, "tcp"},
+{"ospf-lite", {NULL}, 8899, "udp"},
+{"jmb-cds1", {NULL}, 8900, "tcp"},
+{"jmb-cds1", {NULL}, 8900, "udp"},
+{"jmb-cds2", {NULL}, 8901, "tcp"},
+{"jmb-cds2", {NULL}, 8901, "udp"},
+{"manyone-http", {NULL}, 8910, "tcp"},
+{"manyone-http", {NULL}, 8910, "udp"},
+{"manyone-xml", {NULL}, 8911, "tcp"},
+{"manyone-xml", {NULL}, 8911, "udp"},
+{"wcbackup", {NULL}, 8912, "tcp"},
+{"wcbackup", {NULL}, 8912, "udp"},
+{"dragonfly", {NULL}, 8913, "tcp"},
+{"dragonfly", {NULL}, 8913, "udp"},
+{"twds", {NULL}, 8937, "tcp"},
+{"cumulus-admin", {NULL}, 8954, "tcp"},
+{"cumulus-admin", {NULL}, 8954, "udp"},
+{"sunwebadmins", {NULL}, 8989, "tcp"},
+{"sunwebadmins", {NULL}, 8989, "udp"},
+{"http-wmap", {NULL}, 8990, "tcp"},
+{"http-wmap", {NULL}, 8990, "udp"},
+{"https-wmap", {NULL}, 8991, "tcp"},
+{"https-wmap", {NULL}, 8991, "udp"},
+{"bctp", {NULL}, 8999, "tcp"},
+{"bctp", {NULL}, 8999, "udp"},
+{"cslistener", {NULL}, 9000, "tcp"},
+{"cslistener", {NULL}, 9000, "udp"},
+{"etlservicemgr", {NULL}, 9001, "tcp"},
+{"etlservicemgr", {NULL}, 9001, "udp"},
+{"dynamid", {NULL}, 9002, "tcp"},
+{"dynamid", {NULL}, 9002, "udp"},
+{"ogs-client", {NULL}, 9007, "udp"},
+{"ogs-server", {NULL}, 9008, "tcp"},
+{"pichat", {NULL}, 9009, "tcp"},
+{"pichat", {NULL}, 9009, "udp"},
+{"sdr", {NULL}, 9010, "tcp"},
+{"tambora", {NULL}, 9020, "tcp"},
+{"tambora", {NULL}, 9020, "udp"},
+{"panagolin-ident", {NULL}, 9021, "tcp"},
+{"panagolin-ident", {NULL}, 9021, "udp"},
+{"paragent", {NULL}, 9022, "tcp"},
+{"paragent", {NULL}, 9022, "udp"},
+{"swa-1", {NULL}, 9023, "tcp"},
+{"swa-1", {NULL}, 9023, "udp"},
+{"swa-2", {NULL}, 9024, "tcp"},
+{"swa-2", {NULL}, 9024, "udp"},
+{"swa-3", {NULL}, 9025, "tcp"},
+{"swa-3", {NULL}, 9025, "udp"},
+{"swa-4", {NULL}, 9026, "tcp"},
+{"swa-4", {NULL}, 9026, "udp"},
+{"versiera", {NULL}, 9050, "tcp"},
+{"fio-cmgmt", {NULL}, 9051, "tcp"},
+{"glrpc", {NULL}, 9080, "tcp"},
+{"glrpc", {NULL}, 9080, "udp"},
+{"lcs-ap", {NULL}, 9082, "sctp"},
+{"emc-pp-mgmtsvc", {NULL}, 9083, "tcp"},
+{"aurora", {NULL}, 9084, "tcp"},
+{"aurora", {NULL}, 9084, "udp"},
+{"aurora", {NULL}, 9084, "sctp"},
+{"ibm-rsyscon", {NULL}, 9085, "tcp"},
+{"ibm-rsyscon", {NULL}, 9085, "udp"},
+{"net2display", {NULL}, 9086, "tcp"},
+{"net2display", {NULL}, 9086, "udp"},
+{"classic", {NULL}, 9087, "tcp"},
+{"classic", {NULL}, 9087, "udp"},
+{"sqlexec", {NULL}, 9088, "tcp"},
+{"sqlexec", {NULL}, 9088, "udp"},
+{"sqlexec-ssl", {NULL}, 9089, "tcp"},
+{"sqlexec-ssl", {NULL}, 9089, "udp"},
+{"websm", {NULL}, 9090, "tcp"},
+{"websm", {NULL}, 9090, "udp"},
+{"xmltec-xmlmail", {NULL}, 9091, "tcp"},
+{"xmltec-xmlmail", {NULL}, 9091, "udp"},
+{"XmlIpcRegSvc", {NULL}, 9092, "tcp"},
+{"XmlIpcRegSvc", {NULL}, 9092, "udp"},
+{"hp-pdl-datastr", {NULL}, 9100, "tcp"},
+{"hp-pdl-datastr", {NULL}, 9100, "udp"},
+{"pdl-datastream", {NULL}, 9100, "tcp"},
+{"pdl-datastream", {NULL}, 9100, "udp"},
+{"bacula-dir", {NULL}, 9101, "tcp"},
+{"bacula-dir", {NULL}, 9101, "udp"},
+{"bacula-fd", {NULL}, 9102, "tcp"},
+{"bacula-fd", {NULL}, 9102, "udp"},
+{"bacula-sd", {NULL}, 9103, "tcp"},
+{"bacula-sd", {NULL}, 9103, "udp"},
+{"peerwire", {NULL}, 9104, "tcp"},
+{"peerwire", {NULL}, 9104, "udp"},
+{"xadmin", {NULL}, 9105, "tcp"},
+{"xadmin", {NULL}, 9105, "udp"},
+{"astergate", {NULL}, 9106, "tcp"},
+{"astergate-disc", {NULL}, 9106, "udp"},
+{"astergatefax", {NULL}, 9107, "tcp"},
+{"mxit", {NULL}, 9119, "tcp"},
+{"mxit", {NULL}, 9119, "udp"},
+{"dddp", {NULL}, 9131, "tcp"},
+{"dddp", {NULL}, 9131, "udp"},
+{"apani1", {NULL}, 9160, "tcp"},
+{"apani1", {NULL}, 9160, "udp"},
+{"apani2", {NULL}, 9161, "tcp"},
+{"apani2", {NULL}, 9161, "udp"},
+{"apani3", {NULL}, 9162, "tcp"},
+{"apani3", {NULL}, 9162, "udp"},
+{"apani4", {NULL}, 9163, "tcp"},
+{"apani4", {NULL}, 9163, "udp"},
+{"apani5", {NULL}, 9164, "tcp"},
+{"apani5", {NULL}, 9164, "udp"},
+{"sun-as-jpda", {NULL}, 9191, "tcp"},
+{"sun-as-jpda", {NULL}, 9191, "udp"},
+{"wap-wsp", {NULL}, 9200, "tcp"},
+{"wap-wsp", {NULL}, 9200, "udp"},
+{"wap-wsp-wtp", {NULL}, 9201, "tcp"},
+{"wap-wsp-wtp", {NULL}, 9201, "udp"},
+{"wap-wsp-s", {NULL}, 9202, "tcp"},
+{"wap-wsp-s", {NULL}, 9202, "udp"},
+{"wap-wsp-wtp-s", {NULL}, 9203, "tcp"},
+{"wap-wsp-wtp-s", {NULL}, 9203, "udp"},
+{"wap-vcard", {NULL}, 9204, "tcp"},
+{"wap-vcard", {NULL}, 9204, "udp"},
+{"wap-vcal", {NULL}, 9205, "tcp"},
+{"wap-vcal", {NULL}, 9205, "udp"},
+{"wap-vcard-s", {NULL}, 9206, "tcp"},
+{"wap-vcard-s", {NULL}, 9206, "udp"},
+{"wap-vcal-s", {NULL}, 9207, "tcp"},
+{"wap-vcal-s", {NULL}, 9207, "udp"},
+{"rjcdb-vcards", {NULL}, 9208, "tcp"},
+{"rjcdb-vcards", {NULL}, 9208, "udp"},
+{"almobile-system", {NULL}, 9209, "tcp"},
+{"almobile-system", {NULL}, 9209, "udp"},
+{"oma-mlp", {NULL}, 9210, "tcp"},
+{"oma-mlp", {NULL}, 9210, "udp"},
+{"oma-mlp-s", {NULL}, 9211, "tcp"},
+{"oma-mlp-s", {NULL}, 9211, "udp"},
+{"serverviewdbms", {NULL}, 9212, "tcp"},
+{"serverviewdbms", {NULL}, 9212, "udp"},
+{"serverstart", {NULL}, 9213, "tcp"},
+{"serverstart", {NULL}, 9213, "udp"},
+{"ipdcesgbs", {NULL}, 9214, "tcp"},
+{"ipdcesgbs", {NULL}, 9214, "udp"},
+{"insis", {NULL}, 9215, "tcp"},
+{"insis", {NULL}, 9215, "udp"},
+{"acme", {NULL}, 9216, "tcp"},
+{"acme", {NULL}, 9216, "udp"},
+{"fsc-port", {NULL}, 9217, "tcp"},
+{"fsc-port", {NULL}, 9217, "udp"},
+{"teamcoherence", {NULL}, 9222, "tcp"},
+{"teamcoherence", {NULL}, 9222, "udp"},
+{"mon", {NULL}, 9255, "tcp"},
+{"mon", {NULL}, 9255, "udp"},
+{"pegasus", {NULL}, 9278, "tcp"},
+{"pegasus", {NULL}, 9278, "udp"},
+{"pegasus-ctl", {NULL}, 9279, "tcp"},
+{"pegasus-ctl", {NULL}, 9279, "udp"},
+{"pgps", {NULL}, 9280, "tcp"},
+{"pgps", {NULL}, 9280, "udp"},
+{"swtp-port1", {NULL}, 9281, "tcp"},
+{"swtp-port1", {NULL}, 9281, "udp"},
+{"swtp-port2", {NULL}, 9282, "tcp"},
+{"swtp-port2", {NULL}, 9282, "udp"},
+{"callwaveiam", {NULL}, 9283, "tcp"},
+{"callwaveiam", {NULL}, 9283, "udp"},
+{"visd", {NULL}, 9284, "tcp"},
+{"visd", {NULL}, 9284, "udp"},
+{"n2h2server", {NULL}, 9285, "tcp"},
+{"n2h2server", {NULL}, 9285, "udp"},
+{"n2receive", {NULL}, 9286, "udp"},
+{"cumulus", {NULL}, 9287, "tcp"},
+{"cumulus", {NULL}, 9287, "udp"},
+{"armtechdaemon", {NULL}, 9292, "tcp"},
+{"armtechdaemon", {NULL}, 9292, "udp"},
+{"storview", {NULL}, 9293, "tcp"},
+{"storview", {NULL}, 9293, "udp"},
+{"armcenterhttp", {NULL}, 9294, "tcp"},
+{"armcenterhttp", {NULL}, 9294, "udp"},
+{"armcenterhttps", {NULL}, 9295, "tcp"},
+{"armcenterhttps", {NULL}, 9295, "udp"},
+{"vrace", {NULL}, 9300, "tcp"},
+{"vrace", {NULL}, 9300, "udp"},
+{"sphinxql", {NULL}, 9306, "tcp"},
+{"sphinxapi", {NULL}, 9312, "tcp"},
+{"secure-ts", {NULL}, 9318, "tcp"},
+{"secure-ts", {NULL}, 9318, "udp"},
+{"guibase", {NULL}, 9321, "tcp"},
+{"guibase", {NULL}, 9321, "udp"},
+{"mpidcmgr", {NULL}, 9343, "tcp"},
+{"mpidcmgr", {NULL}, 9343, "udp"},
+{"mphlpdmc", {NULL}, 9344, "tcp"},
+{"mphlpdmc", {NULL}, 9344, "udp"},
+{"ctechlicensing", {NULL}, 9346, "tcp"},
+{"ctechlicensing", {NULL}, 9346, "udp"},
+{"fjdmimgr", {NULL}, 9374, "tcp"},
+{"fjdmimgr", {NULL}, 9374, "udp"},
+{"boxp", {NULL}, 9380, "tcp"},
+{"boxp", {NULL}, 9380, "udp"},
+{"d2dconfig", {NULL}, 9387, "tcp"},
+{"d2ddatatrans", {NULL}, 9388, "tcp"},
+{"adws", {NULL}, 9389, "tcp"},
+{"otp", {NULL}, 9390, "tcp"},
+{"fjinvmgr", {NULL}, 9396, "tcp"},
+{"fjinvmgr", {NULL}, 9396, "udp"},
+{"mpidcagt", {NULL}, 9397, "tcp"},
+{"mpidcagt", {NULL}, 9397, "udp"},
+{"sec-t4net-srv", {NULL}, 9400, "tcp"},
+{"sec-t4net-srv", {NULL}, 9400, "udp"},
+{"sec-t4net-clt", {NULL}, 9401, "tcp"},
+{"sec-t4net-clt", {NULL}, 9401, "udp"},
+{"sec-pc2fax-srv", {NULL}, 9402, "tcp"},
+{"sec-pc2fax-srv", {NULL}, 9402, "udp"},
+{"git", {NULL}, 9418, "tcp"},
+{"git", {NULL}, 9418, "udp"},
+{"tungsten-https", {NULL}, 9443, "tcp"},
+{"tungsten-https", {NULL}, 9443, "udp"},
+{"wso2esb-console", {NULL}, 9444, "tcp"},
+{"wso2esb-console", {NULL}, 9444, "udp"},
+{"sntlkeyssrvr", {NULL}, 9450, "tcp"},
+{"sntlkeyssrvr", {NULL}, 9450, "udp"},
+{"ismserver", {NULL}, 9500, "tcp"},
+{"ismserver", {NULL}, 9500, "udp"},
+{"sma-spw", {NULL}, 9522, "udp"},
+{"mngsuite", {NULL}, 9535, "tcp"},
+{"mngsuite", {NULL}, 9535, "udp"},
+{"laes-bf", {NULL}, 9536, "tcp"},
+{"laes-bf", {NULL}, 9536, "udp"},
+{"trispen-sra", {NULL}, 9555, "tcp"},
+{"trispen-sra", {NULL}, 9555, "udp"},
+{"ldgateway", {NULL}, 9592, "tcp"},
+{"ldgateway", {NULL}, 9592, "udp"},
+{"cba8", {NULL}, 9593, "tcp"},
+{"cba8", {NULL}, 9593, "udp"},
+{"msgsys", {NULL}, 9594, "tcp"},
+{"msgsys", {NULL}, 9594, "udp"},
+{"pds", {NULL}, 9595, "tcp"},
+{"pds", {NULL}, 9595, "udp"},
+{"mercury-disc", {NULL}, 9596, "tcp"},
+{"mercury-disc", {NULL}, 9596, "udp"},
+{"pd-admin", {NULL}, 9597, "tcp"},
+{"pd-admin", {NULL}, 9597, "udp"},
+{"vscp", {NULL}, 9598, "tcp"},
+{"vscp", {NULL}, 9598, "udp"},
+{"robix", {NULL}, 9599, "tcp"},
+{"robix", {NULL}, 9599, "udp"},
+{"micromuse-ncpw", {NULL}, 9600, "tcp"},
+{"micromuse-ncpw", {NULL}, 9600, "udp"},
+{"streamcomm-ds", {NULL}, 9612, "tcp"},
+{"streamcomm-ds", {NULL}, 9612, "udp"},
+{"iadt-tls", {NULL}, 9614, "tcp"},
+{"erunbook_agent", {NULL}, 9616, "tcp"},
+{"erunbook_server", {NULL}, 9617, "tcp"},
+{"condor", {NULL}, 9618, "tcp"},
+{"condor", {NULL}, 9618, "udp"},
+{"odbcpathway", {NULL}, 9628, "tcp"},
+{"odbcpathway", {NULL}, 9628, "udp"},
+{"uniport", {NULL}, 9629, "tcp"},
+{"uniport", {NULL}, 9629, "udp"},
+{"peoctlr", {NULL}, 9630, "tcp"},
+{"peocoll", {NULL}, 9631, "tcp"},
+{"mc-comm", {NULL}, 9632, "udp"},
+{"pqsflows", {NULL}, 9640, "tcp"},
+{"xmms2", {NULL}, 9667, "tcp"},
+{"xmms2", {NULL}, 9667, "udp"},
+{"tec5-sdctp", {NULL}, 9668, "tcp"},
+{"tec5-sdctp", {NULL}, 9668, "udp"},
+{"client-wakeup", {NULL}, 9694, "tcp"},
+{"client-wakeup", {NULL}, 9694, "udp"},
+{"ccnx", {NULL}, 9695, "tcp"},
+{"ccnx", {NULL}, 9695, "udp"},
+{"board-roar", {NULL}, 9700, "tcp"},
+{"board-roar", {NULL}, 9700, "udp"},
+{"l5nas-parchan", {NULL}, 9747, "tcp"},
+{"l5nas-parchan", {NULL}, 9747, "udp"},
+{"board-voip", {NULL}, 9750, "tcp"},
+{"board-voip", {NULL}, 9750, "udp"},
+{"rasadv", {NULL}, 9753, "tcp"},
+{"rasadv", {NULL}, 9753, "udp"},
+{"tungsten-http", {NULL}, 9762, "tcp"},
+{"tungsten-http", {NULL}, 9762, "udp"},
+{"davsrc", {NULL}, 9800, "tcp"},
+{"davsrc", {NULL}, 9800, "udp"},
+{"sstp-2", {NULL}, 9801, "tcp"},
+{"sstp-2", {NULL}, 9801, "udp"},
+{"davsrcs", {NULL}, 9802, "tcp"},
+{"davsrcs", {NULL}, 9802, "udp"},
+{"sapv1", {NULL}, 9875, "tcp"},
+{"sapv1", {NULL}, 9875, "udp"},
+{"sd", {NULL}, 9876, "tcp"},
+{"sd", {NULL}, 9876, "udp"},
+{"cyborg-systems", {NULL}, 9888, "tcp"},
+{"cyborg-systems", {NULL}, 9888, "udp"},
+{"gt-proxy", {NULL}, 9889, "tcp"},
+{"gt-proxy", {NULL}, 9889, "udp"},
+{"monkeycom", {NULL}, 9898, "tcp"},
+{"monkeycom", {NULL}, 9898, "udp"},
+{"sctp-tunneling", {NULL}, 9899, "tcp"},
+{"sctp-tunneling", {NULL}, 9899, "udp"},
+{"iua", {NULL}, 9900, "tcp"},
+{"iua", {NULL}, 9900, "udp"},
+{"iua", {NULL}, 9900, "sctp"},
+{"enrp", {NULL}, 9901, "udp"},
+{"enrp-sctp", {NULL}, 9901, "sctp"},
+{"enrp-sctp-tls", {NULL}, 9902, "sctp"},
+{"domaintime", {NULL}, 9909, "tcp"},
+{"domaintime", {NULL}, 9909, "udp"},
+{"sype-transport", {NULL}, 9911, "tcp"},
+{"sype-transport", {NULL}, 9911, "udp"},
+{"apc-9950", {NULL}, 9950, "tcp"},
+{"apc-9950", {NULL}, 9950, "udp"},
+{"apc-9951", {NULL}, 9951, "tcp"},
+{"apc-9951", {NULL}, 9951, "udp"},
+{"apc-9952", {NULL}, 9952, "tcp"},
+{"apc-9952", {NULL}, 9952, "udp"},
+{"acis", {NULL}, 9953, "tcp"},
+{"acis", {NULL}, 9953, "udp"},
+{"odnsp", {NULL}, 9966, "tcp"},
+{"odnsp", {NULL}, 9966, "udp"},
+{"dsm-scm-target", {NULL}, 9987, "tcp"},
+{"dsm-scm-target", {NULL}, 9987, "udp"},
+{"nsesrvr", {NULL}, 9988, "tcp"},
+{"osm-appsrvr", {NULL}, 9990, "tcp"},
+{"osm-appsrvr", {NULL}, 9990, "udp"},
+{"osm-oev", {NULL}, 9991, "tcp"},
+{"osm-oev", {NULL}, 9991, "udp"},
+{"palace-1", {NULL}, 9992, "tcp"},
+{"palace-1", {NULL}, 9992, "udp"},
+{"palace-2", {NULL}, 9993, "tcp"},
+{"palace-2", {NULL}, 9993, "udp"},
+{"palace-3", {NULL}, 9994, "tcp"},
+{"palace-3", {NULL}, 9994, "udp"},
+{"palace-4", {NULL}, 9995, "tcp"},
+{"palace-4", {NULL}, 9995, "udp"},
+{"palace-5", {NULL}, 9996, "tcp"},
+{"palace-5", {NULL}, 9996, "udp"},
+{"palace-6", {NULL}, 9997, "tcp"},
+{"palace-6", {NULL}, 9997, "udp"},
+{"distinct32", {NULL}, 9998, "tcp"},
+{"distinct32", {NULL}, 9998, "udp"},
+{"distinct", {NULL}, 9999, "tcp"},
+{"distinct", {NULL}, 9999, "udp"},
+{"ndmp", {NULL}, 10000, "tcp"},
+{"ndmp", {NULL}, 10000, "udp"},
+{"scp-config", {NULL}, 10001, "tcp"},
+{"scp-config", {NULL}, 10001, "udp"},
+{"documentum", {NULL}, 10002, "tcp"},
+{"documentum", {NULL}, 10002, "udp"},
+{"documentum_s", {NULL}, 10003, "tcp"},
+{"documentum_s", {NULL}, 10003, "udp"},
+{"emcrmirccd", {NULL}, 10004, "tcp"},
+{"emcrmird", {NULL}, 10005, "tcp"},
+{"mvs-capacity", {NULL}, 10007, "tcp"},
+{"mvs-capacity", {NULL}, 10007, "udp"},
+{"octopus", {NULL}, 10008, "tcp"},
+{"octopus", {NULL}, 10008, "udp"},
+{"swdtp-sv", {NULL}, 10009, "tcp"},
+{"swdtp-sv", {NULL}, 10009, "udp"},
+{"rxapi", {NULL}, 10010, "tcp"},
+{"zabbix-agent", {NULL}, 10050, "tcp"},
+{"zabbix-agent", {NULL}, 10050, "udp"},
+{"zabbix-trapper", {NULL}, 10051, "tcp"},
+{"zabbix-trapper", {NULL}, 10051, "udp"},
+{"qptlmd", {NULL}, 10055, "tcp"},
+{"amanda", {NULL}, 10080, "tcp"},
+{"amanda", {NULL}, 10080, "udp"},
+{"famdc", {NULL}, 10081, "tcp"},
+{"famdc", {NULL}, 10081, "udp"},
+{"itap-ddtp", {NULL}, 10100, "tcp"},
+{"itap-ddtp", {NULL}, 10100, "udp"},
+{"ezmeeting-2", {NULL}, 10101, "tcp"},
+{"ezmeeting-2", {NULL}, 10101, "udp"},
+{"ezproxy-2", {NULL}, 10102, "tcp"},
+{"ezproxy-2", {NULL}, 10102, "udp"},
+{"ezrelay", {NULL}, 10103, "tcp"},
+{"ezrelay", {NULL}, 10103, "udp"},
+{"swdtp", {NULL}, 10104, "tcp"},
+{"swdtp", {NULL}, 10104, "udp"},
+{"bctp-server", {NULL}, 10107, "tcp"},
+{"bctp-server", {NULL}, 10107, "udp"},
+{"nmea-0183", {NULL}, 10110, "tcp"},
+{"nmea-0183", {NULL}, 10110, "udp"},
+{"netiq-endpoint", {NULL}, 10113, "tcp"},
+{"netiq-endpoint", {NULL}, 10113, "udp"},
+{"netiq-qcheck", {NULL}, 10114, "tcp"},
+{"netiq-qcheck", {NULL}, 10114, "udp"},
+{"netiq-endpt", {NULL}, 10115, "tcp"},
+{"netiq-endpt", {NULL}, 10115, "udp"},
+{"netiq-voipa", {NULL}, 10116, "tcp"},
+{"netiq-voipa", {NULL}, 10116, "udp"},
+{"iqrm", {NULL}, 10117, "tcp"},
+{"iqrm", {NULL}, 10117, "udp"},
+{"bmc-perf-sd", {NULL}, 10128, "tcp"},
+{"bmc-perf-sd", {NULL}, 10128, "udp"},
+{"bmc-gms", {NULL}, 10129, "tcp"},
+{"qb-db-server", {NULL}, 10160, "tcp"},
+{"qb-db-server", {NULL}, 10160, "udp"},
+{"snmptls", {NULL}, 10161, "tcp"},
+{"snmpdtls", {NULL}, 10161, "udp"},
+{"snmptls-trap", {NULL}, 10162, "tcp"},
+{"snmpdtls-trap", {NULL}, 10162, "udp"},
+{"trisoap", {NULL}, 10200, "tcp"},
+{"trisoap", {NULL}, 10200, "udp"},
+{"rsms", {NULL}, 10201, "tcp"},
+{"rscs", {NULL}, 10201, "udp"},
+{"apollo-relay", {NULL}, 10252, "tcp"},
+{"apollo-relay", {NULL}, 10252, "udp"},
+{"axis-wimp-port", {NULL}, 10260, "tcp"},
+{"axis-wimp-port", {NULL}, 10260, "udp"},
+{"blocks", {NULL}, 10288, "tcp"},
+{"blocks", {NULL}, 10288, "udp"},
+{"cosir", {NULL}, 10321, "tcp"},
+{"hip-nat-t", {NULL}, 10500, "udp"},
+{"MOS-lower", {NULL}, 10540, "tcp"},
+{"MOS-lower", {NULL}, 10540, "udp"},
+{"MOS-upper", {NULL}, 10541, "tcp"},
+{"MOS-upper", {NULL}, 10541, "udp"},
+{"MOS-aux", {NULL}, 10542, "tcp"},
+{"MOS-aux", {NULL}, 10542, "udp"},
+{"MOS-soap", {NULL}, 10543, "tcp"},
+{"MOS-soap", {NULL}, 10543, "udp"},
+{"MOS-soap-opt", {NULL}, 10544, "tcp"},
+{"MOS-soap-opt", {NULL}, 10544, "udp"},
+{"gap", {NULL}, 10800, "tcp"},
+{"gap", {NULL}, 10800, "udp"},
+{"lpdg", {NULL}, 10805, "tcp"},
+{"lpdg", {NULL}, 10805, "udp"},
+{"nbd", {NULL}, 10809, "tcp"},
+{"nmc-disc", {NULL}, 10810, "udp"},
+{"helix", {NULL}, 10860, "tcp"},
+{"helix", {NULL}, 10860, "udp"},
+{"rmiaux", {NULL}, 10990, "tcp"},
+{"rmiaux", {NULL}, 10990, "udp"},
+{"irisa", {NULL}, 11000, "tcp"},
+{"irisa", {NULL}, 11000, "udp"},
+{"metasys", {NULL}, 11001, "tcp"},
+{"metasys", {NULL}, 11001, "udp"},
+{"netapp-icmgmt", {NULL}, 11104, "tcp"},
+{"netapp-icdata", {NULL}, 11105, "tcp"},
+{"sgi-lk", {NULL}, 11106, "tcp"},
+{"sgi-lk", {NULL}, 11106, "udp"},
+{"vce", {NULL}, 11111, "tcp"},
+{"vce", {NULL}, 11111, "udp"},
+{"dicom", {NULL}, 11112, "tcp"},
+{"dicom", {NULL}, 11112, "udp"},
+{"suncacao-snmp", {NULL}, 11161, "tcp"},
+{"suncacao-snmp", {NULL}, 11161, "udp"},
+{"suncacao-jmxmp", {NULL}, 11162, "tcp"},
+{"suncacao-jmxmp", {NULL}, 11162, "udp"},
+{"suncacao-rmi", {NULL}, 11163, "tcp"},
+{"suncacao-rmi", {NULL}, 11163, "udp"},
+{"suncacao-csa", {NULL}, 11164, "tcp"},
+{"suncacao-csa", {NULL}, 11164, "udp"},
+{"suncacao-websvc", {NULL}, 11165, "tcp"},
+{"suncacao-websvc", {NULL}, 11165, "udp"},
+{"snss", {NULL}, 11171, "udp"},
+{"oemcacao-jmxmp", {NULL}, 11172, "tcp"},
+{"oemcacao-rmi", {NULL}, 11174, "tcp"},
+{"oemcacao-websvc", {NULL}, 11175, "tcp"},
+{"smsqp", {NULL}, 11201, "tcp"},
+{"smsqp", {NULL}, 11201, "udp"},
+{"wifree", {NULL}, 11208, "tcp"},
+{"wifree", {NULL}, 11208, "udp"},
+{"memcache", {NULL}, 11211, "tcp"},
+{"memcache", {NULL}, 11211, "udp"},
+{"imip", {NULL}, 11319, "tcp"},
+{"imip", {NULL}, 11319, "udp"},
+{"imip-channels", {NULL}, 11320, "tcp"},
+{"imip-channels", {NULL}, 11320, "udp"},
+{"arena-server", {NULL}, 11321, "tcp"},
+{"arena-server", {NULL}, 11321, "udp"},
+{"atm-uhas", {NULL}, 11367, "tcp"},
+{"atm-uhas", {NULL}, 11367, "udp"},
+{"hkp", {NULL}, 11371, "tcp"},
+{"hkp", {NULL}, 11371, "udp"},
+{"asgcypresstcps", {NULL}, 11489, "tcp"},
+{"tempest-port", {NULL}, 11600, "tcp"},
+{"tempest-port", {NULL}, 11600, "udp"},
+{"h323callsigalt", {NULL}, 11720, "tcp"},
+{"h323callsigalt", {NULL}, 11720, "udp"},
+{"intrepid-ssl", {NULL}, 11751, "tcp"},
+{"intrepid-ssl", {NULL}, 11751, "udp"},
+{"xoraya", {NULL}, 11876, "tcp"},
+{"xoraya", {NULL}, 11876, "udp"},
+{"x2e-disc", {NULL}, 11877, "udp"},
+{"sysinfo-sp", {NULL}, 11967, "tcp"},
+{"sysinfo-sp", {NULL}, 11967, "udp"},
+{"wmereceiving", {NULL}, 11997, "sctp"},
+{"wmedistribution", {NULL}, 11998, "sctp"},
+{"wmereporting", {NULL}, 11999, "sctp"},
+{"entextxid", {NULL}, 12000, "tcp"},
+{"entextxid", {NULL}, 12000, "udp"},
+{"entextnetwk", {NULL}, 12001, "tcp"},
+{"entextnetwk", {NULL}, 12001, "udp"},
+{"entexthigh", {NULL}, 12002, "tcp"},
+{"entexthigh", {NULL}, 12002, "udp"},
+{"entextmed", {NULL}, 12003, "tcp"},
+{"entextmed", {NULL}, 12003, "udp"},
+{"entextlow", {NULL}, 12004, "tcp"},
+{"entextlow", {NULL}, 12004, "udp"},
+{"dbisamserver1", {NULL}, 12005, "tcp"},
+{"dbisamserver1", {NULL}, 12005, "udp"},
+{"dbisamserver2", {NULL}, 12006, "tcp"},
+{"dbisamserver2", {NULL}, 12006, "udp"},
+{"accuracer", {NULL}, 12007, "tcp"},
+{"accuracer", {NULL}, 12007, "udp"},
+{"accuracer-dbms", {NULL}, 12008, "tcp"},
+{"accuracer-dbms", {NULL}, 12008, "udp"},
+{"edbsrvr", {NULL}, 12010, "tcp"},
+{"vipera", {NULL}, 12012, "tcp"},
+{"vipera", {NULL}, 12012, "udp"},
+{"vipera-ssl", {NULL}, 12013, "tcp"},
+{"vipera-ssl", {NULL}, 12013, "udp"},
+{"rets-ssl", {NULL}, 12109, "tcp"},
+{"rets-ssl", {NULL}, 12109, "udp"},
+{"nupaper-ss", {NULL}, 12121, "tcp"},
+{"nupaper-ss", {NULL}, 12121, "udp"},
+{"cawas", {NULL}, 12168, "tcp"},
+{"cawas", {NULL}, 12168, "udp"},
+{"hivep", {NULL}, 12172, "tcp"},
+{"hivep", {NULL}, 12172, "udp"},
+{"linogridengine", {NULL}, 12300, "tcp"},
+{"linogridengine", {NULL}, 12300, "udp"},
+{"warehouse-sss", {NULL}, 12321, "tcp"},
+{"warehouse-sss", {NULL}, 12321, "udp"},
+{"warehouse", {NULL}, 12322, "tcp"},
+{"warehouse", {NULL}, 12322, "udp"},
+{"italk", {NULL}, 12345, "tcp"},
+{"italk", {NULL}, 12345, "udp"},
+{"tsaf", {NULL}, 12753, "tcp"},
+{"tsaf", {NULL}, 12753, "udp"},
+{"i-zipqd", {NULL}, 13160, "tcp"},
+{"i-zipqd", {NULL}, 13160, "udp"},
+{"bcslogc", {NULL}, 13216, "tcp"},
+{"bcslogc", {NULL}, 13216, "udp"},
+{"rs-pias", {NULL}, 13217, "tcp"},
+{"rs-pias", {NULL}, 13217, "udp"},
+{"emc-vcas-tcp", {NULL}, 13218, "tcp"},
+{"emc-vcas-udp", {NULL}, 13218, "udp"},
+{"powwow-client", {NULL}, 13223, "tcp"},
+{"powwow-client", {NULL}, 13223, "udp"},
+{"powwow-server", {NULL}, 13224, "tcp"},
+{"powwow-server", {NULL}, 13224, "udp"},
+{"doip-data", {NULL}, 13400, "tcp"},
+{"doip-disc", {NULL}, 13400, "udp"},
+{"bprd", {NULL}, 13720, "tcp"},
+{"bprd", {NULL}, 13720, "udp"},
+{"bpdbm", {NULL}, 13721, "tcp"},
+{"bpdbm", {NULL}, 13721, "udp"},
+{"bpjava-msvc", {NULL}, 13722, "tcp"},
+{"bpjava-msvc", {NULL}, 13722, "udp"},
+{"vnetd", {NULL}, 13724, "tcp"},
+{"vnetd", {NULL}, 13724, "udp"},
+{"bpcd", {NULL}, 13782, "tcp"},
+{"bpcd", {NULL}, 13782, "udp"},
+{"vopied", {NULL}, 13783, "tcp"},
+{"vopied", {NULL}, 13783, "udp"},
+{"nbdb", {NULL}, 13785, "tcp"},
+{"nbdb", {NULL}, 13785, "udp"},
+{"nomdb", {NULL}, 13786, "tcp"},
+{"nomdb", {NULL}, 13786, "udp"},
+{"dsmcc-config", {NULL}, 13818, "tcp"},
+{"dsmcc-config", {NULL}, 13818, "udp"},
+{"dsmcc-session", {NULL}, 13819, "tcp"},
+{"dsmcc-session", {NULL}, 13819, "udp"},
+{"dsmcc-passthru", {NULL}, 13820, "tcp"},
+{"dsmcc-passthru", {NULL}, 13820, "udp"},
+{"dsmcc-download", {NULL}, 13821, "tcp"},
+{"dsmcc-download", {NULL}, 13821, "udp"},
+{"dsmcc-ccp", {NULL}, 13822, "tcp"},
+{"dsmcc-ccp", {NULL}, 13822, "udp"},
+{"bmdss", {NULL}, 13823, "tcp"},
+{"dta-systems", {NULL}, 13929, "tcp"},
+{"dta-systems", {NULL}, 13929, "udp"},
+{"medevolve", {NULL}, 13930, "tcp"},
+{"scotty-ft", {NULL}, 14000, "tcp"},
+{"scotty-ft", {NULL}, 14000, "udp"},
+{"sua", {NULL}, 14001, "tcp"},
+{"sua", {NULL}, 14001, "udp"},
+{"sua", {NULL}, 14001, "sctp"},
+{"sage-best-com1", {NULL}, 14033, "tcp"},
+{"sage-best-com1", {NULL}, 14033, "udp"},
+{"sage-best-com2", {NULL}, 14034, "tcp"},
+{"sage-best-com2", {NULL}, 14034, "udp"},
+{"vcs-app", {NULL}, 14141, "tcp"},
+{"vcs-app", {NULL}, 14141, "udp"},
+{"icpp", {NULL}, 14142, "tcp"},
+{"icpp", {NULL}, 14142, "udp"},
+{"gcm-app", {NULL}, 14145, "tcp"},
+{"gcm-app", {NULL}, 14145, "udp"},
+{"vrts-tdd", {NULL}, 14149, "tcp"},
+{"vrts-tdd", {NULL}, 14149, "udp"},
+{"vcscmd", {NULL}, 14150, "tcp"},
+{"vad", {NULL}, 14154, "tcp"},
+{"vad", {NULL}, 14154, "udp"},
+{"cps", {NULL}, 14250, "tcp"},
+{"cps", {NULL}, 14250, "udp"},
+{"ca-web-update", {NULL}, 14414, "tcp"},
+{"ca-web-update", {NULL}, 14414, "udp"},
+{"hde-lcesrvr-1", {NULL}, 14936, "tcp"},
+{"hde-lcesrvr-1", {NULL}, 14936, "udp"},
+{"hde-lcesrvr-2", {NULL}, 14937, "tcp"},
+{"hde-lcesrvr-2", {NULL}, 14937, "udp"},
+{"hydap", {NULL}, 15000, "tcp"},
+{"hydap", {NULL}, 15000, "udp"},
+{"xpilot", {NULL}, 15345, "tcp"},
+{"xpilot", {NULL}, 15345, "udp"},
+{"3link", {NULL}, 15363, "tcp"},
+{"3link", {NULL}, 15363, "udp"},
+{"cisco-snat", {NULL}, 15555, "tcp"},
+{"cisco-snat", {NULL}, 15555, "udp"},
+{"bex-xr", {NULL}, 15660, "tcp"},
+{"bex-xr", {NULL}, 15660, "udp"},
+{"ptp", {NULL}, 15740, "tcp"},
+{"ptp", {NULL}, 15740, "udp"},
+{"2ping", {NULL}, 15998, "udp"},
+{"programmar", {NULL}, 15999, "tcp"},
+{"fmsas", {NULL}, 16000, "tcp"},
+{"fmsascon", {NULL}, 16001, "tcp"},
+{"gsms", {NULL}, 16002, "tcp"},
+{"alfin", {NULL}, 16003, "udp"},
+{"jwpc", {NULL}, 16020, "tcp"},
+{"jwpc-bin", {NULL}, 16021, "tcp"},
+{"sun-sea-port", {NULL}, 16161, "tcp"},
+{"sun-sea-port", {NULL}, 16161, "udp"},
+{"solaris-audit", {NULL}, 16162, "tcp"},
+{"etb4j", {NULL}, 16309, "tcp"},
+{"etb4j", {NULL}, 16309, "udp"},
+{"pduncs", {NULL}, 16310, "tcp"},
+{"pduncs", {NULL}, 16310, "udp"},
+{"pdefmns", {NULL}, 16311, "tcp"},
+{"pdefmns", {NULL}, 16311, "udp"},
+{"netserialext1", {NULL}, 16360, "tcp"},
+{"netserialext1", {NULL}, 16360, "udp"},
+{"netserialext2", {NULL}, 16361, "tcp"},
+{"netserialext2", {NULL}, 16361, "udp"},
+{"netserialext3", {NULL}, 16367, "tcp"},
+{"netserialext3", {NULL}, 16367, "udp"},
+{"netserialext4", {NULL}, 16368, "tcp"},
+{"netserialext4", {NULL}, 16368, "udp"},
+{"connected", {NULL}, 16384, "tcp"},
+{"connected", {NULL}, 16384, "udp"},
+{"xoms", {NULL}, 16619, "tcp"},
+{"newbay-snc-mc", {NULL}, 16900, "tcp"},
+{"newbay-snc-mc", {NULL}, 16900, "udp"},
+{"sgcip", {NULL}, 16950, "tcp"},
+{"sgcip", {NULL}, 16950, "udp"},
+{"intel-rci-mp", {NULL}, 16991, "tcp"},
+{"intel-rci-mp", {NULL}, 16991, "udp"},
+{"amt-soap-http", {NULL}, 16992, "tcp"},
+{"amt-soap-http", {NULL}, 16992, "udp"},
+{"amt-soap-https", {NULL}, 16993, "tcp"},
+{"amt-soap-https", {NULL}, 16993, "udp"},
+{"amt-redir-tcp", {NULL}, 16994, "tcp"},
+{"amt-redir-tcp", {NULL}, 16994, "udp"},
+{"amt-redir-tls", {NULL}, 16995, "tcp"},
+{"amt-redir-tls", {NULL}, 16995, "udp"},
+{"isode-dua", {NULL}, 17007, "tcp"},
+{"isode-dua", {NULL}, 17007, "udp"},
+{"soundsvirtual", {NULL}, 17185, "tcp"},
+{"soundsvirtual", {NULL}, 17185, "udp"},
+{"chipper", {NULL}, 17219, "tcp"},
+{"chipper", {NULL}, 17219, "udp"},
+{"integrius-stp", {NULL}, 17234, "tcp"},
+{"integrius-stp", {NULL}, 17234, "udp"},
+{"ssh-mgmt", {NULL}, 17235, "tcp"},
+{"ssh-mgmt", {NULL}, 17235, "udp"},
+{"db-lsp", {NULL}, 17500, "tcp"},
+{"db-lsp-disc", {NULL}, 17500, "udp"},
+{"ea", {NULL}, 17729, "tcp"},
+{"ea", {NULL}, 17729, "udp"},
+{"zep", {NULL}, 17754, "tcp"},
+{"zep", {NULL}, 17754, "udp"},
+{"zigbee-ip", {NULL}, 17755, "tcp"},
+{"zigbee-ip", {NULL}, 17755, "udp"},
+{"zigbee-ips", {NULL}, 17756, "tcp"},
+{"zigbee-ips", {NULL}, 17756, "udp"},
+{"sw-orion", {NULL}, 17777, "tcp"},
+{"biimenu", {NULL}, 18000, "tcp"},
+{"biimenu", {NULL}, 18000, "udp"},
+{"radpdf", {NULL}, 18104, "tcp"},
+{"racf", {NULL}, 18136, "tcp"},
+{"opsec-cvp", {NULL}, 18181, "tcp"},
+{"opsec-cvp", {NULL}, 18181, "udp"},
+{"opsec-ufp", {NULL}, 18182, "tcp"},
+{"opsec-ufp", {NULL}, 18182, "udp"},
+{"opsec-sam", {NULL}, 18183, "tcp"},
+{"opsec-sam", {NULL}, 18183, "udp"},
+{"opsec-lea", {NULL}, 18184, "tcp"},
+{"opsec-lea", {NULL}, 18184, "udp"},
+{"opsec-omi", {NULL}, 18185, "tcp"},
+{"opsec-omi", {NULL}, 18185, "udp"},
+{"ohsc", {NULL}, 18186, "tcp"},
+{"ohsc", {NULL}, 18186, "udp"},
+{"opsec-ela", {NULL}, 18187, "tcp"},
+{"opsec-ela", {NULL}, 18187, "udp"},
+{"checkpoint-rtm", {NULL}, 18241, "tcp"},
+{"checkpoint-rtm", {NULL}, 18241, "udp"},
+{"gv-pf", {NULL}, 18262, "tcp"},
+{"gv-pf", {NULL}, 18262, "udp"},
+{"ac-cluster", {NULL}, 18463, "tcp"},
+{"ac-cluster", {NULL}, 18463, "udp"},
+{"rds-ib", {NULL}, 18634, "tcp"},
+{"rds-ib", {NULL}, 18634, "udp"},
+{"rds-ip", {NULL}, 18635, "tcp"},
+{"rds-ip", {NULL}, 18635, "udp"},
+{"ique", {NULL}, 18769, "tcp"},
+{"ique", {NULL}, 18769, "udp"},
+{"infotos", {NULL}, 18881, "tcp"},
+{"infotos", {NULL}, 18881, "udp"},
+{"apc-necmp", {NULL}, 18888, "tcp"},
+{"apc-necmp", {NULL}, 18888, "udp"},
+{"igrid", {NULL}, 19000, "tcp"},
+{"igrid", {NULL}, 19000, "udp"},
+{"j-link", {NULL}, 19020, "tcp"},
+{"opsec-uaa", {NULL}, 19191, "tcp"},
+{"opsec-uaa", {NULL}, 19191, "udp"},
+{"ua-secureagent", {NULL}, 19194, "tcp"},
+{"ua-secureagent", {NULL}, 19194, "udp"},
+{"keysrvr", {NULL}, 19283, "tcp"},
+{"keysrvr", {NULL}, 19283, "udp"},
+{"keyshadow", {NULL}, 19315, "tcp"},
+{"keyshadow", {NULL}, 19315, "udp"},
+{"mtrgtrans", {NULL}, 19398, "tcp"},
+{"mtrgtrans", {NULL}, 19398, "udp"},
+{"hp-sco", {NULL}, 19410, "tcp"},
+{"hp-sco", {NULL}, 19410, "udp"},
+{"hp-sca", {NULL}, 19411, "tcp"},
+{"hp-sca", {NULL}, 19411, "udp"},
+{"hp-sessmon", {NULL}, 19412, "tcp"},
+{"hp-sessmon", {NULL}, 19412, "udp"},
+{"fxuptp", {NULL}, 19539, "tcp"},
+{"fxuptp", {NULL}, 19539, "udp"},
+{"sxuptp", {NULL}, 19540, "tcp"},
+{"sxuptp", {NULL}, 19540, "udp"},
+{"jcp", {NULL}, 19541, "tcp"},
+{"jcp", {NULL}, 19541, "udp"},
+{"iec-104-sec", {NULL}, 19998, "tcp"},
+{"dnp-sec", {NULL}, 19999, "tcp"},
+{"dnp-sec", {NULL}, 19999, "udp"},
+{"dnp", {NULL}, 20000, "tcp"},
+{"dnp", {NULL}, 20000, "udp"},
+{"microsan", {NULL}, 20001, "tcp"},
+{"microsan", {NULL}, 20001, "udp"},
+{"commtact-http", {NULL}, 20002, "tcp"},
+{"commtact-http", {NULL}, 20002, "udp"},
+{"commtact-https", {NULL}, 20003, "tcp"},
+{"commtact-https", {NULL}, 20003, "udp"},
+{"openwebnet", {NULL}, 20005, "tcp"},
+{"openwebnet", {NULL}, 20005, "udp"},
+{"ss-idi-disc", {NULL}, 20012, "udp"},
+{"ss-idi", {NULL}, 20013, "tcp"},
+{"opendeploy", {NULL}, 20014, "tcp"},
+{"opendeploy", {NULL}, 20014, "udp"},
+{"nburn_id", {NULL}, 20034, "tcp"},
+{"nburn_id", {NULL}, 20034, "udp"},
+{"tmophl7mts", {NULL}, 20046, "tcp"},
+{"tmophl7mts", {NULL}, 20046, "udp"},
+{"mountd", {NULL}, 20048, "tcp"},
+{"mountd", {NULL}, 20048, "udp"},
+{"nfsrdma", {NULL}, 20049, "tcp"},
+{"nfsrdma", {NULL}, 20049, "udp"},
+{"nfsrdma", {NULL}, 20049, "sctp"},
+{"tolfab", {NULL}, 20167, "tcp"},
+{"tolfab", {NULL}, 20167, "udp"},
+{"ipdtp-port", {NULL}, 20202, "tcp"},
+{"ipdtp-port", {NULL}, 20202, "udp"},
+{"ipulse-ics", {NULL}, 20222, "tcp"},
+{"ipulse-ics", {NULL}, 20222, "udp"},
+{"emwavemsg", {NULL}, 20480, "tcp"},
+{"emwavemsg", {NULL}, 20480, "udp"},
+{"track", {NULL}, 20670, "tcp"},
+{"track", {NULL}, 20670, "udp"},
+{"athand-mmp", {NULL}, 20999, "tcp"},
+{"athand-mmp", {NULL}, 20999, "udp"},
+{"irtrans", {NULL}, 21000, "tcp"},
+{"irtrans", {NULL}, 21000, "udp"},
+{"dfserver", {NULL}, 21554, "tcp"},
+{"dfserver", {NULL}, 21554, "udp"},
+{"vofr-gateway", {NULL}, 21590, "tcp"},
+{"vofr-gateway", {NULL}, 21590, "udp"},
+{"tvpm", {NULL}, 21800, "tcp"},
+{"tvpm", {NULL}, 21800, "udp"},
+{"webphone", {NULL}, 21845, "tcp"},
+{"webphone", {NULL}, 21845, "udp"},
+{"netspeak-is", {NULL}, 21846, "tcp"},
+{"netspeak-is", {NULL}, 21846, "udp"},
+{"netspeak-cs", {NULL}, 21847, "tcp"},
+{"netspeak-cs", {NULL}, 21847, "udp"},
+{"netspeak-acd", {NULL}, 21848, "tcp"},
+{"netspeak-acd", {NULL}, 21848, "udp"},
+{"netspeak-cps", {NULL}, 21849, "tcp"},
+{"netspeak-cps", {NULL}, 21849, "udp"},
+{"snapenetio", {NULL}, 22000, "tcp"},
+{"snapenetio", {NULL}, 22000, "udp"},
+{"optocontrol", {NULL}, 22001, "tcp"},
+{"optocontrol", {NULL}, 22001, "udp"},
+{"optohost002", {NULL}, 22002, "tcp"},
+{"optohost002", {NULL}, 22002, "udp"},
+{"optohost003", {NULL}, 22003, "tcp"},
+{"optohost003", {NULL}, 22003, "udp"},
+{"optohost004", {NULL}, 22004, "tcp"},
+{"optohost004", {NULL}, 22004, "udp"},
+{"optohost004", {NULL}, 22005, "tcp"},
+{"optohost004", {NULL}, 22005, "udp"},
+{"dcap", {NULL}, 22125, "tcp"},
+{"gsidcap", {NULL}, 22128, "tcp"},
+{"wnn6", {NULL}, 22273, "tcp"},
+{"wnn6", {NULL}, 22273, "udp"},
+{"cis", {NULL}, 22305, "tcp"},
+{"cis", {NULL}, 22305, "udp"},
+{"cis-secure", {NULL}, 22343, "tcp"},
+{"cis-secure", {NULL}, 22343, "udp"},
+{"WibuKey", {NULL}, 22347, "tcp"},
+{"WibuKey", {NULL}, 22347, "udp"},
+{"CodeMeter", {NULL}, 22350, "tcp"},
+{"CodeMeter", {NULL}, 22350, "udp"},
+{"vocaltec-wconf", {NULL}, 22555, "tcp"},
+{"vocaltec-phone", {NULL}, 22555, "udp"},
+{"talikaserver", {NULL}, 22763, "tcp"},
+{"talikaserver", {NULL}, 22763, "udp"},
+{"aws-brf", {NULL}, 22800, "tcp"},
+{"aws-brf", {NULL}, 22800, "udp"},
+{"brf-gw", {NULL}, 22951, "tcp"},
+{"brf-gw", {NULL}, 22951, "udp"},
+{"inovaport1", {NULL}, 23000, "tcp"},
+{"inovaport1", {NULL}, 23000, "udp"},
+{"inovaport2", {NULL}, 23001, "tcp"},
+{"inovaport2", {NULL}, 23001, "udp"},
+{"inovaport3", {NULL}, 23002, "tcp"},
+{"inovaport3", {NULL}, 23002, "udp"},
+{"inovaport4", {NULL}, 23003, "tcp"},
+{"inovaport4", {NULL}, 23003, "udp"},
+{"inovaport5", {NULL}, 23004, "tcp"},
+{"inovaport5", {NULL}, 23004, "udp"},
+{"inovaport6", {NULL}, 23005, "tcp"},
+{"inovaport6", {NULL}, 23005, "udp"},
+{"s102", {NULL}, 23272, "udp"},
+{"elxmgmt", {NULL}, 23333, "tcp"},
+{"elxmgmt", {NULL}, 23333, "udp"},
+{"novar-dbase", {NULL}, 23400, "tcp"},
+{"novar-dbase", {NULL}, 23400, "udp"},
+{"novar-alarm", {NULL}, 23401, "tcp"},
+{"novar-alarm", {NULL}, 23401, "udp"},
+{"novar-global", {NULL}, 23402, "tcp"},
+{"novar-global", {NULL}, 23402, "udp"},
+{"aequus", {NULL}, 23456, "tcp"},
+{"aequus-alt", {NULL}, 23457, "tcp"},
+{"med-ltp", {NULL}, 24000, "tcp"},
+{"med-ltp", {NULL}, 24000, "udp"},
+{"med-fsp-rx", {NULL}, 24001, "tcp"},
+{"med-fsp-rx", {NULL}, 24001, "udp"},
+{"med-fsp-tx", {NULL}, 24002, "tcp"},
+{"med-fsp-tx", {NULL}, 24002, "udp"},
+{"med-supp", {NULL}, 24003, "tcp"},
+{"med-supp", {NULL}, 24003, "udp"},
+{"med-ovw", {NULL}, 24004, "tcp"},
+{"med-ovw", {NULL}, 24004, "udp"},
+{"med-ci", {NULL}, 24005, "tcp"},
+{"med-ci", {NULL}, 24005, "udp"},
+{"med-net-svc", {NULL}, 24006, "tcp"},
+{"med-net-svc", {NULL}, 24006, "udp"},
+{"filesphere", {NULL}, 24242, "tcp"},
+{"filesphere", {NULL}, 24242, "udp"},
+{"vista-4gl", {NULL}, 24249, "tcp"},
+{"vista-4gl", {NULL}, 24249, "udp"},
+{"ild", {NULL}, 24321, "tcp"},
+{"ild", {NULL}, 24321, "udp"},
+{"intel_rci", {NULL}, 24386, "tcp"},
+{"intel_rci", {NULL}, 24386, "udp"},
+{"tonidods", {NULL}, 24465, "tcp"},
+{"tonidods", {NULL}, 24465, "udp"},
+{"binkp", {NULL}, 24554, "tcp"},
+{"binkp", {NULL}, 24554, "udp"},
+{"canditv", {NULL}, 24676, "tcp"},
+{"canditv", {NULL}, 24676, "udp"},
+{"flashfiler", {NULL}, 24677, "tcp"},
+{"flashfiler", {NULL}, 24677, "udp"},
+{"proactivate", {NULL}, 24678, "tcp"},
+{"proactivate", {NULL}, 24678, "udp"},
+{"tcc-http", {NULL}, 24680, "tcp"},
+{"tcc-http", {NULL}, 24680, "udp"},
+{"cslg", {NULL}, 24754, "tcp"},
+{"find", {NULL}, 24922, "tcp"},
+{"find", {NULL}, 24922, "udp"},
+{"icl-twobase1", {NULL}, 25000, "tcp"},
+{"icl-twobase1", {NULL}, 25000, "udp"},
+{"icl-twobase2", {NULL}, 25001, "tcp"},
+{"icl-twobase2", {NULL}, 25001, "udp"},
+{"icl-twobase3", {NULL}, 25002, "tcp"},
+{"icl-twobase3", {NULL}, 25002, "udp"},
+{"icl-twobase4", {NULL}, 25003, "tcp"},
+{"icl-twobase4", {NULL}, 25003, "udp"},
+{"icl-twobase5", {NULL}, 25004, "tcp"},
+{"icl-twobase5", {NULL}, 25004, "udp"},
+{"icl-twobase6", {NULL}, 25005, "tcp"},
+{"icl-twobase6", {NULL}, 25005, "udp"},
+{"icl-twobase7", {NULL}, 25006, "tcp"},
+{"icl-twobase7", {NULL}, 25006, "udp"},
+{"icl-twobase8", {NULL}, 25007, "tcp"},
+{"icl-twobase8", {NULL}, 25007, "udp"},
+{"icl-twobase9", {NULL}, 25008, "tcp"},
+{"icl-twobase9", {NULL}, 25008, "udp"},
+{"icl-twobase10", {NULL}, 25009, "tcp"},
+{"icl-twobase10", {NULL}, 25009, "udp"},
+{"rna", {NULL}, 25471, "sctp"},
+{"sauterdongle", {NULL}, 25576, "tcp"},
+{"vocaltec-hos", {NULL}, 25793, "tcp"},
+{"vocaltec-hos", {NULL}, 25793, "udp"},
+{"tasp-net", {NULL}, 25900, "tcp"},
+{"tasp-net", {NULL}, 25900, "udp"},
+{"niobserver", {NULL}, 25901, "tcp"},
+{"niobserver", {NULL}, 25901, "udp"},
+{"nilinkanalyst", {NULL}, 25902, "tcp"},
+{"nilinkanalyst", {NULL}, 25902, "udp"},
+{"niprobe", {NULL}, 25903, "tcp"},
+{"niprobe", {NULL}, 25903, "udp"},
+{"quake", {NULL}, 26000, "tcp"},
+{"quake", {NULL}, 26000, "udp"},
+{"scscp", {NULL}, 26133, "tcp"},
+{"scscp", {NULL}, 26133, "udp"},
+{"wnn6-ds", {NULL}, 26208, "tcp"},
+{"wnn6-ds", {NULL}, 26208, "udp"},
+{"ezproxy", {NULL}, 26260, "tcp"},
+{"ezproxy", {NULL}, 26260, "udp"},
+{"ezmeeting", {NULL}, 26261, "tcp"},
+{"ezmeeting", {NULL}, 26261, "udp"},
+{"k3software-svr", {NULL}, 26262, "tcp"},
+{"k3software-svr", {NULL}, 26262, "udp"},
+{"k3software-cli", {NULL}, 26263, "tcp"},
+{"k3software-cli", {NULL}, 26263, "udp"},
+{"exoline-tcp", {NULL}, 26486, "tcp"},
+{"exoline-udp", {NULL}, 26486, "udp"},
+{"exoconfig", {NULL}, 26487, "tcp"},
+{"exoconfig", {NULL}, 26487, "udp"},
+{"exonet", {NULL}, 26489, "tcp"},
+{"exonet", {NULL}, 26489, "udp"},
+{"imagepump", {NULL}, 27345, "tcp"},
+{"imagepump", {NULL}, 27345, "udp"},
+{"jesmsjc", {NULL}, 27442, "tcp"},
+{"jesmsjc", {NULL}, 27442, "udp"},
+{"kopek-httphead", {NULL}, 27504, "tcp"},
+{"kopek-httphead", {NULL}, 27504, "udp"},
+{"ars-vista", {NULL}, 27782, "tcp"},
+{"ars-vista", {NULL}, 27782, "udp"},
+{"tw-auth-key", {NULL}, 27999, "tcp"},
+{"tw-auth-key", {NULL}, 27999, "udp"},
+{"nxlmd", {NULL}, 28000, "tcp"},
+{"nxlmd", {NULL}, 28000, "udp"},
+{"pqsp", {NULL}, 28001, "tcp"},
+{"siemensgsm", {NULL}, 28240, "tcp"},
+{"siemensgsm", {NULL}, 28240, "udp"},
+{"sgsap", {NULL}, 29118, "sctp"},
+{"otmp", {NULL}, 29167, "tcp"},
+{"otmp", {NULL}, 29167, "udp"},
+{"sbcap", {NULL}, 29168, "sctp"},
+{"iuhsctpassoc", {NULL}, 29169, "sctp"},
+{"pago-services1", {NULL}, 30001, "tcp"},
+{"pago-services1", {NULL}, 30001, "udp"},
+{"pago-services2", {NULL}, 30002, "tcp"},
+{"pago-services2", {NULL}, 30002, "udp"},
+{"kingdomsonline", {NULL}, 30260, "tcp"},
+{"kingdomsonline", {NULL}, 30260, "udp"},
+{"ovobs", {NULL}, 30999, "tcp"},
+{"ovobs", {NULL}, 30999, "udp"},
+{"autotrac-acp", {NULL}, 31020, "tcp"},
+{"yawn", {NULL}, 31029, "udp"},
+{"xqosd", {NULL}, 31416, "tcp"},
+{"xqosd", {NULL}, 31416, "udp"},
+{"tetrinet", {NULL}, 31457, "tcp"},
+{"tetrinet", {NULL}, 31457, "udp"},
+{"lm-mon", {NULL}, 31620, "tcp"},
+{"lm-mon", {NULL}, 31620, "udp"},
+{"dsx_monitor", {NULL}, 31685, "tcp"},
+{"gamesmith-port", {NULL}, 31765, "tcp"},
+{"gamesmith-port", {NULL}, 31765, "udp"},
+{"iceedcp_tx", {NULL}, 31948, "tcp"},
+{"iceedcp_tx", {NULL}, 31948, "udp"},
+{"iceedcp_rx", {NULL}, 31949, "tcp"},
+{"iceedcp_rx", {NULL}, 31949, "udp"},
+{"iracinghelper", {NULL}, 32034, "tcp"},
+{"iracinghelper", {NULL}, 32034, "udp"},
+{"t1distproc60", {NULL}, 32249, "tcp"},
+{"t1distproc60", {NULL}, 32249, "udp"},
+{"apm-link", {NULL}, 32483, "tcp"},
+{"apm-link", {NULL}, 32483, "udp"},
+{"sec-ntb-clnt", {NULL}, 32635, "tcp"},
+{"sec-ntb-clnt", {NULL}, 32635, "udp"},
+{"DMExpress", {NULL}, 32636, "tcp"},
+{"DMExpress", {NULL}, 32636, "udp"},
+{"filenet-powsrm", {NULL}, 32767, "tcp"},
+{"filenet-powsrm", {NULL}, 32767, "udp"},
+{"filenet-tms", {NULL}, 32768, "tcp"},
+{"filenet-tms", {NULL}, 32768, "udp"},
+{"filenet-rpc", {NULL}, 32769, "tcp"},
+{"filenet-rpc", {NULL}, 32769, "udp"},
+{"filenet-nch", {NULL}, 32770, "tcp"},
+{"filenet-nch", {NULL}, 32770, "udp"},
+{"filenet-rmi", {NULL}, 32771, "tcp"},
+{"filenet-rmi", {NULL}, 32771, "udp"},
+{"filenet-pa", {NULL}, 32772, "tcp"},
+{"filenet-pa", {NULL}, 32772, "udp"},
+{"filenet-cm", {NULL}, 32773, "tcp"},
+{"filenet-cm", {NULL}, 32773, "udp"},
+{"filenet-re", {NULL}, 32774, "tcp"},
+{"filenet-re", {NULL}, 32774, "udp"},
+{"filenet-pch", {NULL}, 32775, "tcp"},
+{"filenet-pch", {NULL}, 32775, "udp"},
+{"filenet-peior", {NULL}, 32776, "tcp"},
+{"filenet-peior", {NULL}, 32776, "udp"},
+{"filenet-obrok", {NULL}, 32777, "tcp"},
+{"filenet-obrok", {NULL}, 32777, "udp"},
+{"mlsn", {NULL}, 32801, "tcp"},
+{"mlsn", {NULL}, 32801, "udp"},
+{"retp", {NULL}, 32811, "tcp"},
+{"idmgratm", {NULL}, 32896, "tcp"},
+{"idmgratm", {NULL}, 32896, "udp"},
+{"aurora-balaena", {NULL}, 33123, "tcp"},
+{"aurora-balaena", {NULL}, 33123, "udp"},
+{"diamondport", {NULL}, 33331, "tcp"},
+{"diamondport", {NULL}, 33331, "udp"},
+{"dgi-serv", {NULL}, 33333, "tcp"},
+{"traceroute", {NULL}, 33434, "tcp"},
+{"traceroute", {NULL}, 33434, "udp"},
+{"snip-slave", {NULL}, 33656, "tcp"},
+{"snip-slave", {NULL}, 33656, "udp"},
+{"turbonote-2", {NULL}, 34249, "tcp"},
+{"turbonote-2", {NULL}, 34249, "udp"},
+{"p-net-local", {NULL}, 34378, "tcp"},
+{"p-net-local", {NULL}, 34378, "udp"},
+{"p-net-remote", {NULL}, 34379, "tcp"},
+{"p-net-remote", {NULL}, 34379, "udp"},
+{"dhanalakshmi", {NULL}, 34567, "tcp"},
+{"profinet-rt", {NULL}, 34962, "tcp"},
+{"profinet-rt", {NULL}, 34962, "udp"},
+{"profinet-rtm", {NULL}, 34963, "tcp"},
+{"profinet-rtm", {NULL}, 34963, "udp"},
+{"profinet-cm", {NULL}, 34964, "tcp"},
+{"profinet-cm", {NULL}, 34964, "udp"},
+{"ethercat", {NULL}, 34980, "tcp"},
+{"ethercat", {NULL}, 34980, "udp"},
+{"allpeers", {NULL}, 36001, "tcp"},
+{"allpeers", {NULL}, 36001, "udp"},
+{"s1-control", {NULL}, 36412, "sctp"},
+{"x2-control", {NULL}, 36422, "sctp"},
+{"m2ap", {NULL}, 36443, "sctp"},
+{"m3ap", {NULL}, 36444, "sctp"},
+{"kastenxpipe", {NULL}, 36865, "tcp"},
+{"kastenxpipe", {NULL}, 36865, "udp"},
+{"neckar", {NULL}, 37475, "tcp"},
+{"neckar", {NULL}, 37475, "udp"},
+{"unisys-eportal", {NULL}, 37654, "tcp"},
+{"unisys-eportal", {NULL}, 37654, "udp"},
+{"galaxy7-data", {NULL}, 38201, "tcp"},
+{"galaxy7-data", {NULL}, 38201, "udp"},
+{"fairview", {NULL}, 38202, "tcp"},
+{"fairview", {NULL}, 38202, "udp"},
+{"agpolicy", {NULL}, 38203, "tcp"},
+{"agpolicy", {NULL}, 38203, "udp"},
+{"turbonote-1", {NULL}, 39681, "tcp"},
+{"turbonote-1", {NULL}, 39681, "udp"},
+{"safetynetp", {NULL}, 40000, "tcp"},
+{"safetynetp", {NULL}, 40000, "udp"},
+{"cscp", {NULL}, 40841, "tcp"},
+{"cscp", {NULL}, 40841, "udp"},
+{"csccredir", {NULL}, 40842, "tcp"},
+{"csccredir", {NULL}, 40842, "udp"},
+{"csccfirewall", {NULL}, 40843, "tcp"},
+{"csccfirewall", {NULL}, 40843, "udp"},
+{"ortec-disc", {NULL}, 40853, "udp"},
+{"fs-qos", {NULL}, 41111, "tcp"},
+{"fs-qos", {NULL}, 41111, "udp"},
+{"tentacle", {NULL}, 41121, "tcp"},
+{"crestron-cip", {NULL}, 41794, "tcp"},
+{"crestron-cip", {NULL}, 41794, "udp"},
+{"crestron-ctp", {NULL}, 41795, "tcp"},
+{"crestron-ctp", {NULL}, 41795, "udp"},
+{"candp", {NULL}, 42508, "tcp"},
+{"candp", {NULL}, 42508, "udp"},
+{"candrp", {NULL}, 42509, "tcp"},
+{"candrp", {NULL}, 42509, "udp"},
+{"caerpc", {NULL}, 42510, "tcp"},
+{"caerpc", {NULL}, 42510, "udp"},
+{"reachout", {NULL}, 43188, "tcp"},
+{"reachout", {NULL}, 43188, "udp"},
+{"ndm-agent-port", {NULL}, 43189, "tcp"},
+{"ndm-agent-port", {NULL}, 43189, "udp"},
+{"ip-provision", {NULL}, 43190, "tcp"},
+{"ip-provision", {NULL}, 43190, "udp"},
+{"noit-transport", {NULL}, 43191, "tcp"},
+{"ew-mgmt", {NULL}, 43440, "tcp"},
+{"ew-disc-cmd", {NULL}, 43440, "udp"},
+{"ciscocsdb", {NULL}, 43441, "tcp"},
+{"ciscocsdb", {NULL}, 43441, "udp"},
+{"pmcd", {NULL}, 44321, "tcp"},
+{"pmcd", {NULL}, 44321, "udp"},
+{"pmcdproxy", {NULL}, 44322, "tcp"},
+{"pmcdproxy", {NULL}, 44322, "udp"},
+{"pcp", {NULL}, 44323, "udp"},
+{"rbr-debug", {NULL}, 44553, "tcp"},
+{"rbr-debug", {NULL}, 44553, "udp"},
+{"EtherNet/IP-2", {NULL}, 44818, "tcp"},
+{"EtherNet/IP-2", {NULL}, 44818, "udp"},
+{"invision-ag", {NULL}, 45054, "tcp"},
+{"invision-ag", {NULL}, 45054, "udp"},
+{"eba", {NULL}, 45678, "tcp"},
+{"eba", {NULL}, 45678, "udp"},
+{"qdb2service", {NULL}, 45825, "tcp"},
+{"qdb2service", {NULL}, 45825, "udp"},
+{"ssr-servermgr", {NULL}, 45966, "tcp"},
+{"ssr-servermgr", {NULL}, 45966, "udp"},
+{"mediabox", {NULL}, 46999, "tcp"},
+{"mediabox", {NULL}, 46999, "udp"},
+{"mbus", {NULL}, 47000, "tcp"},
+{"mbus", {NULL}, 47000, "udp"},
+{"winrm", {NULL}, 47001, "tcp"},
+{"dbbrowse", {NULL}, 47557, "tcp"},
+{"dbbrowse", {NULL}, 47557, "udp"},
+{"directplaysrvr", {NULL}, 47624, "tcp"},
+{"directplaysrvr", {NULL}, 47624, "udp"},
+{"ap", {NULL}, 47806, "tcp"},
+{"ap", {NULL}, 47806, "udp"},
+{"bacnet", {NULL}, 47808, "tcp"},
+{"bacnet", {NULL}, 47808, "udp"},
+{"nimcontroller", {NULL}, 48000, "tcp"},
+{"nimcontroller", {NULL}, 48000, "udp"},
+{"nimspooler", {NULL}, 48001, "tcp"},
+{"nimspooler", {NULL}, 48001, "udp"},
+{"nimhub", {NULL}, 48002, "tcp"},
+{"nimhub", {NULL}, 48002, "udp"},
+{"nimgtw", {NULL}, 48003, "tcp"},
+{"nimgtw", {NULL}, 48003, "udp"},
+{"nimbusdb", {NULL}, 48004, "tcp"},
+{"nimbusdbctrl", {NULL}, 48005, "tcp"},
+{"3gpp-cbsp", {NULL}, 48049, "tcp"},
+{"isnetserv", {NULL}, 48128, "tcp"},
+{"isnetserv", {NULL}, 48128, "udp"},
+{"blp5", {NULL}, 48129, "tcp"},
+{"blp5", {NULL}, 48129, "udp"},
+{"com-bardac-dw", {NULL}, 48556, "tcp"},
+{"com-bardac-dw", {NULL}, 48556, "udp"},
+{"iqobject", {NULL}, 48619, "tcp"},
+{"iqobject", {NULL}, 48619, "udp"},
+#endif /* USE_IANA_REGISTERED_PORTS */
+{ NULL, {NULL}, 0, NULL }
+};
+
+struct servent *getservbyport(int port, const char *proto)
+{
+ unsigned short u_port;
+ const char *protocol = NULL;
+ int i, error = 0;
+
+ u_port = ntohs((unsigned short)port);
+
+ if (proto)
+ {
+ switch (strlen(proto)) {
+ case 3:
+ if (!strncasecmp(proto, "tcp", 3))
+ protocol = "tcp";
+ else if (!strncasecmp(proto, "udp", 3))
+ protocol = "udp";
+ else
+ error = WSAEFAULT;
+ break;
+ case 4:
+ if (!strncasecmp(proto, "sctp", 4))
+ protocol = "sctp";
+ else if (!strncasecmp(proto, "dccp", 4))
+ protocol = "dccp";
+ else
+ error = WSAEFAULT;
+ break;
+ default:
+ error = WSAEFAULT;
+ }
+ }
+
+ if (!error)
+ {
+ for (i = 0; i < (sizeof(IANAports) / sizeof(IANAports[0])) - 1; i++)
+ {
+ if (u_port == IANAports[i].s_port)
+ {
+ if (!protocol || !strcasecmp(protocol, IANAports[i].s_proto))
+ return (struct servent *)&IANAports[i];
+ }
+ }
+ error = WSANO_DATA;
+ }
+
+ SET_SOCKERRNO(error);
+ return NULL;
+}
+
+#endif /* _WIN32_WCE */
diff --git a/contrib/libs/c-ares/ares_platform.h b/contrib/libs/c-ares/ares_platform.h
index cf89eb21a6..e6885ae546 100644
--- a/contrib/libs/c-ares/ares_platform.h
+++ b/contrib/libs/c-ares/ares_platform.h
@@ -1,43 +1,43 @@
-#ifndef HEADER_CARES_PLATFORM_H
-#define HEADER_CARES_PLATFORM_H
-
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- * Copyright (C) 2004 - 2011 by Daniel Stenberg et al
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#if defined(WIN32) && !defined(MSDOS)
-
-typedef enum {
- WIN_UNKNOWN,
- WIN_3X,
- WIN_9X,
- WIN_NT,
- WIN_CE
-} win_platform;
-
-win_platform ares__getplatform(void);
-
-#endif
-
-#if defined(_WIN32_WCE)
-
-struct servent *getservbyport(int port, const char *proto);
-
-#endif
-
-#endif /* HEADER_CARES_PLATFORM_H */
+#ifndef HEADER_CARES_PLATFORM_H
+#define HEADER_CARES_PLATFORM_H
+
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ * Copyright (C) 2004 - 2011 by Daniel Stenberg et al
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#if defined(WIN32) && !defined(MSDOS)
+
+typedef enum {
+ WIN_UNKNOWN,
+ WIN_3X,
+ WIN_9X,
+ WIN_NT,
+ WIN_CE
+} win_platform;
+
+win_platform ares__getplatform(void);
+
+#endif
+
+#if defined(_WIN32_WCE)
+
+struct servent *getservbyport(int port, const char *proto);
+
+#endif
+
+#endif /* HEADER_CARES_PLATFORM_H */
diff --git a/contrib/libs/c-ares/ares_private.h b/contrib/libs/c-ares/ares_private.h
index b54ab41c93..3312ed1932 100644
--- a/contrib/libs/c-ares/ares_private.h
+++ b/contrib/libs/c-ares/ares_private.h
@@ -1,48 +1,48 @@
-#ifndef __ARES_PRIVATE_H
-#define __ARES_PRIVATE_H
-
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- * Copyright (C) 2004-2010 by Daniel Stenberg
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-/*
- * Define WIN32 when build target is Win32 API
- */
-
-#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
-#define WIN32
-#endif
-
-#ifdef HAVE_NETINET_IN_H
-#include <netinet/in.h>
-#endif
-
-#ifdef WATT32
-#include <tcp.h>
-#include <sys/ioctl.h>
-#define writev(s,v,c) writev_s(s,v,c)
-#define HAVE_WRITEV 1
-#endif
-
-#define DEFAULT_TIMEOUT 5000 /* milliseconds */
-#define DEFAULT_TRIES 4
-#ifndef INADDR_NONE
-#define INADDR_NONE 0xffffffff
-#endif
-
+#ifndef __ARES_PRIVATE_H
+#define __ARES_PRIVATE_H
+
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ * Copyright (C) 2004-2010 by Daniel Stenberg
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+/*
+ * Define WIN32 when build target is Win32 API
+ */
+
+#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
+#define WIN32
+#endif
+
+#ifdef HAVE_NETINET_IN_H
+#include <netinet/in.h>
+#endif
+
+#ifdef WATT32
+#include <tcp.h>
+#include <sys/ioctl.h>
+#define writev(s,v,c) writev_s(s,v,c)
+#define HAVE_WRITEV 1
+#endif
+
+#define DEFAULT_TIMEOUT 5000 /* milliseconds */
+#define DEFAULT_TRIES 4
+#ifndef INADDR_NONE
+#define INADDR_NONE 0xffffffff
+#endif
+
#ifdef CARES_EXPOSE_STATICS
/* Make some internal functions visible for testing */
#define STATIC_TESTABLE
@@ -55,8 +55,8 @@
*/
#define CARES_INADDR_CAST(type, var) ((type)((void *)var))
-#if defined(WIN32) && !defined(WATT32)
-
+#if defined(WIN32) && !defined(WATT32)
+
#define WIN_NS_9X "System\\CurrentControlSet\\Services\\VxD\\MSTCP"
#define WIN_NS_NT_KEY "System\\CurrentControlSet\\Services\\Tcpip\\Parameters"
#define WIN_DNSCLIENT "Software\\Policies\\Microsoft\\System\\DNSClient"
@@ -70,263 +70,263 @@
#define INTERFACES_KEY "Interfaces"
#define DOMAIN_KEY "Domain"
#define DHCPDOMAIN_KEY "DhcpDomain"
-
-#elif defined(WATT32)
-
-#define PATH_RESOLV_CONF "/dev/ENV/etc/resolv.conf"
-
-#elif defined(NETWARE)
-
-#define PATH_RESOLV_CONF "sys:/etc/resolv.cfg"
-#define PATH_HOSTS "sys:/etc/hosts"
-
-#elif defined(__riscos__)
-
-#define PATH_HOSTS "InetDBase:Hosts"
-
-#else
-
-#define PATH_RESOLV_CONF "/etc/resolv.conf"
-#ifdef ETC_INET
-#define PATH_HOSTS "/etc/inet/hosts"
-#else
-#define PATH_HOSTS "/etc/hosts"
-#endif
-
-#endif
-
-#define ARES_ID_KEY_LEN 31
-
-#include "ares_ipv6.h"
-#include "ares_llist.h"
-
-#ifndef HAVE_GETENV
-# include "ares_getenv.h"
-# define getenv(ptr) ares_getenv(ptr)
-#endif
-
+
+#elif defined(WATT32)
+
+#define PATH_RESOLV_CONF "/dev/ENV/etc/resolv.conf"
+
+#elif defined(NETWARE)
+
+#define PATH_RESOLV_CONF "sys:/etc/resolv.cfg"
+#define PATH_HOSTS "sys:/etc/hosts"
+
+#elif defined(__riscos__)
+
+#define PATH_HOSTS "InetDBase:Hosts"
+
+#else
+
+#define PATH_RESOLV_CONF "/etc/resolv.conf"
+#ifdef ETC_INET
+#define PATH_HOSTS "/etc/inet/hosts"
+#else
+#define PATH_HOSTS "/etc/hosts"
+#endif
+
+#endif
+
+#define ARES_ID_KEY_LEN 31
+
+#include "ares_ipv6.h"
+#include "ares_llist.h"
+
+#ifndef HAVE_GETENV
+# include "ares_getenv.h"
+# define getenv(ptr) ares_getenv(ptr)
+#endif
+
#include "ares_strdup.h"
#include "ares_strsplit.h"
-
-#ifndef HAVE_STRCASECMP
-# include "ares_strcasecmp.h"
-# define strcasecmp(p1,p2) ares_strcasecmp(p1,p2)
-#endif
-
-#ifndef HAVE_STRNCASECMP
-# include "ares_strcasecmp.h"
-# define strncasecmp(p1,p2,n) ares_strncasecmp(p1,p2,n)
-#endif
-
-#ifndef HAVE_WRITEV
-# include "ares_writev.h"
-# define writev(s,ptr,cnt) ares_writev(s,ptr,cnt)
-#endif
-
-/********* EDNS defines section ******/
-#define EDNSPACKETSZ 1280 /* Reasonable UDP payload size, as suggested
- in RFC2671 */
-#define MAXENDSSZ 4096 /* Maximum (local) limit for edns packet size */
-#define EDNSFIXEDSZ 11 /* Size of EDNS header */
-/********* EDNS defines section ******/
-
-struct ares_addr {
- int family;
- union {
- struct in_addr addr4;
- struct ares_in6_addr addr6;
- } addr;
+
+#ifndef HAVE_STRCASECMP
+# include "ares_strcasecmp.h"
+# define strcasecmp(p1,p2) ares_strcasecmp(p1,p2)
+#endif
+
+#ifndef HAVE_STRNCASECMP
+# include "ares_strcasecmp.h"
+# define strncasecmp(p1,p2,n) ares_strncasecmp(p1,p2,n)
+#endif
+
+#ifndef HAVE_WRITEV
+# include "ares_writev.h"
+# define writev(s,ptr,cnt) ares_writev(s,ptr,cnt)
+#endif
+
+/********* EDNS defines section ******/
+#define EDNSPACKETSZ 1280 /* Reasonable UDP payload size, as suggested
+ in RFC2671 */
+#define MAXENDSSZ 4096 /* Maximum (local) limit for edns packet size */
+#define EDNSFIXEDSZ 11 /* Size of EDNS header */
+/********* EDNS defines section ******/
+
+struct ares_addr {
+ int family;
+ union {
+ struct in_addr addr4;
+ struct ares_in6_addr addr6;
+ } addr;
int udp_port; /* stored in network order */
int tcp_port; /* stored in network order */
-};
-#define addrV4 addr.addr4
-#define addrV6 addr.addr6
-
-struct query;
-
-struct send_request {
- /* Remaining data to send */
- const unsigned char *data;
- size_t len;
-
- /* The query for which we're sending this data */
- struct query* owner_query;
- /* The buffer we're using, if we have our own copy of the packet */
- unsigned char *data_storage;
-
- /* Next request in queue */
- struct send_request *next;
-};
-
-struct server_state {
- struct ares_addr addr;
- ares_socket_t udp_socket;
- ares_socket_t tcp_socket;
-
- /* Mini-buffer for reading the length word */
- unsigned char tcp_lenbuf[2];
- int tcp_lenbuf_pos;
- int tcp_length;
-
- /* Buffer for reading actual TCP data */
- unsigned char *tcp_buffer;
- int tcp_buffer_pos;
-
- /* TCP output queue */
- struct send_request *qhead;
- struct send_request *qtail;
-
- /* Which incarnation of this connection is this? We don't want to
- * retransmit requests into the very same socket, but if the server
- * closes on us and we re-open the connection, then we do want to
- * re-send. */
- int tcp_connection_generation;
-
- /* Circular, doubly-linked list of outstanding queries to this server */
- struct list_node queries_to_server;
-
- /* Link back to owning channel */
- ares_channel channel;
-
- /* Is this server broken? We mark connections as broken when a
- * request that is queued for sending times out.
- */
- int is_broken;
-};
-
-/* State to represent a DNS query */
-struct query {
- /* Query ID from qbuf, for faster lookup, and current timeout */
- unsigned short qid;
- struct timeval timeout;
-
- /*
- * Links for the doubly-linked lists in which we insert a query.
- * These circular, doubly-linked lists that are hash-bucketed based
- * the attributes we care about, help making most important
- * operations O(1).
- */
- struct list_node queries_by_qid; /* hopefully in same cache line as qid */
- struct list_node queries_by_timeout;
- struct list_node queries_to_server;
- struct list_node all_queries;
-
- /* Query buf with length at beginning, for TCP transmission */
- unsigned char *tcpbuf;
- int tcplen;
-
- /* Arguments passed to ares_send() (qbuf points into tcpbuf) */
- const unsigned char *qbuf;
- int qlen;
- ares_callback callback;
- void *arg;
-
- /* Query status */
- int try_count; /* Number of times we tried this query already. */
- int server; /* Server this query has last been sent to. */
- struct query_server_info *server_info; /* per-server state */
- int using_tcp;
- int error_status;
- int timeouts; /* number of timeouts we saw for this request */
-};
-
-/* Per-server state for a query */
-struct query_server_info {
- int skip_server; /* should we skip server, due to errors, etc? */
- int tcp_connection_generation; /* into which TCP connection did we send? */
-};
-
-/* An IP address pattern; matches an IP address X if X & mask == addr */
-#define PATTERN_MASK 0x1
-#define PATTERN_CIDR 0x2
-
-struct apattern {
- union
- {
- struct in_addr addr4;
- struct ares_in6_addr addr6;
- } addr;
- union
- {
- struct in_addr addr4;
- struct ares_in6_addr addr6;
- unsigned short bits;
- } mask;
- int family;
- unsigned short type;
-};
-
-typedef struct rc4_key
-{
- unsigned char state[256];
- unsigned char x;
- unsigned char y;
-} rc4_key;
-
-struct ares_channeldata {
- /* Configuration data */
- int flags;
- int timeout; /* in milliseconds */
+};
+#define addrV4 addr.addr4
+#define addrV6 addr.addr6
+
+struct query;
+
+struct send_request {
+ /* Remaining data to send */
+ const unsigned char *data;
+ size_t len;
+
+ /* The query for which we're sending this data */
+ struct query* owner_query;
+ /* The buffer we're using, if we have our own copy of the packet */
+ unsigned char *data_storage;
+
+ /* Next request in queue */
+ struct send_request *next;
+};
+
+struct server_state {
+ struct ares_addr addr;
+ ares_socket_t udp_socket;
+ ares_socket_t tcp_socket;
+
+ /* Mini-buffer for reading the length word */
+ unsigned char tcp_lenbuf[2];
+ int tcp_lenbuf_pos;
+ int tcp_length;
+
+ /* Buffer for reading actual TCP data */
+ unsigned char *tcp_buffer;
+ int tcp_buffer_pos;
+
+ /* TCP output queue */
+ struct send_request *qhead;
+ struct send_request *qtail;
+
+ /* Which incarnation of this connection is this? We don't want to
+ * retransmit requests into the very same socket, but if the server
+ * closes on us and we re-open the connection, then we do want to
+ * re-send. */
+ int tcp_connection_generation;
+
+ /* Circular, doubly-linked list of outstanding queries to this server */
+ struct list_node queries_to_server;
+
+ /* Link back to owning channel */
+ ares_channel channel;
+
+ /* Is this server broken? We mark connections as broken when a
+ * request that is queued for sending times out.
+ */
+ int is_broken;
+};
+
+/* State to represent a DNS query */
+struct query {
+ /* Query ID from qbuf, for faster lookup, and current timeout */
+ unsigned short qid;
+ struct timeval timeout;
+
+ /*
+ * Links for the doubly-linked lists in which we insert a query.
+ * These circular, doubly-linked lists that are hash-bucketed based
+ * the attributes we care about, help making most important
+ * operations O(1).
+ */
+ struct list_node queries_by_qid; /* hopefully in same cache line as qid */
+ struct list_node queries_by_timeout;
+ struct list_node queries_to_server;
+ struct list_node all_queries;
+
+ /* Query buf with length at beginning, for TCP transmission */
+ unsigned char *tcpbuf;
+ int tcplen;
+
+ /* Arguments passed to ares_send() (qbuf points into tcpbuf) */
+ const unsigned char *qbuf;
+ int qlen;
+ ares_callback callback;
+ void *arg;
+
+ /* Query status */
+ int try_count; /* Number of times we tried this query already. */
+ int server; /* Server this query has last been sent to. */
+ struct query_server_info *server_info; /* per-server state */
+ int using_tcp;
+ int error_status;
+ int timeouts; /* number of timeouts we saw for this request */
+};
+
+/* Per-server state for a query */
+struct query_server_info {
+ int skip_server; /* should we skip server, due to errors, etc? */
+ int tcp_connection_generation; /* into which TCP connection did we send? */
+};
+
+/* An IP address pattern; matches an IP address X if X & mask == addr */
+#define PATTERN_MASK 0x1
+#define PATTERN_CIDR 0x2
+
+struct apattern {
+ union
+ {
+ struct in_addr addr4;
+ struct ares_in6_addr addr6;
+ } addr;
+ union
+ {
+ struct in_addr addr4;
+ struct ares_in6_addr addr6;
+ unsigned short bits;
+ } mask;
+ int family;
+ unsigned short type;
+};
+
+typedef struct rc4_key
+{
+ unsigned char state[256];
+ unsigned char x;
+ unsigned char y;
+} rc4_key;
+
+struct ares_channeldata {
+ /* Configuration data */
+ int flags;
+ int timeout; /* in milliseconds */
int maxtimeout; /* in milliseconds */
int jitter; /* in .001 */
unsigned int jitter_rand_state;
- int tries;
- int ndots;
- int rotate; /* if true, all servers specified are used */
+ int tries;
+ int ndots;
+ int rotate; /* if true, all servers specified are used */
int udp_port; /* stored in network order */
int tcp_port; /* stored in network order */
- int socket_send_buffer_size;
- int socket_receive_buffer_size;
- char **domains;
- int ndomains;
- struct apattern *sortlist;
- int nsort;
- char *lookups;
- int ednspsz;
-
- /* For binding to local devices and/or IP addresses. Leave
- * them null/zero for no binding.
- */
- char local_dev_name[32];
- unsigned int local_ip4;
- unsigned char local_ip6[16];
-
- int optmask; /* the option bitfield passed in at init time */
-
- /* Server addresses and communications state */
- struct server_state *servers;
- int nservers;
-
- /* ID to use for next query */
- unsigned short next_id;
- /* key to use when generating new ids */
- rc4_key id_key;
-
- /* Generation number to use for the next TCP socket open/close */
- int tcp_connection_generation;
-
- /* The time at which we last called process_timeouts(). Uses integer seconds
- just to draw the line somewhere. */
- time_t last_timeout_processed;
-
- /* Last server we sent a query to. */
- int last_server;
-
- /* Circular, doubly-linked list of queries, bucketed various ways.... */
- /* All active queries in a single list: */
- struct list_node all_queries;
- /* Queries bucketed by qid, for quickly dispatching DNS responses: */
-#define ARES_QID_TABLE_SIZE 2048
- struct list_node queries_by_qid[ARES_QID_TABLE_SIZE];
- /* Queries bucketed by timeout, for quickly handling timeouts: */
-#define ARES_TIMEOUT_TABLE_SIZE 1024
- struct list_node queries_by_timeout[ARES_TIMEOUT_TABLE_SIZE];
-
- ares_sock_state_cb sock_state_cb;
- void *sock_state_cb_data;
-
- ares_sock_create_callback sock_create_cb;
- void *sock_create_cb_data;
+ int socket_send_buffer_size;
+ int socket_receive_buffer_size;
+ char **domains;
+ int ndomains;
+ struct apattern *sortlist;
+ int nsort;
+ char *lookups;
+ int ednspsz;
+
+ /* For binding to local devices and/or IP addresses. Leave
+ * them null/zero for no binding.
+ */
+ char local_dev_name[32];
+ unsigned int local_ip4;
+ unsigned char local_ip6[16];
+
+ int optmask; /* the option bitfield passed in at init time */
+
+ /* Server addresses and communications state */
+ struct server_state *servers;
+ int nservers;
+
+ /* ID to use for next query */
+ unsigned short next_id;
+ /* key to use when generating new ids */
+ rc4_key id_key;
+
+ /* Generation number to use for the next TCP socket open/close */
+ int tcp_connection_generation;
+
+ /* The time at which we last called process_timeouts(). Uses integer seconds
+ just to draw the line somewhere. */
+ time_t last_timeout_processed;
+
+ /* Last server we sent a query to. */
+ int last_server;
+
+ /* Circular, doubly-linked list of queries, bucketed various ways.... */
+ /* All active queries in a single list: */
+ struct list_node all_queries;
+ /* Queries bucketed by qid, for quickly dispatching DNS responses: */
+#define ARES_QID_TABLE_SIZE 2048
+ struct list_node queries_by_qid[ARES_QID_TABLE_SIZE];
+ /* Queries bucketed by timeout, for quickly handling timeouts: */
+#define ARES_TIMEOUT_TABLE_SIZE 1024
+ struct list_node queries_by_timeout[ARES_TIMEOUT_TABLE_SIZE];
+
+ ares_sock_state_cb sock_state_cb;
+ void *sock_state_cb_data;
+
+ ares_sock_create_callback sock_create_cb;
+ void *sock_create_cb_data;
ares_sock_config_callback sock_config_cb;
void *sock_config_cb_data;
@@ -336,8 +336,8 @@ struct ares_channeldata {
/* Path for resolv.conf file, configurable via ares_options */
char *resolvconf_path;
-};
-
+};
+
/* Does the domain end in ".onion" or ".onion."? Case-insensitive. */
int ares__is_onion_domain(const char *name);
@@ -346,23 +346,23 @@ extern void *(*ares_malloc)(size_t size);
extern void *(*ares_realloc)(void *ptr, size_t size);
extern void (*ares_free)(void *ptr);
-/* return true if now is exactly check time or later */
-int ares__timedout(struct timeval *now,
- struct timeval *check);
-
-void ares__send_query(ares_channel channel, struct query *query,
- struct timeval *now);
-void ares__close_sockets(ares_channel channel, struct server_state *server);
-int ares__get_hostent(FILE *fp, int family, struct hostent **host);
-int ares__read_line(FILE *fp, char **buf, size_t *bufsize);
-void ares__free_query(struct query *query);
-unsigned short ares__generate_new_id(rc4_key* key);
-struct timeval ares__tvnow(void);
-int ares__expand_name_for_response(const unsigned char *encoded,
- const unsigned char *abuf, int alen,
- char **s, long *enclen);
-void ares__init_servers_state(ares_channel channel);
-void ares__destroy_servers_state(ares_channel channel);
+/* return true if now is exactly check time or later */
+int ares__timedout(struct timeval *now,
+ struct timeval *check);
+
+void ares__send_query(ares_channel channel, struct query *query,
+ struct timeval *now);
+void ares__close_sockets(ares_channel channel, struct server_state *server);
+int ares__get_hostent(FILE *fp, int family, struct hostent **host);
+int ares__read_line(FILE *fp, char **buf, size_t *bufsize);
+void ares__free_query(struct query *query);
+unsigned short ares__generate_new_id(rc4_key* key);
+struct timeval ares__tvnow(void);
+int ares__expand_name_for_response(const unsigned char *encoded,
+ const unsigned char *abuf, int alen,
+ char **s, long *enclen);
+void ares__init_servers_state(ares_channel channel);
+void ares__destroy_servers_state(ares_channel channel);
int ares__parse_qtype_reply(const unsigned char* abuf, int alen, int* qtype);
int ares__single_domain(ares_channel channel, const char *name, char **s);
int ares__cat_domain(const char *name, const char *domain, char **s);
@@ -397,10 +397,10 @@ int ares__parse_into_addrinfo2(const unsigned char *abuf,
char **question_hostname,
struct ares_addrinfo *ai);
-#if 0 /* Not used */
-long ares__tvdiff(struct timeval t1, struct timeval t2);
-#endif
-
+#if 0 /* Not used */
+long ares__tvdiff(struct timeval t1, struct timeval t2);
+#endif
+
ares_socket_t ares__open_socket(ares_channel channel,
int af, int type, int protocol);
void ares__close_socket(ares_channel, ares_socket_t);
@@ -409,22 +409,22 @@ int ares__connect_socket(ares_channel channel,
const struct sockaddr *addr,
ares_socklen_t addrlen);
-#define ARES_SWAP_BYTE(a,b) \
- { unsigned char swapByte = *(a); *(a) = *(b); *(b) = swapByte; }
-
-#define SOCK_STATE_CALLBACK(c, s, r, w) \
- do { \
- if ((c)->sock_state_cb) \
- (c)->sock_state_cb((c)->sock_state_cb_data, (s), (r), (w)); \
- } WHILE_FALSE
-
-#ifdef CURLDEBUG
-/* This is low-level hard-hacking memory leak tracking and similar. Using the
- libcurl lowlevel code from within library is ugly and only works when
- c-ares is built and linked with a similarly curldebug-enabled libcurl,
- but we do this anyway for convenience. */
-#define HEADER_CURL_SETUP_ONCE_H
-#include "../lib/memdebug.h"
-#endif
-
-#endif /* __ARES_PRIVATE_H */
+#define ARES_SWAP_BYTE(a,b) \
+ { unsigned char swapByte = *(a); *(a) = *(b); *(b) = swapByte; }
+
+#define SOCK_STATE_CALLBACK(c, s, r, w) \
+ do { \
+ if ((c)->sock_state_cb) \
+ (c)->sock_state_cb((c)->sock_state_cb_data, (s), (r), (w)); \
+ } WHILE_FALSE
+
+#ifdef CURLDEBUG
+/* This is low-level hard-hacking memory leak tracking and similar. Using the
+ libcurl lowlevel code from within library is ugly and only works when
+ c-ares is built and linked with a similarly curldebug-enabled libcurl,
+ but we do this anyway for convenience. */
+#define HEADER_CURL_SETUP_ONCE_H
+#include "../lib/memdebug.h"
+#endif
+
+#endif /* __ARES_PRIVATE_H */
diff --git a/contrib/libs/c-ares/ares_process.c b/contrib/libs/c-ares/ares_process.c
index b488477f6a..25095d0f05 100644
--- a/contrib/libs/c-ares/ares_process.c
+++ b/contrib/libs/c-ares/ares_process.c
@@ -1,184 +1,184 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
* Copyright (C) 2004-2017 by Daniel Stenberg
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_SYS_UIO_H
-# include <sys/uio.h>
-#endif
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_NETINET_TCP_H
-# include <netinet/tcp.h>
-#endif
-#ifdef HAVE_NETDB_H
-# include <netdb.h>
-#endif
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_SYS_UIO_H
+# include <sys/uio.h>
+#endif
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_NETINET_TCP_H
+# include <netinet/tcp.h>
+#endif
+#ifdef HAVE_NETDB_H
+# include <netdb.h>
+#endif
#ifdef HAVE_ARPA_INET_H
# include <arpa/inet.h>
#endif
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-# include <arpa/nameser_compat.h>
-#endif
-
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-#ifdef HAVE_SYS_IOCTL_H
-# include <sys/ioctl.h>
-#endif
-#ifdef NETWARE
-# include <sys/filio.h>
-#endif
-
-#include <assert.h>
-#include <fcntl.h>
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
+# include <arpa/nameser_compat.h>
+#endif
+
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+#ifdef HAVE_SYS_IOCTL_H
+# include <sys/ioctl.h>
+#endif
+#ifdef NETWARE
+# include <sys/filio.h>
+#endif
+
+#include <assert.h>
+#include <fcntl.h>
#include <limits.h>
-
-#include "ares.h"
-#include "ares_dns.h"
-#include "ares_nowarn.h"
-#include "ares_private.h"
-
-
-static int try_again(int errnum);
-static void write_tcp_data(ares_channel channel, fd_set *write_fds,
- ares_socket_t write_fd, struct timeval *now);
-static void read_tcp_data(ares_channel channel, fd_set *read_fds,
- ares_socket_t read_fd, struct timeval *now);
-static void read_udp_packets(ares_channel channel, fd_set *read_fds,
- ares_socket_t read_fd, struct timeval *now);
-static void advance_tcp_send_queue(ares_channel channel, int whichserver,
+
+#include "ares.h"
+#include "ares_dns.h"
+#include "ares_nowarn.h"
+#include "ares_private.h"
+
+
+static int try_again(int errnum);
+static void write_tcp_data(ares_channel channel, fd_set *write_fds,
+ ares_socket_t write_fd, struct timeval *now);
+static void read_tcp_data(ares_channel channel, fd_set *read_fds,
+ ares_socket_t read_fd, struct timeval *now);
+static void read_udp_packets(ares_channel channel, fd_set *read_fds,
+ ares_socket_t read_fd, struct timeval *now);
+static void advance_tcp_send_queue(ares_channel channel, int whichserver,
ares_ssize_t num_bytes);
-static void process_timeouts(ares_channel channel, struct timeval *now);
-static void process_broken_connections(ares_channel channel,
- struct timeval *now);
-static void process_answer(ares_channel channel, unsigned char *abuf,
- int alen, int whichserver, int tcp,
- struct timeval *now);
-static void handle_error(ares_channel channel, int whichserver,
- struct timeval *now);
-static void skip_server(ares_channel channel, struct query *query,
- int whichserver);
-static void next_server(ares_channel channel, struct query *query,
- struct timeval *now);
-static int open_tcp_socket(ares_channel channel, struct server_state *server);
-static int open_udp_socket(ares_channel channel, struct server_state *server);
-static int same_questions(const unsigned char *qbuf, int qlen,
- const unsigned char *abuf, int alen);
-static int same_address(struct sockaddr *sa, struct ares_addr *aa);
-static void end_query(ares_channel channel, struct query *query, int status,
- unsigned char *abuf, int alen);
-
-/* return true if now is exactly check time or later */
-int ares__timedout(struct timeval *now,
- struct timeval *check)
-{
- long secs = (now->tv_sec - check->tv_sec);
-
- if(secs > 0)
- return 1; /* yes, timed out */
- if(secs < 0)
- return 0; /* nope, not timed out */
-
- /* if the full seconds were identical, check the sub second parts */
- return (now->tv_usec - check->tv_usec >= 0);
-}
-
-/* add the specific number of milliseconds to the time in the first argument */
+static void process_timeouts(ares_channel channel, struct timeval *now);
+static void process_broken_connections(ares_channel channel,
+ struct timeval *now);
+static void process_answer(ares_channel channel, unsigned char *abuf,
+ int alen, int whichserver, int tcp,
+ struct timeval *now);
+static void handle_error(ares_channel channel, int whichserver,
+ struct timeval *now);
+static void skip_server(ares_channel channel, struct query *query,
+ int whichserver);
+static void next_server(ares_channel channel, struct query *query,
+ struct timeval *now);
+static int open_tcp_socket(ares_channel channel, struct server_state *server);
+static int open_udp_socket(ares_channel channel, struct server_state *server);
+static int same_questions(const unsigned char *qbuf, int qlen,
+ const unsigned char *abuf, int alen);
+static int same_address(struct sockaddr *sa, struct ares_addr *aa);
+static void end_query(ares_channel channel, struct query *query, int status,
+ unsigned char *abuf, int alen);
+
+/* return true if now is exactly check time or later */
+int ares__timedout(struct timeval *now,
+ struct timeval *check)
+{
+ long secs = (now->tv_sec - check->tv_sec);
+
+ if(secs > 0)
+ return 1; /* yes, timed out */
+ if(secs < 0)
+ return 0; /* nope, not timed out */
+
+ /* if the full seconds were identical, check the sub second parts */
+ return (now->tv_usec - check->tv_usec >= 0);
+}
+
+/* add the specific number of milliseconds to the time in the first argument */
static void timeadd(struct timeval *now, int millisecs)
-{
- now->tv_sec += millisecs/1000;
- now->tv_usec += (millisecs%1000)*1000;
-
- if(now->tv_usec >= 1000000) {
- ++(now->tv_sec);
- now->tv_usec -= 1000000;
- }
-}
-
-/*
- * generic process function
- */
-static void processfds(ares_channel channel,
- fd_set *read_fds, ares_socket_t read_fd,
- fd_set *write_fds, ares_socket_t write_fd)
-{
- struct timeval now = ares__tvnow();
-
- write_tcp_data(channel, write_fds, write_fd, &now);
- read_tcp_data(channel, read_fds, read_fd, &now);
- read_udp_packets(channel, read_fds, read_fd, &now);
- process_timeouts(channel, &now);
- process_broken_connections(channel, &now);
-}
-
-/* Something interesting happened on the wire, or there was a timeout.
- * See what's up and respond accordingly.
- */
-void ares_process(ares_channel channel, fd_set *read_fds, fd_set *write_fds)
-{
- processfds(channel, read_fds, ARES_SOCKET_BAD, write_fds, ARES_SOCKET_BAD);
-}
-
-/* Something interesting happened on the wire, or there was a timeout.
- * See what's up and respond accordingly.
- */
-void ares_process_fd(ares_channel channel,
- ares_socket_t read_fd, /* use ARES_SOCKET_BAD or valid
- file descriptors */
- ares_socket_t write_fd)
-{
- processfds(channel, NULL, read_fd, NULL, write_fd);
-}
-
-
-/* Return 1 if the specified error number describes a readiness error, or 0
- * otherwise. This is mostly for HP-UX, which could return EAGAIN or
- * EWOULDBLOCK. See this man page
- *
- * http://devrsrc1.external.hp.com/STKS/cgi-bin/man2html?
- * manpage=/usr/share/man/man2.Z/send.2
- */
-static int try_again(int errnum)
-{
-#if !defined EWOULDBLOCK && !defined EAGAIN
-#error "Neither EWOULDBLOCK nor EAGAIN defined"
-#endif
- switch (errnum)
- {
-#ifdef EWOULDBLOCK
- case EWOULDBLOCK:
- return 1;
-#endif
-#if defined EAGAIN && EAGAIN != EWOULDBLOCK
- case EAGAIN:
- return 1;
-#endif
- }
- return 0;
-}
-
+{
+ now->tv_sec += millisecs/1000;
+ now->tv_usec += (millisecs%1000)*1000;
+
+ if(now->tv_usec >= 1000000) {
+ ++(now->tv_sec);
+ now->tv_usec -= 1000000;
+ }
+}
+
+/*
+ * generic process function
+ */
+static void processfds(ares_channel channel,
+ fd_set *read_fds, ares_socket_t read_fd,
+ fd_set *write_fds, ares_socket_t write_fd)
+{
+ struct timeval now = ares__tvnow();
+
+ write_tcp_data(channel, write_fds, write_fd, &now);
+ read_tcp_data(channel, read_fds, read_fd, &now);
+ read_udp_packets(channel, read_fds, read_fd, &now);
+ process_timeouts(channel, &now);
+ process_broken_connections(channel, &now);
+}
+
+/* Something interesting happened on the wire, or there was a timeout.
+ * See what's up and respond accordingly.
+ */
+void ares_process(ares_channel channel, fd_set *read_fds, fd_set *write_fds)
+{
+ processfds(channel, read_fds, ARES_SOCKET_BAD, write_fds, ARES_SOCKET_BAD);
+}
+
+/* Something interesting happened on the wire, or there was a timeout.
+ * See what's up and respond accordingly.
+ */
+void ares_process_fd(ares_channel channel,
+ ares_socket_t read_fd, /* use ARES_SOCKET_BAD or valid
+ file descriptors */
+ ares_socket_t write_fd)
+{
+ processfds(channel, NULL, read_fd, NULL, write_fd);
+}
+
+
+/* Return 1 if the specified error number describes a readiness error, or 0
+ * otherwise. This is mostly for HP-UX, which could return EAGAIN or
+ * EWOULDBLOCK. See this man page
+ *
+ * http://devrsrc1.external.hp.com/STKS/cgi-bin/man2html?
+ * manpage=/usr/share/man/man2.Z/send.2
+ */
+static int try_again(int errnum)
+{
+#if !defined EWOULDBLOCK && !defined EAGAIN
+#error "Neither EWOULDBLOCK nor EAGAIN defined"
+#endif
+ switch (errnum)
+ {
+#ifdef EWOULDBLOCK
+ case EWOULDBLOCK:
+ return 1;
+#endif
+#if defined EAGAIN && EAGAIN != EWOULDBLOCK
+ case EAGAIN:
+ return 1;
+#endif
+ }
+ return 0;
+}
+
static ares_ssize_t socket_writev(ares_channel channel, ares_socket_t s, const struct iovec * vec, int len)
{
if (channel->sock_funcs)
@@ -199,130 +199,130 @@ static ares_ssize_t socket_write(ares_channel channel, ares_socket_t s, const vo
return swrite(s, data, len);
}
-/* If any TCP sockets select true for writing, write out queued data
- * we have for them.
- */
-static void write_tcp_data(ares_channel channel,
- fd_set *write_fds,
- ares_socket_t write_fd,
- struct timeval *now)
-{
- struct server_state *server;
- struct send_request *sendreq;
- struct iovec *vec;
- int i;
+/* If any TCP sockets select true for writing, write out queued data
+ * we have for them.
+ */
+static void write_tcp_data(ares_channel channel,
+ fd_set *write_fds,
+ ares_socket_t write_fd,
+ struct timeval *now)
+{
+ struct server_state *server;
+ struct send_request *sendreq;
+ struct iovec *vec;
+ int i;
ares_ssize_t scount;
ares_ssize_t wcount;
- size_t n;
-
- if(!write_fds && (write_fd == ARES_SOCKET_BAD))
- /* no possible action */
- return;
-
- for (i = 0; i < channel->nservers; i++)
- {
- /* Make sure server has data to send and is selected in write_fds or
- write_fd. */
- server = &channel->servers[i];
- if (!server->qhead || server->tcp_socket == ARES_SOCKET_BAD ||
- server->is_broken)
- continue;
-
- if(write_fds) {
- if(!FD_ISSET(server->tcp_socket, write_fds))
- continue;
- }
- else {
- if(server->tcp_socket != write_fd)
- continue;
- }
-
- if(write_fds)
- /* If there's an error and we close this socket, then open
- * another with the same fd to talk to another server, then we
- * don't want to think that it was the new socket that was
- * ready. This is not disastrous, but is likely to result in
- * extra system calls and confusion. */
- FD_CLR(server->tcp_socket, write_fds);
-
- /* Count the number of send queue items. */
- n = 0;
- for (sendreq = server->qhead; sendreq; sendreq = sendreq->next)
- n++;
-
- /* Allocate iovecs so we can send all our data at once. */
+ size_t n;
+
+ if(!write_fds && (write_fd == ARES_SOCKET_BAD))
+ /* no possible action */
+ return;
+
+ for (i = 0; i < channel->nservers; i++)
+ {
+ /* Make sure server has data to send and is selected in write_fds or
+ write_fd. */
+ server = &channel->servers[i];
+ if (!server->qhead || server->tcp_socket == ARES_SOCKET_BAD ||
+ server->is_broken)
+ continue;
+
+ if(write_fds) {
+ if(!FD_ISSET(server->tcp_socket, write_fds))
+ continue;
+ }
+ else {
+ if(server->tcp_socket != write_fd)
+ continue;
+ }
+
+ if(write_fds)
+ /* If there's an error and we close this socket, then open
+ * another with the same fd to talk to another server, then we
+ * don't want to think that it was the new socket that was
+ * ready. This is not disastrous, but is likely to result in
+ * extra system calls and confusion. */
+ FD_CLR(server->tcp_socket, write_fds);
+
+ /* Count the number of send queue items. */
+ n = 0;
+ for (sendreq = server->qhead; sendreq; sendreq = sendreq->next)
+ n++;
+
+ /* Allocate iovecs so we can send all our data at once. */
vec = ares_malloc(n * sizeof(struct iovec));
- if (vec)
- {
- /* Fill in the iovecs and send. */
- n = 0;
- for (sendreq = server->qhead; sendreq; sendreq = sendreq->next)
- {
- vec[n].iov_base = (char *) sendreq->data;
- vec[n].iov_len = sendreq->len;
- n++;
- }
+ if (vec)
+ {
+ /* Fill in the iovecs and send. */
+ n = 0;
+ for (sendreq = server->qhead; sendreq; sendreq = sendreq->next)
+ {
+ vec[n].iov_base = (char *) sendreq->data;
+ vec[n].iov_len = sendreq->len;
+ n++;
+ }
wcount = socket_writev(channel, server->tcp_socket, vec, (int)n);
ares_free(vec);
- if (wcount < 0)
- {
- if (!try_again(SOCKERRNO))
- handle_error(channel, i, now);
- continue;
- }
-
- /* Advance the send queue by as many bytes as we sent. */
- advance_tcp_send_queue(channel, i, wcount);
- }
- else
- {
- /* Can't allocate iovecs; just send the first request. */
- sendreq = server->qhead;
-
+ if (wcount < 0)
+ {
+ if (!try_again(SOCKERRNO))
+ handle_error(channel, i, now);
+ continue;
+ }
+
+ /* Advance the send queue by as many bytes as we sent. */
+ advance_tcp_send_queue(channel, i, wcount);
+ }
+ else
+ {
+ /* Can't allocate iovecs; just send the first request. */
+ sendreq = server->qhead;
+
scount = socket_write(channel, server->tcp_socket, sendreq->data, sendreq->len);
- if (scount < 0)
- {
- if (!try_again(SOCKERRNO))
- handle_error(channel, i, now);
- continue;
- }
-
- /* Advance the send queue by as many bytes as we sent. */
- advance_tcp_send_queue(channel, i, scount);
- }
- }
-}
-
-/* Consume the given number of bytes from the head of the TCP send queue. */
-static void advance_tcp_send_queue(ares_channel channel, int whichserver,
+ if (scount < 0)
+ {
+ if (!try_again(SOCKERRNO))
+ handle_error(channel, i, now);
+ continue;
+ }
+
+ /* Advance the send queue by as many bytes as we sent. */
+ advance_tcp_send_queue(channel, i, scount);
+ }
+ }
+}
+
+/* Consume the given number of bytes from the head of the TCP send queue. */
+static void advance_tcp_send_queue(ares_channel channel, int whichserver,
ares_ssize_t num_bytes)
-{
- struct send_request *sendreq;
- struct server_state *server = &channel->servers[whichserver];
- while (num_bytes > 0) {
- sendreq = server->qhead;
- if ((size_t)num_bytes >= sendreq->len) {
- num_bytes -= sendreq->len;
- server->qhead = sendreq->next;
- if (sendreq->data_storage)
+{
+ struct send_request *sendreq;
+ struct server_state *server = &channel->servers[whichserver];
+ while (num_bytes > 0) {
+ sendreq = server->qhead;
+ if ((size_t)num_bytes >= sendreq->len) {
+ num_bytes -= sendreq->len;
+ server->qhead = sendreq->next;
+ if (sendreq->data_storage)
ares_free(sendreq->data_storage);
ares_free(sendreq);
- if (server->qhead == NULL) {
- SOCK_STATE_CALLBACK(channel, server->tcp_socket, 1, 0);
- server->qtail = NULL;
-
- /* qhead is NULL so we cannot continue this loop */
- break;
- }
- }
- else {
- sendreq->data += num_bytes;
- sendreq->len -= num_bytes;
- num_bytes = 0;
- }
- }
-}
-
+ if (server->qhead == NULL) {
+ SOCK_STATE_CALLBACK(channel, server->tcp_socket, 1, 0);
+ server->qtail = NULL;
+
+ /* qhead is NULL so we cannot continue this loop */
+ break;
+ }
+ }
+ else {
+ sendreq->data += num_bytes;
+ sendreq->len -= num_bytes;
+ num_bytes = 0;
+ }
+ }
+}
+
static ares_ssize_t socket_recvfrom(ares_channel channel,
ares_socket_t s,
void * data,
@@ -355,523 +355,523 @@ static ares_ssize_t socket_recv(ares_channel channel,
return sread(s, data, data_len);
}
-/* If any TCP socket selects true for reading, read some data,
- * allocate a buffer if we finish reading the length word, and process
- * a packet if we finish reading one.
- */
-static void read_tcp_data(ares_channel channel, fd_set *read_fds,
- ares_socket_t read_fd, struct timeval *now)
-{
- struct server_state *server;
- int i;
+/* If any TCP socket selects true for reading, read some data,
+ * allocate a buffer if we finish reading the length word, and process
+ * a packet if we finish reading one.
+ */
+static void read_tcp_data(ares_channel channel, fd_set *read_fds,
+ ares_socket_t read_fd, struct timeval *now)
+{
+ struct server_state *server;
+ int i;
ares_ssize_t count;
-
- if(!read_fds && (read_fd == ARES_SOCKET_BAD))
- /* no possible action */
- return;
-
- for (i = 0; i < channel->nservers; i++)
- {
- /* Make sure the server has a socket and is selected in read_fds. */
- server = &channel->servers[i];
- if (server->tcp_socket == ARES_SOCKET_BAD || server->is_broken)
- continue;
-
- if(read_fds) {
- if(!FD_ISSET(server->tcp_socket, read_fds))
- continue;
- }
- else {
- if(server->tcp_socket != read_fd)
- continue;
- }
-
- if(read_fds)
- /* If there's an error and we close this socket, then open another
- * with the same fd to talk to another server, then we don't want to
- * think that it was the new socket that was ready. This is not
- * disastrous, but is likely to result in extra system calls and
- * confusion. */
- FD_CLR(server->tcp_socket, read_fds);
-
- if (server->tcp_lenbuf_pos != 2)
- {
- /* We haven't yet read a length word, so read that (or
- * what's left to read of it).
- */
+
+ if(!read_fds && (read_fd == ARES_SOCKET_BAD))
+ /* no possible action */
+ return;
+
+ for (i = 0; i < channel->nservers; i++)
+ {
+ /* Make sure the server has a socket and is selected in read_fds. */
+ server = &channel->servers[i];
+ if (server->tcp_socket == ARES_SOCKET_BAD || server->is_broken)
+ continue;
+
+ if(read_fds) {
+ if(!FD_ISSET(server->tcp_socket, read_fds))
+ continue;
+ }
+ else {
+ if(server->tcp_socket != read_fd)
+ continue;
+ }
+
+ if(read_fds)
+ /* If there's an error and we close this socket, then open another
+ * with the same fd to talk to another server, then we don't want to
+ * think that it was the new socket that was ready. This is not
+ * disastrous, but is likely to result in extra system calls and
+ * confusion. */
+ FD_CLR(server->tcp_socket, read_fds);
+
+ if (server->tcp_lenbuf_pos != 2)
+ {
+ /* We haven't yet read a length word, so read that (or
+ * what's left to read of it).
+ */
count = socket_recv(channel, server->tcp_socket,
server->tcp_lenbuf + server->tcp_lenbuf_pos,
2 - server->tcp_lenbuf_pos);
- if (count <= 0)
- {
- if (!(count == -1 && try_again(SOCKERRNO)))
- handle_error(channel, i, now);
- continue;
- }
-
- server->tcp_lenbuf_pos += (int)count;
- if (server->tcp_lenbuf_pos == 2)
- {
- /* We finished reading the length word. Decode the
- * length and allocate a buffer for the data.
- */
- server->tcp_length = server->tcp_lenbuf[0] << 8
- | server->tcp_lenbuf[1];
+ if (count <= 0)
+ {
+ if (!(count == -1 && try_again(SOCKERRNO)))
+ handle_error(channel, i, now);
+ continue;
+ }
+
+ server->tcp_lenbuf_pos += (int)count;
+ if (server->tcp_lenbuf_pos == 2)
+ {
+ /* We finished reading the length word. Decode the
+ * length and allocate a buffer for the data.
+ */
+ server->tcp_length = server->tcp_lenbuf[0] << 8
+ | server->tcp_lenbuf[1];
server->tcp_buffer = ares_malloc(server->tcp_length);
if (!server->tcp_buffer) {
- handle_error(channel, i, now);
+ handle_error(channel, i, now);
return; /* bail out on malloc failure. TODO: make this
function return error codes */
}
- server->tcp_buffer_pos = 0;
- }
- }
- else
- {
- /* Read data into the allocated buffer. */
+ server->tcp_buffer_pos = 0;
+ }
+ }
+ else
+ {
+ /* Read data into the allocated buffer. */
count = socket_recv(channel, server->tcp_socket,
server->tcp_buffer + server->tcp_buffer_pos,
server->tcp_length - server->tcp_buffer_pos);
- if (count <= 0)
- {
- if (!(count == -1 && try_again(SOCKERRNO)))
- handle_error(channel, i, now);
- continue;
- }
-
- server->tcp_buffer_pos += (int)count;
- if (server->tcp_buffer_pos == server->tcp_length)
- {
- /* We finished reading this answer; process it and
- * prepare to read another length word.
- */
- process_answer(channel, server->tcp_buffer, server->tcp_length,
- i, 1, now);
+ if (count <= 0)
+ {
+ if (!(count == -1 && try_again(SOCKERRNO)))
+ handle_error(channel, i, now);
+ continue;
+ }
+
+ server->tcp_buffer_pos += (int)count;
+ if (server->tcp_buffer_pos == server->tcp_length)
+ {
+ /* We finished reading this answer; process it and
+ * prepare to read another length word.
+ */
+ process_answer(channel, server->tcp_buffer, server->tcp_length,
+ i, 1, now);
ares_free(server->tcp_buffer);
- server->tcp_buffer = NULL;
- server->tcp_lenbuf_pos = 0;
- server->tcp_buffer_pos = 0;
- }
- }
- }
-}
-
-/* If any UDP sockets select true for reading, process them. */
-static void read_udp_packets(ares_channel channel, fd_set *read_fds,
- ares_socket_t read_fd, struct timeval *now)
-{
- struct server_state *server;
- int i;
+ server->tcp_buffer = NULL;
+ server->tcp_lenbuf_pos = 0;
+ server->tcp_buffer_pos = 0;
+ }
+ }
+ }
+}
+
+/* If any UDP sockets select true for reading, process them. */
+static void read_udp_packets(ares_channel channel, fd_set *read_fds,
+ ares_socket_t read_fd, struct timeval *now)
+{
+ struct server_state *server;
+ int i;
ares_ssize_t count;
- unsigned char buf[MAXENDSSZ + 1];
-#ifdef HAVE_RECVFROM
- ares_socklen_t fromlen;
- union {
- struct sockaddr sa;
- struct sockaddr_in sa4;
- struct sockaddr_in6 sa6;
- } from;
-#endif
-
- if(!read_fds && (read_fd == ARES_SOCKET_BAD))
- /* no possible action */
- return;
-
- for (i = 0; i < channel->nservers; i++)
- {
- /* Make sure the server has a socket and is selected in read_fds. */
- server = &channel->servers[i];
-
- if (server->udp_socket == ARES_SOCKET_BAD || server->is_broken)
- continue;
-
- if(read_fds) {
- if(!FD_ISSET(server->udp_socket, read_fds))
- continue;
- }
- else {
- if(server->udp_socket != read_fd)
- continue;
- }
-
- if(read_fds)
- /* If there's an error and we close this socket, then open
- * another with the same fd to talk to another server, then we
- * don't want to think that it was the new socket that was
- * ready. This is not disastrous, but is likely to result in
- * extra system calls and confusion. */
- FD_CLR(server->udp_socket, read_fds);
-
- /* To reduce event loop overhead, read and process as many
- * packets as we can. */
- do {
- if (server->udp_socket == ARES_SOCKET_BAD)
- count = 0;
-
- else {
- if (server->addr.family == AF_INET)
- fromlen = sizeof(from.sa4);
- else
- fromlen = sizeof(from.sa6);
+ unsigned char buf[MAXENDSSZ + 1];
+#ifdef HAVE_RECVFROM
+ ares_socklen_t fromlen;
+ union {
+ struct sockaddr sa;
+ struct sockaddr_in sa4;
+ struct sockaddr_in6 sa6;
+ } from;
+#endif
+
+ if(!read_fds && (read_fd == ARES_SOCKET_BAD))
+ /* no possible action */
+ return;
+
+ for (i = 0; i < channel->nservers; i++)
+ {
+ /* Make sure the server has a socket and is selected in read_fds. */
+ server = &channel->servers[i];
+
+ if (server->udp_socket == ARES_SOCKET_BAD || server->is_broken)
+ continue;
+
+ if(read_fds) {
+ if(!FD_ISSET(server->udp_socket, read_fds))
+ continue;
+ }
+ else {
+ if(server->udp_socket != read_fd)
+ continue;
+ }
+
+ if(read_fds)
+ /* If there's an error and we close this socket, then open
+ * another with the same fd to talk to another server, then we
+ * don't want to think that it was the new socket that was
+ * ready. This is not disastrous, but is likely to result in
+ * extra system calls and confusion. */
+ FD_CLR(server->udp_socket, read_fds);
+
+ /* To reduce event loop overhead, read and process as many
+ * packets as we can. */
+ do {
+ if (server->udp_socket == ARES_SOCKET_BAD)
+ count = 0;
+
+ else {
+ if (server->addr.family == AF_INET)
+ fromlen = sizeof(from.sa4);
+ else
+ fromlen = sizeof(from.sa6);
count = socket_recvfrom(channel, server->udp_socket, (void *)buf,
sizeof(buf), 0, &from.sa, &fromlen);
- }
-
- if (count == -1 && try_again(SOCKERRNO))
- continue;
- else if (count <= 0)
- handle_error(channel, i, now);
-#ifdef HAVE_RECVFROM
- else if (!same_address(&from.sa, &server->addr))
- /* The address the response comes from does not match the address we
- * sent the request to. Someone may be attempting to perform a cache
- * poisoning attack. */
- break;
-#endif
- else
- process_answer(channel, buf, (int)count, i, 0, now);
- } while (count > 0);
- }
-}
-
-/* If any queries have timed out, note the timeout and move them on. */
-static void process_timeouts(ares_channel channel, struct timeval *now)
-{
- time_t t; /* the time of the timeouts we're processing */
- struct query *query;
- struct list_node* list_head;
- struct list_node* list_node;
-
- /* Process all the timeouts that have fired since the last time we processed
- * timeouts. If things are going well, then we'll have hundreds/thousands of
- * queries that fall into future buckets, and only a handful of requests
- * that fall into the "now" bucket, so this should be quite quick.
- */
- for (t = channel->last_timeout_processed; t <= now->tv_sec; t++)
- {
- list_head = &(channel->queries_by_timeout[t % ARES_TIMEOUT_TABLE_SIZE]);
- for (list_node = list_head->next; list_node != list_head; )
- {
- query = list_node->data;
- list_node = list_node->next; /* in case the query gets deleted */
- if (query->timeout.tv_sec && ares__timedout(now, &query->timeout))
- {
- query->error_status = ARES_ETIMEOUT;
- ++query->timeouts;
- next_server(channel, query, now);
- }
- }
- }
- channel->last_timeout_processed = now->tv_sec;
-}
-
-/* Handle an answer from a server. */
-static void process_answer(ares_channel channel, unsigned char *abuf,
- int alen, int whichserver, int tcp,
- struct timeval *now)
-{
- int tc, rcode, packetsz;
- unsigned short id;
- struct query *query;
- struct list_node* list_head;
- struct list_node* list_node;
-
- /* If there's no room in the answer for a header, we can't do much
- * with it. */
- if (alen < HFIXEDSZ)
- return;
-
- /* Grab the query ID, truncate bit, and response code from the packet. */
- id = DNS_HEADER_QID(abuf);
- tc = DNS_HEADER_TC(abuf);
- rcode = DNS_HEADER_RCODE(abuf);
-
- /* Find the query corresponding to this packet. The queries are
- * hashed/bucketed by query id, so this lookup should be quick. Note that
- * both the query id and the questions must be the same; when the query id
- * wraps around we can have multiple outstanding queries with the same query
- * id, so we need to check both the id and question.
- */
- query = NULL;
- list_head = &(channel->queries_by_qid[id % ARES_QID_TABLE_SIZE]);
- for (list_node = list_head->next; list_node != list_head;
- list_node = list_node->next)
- {
- struct query *q = list_node->data;
- if ((q->qid == id) && same_questions(q->qbuf, q->qlen, abuf, alen))
- {
- query = q;
- break;
- }
- }
- if (!query)
- return;
-
- packetsz = PACKETSZ;
- /* If we use EDNS and server answers with one of these RCODES, the protocol
- * extension is not understood by the responder. We must retry the query
- * without EDNS enabled.
- */
- if (channel->flags & ARES_FLAG_EDNS)
- {
- packetsz = channel->ednspsz;
- if (rcode == NOTIMP || rcode == FORMERR || rcode == SERVFAIL)
- {
+ }
+
+ if (count == -1 && try_again(SOCKERRNO))
+ continue;
+ else if (count <= 0)
+ handle_error(channel, i, now);
+#ifdef HAVE_RECVFROM
+ else if (!same_address(&from.sa, &server->addr))
+ /* The address the response comes from does not match the address we
+ * sent the request to. Someone may be attempting to perform a cache
+ * poisoning attack. */
+ break;
+#endif
+ else
+ process_answer(channel, buf, (int)count, i, 0, now);
+ } while (count > 0);
+ }
+}
+
+/* If any queries have timed out, note the timeout and move them on. */
+static void process_timeouts(ares_channel channel, struct timeval *now)
+{
+ time_t t; /* the time of the timeouts we're processing */
+ struct query *query;
+ struct list_node* list_head;
+ struct list_node* list_node;
+
+ /* Process all the timeouts that have fired since the last time we processed
+ * timeouts. If things are going well, then we'll have hundreds/thousands of
+ * queries that fall into future buckets, and only a handful of requests
+ * that fall into the "now" bucket, so this should be quite quick.
+ */
+ for (t = channel->last_timeout_processed; t <= now->tv_sec; t++)
+ {
+ list_head = &(channel->queries_by_timeout[t % ARES_TIMEOUT_TABLE_SIZE]);
+ for (list_node = list_head->next; list_node != list_head; )
+ {
+ query = list_node->data;
+ list_node = list_node->next; /* in case the query gets deleted */
+ if (query->timeout.tv_sec && ares__timedout(now, &query->timeout))
+ {
+ query->error_status = ARES_ETIMEOUT;
+ ++query->timeouts;
+ next_server(channel, query, now);
+ }
+ }
+ }
+ channel->last_timeout_processed = now->tv_sec;
+}
+
+/* Handle an answer from a server. */
+static void process_answer(ares_channel channel, unsigned char *abuf,
+ int alen, int whichserver, int tcp,
+ struct timeval *now)
+{
+ int tc, rcode, packetsz;
+ unsigned short id;
+ struct query *query;
+ struct list_node* list_head;
+ struct list_node* list_node;
+
+ /* If there's no room in the answer for a header, we can't do much
+ * with it. */
+ if (alen < HFIXEDSZ)
+ return;
+
+ /* Grab the query ID, truncate bit, and response code from the packet. */
+ id = DNS_HEADER_QID(abuf);
+ tc = DNS_HEADER_TC(abuf);
+ rcode = DNS_HEADER_RCODE(abuf);
+
+ /* Find the query corresponding to this packet. The queries are
+ * hashed/bucketed by query id, so this lookup should be quick. Note that
+ * both the query id and the questions must be the same; when the query id
+ * wraps around we can have multiple outstanding queries with the same query
+ * id, so we need to check both the id and question.
+ */
+ query = NULL;
+ list_head = &(channel->queries_by_qid[id % ARES_QID_TABLE_SIZE]);
+ for (list_node = list_head->next; list_node != list_head;
+ list_node = list_node->next)
+ {
+ struct query *q = list_node->data;
+ if ((q->qid == id) && same_questions(q->qbuf, q->qlen, abuf, alen))
+ {
+ query = q;
+ break;
+ }
+ }
+ if (!query)
+ return;
+
+ packetsz = PACKETSZ;
+ /* If we use EDNS and server answers with one of these RCODES, the protocol
+ * extension is not understood by the responder. We must retry the query
+ * without EDNS enabled.
+ */
+ if (channel->flags & ARES_FLAG_EDNS)
+ {
+ packetsz = channel->ednspsz;
+ if (rcode == NOTIMP || rcode == FORMERR || rcode == SERVFAIL)
+ {
int qlen = (query->tcplen - 2) - EDNSFIXEDSZ;
- channel->flags ^= ARES_FLAG_EDNS;
- query->tcplen -= EDNSFIXEDSZ;
- query->qlen -= EDNSFIXEDSZ;
- query->tcpbuf[0] = (unsigned char)((qlen >> 8) & 0xff);
- query->tcpbuf[1] = (unsigned char)(qlen & 0xff);
- DNS_HEADER_SET_ARCOUNT(query->tcpbuf + 2, 0);
+ channel->flags ^= ARES_FLAG_EDNS;
+ query->tcplen -= EDNSFIXEDSZ;
+ query->qlen -= EDNSFIXEDSZ;
+ query->tcpbuf[0] = (unsigned char)((qlen >> 8) & 0xff);
+ query->tcpbuf[1] = (unsigned char)(qlen & 0xff);
+ DNS_HEADER_SET_ARCOUNT(query->tcpbuf + 2, 0);
query->tcpbuf = ares_realloc(query->tcpbuf, query->tcplen);
query->qbuf = query->tcpbuf + 2;
- ares__send_query(channel, query, now);
- return;
- }
- }
-
- /* If we got a truncated UDP packet and are not ignoring truncation,
- * don't accept the packet, and switch the query to TCP if we hadn't
- * done so already.
- */
- if ((tc || alen > packetsz) && !tcp && !(channel->flags & ARES_FLAG_IGNTC))
- {
- if (!query->using_tcp)
- {
- query->using_tcp = 1;
- ares__send_query(channel, query, now);
- }
- return;
- }
-
- /* Limit alen to PACKETSZ if we aren't using TCP (only relevant if we
- * are ignoring truncation.
- */
- if (alen > packetsz && !tcp)
- alen = packetsz;
-
- /* If we aren't passing through all error packets, discard packets
- * with SERVFAIL, NOTIMP, or REFUSED response codes.
- */
- if (!(channel->flags & ARES_FLAG_NOCHECKRESP))
- {
- if (rcode == SERVFAIL || rcode == NOTIMP || rcode == REFUSED)
- {
- skip_server(channel, query, whichserver);
- if (query->server == whichserver)
- next_server(channel, query, now);
- return;
- }
- }
-
- end_query(channel, query, ARES_SUCCESS, abuf, alen);
-}
-
-/* Close all the connections that are no longer usable. */
-static void process_broken_connections(ares_channel channel,
- struct timeval *now)
-{
- int i;
- for (i = 0; i < channel->nservers; i++)
- {
- struct server_state *server = &channel->servers[i];
- if (server->is_broken)
- {
- handle_error(channel, i, now);
- }
- }
-}
-
-/* Swap the contents of two lists */
-static void swap_lists(struct list_node* head_a,
- struct list_node* head_b)
-{
- int is_a_empty = ares__is_list_empty(head_a);
- int is_b_empty = ares__is_list_empty(head_b);
- struct list_node old_a = *head_a;
- struct list_node old_b = *head_b;
-
- if (is_a_empty) {
- ares__init_list_head(head_b);
- } else {
- *head_b = old_a;
- old_a.next->prev = head_b;
- old_a.prev->next = head_b;
- }
- if (is_b_empty) {
- ares__init_list_head(head_a);
- } else {
- *head_a = old_b;
- old_b.next->prev = head_a;
- old_b.prev->next = head_a;
- }
-}
-
-static void handle_error(ares_channel channel, int whichserver,
- struct timeval *now)
-{
- struct server_state *server;
- struct query *query;
- struct list_node list_head;
- struct list_node* list_node;
-
- server = &channel->servers[whichserver];
-
- /* Reset communications with this server. */
- ares__close_sockets(channel, server);
-
- /* Tell all queries talking to this server to move on and not try this
- * server again. We steal the current list of queries that were in-flight to
- * this server, since when we call next_server this can cause the queries to
- * be re-sent to this server, which will re-insert these queries in that
- * same server->queries_to_server list.
- */
- ares__init_list_head(&list_head);
- swap_lists(&list_head, &(server->queries_to_server));
- for (list_node = list_head.next; list_node != &list_head; )
- {
- query = list_node->data;
- list_node = list_node->next; /* in case the query gets deleted */
- assert(query->server == whichserver);
- skip_server(channel, query, whichserver);
- next_server(channel, query, now);
- }
- /* Each query should have removed itself from our temporary list as
- * it re-sent itself or finished up...
- */
- assert(ares__is_list_empty(&list_head));
-}
-
-static void skip_server(ares_channel channel, struct query *query,
- int whichserver)
-{
- /* The given server gave us problems with this query, so if we have the
- * luxury of using other servers, then let's skip the potentially broken
- * server and just use the others. If we only have one server and we need to
- * retry then we should just go ahead and re-use that server, since it's our
- * only hope; perhaps we just got unlucky, and retrying will work (eg, the
- * server timed out our TCP connection just as we were sending another
- * request).
- */
- if (channel->nservers > 1)
- {
- query->server_info[whichserver].skip_server = 1;
- }
-}
-
-static void next_server(ares_channel channel, struct query *query,
- struct timeval *now)
-{
- /* We need to try each server channel->tries times. We have channel->nservers
- * servers to try. In total, we need to do channel->nservers * channel->tries
- * attempts. Use query->try to remember how many times we already attempted
- * this query. Use modular arithmetic to find the next server to try. */
- while (++(query->try_count) < (channel->nservers * channel->tries))
- {
- struct server_state *server;
-
- /* Move on to the next server. */
- query->server = (query->server + 1) % channel->nservers;
- server = &channel->servers[query->server];
-
- /* We don't want to use this server if (1) we decided this connection is
- * broken, and thus about to be closed, (2) we've decided to skip this
- * server because of earlier errors we encountered, or (3) we already
- * sent this query over this exact connection.
- */
- if (!server->is_broken &&
- !query->server_info[query->server].skip_server &&
- !(query->using_tcp &&
- (query->server_info[query->server].tcp_connection_generation ==
- server->tcp_connection_generation)))
- {
- ares__send_query(channel, query, now);
- return;
- }
-
- /* You might think that with TCP we only need one try. However, even
- * when using TCP, servers can time-out our connection just as we're
- * sending a request, or close our connection because they die, or never
- * send us a reply because they get wedged or tickle a bug that drops
- * our request.
- */
- }
-
- /* If we are here, all attempts to perform query failed. */
- end_query(channel, query, query->error_status, NULL, 0);
-}
-
-void ares__send_query(ares_channel channel, struct query *query,
- struct timeval *now)
-{
- struct send_request *sendreq;
- struct server_state *server;
- int timeplus;
-
- server = &channel->servers[query->server];
- if (query->using_tcp)
- {
- /* Make sure the TCP socket for this server is set up and queue
- * a send request.
- */
- if (server->tcp_socket == ARES_SOCKET_BAD)
- {
- if (open_tcp_socket(channel, server) == -1)
- {
- skip_server(channel, query, query->server);
- next_server(channel, query, now);
- return;
- }
- }
+ ares__send_query(channel, query, now);
+ return;
+ }
+ }
+
+ /* If we got a truncated UDP packet and are not ignoring truncation,
+ * don't accept the packet, and switch the query to TCP if we hadn't
+ * done so already.
+ */
+ if ((tc || alen > packetsz) && !tcp && !(channel->flags & ARES_FLAG_IGNTC))
+ {
+ if (!query->using_tcp)
+ {
+ query->using_tcp = 1;
+ ares__send_query(channel, query, now);
+ }
+ return;
+ }
+
+ /* Limit alen to PACKETSZ if we aren't using TCP (only relevant if we
+ * are ignoring truncation.
+ */
+ if (alen > packetsz && !tcp)
+ alen = packetsz;
+
+ /* If we aren't passing through all error packets, discard packets
+ * with SERVFAIL, NOTIMP, or REFUSED response codes.
+ */
+ if (!(channel->flags & ARES_FLAG_NOCHECKRESP))
+ {
+ if (rcode == SERVFAIL || rcode == NOTIMP || rcode == REFUSED)
+ {
+ skip_server(channel, query, whichserver);
+ if (query->server == whichserver)
+ next_server(channel, query, now);
+ return;
+ }
+ }
+
+ end_query(channel, query, ARES_SUCCESS, abuf, alen);
+}
+
+/* Close all the connections that are no longer usable. */
+static void process_broken_connections(ares_channel channel,
+ struct timeval *now)
+{
+ int i;
+ for (i = 0; i < channel->nservers; i++)
+ {
+ struct server_state *server = &channel->servers[i];
+ if (server->is_broken)
+ {
+ handle_error(channel, i, now);
+ }
+ }
+}
+
+/* Swap the contents of two lists */
+static void swap_lists(struct list_node* head_a,
+ struct list_node* head_b)
+{
+ int is_a_empty = ares__is_list_empty(head_a);
+ int is_b_empty = ares__is_list_empty(head_b);
+ struct list_node old_a = *head_a;
+ struct list_node old_b = *head_b;
+
+ if (is_a_empty) {
+ ares__init_list_head(head_b);
+ } else {
+ *head_b = old_a;
+ old_a.next->prev = head_b;
+ old_a.prev->next = head_b;
+ }
+ if (is_b_empty) {
+ ares__init_list_head(head_a);
+ } else {
+ *head_a = old_b;
+ old_b.next->prev = head_a;
+ old_b.prev->next = head_a;
+ }
+}
+
+static void handle_error(ares_channel channel, int whichserver,
+ struct timeval *now)
+{
+ struct server_state *server;
+ struct query *query;
+ struct list_node list_head;
+ struct list_node* list_node;
+
+ server = &channel->servers[whichserver];
+
+ /* Reset communications with this server. */
+ ares__close_sockets(channel, server);
+
+ /* Tell all queries talking to this server to move on and not try this
+ * server again. We steal the current list of queries that were in-flight to
+ * this server, since when we call next_server this can cause the queries to
+ * be re-sent to this server, which will re-insert these queries in that
+ * same server->queries_to_server list.
+ */
+ ares__init_list_head(&list_head);
+ swap_lists(&list_head, &(server->queries_to_server));
+ for (list_node = list_head.next; list_node != &list_head; )
+ {
+ query = list_node->data;
+ list_node = list_node->next; /* in case the query gets deleted */
+ assert(query->server == whichserver);
+ skip_server(channel, query, whichserver);
+ next_server(channel, query, now);
+ }
+ /* Each query should have removed itself from our temporary list as
+ * it re-sent itself or finished up...
+ */
+ assert(ares__is_list_empty(&list_head));
+}
+
+static void skip_server(ares_channel channel, struct query *query,
+ int whichserver)
+{
+ /* The given server gave us problems with this query, so if we have the
+ * luxury of using other servers, then let's skip the potentially broken
+ * server and just use the others. If we only have one server and we need to
+ * retry then we should just go ahead and re-use that server, since it's our
+ * only hope; perhaps we just got unlucky, and retrying will work (eg, the
+ * server timed out our TCP connection just as we were sending another
+ * request).
+ */
+ if (channel->nservers > 1)
+ {
+ query->server_info[whichserver].skip_server = 1;
+ }
+}
+
+static void next_server(ares_channel channel, struct query *query,
+ struct timeval *now)
+{
+ /* We need to try each server channel->tries times. We have channel->nservers
+ * servers to try. In total, we need to do channel->nservers * channel->tries
+ * attempts. Use query->try to remember how many times we already attempted
+ * this query. Use modular arithmetic to find the next server to try. */
+ while (++(query->try_count) < (channel->nservers * channel->tries))
+ {
+ struct server_state *server;
+
+ /* Move on to the next server. */
+ query->server = (query->server + 1) % channel->nservers;
+ server = &channel->servers[query->server];
+
+ /* We don't want to use this server if (1) we decided this connection is
+ * broken, and thus about to be closed, (2) we've decided to skip this
+ * server because of earlier errors we encountered, or (3) we already
+ * sent this query over this exact connection.
+ */
+ if (!server->is_broken &&
+ !query->server_info[query->server].skip_server &&
+ !(query->using_tcp &&
+ (query->server_info[query->server].tcp_connection_generation ==
+ server->tcp_connection_generation)))
+ {
+ ares__send_query(channel, query, now);
+ return;
+ }
+
+ /* You might think that with TCP we only need one try. However, even
+ * when using TCP, servers can time-out our connection just as we're
+ * sending a request, or close our connection because they die, or never
+ * send us a reply because they get wedged or tickle a bug that drops
+ * our request.
+ */
+ }
+
+ /* If we are here, all attempts to perform query failed. */
+ end_query(channel, query, query->error_status, NULL, 0);
+}
+
+void ares__send_query(ares_channel channel, struct query *query,
+ struct timeval *now)
+{
+ struct send_request *sendreq;
+ struct server_state *server;
+ int timeplus;
+
+ server = &channel->servers[query->server];
+ if (query->using_tcp)
+ {
+ /* Make sure the TCP socket for this server is set up and queue
+ * a send request.
+ */
+ if (server->tcp_socket == ARES_SOCKET_BAD)
+ {
+ if (open_tcp_socket(channel, server) == -1)
+ {
+ skip_server(channel, query, query->server);
+ next_server(channel, query, now);
+ return;
+ }
+ }
sendreq = ares_malloc(sizeof(struct send_request));
- if (!sendreq)
- {
- end_query(channel, query, ARES_ENOMEM, NULL, 0);
- return;
- }
+ if (!sendreq)
+ {
+ end_query(channel, query, ARES_ENOMEM, NULL, 0);
+ return;
+ }
memset(sendreq, 0, sizeof(struct send_request));
- /* To make the common case fast, we avoid copies by using the query's
- * tcpbuf for as long as the query is alive. In the rare case where the
- * query ends while it's queued for transmission, then we give the
- * sendreq its own copy of the request packet and put it in
- * sendreq->data_storage.
- */
- sendreq->data_storage = NULL;
- sendreq->data = query->tcpbuf;
- sendreq->len = query->tcplen;
- sendreq->owner_query = query;
- sendreq->next = NULL;
- if (server->qtail)
- server->qtail->next = sendreq;
- else
- {
- SOCK_STATE_CALLBACK(channel, server->tcp_socket, 1, 1);
- server->qhead = sendreq;
- }
- server->qtail = sendreq;
- query->server_info[query->server].tcp_connection_generation =
- server->tcp_connection_generation;
- }
- else
- {
- if (server->udp_socket == ARES_SOCKET_BAD)
- {
- if (open_udp_socket(channel, server) == -1)
- {
- skip_server(channel, query, query->server);
- next_server(channel, query, now);
- return;
- }
- }
+ /* To make the common case fast, we avoid copies by using the query's
+ * tcpbuf for as long as the query is alive. In the rare case where the
+ * query ends while it's queued for transmission, then we give the
+ * sendreq its own copy of the request packet and put it in
+ * sendreq->data_storage.
+ */
+ sendreq->data_storage = NULL;
+ sendreq->data = query->tcpbuf;
+ sendreq->len = query->tcplen;
+ sendreq->owner_query = query;
+ sendreq->next = NULL;
+ if (server->qtail)
+ server->qtail->next = sendreq;
+ else
+ {
+ SOCK_STATE_CALLBACK(channel, server->tcp_socket, 1, 1);
+ server->qhead = sendreq;
+ }
+ server->qtail = sendreq;
+ query->server_info[query->server].tcp_connection_generation =
+ server->tcp_connection_generation;
+ }
+ else
+ {
+ if (server->udp_socket == ARES_SOCKET_BAD)
+ {
+ if (open_udp_socket(channel, server) == -1)
+ {
+ skip_server(channel, query, query->server);
+ next_server(channel, query, now);
+ return;
+ }
+ }
if (socket_write(channel, server->udp_socket, query->qbuf, query->qlen) == -1)
- {
- /* FIXME: Handle EAGAIN here since it likely can happen. */
- skip_server(channel, query, query->server);
- next_server(channel, query, now);
- return;
- }
- }
+ {
+ /* FIXME: Handle EAGAIN here since it likely can happen. */
+ skip_server(channel, query, query->server);
+ next_server(channel, query, now);
+ return;
+ }
+ }
/* For each trip through the entire server list, double the channel's
* assigned timeout, avoiding overflow. If channel->timeout is negative,
@@ -919,220 +919,220 @@ void ares__send_query(ares_channel channel, struct query *query,
timeplus += delta;
}
- query->timeout = *now;
+ query->timeout = *now;
timeadd(&query->timeout, timeplus);
- /* Keep track of queries bucketed by timeout, so we can process
- * timeout events quickly.
- */
- ares__remove_from_list(&(query->queries_by_timeout));
- ares__insert_in_list(
- &(query->queries_by_timeout),
- &(channel->queries_by_timeout[query->timeout.tv_sec %
- ARES_TIMEOUT_TABLE_SIZE]));
-
- /* Keep track of queries bucketed by server, so we can process server
- * errors quickly.
- */
- ares__remove_from_list(&(query->queries_to_server));
- ares__insert_in_list(&(query->queries_to_server),
- &(server->queries_to_server));
-}
-
-/*
- * setsocknonblock sets the given socket to either blocking or non-blocking
- * mode based on the 'nonblock' boolean argument. This function is highly
- * portable.
- */
-static int setsocknonblock(ares_socket_t sockfd, /* operate on this */
+ /* Keep track of queries bucketed by timeout, so we can process
+ * timeout events quickly.
+ */
+ ares__remove_from_list(&(query->queries_by_timeout));
+ ares__insert_in_list(
+ &(query->queries_by_timeout),
+ &(channel->queries_by_timeout[query->timeout.tv_sec %
+ ARES_TIMEOUT_TABLE_SIZE]));
+
+ /* Keep track of queries bucketed by server, so we can process server
+ * errors quickly.
+ */
+ ares__remove_from_list(&(query->queries_to_server));
+ ares__insert_in_list(&(query->queries_to_server),
+ &(server->queries_to_server));
+}
+
+/*
+ * setsocknonblock sets the given socket to either blocking or non-blocking
+ * mode based on the 'nonblock' boolean argument. This function is highly
+ * portable.
+ */
+static int setsocknonblock(ares_socket_t sockfd, /* operate on this */
int nonblock /* TRUE or FALSE */)
-{
-#if defined(USE_BLOCKING_SOCKETS)
-
- return 0; /* returns success */
-
-#elif defined(HAVE_FCNTL_O_NONBLOCK)
-
- /* most recent unix versions */
- int flags;
- flags = fcntl(sockfd, F_GETFL, 0);
- if (FALSE != nonblock)
- return fcntl(sockfd, F_SETFL, flags | O_NONBLOCK);
- else
+{
+#if defined(USE_BLOCKING_SOCKETS)
+
+ return 0; /* returns success */
+
+#elif defined(HAVE_FCNTL_O_NONBLOCK)
+
+ /* most recent unix versions */
+ int flags;
+ flags = fcntl(sockfd, F_GETFL, 0);
+ if (FALSE != nonblock)
+ return fcntl(sockfd, F_SETFL, flags | O_NONBLOCK);
+ else
return fcntl(sockfd, F_SETFL, flags & (~O_NONBLOCK)); /* LCOV_EXCL_LINE */
-
-#elif defined(HAVE_IOCTL_FIONBIO)
-
- /* older unix versions */
- int flags = nonblock ? 1 : 0;
- return ioctl(sockfd, FIONBIO, &flags);
-
-#elif defined(HAVE_IOCTLSOCKET_FIONBIO)
-
-#ifdef WATT32
- char flags = nonblock ? 1 : 0;
-#else
- /* Windows */
- unsigned long flags = nonblock ? 1UL : 0UL;
-#endif
- return ioctlsocket(sockfd, FIONBIO, &flags);
-
-#elif defined(HAVE_IOCTLSOCKET_CAMEL_FIONBIO)
-
- /* Amiga */
- long flags = nonblock ? 1L : 0L;
- return IoctlSocket(sockfd, FIONBIO, flags);
-
-#elif defined(HAVE_SETSOCKOPT_SO_NONBLOCK)
-
- /* BeOS */
- long b = nonblock ? 1L : 0L;
- return setsockopt(sockfd, SOL_SOCKET, SO_NONBLOCK, &b, sizeof(b));
-
-#else
-# error "no non-blocking method was found/used/set"
-#endif
-}
-
-static int configure_socket(ares_socket_t s, int family, ares_channel channel)
-{
- union {
- struct sockaddr sa;
- struct sockaddr_in sa4;
- struct sockaddr_in6 sa6;
- } local;
-
+
+#elif defined(HAVE_IOCTL_FIONBIO)
+
+ /* older unix versions */
+ int flags = nonblock ? 1 : 0;
+ return ioctl(sockfd, FIONBIO, &flags);
+
+#elif defined(HAVE_IOCTLSOCKET_FIONBIO)
+
+#ifdef WATT32
+ char flags = nonblock ? 1 : 0;
+#else
+ /* Windows */
+ unsigned long flags = nonblock ? 1UL : 0UL;
+#endif
+ return ioctlsocket(sockfd, FIONBIO, &flags);
+
+#elif defined(HAVE_IOCTLSOCKET_CAMEL_FIONBIO)
+
+ /* Amiga */
+ long flags = nonblock ? 1L : 0L;
+ return IoctlSocket(sockfd, FIONBIO, flags);
+
+#elif defined(HAVE_SETSOCKOPT_SO_NONBLOCK)
+
+ /* BeOS */
+ long b = nonblock ? 1L : 0L;
+ return setsockopt(sockfd, SOL_SOCKET, SO_NONBLOCK, &b, sizeof(b));
+
+#else
+# error "no non-blocking method was found/used/set"
+#endif
+}
+
+static int configure_socket(ares_socket_t s, int family, ares_channel channel)
+{
+ union {
+ struct sockaddr sa;
+ struct sockaddr_in sa4;
+ struct sockaddr_in6 sa6;
+ } local;
+
/* do not set options for user-managed sockets */
if (channel->sock_funcs)
return 0;
-
+
(void)setsocknonblock(s, TRUE);
-#if defined(FD_CLOEXEC) && !defined(MSDOS)
- /* Configure the socket fd as close-on-exec. */
- if (fcntl(s, F_SETFD, FD_CLOEXEC) == -1)
+#if defined(FD_CLOEXEC) && !defined(MSDOS)
+ /* Configure the socket fd as close-on-exec. */
+ if (fcntl(s, F_SETFD, FD_CLOEXEC) == -1)
return -1; /* LCOV_EXCL_LINE */
-#endif
-
- /* Set the socket's send and receive buffer sizes. */
- if ((channel->socket_send_buffer_size > 0) &&
- setsockopt(s, SOL_SOCKET, SO_SNDBUF,
- (void *)&channel->socket_send_buffer_size,
- sizeof(channel->socket_send_buffer_size)) == -1)
- return -1;
-
- if ((channel->socket_receive_buffer_size > 0) &&
- setsockopt(s, SOL_SOCKET, SO_RCVBUF,
- (void *)&channel->socket_receive_buffer_size,
- sizeof(channel->socket_receive_buffer_size)) == -1)
- return -1;
-
-#ifdef SO_BINDTODEVICE
- if (channel->local_dev_name[0]) {
- if (setsockopt(s, SOL_SOCKET, SO_BINDTODEVICE,
- channel->local_dev_name, sizeof(channel->local_dev_name))) {
- /* Only root can do this, and usually not fatal if it doesn't work, so */
- /* just continue on. */
- }
- }
-#endif
-
- if (family == AF_INET) {
- if (channel->local_ip4) {
- memset(&local.sa4, 0, sizeof(local.sa4));
- local.sa4.sin_family = AF_INET;
- local.sa4.sin_addr.s_addr = htonl(channel->local_ip4);
- if (bind(s, &local.sa, sizeof(local.sa4)) < 0)
- return -1;
- }
- }
- else if (family == AF_INET6) {
- if (memcmp(channel->local_ip6, &ares_in6addr_any,
- sizeof(channel->local_ip6)) != 0) {
- memset(&local.sa6, 0, sizeof(local.sa6));
- local.sa6.sin6_family = AF_INET6;
- memcpy(&local.sa6.sin6_addr, channel->local_ip6,
- sizeof(channel->local_ip6));
- if (bind(s, &local.sa, sizeof(local.sa6)) < 0)
- return -1;
- }
- }
-
- return 0;
-}
-
-static int open_tcp_socket(ares_channel channel, struct server_state *server)
-{
- ares_socket_t s;
- int opt;
- ares_socklen_t salen;
- union {
- struct sockaddr_in sa4;
- struct sockaddr_in6 sa6;
- } saddr;
- struct sockaddr *sa;
-
- switch (server->addr.family)
- {
- case AF_INET:
- sa = (void *)&saddr.sa4;
- salen = sizeof(saddr.sa4);
- memset(sa, 0, salen);
- saddr.sa4.sin_family = AF_INET;
+#endif
+
+ /* Set the socket's send and receive buffer sizes. */
+ if ((channel->socket_send_buffer_size > 0) &&
+ setsockopt(s, SOL_SOCKET, SO_SNDBUF,
+ (void *)&channel->socket_send_buffer_size,
+ sizeof(channel->socket_send_buffer_size)) == -1)
+ return -1;
+
+ if ((channel->socket_receive_buffer_size > 0) &&
+ setsockopt(s, SOL_SOCKET, SO_RCVBUF,
+ (void *)&channel->socket_receive_buffer_size,
+ sizeof(channel->socket_receive_buffer_size)) == -1)
+ return -1;
+
+#ifdef SO_BINDTODEVICE
+ if (channel->local_dev_name[0]) {
+ if (setsockopt(s, SOL_SOCKET, SO_BINDTODEVICE,
+ channel->local_dev_name, sizeof(channel->local_dev_name))) {
+ /* Only root can do this, and usually not fatal if it doesn't work, so */
+ /* just continue on. */
+ }
+ }
+#endif
+
+ if (family == AF_INET) {
+ if (channel->local_ip4) {
+ memset(&local.sa4, 0, sizeof(local.sa4));
+ local.sa4.sin_family = AF_INET;
+ local.sa4.sin_addr.s_addr = htonl(channel->local_ip4);
+ if (bind(s, &local.sa, sizeof(local.sa4)) < 0)
+ return -1;
+ }
+ }
+ else if (family == AF_INET6) {
+ if (memcmp(channel->local_ip6, &ares_in6addr_any,
+ sizeof(channel->local_ip6)) != 0) {
+ memset(&local.sa6, 0, sizeof(local.sa6));
+ local.sa6.sin6_family = AF_INET6;
+ memcpy(&local.sa6.sin6_addr, channel->local_ip6,
+ sizeof(channel->local_ip6));
+ if (bind(s, &local.sa, sizeof(local.sa6)) < 0)
+ return -1;
+ }
+ }
+
+ return 0;
+}
+
+static int open_tcp_socket(ares_channel channel, struct server_state *server)
+{
+ ares_socket_t s;
+ int opt;
+ ares_socklen_t salen;
+ union {
+ struct sockaddr_in sa4;
+ struct sockaddr_in6 sa6;
+ } saddr;
+ struct sockaddr *sa;
+
+ switch (server->addr.family)
+ {
+ case AF_INET:
+ sa = (void *)&saddr.sa4;
+ salen = sizeof(saddr.sa4);
+ memset(sa, 0, salen);
+ saddr.sa4.sin_family = AF_INET;
if (server->addr.tcp_port) {
saddr.sa4.sin_port = aresx_sitous(server->addr.tcp_port);
} else {
saddr.sa4.sin_port = aresx_sitous(channel->tcp_port);
}
- memcpy(&saddr.sa4.sin_addr, &server->addr.addrV4,
- sizeof(server->addr.addrV4));
- break;
- case AF_INET6:
- sa = (void *)&saddr.sa6;
- salen = sizeof(saddr.sa6);
- memset(sa, 0, salen);
- saddr.sa6.sin6_family = AF_INET6;
+ memcpy(&saddr.sa4.sin_addr, &server->addr.addrV4,
+ sizeof(server->addr.addrV4));
+ break;
+ case AF_INET6:
+ sa = (void *)&saddr.sa6;
+ salen = sizeof(saddr.sa6);
+ memset(sa, 0, salen);
+ saddr.sa6.sin6_family = AF_INET6;
if (server->addr.tcp_port) {
saddr.sa6.sin6_port = aresx_sitous(server->addr.tcp_port);
} else {
saddr.sa6.sin6_port = aresx_sitous(channel->tcp_port);
}
- memcpy(&saddr.sa6.sin6_addr, &server->addr.addrV6,
- sizeof(server->addr.addrV6));
- break;
- default:
+ memcpy(&saddr.sa6.sin6_addr, &server->addr.addrV6,
+ sizeof(server->addr.addrV6));
+ break;
+ default:
return -1; /* LCOV_EXCL_LINE */
- }
-
- /* Acquire a socket. */
+ }
+
+ /* Acquire a socket. */
s = ares__open_socket(channel, server->addr.family, SOCK_STREAM, 0);
- if (s == ARES_SOCKET_BAD)
- return -1;
-
- /* Configure it. */
- if (configure_socket(s, server->addr.family, channel) < 0)
- {
+ if (s == ARES_SOCKET_BAD)
+ return -1;
+
+ /* Configure it. */
+ if (configure_socket(s, server->addr.family, channel) < 0)
+ {
ares__close_socket(channel, s);
- return -1;
- }
-
-#ifdef TCP_NODELAY
- /*
- * Disable the Nagle algorithm (only relevant for TCP sockets, and thus not
- * in configure_socket). In general, in DNS lookups we're pretty much
- * interested in firing off a single request and then waiting for a reply,
- * so batching isn't very interesting.
- */
- opt = 1;
+ return -1;
+ }
+
+#ifdef TCP_NODELAY
+ /*
+ * Disable the Nagle algorithm (only relevant for TCP sockets, and thus not
+ * in configure_socket). In general, in DNS lookups we're pretty much
+ * interested in firing off a single request and then waiting for a reply,
+ * so batching isn't very interesting.
+ */
+ opt = 1;
if (channel->sock_funcs == 0
&&
setsockopt(s, IPPROTO_TCP, TCP_NODELAY,
(void *)&opt, sizeof(opt)) == -1)
- {
+ {
ares__close_socket(channel, s);
- return -1;
- }
-#endif
-
+ return -1;
+ }
+#endif
+
if (channel->sock_config_cb)
{
int err = channel->sock_config_cb(s, SOCK_STREAM,
@@ -1144,90 +1144,90 @@ static int open_tcp_socket(ares_channel channel, struct server_state *server)
}
}
- /* Connect to the server. */
+ /* Connect to the server. */
if (ares__connect_socket(channel, s, sa, salen) == -1)
- {
- int err = SOCKERRNO;
-
- if (err != EINPROGRESS && err != EWOULDBLOCK)
- {
+ {
+ int err = SOCKERRNO;
+
+ if (err != EINPROGRESS && err != EWOULDBLOCK)
+ {
ares__close_socket(channel, s);
- return -1;
- }
- }
-
- if (channel->sock_create_cb)
- {
- int err = channel->sock_create_cb(s, SOCK_STREAM,
- channel->sock_create_cb_data);
- if (err < 0)
- {
+ return -1;
+ }
+ }
+
+ if (channel->sock_create_cb)
+ {
+ int err = channel->sock_create_cb(s, SOCK_STREAM,
+ channel->sock_create_cb_data);
+ if (err < 0)
+ {
ares__close_socket(channel, s);
- return err;
- }
- }
-
- SOCK_STATE_CALLBACK(channel, s, 1, 0);
- server->tcp_buffer_pos = 0;
- server->tcp_socket = s;
- server->tcp_connection_generation = ++channel->tcp_connection_generation;
- return 0;
-}
-
-static int open_udp_socket(ares_channel channel, struct server_state *server)
-{
- ares_socket_t s;
- ares_socklen_t salen;
- union {
- struct sockaddr_in sa4;
- struct sockaddr_in6 sa6;
- } saddr;
- struct sockaddr *sa;
-
- switch (server->addr.family)
- {
- case AF_INET:
- sa = (void *)&saddr.sa4;
- salen = sizeof(saddr.sa4);
- memset(sa, 0, salen);
- saddr.sa4.sin_family = AF_INET;
+ return err;
+ }
+ }
+
+ SOCK_STATE_CALLBACK(channel, s, 1, 0);
+ server->tcp_buffer_pos = 0;
+ server->tcp_socket = s;
+ server->tcp_connection_generation = ++channel->tcp_connection_generation;
+ return 0;
+}
+
+static int open_udp_socket(ares_channel channel, struct server_state *server)
+{
+ ares_socket_t s;
+ ares_socklen_t salen;
+ union {
+ struct sockaddr_in sa4;
+ struct sockaddr_in6 sa6;
+ } saddr;
+ struct sockaddr *sa;
+
+ switch (server->addr.family)
+ {
+ case AF_INET:
+ sa = (void *)&saddr.sa4;
+ salen = sizeof(saddr.sa4);
+ memset(sa, 0, salen);
+ saddr.sa4.sin_family = AF_INET;
if (server->addr.udp_port) {
saddr.sa4.sin_port = aresx_sitous(server->addr.udp_port);
} else {
saddr.sa4.sin_port = aresx_sitous(channel->udp_port);
}
- memcpy(&saddr.sa4.sin_addr, &server->addr.addrV4,
- sizeof(server->addr.addrV4));
- break;
- case AF_INET6:
- sa = (void *)&saddr.sa6;
- salen = sizeof(saddr.sa6);
- memset(sa, 0, salen);
- saddr.sa6.sin6_family = AF_INET6;
+ memcpy(&saddr.sa4.sin_addr, &server->addr.addrV4,
+ sizeof(server->addr.addrV4));
+ break;
+ case AF_INET6:
+ sa = (void *)&saddr.sa6;
+ salen = sizeof(saddr.sa6);
+ memset(sa, 0, salen);
+ saddr.sa6.sin6_family = AF_INET6;
if (server->addr.udp_port) {
saddr.sa6.sin6_port = aresx_sitous(server->addr.udp_port);
} else {
saddr.sa6.sin6_port = aresx_sitous(channel->udp_port);
}
- memcpy(&saddr.sa6.sin6_addr, &server->addr.addrV6,
- sizeof(server->addr.addrV6));
- break;
- default:
+ memcpy(&saddr.sa6.sin6_addr, &server->addr.addrV6,
+ sizeof(server->addr.addrV6));
+ break;
+ default:
return -1; /* LCOV_EXCL_LINE */
- }
-
- /* Acquire a socket. */
+ }
+
+ /* Acquire a socket. */
s = ares__open_socket(channel, server->addr.family, SOCK_DGRAM, 0);
- if (s == ARES_SOCKET_BAD)
- return -1;
-
- /* Set the socket non-blocking. */
- if (configure_socket(s, server->addr.family, channel) < 0)
- {
+ if (s == ARES_SOCKET_BAD)
+ return -1;
+
+ /* Set the socket non-blocking. */
+ if (configure_socket(s, server->addr.family, channel) < 0)
+ {
ares__close_socket(channel, s);
- return -1;
- }
-
+ return -1;
+ }
+
if (channel->sock_config_cb)
{
int err = channel->sock_config_cb(s, SOCK_DGRAM,
@@ -1239,227 +1239,227 @@ static int open_udp_socket(ares_channel channel, struct server_state *server)
}
}
- /* Connect to the server. */
+ /* Connect to the server. */
if (ares__connect_socket(channel, s, sa, salen) == -1)
- {
- int err = SOCKERRNO;
-
- if (err != EINPROGRESS && err != EWOULDBLOCK)
- {
+ {
+ int err = SOCKERRNO;
+
+ if (err != EINPROGRESS && err != EWOULDBLOCK)
+ {
ares__close_socket(channel, s);
- return -1;
- }
- }
-
- if (channel->sock_create_cb)
- {
- int err = channel->sock_create_cb(s, SOCK_DGRAM,
- channel->sock_create_cb_data);
- if (err < 0)
- {
+ return -1;
+ }
+ }
+
+ if (channel->sock_create_cb)
+ {
+ int err = channel->sock_create_cb(s, SOCK_DGRAM,
+ channel->sock_create_cb_data);
+ if (err < 0)
+ {
ares__close_socket(channel, s);
- return err;
- }
- }
-
- SOCK_STATE_CALLBACK(channel, s, 1, 0);
-
- server->udp_socket = s;
- return 0;
-}
-
-static int same_questions(const unsigned char *qbuf, int qlen,
- const unsigned char *abuf, int alen)
-{
- struct {
- const unsigned char *p;
- int qdcount;
- char *name;
- long namelen;
- int type;
- int dnsclass;
- } q, a;
- int i, j;
-
- if (qlen < HFIXEDSZ || alen < HFIXEDSZ)
- return 0;
-
- /* Extract qdcount from the request and reply buffers and compare them. */
- q.qdcount = DNS_HEADER_QDCOUNT(qbuf);
- a.qdcount = DNS_HEADER_QDCOUNT(abuf);
- if (q.qdcount != a.qdcount)
- return 0;
-
- /* For each question in qbuf, find it in abuf. */
- q.p = qbuf + HFIXEDSZ;
- for (i = 0; i < q.qdcount; i++)
- {
- /* Decode the question in the query. */
- if (ares_expand_name(q.p, qbuf, qlen, &q.name, &q.namelen)
- != ARES_SUCCESS)
- return 0;
- q.p += q.namelen;
- if (q.p + QFIXEDSZ > qbuf + qlen)
- {
+ return err;
+ }
+ }
+
+ SOCK_STATE_CALLBACK(channel, s, 1, 0);
+
+ server->udp_socket = s;
+ return 0;
+}
+
+static int same_questions(const unsigned char *qbuf, int qlen,
+ const unsigned char *abuf, int alen)
+{
+ struct {
+ const unsigned char *p;
+ int qdcount;
+ char *name;
+ long namelen;
+ int type;
+ int dnsclass;
+ } q, a;
+ int i, j;
+
+ if (qlen < HFIXEDSZ || alen < HFIXEDSZ)
+ return 0;
+
+ /* Extract qdcount from the request and reply buffers and compare them. */
+ q.qdcount = DNS_HEADER_QDCOUNT(qbuf);
+ a.qdcount = DNS_HEADER_QDCOUNT(abuf);
+ if (q.qdcount != a.qdcount)
+ return 0;
+
+ /* For each question in qbuf, find it in abuf. */
+ q.p = qbuf + HFIXEDSZ;
+ for (i = 0; i < q.qdcount; i++)
+ {
+ /* Decode the question in the query. */
+ if (ares_expand_name(q.p, qbuf, qlen, &q.name, &q.namelen)
+ != ARES_SUCCESS)
+ return 0;
+ q.p += q.namelen;
+ if (q.p + QFIXEDSZ > qbuf + qlen)
+ {
ares_free(q.name);
- return 0;
- }
- q.type = DNS_QUESTION_TYPE(q.p);
- q.dnsclass = DNS_QUESTION_CLASS(q.p);
- q.p += QFIXEDSZ;
-
- /* Search for this question in the answer. */
- a.p = abuf + HFIXEDSZ;
- for (j = 0; j < a.qdcount; j++)
- {
- /* Decode the question in the answer. */
- if (ares_expand_name(a.p, abuf, alen, &a.name, &a.namelen)
- != ARES_SUCCESS)
- {
+ return 0;
+ }
+ q.type = DNS_QUESTION_TYPE(q.p);
+ q.dnsclass = DNS_QUESTION_CLASS(q.p);
+ q.p += QFIXEDSZ;
+
+ /* Search for this question in the answer. */
+ a.p = abuf + HFIXEDSZ;
+ for (j = 0; j < a.qdcount; j++)
+ {
+ /* Decode the question in the answer. */
+ if (ares_expand_name(a.p, abuf, alen, &a.name, &a.namelen)
+ != ARES_SUCCESS)
+ {
ares_free(q.name);
- return 0;
- }
- a.p += a.namelen;
- if (a.p + QFIXEDSZ > abuf + alen)
- {
+ return 0;
+ }
+ a.p += a.namelen;
+ if (a.p + QFIXEDSZ > abuf + alen)
+ {
ares_free(q.name);
ares_free(a.name);
- return 0;
- }
- a.type = DNS_QUESTION_TYPE(a.p);
- a.dnsclass = DNS_QUESTION_CLASS(a.p);
- a.p += QFIXEDSZ;
-
- /* Compare the decoded questions. */
- if (strcasecmp(q.name, a.name) == 0 && q.type == a.type
- && q.dnsclass == a.dnsclass)
- {
+ return 0;
+ }
+ a.type = DNS_QUESTION_TYPE(a.p);
+ a.dnsclass = DNS_QUESTION_CLASS(a.p);
+ a.p += QFIXEDSZ;
+
+ /* Compare the decoded questions. */
+ if (strcasecmp(q.name, a.name) == 0 && q.type == a.type
+ && q.dnsclass == a.dnsclass)
+ {
ares_free(a.name);
- break;
- }
+ break;
+ }
ares_free(a.name);
- }
-
+ }
+
ares_free(q.name);
- if (j == a.qdcount)
- return 0;
- }
- return 1;
-}
-
-static int same_address(struct sockaddr *sa, struct ares_addr *aa)
-{
- void *addr1;
- void *addr2;
-
- if (sa->sa_family == aa->family)
- {
- switch (aa->family)
- {
- case AF_INET:
- addr1 = &aa->addrV4;
+ if (j == a.qdcount)
+ return 0;
+ }
+ return 1;
+}
+
+static int same_address(struct sockaddr *sa, struct ares_addr *aa)
+{
+ void *addr1;
+ void *addr2;
+
+ if (sa->sa_family == aa->family)
+ {
+ switch (aa->family)
+ {
+ case AF_INET:
+ addr1 = &aa->addrV4;
addr2 = &(CARES_INADDR_CAST(struct sockaddr_in *, sa))->sin_addr;
- if (memcmp(addr1, addr2, sizeof(aa->addrV4)) == 0)
- return 1; /* match */
- break;
- case AF_INET6:
- addr1 = &aa->addrV6;
+ if (memcmp(addr1, addr2, sizeof(aa->addrV4)) == 0)
+ return 1; /* match */
+ break;
+ case AF_INET6:
+ addr1 = &aa->addrV6;
addr2 = &(CARES_INADDR_CAST(struct sockaddr_in6 *, sa))->sin6_addr;
- if (memcmp(addr1, addr2, sizeof(aa->addrV6)) == 0)
- return 1; /* match */
- break;
- default:
+ if (memcmp(addr1, addr2, sizeof(aa->addrV6)) == 0)
+ return 1; /* match */
+ break;
+ default:
break; /* LCOV_EXCL_LINE */
- }
- }
- return 0; /* different */
-}
-
-static void end_query (ares_channel channel, struct query *query, int status,
- unsigned char *abuf, int alen)
-{
- int i;
-
- /* First we check to see if this query ended while one of our send
- * queues still has pointers to it.
- */
- for (i = 0; i < channel->nservers; i++)
- {
- struct server_state *server = &channel->servers[i];
- struct send_request *sendreq;
- for (sendreq = server->qhead; sendreq; sendreq = sendreq->next)
- if (sendreq->owner_query == query)
- {
- sendreq->owner_query = NULL;
- assert(sendreq->data_storage == NULL);
- if (status == ARES_SUCCESS)
- {
- /* We got a reply for this query, but this queued sendreq
- * points into this soon-to-be-gone query's tcpbuf. Probably
- * this means we timed out and queued the query for
- * retransmission, then received a response before actually
- * retransmitting. This is perfectly fine, so we want to keep
- * the connection running smoothly if we can. But in the worst
- * case we may have sent only some prefix of the query, with
- * some suffix of the query left to send. Also, the buffer may
- * be queued on multiple queues. To prevent dangling pointers
- * to the query's tcpbuf and handle these cases, we just give
- * such sendreqs their own copy of the query packet.
- */
+ }
+ }
+ return 0; /* different */
+}
+
+static void end_query (ares_channel channel, struct query *query, int status,
+ unsigned char *abuf, int alen)
+{
+ int i;
+
+ /* First we check to see if this query ended while one of our send
+ * queues still has pointers to it.
+ */
+ for (i = 0; i < channel->nservers; i++)
+ {
+ struct server_state *server = &channel->servers[i];
+ struct send_request *sendreq;
+ for (sendreq = server->qhead; sendreq; sendreq = sendreq->next)
+ if (sendreq->owner_query == query)
+ {
+ sendreq->owner_query = NULL;
+ assert(sendreq->data_storage == NULL);
+ if (status == ARES_SUCCESS)
+ {
+ /* We got a reply for this query, but this queued sendreq
+ * points into this soon-to-be-gone query's tcpbuf. Probably
+ * this means we timed out and queued the query for
+ * retransmission, then received a response before actually
+ * retransmitting. This is perfectly fine, so we want to keep
+ * the connection running smoothly if we can. But in the worst
+ * case we may have sent only some prefix of the query, with
+ * some suffix of the query left to send. Also, the buffer may
+ * be queued on multiple queues. To prevent dangling pointers
+ * to the query's tcpbuf and handle these cases, we just give
+ * such sendreqs their own copy of the query packet.
+ */
sendreq->data_storage = ares_malloc(sendreq->len);
- if (sendreq->data_storage != NULL)
- {
- memcpy(sendreq->data_storage, sendreq->data, sendreq->len);
- sendreq->data = sendreq->data_storage;
- }
- }
- if ((status != ARES_SUCCESS) || (sendreq->data_storage == NULL))
- {
- /* We encountered an error (probably a timeout, suggesting the
- * DNS server we're talking to is probably unreachable,
- * wedged, or severely overloaded) or we couldn't copy the
- * request, so mark the connection as broken. When we get to
- * process_broken_connections() we'll close the connection and
- * try to re-send requests to another server.
- */
- server->is_broken = 1;
- /* Just to be paranoid, zero out this sendreq... */
- sendreq->data = NULL;
- sendreq->len = 0;
- }
- }
- }
-
- /* Invoke the callback */
- query->callback(query->arg, status, query->timeouts, abuf, alen);
- ares__free_query(query);
-
- /* Simple cleanup policy: if no queries are remaining, close all network
- * sockets unless STAYOPEN is set.
- */
- if (!(channel->flags & ARES_FLAG_STAYOPEN) &&
- ares__is_list_empty(&(channel->all_queries)))
- {
- for (i = 0; i < channel->nservers; i++)
- ares__close_sockets(channel, &channel->servers[i]);
- }
-}
-
-void ares__free_query(struct query *query)
-{
- /* Remove the query from all the lists in which it is linked */
- ares__remove_from_list(&(query->queries_by_qid));
- ares__remove_from_list(&(query->queries_by_timeout));
- ares__remove_from_list(&(query->queries_to_server));
- ares__remove_from_list(&(query->all_queries));
- /* Zero out some important stuff, to help catch bugs */
- query->callback = NULL;
- query->arg = NULL;
- /* Deallocate the memory associated with the query */
+ if (sendreq->data_storage != NULL)
+ {
+ memcpy(sendreq->data_storage, sendreq->data, sendreq->len);
+ sendreq->data = sendreq->data_storage;
+ }
+ }
+ if ((status != ARES_SUCCESS) || (sendreq->data_storage == NULL))
+ {
+ /* We encountered an error (probably a timeout, suggesting the
+ * DNS server we're talking to is probably unreachable,
+ * wedged, or severely overloaded) or we couldn't copy the
+ * request, so mark the connection as broken. When we get to
+ * process_broken_connections() we'll close the connection and
+ * try to re-send requests to another server.
+ */
+ server->is_broken = 1;
+ /* Just to be paranoid, zero out this sendreq... */
+ sendreq->data = NULL;
+ sendreq->len = 0;
+ }
+ }
+ }
+
+ /* Invoke the callback */
+ query->callback(query->arg, status, query->timeouts, abuf, alen);
+ ares__free_query(query);
+
+ /* Simple cleanup policy: if no queries are remaining, close all network
+ * sockets unless STAYOPEN is set.
+ */
+ if (!(channel->flags & ARES_FLAG_STAYOPEN) &&
+ ares__is_list_empty(&(channel->all_queries)))
+ {
+ for (i = 0; i < channel->nservers; i++)
+ ares__close_sockets(channel, &channel->servers[i]);
+ }
+}
+
+void ares__free_query(struct query *query)
+{
+ /* Remove the query from all the lists in which it is linked */
+ ares__remove_from_list(&(query->queries_by_qid));
+ ares__remove_from_list(&(query->queries_by_timeout));
+ ares__remove_from_list(&(query->queries_to_server));
+ ares__remove_from_list(&(query->all_queries));
+ /* Zero out some important stuff, to help catch bugs */
+ query->callback = NULL;
+ query->arg = NULL;
+ /* Deallocate the memory associated with the query */
ares_free(query->tcpbuf);
ares_free(query->server_info);
ares_free(query);
-}
+}
ares_socket_t ares__open_socket(ares_channel channel,
int af, int type, int protocol)
diff --git a/contrib/libs/c-ares/ares_query.c b/contrib/libs/c-ares/ares_query.c
index ffa33f89d5..b38b8a6c22 100644
--- a/contrib/libs/c-ares/ares_query.c
+++ b/contrib/libs/c-ares/ares_query.c
@@ -1,186 +1,186 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-# include <arpa/nameser_compat.h>
-#endif
-
-#include "ares.h"
-#include "ares_dns.h"
-#include "ares_private.h"
-
-struct qquery {
- ares_callback callback;
- void *arg;
-};
-
-static void qcallback(void *arg, int status, int timeouts, unsigned char *abuf, int alen);
-
-static void rc4(rc4_key* key, unsigned char *buffer_ptr, int buffer_len)
-{
- unsigned char x;
- unsigned char y;
- unsigned char* state;
- unsigned char xorIndex;
- short counter;
-
- x = key->x;
- y = key->y;
-
- state = &key->state[0];
- for(counter = 0; counter < buffer_len; counter ++)
- {
- x = (unsigned char)((x + 1) % 256);
- y = (unsigned char)((state[x] + y) % 256);
- ARES_SWAP_BYTE(&state[x], &state[y]);
-
- xorIndex = (unsigned char)((state[x] + state[y]) % 256);
-
- buffer_ptr[counter] = (unsigned char)(buffer_ptr[counter]^state[xorIndex]);
- }
- key->x = x;
- key->y = y;
-}
-
-static struct query* find_query_by_id(ares_channel channel, unsigned short id)
-{
- unsigned short qid;
- struct list_node* list_head;
- struct list_node* list_node;
- DNS_HEADER_SET_QID(((unsigned char*)&qid), id);
-
- /* Find the query corresponding to this packet. */
- list_head = &(channel->queries_by_qid[qid % ARES_QID_TABLE_SIZE]);
- for (list_node = list_head->next; list_node != list_head;
- list_node = list_node->next)
- {
- struct query *q = list_node->data;
- if (q->qid == qid)
- return q;
- }
- return NULL;
-}
-
-
-/* a unique query id is generated using an rc4 key. Since the id may already
- be used by a running query (as infrequent as it may be), a lookup is
- performed per id generation. In practice this search should happen only
- once per newly generated id
-*/
-static unsigned short generate_unique_id(ares_channel channel)
-{
- unsigned short id;
-
- do {
- id = ares__generate_new_id(&channel->id_key);
- } while (find_query_by_id(channel, id));
-
- return (unsigned short)id;
-}
-
-unsigned short ares__generate_new_id(rc4_key* key)
-{
- unsigned short r=0;
- rc4(key, (unsigned char *)&r, sizeof(r));
- return r;
-}
-
-void ares_query(ares_channel channel, const char *name, int dnsclass,
- int type, ares_callback callback, void *arg)
-{
- struct qquery *qquery;
- unsigned char *qbuf;
- int qlen, rd, status;
-
- /* Compose the query. */
- rd = !(channel->flags & ARES_FLAG_NORECURSE);
- status = ares_create_query(name, dnsclass, type, channel->next_id, rd, &qbuf,
- &qlen, (channel->flags & ARES_FLAG_EDNS) ? channel->ednspsz : 0);
- if (status != ARES_SUCCESS)
- {
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
+# include <arpa/nameser_compat.h>
+#endif
+
+#include "ares.h"
+#include "ares_dns.h"
+#include "ares_private.h"
+
+struct qquery {
+ ares_callback callback;
+ void *arg;
+};
+
+static void qcallback(void *arg, int status, int timeouts, unsigned char *abuf, int alen);
+
+static void rc4(rc4_key* key, unsigned char *buffer_ptr, int buffer_len)
+{
+ unsigned char x;
+ unsigned char y;
+ unsigned char* state;
+ unsigned char xorIndex;
+ short counter;
+
+ x = key->x;
+ y = key->y;
+
+ state = &key->state[0];
+ for(counter = 0; counter < buffer_len; counter ++)
+ {
+ x = (unsigned char)((x + 1) % 256);
+ y = (unsigned char)((state[x] + y) % 256);
+ ARES_SWAP_BYTE(&state[x], &state[y]);
+
+ xorIndex = (unsigned char)((state[x] + state[y]) % 256);
+
+ buffer_ptr[counter] = (unsigned char)(buffer_ptr[counter]^state[xorIndex]);
+ }
+ key->x = x;
+ key->y = y;
+}
+
+static struct query* find_query_by_id(ares_channel channel, unsigned short id)
+{
+ unsigned short qid;
+ struct list_node* list_head;
+ struct list_node* list_node;
+ DNS_HEADER_SET_QID(((unsigned char*)&qid), id);
+
+ /* Find the query corresponding to this packet. */
+ list_head = &(channel->queries_by_qid[qid % ARES_QID_TABLE_SIZE]);
+ for (list_node = list_head->next; list_node != list_head;
+ list_node = list_node->next)
+ {
+ struct query *q = list_node->data;
+ if (q->qid == qid)
+ return q;
+ }
+ return NULL;
+}
+
+
+/* a unique query id is generated using an rc4 key. Since the id may already
+ be used by a running query (as infrequent as it may be), a lookup is
+ performed per id generation. In practice this search should happen only
+ once per newly generated id
+*/
+static unsigned short generate_unique_id(ares_channel channel)
+{
+ unsigned short id;
+
+ do {
+ id = ares__generate_new_id(&channel->id_key);
+ } while (find_query_by_id(channel, id));
+
+ return (unsigned short)id;
+}
+
+unsigned short ares__generate_new_id(rc4_key* key)
+{
+ unsigned short r=0;
+ rc4(key, (unsigned char *)&r, sizeof(r));
+ return r;
+}
+
+void ares_query(ares_channel channel, const char *name, int dnsclass,
+ int type, ares_callback callback, void *arg)
+{
+ struct qquery *qquery;
+ unsigned char *qbuf;
+ int qlen, rd, status;
+
+ /* Compose the query. */
+ rd = !(channel->flags & ARES_FLAG_NORECURSE);
+ status = ares_create_query(name, dnsclass, type, channel->next_id, rd, &qbuf,
+ &qlen, (channel->flags & ARES_FLAG_EDNS) ? channel->ednspsz : 0);
+ if (status != ARES_SUCCESS)
+ {
if (qbuf != NULL) ares_free(qbuf);
- callback(arg, status, 0, NULL, 0);
- return;
- }
-
- channel->next_id = generate_unique_id(channel);
-
- /* Allocate and fill in the query structure. */
+ callback(arg, status, 0, NULL, 0);
+ return;
+ }
+
+ channel->next_id = generate_unique_id(channel);
+
+ /* Allocate and fill in the query structure. */
qquery = ares_malloc(sizeof(struct qquery));
- if (!qquery)
- {
- ares_free_string(qbuf);
- callback(arg, ARES_ENOMEM, 0, NULL, 0);
- return;
- }
- qquery->callback = callback;
- qquery->arg = arg;
-
- /* Send it off. qcallback will be called when we get an answer. */
- ares_send(channel, qbuf, qlen, qcallback, qquery);
- ares_free_string(qbuf);
-}
-
-static void qcallback(void *arg, int status, int timeouts, unsigned char *abuf, int alen)
-{
- struct qquery *qquery = (struct qquery *) arg;
- unsigned int ancount;
- int rcode;
-
- if (status != ARES_SUCCESS)
- qquery->callback(qquery->arg, status, timeouts, abuf, alen);
- else
- {
- /* Pull the response code and answer count from the packet. */
- rcode = DNS_HEADER_RCODE(abuf);
- ancount = DNS_HEADER_ANCOUNT(abuf);
-
- /* Convert errors. */
- switch (rcode)
- {
- case NOERROR:
- status = (ancount > 0) ? ARES_SUCCESS : ARES_ENODATA;
- break;
- case FORMERR:
- status = ARES_EFORMERR;
- break;
- case SERVFAIL:
- status = ARES_ESERVFAIL;
- break;
- case NXDOMAIN:
- status = ARES_ENOTFOUND;
- break;
- case NOTIMP:
- status = ARES_ENOTIMP;
- break;
- case REFUSED:
- status = ARES_EREFUSED;
- break;
- }
- qquery->callback(qquery->arg, status, timeouts, abuf, alen);
- }
+ if (!qquery)
+ {
+ ares_free_string(qbuf);
+ callback(arg, ARES_ENOMEM, 0, NULL, 0);
+ return;
+ }
+ qquery->callback = callback;
+ qquery->arg = arg;
+
+ /* Send it off. qcallback will be called when we get an answer. */
+ ares_send(channel, qbuf, qlen, qcallback, qquery);
+ ares_free_string(qbuf);
+}
+
+static void qcallback(void *arg, int status, int timeouts, unsigned char *abuf, int alen)
+{
+ struct qquery *qquery = (struct qquery *) arg;
+ unsigned int ancount;
+ int rcode;
+
+ if (status != ARES_SUCCESS)
+ qquery->callback(qquery->arg, status, timeouts, abuf, alen);
+ else
+ {
+ /* Pull the response code and answer count from the packet. */
+ rcode = DNS_HEADER_RCODE(abuf);
+ ancount = DNS_HEADER_ANCOUNT(abuf);
+
+ /* Convert errors. */
+ switch (rcode)
+ {
+ case NOERROR:
+ status = (ancount > 0) ? ARES_SUCCESS : ARES_ENODATA;
+ break;
+ case FORMERR:
+ status = ARES_EFORMERR;
+ break;
+ case SERVFAIL:
+ status = ARES_ESERVFAIL;
+ break;
+ case NXDOMAIN:
+ status = ARES_ENOTFOUND;
+ break;
+ case NOTIMP:
+ status = ARES_ENOTIMP;
+ break;
+ case REFUSED:
+ status = ARES_EREFUSED;
+ break;
+ }
+ qquery->callback(qquery->arg, status, timeouts, abuf, alen);
+ }
ares_free(qquery);
-}
+}
diff --git a/contrib/libs/c-ares/ares_rules.h b/contrib/libs/c-ares/ares_rules.h
index 0c24445e12..cac23cf2e3 100644
--- a/contrib/libs/c-ares/ares_rules.h
+++ b/contrib/libs/c-ares/ares_rules.h
@@ -1,125 +1,125 @@
-#ifndef __CARES_RULES_H
-#define __CARES_RULES_H
-
-
-/* Copyright (C) 2009 by Daniel Stenberg et al
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. M.I.T. makes no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-/* ================================================================ */
-/* COMPILE TIME SANITY CHECKS */
-/* ================================================================ */
-
-/*
- * NOTE 1:
- * -------
- *
- * All checks done in this file are intentionally placed in a public
- * header file which is pulled by ares.h when an application is
- * being built using an already built c-ares library. Additionally
- * this file is also included and used when building the library.
- *
- * If compilation fails on this file it is certainly sure that the
- * problem is elsewhere. It could be a problem in the ares_build.h
- * header file, or simply that you are using different compilation
- * settings than those used to build the library.
- *
- * Nothing in this file is intended to be modified or adjusted by the
- * c-ares library user nor by the c-ares library builder.
- *
- * Do not deactivate any check, these are done to make sure that the
- * library is properly built and used.
- *
- * You can find further help on the c-ares development mailing list:
- * http://cool.haxx.se/mailman/listinfo/c-ares/
- *
- * NOTE 2
- * ------
- *
- * Some of the following compile time checks are based on the fact
- * that the dimension of a constant array can not be a negative one.
- * In this way if the compile time verification fails, the compilation
- * will fail issuing an error. The error description wording is compiler
- * dependent but it will be quite similar to one of the following:
- *
- * "negative subscript or subscript is too large"
- * "array must have at least one element"
- * "-1 is an illegal array size"
- * "size of array is negative"
- *
- * If you are building an application which tries to use an already
- * built c-ares library and you are getting this kind of errors on
- * this file, it is a clear indication that there is a mismatch between
- * how the library was built and how you are trying to use it for your
- * application. Your already compiled or binary library provider is the
- * only one who can give you the details you need to properly use it.
- */
-
-/*
- * Verify that some macros are actually defined.
- */
-
-#ifndef CARES_TYPEOF_ARES_SOCKLEN_T
-# error "CARES_TYPEOF_ARES_SOCKLEN_T definition is missing!"
- Error Compilation_aborted_CARES_TYPEOF_ARES_SOCKLEN_T_is_missing
-#endif
-
-/*
- * Macros private to this header file.
- */
-
-#define CareschkszEQ(t, s) sizeof(t) == s ? 1 : -1
-
-#define CareschkszGE(t1, t2) sizeof(t1) >= sizeof(t2) ? 1 : -1
-
-/*
- * Verify that the size previously defined and expected for
+#ifndef __CARES_RULES_H
+#define __CARES_RULES_H
+
+
+/* Copyright (C) 2009 by Daniel Stenberg et al
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. M.I.T. makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+/* ================================================================ */
+/* COMPILE TIME SANITY CHECKS */
+/* ================================================================ */
+
+/*
+ * NOTE 1:
+ * -------
+ *
+ * All checks done in this file are intentionally placed in a public
+ * header file which is pulled by ares.h when an application is
+ * being built using an already built c-ares library. Additionally
+ * this file is also included and used when building the library.
+ *
+ * If compilation fails on this file it is certainly sure that the
+ * problem is elsewhere. It could be a problem in the ares_build.h
+ * header file, or simply that you are using different compilation
+ * settings than those used to build the library.
+ *
+ * Nothing in this file is intended to be modified or adjusted by the
+ * c-ares library user nor by the c-ares library builder.
+ *
+ * Do not deactivate any check, these are done to make sure that the
+ * library is properly built and used.
+ *
+ * You can find further help on the c-ares development mailing list:
+ * http://cool.haxx.se/mailman/listinfo/c-ares/
+ *
+ * NOTE 2
+ * ------
+ *
+ * Some of the following compile time checks are based on the fact
+ * that the dimension of a constant array can not be a negative one.
+ * In this way if the compile time verification fails, the compilation
+ * will fail issuing an error. The error description wording is compiler
+ * dependent but it will be quite similar to one of the following:
+ *
+ * "negative subscript or subscript is too large"
+ * "array must have at least one element"
+ * "-1 is an illegal array size"
+ * "size of array is negative"
+ *
+ * If you are building an application which tries to use an already
+ * built c-ares library and you are getting this kind of errors on
+ * this file, it is a clear indication that there is a mismatch between
+ * how the library was built and how you are trying to use it for your
+ * application. Your already compiled or binary library provider is the
+ * only one who can give you the details you need to properly use it.
+ */
+
+/*
+ * Verify that some macros are actually defined.
+ */
+
+#ifndef CARES_TYPEOF_ARES_SOCKLEN_T
+# error "CARES_TYPEOF_ARES_SOCKLEN_T definition is missing!"
+ Error Compilation_aborted_CARES_TYPEOF_ARES_SOCKLEN_T_is_missing
+#endif
+
+/*
+ * Macros private to this header file.
+ */
+
+#define CareschkszEQ(t, s) sizeof(t) == s ? 1 : -1
+
+#define CareschkszGE(t1, t2) sizeof(t1) >= sizeof(t2) ? 1 : -1
+
+/*
+ * Verify that the size previously defined and expected for
* ares_socklen_t is actually the same as the one reported
- * by sizeof() at compile time.
- */
-
-typedef char
- __cares_rule_02__
+ * by sizeof() at compile time.
+ */
+
+typedef char
+ __cares_rule_02__
[CareschkszEQ(ares_socklen_t, sizeof(CARES_TYPEOF_ARES_SOCKLEN_T))];
-
-/*
- * Verify at compile time that the size of ares_socklen_t as reported
- * by sizeof() is greater or equal than the one reported for int for
- * the current compilation.
- */
-
-typedef char
- __cares_rule_03__
- [CareschkszGE(ares_socklen_t, int)];
-
-/* ================================================================ */
-/* EXTERNALLY AND INTERNALLY VISIBLE DEFINITIONS */
-/* ================================================================ */
-
-/*
- * Get rid of macros private to this header file.
- */
-
-#undef CareschkszEQ
-#undef CareschkszGE
-
-/*
- * Get rid of macros not intended to exist beyond this point.
- */
-
-#undef CARES_PULL_WS2TCPIP_H
-#undef CARES_PULL_SYS_TYPES_H
-#undef CARES_PULL_SYS_SOCKET_H
-
-#undef CARES_TYPEOF_ARES_SOCKLEN_T
-
-#endif /* __CARES_RULES_H */
+
+/*
+ * Verify at compile time that the size of ares_socklen_t as reported
+ * by sizeof() is greater or equal than the one reported for int for
+ * the current compilation.
+ */
+
+typedef char
+ __cares_rule_03__
+ [CareschkszGE(ares_socklen_t, int)];
+
+/* ================================================================ */
+/* EXTERNALLY AND INTERNALLY VISIBLE DEFINITIONS */
+/* ================================================================ */
+
+/*
+ * Get rid of macros private to this header file.
+ */
+
+#undef CareschkszEQ
+#undef CareschkszGE
+
+/*
+ * Get rid of macros not intended to exist beyond this point.
+ */
+
+#undef CARES_PULL_WS2TCPIP_H
+#undef CARES_PULL_SYS_TYPES_H
+#undef CARES_PULL_SYS_SOCKET_H
+
+#undef CARES_TYPEOF_ARES_SOCKLEN_T
+
+#endif /* __CARES_RULES_H */
diff --git a/contrib/libs/c-ares/ares_search.c b/contrib/libs/c-ares/ares_search.c
index f08ebe36e7..c4b0424f5b 100644
--- a/contrib/libs/c-ares/ares_search.c
+++ b/contrib/libs/c-ares/ares_search.c
@@ -1,57 +1,57 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_STRINGS_H
-# include <strings.h>
-#endif
-
-#include "ares.h"
-#include "ares_private.h"
-
-struct search_query {
- /* Arguments passed to ares_search */
- ares_channel channel;
- char *name; /* copied into an allocated buffer */
- int dnsclass;
- int type;
- ares_callback callback;
- void *arg;
-
- int status_as_is; /* error status from trying as-is */
- int next_domain; /* next search domain to try */
- int trying_as_is; /* current query is for name as-is */
- int timeouts; /* number of timeouts we saw for this request */
- int ever_got_nodata; /* did we ever get ARES_ENODATA along the way? */
-};
-
-static void search_callback(void *arg, int status, int timeouts,
- unsigned char *abuf, int alen);
-static void end_squery(struct search_query *squery, int status,
- unsigned char *abuf, int alen);
-
-void ares_search(ares_channel channel, const char *name, int dnsclass,
- int type, ares_callback callback, void *arg)
-{
- struct search_query *squery;
- char *s;
- const char *p;
- int status, ndots;
-
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_STRINGS_H
+# include <strings.h>
+#endif
+
+#include "ares.h"
+#include "ares_private.h"
+
+struct search_query {
+ /* Arguments passed to ares_search */
+ ares_channel channel;
+ char *name; /* copied into an allocated buffer */
+ int dnsclass;
+ int type;
+ ares_callback callback;
+ void *arg;
+
+ int status_as_is; /* error status from trying as-is */
+ int next_domain; /* next search domain to try */
+ int trying_as_is; /* current query is for name as-is */
+ int timeouts; /* number of timeouts we saw for this request */
+ int ever_got_nodata; /* did we ever get ARES_ENODATA along the way? */
+};
+
+static void search_callback(void *arg, int status, int timeouts,
+ unsigned char *abuf, int alen);
+static void end_squery(struct search_query *squery, int status,
+ unsigned char *abuf, int alen);
+
+void ares_search(ares_channel channel, const char *name, int dnsclass,
+ int type, ares_callback callback, void *arg)
+{
+ struct search_query *squery;
+ char *s;
+ const char *p;
+ int status, ndots;
+
/* Per RFC 7686, reject queries for ".onion" domain names with NXDOMAIN. */
if (ares__is_onion_domain(name))
{
@@ -59,263 +59,263 @@ void ares_search(ares_channel channel, const char *name, int dnsclass,
return;
}
- /* If name only yields one domain to search, then we don't have
- * to keep extra state, so just do an ares_query().
- */
+ /* If name only yields one domain to search, then we don't have
+ * to keep extra state, so just do an ares_query().
+ */
status = ares__single_domain(channel, name, &s);
- if (status != ARES_SUCCESS)
- {
- callback(arg, status, 0, NULL, 0);
- return;
- }
- if (s)
- {
- ares_query(channel, s, dnsclass, type, callback, arg);
+ if (status != ARES_SUCCESS)
+ {
+ callback(arg, status, 0, NULL, 0);
+ return;
+ }
+ if (s)
+ {
+ ares_query(channel, s, dnsclass, type, callback, arg);
ares_free(s);
- return;
- }
-
- /* Allocate a search_query structure to hold the state necessary for
- * doing multiple lookups.
- */
+ return;
+ }
+
+ /* Allocate a search_query structure to hold the state necessary for
+ * doing multiple lookups.
+ */
squery = ares_malloc(sizeof(struct search_query));
- if (!squery)
- {
- callback(arg, ARES_ENOMEM, 0, NULL, 0);
- return;
- }
- squery->channel = channel;
+ if (!squery)
+ {
+ callback(arg, ARES_ENOMEM, 0, NULL, 0);
+ return;
+ }
+ squery->channel = channel;
squery->name = ares_strdup(name);
- if (!squery->name)
- {
+ if (!squery->name)
+ {
ares_free(squery);
- callback(arg, ARES_ENOMEM, 0, NULL, 0);
- return;
- }
- squery->dnsclass = dnsclass;
- squery->type = type;
- squery->status_as_is = -1;
- squery->callback = callback;
- squery->arg = arg;
- squery->timeouts = 0;
- squery->ever_got_nodata = 0;
-
- /* Count the number of dots in name. */
- ndots = 0;
- for (p = name; *p; p++)
- {
- if (*p == '.')
- ndots++;
- }
-
- /* If ndots is at least the channel ndots threshold (usually 1),
- * then we try the name as-is first. Otherwise, we try the name
- * as-is last.
- */
- if (ndots >= channel->ndots)
- {
- /* Try the name as-is first. */
- squery->next_domain = 0;
- squery->trying_as_is = 1;
- ares_query(channel, name, dnsclass, type, search_callback, squery);
- }
- else
- {
- /* Try the name as-is last; start with the first search domain. */
- squery->next_domain = 1;
- squery->trying_as_is = 0;
+ callback(arg, ARES_ENOMEM, 0, NULL, 0);
+ return;
+ }
+ squery->dnsclass = dnsclass;
+ squery->type = type;
+ squery->status_as_is = -1;
+ squery->callback = callback;
+ squery->arg = arg;
+ squery->timeouts = 0;
+ squery->ever_got_nodata = 0;
+
+ /* Count the number of dots in name. */
+ ndots = 0;
+ for (p = name; *p; p++)
+ {
+ if (*p == '.')
+ ndots++;
+ }
+
+ /* If ndots is at least the channel ndots threshold (usually 1),
+ * then we try the name as-is first. Otherwise, we try the name
+ * as-is last.
+ */
+ if (ndots >= channel->ndots)
+ {
+ /* Try the name as-is first. */
+ squery->next_domain = 0;
+ squery->trying_as_is = 1;
+ ares_query(channel, name, dnsclass, type, search_callback, squery);
+ }
+ else
+ {
+ /* Try the name as-is last; start with the first search domain. */
+ squery->next_domain = 1;
+ squery->trying_as_is = 0;
status = ares__cat_domain(name, channel->domains[0], &s);
- if (status == ARES_SUCCESS)
- {
- ares_query(channel, s, dnsclass, type, search_callback, squery);
+ if (status == ARES_SUCCESS)
+ {
+ ares_query(channel, s, dnsclass, type, search_callback, squery);
ares_free(s);
- }
- else
- {
- /* failed, free the malloc()ed memory */
+ }
+ else
+ {
+ /* failed, free the malloc()ed memory */
ares_free(squery->name);
ares_free(squery);
- callback(arg, status, 0, NULL, 0);
- }
- }
-}
-
-static void search_callback(void *arg, int status, int timeouts,
- unsigned char *abuf, int alen)
-{
- struct search_query *squery = (struct search_query *) arg;
- ares_channel channel = squery->channel;
- char *s;
-
- squery->timeouts += timeouts;
-
- /* Stop searching unless we got a non-fatal error. */
- if (status != ARES_ENODATA && status != ARES_ESERVFAIL
- && status != ARES_ENOTFOUND)
- end_squery(squery, status, abuf, alen);
- else
- {
- /* Save the status if we were trying as-is. */
- if (squery->trying_as_is)
- squery->status_as_is = status;
-
- /*
- * If we ever get ARES_ENODATA along the way, record that; if the search
- * should run to the very end and we got at least one ARES_ENODATA,
- * then callers like ares_gethostbyname() may want to try a T_A search
- * even if the last domain we queried for T_AAAA resource records
- * returned ARES_ENOTFOUND.
- */
- if (status == ARES_ENODATA)
- squery->ever_got_nodata = 1;
-
- if (squery->next_domain < channel->ndomains)
- {
- /* Try the next domain. */
+ callback(arg, status, 0, NULL, 0);
+ }
+ }
+}
+
+static void search_callback(void *arg, int status, int timeouts,
+ unsigned char *abuf, int alen)
+{
+ struct search_query *squery = (struct search_query *) arg;
+ ares_channel channel = squery->channel;
+ char *s;
+
+ squery->timeouts += timeouts;
+
+ /* Stop searching unless we got a non-fatal error. */
+ if (status != ARES_ENODATA && status != ARES_ESERVFAIL
+ && status != ARES_ENOTFOUND)
+ end_squery(squery, status, abuf, alen);
+ else
+ {
+ /* Save the status if we were trying as-is. */
+ if (squery->trying_as_is)
+ squery->status_as_is = status;
+
+ /*
+ * If we ever get ARES_ENODATA along the way, record that; if the search
+ * should run to the very end and we got at least one ARES_ENODATA,
+ * then callers like ares_gethostbyname() may want to try a T_A search
+ * even if the last domain we queried for T_AAAA resource records
+ * returned ARES_ENOTFOUND.
+ */
+ if (status == ARES_ENODATA)
+ squery->ever_got_nodata = 1;
+
+ if (squery->next_domain < channel->ndomains)
+ {
+ /* Try the next domain. */
status = ares__cat_domain(squery->name,
- channel->domains[squery->next_domain], &s);
- if (status != ARES_SUCCESS)
- end_squery(squery, status, NULL, 0);
- else
- {
- squery->trying_as_is = 0;
- squery->next_domain++;
- ares_query(channel, s, squery->dnsclass, squery->type,
- search_callback, squery);
+ channel->domains[squery->next_domain], &s);
+ if (status != ARES_SUCCESS)
+ end_squery(squery, status, NULL, 0);
+ else
+ {
+ squery->trying_as_is = 0;
+ squery->next_domain++;
+ ares_query(channel, s, squery->dnsclass, squery->type,
+ search_callback, squery);
ares_free(s);
- }
- }
- else if (squery->status_as_is == -1)
- {
- /* Try the name as-is at the end. */
- squery->trying_as_is = 1;
- ares_query(channel, squery->name, squery->dnsclass, squery->type,
- search_callback, squery);
- }
- else {
- if (squery->status_as_is == ARES_ENOTFOUND && squery->ever_got_nodata) {
- end_squery(squery, ARES_ENODATA, NULL, 0);
- }
- else
- end_squery(squery, squery->status_as_is, NULL, 0);
- }
- }
-}
-
-static void end_squery(struct search_query *squery, int status,
- unsigned char *abuf, int alen)
-{
- squery->callback(squery->arg, status, squery->timeouts, abuf, alen);
+ }
+ }
+ else if (squery->status_as_is == -1)
+ {
+ /* Try the name as-is at the end. */
+ squery->trying_as_is = 1;
+ ares_query(channel, squery->name, squery->dnsclass, squery->type,
+ search_callback, squery);
+ }
+ else {
+ if (squery->status_as_is == ARES_ENOTFOUND && squery->ever_got_nodata) {
+ end_squery(squery, ARES_ENODATA, NULL, 0);
+ }
+ else
+ end_squery(squery, squery->status_as_is, NULL, 0);
+ }
+ }
+}
+
+static void end_squery(struct search_query *squery, int status,
+ unsigned char *abuf, int alen)
+{
+ squery->callback(squery->arg, status, squery->timeouts, abuf, alen);
ares_free(squery->name);
ares_free(squery);
-}
-
-/* Concatenate two domains. */
+}
+
+/* Concatenate two domains. */
int ares__cat_domain(const char *name, const char *domain, char **s)
-{
- size_t nlen = strlen(name);
- size_t dlen = strlen(domain);
-
+{
+ size_t nlen = strlen(name);
+ size_t dlen = strlen(domain);
+
*s = ares_malloc(nlen + 1 + dlen + 1);
- if (!*s)
- return ARES_ENOMEM;
- memcpy(*s, name, nlen);
- (*s)[nlen] = '.';
- memcpy(*s + nlen + 1, domain, dlen);
- (*s)[nlen + 1 + dlen] = 0;
- return ARES_SUCCESS;
-}
-
-/* Determine if this name only yields one query. If it does, set *s to
- * the string we should query, in an allocated buffer. If not, set *s
- * to NULL.
- */
+ if (!*s)
+ return ARES_ENOMEM;
+ memcpy(*s, name, nlen);
+ (*s)[nlen] = '.';
+ memcpy(*s + nlen + 1, domain, dlen);
+ (*s)[nlen + 1 + dlen] = 0;
+ return ARES_SUCCESS;
+}
+
+/* Determine if this name only yields one query. If it does, set *s to
+ * the string we should query, in an allocated buffer. If not, set *s
+ * to NULL.
+ */
int ares__single_domain(ares_channel channel, const char *name, char **s)
-{
- size_t len = strlen(name);
- const char *hostaliases;
- FILE *fp;
- char *line = NULL;
- int status;
- size_t linesize;
- const char *p, *q;
- int error;
-
- /* If the name contains a trailing dot, then the single query is the name
- * sans the trailing dot.
- */
+{
+ size_t len = strlen(name);
+ const char *hostaliases;
+ FILE *fp;
+ char *line = NULL;
+ int status;
+ size_t linesize;
+ const char *p, *q;
+ int error;
+
+ /* If the name contains a trailing dot, then the single query is the name
+ * sans the trailing dot.
+ */
if ((len > 0) && (name[len - 1] == '.'))
- {
+ {
*s = ares_strdup(name);
- return (*s) ? ARES_SUCCESS : ARES_ENOMEM;
- }
-
- if (!(channel->flags & ARES_FLAG_NOALIASES) && !strchr(name, '.'))
- {
- /* The name might be a host alias. */
- hostaliases = getenv("HOSTALIASES");
- if (hostaliases)
- {
- fp = fopen(hostaliases, "r");
- if (fp)
- {
- while ((status = ares__read_line(fp, &line, &linesize))
- == ARES_SUCCESS)
- {
- if (strncasecmp(line, name, len) != 0 ||
- !ISSPACE(line[len]))
- continue;
- p = line + len;
- while (ISSPACE(*p))
- p++;
- if (*p)
- {
- q = p + 1;
- while (*q && !ISSPACE(*q))
- q++;
+ return (*s) ? ARES_SUCCESS : ARES_ENOMEM;
+ }
+
+ if (!(channel->flags & ARES_FLAG_NOALIASES) && !strchr(name, '.'))
+ {
+ /* The name might be a host alias. */
+ hostaliases = getenv("HOSTALIASES");
+ if (hostaliases)
+ {
+ fp = fopen(hostaliases, "r");
+ if (fp)
+ {
+ while ((status = ares__read_line(fp, &line, &linesize))
+ == ARES_SUCCESS)
+ {
+ if (strncasecmp(line, name, len) != 0 ||
+ !ISSPACE(line[len]))
+ continue;
+ p = line + len;
+ while (ISSPACE(*p))
+ p++;
+ if (*p)
+ {
+ q = p + 1;
+ while (*q && !ISSPACE(*q))
+ q++;
*s = ares_malloc(q - p + 1);
- if (*s)
- {
- memcpy(*s, p, q - p);
- (*s)[q - p] = 0;
- }
+ if (*s)
+ {
+ memcpy(*s, p, q - p);
+ (*s)[q - p] = 0;
+ }
ares_free(line);
- fclose(fp);
- return (*s) ? ARES_SUCCESS : ARES_ENOMEM;
- }
- }
+ fclose(fp);
+ return (*s) ? ARES_SUCCESS : ARES_ENOMEM;
+ }
+ }
ares_free(line);
- fclose(fp);
- if (status != ARES_SUCCESS && status != ARES_EOF)
- return status;
- }
- else
- {
- error = ERRNO;
- switch(error)
- {
- case ENOENT:
- case ESRCH:
- break;
- default:
- DEBUGF(fprintf(stderr, "fopen() failed with error: %d %s\n",
- error, strerror(error)));
- DEBUGF(fprintf(stderr, "Error opening file: %s\n",
- hostaliases));
- *s = NULL;
- return ARES_EFILE;
- }
- }
- }
- }
-
- if (channel->flags & ARES_FLAG_NOSEARCH || channel->ndomains == 0)
- {
- /* No domain search to do; just try the name as-is. */
+ fclose(fp);
+ if (status != ARES_SUCCESS && status != ARES_EOF)
+ return status;
+ }
+ else
+ {
+ error = ERRNO;
+ switch(error)
+ {
+ case ENOENT:
+ case ESRCH:
+ break;
+ default:
+ DEBUGF(fprintf(stderr, "fopen() failed with error: %d %s\n",
+ error, strerror(error)));
+ DEBUGF(fprintf(stderr, "Error opening file: %s\n",
+ hostaliases));
+ *s = NULL;
+ return ARES_EFILE;
+ }
+ }
+ }
+ }
+
+ if (channel->flags & ARES_FLAG_NOSEARCH || channel->ndomains == 0)
+ {
+ /* No domain search to do; just try the name as-is. */
*s = ares_strdup(name);
- return (*s) ? ARES_SUCCESS : ARES_ENOMEM;
- }
-
- *s = NULL;
- return ARES_SUCCESS;
-}
+ return (*s) ? ARES_SUCCESS : ARES_ENOMEM;
+ }
+
+ *s = NULL;
+ return ARES_SUCCESS;
+}
diff --git a/contrib/libs/c-ares/ares_send.c b/contrib/libs/c-ares/ares_send.c
index 5a4dd71094..f4f1f95119 100644
--- a/contrib/libs/c-ares/ares_send.c
+++ b/contrib/libs/c-ares/ares_send.c
@@ -1,65 +1,65 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-# include <arpa/nameser_compat.h>
-#endif
-
-#include "ares.h"
-#include "ares_dns.h"
-#include "ares_private.h"
-
-void ares_send(ares_channel channel, const unsigned char *qbuf, int qlen,
- ares_callback callback, void *arg)
-{
- struct query *query;
- int i, packetsz;
- struct timeval now;
-
- /* Verify that the query is at least long enough to hold the header. */
- if (qlen < HFIXEDSZ || qlen >= (1 << 16))
- {
- callback(arg, ARES_EBADQUERY, 0, NULL, 0);
- return;
- }
-
- /* Allocate space for query and allocated fields. */
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
+# include <arpa/nameser_compat.h>
+#endif
+
+#include "ares.h"
+#include "ares_dns.h"
+#include "ares_private.h"
+
+void ares_send(ares_channel channel, const unsigned char *qbuf, int qlen,
+ ares_callback callback, void *arg)
+{
+ struct query *query;
+ int i, packetsz;
+ struct timeval now;
+
+ /* Verify that the query is at least long enough to hold the header. */
+ if (qlen < HFIXEDSZ || qlen >= (1 << 16))
+ {
+ callback(arg, ARES_EBADQUERY, 0, NULL, 0);
+ return;
+ }
+
+ /* Allocate space for query and allocated fields. */
query = ares_malloc(sizeof(struct query));
- if (!query)
- {
- callback(arg, ARES_ENOMEM, 0, NULL, 0);
- return;
- }
+ if (!query)
+ {
+ callback(arg, ARES_ENOMEM, 0, NULL, 0);
+ return;
+ }
query->tcpbuf = ares_malloc(qlen + 2);
- if (!query->tcpbuf)
- {
+ if (!query->tcpbuf)
+ {
ares_free(query);
- callback(arg, ARES_ENOMEM, 0, NULL, 0);
- return;
- }
+ callback(arg, ARES_ENOMEM, 0, NULL, 0);
+ return;
+ }
if (channel->nservers < 1)
{
ares_free(query);
@@ -68,70 +68,70 @@ void ares_send(ares_channel channel, const unsigned char *qbuf, int qlen,
}
query->server_info = ares_malloc(channel->nservers *
sizeof(query->server_info[0]));
- if (!query->server_info)
- {
+ if (!query->server_info)
+ {
ares_free(query->tcpbuf);
ares_free(query);
- callback(arg, ARES_ENOMEM, 0, NULL, 0);
- return;
- }
-
- /* Compute the query ID. Start with no timeout. */
- query->qid = DNS_HEADER_QID(qbuf);
- query->timeout.tv_sec = 0;
- query->timeout.tv_usec = 0;
-
- /* Form the TCP query buffer by prepending qlen (as two
- * network-order bytes) to qbuf.
- */
- query->tcpbuf[0] = (unsigned char)((qlen >> 8) & 0xff);
- query->tcpbuf[1] = (unsigned char)(qlen & 0xff);
- memcpy(query->tcpbuf + 2, qbuf, qlen);
- query->tcplen = qlen + 2;
-
- /* Fill in query arguments. */
- query->qbuf = query->tcpbuf + 2;
- query->qlen = qlen;
- query->callback = callback;
- query->arg = arg;
-
- /* Initialize query status. */
- query->try_count = 0;
-
- /* Choose the server to send the query to. If rotation is enabled, keep track
- * of the next server we want to use. */
- query->server = channel->last_server;
- if (channel->rotate == 1)
- channel->last_server = (channel->last_server + 1) % channel->nservers;
-
- for (i = 0; i < channel->nservers; i++)
- {
- query->server_info[i].skip_server = 0;
- query->server_info[i].tcp_connection_generation = 0;
- }
-
- packetsz = (channel->flags & ARES_FLAG_EDNS) ? channel->ednspsz : PACKETSZ;
- query->using_tcp = (channel->flags & ARES_FLAG_USEVC) || qlen > packetsz;
-
- query->error_status = ARES_ECONNREFUSED;
- query->timeouts = 0;
-
- /* Initialize our list nodes. */
- ares__init_list_node(&(query->queries_by_qid), query);
- ares__init_list_node(&(query->queries_by_timeout), query);
- ares__init_list_node(&(query->queries_to_server), query);
- ares__init_list_node(&(query->all_queries), query);
-
- /* Chain the query into the list of all queries. */
- ares__insert_in_list(&(query->all_queries), &(channel->all_queries));
- /* Keep track of queries bucketed by qid, so we can process DNS
- * responses quickly.
- */
- ares__insert_in_list(
- &(query->queries_by_qid),
- &(channel->queries_by_qid[query->qid % ARES_QID_TABLE_SIZE]));
-
- /* Perform the first query action. */
- now = ares__tvnow();
- ares__send_query(channel, query, &now);
-}
+ callback(arg, ARES_ENOMEM, 0, NULL, 0);
+ return;
+ }
+
+ /* Compute the query ID. Start with no timeout. */
+ query->qid = DNS_HEADER_QID(qbuf);
+ query->timeout.tv_sec = 0;
+ query->timeout.tv_usec = 0;
+
+ /* Form the TCP query buffer by prepending qlen (as two
+ * network-order bytes) to qbuf.
+ */
+ query->tcpbuf[0] = (unsigned char)((qlen >> 8) & 0xff);
+ query->tcpbuf[1] = (unsigned char)(qlen & 0xff);
+ memcpy(query->tcpbuf + 2, qbuf, qlen);
+ query->tcplen = qlen + 2;
+
+ /* Fill in query arguments. */
+ query->qbuf = query->tcpbuf + 2;
+ query->qlen = qlen;
+ query->callback = callback;
+ query->arg = arg;
+
+ /* Initialize query status. */
+ query->try_count = 0;
+
+ /* Choose the server to send the query to. If rotation is enabled, keep track
+ * of the next server we want to use. */
+ query->server = channel->last_server;
+ if (channel->rotate == 1)
+ channel->last_server = (channel->last_server + 1) % channel->nservers;
+
+ for (i = 0; i < channel->nservers; i++)
+ {
+ query->server_info[i].skip_server = 0;
+ query->server_info[i].tcp_connection_generation = 0;
+ }
+
+ packetsz = (channel->flags & ARES_FLAG_EDNS) ? channel->ednspsz : PACKETSZ;
+ query->using_tcp = (channel->flags & ARES_FLAG_USEVC) || qlen > packetsz;
+
+ query->error_status = ARES_ECONNREFUSED;
+ query->timeouts = 0;
+
+ /* Initialize our list nodes. */
+ ares__init_list_node(&(query->queries_by_qid), query);
+ ares__init_list_node(&(query->queries_by_timeout), query);
+ ares__init_list_node(&(query->queries_to_server), query);
+ ares__init_list_node(&(query->all_queries), query);
+
+ /* Chain the query into the list of all queries. */
+ ares__insert_in_list(&(query->all_queries), &(channel->all_queries));
+ /* Keep track of queries bucketed by qid, so we can process DNS
+ * responses quickly.
+ */
+ ares__insert_in_list(
+ &(query->queries_by_qid),
+ &(channel->queries_by_qid[query->qid % ARES_QID_TABLE_SIZE]));
+
+ /* Perform the first query action. */
+ now = ares__tvnow();
+ ares__send_query(channel, query, &now);
+}
diff --git a/contrib/libs/c-ares/ares_setup.h b/contrib/libs/c-ares/ares_setup.h
index 43e0e5c54b..b9a1fd5b52 100644
--- a/contrib/libs/c-ares/ares_setup.h
+++ b/contrib/libs/c-ares/ares_setup.h
@@ -1,217 +1,217 @@
-#ifndef HEADER_CARES_SETUP_H
-#define HEADER_CARES_SETUP_H
-
-
-/* Copyright (C) 2004 - 2012 by Daniel Stenberg et al
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. M.I.T. makes no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-/*
- * Define WIN32 when build target is Win32 API
- */
-
-#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
-#define WIN32
-#endif
-
-/*
- * Include configuration script results or hand-crafted
- * configuration file for platforms which lack config tool.
- */
-
+#ifndef HEADER_CARES_SETUP_H
+#define HEADER_CARES_SETUP_H
+
+
+/* Copyright (C) 2004 - 2012 by Daniel Stenberg et al
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. M.I.T. makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+/*
+ * Define WIN32 when build target is Win32 API
+ */
+
+#if (defined(_WIN32) || defined(__WIN32__)) && !defined(WIN32)
+#define WIN32
+#endif
+
+/*
+ * Include configuration script results or hand-crafted
+ * configuration file for platforms which lack config tool.
+ */
+
#if defined(HAVE_CONFIG_H) && !defined(_MSC_VER)
-#include "ares_config.h"
-#else
-
-#ifdef WIN32
-#include "config-win32.h"
-#endif
-
-#endif /* HAVE_CONFIG_H */
-
-/* ================================================================ */
-/* Definition of preprocessor macros/symbols which modify compiler */
-/* behaviour or generated code characteristics must be done here, */
-/* as appropriate, before any system header file is included. It is */
-/* also possible to have them defined in the config file included */
-/* before this point. As a result of all this we frown inclusion of */
-/* system header files in our config files, avoid this at any cost. */
-/* ================================================================ */
-
-/*
- * AIX 4.3 and newer needs _THREAD_SAFE defined to build
- * proper reentrant code. Others may also need it.
- */
-
-#ifdef NEED_THREAD_SAFE
-# ifndef _THREAD_SAFE
-# define _THREAD_SAFE
-# endif
-#endif
-
-/*
- * Tru64 needs _REENTRANT set for a few function prototypes and
- * things to appear in the system header files. Unixware needs it
- * to build proper reentrant code. Others may also need it.
- */
-
-#ifdef NEED_REENTRANT
-# ifndef _REENTRANT
-# define _REENTRANT
-# endif
-#endif
-
-/* ================================================================ */
-/* If you need to include a system header file for your platform, */
-/* please, do it beyond the point further indicated in this file. */
-/* ================================================================ */
-
-/*
- * c-ares external interface definitions are also used internally,
- * and might also include required system header files to define them.
- */
-
-#include <ares_build.h>
-
-/*
- * Compile time sanity checks must also be done when building the library.
- */
-
-#include <ares_rules.h>
-
-/* ================================================================= */
-/* No system header file shall be included in this file before this */
-/* point. The only allowed ones are those included from ares_build.h */
-/* ================================================================= */
-
-/*
- * Include header files for windows builds before redefining anything.
- * Use this preproessor block only to include or exclude windows.h,
- * winsock2.h, ws2tcpip.h or winsock.h. Any other windows thing belongs
- * to any other further and independent block. Under Cygwin things work
- * just as under linux (e.g. <sys/socket.h>) and the winsock headers should
- * never be included when __CYGWIN__ is defined. configure script takes
- * care of this, not defining HAVE_WINDOWS_H, HAVE_WINSOCK_H, HAVE_WINSOCK2_H,
- * neither HAVE_WS2TCPIP_H when __CYGWIN__ is defined.
- */
-
-#ifdef HAVE_WINDOWS_H
-# ifndef WIN32_LEAN_AND_MEAN
-# define WIN32_LEAN_AND_MEAN
-# endif
-# include <windows.h>
-# ifdef HAVE_WINSOCK2_H
-# include <winsock2.h>
-# ifdef HAVE_WS2TCPIP_H
-# include <ws2tcpip.h>
-# endif
-# else
-# ifdef HAVE_WINSOCK_H
-# include <winsock.h>
-# endif
-# endif
-#endif
-
-/*
- * Define USE_WINSOCK to 2 if we have and use WINSOCK2 API, else
- * define USE_WINSOCK to 1 if we have and use WINSOCK API, else
- * undefine USE_WINSOCK.
- */
-
-#undef USE_WINSOCK
-
-#ifdef HAVE_WINSOCK2_H
-# define USE_WINSOCK 2
-#else
-# ifdef HAVE_WINSOCK_H
-# define USE_WINSOCK 1
-# endif
-#endif
-
-/*
- * Work-arounds for systems without configure support
- */
-
-#ifndef HAVE_CONFIG_H
-
-#if !defined(HAVE_SYS_TIME_H) && !defined(_MSC_VER) && !defined(__WATCOMC__)
-#define HAVE_SYS_TIME_H
-#endif
-
-#if !defined(HAVE_UNISTD_H) && !defined(_MSC_VER)
-#define HAVE_UNISTD_H 1
-#endif
-
-#if !defined(HAVE_SYS_UIO_H) && !defined(WIN32) && !defined(MSDOS)
-#define HAVE_SYS_UIO_H
-#endif
-
-#endif /* HAVE_CONFIG_H */
-
-/*
- * Arg 2 type for gethostname in case it hasn't been defined in config file.
- */
-
-#ifndef GETHOSTNAME_TYPE_ARG2
-# ifdef USE_WINSOCK
-# define GETHOSTNAME_TYPE_ARG2 int
-# else
-# define GETHOSTNAME_TYPE_ARG2 size_t
-# endif
-#endif
-
-#ifdef __POCC__
-# include <sys/types.h>
-# include <unistd.h>
-# define ESRCH 3
-#endif
-
-/*
- * Android does have the arpa/nameser.h header which is detected by configure
- * but it appears to be empty with recent NDK r7b / r7c, so we undefine here.
- */
-#if (defined(ANDROID) || defined(__ANDROID__)) && defined(HAVE_ARPA_NAMESER_H)
-# undef HAVE_ARPA_NAMESER_H
-#endif
-
-/*
- * Recent autoconf versions define these symbols in ares_config.h. We don't
- * want them (since they collide with the libcurl ones when we build
- * --enable-debug) so we undef them again here.
- */
-
-#undef PACKAGE_STRING
-#undef PACKAGE_TARNAME
-#undef PACKAGE_VERSION
-#undef PACKAGE_BUGREPORT
-#undef PACKAGE_NAME
-#undef VERSION
-#undef PACKAGE
-
-/* IPv6 compatibility */
-#if !defined(HAVE_AF_INET6)
-#if defined(HAVE_PF_INET6)
-#define AF_INET6 PF_INET6
-#else
-#define AF_INET6 AF_MAX+1
-#endif
-#endif
-
-/*
- * Include macros and defines that should only be processed once.
- */
-
-#ifndef __SETUP_ONCE_H
-#include "setup_once.h"
-#endif
-
-#endif /* HEADER_CARES_SETUP_H */
+#include "ares_config.h"
+#else
+
+#ifdef WIN32
+#include "config-win32.h"
+#endif
+
+#endif /* HAVE_CONFIG_H */
+
+/* ================================================================ */
+/* Definition of preprocessor macros/symbols which modify compiler */
+/* behaviour or generated code characteristics must be done here, */
+/* as appropriate, before any system header file is included. It is */
+/* also possible to have them defined in the config file included */
+/* before this point. As a result of all this we frown inclusion of */
+/* system header files in our config files, avoid this at any cost. */
+/* ================================================================ */
+
+/*
+ * AIX 4.3 and newer needs _THREAD_SAFE defined to build
+ * proper reentrant code. Others may also need it.
+ */
+
+#ifdef NEED_THREAD_SAFE
+# ifndef _THREAD_SAFE
+# define _THREAD_SAFE
+# endif
+#endif
+
+/*
+ * Tru64 needs _REENTRANT set for a few function prototypes and
+ * things to appear in the system header files. Unixware needs it
+ * to build proper reentrant code. Others may also need it.
+ */
+
+#ifdef NEED_REENTRANT
+# ifndef _REENTRANT
+# define _REENTRANT
+# endif
+#endif
+
+/* ================================================================ */
+/* If you need to include a system header file for your platform, */
+/* please, do it beyond the point further indicated in this file. */
+/* ================================================================ */
+
+/*
+ * c-ares external interface definitions are also used internally,
+ * and might also include required system header files to define them.
+ */
+
+#include <ares_build.h>
+
+/*
+ * Compile time sanity checks must also be done when building the library.
+ */
+
+#include <ares_rules.h>
+
+/* ================================================================= */
+/* No system header file shall be included in this file before this */
+/* point. The only allowed ones are those included from ares_build.h */
+/* ================================================================= */
+
+/*
+ * Include header files for windows builds before redefining anything.
+ * Use this preproessor block only to include or exclude windows.h,
+ * winsock2.h, ws2tcpip.h or winsock.h. Any other windows thing belongs
+ * to any other further and independent block. Under Cygwin things work
+ * just as under linux (e.g. <sys/socket.h>) and the winsock headers should
+ * never be included when __CYGWIN__ is defined. configure script takes
+ * care of this, not defining HAVE_WINDOWS_H, HAVE_WINSOCK_H, HAVE_WINSOCK2_H,
+ * neither HAVE_WS2TCPIP_H when __CYGWIN__ is defined.
+ */
+
+#ifdef HAVE_WINDOWS_H
+# ifndef WIN32_LEAN_AND_MEAN
+# define WIN32_LEAN_AND_MEAN
+# endif
+# include <windows.h>
+# ifdef HAVE_WINSOCK2_H
+# include <winsock2.h>
+# ifdef HAVE_WS2TCPIP_H
+# include <ws2tcpip.h>
+# endif
+# else
+# ifdef HAVE_WINSOCK_H
+# include <winsock.h>
+# endif
+# endif
+#endif
+
+/*
+ * Define USE_WINSOCK to 2 if we have and use WINSOCK2 API, else
+ * define USE_WINSOCK to 1 if we have and use WINSOCK API, else
+ * undefine USE_WINSOCK.
+ */
+
+#undef USE_WINSOCK
+
+#ifdef HAVE_WINSOCK2_H
+# define USE_WINSOCK 2
+#else
+# ifdef HAVE_WINSOCK_H
+# define USE_WINSOCK 1
+# endif
+#endif
+
+/*
+ * Work-arounds for systems without configure support
+ */
+
+#ifndef HAVE_CONFIG_H
+
+#if !defined(HAVE_SYS_TIME_H) && !defined(_MSC_VER) && !defined(__WATCOMC__)
+#define HAVE_SYS_TIME_H
+#endif
+
+#if !defined(HAVE_UNISTD_H) && !defined(_MSC_VER)
+#define HAVE_UNISTD_H 1
+#endif
+
+#if !defined(HAVE_SYS_UIO_H) && !defined(WIN32) && !defined(MSDOS)
+#define HAVE_SYS_UIO_H
+#endif
+
+#endif /* HAVE_CONFIG_H */
+
+/*
+ * Arg 2 type for gethostname in case it hasn't been defined in config file.
+ */
+
+#ifndef GETHOSTNAME_TYPE_ARG2
+# ifdef USE_WINSOCK
+# define GETHOSTNAME_TYPE_ARG2 int
+# else
+# define GETHOSTNAME_TYPE_ARG2 size_t
+# endif
+#endif
+
+#ifdef __POCC__
+# include <sys/types.h>
+# include <unistd.h>
+# define ESRCH 3
+#endif
+
+/*
+ * Android does have the arpa/nameser.h header which is detected by configure
+ * but it appears to be empty with recent NDK r7b / r7c, so we undefine here.
+ */
+#if (defined(ANDROID) || defined(__ANDROID__)) && defined(HAVE_ARPA_NAMESER_H)
+# undef HAVE_ARPA_NAMESER_H
+#endif
+
+/*
+ * Recent autoconf versions define these symbols in ares_config.h. We don't
+ * want them (since they collide with the libcurl ones when we build
+ * --enable-debug) so we undef them again here.
+ */
+
+#undef PACKAGE_STRING
+#undef PACKAGE_TARNAME
+#undef PACKAGE_VERSION
+#undef PACKAGE_BUGREPORT
+#undef PACKAGE_NAME
+#undef VERSION
+#undef PACKAGE
+
+/* IPv6 compatibility */
+#if !defined(HAVE_AF_INET6)
+#if defined(HAVE_PF_INET6)
+#define AF_INET6 PF_INET6
+#else
+#define AF_INET6 AF_MAX+1
+#endif
+#endif
+
+/*
+ * Include macros and defines that should only be processed once.
+ */
+
+#ifndef __SETUP_ONCE_H
+#include "setup_once.h"
+#endif
+
+#endif /* HEADER_CARES_SETUP_H */
diff --git a/contrib/libs/c-ares/ares_strcasecmp.c b/contrib/libs/c-ares/ares_strcasecmp.c
index cfa01e08c8..f9c85e2096 100644
--- a/contrib/libs/c-ares/ares_strcasecmp.c
+++ b/contrib/libs/c-ares/ares_strcasecmp.c
@@ -1,66 +1,66 @@
-
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-#include "ares_strcasecmp.h"
-
-#ifndef HAVE_STRCASECMP
-int ares_strcasecmp(const char *a, const char *b)
-{
-#if defined(HAVE_STRCMPI)
- return strcmpi(a, b);
-#elif defined(HAVE_STRICMP)
- return stricmp(a, b);
-#else
- size_t i;
-
- for (i = 0; i < (size_t)-1; i++) {
- int c1 = ISUPPER(a[i]) ? tolower(a[i]) : a[i];
- int c2 = ISUPPER(b[i]) ? tolower(b[i]) : b[i];
- if (c1 != c2)
- return c1-c2;
- if (!c1)
- break;
- }
- return 0;
-#endif
-}
-#endif
-
-#ifndef HAVE_STRNCASECMP
-int ares_strncasecmp(const char *a, const char *b, size_t n)
-{
-#if defined(HAVE_STRNCMPI)
- return strncmpi(a, b, n);
-#elif defined(HAVE_STRNICMP)
- return strnicmp(a, b, n);
-#else
- size_t i;
-
- for (i = 0; i < n; i++) {
- int c1 = ISUPPER(a[i]) ? tolower(a[i]) : a[i];
- int c2 = ISUPPER(b[i]) ? tolower(b[i]) : b[i];
- if (c1 != c2)
- return c1-c2;
- if (!c1)
- break;
- }
- return 0;
-#endif
-}
-#endif
-
+
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+#include "ares_strcasecmp.h"
+
+#ifndef HAVE_STRCASECMP
+int ares_strcasecmp(const char *a, const char *b)
+{
+#if defined(HAVE_STRCMPI)
+ return strcmpi(a, b);
+#elif defined(HAVE_STRICMP)
+ return stricmp(a, b);
+#else
+ size_t i;
+
+ for (i = 0; i < (size_t)-1; i++) {
+ int c1 = ISUPPER(a[i]) ? tolower(a[i]) : a[i];
+ int c2 = ISUPPER(b[i]) ? tolower(b[i]) : b[i];
+ if (c1 != c2)
+ return c1-c2;
+ if (!c1)
+ break;
+ }
+ return 0;
+#endif
+}
+#endif
+
+#ifndef HAVE_STRNCASECMP
+int ares_strncasecmp(const char *a, const char *b, size_t n)
+{
+#if defined(HAVE_STRNCMPI)
+ return strncmpi(a, b, n);
+#elif defined(HAVE_STRNICMP)
+ return strnicmp(a, b, n);
+#else
+ size_t i;
+
+ for (i = 0; i < n; i++) {
+ int c1 = ISUPPER(a[i]) ? tolower(a[i]) : a[i];
+ int c2 = ISUPPER(b[i]) ? tolower(b[i]) : b[i];
+ if (c1 != c2)
+ return c1-c2;
+ if (!c1)
+ break;
+ }
+ return 0;
+#endif
+}
+#endif
+
diff --git a/contrib/libs/c-ares/ares_strcasecmp.h b/contrib/libs/c-ares/ares_strcasecmp.h
index 8bf0d2eb00..57d86f9634 100644
--- a/contrib/libs/c-ares/ares_strcasecmp.h
+++ b/contrib/libs/c-ares/ares_strcasecmp.h
@@ -1,30 +1,30 @@
-#ifndef HEADER_CARES_STRCASECMP_H
-#define HEADER_CARES_STRCASECMP_H
-
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifndef HAVE_STRCASECMP
-extern int ares_strcasecmp(const char *a, const char *b);
-#endif
-
-#ifndef HAVE_STRNCASECMP
-extern int ares_strncasecmp(const char *a, const char *b, size_t n);
-#endif
-
-#endif /* HEADER_CARES_STRCASECMP_H */
+#ifndef HEADER_CARES_STRCASECMP_H
+#define HEADER_CARES_STRCASECMP_H
+
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifndef HAVE_STRCASECMP
+extern int ares_strcasecmp(const char *a, const char *b);
+#endif
+
+#ifndef HAVE_STRNCASECMP
+extern int ares_strncasecmp(const char *a, const char *b, size_t n);
+#endif
+
+#endif /* HEADER_CARES_STRCASECMP_H */
diff --git a/contrib/libs/c-ares/ares_strdup.c b/contrib/libs/c-ares/ares_strdup.c
index bdf6c31b49..0c3dcffc30 100644
--- a/contrib/libs/c-ares/ares_strdup.c
+++ b/contrib/libs/c-ares/ares_strdup.c
@@ -1,27 +1,27 @@
-
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-#include "ares_strdup.h"
+
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+#include "ares_strdup.h"
#include "ares.h"
#include "ares_private.h"
-
-char *ares_strdup(const char *s1)
-{
+
+char *ares_strdup(const char *s1)
+{
#ifdef HAVE_STRDUP
if (ares_malloc == malloc)
return strdup(s1);
@@ -30,7 +30,7 @@ char *ares_strdup(const char *s1)
{
size_t sz;
char * s2;
-
+
if(s1) {
sz = strlen(s1);
if(sz < (size_t)-1) {
@@ -41,9 +41,9 @@ char *ares_strdup(const char *s1)
memcpy(s2, s1, sz * sizeof(char));
return s2;
}
- }
- }
- }
+ }
+ }
+ }
return (char *)NULL;
- }
-}
+ }
+}
diff --git a/contrib/libs/c-ares/ares_strdup.h b/contrib/libs/c-ares/ares_strdup.h
index 6f9e87112e..67f2a74f5f 100644
--- a/contrib/libs/c-ares/ares_strdup.h
+++ b/contrib/libs/c-ares/ares_strdup.h
@@ -1,24 +1,24 @@
-#ifndef HEADER_CARES_STRDUP_H
-#define HEADER_CARES_STRDUP_H
-
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-extern char *ares_strdup(const char *s1);
-
-#endif /* HEADER_CARES_STRDUP_H */
+#ifndef HEADER_CARES_STRDUP_H
+#define HEADER_CARES_STRDUP_H
+
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+extern char *ares_strdup(const char *s1);
+
+#endif /* HEADER_CARES_STRDUP_H */
diff --git a/contrib/libs/c-ares/ares_strerror.c b/contrib/libs/c-ares/ares_strerror.c
index 31107b1df1..c3ecbd7b43 100644
--- a/contrib/libs/c-ares/ares_strerror.c
+++ b/contrib/libs/c-ares/ares_strerror.c
@@ -1,56 +1,56 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-#include <assert.h>
-#include "ares.h"
-
-const char *ares_strerror(int code)
-{
- /* Return a string literal from a table. */
- const char *errtext[] = {
- "Successful completion",
- "DNS server returned answer with no data",
- "DNS server claims query was misformatted",
- "DNS server returned general failure",
- "Domain name not found",
- "DNS server does not implement requested operation",
- "DNS server refused query",
- "Misformatted DNS query",
- "Misformatted domain name",
- "Unsupported address family",
- "Misformatted DNS reply",
- "Could not contact DNS servers",
- "Timeout while contacting DNS servers",
- "End of file",
- "Error reading file",
- "Out of memory",
- "Channel is being destroyed",
- "Misformatted string",
- "Illegal flags specified",
- "Given hostname is not numeric",
- "Illegal hints flags specified",
- "c-ares library initialization not yet performed",
- "Error loading iphlpapi.dll",
- "Could not find GetNetworkParams function",
- "DNS query cancelled"
- };
-
- if(code >= 0 && code < (int)(sizeof(errtext) / sizeof(*errtext)))
- return errtext[code];
- else
- return "unknown";
-}
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+#include <assert.h>
+#include "ares.h"
+
+const char *ares_strerror(int code)
+{
+ /* Return a string literal from a table. */
+ const char *errtext[] = {
+ "Successful completion",
+ "DNS server returned answer with no data",
+ "DNS server claims query was misformatted",
+ "DNS server returned general failure",
+ "Domain name not found",
+ "DNS server does not implement requested operation",
+ "DNS server refused query",
+ "Misformatted DNS query",
+ "Misformatted domain name",
+ "Unsupported address family",
+ "Misformatted DNS reply",
+ "Could not contact DNS servers",
+ "Timeout while contacting DNS servers",
+ "End of file",
+ "Error reading file",
+ "Out of memory",
+ "Channel is being destroyed",
+ "Misformatted string",
+ "Illegal flags specified",
+ "Given hostname is not numeric",
+ "Illegal hints flags specified",
+ "c-ares library initialization not yet performed",
+ "Error loading iphlpapi.dll",
+ "Could not find GetNetworkParams function",
+ "DNS query cancelled"
+ };
+
+ if(code >= 0 && code < (int)(sizeof(errtext) / sizeof(*errtext)))
+ return errtext[code];
+ else
+ return "unknown";
+}
diff --git a/contrib/libs/c-ares/ares_timeout.c b/contrib/libs/c-ares/ares_timeout.c
index 2d7a12a907..293e4af021 100644
--- a/contrib/libs/c-ares/ares_timeout.c
+++ b/contrib/libs/c-ares/ares_timeout.c
@@ -1,28 +1,28 @@
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_LIMITS_H
-#include <limits.h>
-#endif
-
-#include "ares.h"
-#include "ares_private.h"
-
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_LIMITS_H
+#include <limits.h>
+#endif
+
+#include "ares.h"
+#include "ares_private.h"
+
/* return time offset between now and (future) check, in milliseconds */
static long timeoffset(struct timeval *now, struct timeval *check)
{
@@ -30,59 +30,59 @@ static long timeoffset(struct timeval *now, struct timeval *check)
(check->tv_usec - now->tv_usec)/1000;
}
-/* WARNING: Beware that this is linear in the number of outstanding
- * requests! You are probably far better off just calling ares_process()
- * once per second, rather than calling ares_timeout() to figure out
- * when to next call ares_process().
- */
-struct timeval *ares_timeout(ares_channel channel, struct timeval *maxtv,
- struct timeval *tvbuf)
-{
- struct query *query;
- struct list_node* list_head;
- struct list_node* list_node;
- struct timeval now;
- struct timeval nextstop;
- long offset, min_offset;
-
- /* No queries, no timeout (and no fetch of the current time). */
- if (ares__is_list_empty(&(channel->all_queries)))
- return maxtv;
-
- /* Find the minimum timeout for the current set of queries. */
- now = ares__tvnow();
- min_offset = -1;
-
- list_head = &(channel->all_queries);
- for (list_node = list_head->next; list_node != list_head;
- list_node = list_node->next)
- {
- query = list_node->data;
- if (query->timeout.tv_sec == 0)
- continue;
+/* WARNING: Beware that this is linear in the number of outstanding
+ * requests! You are probably far better off just calling ares_process()
+ * once per second, rather than calling ares_timeout() to figure out
+ * when to next call ares_process().
+ */
+struct timeval *ares_timeout(ares_channel channel, struct timeval *maxtv,
+ struct timeval *tvbuf)
+{
+ struct query *query;
+ struct list_node* list_head;
+ struct list_node* list_node;
+ struct timeval now;
+ struct timeval nextstop;
+ long offset, min_offset;
+
+ /* No queries, no timeout (and no fetch of the current time). */
+ if (ares__is_list_empty(&(channel->all_queries)))
+ return maxtv;
+
+ /* Find the minimum timeout for the current set of queries. */
+ now = ares__tvnow();
+ min_offset = -1;
+
+ list_head = &(channel->all_queries);
+ for (list_node = list_head->next; list_node != list_head;
+ list_node = list_node->next)
+ {
+ query = list_node->data;
+ if (query->timeout.tv_sec == 0)
+ continue;
offset = timeoffset(&now, &query->timeout);
- if (offset < 0)
- offset = 0;
- if (min_offset == -1 || offset < min_offset)
- min_offset = offset;
- }
-
- /* If we found a minimum timeout and it's sooner than the one specified in
- * maxtv (if any), return it. Otherwise go with maxtv.
- */
- if (min_offset != -1)
- {
- int ioffset = (min_offset > (long)INT_MAX) ? INT_MAX : (int)min_offset;
-
- nextstop.tv_sec = ioffset/1000;
- nextstop.tv_usec = (ioffset%1000)*1000;
-
- if (!maxtv || ares__timedout(maxtv, &nextstop))
- {
- *tvbuf = nextstop;
- return tvbuf;
- }
- }
-
- return maxtv;
-}
+ if (offset < 0)
+ offset = 0;
+ if (min_offset == -1 || offset < min_offset)
+ min_offset = offset;
+ }
+
+ /* If we found a minimum timeout and it's sooner than the one specified in
+ * maxtv (if any), return it. Otherwise go with maxtv.
+ */
+ if (min_offset != -1)
+ {
+ int ioffset = (min_offset > (long)INT_MAX) ? INT_MAX : (int)min_offset;
+
+ nextstop.tv_sec = ioffset/1000;
+ nextstop.tv_usec = (ioffset%1000)*1000;
+
+ if (!maxtv || ares__timedout(maxtv, &nextstop))
+ {
+ *tvbuf = nextstop;
+ return tvbuf;
+ }
+ }
+
+ return maxtv;
+}
diff --git a/contrib/libs/c-ares/ares_version.c b/contrib/libs/c-ares/ares_version.c
index 3984a976bd..4f8c42f2c9 100644
--- a/contrib/libs/c-ares/ares_version.c
+++ b/contrib/libs/c-ares/ares_version.c
@@ -1,11 +1,11 @@
-
-#include "ares_setup.h"
-#include "ares.h"
-
-const char *ares_version(int *version)
-{
- if(version)
- *version = ARES_VERSION;
-
- return ARES_VERSION_STR;
-}
+
+#include "ares_setup.h"
+#include "ares.h"
+
+const char *ares_version(int *version)
+{
+ if(version)
+ *version = ARES_VERSION;
+
+ return ARES_VERSION_STR;
+}
diff --git a/contrib/libs/c-ares/ares_version.h b/contrib/libs/c-ares/ares_version.h
index fbcda0658b..c041d574de 100644
--- a/contrib/libs/c-ares/ares_version.h
+++ b/contrib/libs/c-ares/ares_version.h
@@ -1,24 +1,24 @@
-
-#ifndef ARES__VERSION_H
-#define ARES__VERSION_H
-
-/* This is the global package copyright */
+
+#ifndef ARES__VERSION_H
+#define ARES__VERSION_H
+
+/* This is the global package copyright */
#define ARES_COPYRIGHT "2004 - 2020 Daniel Stenberg, <daniel@haxx.se>."
-
-#define ARES_VERSION_MAJOR 1
+
+#define ARES_VERSION_MAJOR 1
#define ARES_VERSION_MINOR 16
#define ARES_VERSION_PATCH 1
-#define ARES_VERSION ((ARES_VERSION_MAJOR<<16)|\
- (ARES_VERSION_MINOR<<8)|\
- (ARES_VERSION_PATCH))
+#define ARES_VERSION ((ARES_VERSION_MAJOR<<16)|\
+ (ARES_VERSION_MINOR<<8)|\
+ (ARES_VERSION_PATCH))
#define ARES_VERSION_STR "1.16.1"
-
-#if (ARES_VERSION >= 0x010700)
-# define CARES_HAVE_ARES_LIBRARY_INIT 1
-# define CARES_HAVE_ARES_LIBRARY_CLEANUP 1
-#else
-# undef CARES_HAVE_ARES_LIBRARY_INIT
-# undef CARES_HAVE_ARES_LIBRARY_CLEANUP
-#endif
-
-#endif
+
+#if (ARES_VERSION >= 0x010700)
+# define CARES_HAVE_ARES_LIBRARY_INIT 1
+# define CARES_HAVE_ARES_LIBRARY_CLEANUP 1
+#else
+# undef CARES_HAVE_ARES_LIBRARY_INIT
+# undef CARES_HAVE_ARES_LIBRARY_CLEANUP
+#endif
+
+#endif
diff --git a/contrib/libs/c-ares/ares_writev.c b/contrib/libs/c-ares/ares_writev.c
index 208427d704..e812c09e1c 100644
--- a/contrib/libs/c-ares/ares_writev.c
+++ b/contrib/libs/c-ares/ares_writev.c
@@ -1,79 +1,79 @@
-
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_LIMITS_H
-# include <limits.h>
-#endif
-
-#include "ares.h"
-#include "ares_private.h"
-
-#ifndef HAVE_WRITEV
+
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_LIMITS_H
+# include <limits.h>
+#endif
+
+#include "ares.h"
+#include "ares_private.h"
+
+#ifndef HAVE_WRITEV
ares_ssize_t ares_writev(ares_socket_t s, const struct iovec *iov, int iovcnt)
-{
- char *buffer, *bp;
- int i;
- size_t bytes = 0;
+{
+ char *buffer, *bp;
+ int i;
+ size_t bytes = 0;
ares_ssize_t result;
-
- /* Validate iovcnt */
- if (iovcnt <= 0)
- {
- SET_ERRNO(EINVAL);
- return (-1);
- }
-
- /* Validate and find the sum of the iov_len values in the iov array */
- for (i = 0; i < iovcnt; i++)
- {
- if (iov[i].iov_len > INT_MAX - bytes)
- {
- SET_ERRNO(EINVAL);
- return (-1);
- }
- bytes += iov[i].iov_len;
- }
-
- if (bytes == 0)
- return (0);
-
- /* Allocate a temporary buffer to hold the data */
+
+ /* Validate iovcnt */
+ if (iovcnt <= 0)
+ {
+ SET_ERRNO(EINVAL);
+ return (-1);
+ }
+
+ /* Validate and find the sum of the iov_len values in the iov array */
+ for (i = 0; i < iovcnt; i++)
+ {
+ if (iov[i].iov_len > INT_MAX - bytes)
+ {
+ SET_ERRNO(EINVAL);
+ return (-1);
+ }
+ bytes += iov[i].iov_len;
+ }
+
+ if (bytes == 0)
+ return (0);
+
+ /* Allocate a temporary buffer to hold the data */
buffer = ares_malloc(bytes);
- if (!buffer)
- {
- SET_ERRNO(ENOMEM);
- return (-1);
- }
-
- /* Copy the data into buffer */
- for (bp = buffer, i = 0; i < iovcnt; ++i)
- {
- memcpy (bp, iov[i].iov_base, iov[i].iov_len);
- bp += iov[i].iov_len;
- }
-
- /* Send buffer contents */
- result = swrite(s, buffer, bytes);
-
+ if (!buffer)
+ {
+ SET_ERRNO(ENOMEM);
+ return (-1);
+ }
+
+ /* Copy the data into buffer */
+ for (bp = buffer, i = 0; i < iovcnt; ++i)
+ {
+ memcpy (bp, iov[i].iov_base, iov[i].iov_len);
+ bp += iov[i].iov_len;
+ }
+
+ /* Send buffer contents */
+ result = swrite(s, buffer, bytes);
+
ares_free(buffer);
-
- return (result);
-}
-#endif
-
+
+ return (result);
+}
+#endif
+
diff --git a/contrib/libs/c-ares/ares_writev.h b/contrib/libs/c-ares/ares_writev.h
index b972cf1392..65cea8708f 100644
--- a/contrib/libs/c-ares/ares_writev.h
+++ b/contrib/libs/c-ares/ares_writev.h
@@ -1,36 +1,36 @@
-#ifndef HEADER_CARES_WRITEV_H
-#define HEADER_CARES_WRITEV_H
-
-
-/* Copyright 1998 by the Massachusetts Institute of Technology.
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#include "ares_setup.h"
-#include "ares.h"
-
-#ifndef HAVE_WRITEV
-
-/* Structure for scatter/gather I/O. */
-struct iovec
-{
- void *iov_base; /* Pointer to data. */
- size_t iov_len; /* Length of data. */
-};
-
+#ifndef HEADER_CARES_WRITEV_H
+#define HEADER_CARES_WRITEV_H
+
+
+/* Copyright 1998 by the Massachusetts Institute of Technology.
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#include "ares_setup.h"
+#include "ares.h"
+
+#ifndef HAVE_WRITEV
+
+/* Structure for scatter/gather I/O. */
+struct iovec
+{
+ void *iov_base; /* Pointer to data. */
+ size_t iov_len; /* Length of data. */
+};
+
extern ares_ssize_t ares_writev(ares_socket_t s, const struct iovec *iov, int iovcnt);
-
-#endif
-
-#endif /* HEADER_CARES_WRITEV_H */
+
+#endif
+
+#endif /* HEADER_CARES_WRITEV_H */
diff --git a/contrib/libs/c-ares/bitncmp.c b/contrib/libs/c-ares/bitncmp.c
index 24c318dae9..bbf1cff4a6 100644
--- a/contrib/libs/c-ares/bitncmp.c
+++ b/contrib/libs/c-ares/bitncmp.c
@@ -1,59 +1,59 @@
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by Internet Software Consortium.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef HAVE_BITNCMP
-
-#include "ares_setup.h"
-#include "bitncmp.h"
-
-/*
- * int
- * bitncmp(l, r, n)
- * compare bit masks l and r, for n bits.
- * return:
+
+/*
+ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1996,1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#ifndef HAVE_BITNCMP
+
+#include "ares_setup.h"
+#include "bitncmp.h"
+
+/*
+ * int
+ * bitncmp(l, r, n)
+ * compare bit masks l and r, for n bits.
+ * return:
* <0, >0, or 0 in the libc tradition.
- * note:
- * network byte order assumed. this means 192.5.5.240/28 has
- * 0x11110000 in its fourth octet.
- * author:
- * Paul Vixie (ISC), June 1996
- */
-int ares__bitncmp(const void *l, const void *r, int n)
-{
- unsigned int lb, rb;
- int x, b;
-
- b = n / 8;
- x = memcmp(l, r, b);
- if (x || (n & 7) == 0)
- return (x);
-
- lb = ((const unsigned char *)l)[b];
- rb = ((const unsigned char *)r)[b];
- for (b = n % 8; b > 0; b--) {
- if ((lb & 0x80) != (rb & 0x80)) {
- if (lb & 0x80)
- return (1);
- return (-1);
- }
- lb <<= 1;
- rb <<= 1;
- }
- return (0);
-}
-#endif
+ * note:
+ * network byte order assumed. this means 192.5.5.240/28 has
+ * 0x11110000 in its fourth octet.
+ * author:
+ * Paul Vixie (ISC), June 1996
+ */
+int ares__bitncmp(const void *l, const void *r, int n)
+{
+ unsigned int lb, rb;
+ int x, b;
+
+ b = n / 8;
+ x = memcmp(l, r, b);
+ if (x || (n & 7) == 0)
+ return (x);
+
+ lb = ((const unsigned char *)l)[b];
+ rb = ((const unsigned char *)r)[b];
+ for (b = n % 8; b > 0; b--) {
+ if ((lb & 0x80) != (rb & 0x80)) {
+ if (lb & 0x80)
+ return (1);
+ return (-1);
+ }
+ lb <<= 1;
+ rb <<= 1;
+ }
+ return (0);
+}
+#endif
diff --git a/contrib/libs/c-ares/bitncmp.h b/contrib/libs/c-ares/bitncmp.h
index 04ba784649..7b8d66c166 100644
--- a/contrib/libs/c-ares/bitncmp.h
+++ b/contrib/libs/c-ares/bitncmp.h
@@ -1,26 +1,26 @@
-#ifndef __ARES_BITNCMP_H
-#define __ARES_BITNCMP_H
-
-
-/* Copyright (C) 2005, 2013 by Dominick Meglio
- *
- * Permission to use, copy, modify, and distribute this
- * software and its documentation for any purpose and without
- * fee is hereby granted, provided that the above copyright
- * notice appear in all copies and that both that copyright
- * notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in
- * advertising or publicity pertaining to distribution of the
- * software without specific, written prior permission.
- * M.I.T. makes no representations about the suitability of
- * this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-#ifndef HAVE_BITNCMP
-int ares__bitncmp(const void *l, const void *r, int n);
-#else
-#define ares__bitncmp(x,y,z) bitncmp(x,y,z)
-#endif
-
-#endif /* __ARES_BITNCMP_H */
+#ifndef __ARES_BITNCMP_H
+#define __ARES_BITNCMP_H
+
+
+/* Copyright (C) 2005, 2013 by Dominick Meglio
+ *
+ * Permission to use, copy, modify, and distribute this
+ * software and its documentation for any purpose and without
+ * fee is hereby granted, provided that the above copyright
+ * notice appear in all copies and that both that copyright
+ * notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in
+ * advertising or publicity pertaining to distribution of the
+ * software without specific, written prior permission.
+ * M.I.T. makes no representations about the suitability of
+ * this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+#ifndef HAVE_BITNCMP
+int ares__bitncmp(const void *l, const void *r, int n);
+#else
+#define ares__bitncmp(x,y,z) bitncmp(x,y,z)
+#endif
+
+#endif /* __ARES_BITNCMP_H */
diff --git a/contrib/libs/c-ares/config-dos.h b/contrib/libs/c-ares/config-dos.h
index 6943b01608..114db511c6 100644
--- a/contrib/libs/c-ares/config-dos.h
+++ b/contrib/libs/c-ares/config-dos.h
@@ -1,108 +1,108 @@
-#ifndef HEADER_CONFIG_DOS_H
-#define HEADER_CONFIG_DOS_H
-
-
-/* ================================================================ */
-/* ares/config-dos.h - Hand crafted config file for DOS */
-/* ================================================================ */
-
-#define PACKAGE "c-ares"
-
-#define HAVE_ERRNO_H 1
-#define HAVE_GETENV 1
-#define HAVE_GETTIMEOFDAY 1
-#define HAVE_IOCTLSOCKET 1
-#define HAVE_IOCTLSOCKET_FIONBIO 1
-#define HAVE_LIMITS_H 1
-#define HAVE_NET_IF_H 1
-#define HAVE_RECV 1
-#define HAVE_RECVFROM 1
-#define HAVE_SEND 1
-#define HAVE_STRDUP 1
-#define HAVE_STRICMP 1
-#define HAVE_STRUCT_IN6_ADDR 1
-#define HAVE_STRUCT_TIMEVAL 1
-#define HAVE_SYS_IOCTL_H 1
-#define HAVE_SYS_SOCKET_H 1
-#define HAVE_SYS_STAT_H 1
-#define HAVE_SYS_TYPES_H 1
-#define HAVE_TIME_H 1
-#define HAVE_UNISTD_H 1
-
-#define NEED_MALLOC_H 1
-
-#define RETSIGTYPE void
-#define TIME_WITH_SYS_TIME 1
-
-/* Qualifiers for send(), recv(), recvfrom() and getnameinfo(). */
-
-#define SEND_TYPE_ARG1 int
-#define SEND_QUAL_ARG2 const
-#define SEND_TYPE_ARG2 void *
-#define SEND_TYPE_ARG3 int
-#define SEND_TYPE_ARG4 int
-#define SEND_TYPE_RETV int
-
-#define RECV_TYPE_ARG1 int
-#define RECV_TYPE_ARG2 void *
-#define RECV_TYPE_ARG3 int
-#define RECV_TYPE_ARG4 int
-#define RECV_TYPE_RETV int
-
-#define RECVFROM_TYPE_ARG1 int
-#define RECVFROM_TYPE_ARG2 void
-#define RECVFROM_TYPE_ARG3 int
-#define RECVFROM_TYPE_ARG4 int
-#define RECVFROM_TYPE_ARG5 struct sockaddr
-#define RECVFROM_TYPE_ARG6 int
-#define RECVFROM_TYPE_RETV int
-#define RECVFROM_TYPE_ARG2_IS_VOID 1
-
-#define BSD
-
-/* Target HAVE_x section */
-
-#if defined(DJGPP)
- #define HAVE_STRCASECMP 1
- #define HAVE_STRNCASECMP 1
- #define HAVE_SYS_TIME_H 1
- #define HAVE_VARIADIC_MACROS_GCC 1
-
- /* Because djgpp <= 2.03 doesn't have snprintf() etc. */
- #if (DJGPP_MINOR < 4)
- #define _MPRINTF_REPLACE
- #endif
-
-#elif defined(__WATCOMC__)
- #define HAVE_STRCASECMP 1
-
-#elif defined(__HIGHC__)
- #define HAVE_SYS_TIME_H 1
- #define strerror(e) strerror_s_((e))
-#endif
-
-#ifdef WATT32
- #define HAVE_AF_INET6 1
- #define HAVE_ARPA_INET_H 1
- #define HAVE_ARPA_NAMESER_H 1
- #define HAVE_CLOSE_S 1
- #define HAVE_GETHOSTNAME 1
- #define HAVE_NETDB_H 1
- #define HAVE_NETINET_IN_H 1
- #define HAVE_NETINET_TCP_H 1
- #define HAVE_PF_INET6 1
- #define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1
- #define HAVE_STRUCT_ADDRINFO 1
- #define HAVE_STRUCT_IN6_ADDR 1
- #define HAVE_STRUCT_SOCKADDR_IN6 1
- #define HAVE_SYS_SOCKET_H 1
- #define HAVE_SYS_UIO_H 1
- #define NS_INADDRSZ 4
- #define HAVE_STRUCT_SOCKADDR_IN6 1
-#endif
-
-#undef word
-#undef byte
-
-#endif /* HEADER_CONFIG_DOS_H */
-
+#ifndef HEADER_CONFIG_DOS_H
+#define HEADER_CONFIG_DOS_H
+
+
+/* ================================================================ */
+/* ares/config-dos.h - Hand crafted config file for DOS */
+/* ================================================================ */
+
+#define PACKAGE "c-ares"
+
+#define HAVE_ERRNO_H 1
+#define HAVE_GETENV 1
+#define HAVE_GETTIMEOFDAY 1
+#define HAVE_IOCTLSOCKET 1
+#define HAVE_IOCTLSOCKET_FIONBIO 1
+#define HAVE_LIMITS_H 1
+#define HAVE_NET_IF_H 1
+#define HAVE_RECV 1
+#define HAVE_RECVFROM 1
+#define HAVE_SEND 1
+#define HAVE_STRDUP 1
+#define HAVE_STRICMP 1
+#define HAVE_STRUCT_IN6_ADDR 1
+#define HAVE_STRUCT_TIMEVAL 1
+#define HAVE_SYS_IOCTL_H 1
+#define HAVE_SYS_SOCKET_H 1
+#define HAVE_SYS_STAT_H 1
+#define HAVE_SYS_TYPES_H 1
+#define HAVE_TIME_H 1
+#define HAVE_UNISTD_H 1
+
+#define NEED_MALLOC_H 1
+
+#define RETSIGTYPE void
+#define TIME_WITH_SYS_TIME 1
+
+/* Qualifiers for send(), recv(), recvfrom() and getnameinfo(). */
+
+#define SEND_TYPE_ARG1 int
+#define SEND_QUAL_ARG2 const
+#define SEND_TYPE_ARG2 void *
+#define SEND_TYPE_ARG3 int
+#define SEND_TYPE_ARG4 int
+#define SEND_TYPE_RETV int
+
+#define RECV_TYPE_ARG1 int
+#define RECV_TYPE_ARG2 void *
+#define RECV_TYPE_ARG3 int
+#define RECV_TYPE_ARG4 int
+#define RECV_TYPE_RETV int
+
+#define RECVFROM_TYPE_ARG1 int
+#define RECVFROM_TYPE_ARG2 void
+#define RECVFROM_TYPE_ARG3 int
+#define RECVFROM_TYPE_ARG4 int
+#define RECVFROM_TYPE_ARG5 struct sockaddr
+#define RECVFROM_TYPE_ARG6 int
+#define RECVFROM_TYPE_RETV int
+#define RECVFROM_TYPE_ARG2_IS_VOID 1
+
+#define BSD
+
+/* Target HAVE_x section */
+
+#if defined(DJGPP)
+ #define HAVE_STRCASECMP 1
+ #define HAVE_STRNCASECMP 1
+ #define HAVE_SYS_TIME_H 1
+ #define HAVE_VARIADIC_MACROS_GCC 1
+
+ /* Because djgpp <= 2.03 doesn't have snprintf() etc. */
+ #if (DJGPP_MINOR < 4)
+ #define _MPRINTF_REPLACE
+ #endif
+
+#elif defined(__WATCOMC__)
+ #define HAVE_STRCASECMP 1
+
+#elif defined(__HIGHC__)
+ #define HAVE_SYS_TIME_H 1
+ #define strerror(e) strerror_s_((e))
+#endif
+
+#ifdef WATT32
+ #define HAVE_AF_INET6 1
+ #define HAVE_ARPA_INET_H 1
+ #define HAVE_ARPA_NAMESER_H 1
+ #define HAVE_CLOSE_S 1
+ #define HAVE_GETHOSTNAME 1
+ #define HAVE_NETDB_H 1
+ #define HAVE_NETINET_IN_H 1
+ #define HAVE_NETINET_TCP_H 1
+ #define HAVE_PF_INET6 1
+ #define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+ #define HAVE_STRUCT_ADDRINFO 1
+ #define HAVE_STRUCT_IN6_ADDR 1
+ #define HAVE_STRUCT_SOCKADDR_IN6 1
+ #define HAVE_SYS_SOCKET_H 1
+ #define HAVE_SYS_UIO_H 1
+ #define NS_INADDRSZ 4
+ #define HAVE_STRUCT_SOCKADDR_IN6 1
+#endif
+
+#undef word
+#undef byte
+
+#endif /* HEADER_CONFIG_DOS_H */
+
diff --git a/contrib/libs/c-ares/config-win32.h b/contrib/libs/c-ares/config-win32.h
index 4733f4378d..da7eba44d8 100644
--- a/contrib/libs/c-ares/config-win32.h
+++ b/contrib/libs/c-ares/config-win32.h
@@ -1,357 +1,357 @@
-#ifndef HEADER_CARES_CONFIG_WIN32_H
-#define HEADER_CARES_CONFIG_WIN32_H
-
-/* Copyright (C) 2004 - 2011 by Daniel Stenberg et al
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. M.I.T. makes no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-/* ================================================================ */
-/* c-ares/config-win32.h - Hand crafted config file for Windows */
-/* ================================================================ */
-
-/* ---------------------------------------------------------------- */
-/* HEADER FILES */
-/* ---------------------------------------------------------------- */
-
-/* Define if you have the <assert.h> header file. */
-#define HAVE_ASSERT_H 1
-
-/* Define if you have the <errno.h> header file. */
-#define HAVE_ERRNO_H 1
-
-/* Define if you have the <getopt.h> header file. */
-#if defined(__MINGW32__) || defined(__POCC__)
-#define HAVE_GETOPT_H 1
-#endif
-
-/* Define if you have the <limits.h> header file. */
-#define HAVE_LIMITS_H 1
-
-/* Define if you have the <process.h> header file. */
-#ifndef __SALFORDC__
-#define HAVE_PROCESS_H 1
-#endif
-
-/* Define if you have the <signal.h> header file. */
-#define HAVE_SIGNAL_H 1
-
-/* Define if you have the <sys/time.h> header file */
-/* #define HAVE_SYS_TIME_H 1 */
-
-/* Define if you have the <time.h> header file. */
-#define HAVE_TIME_H 1
-
-/* Define if you have the <unistd.h> header file. */
-#if defined(__MINGW32__) || defined(__WATCOMC__) || defined(__LCC__) || \
- defined(__POCC__)
-#define HAVE_UNISTD_H 1
-#endif
-
-/* Define if you have the <windows.h> header file. */
-#define HAVE_WINDOWS_H 1
-
-/* Define if you have the <winsock.h> header file. */
-#define HAVE_WINSOCK_H 1
-
-/* Define if you have the <winsock2.h> header file. */
-#ifndef __SALFORDC__
-#define HAVE_WINSOCK2_H 1
-#endif
-
-/* Define if you have the <ws2tcpip.h> header file. */
-#ifndef __SALFORDC__
-#define HAVE_WS2TCPIP_H 1
-#endif
-
+#ifndef HEADER_CARES_CONFIG_WIN32_H
+#define HEADER_CARES_CONFIG_WIN32_H
+
+/* Copyright (C) 2004 - 2011 by Daniel Stenberg et al
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. M.I.T. makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+/* ================================================================ */
+/* c-ares/config-win32.h - Hand crafted config file for Windows */
+/* ================================================================ */
+
+/* ---------------------------------------------------------------- */
+/* HEADER FILES */
+/* ---------------------------------------------------------------- */
+
+/* Define if you have the <assert.h> header file. */
+#define HAVE_ASSERT_H 1
+
+/* Define if you have the <errno.h> header file. */
+#define HAVE_ERRNO_H 1
+
+/* Define if you have the <getopt.h> header file. */
+#if defined(__MINGW32__) || defined(__POCC__)
+#define HAVE_GETOPT_H 1
+#endif
+
+/* Define if you have the <limits.h> header file. */
+#define HAVE_LIMITS_H 1
+
+/* Define if you have the <process.h> header file. */
+#ifndef __SALFORDC__
+#define HAVE_PROCESS_H 1
+#endif
+
+/* Define if you have the <signal.h> header file. */
+#define HAVE_SIGNAL_H 1
+
+/* Define if you have the <sys/time.h> header file */
+/* #define HAVE_SYS_TIME_H 1 */
+
+/* Define if you have the <time.h> header file. */
+#define HAVE_TIME_H 1
+
+/* Define if you have the <unistd.h> header file. */
+#if defined(__MINGW32__) || defined(__WATCOMC__) || defined(__LCC__) || \
+ defined(__POCC__)
+#define HAVE_UNISTD_H 1
+#endif
+
+/* Define if you have the <windows.h> header file. */
+#define HAVE_WINDOWS_H 1
+
+/* Define if you have the <winsock.h> header file. */
+#define HAVE_WINSOCK_H 1
+
+/* Define if you have the <winsock2.h> header file. */
+#ifndef __SALFORDC__
+#define HAVE_WINSOCK2_H 1
+#endif
+
+/* Define if you have the <ws2tcpip.h> header file. */
+#ifndef __SALFORDC__
+#define HAVE_WS2TCPIP_H 1
+#endif
+
/* Define to 1 if you have the <sys/uio.h> header file. */
#define HAVE_SYS_UIO_H 1
/* Define to 1 if you have the writev function. */
#define HAVE_WRITEV 1
-/* ---------------------------------------------------------------- */
-/* OTHER HEADER INFO */
-/* ---------------------------------------------------------------- */
-
-/* Define if sig_atomic_t is an available typedef. */
-#define HAVE_SIG_ATOMIC_T 1
-
-/* Define if you have the ANSI C header files. */
-#define STDC_HEADERS 1
-
-/* Define if you can safely include both <sys/time.h> and <time.h>. */
-/* #define TIME_WITH_SYS_TIME 1 */
-
-/* ---------------------------------------------------------------- */
-/* FUNCTIONS */
-/* ---------------------------------------------------------------- */
-
-/* Define if you have the closesocket function. */
-#define HAVE_CLOSESOCKET 1
-
-/* Define if you have the getenv function. */
-#define HAVE_GETENV 1
-
-/* Define if you have the gethostname function. */
-#define HAVE_GETHOSTNAME 1
-
-/* Define if you have the ioctlsocket function. */
-#define HAVE_IOCTLSOCKET 1
-
-/* Define if you have a working ioctlsocket FIONBIO function. */
-#define HAVE_IOCTLSOCKET_FIONBIO 1
-
-/* Define if you have the strcasecmp function. */
-/* #define HAVE_STRCASECMP 1 */
-
-/* Define if you have the strdup function. */
-#define HAVE_STRDUP 1
-
-/* Define if you have the stricmp function. */
-#define HAVE_STRICMP 1
-
-/* Define if you have the strncasecmp function. */
-/* #define HAVE_STRNCASECMP 1 */
-
-/* Define if you have the strnicmp function. */
-#define HAVE_STRNICMP 1
-
-/* Define if you have the recv function. */
-#define HAVE_RECV 1
-
-/* Define to the type of arg 1 for recv. */
-#define RECV_TYPE_ARG1 SOCKET
-
-/* Define to the type of arg 2 for recv. */
-#define RECV_TYPE_ARG2 char *
-
-/* Define to the type of arg 3 for recv. */
-#define RECV_TYPE_ARG3 int
-
-/* Define to the type of arg 4 for recv. */
-#define RECV_TYPE_ARG4 int
-
-/* Define to the function return type for recv. */
-#define RECV_TYPE_RETV int
-
-/* Define if you have the recvfrom function. */
-#define HAVE_RECVFROM 1
-
-/* Define to the type of arg 1 for recvfrom. */
-#define RECVFROM_TYPE_ARG1 SOCKET
-
-/* Define to the type pointed by arg 2 for recvfrom. */
-#define RECVFROM_TYPE_ARG2 char
-
-/* Define to the type of arg 3 for recvfrom. */
-#define RECVFROM_TYPE_ARG3 int
-
-/* Define to the type of arg 4 for recvfrom. */
-#define RECVFROM_TYPE_ARG4 int
-
-/* Define to the type pointed by arg 5 for recvfrom. */
-#define RECVFROM_TYPE_ARG5 struct sockaddr
-
-/* Define to the type pointed by arg 6 for recvfrom. */
-#define RECVFROM_TYPE_ARG6 int
-
-/* Define to the function return type for recvfrom. */
-#define RECVFROM_TYPE_RETV int
-
-/* Define if you have the send function. */
-#define HAVE_SEND 1
-
-/* Define to the type of arg 1 for send. */
-#define SEND_TYPE_ARG1 SOCKET
-
-/* Define to the type qualifier of arg 2 for send. */
-#define SEND_QUAL_ARG2 const
-
-/* Define to the type of arg 2 for send. */
-#define SEND_TYPE_ARG2 char *
-
-/* Define to the type of arg 3 for send. */
-#define SEND_TYPE_ARG3 int
-
-/* Define to the type of arg 4 for send. */
-#define SEND_TYPE_ARG4 int
-
-/* Define to the function return type for send. */
-#define SEND_TYPE_RETV int
-
-/* Specifics for the Watt-32 tcp/ip stack. */
-#ifdef WATT32
- #define SOCKET int
- #define NS_INADDRSZ 4
- #define HAVE_ARPA_NAMESER_H 1
- #define HAVE_ARPA_INET_H 1
- #define HAVE_NETDB_H 1
- #define HAVE_NETINET_IN_H 1
- #define HAVE_SYS_SOCKET_H 1
- #define HAVE_NETINET_TCP_H 1
- #define HAVE_AF_INET6 1
- #define HAVE_PF_INET6 1
- #define HAVE_STRUCT_IN6_ADDR 1
- #define HAVE_STRUCT_SOCKADDR_IN6 1
- #undef HAVE_WINSOCK_H
- #undef HAVE_WINSOCK2_H
- #undef HAVE_WS2TCPIP_H
-#endif
-
-/* ---------------------------------------------------------------- */
-/* TYPEDEF REPLACEMENTS */
-/* ---------------------------------------------------------------- */
-
-/* Define if in_addr_t is not an available 'typedefed' type. */
-#define in_addr_t unsigned long
-
-/* Define to the return type of signal handlers (int or void). */
-#define RETSIGTYPE void
-
+/* ---------------------------------------------------------------- */
+/* OTHER HEADER INFO */
+/* ---------------------------------------------------------------- */
+
+/* Define if sig_atomic_t is an available typedef. */
+#define HAVE_SIG_ATOMIC_T 1
+
+/* Define if you have the ANSI C header files. */
+#define STDC_HEADERS 1
+
+/* Define if you can safely include both <sys/time.h> and <time.h>. */
+/* #define TIME_WITH_SYS_TIME 1 */
+
+/* ---------------------------------------------------------------- */
+/* FUNCTIONS */
+/* ---------------------------------------------------------------- */
+
+/* Define if you have the closesocket function. */
+#define HAVE_CLOSESOCKET 1
+
+/* Define if you have the getenv function. */
+#define HAVE_GETENV 1
+
+/* Define if you have the gethostname function. */
+#define HAVE_GETHOSTNAME 1
+
+/* Define if you have the ioctlsocket function. */
+#define HAVE_IOCTLSOCKET 1
+
+/* Define if you have a working ioctlsocket FIONBIO function. */
+#define HAVE_IOCTLSOCKET_FIONBIO 1
+
+/* Define if you have the strcasecmp function. */
+/* #define HAVE_STRCASECMP 1 */
+
+/* Define if you have the strdup function. */
+#define HAVE_STRDUP 1
+
+/* Define if you have the stricmp function. */
+#define HAVE_STRICMP 1
+
+/* Define if you have the strncasecmp function. */
+/* #define HAVE_STRNCASECMP 1 */
+
+/* Define if you have the strnicmp function. */
+#define HAVE_STRNICMP 1
+
+/* Define if you have the recv function. */
+#define HAVE_RECV 1
+
+/* Define to the type of arg 1 for recv. */
+#define RECV_TYPE_ARG1 SOCKET
+
+/* Define to the type of arg 2 for recv. */
+#define RECV_TYPE_ARG2 char *
+
+/* Define to the type of arg 3 for recv. */
+#define RECV_TYPE_ARG3 int
+
+/* Define to the type of arg 4 for recv. */
+#define RECV_TYPE_ARG4 int
+
+/* Define to the function return type for recv. */
+#define RECV_TYPE_RETV int
+
+/* Define if you have the recvfrom function. */
+#define HAVE_RECVFROM 1
+
+/* Define to the type of arg 1 for recvfrom. */
+#define RECVFROM_TYPE_ARG1 SOCKET
+
+/* Define to the type pointed by arg 2 for recvfrom. */
+#define RECVFROM_TYPE_ARG2 char
+
+/* Define to the type of arg 3 for recvfrom. */
+#define RECVFROM_TYPE_ARG3 int
+
+/* Define to the type of arg 4 for recvfrom. */
+#define RECVFROM_TYPE_ARG4 int
+
+/* Define to the type pointed by arg 5 for recvfrom. */
+#define RECVFROM_TYPE_ARG5 struct sockaddr
+
+/* Define to the type pointed by arg 6 for recvfrom. */
+#define RECVFROM_TYPE_ARG6 int
+
+/* Define to the function return type for recvfrom. */
+#define RECVFROM_TYPE_RETV int
+
+/* Define if you have the send function. */
+#define HAVE_SEND 1
+
+/* Define to the type of arg 1 for send. */
+#define SEND_TYPE_ARG1 SOCKET
+
+/* Define to the type qualifier of arg 2 for send. */
+#define SEND_QUAL_ARG2 const
+
+/* Define to the type of arg 2 for send. */
+#define SEND_TYPE_ARG2 char *
+
+/* Define to the type of arg 3 for send. */
+#define SEND_TYPE_ARG3 int
+
+/* Define to the type of arg 4 for send. */
+#define SEND_TYPE_ARG4 int
+
+/* Define to the function return type for send. */
+#define SEND_TYPE_RETV int
+
+/* Specifics for the Watt-32 tcp/ip stack. */
+#ifdef WATT32
+ #define SOCKET int
+ #define NS_INADDRSZ 4
+ #define HAVE_ARPA_NAMESER_H 1
+ #define HAVE_ARPA_INET_H 1
+ #define HAVE_NETDB_H 1
+ #define HAVE_NETINET_IN_H 1
+ #define HAVE_SYS_SOCKET_H 1
+ #define HAVE_NETINET_TCP_H 1
+ #define HAVE_AF_INET6 1
+ #define HAVE_PF_INET6 1
+ #define HAVE_STRUCT_IN6_ADDR 1
+ #define HAVE_STRUCT_SOCKADDR_IN6 1
+ #undef HAVE_WINSOCK_H
+ #undef HAVE_WINSOCK2_H
+ #undef HAVE_WS2TCPIP_H
+#endif
+
+/* ---------------------------------------------------------------- */
+/* TYPEDEF REPLACEMENTS */
+/* ---------------------------------------------------------------- */
+
+/* Define if in_addr_t is not an available 'typedefed' type. */
+#define in_addr_t unsigned long
+
+/* Define to the return type of signal handlers (int or void). */
+#define RETSIGTYPE void
+
#ifdef __cplusplus
/* Compiling headers in C++ mode means bool is available */
#define HAVE_BOOL_T
-#endif
-
-/* ---------------------------------------------------------------- */
-/* TYPE SIZES */
-/* ---------------------------------------------------------------- */
-
-/* ---------------------------------------------------------------- */
-/* STRUCT RELATED */
-/* ---------------------------------------------------------------- */
-
-/* Define if you have struct addrinfo. */
-#define HAVE_STRUCT_ADDRINFO 1
-
-/* Define if you have struct sockaddr_storage. */
-#if !defined(__SALFORDC__) && !defined(__BORLANDC__)
-#define HAVE_STRUCT_SOCKADDR_STORAGE 1
-#endif
-
-/* Define if you have struct timeval. */
-#define HAVE_STRUCT_TIMEVAL 1
-
-/* ---------------------------------------------------------------- */
-/* COMPILER SPECIFIC */
-/* ---------------------------------------------------------------- */
-
-/* Define to avoid VS2005 complaining about portable C functions. */
-#if defined(_MSC_VER) && (_MSC_VER >= 1400)
-# define _CRT_SECURE_NO_DEPRECATE 1
-# define _CRT_NONSTDC_NO_DEPRECATE 1
-#endif
-
+#endif
+
+/* ---------------------------------------------------------------- */
+/* TYPE SIZES */
+/* ---------------------------------------------------------------- */
+
+/* ---------------------------------------------------------------- */
+/* STRUCT RELATED */
+/* ---------------------------------------------------------------- */
+
+/* Define if you have struct addrinfo. */
+#define HAVE_STRUCT_ADDRINFO 1
+
+/* Define if you have struct sockaddr_storage. */
+#if !defined(__SALFORDC__) && !defined(__BORLANDC__)
+#define HAVE_STRUCT_SOCKADDR_STORAGE 1
+#endif
+
+/* Define if you have struct timeval. */
+#define HAVE_STRUCT_TIMEVAL 1
+
+/* ---------------------------------------------------------------- */
+/* COMPILER SPECIFIC */
+/* ---------------------------------------------------------------- */
+
+/* Define to avoid VS2005 complaining about portable C functions. */
+#if defined(_MSC_VER) && (_MSC_VER >= 1400)
+# define _CRT_SECURE_NO_DEPRECATE 1
+# define _CRT_NONSTDC_NO_DEPRECATE 1
+#endif
+
/* Set the Target to Vista. However, any symbols required above Win2000
* should be loaded via LoadLibrary() */
-#if defined(_MSC_VER) && (_MSC_VER >= 1500)
+#if defined(_MSC_VER) && (_MSC_VER >= 1500)
# define VS2008_MIN_TARGET 0x0600
-#endif
-
-/* VS2008 default target settings and minimum build target check. */
-#if defined(_MSC_VER) && (_MSC_VER >= 1500)
-# ifndef _WIN32_WINNT
+#endif
+
+/* VS2008 default target settings and minimum build target check. */
+#if defined(_MSC_VER) && (_MSC_VER >= 1500)
+# ifndef _WIN32_WINNT
# define _WIN32_WINNT VS2008_MIN_TARGET
-# endif
-# ifndef WINVER
+# endif
+# ifndef WINVER
# define WINVER VS2008_MIN_TARGET
-# endif
-# if (_WIN32_WINNT < VS2008_MIN_TARGET) || (WINVER < VS2008_MIN_TARGET)
-# error VS2008 does not support Windows build targets prior to Windows 2000
-# endif
-#endif
-
-/* When no build target is specified Pelles C 5.00 and later default build
+# endif
+# if (_WIN32_WINNT < VS2008_MIN_TARGET) || (WINVER < VS2008_MIN_TARGET)
+# error VS2008 does not support Windows build targets prior to Windows 2000
+# endif
+#endif
+
+/* When no build target is specified Pelles C 5.00 and later default build
target is Windows Vista. */
-#if defined(__POCC__) && (__POCC__ >= 500)
-# ifndef _WIN32_WINNT
+#if defined(__POCC__) && (__POCC__ >= 500)
+# ifndef _WIN32_WINNT
# define _WIN32_WINNT 0x0600
-# endif
-# ifndef WINVER
+# endif
+# ifndef WINVER
# define WINVER 0x0600
-# endif
-#endif
-
-/* Availability of freeaddrinfo, getaddrinfo and getnameinfo functions is
- quite convoluted, compiler dependent and even build target dependent. */
-#if defined(HAVE_WS2TCPIP_H)
-# if defined(__POCC__)
-# define HAVE_FREEADDRINFO 1
-# define HAVE_GETADDRINFO 1
-# define HAVE_GETNAMEINFO 1
-# elif defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0501)
-# define HAVE_FREEADDRINFO 1
-# define HAVE_GETADDRINFO 1
-# define HAVE_GETNAMEINFO 1
-# elif defined(_MSC_VER) && (_MSC_VER >= 1200)
-# define HAVE_FREEADDRINFO 1
-# define HAVE_GETADDRINFO 1
-# define HAVE_GETNAMEINFO 1
-# endif
-#endif
-
-#if defined(__POCC__)
-# ifndef _MSC_VER
-# error Microsoft extensions /Ze compiler option is required
-# endif
-# ifndef __POCC__OLDNAMES
-# error Compatibility names /Go compiler option is required
-# endif
-#endif
-
-/* ---------------------------------------------------------------- */
-/* IPV6 COMPATIBILITY */
-/* ---------------------------------------------------------------- */
-
-/* Define if you have address family AF_INET6. */
-#ifdef HAVE_WINSOCK2_H
-#define HAVE_AF_INET6 1
-#endif
-
-/* Define if you have protocol family PF_INET6. */
-#ifdef HAVE_WINSOCK2_H
-#define HAVE_PF_INET6 1
-#endif
-
-/* Define if you have struct in6_addr. */
-#ifdef HAVE_WS2TCPIP_H
-#define HAVE_STRUCT_IN6_ADDR 1
-#endif
-
-/* Define if you have struct sockaddr_in6. */
-#ifdef HAVE_WS2TCPIP_H
-#define HAVE_STRUCT_SOCKADDR_IN6 1
-#endif
-
-/* Define if you have sockaddr_in6 with scopeid. */
-#ifdef HAVE_WS2TCPIP_H
-#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1
-#endif
-
-/* ---------------------------------------------------------------- */
-/* Win CE */
-/* ---------------------------------------------------------------- */
-
-/* FIXME: A proper config-win32ce.h should be created to hold these */
-
-/*
- * System error codes for Windows CE
- */
-
-#if defined(_WIN32_WCE) && !defined(HAVE_ERRNO_H)
-# define ENOENT ERROR_FILE_NOT_FOUND
-# define ESRCH ERROR_PATH_NOT_FOUND
-# define ENOMEM ERROR_NOT_ENOUGH_MEMORY
-# define ENOSPC ERROR_INVALID_PARAMETER
-#endif
-
-#endif /* HEADER_CARES_CONFIG_WIN32_H */
+# endif
+#endif
+
+/* Availability of freeaddrinfo, getaddrinfo and getnameinfo functions is
+ quite convoluted, compiler dependent and even build target dependent. */
+#if defined(HAVE_WS2TCPIP_H)
+# if defined(__POCC__)
+# define HAVE_FREEADDRINFO 1
+# define HAVE_GETADDRINFO 1
+# define HAVE_GETNAMEINFO 1
+# elif defined(_WIN32_WINNT) && (_WIN32_WINNT >= 0x0501)
+# define HAVE_FREEADDRINFO 1
+# define HAVE_GETADDRINFO 1
+# define HAVE_GETNAMEINFO 1
+# elif defined(_MSC_VER) && (_MSC_VER >= 1200)
+# define HAVE_FREEADDRINFO 1
+# define HAVE_GETADDRINFO 1
+# define HAVE_GETNAMEINFO 1
+# endif
+#endif
+
+#if defined(__POCC__)
+# ifndef _MSC_VER
+# error Microsoft extensions /Ze compiler option is required
+# endif
+# ifndef __POCC__OLDNAMES
+# error Compatibility names /Go compiler option is required
+# endif
+#endif
+
+/* ---------------------------------------------------------------- */
+/* IPV6 COMPATIBILITY */
+/* ---------------------------------------------------------------- */
+
+/* Define if you have address family AF_INET6. */
+#ifdef HAVE_WINSOCK2_H
+#define HAVE_AF_INET6 1
+#endif
+
+/* Define if you have protocol family PF_INET6. */
+#ifdef HAVE_WINSOCK2_H
+#define HAVE_PF_INET6 1
+#endif
+
+/* Define if you have struct in6_addr. */
+#ifdef HAVE_WS2TCPIP_H
+#define HAVE_STRUCT_IN6_ADDR 1
+#endif
+
+/* Define if you have struct sockaddr_in6. */
+#ifdef HAVE_WS2TCPIP_H
+#define HAVE_STRUCT_SOCKADDR_IN6 1
+#endif
+
+/* Define if you have sockaddr_in6 with scopeid. */
+#ifdef HAVE_WS2TCPIP_H
+#define HAVE_SOCKADDR_IN6_SIN6_SCOPE_ID 1
+#endif
+
+/* ---------------------------------------------------------------- */
+/* Win CE */
+/* ---------------------------------------------------------------- */
+
+/* FIXME: A proper config-win32ce.h should be created to hold these */
+
+/*
+ * System error codes for Windows CE
+ */
+
+#if defined(_WIN32_WCE) && !defined(HAVE_ERRNO_H)
+# define ENOENT ERROR_FILE_NOT_FOUND
+# define ESRCH ERROR_PATH_NOT_FOUND
+# define ENOMEM ERROR_NOT_ENOUGH_MEMORY
+# define ENOSPC ERROR_INVALID_PARAMETER
+#endif
+
+#endif /* HEADER_CARES_CONFIG_WIN32_H */
diff --git a/contrib/libs/c-ares/inet_net_pton.c b/contrib/libs/c-ares/inet_net_pton.c
index d632f7e3f2..af1a534a05 100644
--- a/contrib/libs/c-ares/inet_net_pton.c
+++ b/contrib/libs/c-ares/inet_net_pton.c
@@ -1,450 +1,450 @@
-
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996,1999 by Internet Software Consortium.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-# include <arpa/inet.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-# include <arpa/nameser_compat.h>
-#endif
-
-#include "ares.h"
-#include "ares_ipv6.h"
-#include "ares_nowarn.h"
-#include "ares_inet_net_pton.h"
-
-
-const struct ares_in6_addr ares_in6addr_any = { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } };
-
-
-#ifndef HAVE_INET_NET_PTON
-
-/*
- * static int
- * inet_net_pton_ipv4(src, dst, size)
- * convert IPv4 network number from presentation to network format.
- * accepts hex octets, hex strings, decimal octets, and /CIDR.
- * "size" is in bytes and describes "dst".
- * return:
- * number of bits, either imputed classfully or specified with /CIDR,
- * or -1 if some failure occurred (check errno). ENOENT means it was
- * not an IPv4 network specification.
- * note:
- * network byte order assumed. this means 192.5.5.240/28 has
- * 0b11110000 in its fourth octet.
- * note:
- * On Windows we store the error in the thread errno, not
- * in the winsock error code. This is to avoid loosing the
- * actual last winsock error. So use macro ERRNO to fetch the
- * errno this funtion sets when returning (-1), not SOCKERRNO.
- * author:
- * Paul Vixie (ISC), June 1996
- */
-static int
-inet_net_pton_ipv4(const char *src, unsigned char *dst, size_t size)
-{
- static const char xdigits[] = "0123456789abcdef";
- static const char digits[] = "0123456789";
- int n, ch, tmp = 0, dirty, bits;
- const unsigned char *odst = dst;
-
- ch = *src++;
- if (ch == '0' && (src[0] == 'x' || src[0] == 'X')
- && ISASCII(src[1])
- && ISXDIGIT(src[1])) {
- /* Hexadecimal: Eat nybble string. */
- if (!size)
- goto emsgsize;
- dirty = 0;
- src++; /* skip x or X. */
- while ((ch = *src++) != '\0' && ISASCII(ch) && ISXDIGIT(ch)) {
- if (ISUPPER(ch))
- ch = tolower(ch);
- n = aresx_sztosi(strchr(xdigits, ch) - xdigits);
- if (dirty == 0)
- tmp = n;
- else
- tmp = (tmp << 4) | n;
- if (++dirty == 2) {
- if (!size--)
- goto emsgsize;
- *dst++ = (unsigned char) tmp;
- dirty = 0;
- }
- }
- if (dirty) { /* Odd trailing nybble? */
- if (!size--)
- goto emsgsize;
- *dst++ = (unsigned char) (tmp << 4);
- }
- } else if (ISASCII(ch) && ISDIGIT(ch)) {
- /* Decimal: eat dotted digit string. */
- for (;;) {
- tmp = 0;
- do {
- n = aresx_sztosi(strchr(digits, ch) - digits);
- tmp *= 10;
- tmp += n;
- if (tmp > 255)
- goto enoent;
- } while ((ch = *src++) != '\0' &&
- ISASCII(ch) && ISDIGIT(ch));
- if (!size--)
- goto emsgsize;
- *dst++ = (unsigned char) tmp;
- if (ch == '\0' || ch == '/')
- break;
- if (ch != '.')
- goto enoent;
- ch = *src++;
- if (!ISASCII(ch) || !ISDIGIT(ch))
- goto enoent;
- }
- } else
- goto enoent;
-
- bits = -1;
- if (ch == '/' && ISASCII(src[0]) &&
- ISDIGIT(src[0]) && dst > odst) {
- /* CIDR width specifier. Nothing can follow it. */
- ch = *src++; /* Skip over the /. */
- bits = 0;
- do {
- n = aresx_sztosi(strchr(digits, ch) - digits);
- bits *= 10;
- bits += n;
- if (bits > 32)
- goto enoent;
- } while ((ch = *src++) != '\0' && ISASCII(ch) && ISDIGIT(ch));
- if (ch != '\0')
- goto enoent;
- }
-
- /* Firey death and destruction unless we prefetched EOS. */
- if (ch != '\0')
- goto enoent;
-
- /* If nothing was written to the destination, we found no address. */
- if (dst == odst)
+
+/*
+ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1996,1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
+# include <arpa/nameser_compat.h>
+#endif
+
+#include "ares.h"
+#include "ares_ipv6.h"
+#include "ares_nowarn.h"
+#include "ares_inet_net_pton.h"
+
+
+const struct ares_in6_addr ares_in6addr_any = { { { 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 } } };
+
+
+#ifndef HAVE_INET_NET_PTON
+
+/*
+ * static int
+ * inet_net_pton_ipv4(src, dst, size)
+ * convert IPv4 network number from presentation to network format.
+ * accepts hex octets, hex strings, decimal octets, and /CIDR.
+ * "size" is in bytes and describes "dst".
+ * return:
+ * number of bits, either imputed classfully or specified with /CIDR,
+ * or -1 if some failure occurred (check errno). ENOENT means it was
+ * not an IPv4 network specification.
+ * note:
+ * network byte order assumed. this means 192.5.5.240/28 has
+ * 0b11110000 in its fourth octet.
+ * note:
+ * On Windows we store the error in the thread errno, not
+ * in the winsock error code. This is to avoid loosing the
+ * actual last winsock error. So use macro ERRNO to fetch the
+ * errno this funtion sets when returning (-1), not SOCKERRNO.
+ * author:
+ * Paul Vixie (ISC), June 1996
+ */
+static int
+inet_net_pton_ipv4(const char *src, unsigned char *dst, size_t size)
+{
+ static const char xdigits[] = "0123456789abcdef";
+ static const char digits[] = "0123456789";
+ int n, ch, tmp = 0, dirty, bits;
+ const unsigned char *odst = dst;
+
+ ch = *src++;
+ if (ch == '0' && (src[0] == 'x' || src[0] == 'X')
+ && ISASCII(src[1])
+ && ISXDIGIT(src[1])) {
+ /* Hexadecimal: Eat nybble string. */
+ if (!size)
+ goto emsgsize;
+ dirty = 0;
+ src++; /* skip x or X. */
+ while ((ch = *src++) != '\0' && ISASCII(ch) && ISXDIGIT(ch)) {
+ if (ISUPPER(ch))
+ ch = tolower(ch);
+ n = aresx_sztosi(strchr(xdigits, ch) - xdigits);
+ if (dirty == 0)
+ tmp = n;
+ else
+ tmp = (tmp << 4) | n;
+ if (++dirty == 2) {
+ if (!size--)
+ goto emsgsize;
+ *dst++ = (unsigned char) tmp;
+ dirty = 0;
+ }
+ }
+ if (dirty) { /* Odd trailing nybble? */
+ if (!size--)
+ goto emsgsize;
+ *dst++ = (unsigned char) (tmp << 4);
+ }
+ } else if (ISASCII(ch) && ISDIGIT(ch)) {
+ /* Decimal: eat dotted digit string. */
+ for (;;) {
+ tmp = 0;
+ do {
+ n = aresx_sztosi(strchr(digits, ch) - digits);
+ tmp *= 10;
+ tmp += n;
+ if (tmp > 255)
+ goto enoent;
+ } while ((ch = *src++) != '\0' &&
+ ISASCII(ch) && ISDIGIT(ch));
+ if (!size--)
+ goto emsgsize;
+ *dst++ = (unsigned char) tmp;
+ if (ch == '\0' || ch == '/')
+ break;
+ if (ch != '.')
+ goto enoent;
+ ch = *src++;
+ if (!ISASCII(ch) || !ISDIGIT(ch))
+ goto enoent;
+ }
+ } else
+ goto enoent;
+
+ bits = -1;
+ if (ch == '/' && ISASCII(src[0]) &&
+ ISDIGIT(src[0]) && dst > odst) {
+ /* CIDR width specifier. Nothing can follow it. */
+ ch = *src++; /* Skip over the /. */
+ bits = 0;
+ do {
+ n = aresx_sztosi(strchr(digits, ch) - digits);
+ bits *= 10;
+ bits += n;
+ if (bits > 32)
+ goto enoent;
+ } while ((ch = *src++) != '\0' && ISASCII(ch) && ISDIGIT(ch));
+ if (ch != '\0')
+ goto enoent;
+ }
+
+ /* Firey death and destruction unless we prefetched EOS. */
+ if (ch != '\0')
+ goto enoent;
+
+ /* If nothing was written to the destination, we found no address. */
+ if (dst == odst)
goto enoent; /* LCOV_EXCL_LINE: all valid paths above increment dst */
- /* If no CIDR spec was given, infer width from net class. */
- if (bits == -1) {
- if (*odst >= 240) /* Class E */
- bits = 32;
- else if (*odst >= 224) /* Class D */
- bits = 8;
- else if (*odst >= 192) /* Class C */
- bits = 24;
- else if (*odst >= 128) /* Class B */
- bits = 16;
- else /* Class A */
- bits = 8;
- /* If imputed mask is narrower than specified octets, widen. */
- if (bits < ((dst - odst) * 8))
- bits = aresx_sztosi(dst - odst) * 8;
- /*
- * If there are no additional bits specified for a class D
- * address adjust bits to 4.
- */
- if (bits == 8 && *odst == 224)
- bits = 4;
- }
- /* Extend network to cover the actual mask. */
- while (bits > ((dst - odst) * 8)) {
- if (!size--)
- goto emsgsize;
- *dst++ = '\0';
- }
- return (bits);
-
- enoent:
- SET_ERRNO(ENOENT);
- return (-1);
-
- emsgsize:
- SET_ERRNO(EMSGSIZE);
- return (-1);
-}
-
-static int
-getbits(const char *src, int *bitsp)
-{
- static const char digits[] = "0123456789";
- int n;
- int val;
- char ch;
-
- val = 0;
- n = 0;
- while ((ch = *src++) != '\0') {
- const char *pch;
-
- pch = strchr(digits, ch);
- if (pch != NULL) {
- if (n++ != 0 && val == 0) /* no leading zeros */
- return (0);
- val *= 10;
- val += aresx_sztosi(pch - digits);
- if (val > 128) /* range */
- return (0);
- continue;
- }
- return (0);
- }
- if (n == 0)
- return (0);
- *bitsp = val;
- return (1);
-}
-
-static int
-getv4(const char *src, unsigned char *dst, int *bitsp)
-{
- static const char digits[] = "0123456789";
- unsigned char *odst = dst;
- int n;
- unsigned int val;
- char ch;
-
- val = 0;
- n = 0;
- while ((ch = *src++) != '\0') {
- const char *pch;
-
- pch = strchr(digits, ch);
- if (pch != NULL) {
- if (n++ != 0 && val == 0) /* no leading zeros */
- return (0);
- val *= 10;
- val += aresx_sztoui(pch - digits);
- if (val > 255) /* range */
- return (0);
- continue;
- }
- if (ch == '.' || ch == '/') {
- if (dst - odst > 3) /* too many octets? */
- return (0);
- *dst++ = (unsigned char)val;
- if (ch == '/')
- return (getbits(src, bitsp));
- val = 0;
- n = 0;
- continue;
- }
- return (0);
- }
- if (n == 0)
- return (0);
- if (dst - odst > 3) /* too many octets? */
- return (0);
- *dst = (unsigned char)val;
- return 1;
-}
-
-static int
-inet_net_pton_ipv6(const char *src, unsigned char *dst, size_t size)
-{
- static const char xdigits_l[] = "0123456789abcdef",
- xdigits_u[] = "0123456789ABCDEF";
- unsigned char tmp[NS_IN6ADDRSZ], *tp, *endp, *colonp;
- const char *xdigits, *curtok;
- int ch, saw_xdigit;
- unsigned int val;
- int digits;
- int bits;
- size_t bytes;
- int words;
- int ipv4;
-
- memset((tp = tmp), '\0', NS_IN6ADDRSZ);
- endp = tp + NS_IN6ADDRSZ;
- colonp = NULL;
- /* Leading :: requires some special handling. */
- if (*src == ':')
- if (*++src != ':')
- goto enoent;
- curtok = src;
- saw_xdigit = 0;
- val = 0;
- digits = 0;
- bits = -1;
- ipv4 = 0;
- while ((ch = *src++) != '\0') {
- const char *pch;
-
- if ((pch = strchr((xdigits = xdigits_l), ch)) == NULL)
- pch = strchr((xdigits = xdigits_u), ch);
- if (pch != NULL) {
- val <<= 4;
- val |= aresx_sztoui(pch - xdigits);
- if (++digits > 4)
- goto enoent;
- saw_xdigit = 1;
- continue;
- }
- if (ch == ':') {
- curtok = src;
- if (!saw_xdigit) {
- if (colonp)
- goto enoent;
- colonp = tp;
- continue;
- } else if (*src == '\0')
- goto enoent;
- if (tp + NS_INT16SZ > endp)
- return (0);
- *tp++ = (unsigned char)((val >> 8) & 0xff);
- *tp++ = (unsigned char)(val & 0xff);
- saw_xdigit = 0;
- digits = 0;
- val = 0;
- continue;
- }
- if (ch == '.' && ((tp + NS_INADDRSZ) <= endp) &&
- getv4(curtok, tp, &bits) > 0) {
- tp += NS_INADDRSZ;
- saw_xdigit = 0;
- ipv4 = 1;
- break; /* '\0' was seen by inet_pton4(). */
- }
- if (ch == '/' && getbits(src, &bits) > 0)
- break;
- goto enoent;
- }
- if (saw_xdigit) {
- if (tp + NS_INT16SZ > endp)
- goto enoent;
- *tp++ = (unsigned char)((val >> 8) & 0xff);
- *tp++ = (unsigned char)(val & 0xff);
- }
- if (bits == -1)
- bits = 128;
-
- words = (bits + 15) / 16;
- if (words < 2)
- words = 2;
- if (ipv4)
- words = 8;
- endp = tmp + 2 * words;
-
- if (colonp != NULL) {
- /*
- * Since some memmove()'s erroneously fail to handle
- * overlapping regions, we'll do the shift by hand.
- */
+ /* If no CIDR spec was given, infer width from net class. */
+ if (bits == -1) {
+ if (*odst >= 240) /* Class E */
+ bits = 32;
+ else if (*odst >= 224) /* Class D */
+ bits = 8;
+ else if (*odst >= 192) /* Class C */
+ bits = 24;
+ else if (*odst >= 128) /* Class B */
+ bits = 16;
+ else /* Class A */
+ bits = 8;
+ /* If imputed mask is narrower than specified octets, widen. */
+ if (bits < ((dst - odst) * 8))
+ bits = aresx_sztosi(dst - odst) * 8;
+ /*
+ * If there are no additional bits specified for a class D
+ * address adjust bits to 4.
+ */
+ if (bits == 8 && *odst == 224)
+ bits = 4;
+ }
+ /* Extend network to cover the actual mask. */
+ while (bits > ((dst - odst) * 8)) {
+ if (!size--)
+ goto emsgsize;
+ *dst++ = '\0';
+ }
+ return (bits);
+
+ enoent:
+ SET_ERRNO(ENOENT);
+ return (-1);
+
+ emsgsize:
+ SET_ERRNO(EMSGSIZE);
+ return (-1);
+}
+
+static int
+getbits(const char *src, int *bitsp)
+{
+ static const char digits[] = "0123456789";
+ int n;
+ int val;
+ char ch;
+
+ val = 0;
+ n = 0;
+ while ((ch = *src++) != '\0') {
+ const char *pch;
+
+ pch = strchr(digits, ch);
+ if (pch != NULL) {
+ if (n++ != 0 && val == 0) /* no leading zeros */
+ return (0);
+ val *= 10;
+ val += aresx_sztosi(pch - digits);
+ if (val > 128) /* range */
+ return (0);
+ continue;
+ }
+ return (0);
+ }
+ if (n == 0)
+ return (0);
+ *bitsp = val;
+ return (1);
+}
+
+static int
+getv4(const char *src, unsigned char *dst, int *bitsp)
+{
+ static const char digits[] = "0123456789";
+ unsigned char *odst = dst;
+ int n;
+ unsigned int val;
+ char ch;
+
+ val = 0;
+ n = 0;
+ while ((ch = *src++) != '\0') {
+ const char *pch;
+
+ pch = strchr(digits, ch);
+ if (pch != NULL) {
+ if (n++ != 0 && val == 0) /* no leading zeros */
+ return (0);
+ val *= 10;
+ val += aresx_sztoui(pch - digits);
+ if (val > 255) /* range */
+ return (0);
+ continue;
+ }
+ if (ch == '.' || ch == '/') {
+ if (dst - odst > 3) /* too many octets? */
+ return (0);
+ *dst++ = (unsigned char)val;
+ if (ch == '/')
+ return (getbits(src, bitsp));
+ val = 0;
+ n = 0;
+ continue;
+ }
+ return (0);
+ }
+ if (n == 0)
+ return (0);
+ if (dst - odst > 3) /* too many octets? */
+ return (0);
+ *dst = (unsigned char)val;
+ return 1;
+}
+
+static int
+inet_net_pton_ipv6(const char *src, unsigned char *dst, size_t size)
+{
+ static const char xdigits_l[] = "0123456789abcdef",
+ xdigits_u[] = "0123456789ABCDEF";
+ unsigned char tmp[NS_IN6ADDRSZ], *tp, *endp, *colonp;
+ const char *xdigits, *curtok;
+ int ch, saw_xdigit;
+ unsigned int val;
+ int digits;
+ int bits;
+ size_t bytes;
+ int words;
+ int ipv4;
+
+ memset((tp = tmp), '\0', NS_IN6ADDRSZ);
+ endp = tp + NS_IN6ADDRSZ;
+ colonp = NULL;
+ /* Leading :: requires some special handling. */
+ if (*src == ':')
+ if (*++src != ':')
+ goto enoent;
+ curtok = src;
+ saw_xdigit = 0;
+ val = 0;
+ digits = 0;
+ bits = -1;
+ ipv4 = 0;
+ while ((ch = *src++) != '\0') {
+ const char *pch;
+
+ if ((pch = strchr((xdigits = xdigits_l), ch)) == NULL)
+ pch = strchr((xdigits = xdigits_u), ch);
+ if (pch != NULL) {
+ val <<= 4;
+ val |= aresx_sztoui(pch - xdigits);
+ if (++digits > 4)
+ goto enoent;
+ saw_xdigit = 1;
+ continue;
+ }
+ if (ch == ':') {
+ curtok = src;
+ if (!saw_xdigit) {
+ if (colonp)
+ goto enoent;
+ colonp = tp;
+ continue;
+ } else if (*src == '\0')
+ goto enoent;
+ if (tp + NS_INT16SZ > endp)
+ return (0);
+ *tp++ = (unsigned char)((val >> 8) & 0xff);
+ *tp++ = (unsigned char)(val & 0xff);
+ saw_xdigit = 0;
+ digits = 0;
+ val = 0;
+ continue;
+ }
+ if (ch == '.' && ((tp + NS_INADDRSZ) <= endp) &&
+ getv4(curtok, tp, &bits) > 0) {
+ tp += NS_INADDRSZ;
+ saw_xdigit = 0;
+ ipv4 = 1;
+ break; /* '\0' was seen by inet_pton4(). */
+ }
+ if (ch == '/' && getbits(src, &bits) > 0)
+ break;
+ goto enoent;
+ }
+ if (saw_xdigit) {
+ if (tp + NS_INT16SZ > endp)
+ goto enoent;
+ *tp++ = (unsigned char)((val >> 8) & 0xff);
+ *tp++ = (unsigned char)(val & 0xff);
+ }
+ if (bits == -1)
+ bits = 128;
+
+ words = (bits + 15) / 16;
+ if (words < 2)
+ words = 2;
+ if (ipv4)
+ words = 8;
+ endp = tmp + 2 * words;
+
+ if (colonp != NULL) {
+ /*
+ * Since some memmove()'s erroneously fail to handle
+ * overlapping regions, we'll do the shift by hand.
+ */
const ares_ssize_t n = tp - colonp;
ares_ssize_t i;
-
- if (tp == endp)
- goto enoent;
- for (i = 1; i <= n; i++) {
- *(endp - i) = *(colonp + n - i);
- *(colonp + n - i) = 0;
- }
- tp = endp;
- }
- if (tp != endp)
- goto enoent;
-
- bytes = (bits + 7) / 8;
- if (bytes > size)
- goto emsgsize;
- memcpy(dst, tmp, bytes);
- return (bits);
-
- enoent:
- SET_ERRNO(ENOENT);
- return (-1);
-
- emsgsize:
- SET_ERRNO(EMSGSIZE);
- return (-1);
-}
-
-/*
- * int
- * inet_net_pton(af, src, dst, size)
- * convert network number from presentation to network format.
- * accepts hex octets, hex strings, decimal octets, and /CIDR.
- * "size" is in bytes and describes "dst".
- * return:
- * number of bits, either imputed classfully or specified with /CIDR,
- * or -1 if some failure occurred (check errno). ENOENT means it was
- * not a valid network specification.
- * note:
- * On Windows we store the error in the thread errno, not
- * in the winsock error code. This is to avoid loosing the
- * actual last winsock error. So use macro ERRNO to fetch the
- * errno this funtion sets when returning (-1), not SOCKERRNO.
- * author:
- * Paul Vixie (ISC), June 1996
- */
-int
-ares_inet_net_pton(int af, const char *src, void *dst, size_t size)
-{
- switch (af) {
- case AF_INET:
- return (inet_net_pton_ipv4(src, dst, size));
- case AF_INET6:
- return (inet_net_pton_ipv6(src, dst, size));
- default:
- SET_ERRNO(EAFNOSUPPORT);
- return (-1);
- }
-}
-
-#endif /* HAVE_INET_NET_PTON */
-
-#ifndef HAVE_INET_PTON
-int ares_inet_pton(int af, const char *src, void *dst)
-{
- int result;
- size_t size;
-
- if (af == AF_INET)
- size = sizeof(struct in_addr);
- else if (af == AF_INET6)
- size = sizeof(struct ares_in6_addr);
- else
- {
- SET_ERRNO(EAFNOSUPPORT);
- return -1;
- }
- result = ares_inet_net_pton(af, src, dst, size);
- if (result == -1 && ERRNO == ENOENT)
- return 0;
- return (result > -1 ? 1 : -1);
-}
-#else /* HAVE_INET_PTON */
-int ares_inet_pton(int af, const char *src, void *dst)
-{
- /* just relay this to the underlying function */
- return inet_pton(af, src, dst);
-}
-
-#endif
+
+ if (tp == endp)
+ goto enoent;
+ for (i = 1; i <= n; i++) {
+ *(endp - i) = *(colonp + n - i);
+ *(colonp + n - i) = 0;
+ }
+ tp = endp;
+ }
+ if (tp != endp)
+ goto enoent;
+
+ bytes = (bits + 7) / 8;
+ if (bytes > size)
+ goto emsgsize;
+ memcpy(dst, tmp, bytes);
+ return (bits);
+
+ enoent:
+ SET_ERRNO(ENOENT);
+ return (-1);
+
+ emsgsize:
+ SET_ERRNO(EMSGSIZE);
+ return (-1);
+}
+
+/*
+ * int
+ * inet_net_pton(af, src, dst, size)
+ * convert network number from presentation to network format.
+ * accepts hex octets, hex strings, decimal octets, and /CIDR.
+ * "size" is in bytes and describes "dst".
+ * return:
+ * number of bits, either imputed classfully or specified with /CIDR,
+ * or -1 if some failure occurred (check errno). ENOENT means it was
+ * not a valid network specification.
+ * note:
+ * On Windows we store the error in the thread errno, not
+ * in the winsock error code. This is to avoid loosing the
+ * actual last winsock error. So use macro ERRNO to fetch the
+ * errno this funtion sets when returning (-1), not SOCKERRNO.
+ * author:
+ * Paul Vixie (ISC), June 1996
+ */
+int
+ares_inet_net_pton(int af, const char *src, void *dst, size_t size)
+{
+ switch (af) {
+ case AF_INET:
+ return (inet_net_pton_ipv4(src, dst, size));
+ case AF_INET6:
+ return (inet_net_pton_ipv6(src, dst, size));
+ default:
+ SET_ERRNO(EAFNOSUPPORT);
+ return (-1);
+ }
+}
+
+#endif /* HAVE_INET_NET_PTON */
+
+#ifndef HAVE_INET_PTON
+int ares_inet_pton(int af, const char *src, void *dst)
+{
+ int result;
+ size_t size;
+
+ if (af == AF_INET)
+ size = sizeof(struct in_addr);
+ else if (af == AF_INET6)
+ size = sizeof(struct ares_in6_addr);
+ else
+ {
+ SET_ERRNO(EAFNOSUPPORT);
+ return -1;
+ }
+ result = ares_inet_net_pton(af, src, dst, size);
+ if (result == -1 && ERRNO == ENOENT)
+ return 0;
+ return (result > -1 ? 1 : -1);
+}
+#else /* HAVE_INET_PTON */
+int ares_inet_pton(int af, const char *src, void *dst)
+{
+ /* just relay this to the underlying function */
+ return inet_pton(af, src, dst);
+}
+
+#endif
diff --git a/contrib/libs/c-ares/inet_ntop.c b/contrib/libs/c-ares/inet_ntop.c
index 6b4af89a2c..1935a871ce 100644
--- a/contrib/libs/c-ares/inet_ntop.c
+++ b/contrib/libs/c-ares/inet_ntop.c
@@ -1,207 +1,207 @@
-/*
- * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
- * Copyright (c) 1996-1999 by Internet Software Consortium.
- *
- * Permission to use, copy, modify, and distribute this software for any
- * purpose with or without fee is hereby granted, provided that the above
- * copyright notice and this permission notice appear in all copies.
- *
- * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
- * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
- * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
- * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
- * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
- * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
- * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include "ares_setup.h"
-
-#ifdef HAVE_NETINET_IN_H
-# include <netinet/in.h>
-#endif
-#ifdef HAVE_ARPA_INET_H
-# include <arpa/inet.h>
-#endif
-#ifdef HAVE_ARPA_NAMESER_H
-# include <arpa/nameser.h>
-#else
-# include "nameser.h"
-#endif
-#ifdef HAVE_ARPA_NAMESER_COMPAT_H
-# include <arpa/nameser_compat.h>
-#endif
-
-#include "ares.h"
-#include "ares_ipv6.h"
-
-#ifndef HAVE_INET_NTOP
-
-/*
- * WARNING: Don't even consider trying to compile this on a system where
- * sizeof(int) < 4. sizeof(int) > 4 is fine; all the world's not a VAX.
- */
-
-static const char *inet_ntop4(const unsigned char *src, char *dst, size_t size);
-static const char *inet_ntop6(const unsigned char *src, char *dst, size_t size);
-
-/* char *
- * inet_ntop(af, src, dst, size)
- * convert a network format address to presentation format.
- * return:
- * pointer to presentation format address (`dst'), or NULL (see errno).
- * note:
- * On Windows we store the error in the thread errno, not
- * in the winsock error code. This is to avoid loosing the
- * actual last winsock error. So use macro ERRNO to fetch the
+/*
+ * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC")
+ * Copyright (c) 1996-1999 by Internet Software Consortium.
+ *
+ * Permission to use, copy, modify, and distribute this software for any
+ * purpose with or without fee is hereby granted, provided that the above
+ * copyright notice and this permission notice appear in all copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES
+ * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+ * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR
+ * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+ * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
+ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+ */
+
+#include "ares_setup.h"
+
+#ifdef HAVE_NETINET_IN_H
+# include <netinet/in.h>
+#endif
+#ifdef HAVE_ARPA_INET_H
+# include <arpa/inet.h>
+#endif
+#ifdef HAVE_ARPA_NAMESER_H
+# include <arpa/nameser.h>
+#else
+# include "nameser.h"
+#endif
+#ifdef HAVE_ARPA_NAMESER_COMPAT_H
+# include <arpa/nameser_compat.h>
+#endif
+
+#include "ares.h"
+#include "ares_ipv6.h"
+
+#ifndef HAVE_INET_NTOP
+
+/*
+ * WARNING: Don't even consider trying to compile this on a system where
+ * sizeof(int) < 4. sizeof(int) > 4 is fine; all the world's not a VAX.
+ */
+
+static const char *inet_ntop4(const unsigned char *src, char *dst, size_t size);
+static const char *inet_ntop6(const unsigned char *src, char *dst, size_t size);
+
+/* char *
+ * inet_ntop(af, src, dst, size)
+ * convert a network format address to presentation format.
+ * return:
+ * pointer to presentation format address (`dst'), or NULL (see errno).
+ * note:
+ * On Windows we store the error in the thread errno, not
+ * in the winsock error code. This is to avoid loosing the
+ * actual last winsock error. So use macro ERRNO to fetch the
* errno this function sets when returning NULL, not SOCKERRNO.
- * author:
- * Paul Vixie, 1996.
- */
-const char *
-ares_inet_ntop(int af, const void *src, char *dst, ares_socklen_t size)
-{
- switch (af) {
- case AF_INET:
- return (inet_ntop4(src, dst, (size_t)size));
- case AF_INET6:
- return (inet_ntop6(src, dst, (size_t)size));
- default:
- SET_ERRNO(EAFNOSUPPORT);
- return (NULL);
- }
- /* NOTREACHED */
-}
-
-/* const char *
- * inet_ntop4(src, dst, size)
- * format an IPv4 address
- * return:
- * `dst' (as a const)
- * notes:
- * (1) uses no statics
- * (2) takes a unsigned char* not an in_addr as input
- * author:
- * Paul Vixie, 1996.
- */
-static const char *
-inet_ntop4(const unsigned char *src, char *dst, size_t size)
-{
- static const char fmt[] = "%u.%u.%u.%u";
- char tmp[sizeof("255.255.255.255")];
-
- if ((size_t)sprintf(tmp, fmt, src[0], src[1], src[2], src[3]) >= size) {
- SET_ERRNO(ENOSPC);
- return (NULL);
- }
- strcpy(dst, tmp);
- return (dst);
-}
-
-/* const char *
- * inet_ntop6(src, dst, size)
- * convert IPv6 binary address into presentation (printable) format
- * author:
- * Paul Vixie, 1996.
- */
-static const char *
-inet_ntop6(const unsigned char *src, char *dst, size_t size)
-{
- /*
- * Note that int32_t and int16_t need only be "at least" large enough
- * to contain a value of the specified size. On some systems, like
- * Crays, there is no such thing as an integer variable with 16 bits.
- * Keep this in mind if you think this function should have been coded
- * to use pointer overlays. All the world's not a VAX.
- */
- char tmp[sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")];
- char *tp;
- struct { int base, len; } best, cur;
- unsigned int words[NS_IN6ADDRSZ / NS_INT16SZ];
- int i;
-
- /*
- * Preprocess:
- * Copy the input (bytewise) array into a wordwise array.
- * Find the longest run of 0x00's in src[] for :: shorthanding.
- */
- memset(words, '\0', sizeof(words));
- for (i = 0; i < NS_IN6ADDRSZ; i++)
- words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3));
- best.base = -1;
- best.len = 0;
- cur.base = -1;
- cur.len = 0;
- for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) {
- if (words[i] == 0) {
- if (cur.base == -1)
- cur.base = i, cur.len = 1;
- else
- cur.len++;
- } else {
- if (cur.base != -1) {
- if (best.base == -1 || cur.len > best.len)
- best = cur;
- cur.base = -1;
- }
- }
- }
- if (cur.base != -1) {
- if (best.base == -1 || cur.len > best.len)
- best = cur;
- }
- if (best.base != -1 && best.len < 2)
- best.base = -1;
-
- /*
- * Format the result.
- */
- tp = tmp;
- for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) {
- /* Are we inside the best run of 0x00's? */
- if (best.base != -1 && i >= best.base &&
- i < (best.base + best.len)) {
- if (i == best.base)
- *tp++ = ':';
- continue;
- }
- /* Are we following an initial run of 0x00s or any real hex? */
- if (i != 0)
- *tp++ = ':';
- /* Is this address an encapsulated IPv4? */
- if (i == 6 && best.base == 0 && (best.len == 6 ||
- (best.len == 7 && words[7] != 0x0001) ||
- (best.len == 5 && words[5] == 0xffff))) {
- if (!inet_ntop4(src+12, tp, sizeof(tmp) - (tp - tmp)))
- return (NULL);
- tp += strlen(tp);
- break;
- }
- tp += sprintf(tp, "%x", words[i]);
- }
- /* Was it a trailing run of 0x00's? */
+ * author:
+ * Paul Vixie, 1996.
+ */
+const char *
+ares_inet_ntop(int af, const void *src, char *dst, ares_socklen_t size)
+{
+ switch (af) {
+ case AF_INET:
+ return (inet_ntop4(src, dst, (size_t)size));
+ case AF_INET6:
+ return (inet_ntop6(src, dst, (size_t)size));
+ default:
+ SET_ERRNO(EAFNOSUPPORT);
+ return (NULL);
+ }
+ /* NOTREACHED */
+}
+
+/* const char *
+ * inet_ntop4(src, dst, size)
+ * format an IPv4 address
+ * return:
+ * `dst' (as a const)
+ * notes:
+ * (1) uses no statics
+ * (2) takes a unsigned char* not an in_addr as input
+ * author:
+ * Paul Vixie, 1996.
+ */
+static const char *
+inet_ntop4(const unsigned char *src, char *dst, size_t size)
+{
+ static const char fmt[] = "%u.%u.%u.%u";
+ char tmp[sizeof("255.255.255.255")];
+
+ if ((size_t)sprintf(tmp, fmt, src[0], src[1], src[2], src[3]) >= size) {
+ SET_ERRNO(ENOSPC);
+ return (NULL);
+ }
+ strcpy(dst, tmp);
+ return (dst);
+}
+
+/* const char *
+ * inet_ntop6(src, dst, size)
+ * convert IPv6 binary address into presentation (printable) format
+ * author:
+ * Paul Vixie, 1996.
+ */
+static const char *
+inet_ntop6(const unsigned char *src, char *dst, size_t size)
+{
+ /*
+ * Note that int32_t and int16_t need only be "at least" large enough
+ * to contain a value of the specified size. On some systems, like
+ * Crays, there is no such thing as an integer variable with 16 bits.
+ * Keep this in mind if you think this function should have been coded
+ * to use pointer overlays. All the world's not a VAX.
+ */
+ char tmp[sizeof("ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255")];
+ char *tp;
+ struct { int base, len; } best, cur;
+ unsigned int words[NS_IN6ADDRSZ / NS_INT16SZ];
+ int i;
+
+ /*
+ * Preprocess:
+ * Copy the input (bytewise) array into a wordwise array.
+ * Find the longest run of 0x00's in src[] for :: shorthanding.
+ */
+ memset(words, '\0', sizeof(words));
+ for (i = 0; i < NS_IN6ADDRSZ; i++)
+ words[i / 2] |= (src[i] << ((1 - (i % 2)) << 3));
+ best.base = -1;
+ best.len = 0;
+ cur.base = -1;
+ cur.len = 0;
+ for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) {
+ if (words[i] == 0) {
+ if (cur.base == -1)
+ cur.base = i, cur.len = 1;
+ else
+ cur.len++;
+ } else {
+ if (cur.base != -1) {
+ if (best.base == -1 || cur.len > best.len)
+ best = cur;
+ cur.base = -1;
+ }
+ }
+ }
+ if (cur.base != -1) {
+ if (best.base == -1 || cur.len > best.len)
+ best = cur;
+ }
+ if (best.base != -1 && best.len < 2)
+ best.base = -1;
+
+ /*
+ * Format the result.
+ */
+ tp = tmp;
+ for (i = 0; i < (NS_IN6ADDRSZ / NS_INT16SZ); i++) {
+ /* Are we inside the best run of 0x00's? */
+ if (best.base != -1 && i >= best.base &&
+ i < (best.base + best.len)) {
+ if (i == best.base)
+ *tp++ = ':';
+ continue;
+ }
+ /* Are we following an initial run of 0x00s or any real hex? */
+ if (i != 0)
+ *tp++ = ':';
+ /* Is this address an encapsulated IPv4? */
+ if (i == 6 && best.base == 0 && (best.len == 6 ||
+ (best.len == 7 && words[7] != 0x0001) ||
+ (best.len == 5 && words[5] == 0xffff))) {
+ if (!inet_ntop4(src+12, tp, sizeof(tmp) - (tp - tmp)))
+ return (NULL);
+ tp += strlen(tp);
+ break;
+ }
+ tp += sprintf(tp, "%x", words[i]);
+ }
+ /* Was it a trailing run of 0x00's? */
if (best.base != -1 && (best.base + best.len) == (NS_IN6ADDRSZ / NS_INT16SZ))
- *tp++ = ':';
- *tp++ = '\0';
-
- /*
- * Check for overflow, copy, and we're done.
- */
- if ((size_t)(tp - tmp) > size) {
- SET_ERRNO(ENOSPC);
- return (NULL);
- }
- strcpy(dst, tmp);
- return (dst);
-}
-
-#else /* HAVE_INET_NTOP */
-
-const char *
-ares_inet_ntop(int af, const void *src, char *dst, ares_socklen_t size)
-{
- /* just relay this to the underlying function */
- return inet_ntop(af, src, dst, size);
-}
-
-#endif /* HAVE_INET_NTOP */
+ *tp++ = ':';
+ *tp++ = '\0';
+
+ /*
+ * Check for overflow, copy, and we're done.
+ */
+ if ((size_t)(tp - tmp) > size) {
+ SET_ERRNO(ENOSPC);
+ return (NULL);
+ }
+ strcpy(dst, tmp);
+ return (dst);
+}
+
+#else /* HAVE_INET_NTOP */
+
+const char *
+ares_inet_ntop(int af, const void *src, char *dst, ares_socklen_t size)
+{
+ /* just relay this to the underlying function */
+ return inet_ntop(af, src, dst, size);
+}
+
+#endif /* HAVE_INET_NTOP */
diff --git a/contrib/libs/c-ares/nameser.h b/contrib/libs/c-ares/nameser.h
index 495f0421fa..a0302fd398 100644
--- a/contrib/libs/c-ares/nameser.h
+++ b/contrib/libs/c-ares/nameser.h
@@ -1,211 +1,211 @@
-
-#ifndef ARES_NAMESER_H
-#define ARES_NAMESER_H
-
-/* header file provided by liren@vivisimo.com */
-
-#ifndef HAVE_ARPA_NAMESER_H
-
-#define NS_PACKETSZ 512 /* maximum packet size */
-#define NS_MAXDNAME 256 /* maximum domain name */
-#define NS_MAXCDNAME 255 /* maximum compressed domain name */
-#define NS_MAXLABEL 63
-#define NS_HFIXEDSZ 12 /* #/bytes of fixed data in header */
-#define NS_QFIXEDSZ 4 /* #/bytes of fixed data in query */
-#define NS_RRFIXEDSZ 10 /* #/bytes of fixed data in r record */
-#define NS_INT16SZ 2
-#define NS_INADDRSZ 4
-#define NS_IN6ADDRSZ 16
-#define NS_CMPRSFLGS 0xc0 /* Flag bits indicating name compression. */
-#define NS_DEFAULTPORT 53 /* For both TCP and UDP. */
-
-typedef enum __ns_class {
- ns_c_invalid = 0, /* Cookie. */
- ns_c_in = 1, /* Internet. */
- ns_c_2 = 2, /* unallocated/unsupported. */
- ns_c_chaos = 3, /* MIT Chaos-net. */
- ns_c_hs = 4, /* MIT Hesiod. */
- /* Query class values which do not appear in resource records */
- ns_c_none = 254, /* for prereq. sections in update requests */
- ns_c_any = 255, /* Wildcard match. */
- ns_c_max = 65536
-} ns_class;
-
-typedef enum __ns_type {
- ns_t_invalid = 0, /* Cookie. */
- ns_t_a = 1, /* Host address. */
- ns_t_ns = 2, /* Authoritative server. */
- ns_t_md = 3, /* Mail destination. */
- ns_t_mf = 4, /* Mail forwarder. */
- ns_t_cname = 5, /* Canonical name. */
- ns_t_soa = 6, /* Start of authority zone. */
- ns_t_mb = 7, /* Mailbox domain name. */
- ns_t_mg = 8, /* Mail group member. */
- ns_t_mr = 9, /* Mail rename name. */
- ns_t_null = 10, /* Null resource record. */
- ns_t_wks = 11, /* Well known service. */
- ns_t_ptr = 12, /* Domain name pointer. */
- ns_t_hinfo = 13, /* Host information. */
- ns_t_minfo = 14, /* Mailbox information. */
- ns_t_mx = 15, /* Mail routing information. */
- ns_t_txt = 16, /* Text strings. */
- ns_t_rp = 17, /* Responsible person. */
- ns_t_afsdb = 18, /* AFS cell database. */
- ns_t_x25 = 19, /* X_25 calling address. */
- ns_t_isdn = 20, /* ISDN calling address. */
- ns_t_rt = 21, /* Router. */
- ns_t_nsap = 22, /* NSAP address. */
- ns_t_nsap_ptr = 23, /* Reverse NSAP lookup (deprecated). */
- ns_t_sig = 24, /* Security signature. */
- ns_t_key = 25, /* Security key. */
- ns_t_px = 26, /* X.400 mail mapping. */
- ns_t_gpos = 27, /* Geographical position (withdrawn). */
- ns_t_aaaa = 28, /* Ip6 Address. */
- ns_t_loc = 29, /* Location Information. */
- ns_t_nxt = 30, /* Next domain (security). */
- ns_t_eid = 31, /* Endpoint identifier. */
- ns_t_nimloc = 32, /* Nimrod Locator. */
- ns_t_srv = 33, /* Server Selection. */
- ns_t_atma = 34, /* ATM Address */
- ns_t_naptr = 35, /* Naming Authority PoinTeR */
- ns_t_kx = 36, /* Key Exchange */
- ns_t_cert = 37, /* Certification record */
- ns_t_a6 = 38, /* IPv6 address (deprecates AAAA) */
- ns_t_dname = 39, /* Non-terminal DNAME (for IPv6) */
- ns_t_sink = 40, /* Kitchen sink (experimentatl) */
- ns_t_opt = 41, /* EDNS0 option (meta-RR) */
- ns_t_apl = 42, /* Address prefix list (RFC3123) */
- ns_t_ds = 43, /* Delegation Signer (RFC4034) */
- ns_t_sshfp = 44, /* SSH Key Fingerprint (RFC4255) */
- ns_t_rrsig = 46, /* Resource Record Signature (RFC4034) */
- ns_t_nsec = 47, /* Next Secure (RFC4034) */
- ns_t_dnskey = 48, /* DNS Public Key (RFC4034) */
- ns_t_tkey = 249, /* Transaction key */
- ns_t_tsig = 250, /* Transaction signature. */
- ns_t_ixfr = 251, /* Incremental zone transfer. */
- ns_t_axfr = 252, /* Transfer zone of authority. */
- ns_t_mailb = 253, /* Transfer mailbox records. */
- ns_t_maila = 254, /* Transfer mail agent records. */
- ns_t_any = 255, /* Wildcard match. */
- ns_t_zxfr = 256, /* BIND-specific, nonstandard. */
- ns_t_max = 65536
-} ns_type;
-
-typedef enum __ns_opcode {
- ns_o_query = 0, /* Standard query. */
- ns_o_iquery = 1, /* Inverse query (deprecated/unsupported). */
- ns_o_status = 2, /* Name server status query (unsupported). */
- /* Opcode 3 is undefined/reserved. */
- ns_o_notify = 4, /* Zone change notification. */
- ns_o_update = 5, /* Zone update message. */
- ns_o_max = 6
-} ns_opcode;
-
-typedef enum __ns_rcode {
- ns_r_noerror = 0, /* No error occurred. */
- ns_r_formerr = 1, /* Format error. */
- ns_r_servfail = 2, /* Server failure. */
- ns_r_nxdomain = 3, /* Name error. */
- ns_r_notimpl = 4, /* Unimplemented. */
- ns_r_refused = 5, /* Operation refused. */
- /* these are for BIND_UPDATE */
- ns_r_yxdomain = 6, /* Name exists */
- ns_r_yxrrset = 7, /* RRset exists */
- ns_r_nxrrset = 8, /* RRset does not exist */
- ns_r_notauth = 9, /* Not authoritative for zone */
- ns_r_notzone = 10, /* Zone of record different from zone section */
- ns_r_max = 11,
- /* The following are TSIG extended errors */
- ns_r_badsig = 16,
- ns_r_badkey = 17,
- ns_r_badtime = 18
-} ns_rcode;
-
-#endif /* HAVE_ARPA_NAMESER_H */
-
-#ifndef HAVE_ARPA_NAMESER_COMPAT_H
-
-#define PACKETSZ NS_PACKETSZ
-#define MAXDNAME NS_MAXDNAME
-#define MAXCDNAME NS_MAXCDNAME
-#define MAXLABEL NS_MAXLABEL
-#define HFIXEDSZ NS_HFIXEDSZ
-#define QFIXEDSZ NS_QFIXEDSZ
-#define RRFIXEDSZ NS_RRFIXEDSZ
-#define INDIR_MASK NS_CMPRSFLGS
-#define NAMESERVER_PORT NS_DEFAULTPORT
-
-#define QUERY ns_o_query
-
-#define SERVFAIL ns_r_servfail
-#define NOTIMP ns_r_notimpl
-#define REFUSED ns_r_refused
-#undef NOERROR /* it seems this is already defined in winerror.h */
-#define NOERROR ns_r_noerror
-#define FORMERR ns_r_formerr
-#define NXDOMAIN ns_r_nxdomain
-
-#define C_IN ns_c_in
-#define C_CHAOS ns_c_chaos
-#define C_HS ns_c_hs
-#define C_NONE ns_c_none
-#define C_ANY ns_c_any
-
-#define T_A ns_t_a
-#define T_NS ns_t_ns
-#define T_MD ns_t_md
-#define T_MF ns_t_mf
-#define T_CNAME ns_t_cname
-#define T_SOA ns_t_soa
-#define T_MB ns_t_mb
-#define T_MG ns_t_mg
-#define T_MR ns_t_mr
-#define T_NULL ns_t_null
-#define T_WKS ns_t_wks
-#define T_PTR ns_t_ptr
-#define T_HINFO ns_t_hinfo
-#define T_MINFO ns_t_minfo
-#define T_MX ns_t_mx
-#define T_TXT ns_t_txt
-#define T_RP ns_t_rp
-#define T_AFSDB ns_t_afsdb
-#define T_X25 ns_t_x25
-#define T_ISDN ns_t_isdn
-#define T_RT ns_t_rt
-#define T_NSAP ns_t_nsap
-#define T_NSAP_PTR ns_t_nsap_ptr
-#define T_SIG ns_t_sig
-#define T_KEY ns_t_key
-#define T_PX ns_t_px
-#define T_GPOS ns_t_gpos
-#define T_AAAA ns_t_aaaa
-#define T_LOC ns_t_loc
-#define T_NXT ns_t_nxt
-#define T_EID ns_t_eid
-#define T_NIMLOC ns_t_nimloc
-#define T_SRV ns_t_srv
-#define T_ATMA ns_t_atma
-#define T_NAPTR ns_t_naptr
-#define T_KX ns_t_kx
-#define T_CERT ns_t_cert
-#define T_A6 ns_t_a6
-#define T_DNAME ns_t_dname
-#define T_SINK ns_t_sink
-#define T_OPT ns_t_opt
-#define T_APL ns_t_apl
-#define T_DS ns_t_ds
-#define T_SSHFP ns_t_sshfp
-#define T_RRSIG ns_t_rrsig
-#define T_NSEC ns_t_nsec
-#define T_DNSKEY ns_t_dnskey
-#define T_TKEY ns_t_tkey
-#define T_TSIG ns_t_tsig
-#define T_IXFR ns_t_ixfr
-#define T_AXFR ns_t_axfr
-#define T_MAILB ns_t_mailb
-#define T_MAILA ns_t_maila
-#define T_ANY ns_t_any
-
-#endif /* HAVE_ARPA_NAMESER_COMPAT_H */
-
-#endif /* ARES_NAMESER_H */
+
+#ifndef ARES_NAMESER_H
+#define ARES_NAMESER_H
+
+/* header file provided by liren@vivisimo.com */
+
+#ifndef HAVE_ARPA_NAMESER_H
+
+#define NS_PACKETSZ 512 /* maximum packet size */
+#define NS_MAXDNAME 256 /* maximum domain name */
+#define NS_MAXCDNAME 255 /* maximum compressed domain name */
+#define NS_MAXLABEL 63
+#define NS_HFIXEDSZ 12 /* #/bytes of fixed data in header */
+#define NS_QFIXEDSZ 4 /* #/bytes of fixed data in query */
+#define NS_RRFIXEDSZ 10 /* #/bytes of fixed data in r record */
+#define NS_INT16SZ 2
+#define NS_INADDRSZ 4
+#define NS_IN6ADDRSZ 16
+#define NS_CMPRSFLGS 0xc0 /* Flag bits indicating name compression. */
+#define NS_DEFAULTPORT 53 /* For both TCP and UDP. */
+
+typedef enum __ns_class {
+ ns_c_invalid = 0, /* Cookie. */
+ ns_c_in = 1, /* Internet. */
+ ns_c_2 = 2, /* unallocated/unsupported. */
+ ns_c_chaos = 3, /* MIT Chaos-net. */
+ ns_c_hs = 4, /* MIT Hesiod. */
+ /* Query class values which do not appear in resource records */
+ ns_c_none = 254, /* for prereq. sections in update requests */
+ ns_c_any = 255, /* Wildcard match. */
+ ns_c_max = 65536
+} ns_class;
+
+typedef enum __ns_type {
+ ns_t_invalid = 0, /* Cookie. */
+ ns_t_a = 1, /* Host address. */
+ ns_t_ns = 2, /* Authoritative server. */
+ ns_t_md = 3, /* Mail destination. */
+ ns_t_mf = 4, /* Mail forwarder. */
+ ns_t_cname = 5, /* Canonical name. */
+ ns_t_soa = 6, /* Start of authority zone. */
+ ns_t_mb = 7, /* Mailbox domain name. */
+ ns_t_mg = 8, /* Mail group member. */
+ ns_t_mr = 9, /* Mail rename name. */
+ ns_t_null = 10, /* Null resource record. */
+ ns_t_wks = 11, /* Well known service. */
+ ns_t_ptr = 12, /* Domain name pointer. */
+ ns_t_hinfo = 13, /* Host information. */
+ ns_t_minfo = 14, /* Mailbox information. */
+ ns_t_mx = 15, /* Mail routing information. */
+ ns_t_txt = 16, /* Text strings. */
+ ns_t_rp = 17, /* Responsible person. */
+ ns_t_afsdb = 18, /* AFS cell database. */
+ ns_t_x25 = 19, /* X_25 calling address. */
+ ns_t_isdn = 20, /* ISDN calling address. */
+ ns_t_rt = 21, /* Router. */
+ ns_t_nsap = 22, /* NSAP address. */
+ ns_t_nsap_ptr = 23, /* Reverse NSAP lookup (deprecated). */
+ ns_t_sig = 24, /* Security signature. */
+ ns_t_key = 25, /* Security key. */
+ ns_t_px = 26, /* X.400 mail mapping. */
+ ns_t_gpos = 27, /* Geographical position (withdrawn). */
+ ns_t_aaaa = 28, /* Ip6 Address. */
+ ns_t_loc = 29, /* Location Information. */
+ ns_t_nxt = 30, /* Next domain (security). */
+ ns_t_eid = 31, /* Endpoint identifier. */
+ ns_t_nimloc = 32, /* Nimrod Locator. */
+ ns_t_srv = 33, /* Server Selection. */
+ ns_t_atma = 34, /* ATM Address */
+ ns_t_naptr = 35, /* Naming Authority PoinTeR */
+ ns_t_kx = 36, /* Key Exchange */
+ ns_t_cert = 37, /* Certification record */
+ ns_t_a6 = 38, /* IPv6 address (deprecates AAAA) */
+ ns_t_dname = 39, /* Non-terminal DNAME (for IPv6) */
+ ns_t_sink = 40, /* Kitchen sink (experimentatl) */
+ ns_t_opt = 41, /* EDNS0 option (meta-RR) */
+ ns_t_apl = 42, /* Address prefix list (RFC3123) */
+ ns_t_ds = 43, /* Delegation Signer (RFC4034) */
+ ns_t_sshfp = 44, /* SSH Key Fingerprint (RFC4255) */
+ ns_t_rrsig = 46, /* Resource Record Signature (RFC4034) */
+ ns_t_nsec = 47, /* Next Secure (RFC4034) */
+ ns_t_dnskey = 48, /* DNS Public Key (RFC4034) */
+ ns_t_tkey = 249, /* Transaction key */
+ ns_t_tsig = 250, /* Transaction signature. */
+ ns_t_ixfr = 251, /* Incremental zone transfer. */
+ ns_t_axfr = 252, /* Transfer zone of authority. */
+ ns_t_mailb = 253, /* Transfer mailbox records. */
+ ns_t_maila = 254, /* Transfer mail agent records. */
+ ns_t_any = 255, /* Wildcard match. */
+ ns_t_zxfr = 256, /* BIND-specific, nonstandard. */
+ ns_t_max = 65536
+} ns_type;
+
+typedef enum __ns_opcode {
+ ns_o_query = 0, /* Standard query. */
+ ns_o_iquery = 1, /* Inverse query (deprecated/unsupported). */
+ ns_o_status = 2, /* Name server status query (unsupported). */
+ /* Opcode 3 is undefined/reserved. */
+ ns_o_notify = 4, /* Zone change notification. */
+ ns_o_update = 5, /* Zone update message. */
+ ns_o_max = 6
+} ns_opcode;
+
+typedef enum __ns_rcode {
+ ns_r_noerror = 0, /* No error occurred. */
+ ns_r_formerr = 1, /* Format error. */
+ ns_r_servfail = 2, /* Server failure. */
+ ns_r_nxdomain = 3, /* Name error. */
+ ns_r_notimpl = 4, /* Unimplemented. */
+ ns_r_refused = 5, /* Operation refused. */
+ /* these are for BIND_UPDATE */
+ ns_r_yxdomain = 6, /* Name exists */
+ ns_r_yxrrset = 7, /* RRset exists */
+ ns_r_nxrrset = 8, /* RRset does not exist */
+ ns_r_notauth = 9, /* Not authoritative for zone */
+ ns_r_notzone = 10, /* Zone of record different from zone section */
+ ns_r_max = 11,
+ /* The following are TSIG extended errors */
+ ns_r_badsig = 16,
+ ns_r_badkey = 17,
+ ns_r_badtime = 18
+} ns_rcode;
+
+#endif /* HAVE_ARPA_NAMESER_H */
+
+#ifndef HAVE_ARPA_NAMESER_COMPAT_H
+
+#define PACKETSZ NS_PACKETSZ
+#define MAXDNAME NS_MAXDNAME
+#define MAXCDNAME NS_MAXCDNAME
+#define MAXLABEL NS_MAXLABEL
+#define HFIXEDSZ NS_HFIXEDSZ
+#define QFIXEDSZ NS_QFIXEDSZ
+#define RRFIXEDSZ NS_RRFIXEDSZ
+#define INDIR_MASK NS_CMPRSFLGS
+#define NAMESERVER_PORT NS_DEFAULTPORT
+
+#define QUERY ns_o_query
+
+#define SERVFAIL ns_r_servfail
+#define NOTIMP ns_r_notimpl
+#define REFUSED ns_r_refused
+#undef NOERROR /* it seems this is already defined in winerror.h */
+#define NOERROR ns_r_noerror
+#define FORMERR ns_r_formerr
+#define NXDOMAIN ns_r_nxdomain
+
+#define C_IN ns_c_in
+#define C_CHAOS ns_c_chaos
+#define C_HS ns_c_hs
+#define C_NONE ns_c_none
+#define C_ANY ns_c_any
+
+#define T_A ns_t_a
+#define T_NS ns_t_ns
+#define T_MD ns_t_md
+#define T_MF ns_t_mf
+#define T_CNAME ns_t_cname
+#define T_SOA ns_t_soa
+#define T_MB ns_t_mb
+#define T_MG ns_t_mg
+#define T_MR ns_t_mr
+#define T_NULL ns_t_null
+#define T_WKS ns_t_wks
+#define T_PTR ns_t_ptr
+#define T_HINFO ns_t_hinfo
+#define T_MINFO ns_t_minfo
+#define T_MX ns_t_mx
+#define T_TXT ns_t_txt
+#define T_RP ns_t_rp
+#define T_AFSDB ns_t_afsdb
+#define T_X25 ns_t_x25
+#define T_ISDN ns_t_isdn
+#define T_RT ns_t_rt
+#define T_NSAP ns_t_nsap
+#define T_NSAP_PTR ns_t_nsap_ptr
+#define T_SIG ns_t_sig
+#define T_KEY ns_t_key
+#define T_PX ns_t_px
+#define T_GPOS ns_t_gpos
+#define T_AAAA ns_t_aaaa
+#define T_LOC ns_t_loc
+#define T_NXT ns_t_nxt
+#define T_EID ns_t_eid
+#define T_NIMLOC ns_t_nimloc
+#define T_SRV ns_t_srv
+#define T_ATMA ns_t_atma
+#define T_NAPTR ns_t_naptr
+#define T_KX ns_t_kx
+#define T_CERT ns_t_cert
+#define T_A6 ns_t_a6
+#define T_DNAME ns_t_dname
+#define T_SINK ns_t_sink
+#define T_OPT ns_t_opt
+#define T_APL ns_t_apl
+#define T_DS ns_t_ds
+#define T_SSHFP ns_t_sshfp
+#define T_RRSIG ns_t_rrsig
+#define T_NSEC ns_t_nsec
+#define T_DNSKEY ns_t_dnskey
+#define T_TKEY ns_t_tkey
+#define T_TSIG ns_t_tsig
+#define T_IXFR ns_t_ixfr
+#define T_AXFR ns_t_axfr
+#define T_MAILB ns_t_mailb
+#define T_MAILA ns_t_maila
+#define T_ANY ns_t_any
+
+#endif /* HAVE_ARPA_NAMESER_COMPAT_H */
+
+#endif /* ARES_NAMESER_H */
diff --git a/contrib/libs/c-ares/setup_once.h b/contrib/libs/c-ares/setup_once.h
index 1f7ccb9c5a..d4b0a954ed 100644
--- a/contrib/libs/c-ares/setup_once.h
+++ b/contrib/libs/c-ares/setup_once.h
@@ -1,554 +1,554 @@
-#ifndef __SETUP_ONCE_H
-#define __SETUP_ONCE_H
-
-
-/* Copyright (C) 2004 - 2013 by Daniel Stenberg et al
- *
- * Permission to use, copy, modify, and distribute this software and its
- * documentation for any purpose and without fee is hereby granted, provided
- * that the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of M.I.T. not be used in advertising or
- * publicity pertaining to distribution of the software without specific,
- * written prior permission. M.I.T. makes no representations about the
- * suitability of this software for any purpose. It is provided "as is"
- * without express or implied warranty.
- */
-
-
-/********************************************************************
- * NOTICE *
- * ======== *
- * *
- * Content of header files lib/setup_once.h and ares/setup_once.h *
- * must be kept in sync. Modify the other one if you change this. *
- * *
- ********************************************************************/
-
-
-/*
- * Inclusion of common header files.
- */
-
-#include <stdio.h>
-#include <stdlib.h>
-#include <string.h>
-#include <stdarg.h>
-#include <ctype.h>
-
-#ifdef HAVE_ERRNO_H
-#include <errno.h>
-#endif
-
-#ifdef HAVE_SYS_TYPES_H
-#include <sys/types.h>
-#endif
-
-#ifdef NEED_MALLOC_H
-#include <malloc.h>
-#endif
-
-#ifdef NEED_MEMORY_H
-#include <memory.h>
-#endif
-
-#ifdef HAVE_SYS_STAT_H
-#include <sys/stat.h>
-#endif
-
-#ifdef HAVE_SYS_TIME_H
-#include <sys/time.h>
-#ifdef TIME_WITH_SYS_TIME
-#include <time.h>
-#endif
-#else
-#ifdef HAVE_TIME_H
-#include <time.h>
-#endif
-#endif
-
-#ifdef WIN32
-#include <io.h>
-#include <fcntl.h>
-#endif
-
-#if defined(HAVE_STDBOOL_H) && defined(HAVE_BOOL_T)
-#include <stdbool.h>
-#endif
-
-#ifdef HAVE_UNISTD_H
-#include <unistd.h>
-#endif
-
-#ifdef __hpux
-# if !defined(_XOPEN_SOURCE_EXTENDED) || defined(_KERNEL)
-# ifdef _APP32_64BIT_OFF_T
-# define OLD_APP32_64BIT_OFF_T _APP32_64BIT_OFF_T
-# undef _APP32_64BIT_OFF_T
-# else
-# undef OLD_APP32_64BIT_OFF_T
-# endif
-# endif
-#endif
-
-#ifdef HAVE_SYS_SOCKET_H
-#include <sys/socket.h>
-#endif
-
-#ifdef __hpux
-# if !defined(_XOPEN_SOURCE_EXTENDED) || defined(_KERNEL)
-# ifdef OLD_APP32_64BIT_OFF_T
-# define _APP32_64BIT_OFF_T OLD_APP32_64BIT_OFF_T
-# undef OLD_APP32_64BIT_OFF_T
-# endif
-# endif
-#endif
-
-
-/*
- * Definition of timeval struct for platforms that don't have it.
- */
-
-#ifndef HAVE_STRUCT_TIMEVAL
-struct timeval {
- long tv_sec;
- long tv_usec;
-};
-#endif
-
-
-/*
- * If we have the MSG_NOSIGNAL define, make sure we use
- * it as the fourth argument of function send()
- */
-
-#if defined(HAVE_MSG_NOSIGNAL) && defined(MSG_NOSIGNAL)
-#define SEND_4TH_ARG MSG_NOSIGNAL
-#else
-#define SEND_4TH_ARG 0
-#endif
-
-
-#if defined(__minix)
-/* Minix doesn't support recv on TCP sockets */
+#ifndef __SETUP_ONCE_H
+#define __SETUP_ONCE_H
+
+
+/* Copyright (C) 2004 - 2013 by Daniel Stenberg et al
+ *
+ * Permission to use, copy, modify, and distribute this software and its
+ * documentation for any purpose and without fee is hereby granted, provided
+ * that the above copyright notice appear in all copies and that both that
+ * copyright notice and this permission notice appear in supporting
+ * documentation, and that the name of M.I.T. not be used in advertising or
+ * publicity pertaining to distribution of the software without specific,
+ * written prior permission. M.I.T. makes no representations about the
+ * suitability of this software for any purpose. It is provided "as is"
+ * without express or implied warranty.
+ */
+
+
+/********************************************************************
+ * NOTICE *
+ * ======== *
+ * *
+ * Content of header files lib/setup_once.h and ares/setup_once.h *
+ * must be kept in sync. Modify the other one if you change this. *
+ * *
+ ********************************************************************/
+
+
+/*
+ * Inclusion of common header files.
+ */
+
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <stdarg.h>
+#include <ctype.h>
+
+#ifdef HAVE_ERRNO_H
+#include <errno.h>
+#endif
+
+#ifdef HAVE_SYS_TYPES_H
+#include <sys/types.h>
+#endif
+
+#ifdef NEED_MALLOC_H
+#include <malloc.h>
+#endif
+
+#ifdef NEED_MEMORY_H
+#include <memory.h>
+#endif
+
+#ifdef HAVE_SYS_STAT_H
+#include <sys/stat.h>
+#endif
+
+#ifdef HAVE_SYS_TIME_H
+#include <sys/time.h>
+#ifdef TIME_WITH_SYS_TIME
+#include <time.h>
+#endif
+#else
+#ifdef HAVE_TIME_H
+#include <time.h>
+#endif
+#endif
+
+#ifdef WIN32
+#include <io.h>
+#include <fcntl.h>
+#endif
+
+#if defined(HAVE_STDBOOL_H) && defined(HAVE_BOOL_T)
+#include <stdbool.h>
+#endif
+
+#ifdef HAVE_UNISTD_H
+#include <unistd.h>
+#endif
+
+#ifdef __hpux
+# if !defined(_XOPEN_SOURCE_EXTENDED) || defined(_KERNEL)
+# ifdef _APP32_64BIT_OFF_T
+# define OLD_APP32_64BIT_OFF_T _APP32_64BIT_OFF_T
+# undef _APP32_64BIT_OFF_T
+# else
+# undef OLD_APP32_64BIT_OFF_T
+# endif
+# endif
+#endif
+
+#ifdef HAVE_SYS_SOCKET_H
+#include <sys/socket.h>
+#endif
+
+#ifdef __hpux
+# if !defined(_XOPEN_SOURCE_EXTENDED) || defined(_KERNEL)
+# ifdef OLD_APP32_64BIT_OFF_T
+# define _APP32_64BIT_OFF_T OLD_APP32_64BIT_OFF_T
+# undef OLD_APP32_64BIT_OFF_T
+# endif
+# endif
+#endif
+
+
+/*
+ * Definition of timeval struct for platforms that don't have it.
+ */
+
+#ifndef HAVE_STRUCT_TIMEVAL
+struct timeval {
+ long tv_sec;
+ long tv_usec;
+};
+#endif
+
+
+/*
+ * If we have the MSG_NOSIGNAL define, make sure we use
+ * it as the fourth argument of function send()
+ */
+
+#if defined(HAVE_MSG_NOSIGNAL) && defined(MSG_NOSIGNAL)
+#define SEND_4TH_ARG MSG_NOSIGNAL
+#else
+#define SEND_4TH_ARG 0
+#endif
+
+
+#if defined(__minix)
+/* Minix doesn't support recv on TCP sockets */
#define sread(x,y,z) (ares_ssize_t)read((RECV_TYPE_ARG1)(x), \
- (RECV_TYPE_ARG2)(y), \
- (RECV_TYPE_ARG3)(z))
-
-#elif defined(HAVE_RECV)
-/*
- * The definitions for the return type and arguments types
- * of functions recv() and send() belong and come from the
- * configuration file. Do not define them in any other place.
- *
- * HAVE_RECV is defined if you have a function named recv()
- * which is used to read incoming data from sockets. If your
- * function has another name then don't define HAVE_RECV.
- *
- * If HAVE_RECV is defined then RECV_TYPE_ARG1, RECV_TYPE_ARG2,
- * RECV_TYPE_ARG3, RECV_TYPE_ARG4 and RECV_TYPE_RETV must also
- * be defined.
- *
- * HAVE_SEND is defined if you have a function named send()
- * which is used to write outgoing data on a connected socket.
- * If yours has another name then don't define HAVE_SEND.
- *
- * If HAVE_SEND is defined then SEND_TYPE_ARG1, SEND_QUAL_ARG2,
- * SEND_TYPE_ARG2, SEND_TYPE_ARG3, SEND_TYPE_ARG4 and
- * SEND_TYPE_RETV must also be defined.
- */
-
-#if !defined(RECV_TYPE_ARG1) || \
- !defined(RECV_TYPE_ARG2) || \
- !defined(RECV_TYPE_ARG3) || \
- !defined(RECV_TYPE_ARG4) || \
- !defined(RECV_TYPE_RETV)
- /* */
- Error Missing_definition_of_return_and_arguments_types_of_recv
- /* */
-#else
+ (RECV_TYPE_ARG2)(y), \
+ (RECV_TYPE_ARG3)(z))
+
+#elif defined(HAVE_RECV)
+/*
+ * The definitions for the return type and arguments types
+ * of functions recv() and send() belong and come from the
+ * configuration file. Do not define them in any other place.
+ *
+ * HAVE_RECV is defined if you have a function named recv()
+ * which is used to read incoming data from sockets. If your
+ * function has another name then don't define HAVE_RECV.
+ *
+ * If HAVE_RECV is defined then RECV_TYPE_ARG1, RECV_TYPE_ARG2,
+ * RECV_TYPE_ARG3, RECV_TYPE_ARG4 and RECV_TYPE_RETV must also
+ * be defined.
+ *
+ * HAVE_SEND is defined if you have a function named send()
+ * which is used to write outgoing data on a connected socket.
+ * If yours has another name then don't define HAVE_SEND.
+ *
+ * If HAVE_SEND is defined then SEND_TYPE_ARG1, SEND_QUAL_ARG2,
+ * SEND_TYPE_ARG2, SEND_TYPE_ARG3, SEND_TYPE_ARG4 and
+ * SEND_TYPE_RETV must also be defined.
+ */
+
+#if !defined(RECV_TYPE_ARG1) || \
+ !defined(RECV_TYPE_ARG2) || \
+ !defined(RECV_TYPE_ARG3) || \
+ !defined(RECV_TYPE_ARG4) || \
+ !defined(RECV_TYPE_RETV)
+ /* */
+ Error Missing_definition_of_return_and_arguments_types_of_recv
+ /* */
+#else
#define sread(x,y,z) (ares_ssize_t)recv((RECV_TYPE_ARG1)(x), \
- (RECV_TYPE_ARG2)(y), \
- (RECV_TYPE_ARG3)(z), \
- (RECV_TYPE_ARG4)(0))
-#endif
-#else /* HAVE_RECV */
-#ifndef sread
- /* */
- Error Missing_definition_of_macro_sread
- /* */
-#endif
-#endif /* HAVE_RECV */
-
-
-#if defined(__minix)
-/* Minix doesn't support send on TCP sockets */
+ (RECV_TYPE_ARG2)(y), \
+ (RECV_TYPE_ARG3)(z), \
+ (RECV_TYPE_ARG4)(0))
+#endif
+#else /* HAVE_RECV */
+#ifndef sread
+ /* */
+ Error Missing_definition_of_macro_sread
+ /* */
+#endif
+#endif /* HAVE_RECV */
+
+
+#if defined(__minix)
+/* Minix doesn't support send on TCP sockets */
#define swrite(x,y,z) (ares_ssize_t)write((SEND_TYPE_ARG1)(x), \
- (SEND_TYPE_ARG2)(y), \
- (SEND_TYPE_ARG3)(z))
-
-#elif defined(HAVE_SEND)
-#if !defined(SEND_TYPE_ARG1) || \
- !defined(SEND_QUAL_ARG2) || \
- !defined(SEND_TYPE_ARG2) || \
- !defined(SEND_TYPE_ARG3) || \
- !defined(SEND_TYPE_ARG4) || \
- !defined(SEND_TYPE_RETV)
- /* */
- Error Missing_definition_of_return_and_arguments_types_of_send
- /* */
-#else
+ (SEND_TYPE_ARG2)(y), \
+ (SEND_TYPE_ARG3)(z))
+
+#elif defined(HAVE_SEND)
+#if !defined(SEND_TYPE_ARG1) || \
+ !defined(SEND_QUAL_ARG2) || \
+ !defined(SEND_TYPE_ARG2) || \
+ !defined(SEND_TYPE_ARG3) || \
+ !defined(SEND_TYPE_ARG4) || \
+ !defined(SEND_TYPE_RETV)
+ /* */
+ Error Missing_definition_of_return_and_arguments_types_of_send
+ /* */
+#else
#define swrite(x,y,z) (ares_ssize_t)send((SEND_TYPE_ARG1)(x), \
- (SEND_TYPE_ARG2)(y), \
- (SEND_TYPE_ARG3)(z), \
- (SEND_TYPE_ARG4)(SEND_4TH_ARG))
-#endif
-#else /* HAVE_SEND */
-#ifndef swrite
- /* */
- Error Missing_definition_of_macro_swrite
- /* */
-#endif
-#endif /* HAVE_SEND */
-
-
-#if 0
-#if defined(HAVE_RECVFROM)
-/*
- * Currently recvfrom is only used on udp sockets.
- */
-#if !defined(RECVFROM_TYPE_ARG1) || \
- !defined(RECVFROM_TYPE_ARG2) || \
- !defined(RECVFROM_TYPE_ARG3) || \
- !defined(RECVFROM_TYPE_ARG4) || \
- !defined(RECVFROM_TYPE_ARG5) || \
- !defined(RECVFROM_TYPE_ARG6) || \
- !defined(RECVFROM_TYPE_RETV)
- /* */
- Error Missing_definition_of_return_and_arguments_types_of_recvfrom
- /* */
-#else
+ (SEND_TYPE_ARG2)(y), \
+ (SEND_TYPE_ARG3)(z), \
+ (SEND_TYPE_ARG4)(SEND_4TH_ARG))
+#endif
+#else /* HAVE_SEND */
+#ifndef swrite
+ /* */
+ Error Missing_definition_of_macro_swrite
+ /* */
+#endif
+#endif /* HAVE_SEND */
+
+
+#if 0
+#if defined(HAVE_RECVFROM)
+/*
+ * Currently recvfrom is only used on udp sockets.
+ */
+#if !defined(RECVFROM_TYPE_ARG1) || \
+ !defined(RECVFROM_TYPE_ARG2) || \
+ !defined(RECVFROM_TYPE_ARG3) || \
+ !defined(RECVFROM_TYPE_ARG4) || \
+ !defined(RECVFROM_TYPE_ARG5) || \
+ !defined(RECVFROM_TYPE_ARG6) || \
+ !defined(RECVFROM_TYPE_RETV)
+ /* */
+ Error Missing_definition_of_return_and_arguments_types_of_recvfrom
+ /* */
+#else
#define sreadfrom(s,b,bl,f,fl) (ares_ssize_t)recvfrom((RECVFROM_TYPE_ARG1) (s), \
- (RECVFROM_TYPE_ARG2 *)(b), \
- (RECVFROM_TYPE_ARG3) (bl), \
- (RECVFROM_TYPE_ARG4) (0), \
- (RECVFROM_TYPE_ARG5 *)(f), \
- (RECVFROM_TYPE_ARG6 *)(fl))
-#endif
-#else /* HAVE_RECVFROM */
-#ifndef sreadfrom
- /* */
- Error Missing_definition_of_macro_sreadfrom
- /* */
-#endif
-#endif /* HAVE_RECVFROM */
-
-
-#ifdef RECVFROM_TYPE_ARG6_IS_VOID
-# define RECVFROM_ARG6_T int
-#else
-# define RECVFROM_ARG6_T RECVFROM_TYPE_ARG6
-#endif
-#endif /* if 0 */
-
-
-/*
- * Function-like macro definition used to close a socket.
- */
-
-#if defined(HAVE_CLOSESOCKET)
-# define sclose(x) closesocket((x))
-#elif defined(HAVE_CLOSESOCKET_CAMEL)
-# define sclose(x) CloseSocket((x))
-#elif defined(HAVE_CLOSE_S)
-# define sclose(x) close_s((x))
-#else
-# define sclose(x) close((x))
-#endif
-
-
-/*
- * Uppercase macro versions of ANSI/ISO is*() functions/macros which
- * avoid negative number inputs with argument byte codes > 127.
- */
-
-#define ISSPACE(x) (isspace((int) ((unsigned char)x)))
-#define ISDIGIT(x) (isdigit((int) ((unsigned char)x)))
-#define ISALNUM(x) (isalnum((int) ((unsigned char)x)))
-#define ISXDIGIT(x) (isxdigit((int) ((unsigned char)x)))
-#define ISGRAPH(x) (isgraph((int) ((unsigned char)x)))
-#define ISALPHA(x) (isalpha((int) ((unsigned char)x)))
-#define ISPRINT(x) (isprint((int) ((unsigned char)x)))
-#define ISUPPER(x) (isupper((int) ((unsigned char)x)))
-#define ISLOWER(x) (islower((int) ((unsigned char)x)))
-#define ISASCII(x) (isascii((int) ((unsigned char)x)))
-
-#define ISBLANK(x) (int)((((unsigned char)x) == ' ') || \
- (((unsigned char)x) == '\t'))
-
-#define TOLOWER(x) (tolower((int) ((unsigned char)x)))
-
-
-/*
- * 'bool' stuff compatible with HP-UX headers.
- */
-
-#if defined(__hpux) && !defined(HAVE_BOOL_T)
- typedef int bool;
-# define false 0
-# define true 1
-# define HAVE_BOOL_T
-#endif
-
-
-/*
- * 'bool' exists on platforms with <stdbool.h>, i.e. C99 platforms.
- * On non-C99 platforms there's no bool, so define an enum for that.
- * On C99 platforms 'false' and 'true' also exist. Enum uses a
- * global namespace though, so use bool_false and bool_true.
- */
-
-#ifndef HAVE_BOOL_T
- typedef enum {
- bool_false = 0,
- bool_true = 1
- } bool;
-
-/*
- * Use a define to let 'true' and 'false' use those enums. There
- * are currently no use of true and false in libcurl proper, but
- * there are some in the examples. This will cater for any later
- * code happening to use true and false.
- */
-# define false bool_false
-# define true bool_true
-# define HAVE_BOOL_T
-#endif
-
-
-/*
- * Redefine TRUE and FALSE too, to catch current use. With this
- * change, 'bool found = 1' will give a warning on MIPSPro, but
- * 'bool found = TRUE' will not. Change tested on IRIX/MIPSPro,
- * AIX 5.1/Xlc, Tru64 5.1/cc, w/make test too.
- */
-
-#ifndef TRUE
-#define TRUE true
-#endif
-#ifndef FALSE
-#define FALSE false
-#endif
-
-
-/*
- * Macro WHILE_FALSE may be used to build single-iteration do-while loops,
- * avoiding compiler warnings. Mostly intended for other macro definitions.
- */
-
-#define WHILE_FALSE while(0)
-
-#if defined(_MSC_VER) && !defined(__POCC__)
-# undef WHILE_FALSE
-# if (_MSC_VER < 1500)
-# define WHILE_FALSE while(1, 0)
-# else
-# define WHILE_FALSE \
-__pragma(warning(push)) \
-__pragma(warning(disable:4127)) \
-while(0) \
-__pragma(warning(pop))
-# endif
-#endif
-
-
-/*
- * Typedef to 'int' if sig_atomic_t is not an available 'typedefed' type.
- */
-
-#ifndef HAVE_SIG_ATOMIC_T
-typedef int sig_atomic_t;
-#define HAVE_SIG_ATOMIC_T
-#endif
-
-
-/*
- * Convenience SIG_ATOMIC_T definition
- */
-
-#ifdef HAVE_SIG_ATOMIC_T_VOLATILE
-#define SIG_ATOMIC_T static sig_atomic_t
-#else
-#define SIG_ATOMIC_T static volatile sig_atomic_t
-#endif
-
-
-/*
- * Default return type for signal handlers.
- */
-
-#ifndef RETSIGTYPE
-#define RETSIGTYPE void
-#endif
-
-
-/*
- * Macro used to include code only in debug builds.
- */
-
-#ifdef DEBUGBUILD
-#define DEBUGF(x) x
-#else
-#define DEBUGF(x) do { } WHILE_FALSE
-#endif
-
-
-/*
- * Macro used to include assertion code only in debug builds.
- */
-
-#if defined(DEBUGBUILD) && defined(HAVE_ASSERT_H)
-#define DEBUGASSERT(x) assert(x)
-#else
-#define DEBUGASSERT(x) do { } WHILE_FALSE
-#endif
-
-
-/*
- * Macro SOCKERRNO / SET_SOCKERRNO() returns / sets the *socket-related* errno
- * (or equivalent) on this platform to hide platform details to code using it.
- */
-
-#ifdef USE_WINSOCK
-#define SOCKERRNO ((int)WSAGetLastError())
-#define SET_SOCKERRNO(x) (WSASetLastError((int)(x)))
-#else
-#define SOCKERRNO (errno)
-#define SET_SOCKERRNO(x) (errno = (x))
-#endif
-
-
-/*
- * Macro ERRNO / SET_ERRNO() returns / sets the NOT *socket-related* errno
- * (or equivalent) on this platform to hide platform details to code using it.
- */
-
-#if defined(WIN32) && !defined(WATT32)
-#define ERRNO ((int)GetLastError())
-#define SET_ERRNO(x) (SetLastError((DWORD)(x)))
-#else
-#define ERRNO (errno)
-#define SET_ERRNO(x) (errno = (x))
-#endif
-
-
-/*
- * Portable error number symbolic names defined to Winsock error codes.
- */
-
-#ifdef USE_WINSOCK
-#undef EBADF /* override definition in errno.h */
-#define EBADF WSAEBADF
-#undef EINTR /* override definition in errno.h */
-#define EINTR WSAEINTR
-#undef EINVAL /* override definition in errno.h */
-#define EINVAL WSAEINVAL
-#undef EWOULDBLOCK /* override definition in errno.h */
-#define EWOULDBLOCK WSAEWOULDBLOCK
-#undef EINPROGRESS /* override definition in errno.h */
-#define EINPROGRESS WSAEINPROGRESS
-#undef EALREADY /* override definition in errno.h */
-#define EALREADY WSAEALREADY
-#undef ENOTSOCK /* override definition in errno.h */
-#define ENOTSOCK WSAENOTSOCK
-#undef EDESTADDRREQ /* override definition in errno.h */
-#define EDESTADDRREQ WSAEDESTADDRREQ
-#undef EMSGSIZE /* override definition in errno.h */
-#define EMSGSIZE WSAEMSGSIZE
-#undef EPROTOTYPE /* override definition in errno.h */
-#define EPROTOTYPE WSAEPROTOTYPE
-#undef ENOPROTOOPT /* override definition in errno.h */
-#define ENOPROTOOPT WSAENOPROTOOPT
-#undef EPROTONOSUPPORT /* override definition in errno.h */
-#define EPROTONOSUPPORT WSAEPROTONOSUPPORT
-#define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
-#undef EOPNOTSUPP /* override definition in errno.h */
-#define EOPNOTSUPP WSAEOPNOTSUPP
-#define EPFNOSUPPORT WSAEPFNOSUPPORT
-#undef EAFNOSUPPORT /* override definition in errno.h */
-#define EAFNOSUPPORT WSAEAFNOSUPPORT
-#undef EADDRINUSE /* override definition in errno.h */
-#define EADDRINUSE WSAEADDRINUSE
-#undef EADDRNOTAVAIL /* override definition in errno.h */
-#define EADDRNOTAVAIL WSAEADDRNOTAVAIL
-#undef ENETDOWN /* override definition in errno.h */
-#define ENETDOWN WSAENETDOWN
-#undef ENETUNREACH /* override definition in errno.h */
-#define ENETUNREACH WSAENETUNREACH
-#undef ENETRESET /* override definition in errno.h */
-#define ENETRESET WSAENETRESET
-#undef ECONNABORTED /* override definition in errno.h */
-#define ECONNABORTED WSAECONNABORTED
-#undef ECONNRESET /* override definition in errno.h */
-#define ECONNRESET WSAECONNRESET
-#undef ENOBUFS /* override definition in errno.h */
-#define ENOBUFS WSAENOBUFS
-#undef EISCONN /* override definition in errno.h */
-#define EISCONN WSAEISCONN
-#undef ENOTCONN /* override definition in errno.h */
-#define ENOTCONN WSAENOTCONN
-#define ESHUTDOWN WSAESHUTDOWN
-#define ETOOMANYREFS WSAETOOMANYREFS
-#undef ETIMEDOUT /* override definition in errno.h */
-#define ETIMEDOUT WSAETIMEDOUT
-#undef ECONNREFUSED /* override definition in errno.h */
-#define ECONNREFUSED WSAECONNREFUSED
-#undef ELOOP /* override definition in errno.h */
-#define ELOOP WSAELOOP
-#ifndef ENAMETOOLONG /* possible previous definition in errno.h */
-#define ENAMETOOLONG WSAENAMETOOLONG
-#endif
-#define EHOSTDOWN WSAEHOSTDOWN
-#undef EHOSTUNREACH /* override definition in errno.h */
-#define EHOSTUNREACH WSAEHOSTUNREACH
-#ifndef ENOTEMPTY /* possible previous definition in errno.h */
-#define ENOTEMPTY WSAENOTEMPTY
-#endif
-#define EPROCLIM WSAEPROCLIM
-#define EUSERS WSAEUSERS
-#define EDQUOT WSAEDQUOT
-#define ESTALE WSAESTALE
-#define EREMOTE WSAEREMOTE
-#endif
-
-
-/*
- * Actually use __32_getpwuid() on 64-bit VMS builds for getpwuid()
- */
-
-#if defined(__VMS) && \
- defined(__INITIAL_POINTER_SIZE) && (__INITIAL_POINTER_SIZE == 64)
-#define getpwuid __32_getpwuid
-#endif
-
-
-/*
- * Macro argv_item_t hides platform details to code using it.
- */
-
-#ifdef __VMS
-#define argv_item_t __char_ptr32
-#else
-#define argv_item_t char *
-#endif
-
-
-/*
- * We use this ZERO_NULL to avoid picky compiler warnings,
- * when assigning a NULL pointer to a function pointer var.
- */
-
-#define ZERO_NULL 0
-
-
-#endif /* __SETUP_ONCE_H */
+ (RECVFROM_TYPE_ARG2 *)(b), \
+ (RECVFROM_TYPE_ARG3) (bl), \
+ (RECVFROM_TYPE_ARG4) (0), \
+ (RECVFROM_TYPE_ARG5 *)(f), \
+ (RECVFROM_TYPE_ARG6 *)(fl))
+#endif
+#else /* HAVE_RECVFROM */
+#ifndef sreadfrom
+ /* */
+ Error Missing_definition_of_macro_sreadfrom
+ /* */
+#endif
+#endif /* HAVE_RECVFROM */
+
+
+#ifdef RECVFROM_TYPE_ARG6_IS_VOID
+# define RECVFROM_ARG6_T int
+#else
+# define RECVFROM_ARG6_T RECVFROM_TYPE_ARG6
+#endif
+#endif /* if 0 */
+
+
+/*
+ * Function-like macro definition used to close a socket.
+ */
+
+#if defined(HAVE_CLOSESOCKET)
+# define sclose(x) closesocket((x))
+#elif defined(HAVE_CLOSESOCKET_CAMEL)
+# define sclose(x) CloseSocket((x))
+#elif defined(HAVE_CLOSE_S)
+# define sclose(x) close_s((x))
+#else
+# define sclose(x) close((x))
+#endif
+
+
+/*
+ * Uppercase macro versions of ANSI/ISO is*() functions/macros which
+ * avoid negative number inputs with argument byte codes > 127.
+ */
+
+#define ISSPACE(x) (isspace((int) ((unsigned char)x)))
+#define ISDIGIT(x) (isdigit((int) ((unsigned char)x)))
+#define ISALNUM(x) (isalnum((int) ((unsigned char)x)))
+#define ISXDIGIT(x) (isxdigit((int) ((unsigned char)x)))
+#define ISGRAPH(x) (isgraph((int) ((unsigned char)x)))
+#define ISALPHA(x) (isalpha((int) ((unsigned char)x)))
+#define ISPRINT(x) (isprint((int) ((unsigned char)x)))
+#define ISUPPER(x) (isupper((int) ((unsigned char)x)))
+#define ISLOWER(x) (islower((int) ((unsigned char)x)))
+#define ISASCII(x) (isascii((int) ((unsigned char)x)))
+
+#define ISBLANK(x) (int)((((unsigned char)x) == ' ') || \
+ (((unsigned char)x) == '\t'))
+
+#define TOLOWER(x) (tolower((int) ((unsigned char)x)))
+
+
+/*
+ * 'bool' stuff compatible with HP-UX headers.
+ */
+
+#if defined(__hpux) && !defined(HAVE_BOOL_T)
+ typedef int bool;
+# define false 0
+# define true 1
+# define HAVE_BOOL_T
+#endif
+
+
+/*
+ * 'bool' exists on platforms with <stdbool.h>, i.e. C99 platforms.
+ * On non-C99 platforms there's no bool, so define an enum for that.
+ * On C99 platforms 'false' and 'true' also exist. Enum uses a
+ * global namespace though, so use bool_false and bool_true.
+ */
+
+#ifndef HAVE_BOOL_T
+ typedef enum {
+ bool_false = 0,
+ bool_true = 1
+ } bool;
+
+/*
+ * Use a define to let 'true' and 'false' use those enums. There
+ * are currently no use of true and false in libcurl proper, but
+ * there are some in the examples. This will cater for any later
+ * code happening to use true and false.
+ */
+# define false bool_false
+# define true bool_true
+# define HAVE_BOOL_T
+#endif
+
+
+/*
+ * Redefine TRUE and FALSE too, to catch current use. With this
+ * change, 'bool found = 1' will give a warning on MIPSPro, but
+ * 'bool found = TRUE' will not. Change tested on IRIX/MIPSPro,
+ * AIX 5.1/Xlc, Tru64 5.1/cc, w/make test too.
+ */
+
+#ifndef TRUE
+#define TRUE true
+#endif
+#ifndef FALSE
+#define FALSE false
+#endif
+
+
+/*
+ * Macro WHILE_FALSE may be used to build single-iteration do-while loops,
+ * avoiding compiler warnings. Mostly intended for other macro definitions.
+ */
+
+#define WHILE_FALSE while(0)
+
+#if defined(_MSC_VER) && !defined(__POCC__)
+# undef WHILE_FALSE
+# if (_MSC_VER < 1500)
+# define WHILE_FALSE while(1, 0)
+# else
+# define WHILE_FALSE \
+__pragma(warning(push)) \
+__pragma(warning(disable:4127)) \
+while(0) \
+__pragma(warning(pop))
+# endif
+#endif
+
+
+/*
+ * Typedef to 'int' if sig_atomic_t is not an available 'typedefed' type.
+ */
+
+#ifndef HAVE_SIG_ATOMIC_T
+typedef int sig_atomic_t;
+#define HAVE_SIG_ATOMIC_T
+#endif
+
+
+/*
+ * Convenience SIG_ATOMIC_T definition
+ */
+
+#ifdef HAVE_SIG_ATOMIC_T_VOLATILE
+#define SIG_ATOMIC_T static sig_atomic_t
+#else
+#define SIG_ATOMIC_T static volatile sig_atomic_t
+#endif
+
+
+/*
+ * Default return type for signal handlers.
+ */
+
+#ifndef RETSIGTYPE
+#define RETSIGTYPE void
+#endif
+
+
+/*
+ * Macro used to include code only in debug builds.
+ */
+
+#ifdef DEBUGBUILD
+#define DEBUGF(x) x
+#else
+#define DEBUGF(x) do { } WHILE_FALSE
+#endif
+
+
+/*
+ * Macro used to include assertion code only in debug builds.
+ */
+
+#if defined(DEBUGBUILD) && defined(HAVE_ASSERT_H)
+#define DEBUGASSERT(x) assert(x)
+#else
+#define DEBUGASSERT(x) do { } WHILE_FALSE
+#endif
+
+
+/*
+ * Macro SOCKERRNO / SET_SOCKERRNO() returns / sets the *socket-related* errno
+ * (or equivalent) on this platform to hide platform details to code using it.
+ */
+
+#ifdef USE_WINSOCK
+#define SOCKERRNO ((int)WSAGetLastError())
+#define SET_SOCKERRNO(x) (WSASetLastError((int)(x)))
+#else
+#define SOCKERRNO (errno)
+#define SET_SOCKERRNO(x) (errno = (x))
+#endif
+
+
+/*
+ * Macro ERRNO / SET_ERRNO() returns / sets the NOT *socket-related* errno
+ * (or equivalent) on this platform to hide platform details to code using it.
+ */
+
+#if defined(WIN32) && !defined(WATT32)
+#define ERRNO ((int)GetLastError())
+#define SET_ERRNO(x) (SetLastError((DWORD)(x)))
+#else
+#define ERRNO (errno)
+#define SET_ERRNO(x) (errno = (x))
+#endif
+
+
+/*
+ * Portable error number symbolic names defined to Winsock error codes.
+ */
+
+#ifdef USE_WINSOCK
+#undef EBADF /* override definition in errno.h */
+#define EBADF WSAEBADF
+#undef EINTR /* override definition in errno.h */
+#define EINTR WSAEINTR
+#undef EINVAL /* override definition in errno.h */
+#define EINVAL WSAEINVAL
+#undef EWOULDBLOCK /* override definition in errno.h */
+#define EWOULDBLOCK WSAEWOULDBLOCK
+#undef EINPROGRESS /* override definition in errno.h */
+#define EINPROGRESS WSAEINPROGRESS
+#undef EALREADY /* override definition in errno.h */
+#define EALREADY WSAEALREADY
+#undef ENOTSOCK /* override definition in errno.h */
+#define ENOTSOCK WSAENOTSOCK
+#undef EDESTADDRREQ /* override definition in errno.h */
+#define EDESTADDRREQ WSAEDESTADDRREQ
+#undef EMSGSIZE /* override definition in errno.h */
+#define EMSGSIZE WSAEMSGSIZE
+#undef EPROTOTYPE /* override definition in errno.h */
+#define EPROTOTYPE WSAEPROTOTYPE
+#undef ENOPROTOOPT /* override definition in errno.h */
+#define ENOPROTOOPT WSAENOPROTOOPT
+#undef EPROTONOSUPPORT /* override definition in errno.h */
+#define EPROTONOSUPPORT WSAEPROTONOSUPPORT
+#define ESOCKTNOSUPPORT WSAESOCKTNOSUPPORT
+#undef EOPNOTSUPP /* override definition in errno.h */
+#define EOPNOTSUPP WSAEOPNOTSUPP
+#define EPFNOSUPPORT WSAEPFNOSUPPORT
+#undef EAFNOSUPPORT /* override definition in errno.h */
+#define EAFNOSUPPORT WSAEAFNOSUPPORT
+#undef EADDRINUSE /* override definition in errno.h */
+#define EADDRINUSE WSAEADDRINUSE
+#undef EADDRNOTAVAIL /* override definition in errno.h */
+#define EADDRNOTAVAIL WSAEADDRNOTAVAIL
+#undef ENETDOWN /* override definition in errno.h */
+#define ENETDOWN WSAENETDOWN
+#undef ENETUNREACH /* override definition in errno.h */
+#define ENETUNREACH WSAENETUNREACH
+#undef ENETRESET /* override definition in errno.h */
+#define ENETRESET WSAENETRESET
+#undef ECONNABORTED /* override definition in errno.h */
+#define ECONNABORTED WSAECONNABORTED
+#undef ECONNRESET /* override definition in errno.h */
+#define ECONNRESET WSAECONNRESET
+#undef ENOBUFS /* override definition in errno.h */
+#define ENOBUFS WSAENOBUFS
+#undef EISCONN /* override definition in errno.h */
+#define EISCONN WSAEISCONN
+#undef ENOTCONN /* override definition in errno.h */
+#define ENOTCONN WSAENOTCONN
+#define ESHUTDOWN WSAESHUTDOWN
+#define ETOOMANYREFS WSAETOOMANYREFS
+#undef ETIMEDOUT /* override definition in errno.h */
+#define ETIMEDOUT WSAETIMEDOUT
+#undef ECONNREFUSED /* override definition in errno.h */
+#define ECONNREFUSED WSAECONNREFUSED
+#undef ELOOP /* override definition in errno.h */
+#define ELOOP WSAELOOP
+#ifndef ENAMETOOLONG /* possible previous definition in errno.h */
+#define ENAMETOOLONG WSAENAMETOOLONG
+#endif
+#define EHOSTDOWN WSAEHOSTDOWN
+#undef EHOSTUNREACH /* override definition in errno.h */
+#define EHOSTUNREACH WSAEHOSTUNREACH
+#ifndef ENOTEMPTY /* possible previous definition in errno.h */
+#define ENOTEMPTY WSAENOTEMPTY
+#endif
+#define EPROCLIM WSAEPROCLIM
+#define EUSERS WSAEUSERS
+#define EDQUOT WSAEDQUOT
+#define ESTALE WSAESTALE
+#define EREMOTE WSAEREMOTE
+#endif
+
+
+/*
+ * Actually use __32_getpwuid() on 64-bit VMS builds for getpwuid()
+ */
+
+#if defined(__VMS) && \
+ defined(__INITIAL_POINTER_SIZE) && (__INITIAL_POINTER_SIZE == 64)
+#define getpwuid __32_getpwuid
+#endif
+
+
+/*
+ * Macro argv_item_t hides platform details to code using it.
+ */
+
+#ifdef __VMS
+#define argv_item_t __char_ptr32
+#else
+#define argv_item_t char *
+#endif
+
+
+/*
+ * We use this ZERO_NULL to avoid picky compiler warnings,
+ * when assigning a NULL pointer to a function pointer var.
+ */
+
+#define ZERO_NULL 0
+
+
+#endif /* __SETUP_ONCE_H */
diff --git a/contrib/libs/c-ares/windows_port.c b/contrib/libs/c-ares/windows_port.c
index 4a2e7f8d99..03acd1c1e2 100644
--- a/contrib/libs/c-ares/windows_port.c
+++ b/contrib/libs/c-ares/windows_port.c
@@ -1,22 +1,22 @@
-#include "ares_setup.h"
-
-
-/* only do the following on windows
- */
-#if (defined(WIN32) || defined(WATT32)) && !defined(MSDOS)
-
-#ifdef __WATCOMC__
-/*
- * Watcom needs a DllMain() in order to initialise the clib startup code.
- */
-BOOL
-WINAPI DllMain (HINSTANCE hnd, DWORD reason, LPVOID reserved)
-{
- (void) hnd;
- (void) reason;
- (void) reserved;
- return (TRUE);
-}
-#endif
-
-#endif /* WIN32 builds only */
+#include "ares_setup.h"
+
+
+/* only do the following on windows
+ */
+#if (defined(WIN32) || defined(WATT32)) && !defined(MSDOS)
+
+#ifdef __WATCOMC__
+/*
+ * Watcom needs a DllMain() in order to initialise the clib startup code.
+ */
+BOOL
+WINAPI DllMain (HINSTANCE hnd, DWORD reason, LPVOID reserved)
+{
+ (void) hnd;
+ (void) reason;
+ (void) reserved;
+ return (TRUE);
+}
+#endif
+
+#endif /* WIN32 builds only */
diff --git a/contrib/libs/c-ares/ya.make b/contrib/libs/c-ares/ya.make
index b69e719436..bd35762e44 100644
--- a/contrib/libs/c-ares/ya.make
+++ b/contrib/libs/c-ares/ya.make
@@ -1,7 +1,7 @@
# Generated by devtools/yamaker from nixpkgs e392df43c9f302d4a0892caaadcad3cd693edf9e.
-LIBRARY()
-
+LIBRARY()
+
OWNER(
max42
g:cpp-contrib
@@ -27,9 +27,9 @@ PEERDIR(
ADDINCL(
contrib/libs/c-ares
)
-
-NO_COMPILER_WARNINGS()
-
+
+NO_COMPILER_WARNINGS()
+
CFLAGS(
-DCARES_BUILDING_LIBRARY
-DCARES_SYMBOL_HIDING
@@ -48,69 +48,69 @@ IF (ARCH_ARM7)
)
ENDIF()
-SRCS(
- ares__close_sockets.c
- ares__get_hostent.c
+SRCS(
+ ares__close_sockets.c
+ ares__get_hostent.c
ares__parse_into_addrinfo.c
- ares__read_line.c
+ ares__read_line.c
ares__readaddrinfo.c
ares__sortaddrinfo.c
- ares__timeval.c
+ ares__timeval.c
ares_android.c
- ares_cancel.c
- ares_create_query.c
- ares_data.c
- ares_destroy.c
- ares_expand_name.c
- ares_expand_string.c
- ares_fds.c
- ares_free_hostent.c
- ares_free_string.c
+ ares_cancel.c
+ ares_create_query.c
+ ares_data.c
+ ares_destroy.c
+ ares_expand_name.c
+ ares_expand_string.c
+ ares_fds.c
+ ares_free_hostent.c
+ ares_free_string.c
ares_freeaddrinfo.c
ares_getaddrinfo.c
- ares_getenv.c
- ares_gethostbyaddr.c
- ares_gethostbyname.c
- ares_getnameinfo.c
- ares_getopt.c
- ares_getsock.c
- ares_init.c
- ares_library_init.c
- ares_llist.c
- ares_mkquery.c
- ares_nowarn.c
- ares_options.c
- ares_parse_a_reply.c
- ares_parse_aaaa_reply.c
- ares_parse_mx_reply.c
- ares_parse_naptr_reply.c
- ares_parse_ns_reply.c
- ares_parse_ptr_reply.c
- ares_parse_soa_reply.c
- ares_parse_srv_reply.c
- ares_parse_txt_reply.c
- ares_platform.c
- ares_process.c
- ares_query.c
- ares_search.c
- ares_send.c
- ares_strcasecmp.c
- ares_strdup.c
- ares_strerror.c
+ ares_getenv.c
+ ares_gethostbyaddr.c
+ ares_gethostbyname.c
+ ares_getnameinfo.c
+ ares_getopt.c
+ ares_getsock.c
+ ares_init.c
+ ares_library_init.c
+ ares_llist.c
+ ares_mkquery.c
+ ares_nowarn.c
+ ares_options.c
+ ares_parse_a_reply.c
+ ares_parse_aaaa_reply.c
+ ares_parse_mx_reply.c
+ ares_parse_naptr_reply.c
+ ares_parse_ns_reply.c
+ ares_parse_ptr_reply.c
+ ares_parse_soa_reply.c
+ ares_parse_srv_reply.c
+ ares_parse_txt_reply.c
+ ares_platform.c
+ ares_process.c
+ ares_query.c
+ ares_search.c
+ ares_send.c
+ ares_strcasecmp.c
+ ares_strdup.c
+ ares_strerror.c
ares_strsplit.c
- ares_timeout.c
- ares_version.c
- ares_writev.c
+ ares_timeout.c
+ ares_version.c
+ ares_writev.c
atomic.cpp
- bitncmp.c
- inet_net_pton.c
- inet_ntop.c
- windows_port.c
-)
-
+ bitncmp.c
+ inet_net_pton.c
+ inet_ntop.c
+ windows_port.c
+)
+
CHECK_CONFIG_H(ares_setup.h)
-END()
+END()
RECURSE(
acountry