diff --git a/build/jam/images/definitions/minimum b/build/jam/images/definitions/minimum index 4cc2788cea..20368ed2f7 100644 --- a/build/jam/images/definitions/minimum +++ b/build/jam/images/definitions/minimum @@ -271,7 +271,11 @@ SEARCH on $(driverSettingsFiles) AddFilesToHaikuImage home config settings kernel drivers : $(driverSettingsFiles) ; -local networkSettingsFiles = services ; +local networkSettingsFiles = + ports + protocols + services +; SEARCH on $(networkSettingsFiles) = [ FDirName $(HAIKU_TOP) data settings network ] ; AddFilesToHaikuImage system settings network : $(networkSettingsFiles) ; diff --git a/data/settings/network/ports b/data/settings/network/ports new file mode 100644 index 0000000000..4ed57c8f76 --- /dev/null +++ b/data/settings/network/ports @@ -0,0 +1,19783 @@ +# $NetBSD: services,v 1.95.2.3 2014/08/19 23:45:50 tls Exp $ +# See also: services(5), http://www.sethwklein.net/projects/iana-etc/ +# +# Last Updated +# 2013-02-21 +# +# Expert(s) +# +#Joe Touch; Markku Kojo, Eliot Lear, Allison Mankin, Kumiko Ono, Martin Stiemerling and Lars Eggert +# +# Note +# +#************************************************************************ +#* Since we merged and converted this registry it loads more slowly. We * +#* know it should load faster and are working on ways to achieve that. * +#* Thank you for your patience. * +#************************************************************************ +# +#Service names and port numbers are used to distinguish between different +#services that run over transport protocols such as TCP, UDP, DCCP, and +#SCTP. +# +#Service names are assigned on a first-come, first-served process, as +#documented in [RFC6335]. +# +#Port numbers are assigned in various ways, based on three ranges: System +#Ports (0-1023), User Ports (1024-49151), and the Dynamic and/or Private +#Ports (49152-65535); the difference uses of these ranges is described in +#[RFC6335]. System Ports are assigned by IETF +#process for standards-track protocols, as per [RFC6335]. User Ports +#are assigned by IANA using the "Expert Review" process, as per +#[RFC6335]. Dynamic Ports are not assigned. +# +#The registration procedures for service names and port numbers are +#described in [RFC6335]. +# +#Assigned ports both System and User ports SHOULD NOT be used without +#or prior to IANA registration. +# +#************************************************************************ +#* PLEASE NOTE THE FOLLOWING: * +#* * +#* ASSIGNMENT OF A PORT NUMBER DOES NOT IN ANY WAY IMPLY AN * +#* ENDORSEMENT OF AN APPLICATION OR PRODUCT, AND THE FACT THAT NETWORK * +#* TRAFFIC IS FLOWING TO OR FROM A REGISTERED PORT DOES NOT MEAN THAT * +#* IT IS "GOOD" TRAFFIC, NOR THAT IT NECESSARILY CORRESPONDS TO THE * +#* ASSIGNED SERVICE. FIREWALL AND SYSTEM ADMINISTRATORS SHOULD * +#* CHOOSE HOW TO CONFIGURE THEIR SYSTEMS BASED ON THEIR KNOWLEDGE OF * +#* THE TRAFFIC IN QUESTION, NOT WHETHER THERE IS A PORT NUMBER * +#* REGISTERED OR NOT. * +#************************************************************************ +# +# This registry is also available in plain text. +# +# Transport Registration Modification Service Known +#Service Name Port Number Protocol Description Assignee Contact Date Date Reference Code Unauthorized Assignment Notes +# Uses +# 0 tcp Reserved [Jon_Postel] [Jon_Postel] +# 0 udp Reserved [Jon_Postel] [Jon_Postel] +tcpmux 1/tcp # TCP Port Service Multiplexer [Mark_Lottor] [Mark_Lottor] +tcpmux 1/udp # TCP Port Service Multiplexer [Mark_Lottor] [Mark_Lottor] +compressnet 2/tcp # Management Utility +compressnet 2/udp # Management Utility +compressnet 3/tcp # Compression Process [Bernie_Volz] [Bernie_Volz] +compressnet 3/udp # Compression Process [Bernie_Volz] [Bernie_Volz] +# 4 tcp Unassigned +# 4 udp Unassigned +rje 5/tcp # Remote Job Entry [Jon_Postel] [Jon_Postel] +rje 5/udp # Remote Job Entry [Jon_Postel] [Jon_Postel] +# 6 tcp Unassigned +# 6 udp Unassigned +echo 7/tcp # Echo [Jon_Postel] [Jon_Postel] +echo 7/udp # Echo [Jon_Postel] [Jon_Postel] +# 8 tcp Unassigned +# 8 udp Unassigned +discard 9/tcp # Discard [Jon_Postel] [Jon_Postel] +discard 9/udp # Discard [Jon_Postel] [Jon_Postel] +discard 9/sctp # Discard [Randall_Stewart] [Randall_Stewart] [RFC4960] +discard 9/dccp # Discard [Eddie_Kohler] [Eddie_Kohler] [RFC4340] 1145656131 +# 10 tcp Unassigned +# 10 udp Unassigned +systat 11/tcp # Active Users [Jon_Postel] [Jon_Postel] +systat 11/udp # Active Users [Jon_Postel] [Jon_Postel] +# 12 tcp Unassigned +# 12 udp Unassigned +daytime 13/tcp # Daytime [Jon_Postel] [Jon_Postel] [RFC867] +daytime 13/udp # Daytime [Jon_Postel] [Jon_Postel] [RFC867] +# 14 tcp Unassigned +# 14 udp Unassigned +# 15 tcp Unassigned [was netstat] +# 15 udp Unassigned +# 16 tcp Unassigned +# 16 udp Unassigned +qotd 17/tcp # Quote of the Day [Jon_Postel] [Jon_Postel] +qotd 17/udp # Quote of the Day [Jon_Postel] [Jon_Postel] +msp 18/tcp # Message Send Protocol [Rina_Nethaniel] [Rina_Nethaniel] +# (historic) +msp 18/udp # Message Send Protocol [Rina_Nethaniel] [Rina_Nethaniel] +chargen 19/tcp # Character Generator +chargen 19/udp # Character Generator +ftp-data 20/tcp # File Transfer [Default Data] [Jon_Postel] [Jon_Postel] +ftp-data 20/udp # File Transfer [Default Data] [Jon_Postel] [Jon_Postel] +ftp-data 20/sctp # FTP [Randall_Stewart] [Randall_Stewart] [RFC4960] +ftp 21/tcp # File Transfer [Control] [Jon_Postel] [Jon_Postel] [RFC959] Defined TXT keys: u= p= path= +ftp 21/udp # File Transfer [Control] [Jon_Postel] [Jon_Postel] [RFC959] Defined TXT keys: u= p= path= +ftp 21/sctp # FTP [Randall_Stewart] [Randall_Stewart] [RFC4960] Defined TXT keys: u= p= path= +ssh 22/tcp # The Secure Shell (SSH) [RFC4251] Defined TXT keys: u= p= +# Protocol +ssh 22/udp # The Secure Shell (SSH) [RFC4251] Defined TXT keys: u= p= +ssh 22/sctp # SSH [Randall_Stewart] [Randall_Stewart] [RFC4960] Defined TXT keys: u= p= +telnet 23/tcp # Telnet [Jon_Postel] [Jon_Postel] [RFC854] Defined TXT keys: u= p= +telnet 23/udp # Telnet [Jon_Postel] [Jon_Postel] [RFC854] Defined TXT keys: u= p= +# 24 tcp any private mail system [Rick_Adams] [Rick_Adams] +# 24 udp any private mail system [Rick_Adams] [Rick_Adams] +smtp 25/tcp # Simple Mail Transfer [Jon_Postel] [Jon_Postel] +smtp 25/udp # Simple Mail Transfer [Jon_Postel] [Jon_Postel] +# 26 tcp Unassigned +# 26 udp Unassigned +nsw-fe 27/tcp # NSW User System FE [Robert_Thomas] [Robert_Thomas] +nsw-fe 27/udp # NSW User System FE [Robert_Thomas] [Robert_Thomas] +# 28 tcp Unassigned +# 28 udp Unassigned +msg-icp 29/tcp # MSG ICP [Robert_Thomas] [Robert_Thomas] +msg-icp 29/udp # MSG ICP [Robert_Thomas] [Robert_Thomas] +# 30 tcp Unassigned +# 30 udp Unassigned +msg-auth 31/tcp # MSG Authentication [Robert_Thomas] [Robert_Thomas] +msg-auth 31/udp # MSG Authentication [Robert_Thomas] [Robert_Thomas] +# 32 tcp Unassigned +# 32 udp Unassigned +dsp 33/tcp # Display Support Protocol [Ed_Cain] [Ed_Cain] +dsp 33/udp # Display Support Protocol [Ed_Cain] [Ed_Cain] +# 34 tcp Unassigned +# 34 udp Unassigned +# 35 tcp any private printer server [Jon_Postel] [Jon_Postel] +# 35 udp any private printer server [Jon_Postel] [Jon_Postel] +# 36 tcp Unassigned +# 36 udp Unassigned +time 37/tcp # Time [Jon_Postel] [Jon_Postel] +time 37/udp # Time [Jon_Postel] [Jon_Postel] +rap 38/tcp # Route Access Protocol [Robert_Ullmann] [Robert_Ullmann] +rap 38/udp # Route Access Protocol [Robert_Ullmann] [Robert_Ullmann] +rlp 39/tcp # Resource Location Protocol [Mike_Accetta] [Mike_Accetta] +rlp 39/udp # Resource Location Protocol [Mike_Accetta] [Mike_Accetta] +# 40 tcp Unassigned +# 40 udp Unassigned +graphics 41/tcp # Graphics +graphics 41/udp # Graphics +name 42/tcp # Host Name Server +name 42/udp # Host Name Server +nameserver 42/tcp # Host Name Server +nameserver 42/udp # Host Name Server +nicname 43/tcp whois # Who Is +nicname 43/udp whois # Who Is +mpm-flags 44/tcp # MPM FLAGS Protocol +mpm-flags 44/udp # MPM FLAGS Protocol +mpm 45/tcp # Message Processing Module +# [recv] +mpm 45/udp # Message Processing Module +mpm-snd 46/tcp # MPM [default send] [Jon_Postel] [Jon_Postel] +mpm-snd 46/udp # MPM [default send] [Jon_Postel] [Jon_Postel] +ni-ftp 47/tcp # NI FTP [Steve_Kille] [Steve_Kille] +ni-ftp 47/udp # NI FTP [Steve_Kille] [Steve_Kille] +auditd 48/tcp # Digital Audit Daemon [Larry_Scott] [Larry_Scott] +auditd 48/udp # Digital Audit Daemon [Larry_Scott] [Larry_Scott] +tacacs 49/tcp # Login Host Protocol (TACACS) [Pieter_Ditmars] [Pieter_Ditmars] +tacacs 49/udp # Login Host Protocol (TACACS) [Pieter_Ditmars] [Pieter_Ditmars] +re-mail-ck 50/tcp # Remote Mail Checking [Steve_Dorner] [Steve_Dorner] +re-mail-ck 50/udp # Remote Mail Checking [Steve_Dorner] [Steve_Dorner] +la-maint 51/tcp # IMP Logical Address [Andy_Malis] [Andy_Malis] +# Maintenance +la-maint 51/udp # IMP Logical Address [Andy_Malis] [Andy_Malis] +xns-time 52/tcp # XNS Time Protocol [Susie_Armstrong] [Susie_Armstrong] +xns-time 52/udp # XNS Time Protocol [Susie_Armstrong] [Susie_Armstrong] +domain 53/tcp # Domain Name Server [Paul_Mockapetris] [Paul_Mockapetris] +domain 53/udp # Domain Name Server [Paul_Mockapetris] [Paul_Mockapetris] +xns-ch 54/tcp # XNS Clearinghouse [Susie_Armstrong] [Susie_Armstrong] +xns-ch 54/udp # XNS Clearinghouse [Susie_Armstrong] [Susie_Armstrong] +isi-gl 55/tcp # ISI Graphics Language +isi-gl 55/udp # ISI Graphics Language +xns-auth 56/tcp # XNS Authentication [Susie_Armstrong] [Susie_Armstrong] +xns-auth 56/udp # XNS Authentication [Susie_Armstrong] [Susie_Armstrong] +# 57 tcp any private terminal access [Jon_Postel] [Jon_Postel] +# 57 udp any private terminal access [Jon_Postel] [Jon_Postel] +xns-mail 58/tcp # XNS Mail [Susie_Armstrong] [Susie_Armstrong] +xns-mail 58/udp # XNS Mail [Susie_Armstrong] [Susie_Armstrong] +# 59 tcp any private file service [Jon_Postel] [Jon_Postel] +# 59 udp any private file service [Jon_Postel] [Jon_Postel] +# 60 tcp Unassigned +# 60 udp Unassigned +ni-mail 61/tcp # NI MAIL [Steve_Kille] [Steve_Kille] +ni-mail 61/udp # NI MAIL [Steve_Kille] [Steve_Kille] +acas 62/tcp # ACA Services [E_Wald] [E_Wald] +acas 62/udp # ACA Services [E_Wald] [E_Wald] +# whois++ +# +whoispp 63/tcp # IANA assigned this [Rickard_Schoultz] [Rickard_Schoultz] +# well-formed service name as +# a replacement for "whois++". +# This entry is an alias to "whoispp". This entry is now +whois++ 63/tcp # whois++ [Rickard_Schoultz] [Rickard_Schoultz] historic, not usable for use with many common service +# discovery mechanisms. +# +whoispp 63/udp # IANA assigned this [Rickard_Schoultz] [Rickard_Schoultz] +whois++ 63/udp # whois++ [Rickard_Schoultz] [Rickard_Schoultz] historic, not usable for use with many common service +covia 64/tcp # Communications Integrator [Dan_Smith] [Dan_Smith] +# (CI) +covia 64/udp # Communications Integrator [Dan_Smith] [Dan_Smith] +tacacs-ds 65/tcp # TACACS-Database Service [Kathy_Huber] [Kathy_Huber] +tacacs-ds 65/udp # TACACS-Database Service [Kathy_Huber] [Kathy_Huber] +# Oracle SQL*NET +# +sql-net 66/tcp # IANA assigned this [Jack_Haverty] [Jack_Haverty] +# a replacement for "sql*net". +# This entry is an alias to "sql-net". This entry is now +sql*net 66/tcp # Oracle SQL*NET [Jack_Haverty] [Jack_Haverty] historic, not usable for use with many common service +# +sql-net 66/udp # IANA assigned this [Jack_Haverty] [Jack_Haverty] +sql*net 66/udp # Oracle SQL*NET [Jack_Haverty] [Jack_Haverty] historic, not usable for use with many common service +bootps 67/tcp # Bootstrap Protocol Server [Bill_Croft] [Bill_Croft] [RFC951] Defined TXT keys: None +bootps 67/udp # Bootstrap Protocol Server +bootpc 68/tcp # Bootstrap Protocol Client [Bill_Croft] [Bill_Croft] +bootpc 68/udp # Bootstrap Protocol Client [Bill_Croft] [Bill_Croft] +tftp 69/tcp # Trivial File Transfer [David_Clark] [David_Clark] +tftp 69/udp # Trivial File Transfer [David_Clark] [David_Clark] +gopher 70/tcp # Gopher [Mark_McCahill] [Mark_McCahill] +gopher 70/udp # Gopher [Mark_McCahill] [Mark_McCahill] +netrjs-1 71/tcp # Remote Job Service +netrjs-1 71/udp # Remote Job Service +netrjs-2 72/tcp # Remote Job Service +netrjs-2 72/udp # Remote Job Service +netrjs-3 73/tcp # Remote Job Service +netrjs-3 73/udp # Remote Job Service +netrjs-4 74/tcp # Remote Job Service [Bob_Braden] [Bob_Braden] +netrjs-4 74/udp # Remote Job Service [Bob_Braden] [Bob_Braden] +# 75 tcp any private dial out service [Jon_Postel] [Jon_Postel] +# 75 udp any private dial out service [Jon_Postel] [Jon_Postel] +deos 76/tcp # Distributed External Object [Robert_Ullmann] [Robert_Ullmann] +# Store +deos 76/udp # Distributed External Object [Robert_Ullmann] [Robert_Ullmann] +# 77 tcp any private RJE service [Jon_Postel] [Jon_Postel] +# 77 udp any private RJE service [Jon_Postel] [Jon_Postel] +vettcp 78/tcp # vettcp [Christopher_Leong] [Christopher_Leong] +vettcp 78/udp # vettcp [Christopher_Leong] [Christopher_Leong] +# Unauthorized +# use by some +finger 79/tcp # Finger [David_Zimmerman] [David_Zimmerman] mail users +# (see +# [RFC4146] for +# details) +finger 79/udp # Finger [David_Zimmerman] [David_Zimmerman] mail users +http 80/tcp # World Wide Web HTTP Defined TXT keys: u= p= path= +http 80/udp # World Wide Web HTTP Defined TXT keys: u= p= path= p= +# path= (see txtrecords.html#http) Known +# Subtypes: _printer NOTE: The meaning of this service type, +# though called just "http", actually denotes something more +# precise than just "any data transported using HTTP". The +# DNS-SD service type "http" should only be used to advertise +# content that: * is served over HTTP, * can be displayed by +# "typical" web browser client software, and * is intented +# primarily to be viewed by a human user. Of course, the +# definition of "typical web browser" is subjective, and may +www-http 80/tcp # World Wide Web HTTP [Tim_Berners_Lee] [Tim_Berners_Lee] change over time, but for practical purposes the DNS-SD +# service type "http" can be understood as meaning +# "human-readable HTML content served over HTTP". In some cases +# other widely-supported content types may also be appropriate, +# such as plain text over HTTP, or JPEG image over HTTP. +# Content types not intented primarily for viewing by a human +# user, or not widely-supported in web browsing clients, should +# not be advertised as DNS-SD service type "http", even if they +# do happen to be transported over HTTP. Such types should be +# advertised as their own logical service type with their own +# DNS-SD service type, for example, XUL (XML User Interface +# Language) transported over HTTP is advertised explicitly as +# DNS-SD service type "xul-http". +www-http 80/udp # World Wide Web HTTP [Tim_Berners_Lee] [Tim_Berners_Lee] change over time, but for practical purposes the DNS-SD +http 80/sctp # HTTP [Randall_Stewart] [Randall_Stewart] [RFC4960] Defined TXT keys: u= p= path= Port 126 Previously +# assigned to application above +nxedit 126/udp # NXEdit [Don_Payette] [Don_Payette] 126/tcp Unisys Unitary Login unitary 126/udp Unisys Unitary +locus-con 127/tcp # Locus PC-Interface Conn [Eric_Peterson] [Eric_Peterson] +# Server +locus-con 127/udp # Locus PC-Interface Conn [Eric_Peterson] [Eric_Peterson] +gss-xlicen 128/tcp # GSS X License Verification [John_Light] [John_Light] +gss-xlicen 128/udp # GSS X License Verification [John_Light] [John_Light] +pwdgen 129/tcp # Password Generator Protocol [Frank_J_Wacho] [Frank_J_Wacho] +pwdgen 129/udp # Password Generator Protocol [Frank_J_Wacho] [Frank_J_Wacho] +cisco-fna 130/tcp # cisco FNATIVE +cisco-fna 130/udp # cisco FNATIVE +cisco-tna 131/tcp # cisco TNATIVE +cisco-tna 131/udp # cisco TNATIVE +cisco-sys 132/tcp # cisco SYSMAINT +cisco-sys 132/udp # cisco SYSMAINT +statsrv 133/tcp # Statistics Service [Dave_Mills_2] [Dave_Mills_2] +statsrv 133/udp # Statistics Service [Dave_Mills_2] [Dave_Mills_2] +ingres-net 134/tcp # INGRES-NET Service [Mike_Berrow] [Mike_Berrow] +ingres-net 134/udp # INGRES-NET Service [Mike_Berrow] [Mike_Berrow] +epmap 135/tcp # DCE endpoint resolution [Joe_Pato] [Joe_Pato] +epmap 135/udp # DCE endpoint resolution [Joe_Pato] [Joe_Pato] +profile 136/tcp # PROFILE Naming System [Larry_Peterson] [Larry_Peterson] +profile 136/udp # PROFILE Naming System [Larry_Peterson] [Larry_Peterson] +netbios-ns 137/tcp # NETBIOS Name Service +netbios-ns 137/udp # NETBIOS Name Service +netbios-dgm 138/tcp # NETBIOS Datagram Service +netbios-dgm 138/udp # NETBIOS Datagram Service +netbios-ssn 139/tcp # NETBIOS Session Service [Jon_Postel] [Jon_Postel] +netbios-ssn 139/udp # NETBIOS Session Service [Jon_Postel] [Jon_Postel] +emfis-data 140/tcp # EMFIS Data Service +emfis-data 140/udp # EMFIS Data Service +emfis-cntl 141/tcp # EMFIS Control Service [Gerd_Beling] [Gerd_Beling] +emfis-cntl 141/udp # EMFIS Control Service [Gerd_Beling] [Gerd_Beling] +bl-idm 142/tcp # Britton-Lee IDM [Susie_Snitzer] [Susie_Snitzer] +bl-idm 142/udp # Britton-Lee IDM [Susie_Snitzer] [Susie_Snitzer] +imap 143/tcp # Internet Message Access [Mark_Crispin_2] [Mark_Crispin_2] +imap 143/udp # Internet Message Access [Mark_Crispin_2] [Mark_Crispin_2] +uma 144/tcp # Universal Management [Jay_Whitney] [Jay_Whitney] +# Architecture +uma 144/udp # Universal Management [Jay_Whitney] [Jay_Whitney] +uaac 145/tcp # UAAC Protocol [David_A_Gomberg] [David_A_Gomberg] +uaac 145/udp # UAAC Protocol [David_A_Gomberg] [David_A_Gomberg] +iso-tp0 146/tcp # ISO-IP0 +iso-tp0 146/udp # ISO-IP0 +iso-ip 147/tcp # ISO-IP [Marshall_Rose] [Marshall_Rose] +iso-ip 147/udp # ISO-IP [Marshall_Rose] [Marshall_Rose] +jargon 148/tcp # Jargon [Bill_Weinman] [Bill_Weinman] +jargon 148/udp # Jargon [Bill_Weinman] [Bill_Weinman] +aed-512 149/tcp # AED 512 Emulation Service [Albert_G_Broscius] [Albert_G_Broscius] +aed-512 149/udp # AED 512 Emulation Service [Albert_G_Broscius] [Albert_G_Broscius] +sql-net 150/tcp # SQL-NET [Martin_Picard] [Martin_Picard] +sql-net 150/udp # SQL-NET [Martin_Picard] [Martin_Picard] +hems 151/tcp # HEMS +hems 151/udp # HEMS +bftp 152/tcp # Background File Transfer [Annette_DeSchon] [Annette_DeSchon] +# Program +bftp 152/udp # Background File Transfer [Annette_DeSchon] [Annette_DeSchon] +sgmp 153/tcp # SGMP [Marty_Schoffstahl] [Marty_Schoffstahl] +sgmp 153/udp # SGMP [Marty_Schoffstahl] [Marty_Schoffstahl] +netsc-prod 154/tcp # NETSC +netsc-prod 154/udp # NETSC +netsc-dev 155/tcp # NETSC [Sergio_Heker] [Sergio_Heker] +netsc-dev 155/udp # NETSC [Sergio_Heker] [Sergio_Heker] +sqlsrv 156/tcp # SQL Service [Craig_Rogers] [Craig_Rogers] +sqlsrv 156/udp # SQL Service [Craig_Rogers] [Craig_Rogers] +knet-cmp 157/tcp # KNET/VM Command/Message [Gary_S_Malkin] [Gary_S_Malkin] +knet-cmp 157/udp # KNET/VM Command/Message [Gary_S_Malkin] [Gary_S_Malkin] +pcmail-srv 158/tcp # PCMail Server [Mark_L_Lambert] [Mark_L_Lambert] +pcmail-srv 158/udp # PCMail Server [Mark_L_Lambert] [Mark_L_Lambert] +nss-routing 159/tcp # NSS-Routing [Yakov_Rekhter] [Yakov_Rekhter] +nss-routing 159/udp # NSS-Routing [Yakov_Rekhter] [Yakov_Rekhter] +sgmp-traps 160/tcp # SGMP-TRAPS [Marty_Schoffstahl] [Marty_Schoffstahl] +sgmp-traps 160/udp # SGMP-TRAPS [Marty_Schoffstahl] [Marty_Schoffstahl] +snmp 161/tcp # SNMP +snmp 161/udp # SNMP +snmptrap 162/tcp # SNMPTRAP [Marshall_Rose] [Marshall_Rose] +snmptrap 162/udp # SNMPTRAP [Marshall_Rose] [Marshall_Rose] +cmip-man 163/tcp # CMIP/TCP Manager +cmip-man 163/udp # CMIP/TCP Manager +cmip-agent 164/tcp # CMIP/TCP Agent [Amatzia_Ben_Artzi] [Amatzia_Ben_Artzi] +cmip-agent 164/udp # CMIP/TCP Agent [Amatzia_Ben_Artzi] [Amatzia_Ben_Artzi] +xns-courier 165/tcp # Xerox [Susie_Armstrong_2] [Susie_Armstrong_2] +xns-courier 165/udp # Xerox [Susie_Armstrong_2] [Susie_Armstrong_2] +s-net 166/tcp # Sirius Systems [Brian_Lloyd] [Brian_Lloyd] +s-net 166/udp # Sirius Systems [Brian_Lloyd] [Brian_Lloyd] +namp 167/tcp # NAMP [Marty_Schoffstahl] [Marty_Schoffstahl] +namp 167/udp # NAMP [Marty_Schoffstahl] [Marty_Schoffstahl] +rsvd 168/tcp # RSVD [Alan_Sandell] [Alan_Sandell] 2008-05-01 +rsvd 168/udp # RSVD [Alan_Sandell] [Alan_Sandell] 2008-05-01 +send 169/tcp # SEND [William_D_Wisner] [William_D_Wisner] +send 169/udp # SEND [William_D_Wisner] [William_D_Wisner] +print-srv 170/tcp # Network PostScript [Brian_Reid] [Brian_Reid] +print-srv 170/udp # Network PostScript [Brian_Reid] [Brian_Reid] +multiplex 171/tcp # Network Innovations +# Multiplex +multiplex 171/udp # Network Innovations +# Network Innovations CL/1 +# +cl-1 172/tcp # IANA assigned this [Kevin_DeVault] [Kevin_DeVault] +# a replacement for "cl/1". +# This entry is an alias to "cl-1". This entry is now historic, +cl/1 172/tcp # Network Innovations CL/1 [Kevin_DeVault] [Kevin_DeVault] not usable for use with many common service discovery +# mechanisms. +# +cl-1 172/udp # IANA assigned this [Kevin_DeVault] [Kevin_DeVault] +cl/1 172/udp # Network Innovations CL/1 [Kevin_DeVault] [Kevin_DeVault] not usable for use with many common service discovery +xyplex-mux 173/tcp # Xyplex [Bob_Stewart] [Bob_Stewart] +xyplex-mux 173/udp # Xyplex [Bob_Stewart] [Bob_Stewart] +mailq 174/tcp # MAILQ [Rayan_Zachariassen] [Rayan_Zachariassen] +mailq 174/udp # MAILQ [Rayan_Zachariassen] [Rayan_Zachariassen] +vmnet 175/tcp # VMNET [Christopher_Tengi] [Christopher_Tengi] +vmnet 175/udp # VMNET [Christopher_Tengi] [Christopher_Tengi] +genrad-mux 176/tcp # GENRAD-MUX [Ron_Thornton] [Ron_Thornton] +genrad-mux 176/udp # GENRAD-MUX [Ron_Thornton] [Ron_Thornton] +xdmcp 177/tcp # X Display Manager Control [Robert_W_Scheifler] [Robert_W_Scheifler] +xdmcp 177/udp # X Display Manager Control [Robert_W_Scheifler] [Robert_W_Scheifler] +nextstep 178/tcp # NextStep Window Server [Leo_Hourvitz] [Leo_Hourvitz] +nextstep 178/udp # NextStep Window Server [Leo_Hourvitz] [Leo_Hourvitz] +bgp 179/tcp # Border Gateway Protocol [Kirk_Lougheed] [Kirk_Lougheed] +bgp 179/udp # Border Gateway Protocol [Kirk_Lougheed] [Kirk_Lougheed] +bgp 179/sctp # BGP [Randall_Stewart] [Randall_Stewart] [RFC4960] +ris 180/tcp # Intergraph [Dave_Buehmann] [Dave_Buehmann] +ris 180/udp # Intergraph [Dave_Buehmann] [Dave_Buehmann] +unify 181/tcp # Unify [Daegis_Inc] [Chris_Anderson] 2012-07-31 +unify 181/udp # Unify [Daegis_Inc] [Chris_Anderson] 2012-07-31 +audit 182/tcp # Unisys Audit SITP [Gil_Greenbaum] [Gil_Greenbaum] +audit 182/udp # Unisys Audit SITP [Gil_Greenbaum] [Gil_Greenbaum] +ocbinder 183/tcp # OCBinder +ocbinder 183/udp # OCBinder +ocserver 184/tcp # OCServer [Jerrilynn_Okamura] [Jerrilynn_Okamura] +ocserver 184/udp # OCServer [Jerrilynn_Okamura] [Jerrilynn_Okamura] +remote-kis 185/tcp # Remote-KIS +remote-kis 185/udp # Remote-KIS +kis 186/tcp # KIS Protocol [Ralph_Droms] [Ralph_Droms] +kis 186/udp # KIS Protocol [Ralph_Droms] [Ralph_Droms] +aci 187/tcp # Application Communication [Rick_Carlos] [Rick_Carlos] +# Interface +aci 187/udp # Application Communication [Rick_Carlos] [Rick_Carlos] +mumps 188/tcp # Plus Five's MUMPS [Hokey_Stenn] [Hokey_Stenn] +mumps 188/udp # Plus Five's MUMPS [Hokey_Stenn] [Hokey_Stenn] +qft 189/tcp # Queued File Transport [Wayne_Schroeder] [Wayne_Schroeder] +qft 189/udp # Queued File Transport [Wayne_Schroeder] [Wayne_Schroeder] +gacp 190/tcp # Gateway Access Control [C_Philip_Wood] [C_Philip_Wood] +gacp 190/udp # Gateway Access Control [C_Philip_Wood] [C_Philip_Wood] +prospero 191/tcp # Prospero Directory Service [B_Clifford_Neuman] [B_Clifford_Neuman] +prospero 191/udp # Prospero Directory Service [B_Clifford_Neuman] [B_Clifford_Neuman] +osu-nms 192/tcp # OSU Network Monitoring [Doug_Karl] [Doug_Karl] +# System +osu-nms 192/udp # OSU Network Monitoring [Doug_Karl] [Doug_Karl] +srmp 193/tcp # Spider Remote Monitoring [Ted_J_Socolofsky] [Ted_J_Socolofsky] +srmp 193/udp # Spider Remote Monitoring [Ted_J_Socolofsky] [Ted_J_Socolofsky] +irc 194/tcp # Internet Relay Chat Protocol [Jarkko_Oikarinen] [Jarkko_Oikarinen] +irc 194/udp # Internet Relay Chat Protocol [Jarkko_Oikarinen] [Jarkko_Oikarinen] +dn6-nlm-aud 195/tcp # DNSIX Network Level Module +# Audit +dn6-nlm-aud 195/udp # DNSIX Network Level Module +dn6-smm-red 196/tcp # DNSIX Session Mgt Module [Lawrence_Lebahn] [Lawrence_Lebahn] +# Audit Redir +dn6-smm-red 196/udp # DNSIX Session Mgt Module [Lawrence_Lebahn] [Lawrence_Lebahn] +dls 197/tcp # Directory Location Service +dls 197/udp # Directory Location Service +dls-mon 198/tcp # Directory Location Service [Scott_Bellew] [Scott_Bellew] +# Monitor +dls-mon 198/udp # Directory Location Service [Scott_Bellew] [Scott_Bellew] +smux 199/tcp # SMUX [Marshall_Rose] [Marshall_Rose] +smux 199/udp # SMUX [Marshall_Rose] [Marshall_Rose] +src 200/tcp # IBM System Resource [Gerald_McBrearty] [Gerald_McBrearty] +# Controller +src 200/udp # IBM System Resource [Gerald_McBrearty] [Gerald_McBrearty] +at-rtmp 201/tcp # AppleTalk Routing +at-rtmp 201/udp # AppleTalk Routing +at-nbp 202/tcp # AppleTalk Name Binding +at-nbp 202/udp # AppleTalk Name Binding +at-3 203/tcp # AppleTalk Unused +at-3 203/udp # AppleTalk Unused +at-echo 204/tcp # AppleTalk Echo +at-echo 204/udp # AppleTalk Echo +at-5 205/tcp # AppleTalk Unused +at-5 205/udp # AppleTalk Unused +at-zis 206/tcp # AppleTalk Zone Information +at-zis 206/udp # AppleTalk Zone Information +at-7 207/tcp # AppleTalk Unused +at-7 207/udp # AppleTalk Unused +at-8 208/tcp # AppleTalk Unused [Rob_Chandhok] [Rob_Chandhok] +at-8 208/udp # AppleTalk Unused [Rob_Chandhok] [Rob_Chandhok] +qmtp 209/tcp # The Quick Mail Transfer [Dan_Bernstein] [Dan_Bernstein] +qmtp 209/udp # The Quick Mail Transfer [Dan_Bernstein] [Dan_Bernstein] +# ANSI Z39.50 +# +z39-50 210/tcp # IANA assigned this [Mark_H_Needleman] [Mark_H_Needleman] +# a replacement for "z39.50". +# This entry is an alias to "z39-50". This entry is now +z39.50 210/tcp # ANSI Z39.50 [Mark_H_Needleman] [Mark_H_Needleman] historic, not usable for use with many common service +# +z39-50 210/udp # IANA assigned this [Mark_H_Needleman] [Mark_H_Needleman] +z39.50 210/udp # ANSI Z39.50 [Mark_H_Needleman] [Mark_H_Needleman] historic, not usable for use with many common service +# Texas Instruments 914C/G +# Terminal +914c-g 211/tcp # [Bill_Harrell] [Bill_Harrell] +# IANA assigned this +# a replacement for "914c/g". +# Texas Instruments 914C/G This entry is an alias to "914c-g". This entry is now +914c/g 211/tcp # Terminal [Bill_Harrell] [Bill_Harrell] historic, not usable for use with many common service +914c-g 211/udp # [Bill_Harrell] [Bill_Harrell] +914c/g 211/udp # Terminal [Bill_Harrell] [Bill_Harrell] historic, not usable for use with many common service +anet 212/tcp # ATEXSSTR [Jim_Taylor] [Jim_Taylor] +anet 212/udp # ATEXSSTR [Jim_Taylor] [Jim_Taylor] +ipx 213/tcp # IPX [Don_Provan] [Don_Provan] +ipx 213/udp # IPX [Don_Provan] [Don_Provan] +vmpwscs 214/tcp # VM PWSCS [Dan_Shia] [Dan_Shia] +vmpwscs 214/udp # VM PWSCS [Dan_Shia] [Dan_Shia] +softpc 215/tcp # Insignia Solutions [Martyn_Thomas] [Martyn_Thomas] +softpc 215/udp # Insignia Solutions [Martyn_Thomas] [Martyn_Thomas] +CAIlic 216/tcp # Computer Associates Int'l [Chuck_Spitz] [Chuck_Spitz] +# License Server +CAIlic 216/udp # Computer Associates Int'l [Chuck_Spitz] [Chuck_Spitz] +dbase 217/tcp # dBASE Unix [Don_Gibson] [Don_Gibson] +dbase 217/udp # dBASE Unix [Don_Gibson] [Don_Gibson] +mpp 218/tcp # Netix Message Posting [Shannon_Yeh] [Shannon_Yeh] +mpp 218/udp # Netix Message Posting [Shannon_Yeh] [Shannon_Yeh] +uarps 219/tcp # Unisys ARPs [Ashok_Marwaha] [Ashok_Marwaha] +uarps 219/udp # Unisys ARPs [Ashok_Marwaha] [Ashok_Marwaha] +imap3 220/tcp # Interactive Mail Access [James_Rice] [James_Rice] +# Protocol v3 +imap3 220/udp # Interactive Mail Access [James_Rice] [James_Rice] +fln-spx 221/tcp # Berkeley rlogind with SPX +# auth +fln-spx 221/udp # Berkeley rlogind with SPX +rsh-spx 222/tcp # Berkeley rshd with SPX auth +rsh-spx 222/udp # Berkeley rshd with SPX auth +cdc 223/tcp # Certificate Distribution [Kannan_Alagappan] [Kannan_Alagappan] +# Center +cdc 223/udp # Certificate Distribution [Kannan_Alagappan] [Kannan_Alagappan] +masqdialer 224/tcp # masqdialer [Charles_Wright] [Charles_Wright] Possible Conflict of Port 222 with "Masqdialer" +masqdialer 224/udp # masqdialer [Charles_Wright] [Charles_Wright] Possible Conflict of Port 222 with "Masqdialer" +# 225-241 Reserved [Jon_Postel] [Jon_Postel] +direct 242/tcp # Direct [Herb_Sutter] [Herb_Sutter] +direct 242/udp # Direct [Herb_Sutter] [Herb_Sutter] +sur-meas 243/tcp # Survey Measurement [Dave_Clark] [Dave_Clark] +sur-meas 243/udp # Survey Measurement [Dave_Clark] [Dave_Clark] +inbusiness 244/tcp # inbusiness [Derrick_Hisatake] [Derrick_Hisatake] +inbusiness 244/udp # inbusiness [Derrick_Hisatake] [Derrick_Hisatake] +link 245/tcp # LINK +link 245/udp # LINK +dsp3270 246/tcp # Display Systems Protocol [Weldon_J_Showalter] [Weldon_J_Showalter] +dsp3270 246/udp # Display Systems Protocol [Weldon_J_Showalter] [Weldon_J_Showalter] +# SUBNTBCST_TFTP +# +subntbcst-tftp 247/tcp # IANA assigned this [John_Fake] [John_Fake] +# a replacement for +# "subntbcst_tftp". +# This entry is an alias to "subntbcst-tftp". This entry is now +subntbcst_tftp 247/tcp # SUBNTBCST_TFTP [John_Fake] [John_Fake] historic, not usable for use with many common service +# +subntbcst-tftp 247/udp # IANA assigned this [John_Fake] [John_Fake] +subntbcst_tftp 247/udp # SUBNTBCST_TFTP [John_Fake] [John_Fake] historic, not usable for use with many common service +bhfhs 248/tcp # bhfhs [John_Kelly] [John_Kelly] +bhfhs 248/udp # bhfhs [John_Kelly] [John_Kelly] +# 249-255 Reserved [Jon_Postel] [Jon_Postel] +rap 256/tcp # RAP [J_S_Greenfield] [J_S_Greenfield] +rap 256/udp # RAP [J_S_Greenfield] [J_S_Greenfield] +set 257/tcp # Secure Electronic [Donald_Eastlake] [Donald_Eastlake] +# Transaction +set 257/udp # Secure Electronic [Donald_Eastlake] [Donald_Eastlake] +# 258 Unassigned 2006-09-13 +esro-gen 259/tcp # Efficient Short Remote [Mohsen_Banan] [Mohsen_Banan] +# Operations +esro-gen 259/udp # Efficient Short Remote [Mohsen_Banan] [Mohsen_Banan] +openport 260/tcp # Openport [John_Marland] [John_Marland] +openport 260/udp # Openport [John_Marland] [John_Marland] +nsiiops 261/tcp # IIOP Name Service over [Jeff_Stewart] [Jeff_Stewart] +# TLS/SSL +nsiiops 261/udp # IIOP Name Service over [Jeff_Stewart] [Jeff_Stewart] +arcisdms 262/tcp # Arcisdms [Russell_Crook] [Russell_Crook] +arcisdms 262/udp # Arcisdms [Russell_Crook] [Russell_Crook] +hdap 263/tcp # HDAP [Troy_Gau] [Troy_Gau] +hdap 263/udp # HDAP [Troy_Gau] [Troy_Gau] +bgmp 264/tcp # BGMP [Dave_Thaler] [Dave_Thaler] +bgmp 264/udp # BGMP [Dave_Thaler] [Dave_Thaler] +x-bone-ctl 265/tcp # X-Bone CTL [Joe_Touch] [Joe_Touch] +x-bone-ctl 265/udp # X-Bone CTL [Joe_Touch] [Joe_Touch] +sst 266/tcp # SCSI on ST [Donald_D_Woelz] [Donald_D_Woelz] +sst 266/udp # SCSI on ST [Donald_D_Woelz] [Donald_D_Woelz] +td-service 267/tcp # Tobit David Service Layer +td-service 267/udp # Tobit David Service Layer +td-replica 268/tcp # Tobit David Replica [Franz_Josef_Leuders] [Franz_Josef_Leuders] +td-replica 268/udp # Tobit David Replica [Franz_Josef_Leuders] [Franz_Josef_Leuders] +manet 269/tcp # MANET Protocols [RFC5498] +manet 269/udp # MANET Protocols [RFC5498] +# 270 tcp Reserved +gist 270/udp # Q-mode encapsulation for [RFC5971] +# GIST messages +# IETF Network Endpoint +pt-tls 271/tcp # Assessment (NEA) Posture [IESG] [IETF_Chair] 2012-07-31 [RFC-ietf-nea-pt-tls-08] +# Transport Protocol over TLS +# (PT-TLS) +# 271 udp Reserved +# 272-279 Unassigned +http-mgmt 280/tcp # http-mgmt [Adrian_Pell] [Adrian_Pell] +http-mgmt 280/udp # http-mgmt [Adrian_Pell] [Adrian_Pell] +personal-link 281/tcp # Personal Link [Dan_Cummings] [Dan_Cummings] +personal-link 281/udp # Personal Link [Dan_Cummings] [Dan_Cummings] +cableport-ax 282/tcp # Cable Port A/X [Craig_Langfahl] [Craig_Langfahl] +cableport-ax 282/udp # Cable Port A/X [Craig_Langfahl] [Craig_Langfahl] +rescap 283/tcp # rescap [Paul_Hoffman] [Paul_Hoffman] +rescap 283/udp # rescap [Paul_Hoffman] [Paul_Hoffman] +corerjd 284/tcp # corerjd [Chris_Thornhill] [Chris_Thornhill] +corerjd 284/udp # corerjd [Chris_Thornhill] [Chris_Thornhill] +# 285 Unassigned +fxp 286/tcp # FXP Communication [James_Darnall] [James_Darnall] +fxp 286/udp # FXP Communication [James_Darnall] [James_Darnall] +k-block 287/tcp # K-BLOCK [Simon_P_Jackson] [Simon_P_Jackson] +k-block 287/udp # K-BLOCK [Simon_P_Jackson] [Simon_P_Jackson] +# 288-307 Unassigned +novastorbakcup 308/tcp # Novastor Backup [Brian_Dickman] [Brian_Dickman] +novastorbakcup 308/udp # Novastor Backup [Brian_Dickman] [Brian_Dickman] +entrusttime 309/tcp # EntrustTime [Peter_Whittaker] [Peter_Whittaker] +entrusttime 309/udp # EntrustTime [Peter_Whittaker] [Peter_Whittaker] +bhmds 310/tcp # bhmds [John_Kelly] [John_Kelly] +bhmds 310/udp # bhmds [John_Kelly] [John_Kelly] +asip-webadmin 311/tcp # AppleShare IP WebAdmin [Ann_Huang] [Ann_Huang] +asip-webadmin 311/udp # AppleShare IP WebAdmin [Ann_Huang] [Ann_Huang] +vslmp 312/tcp # VSLMP [Gerben_Wierda] [Gerben_Wierda] +vslmp 312/udp # VSLMP [Gerben_Wierda] [Gerben_Wierda] +magenta-logic 313/tcp # Magenta Logic [Karl_Rousseau] [Karl_Rousseau] +magenta-logic 313/udp # Magenta Logic [Karl_Rousseau] [Karl_Rousseau] +opalis-robot 314/tcp # Opalis Robot [Laurent_Domenech] [Laurent_Domenech] +opalis-robot 314/udp # Opalis Robot [Laurent_Domenech] [Laurent_Domenech] +dpsi 315/tcp # DPSI [Tony_Scamurra] [Tony_Scamurra] +dpsi 315/udp # DPSI [Tony_Scamurra] [Tony_Scamurra] +decauth 316/tcp # decAuth [Michael_Agishtein] [Michael_Agishtein] +decauth 316/udp # decAuth [Michael_Agishtein] [Michael_Agishtein] +zannet 317/tcp # Zannet [Zan_Oliphant] [Zan_Oliphant] +zannet 317/udp # Zannet [Zan_Oliphant] [Zan_Oliphant] +pkix-timestamp 318/tcp # PKIX TimeStamp [Robert_Zuccherato] [Robert_Zuccherato] +pkix-timestamp 318/udp # PKIX TimeStamp [Robert_Zuccherato] [Robert_Zuccherato] +ptp-event 319/tcp # PTP Event [Kang_Lee] [Kang_Lee] 2010-07-27 +ptp-event 319/udp # PTP Event [Kang_Lee] [Kang_Lee] 2010-07-27 +ptp-general 320/tcp # PTP General [Kang_Lee] [Kang_Lee] 2010-07-27 +ptp-general 320/udp # PTP General [Kang_Lee] [Kang_Lee] 2010-07-27 +pip 321/tcp # PIP [Gordon_Mohr] [Gordon_Mohr] +pip 321/udp # PIP [Gordon_Mohr] [Gordon_Mohr] +rtsps 322/tcp # RTSPS [Anders_Klemets] [Anders_Klemets] +rtsps 322/udp # RTSPS [Anders_Klemets] [Anders_Klemets] +rpki-rtr 323/tcp # Resource PKI to Router [IESG] [IETF_Chair] [RFC6810] +# 323 udp Reserved +rpki-rtr-tls 324/tcp # Resource PKI to Router [IESG] [IETF_Chair] [RFC6810] +# Protocol over TLS +# 324 udp Reserved +# 325-332 Unassigned +texar 333/tcp # Texar Security Port [Eugen_Bacic] [Eugen_Bacic] +texar 333/udp # Texar Security Port [Eugen_Bacic] [Eugen_Bacic] +# 334-343 Unassigned +pdap 344/tcp # Prospero Data Access [B_Clifford_Neuman] [B_Clifford_Neuman] +pdap 344/udp # Prospero Data Access [B_Clifford_Neuman] [B_Clifford_Neuman] +pawserv 345/tcp # Perf Analysis Workbench +pawserv 345/udp # Perf Analysis Workbench +zserv 346/tcp # Zebra server +zserv 346/udp # Zebra server +fatserv 347/tcp # Fatmen Server +fatserv 347/udp # Fatmen Server +csi-sgwp 348/tcp # Cabletron Management +csi-sgwp 348/udp # Cabletron Management +mftp 349/tcp # mftp [Dave_Feinleib] [Dave_Feinleib] +mftp 349/udp # mftp [Dave_Feinleib] [Dave_Feinleib] +matip-type-a 350/tcp # MATIP Type A [Alain_Robert] [Alain_Robert] [RFC2351] +matip-type-a 350/udp # MATIP Type A [Alain_Robert] [Alain_Robert] [RFC2351] +matip-type-b 351/tcp # MATIP Type B [Alain_Robert] [Alain_Robert] [RFC2351] +matip-type-b 351/udp # MATIP Type B [Alain_Robert] [Alain_Robert] [RFC2351] +bhoetty 351/tcp # bhoetty [John_Kelly] [John_Kelly] This entry records an unassigned but widespread use (added +# 5/21/97) +bhoetty 351/udp # bhoetty [John_Kelly] [John_Kelly] This entry records an unassigned but widespread use (added +dtag-ste-sb 352/tcp # DTAG [Ruediger_Wald] [Ruediger_Wald] (assigned long ago) +dtag-ste-sb 352/udp # DTAG [Ruediger_Wald] [Ruediger_Wald] (assigned long ago) +bhoedap4 352/tcp # bhoedap4 [John_Kelly] [John_Kelly] This entry records an unassigned but widespread use (added +bhoedap4 352/udp # bhoedap4 [John_Kelly] [John_Kelly] This entry records an unassigned but widespread use (added +ndsauth 353/tcp # NDSAUTH [Jayakumar_Ramalingam] [Jayakumar_Ramalingam] +ndsauth 353/udp # NDSAUTH [Jayakumar_Ramalingam] [Jayakumar_Ramalingam] +bh611 354/tcp # bh611 [John_Kelly] [John_Kelly] +bh611 354/udp # bh611 [John_Kelly] [John_Kelly] +datex-asn 355/tcp # DATEX-ASN [Kenneth_Vaughn] [Kenneth_Vaughn] +datex-asn 355/udp # DATEX-ASN [Kenneth_Vaughn] [Kenneth_Vaughn] +cloanto-net-1 356/tcp # Cloanto Net 1 [Michael_Battilana] [Michael_Battilana] 2010-04-30 +cloanto-net-1 356/udp # Cloanto Net 1 [Michael_Battilana] [Michael_Battilana] 2010-04-30 +bhevent 357/tcp # bhevent [John_Kelly] [John_Kelly] +bhevent 357/udp # bhevent [John_Kelly] [John_Kelly] +shrinkwrap 358/tcp # Shrinkwrap [Bill_Simpson] [Bill_Simpson] +shrinkwrap 358/udp # Shrinkwrap [Bill_Simpson] [Bill_Simpson] +nsrmp 359/tcp # Network Security Risk [Eric_Jacksch] [Eric_Jacksch] +# Management Protocol +nsrmp 359/udp # Network Security Risk [Eric_Jacksch] [Eric_Jacksch] +scoi2odialog 360/tcp # scoi2odialog [Keith_Petley] [Keith_Petley] +scoi2odialog 360/udp # scoi2odialog [Keith_Petley] [Keith_Petley] +semantix 361/tcp # Semantix [Semantix] [Semantix] +semantix 361/udp # Semantix [Semantix] [Semantix] +srssend 362/tcp # SRS Send [Curt_Mayer] [Curt_Mayer] +srssend 362/udp # SRS Send [Curt_Mayer] [Curt_Mayer] +# RSVP Tunnel +# +rsvp-tunnel 363/tcp # IANA assigned this [Andreas_Terzis] [Andreas_Terzis] +# "rsvp_tunnel". +# This entry is an alias to "rsvp-tunnel". This entry is now +rsvp_tunnel 363/tcp # RSVP Tunnel [Andreas_Terzis] [Andreas_Terzis] historic, not usable for use with many common service +# +rsvp-tunnel 363/udp # IANA assigned this [Andreas_Terzis] [Andreas_Terzis] +rsvp_tunnel 363/udp # RSVP Tunnel [Andreas_Terzis] [Andreas_Terzis] historic, not usable for use with many common service +aurora-cmgr 364/tcp # Aurora CMGR [Philip_Budne] [Philip_Budne] +aurora-cmgr 364/udp # Aurora CMGR [Philip_Budne] [Philip_Budne] +dtk 365/tcp # DTK [Fred_Cohen] [Fred_Cohen] +dtk 365/udp # DTK [Fred_Cohen] [Fred_Cohen] +odmr 366/tcp # ODMR [Randall_Gellens] [Randall_Gellens] +odmr 366/udp # ODMR [Randall_Gellens] [Randall_Gellens] +mortgageware 367/tcp # MortgageWare [Ole_Hellevik] [Ole_Hellevik] +mortgageware 367/udp # MortgageWare [Ole_Hellevik] [Ole_Hellevik] +qbikgdp 368/tcp # QbikGDP [Adrien_de_Croy] [Adrien_de_Croy] +qbikgdp 368/udp # QbikGDP [Adrien_de_Croy] [Adrien_de_Croy] +rpc2portmap 369/tcp # rpc2portmap +rpc2portmap 369/udp # rpc2portmap +codaauth2 370/tcp # codaauth2 [Robert_Watson] [Robert_Watson] +codaauth2 370/udp # codaauth2 [Robert_Watson] [Robert_Watson] +clearcase 371/tcp # Clearcase [Dave_LeBlang] [Dave_LeBlang] +clearcase 371/udp # Clearcase [Dave_LeBlang] [Dave_LeBlang] +ulistproc 372/tcp # ListProcessor [Anastasios_Kotsikona] [Anastasios_Kotsikona] +ulistproc 372/udp # ListProcessor [Anastasios_Kotsikona] [Anastasios_Kotsikona] +legent-1 373/tcp # Legent Corporation +legent-1 373/udp # Legent Corporation +legent-2 374/tcp # Legent Corporation [Keith_Boyce] [Keith_Boyce] +legent-2 374/udp # Legent Corporation [Keith_Boyce] [Keith_Boyce] +hassle 375/tcp # Hassle [Reinhard_Doelz] [Reinhard_Doelz] +hassle 375/udp # Hassle [Reinhard_Doelz] [Reinhard_Doelz] +nip 376/tcp # Amiga Envoy Network Inquiry [Heinz_Wrobel] [Heinz_Wrobel] +# Proto +nip 376/udp # Amiga Envoy Network Inquiry [Heinz_Wrobel] [Heinz_Wrobel] +tnETOS 377/tcp # NEC Corporation +tnETOS 377/udp # NEC Corporation +dsETOS 378/tcp # NEC Corporation [Tomoo_Fujita] [Tomoo_Fujita] +dsETOS 378/udp # NEC Corporation [Tomoo_Fujita] [Tomoo_Fujita] +is99c 379/tcp # TIA/EIA/IS-99 modem client +is99c 379/udp # TIA/EIA/IS-99 modem client +is99s 380/tcp # TIA/EIA/IS-99 modem server [Frank_Quick] [Frank_Quick] +is99s 380/udp # TIA/EIA/IS-99 modem server [Frank_Quick] [Frank_Quick] +hp-collector 381/tcp # hp performance data +# collector +hp-collector 381/udp # hp performance data +hp-managed-node 382/tcp # hp performance data managed +# node +hp-managed-node 382/udp # hp performance data managed +hp-alarm-mgr 383/tcp # hp performance data alarm [Frank_Blakely] [Frank_Blakely] +# manager +hp-alarm-mgr 383/udp # hp performance data alarm [Frank_Blakely] [Frank_Blakely] +arns 384/tcp # A Remote Network Server [David_Hornsby] [David_Hornsby] +arns 384/udp # A Remote Network Server [David_Hornsby] [David_Hornsby] +ibm-app 385/tcp # IBM Application [Lisa_Tomita] [Lisa_Tomita] +ibm-app 385/udp # IBM Application [Lisa_Tomita] [Lisa_Tomita] +asa 386/tcp # ASA Message Router Object [Steve_Laitinen] [Steve_Laitinen] +# Def. +asa 386/udp # ASA Message Router Object [Steve_Laitinen] [Steve_Laitinen] +aurp 387/tcp # Appletalk Update-Based [Chris_Ranch] [Chris_Ranch] +# Routing Pro. +aurp 387/udp # Appletalk Update-Based [Chris_Ranch] [Chris_Ranch] +unidata-ldm 388/tcp # Unidata LDM [University_Corporation_for_Atmospheric_Research2] [Steven_Emmerson2] 2012-05-18 +unidata-ldm 388/udp # Unidata LDM [University_Corporation_for_Atmospheric_Research2] [Steven_Emmerson2] 2012-05-18 +ldap 389/tcp # Lightweight Directory Access [Tim_Howes] [Tim_Howes] +ldap 389/udp # Lightweight Directory Access [Tim_Howes] [Tim_Howes] +uis 390/tcp # UIS [Ed_Barron] [Ed_Barron] +uis 390/udp # UIS [Ed_Barron] [Ed_Barron] +synotics-relay 391/tcp # SynOptics SNMP Relay Port +synotics-relay 391/udp # SynOptics SNMP Relay Port +synotics-broker 392/tcp # SynOptics Port Broker Port [Illan_Raab] [Illan_Raab] +synotics-broker 392/udp # SynOptics Port Broker Port [Illan_Raab] [Illan_Raab] +meta5 393/tcp # Meta5 [Jim_Kanzler] [Jim_Kanzler] +meta5 393/udp # Meta5 [Jim_Kanzler] [Jim_Kanzler] +embl-ndt 394/tcp # EMBL Nucleic Data Transfer [Peter_Gad] [Peter_Gad] +embl-ndt 394/udp # EMBL Nucleic Data Transfer [Peter_Gad] [Peter_Gad] +netcp 395/tcp # NetScout Control Protocol [Ashwani_Singhal] [Ashwani_Singhal] 2010-04-07 +netcp 395/udp # NetScout Control Protocol [Ashwani_Singhal] [Ashwani_Singhal] 2010-04-07 +netware-ip 396/tcp # Novell Netware over IP +netware-ip 396/udp # Novell Netware over IP +mptn 397/tcp # Multi Protocol Trans. Net. [Soumitra_Sarkar] [Soumitra_Sarkar] +mptn 397/udp # Multi Protocol Trans. Net. [Soumitra_Sarkar] [Soumitra_Sarkar] +kryptolan 398/tcp # Kryptolan [Peter_de_Laval] [Peter_de_Laval] +kryptolan 398/udp # Kryptolan [Peter_de_Laval] [Peter_de_Laval] +iso-tsap-c2 399/tcp # ISO Transport Class 2 [Yanick_Pouffary] [Yanick_Pouffary] +# Non-Control over TCP +iso-tsap-c2 399/udp # ISO Transport Class 2 [Yanick_Pouffary] [Yanick_Pouffary] +# Non-Control over UDP +osb-sd 400/tcp # Oracle Secure Backup [Joseph_Dziedzic] [Joseph_Dziedzic] 2008-06-06 Formerly was Workstation Solutions +osb-sd 400/udp # Oracle Secure Backup [Joseph_Dziedzic] [Joseph_Dziedzic] 2008-06-06 Formerly was Workstation Solutions +ups 401/tcp # Uninterruptible Power Supply [Charles_Bennett] [Charles_Bennett] 2008-08-29 +ups 401/udp # Uninterruptible Power Supply [Charles_Bennett] [Charles_Bennett] 2008-08-29 +genie 402/tcp # Genie Protocol [Mark_Hankin] [Mark_Hankin] +genie 402/udp # Genie Protocol [Mark_Hankin] [Mark_Hankin] +decap 403/tcp # decap +decap 403/udp # decap +nced 404/tcp # nced +nced 404/udp # nced +ncld 405/tcp # ncld [Richard_Jones] [Richard_Jones] +ncld 405/udp # ncld [Richard_Jones] [Richard_Jones] +imsp 406/tcp # Interactive Mail Support [John_Myers] [John_Myers] +imsp 406/udp # Interactive Mail Support [John_Myers] [John_Myers] +timbuktu 407/tcp # Timbuktu [Marc_Epard] [Marc_Epard] +timbuktu 407/udp # Timbuktu [Marc_Epard] [Marc_Epard] +prm-sm 408/tcp # Prospero Resource Manager +# Sys. Man. +prm-sm 408/udp # Prospero Resource Manager +prm-nm 409/tcp # Prospero Resource Manager [B_Clifford_Neuman] [B_Clifford_Neuman] +# Node Man. +prm-nm 409/udp # Prospero Resource Manager [B_Clifford_Neuman] [B_Clifford_Neuman] +decladebug 410/tcp # DECLadebug Remote Debug [Hewlett_Packard] [Hewlett_Packard] +decladebug 410/udp # DECLadebug Remote Debug [Hewlett_Packard] [Hewlett_Packard] +rmt 411/tcp # Remote MT Protocol [Peter_Eriksson] [Peter_Eriksson] +rmt 411/udp # Remote MT Protocol [Peter_Eriksson] [Peter_Eriksson] +synoptics-trap 412/tcp # Trap Convention Port [Illan_Raab] [Illan_Raab] +synoptics-trap 412/udp # Trap Convention Port [Illan_Raab] [Illan_Raab] +smsp 413/tcp # Storage Management Services [Murthy_Srinivas] [Murthy_Srinivas] +smsp 413/udp # Storage Management Services [Murthy_Srinivas] [Murthy_Srinivas] +infoseek 414/tcp # InfoSeek [Steve_Kirsch] [Steve_Kirsch] +infoseek 414/udp # InfoSeek [Steve_Kirsch] [Steve_Kirsch] +bnet 415/tcp # BNet [Jim_Mertz] [Jim_Mertz] +bnet 415/udp # BNet [Jim_Mertz] [Jim_Mertz] +silverplatter 416/tcp # Silverplatter [Peter_Ciuffetti] [Peter_Ciuffetti] +silverplatter 416/udp # Silverplatter [Peter_Ciuffetti] [Peter_Ciuffetti] +onmux 417/tcp # Onmux [Stephen_Hanna] [Stephen_Hanna] +onmux 417/udp # Onmux [Stephen_Hanna] [Stephen_Hanna] +hyper-g 418/tcp # Hyper-G [Frank_Kappe] [Frank_Kappe] +hyper-g 418/udp # Hyper-G [Frank_Kappe] [Frank_Kappe] +ariel1 419/tcp # Ariel 1 [Joel_Karafin] [Joel_Karafin] +ariel1 419/udp # Ariel 1 [Joel_Karafin] [Joel_Karafin] +smpte 420/tcp # SMPTE [Si_Becker] [Si_Becker] +smpte 420/udp # SMPTE [Si_Becker] [Si_Becker] +ariel2 421/tcp # Ariel 2 +ariel2 421/udp # Ariel 2 +ariel3 422/tcp # Ariel 3 [Joel_Karafin] [Joel_Karafin] +ariel3 422/udp # Ariel 3 [Joel_Karafin] [Joel_Karafin] +opc-job-start 423/tcp # IBM Operations Planning and +# Control Start +opc-job-start 423/udp # IBM Operations Planning and +opc-job-track 424/tcp # IBM Operations Planning and [Conny_Larsson] [Conny_Larsson] +# Control Track +opc-job-track 424/udp # IBM Operations Planning and [Conny_Larsson] [Conny_Larsson] +icad-el 425/tcp # ICAD [Larry_Stone] [Larry_Stone] +icad-el 425/udp # ICAD [Larry_Stone] [Larry_Stone] +smartsdp 426/tcp # smartsdp [Marie_Pierre_Belange] [Marie_Pierre_Belange] +smartsdp 426/udp # smartsdp [Marie_Pierre_Belange] [Marie_Pierre_Belange] +svrloc 427/tcp # Server Location [Veizades] [Veizades] +svrloc 427/udp # Server Location [Veizades] [Veizades] +# OCS_CMU +# +ocs-cmu 428/tcp # IANA assigned this +# a replacement for "ocs_cmu". +# This entry is an alias to "ocs-cmu". This entry is now +ocs_cmu 428/tcp # OCS_CMU historic, not usable for use with many common service +# +ocs-cmu 428/udp # IANA assigned this +ocs_cmu 428/udp # OCS_CMU historic, not usable for use with many common service +# OCS_AMU +# +ocs-amu 429/tcp # IANA assigned this [Florence_Wyman] [Florence_Wyman] +# a replacement for "ocs_amu". +# This entry is an alias to "ocs-amu". This entry is now +ocs_amu 429/tcp # OCS_AMU [Florence_Wyman] [Florence_Wyman] historic, not usable for use with many common service +# +ocs-amu 429/udp # IANA assigned this [Florence_Wyman] [Florence_Wyman] +ocs_amu 429/udp # OCS_AMU [Florence_Wyman] [Florence_Wyman] historic, not usable for use with many common service +utmpsd 430/tcp # UTMPSD +utmpsd 430/udp # UTMPSD +utmpcd 431/tcp # UTMPCD +utmpcd 431/udp # UTMPCD +iasd 432/tcp # IASD [Nir_Baroz] [Nir_Baroz] +iasd 432/udp # IASD [Nir_Baroz] [Nir_Baroz] +nnsp 433/tcp # NNSP [Rob_Robertson] [Rob_Robertson] +nnsp 433/udp # NNSP [Rob_Robertson] [Rob_Robertson] +mobileip-agent 434/tcp # MobileIP-Agent +mobileip-agent 434/udp # MobileIP-Agent +mobilip-mn 435/tcp # MobilIP-MN [Kannan_Alagappan_2] [Kannan_Alagappan_2] +mobilip-mn 435/udp # MobilIP-MN [Kannan_Alagappan_2] [Kannan_Alagappan_2] +dna-cml 436/tcp # DNA-CML [Dan_Flowers] [Dan_Flowers] +dna-cml 436/udp # DNA-CML [Dan_Flowers] [Dan_Flowers] +comscm 437/tcp # comscm [Jim_Teague] [Jim_Teague] +comscm 437/udp # comscm [Jim_Teague] [Jim_Teague] +dsfgw 438/tcp # dsfgw [Andy_McKeen] [Andy_McKeen] +dsfgw 438/udp # dsfgw [Andy_McKeen] [Andy_McKeen] +dasp 439/tcp # dasp [Thomas_Obermair] [Thomas_Obermair] +dasp 439/udp # dasp [Thomas_Obermair] [Thomas_Obermair] +sgcp 440/tcp # sgcp [Marshall_Rose] [Marshall_Rose] +sgcp 440/udp # sgcp [Marshall_Rose] [Marshall_Rose] +decvms-sysmgt 441/tcp # decvms-sysmgt [Lee_Barton] [Lee_Barton] +decvms-sysmgt 441/udp # decvms-sysmgt [Lee_Barton] [Lee_Barton] +# cvc_hostd +# +cvc-hostd 442/tcp # IANA assigned this [Bill_Davidson] [Bill_Davidson] +# "cvc_hostd". +# This entry is an alias to "cvc-hostd". This entry is now +cvc_hostd 442/tcp # cvc_hostd [Bill_Davidson] [Bill_Davidson] historic, not usable for use with many common service +# +cvc-hostd 442/udp # IANA assigned this [Bill_Davidson] [Bill_Davidson] +cvc_hostd 442/udp # cvc_hostd [Bill_Davidson] [Bill_Davidson] historic, not usable for use with many common service +https 443/tcp # http protocol over TLS/SSL [Kipp_E_B_Hickman] [Kipp_E_B_Hickman] +https 443/udp # http protocol over TLS/SSL [Kipp_E_B_Hickman] [Kipp_E_B_Hickman] +https 443/sctp # HTTPS [Randall_Stewart] [Randall_Stewart] [RFC4960] +snpp 444/tcp # Simple Network Paging [RFC1568] +snpp 444/udp # Simple Network Paging [RFC1568] +microsoft-ds 445/tcp # Microsoft-DS [Pradeep_Bahl] [Pradeep_Bahl] +microsoft-ds 445/udp # Microsoft-DS [Pradeep_Bahl] [Pradeep_Bahl] +ddm-rdb 446/tcp # DDM-Remote Relational +# Database Access +ddm-rdb 446/udp # DDM-Remote Relational +ddm-dfm 447/tcp # DDM-Distributed File [Steven_Ritland] [Steven_Ritland] +# Management +ddm-dfm 447/udp # DDM-Distributed File [Steven_Ritland] [Steven_Ritland] +ddm-ssl 448/tcp # DDM-Remote DB Access Using [Steven_Ritland] [Steven_Ritland] +# Secure Sockets +ddm-ssl 448/udp # DDM-Remote DB Access Using [Steven_Ritland] [Steven_Ritland] +as-servermap 449/tcp # AS Server Mapper [Barbara_Foss] [Barbara_Foss] +as-servermap 449/udp # AS Server Mapper [Barbara_Foss] [Barbara_Foss] +# Computer Supported +tserver 450/tcp # Telecomunication [Harvey_S_Schultz] [Harvey_S_Schultz] +# Applications +tserver 450/udp # Telecomunication [Harvey_S_Schultz] [Harvey_S_Schultz] +sfs-smp-net 451/tcp # Cray Network Semaphore +# server +sfs-smp-net 451/udp # Cray Network Semaphore +sfs-config 452/tcp # Cray SFS config server [Walter_Poxon] [Walter_Poxon] +sfs-config 452/udp # Cray SFS config server [Walter_Poxon] [Walter_Poxon] +creativeserver 453/tcp # CreativeServer +creativeserver 453/udp # CreativeServer +contentserver 454/tcp # ContentServer +contentserver 454/udp # ContentServer +creativepartnr 455/tcp # CreativePartnr [Jesus_Ortiz] [Jesus_Ortiz] +creativepartnr 455/udp # CreativePartnr [Jesus_Ortiz] [Jesus_Ortiz] +macon-tcp 456/tcp # macon-tcp [Yoshinobu_Inoue] [Yoshinobu_Inoue] +macon-udp 456/udp # macon-udp [Yoshinobu_Inoue] [Yoshinobu_Inoue] +scohelp 457/tcp # scohelp [Faith_Zack] [Faith_Zack] +scohelp 457/udp # scohelp [Faith_Zack] [Faith_Zack] +appleqtc 458/tcp # apple quick time [Murali_Ranganathan] [Murali_Ranganathan] +appleqtc 458/udp # apple quick time [Murali_Ranganathan] [Murali_Ranganathan] +ampr-rcmd 459/tcp # ampr-rcmd [Rob_Janssen] [Rob_Janssen] +ampr-rcmd 459/udp # ampr-rcmd [Rob_Janssen] [Rob_Janssen] +skronk 460/tcp # skronk [Henry_Strickland] [Henry_Strickland] +skronk 460/udp # skronk [Henry_Strickland] [Henry_Strickland] +datasurfsrv 461/tcp # DataRampSrv +datasurfsrv 461/udp # DataRampSrv +datasurfsrvsec 462/tcp # DataRampSrvSec [Diane_Downie] [Diane_Downie] +datasurfsrvsec 462/udp # DataRampSrvSec [Diane_Downie] [Diane_Downie] +alpes 463/tcp # alpes [Alain_Durand] [Alain_Durand] +alpes 463/udp # alpes [Alain_Durand] [Alain_Durand] +kpasswd 464/tcp # kpasswd [Theodore_Ts_o] [Theodore_Ts_o] +kpasswd 464/udp # kpasswd [Theodore_Ts_o] [Theodore_Ts_o] +urd 465/tcp # URL Rendesvous Directory for +# SSM +igmpv3lite 465/udp # IGMP over UDP for SSM [Toerless_Eckert] [Toerless_Eckert] +digital-vrc 466/tcp # digital-vrc [Peter_Higginson] [Peter_Higginson] +digital-vrc 466/udp # digital-vrc [Peter_Higginson] [Peter_Higginson] +mylex-mapd 467/tcp # mylex-mapd [Gary_Lewis] [Gary_Lewis] +mylex-mapd 467/udp # mylex-mapd [Gary_Lewis] [Gary_Lewis] +photuris 468/tcp # proturis [Bill_Simpson_2] [Bill_Simpson_2] +photuris 468/udp # proturis [Bill_Simpson_2] [Bill_Simpson_2] +rcp 469/tcp # Radio Control Protocol [Jim_Jennings] [Jim_Jennings] +rcp 469/udp # Radio Control Protocol [Jim_Jennings] [Jim_Jennings] +scx-proxy 470/tcp # scx-proxy [Scott_Narveson] [Scott_Narveson] +scx-proxy 470/udp # scx-proxy [Scott_Narveson] [Scott_Narveson] +mondex 471/tcp # Mondex [Bill_Reding] [Bill_Reding] +mondex 471/udp # Mondex [Bill_Reding] [Bill_Reding] +ljk-login 472/tcp # ljk-login [LJK] [LJK] +ljk-login 472/udp # ljk-login [LJK] [LJK] +hybrid-pop 473/tcp # hybrid-pop [Rami_Rubin] [Rami_Rubin] +hybrid-pop 473/udp # hybrid-pop [Rami_Rubin] [Rami_Rubin] +tn-tl-w1 474/tcp # tn-tl-w1 +tn-tl-w2 474/udp # tn-tl-w2 [Ed_Kress] [Ed_Kress] +tcpnethaspsrv 475/tcp # tcpnethaspsrv [Michael_Zunke] [Michael_Zunke] 2010-07-23 +tcpnethaspsrv 475/udp # tcpnethaspsrv [Michael_Zunke] [Michael_Zunke] 2010-07-23 +tn-tl-fd1 476/tcp # tn-tl-fd1 [Ed_Kress] [Ed_Kress] +tn-tl-fd1 476/udp # tn-tl-fd1 [Ed_Kress] [Ed_Kress] +ss7ns 477/tcp # ss7ns [Jean_Michel_URSCH] [Jean_Michel_URSCH] +ss7ns 477/udp # ss7ns [Jean_Michel_URSCH] [Jean_Michel_URSCH] +spsc 478/tcp # spsc [Mike_Rieker] [Mike_Rieker] +spsc 478/udp # spsc [Mike_Rieker] [Mike_Rieker] +iafserver 479/tcp # iafserver +iafserver 479/udp # iafserver +iafdbase 480/tcp # iafdbase [Rick_Yazwinski] [Rick_Yazwinski] +iafdbase 480/udp # iafdbase [Rick_Yazwinski] [Rick_Yazwinski] +ph 481/tcp # Ph service [Roland_Hedberg] [Roland_Hedberg] +ph 481/udp # Ph service [Roland_Hedberg] [Roland_Hedberg] +bgs-nsi 482/tcp # bgs-nsi [Jon_Saperia] [Jon_Saperia] +bgs-nsi 482/udp # bgs-nsi [Jon_Saperia] [Jon_Saperia] +ulpnet 483/tcp # ulpnet [Kevin_Mooney] [Kevin_Mooney] +ulpnet 483/udp # ulpnet [Kevin_Mooney] [Kevin_Mooney] +integra-sme 484/tcp # Integra Software Management [Randall_Dow] [Randall_Dow] +# Environment +integra-sme 484/udp # Integra Software Management [Randall_Dow] [Randall_Dow] +powerburst 485/tcp # Air Soft Power Burst [gary] [gary] +powerburst 485/udp # Air Soft Power Burst [gary] [gary] +avian 486/tcp # avian [Robert_Ullmann_2] [Robert_Ullmann_2] +avian 486/udp # avian [Robert_Ullmann_2] [Robert_Ullmann_2] +saft 487/tcp # saft Simple Asynchronous [Ulli_Horlacher] [Ulli_Horlacher] +# File Transfer +saft 487/udp # saft Simple Asynchronous [Ulli_Horlacher] [Ulli_Horlacher] +gss-http 488/tcp # gss-http [Doug_Rosenthal] [Doug_Rosenthal] +gss-http 488/udp # gss-http [Doug_Rosenthal] [Doug_Rosenthal] +nest-protocol 489/tcp # nest-protocol [Gilles_Gameiro] [Gilles_Gameiro] +nest-protocol 489/udp # nest-protocol [Gilles_Gameiro] [Gilles_Gameiro] +micom-pfs 490/tcp # micom-pfs [David_Misunas] [David_Misunas] +micom-pfs 490/udp # micom-pfs [David_Misunas] [David_Misunas] +go-login 491/tcp # go-login [Troy_Morrison] [Troy_Morrison] +go-login 491/udp # go-login [Troy_Morrison] [Troy_Morrison] +ticf-1 492/tcp # Transport Independent +# Convergence for FNA +ticf-1 492/udp # Transport Independent +ticf-2 493/tcp # Transport Independent [Mamoru_Ito] [Mamoru_Ito] +ticf-2 493/udp # Transport Independent [Mamoru_Ito] [Mamoru_Ito] +pov-ray 494/tcp # POV-Ray [POV_Team_Co_ordinato] [POV_Team_Co_ordinato] +pov-ray 494/udp # POV-Ray [POV_Team_Co_ordinato] [POV_Team_Co_ordinato] +intecourier 495/tcp # intecourier [Steve_Favor] [Steve_Favor] +intecourier 495/udp # intecourier [Steve_Favor] [Steve_Favor] +pim-rp-disc 496/tcp # PIM-RP-DISC [Dino_Farinacci] [Dino_Farinacci] +pim-rp-disc 496/udp # PIM-RP-DISC [Dino_Farinacci] [Dino_Farinacci] +retrospect 497/tcp # Retrospect backup and [Retrospect_Inc] [JG_Heithcock] 2012-02-02 +# restore service +retrospect 497/udp # Retrospect backup and [Retrospect_Inc] [JG_Heithcock] 2012-02-02 +siam 498/tcp # siam [Philippe_Gilbert] [Philippe_Gilbert] +siam 498/udp # siam [Philippe_Gilbert] [Philippe_Gilbert] +iso-ill 499/tcp # ISO ILL Protocol [Mark_H_Needleman] [Mark_H_Needleman] +iso-ill 499/udp # ISO ILL Protocol [Mark_H_Needleman] [Mark_H_Needleman] +isakmp 500/tcp # isakmp [Mark_Schertler] [Mark_Schertler] +isakmp 500/udp # isakmp [Mark_Schertler] [Mark_Schertler] +stmf 501/tcp # STMF [Alan_Ungar] [Alan_Ungar] +stmf 501/udp # STMF [Alan_Ungar] [Alan_Ungar] +asa-appl-proto 502/tcp # asa-appl-proto [Dennis_Dube] [Dennis_Dube] +asa-appl-proto 502/udp # asa-appl-proto [Dennis_Dube] [Dennis_Dube] +intrinsa 503/tcp # Intrinsa [Robert_Ford] [Robert_Ford] +intrinsa 503/udp # Intrinsa [Robert_Ford] [Robert_Ford] +citadel 504/tcp # citadel [Art_Cancro] [Art_Cancro] +citadel 504/udp # citadel [Art_Cancro] [Art_Cancro] +mailbox-lm 505/tcp # mailbox-lm [Beverly_Moody] [Beverly_Moody] +mailbox-lm 505/udp # mailbox-lm [Beverly_Moody] [Beverly_Moody] +ohimsrv 506/tcp # ohimsrv [Scott_Powell] [Scott_Powell] +ohimsrv 506/udp # ohimsrv [Scott_Powell] [Scott_Powell] +crs 507/tcp # crs [Brad_Wright] [Brad_Wright] +crs 507/udp # crs [Brad_Wright] [Brad_Wright] +xvttp 508/tcp # xvttp [Keith_J_Alphonso] [Keith_J_Alphonso] +xvttp 508/udp # xvttp [Keith_J_Alphonso] [Keith_J_Alphonso] +snare 509/tcp # snare [Dennis_Batchelder] [Dennis_Batchelder] +snare 509/udp # snare [Dennis_Batchelder] [Dennis_Batchelder] +fcp 510/tcp # FirstClass Protocol [Mike_Marshburn] [Mike_Marshburn] +fcp 510/udp # FirstClass Protocol [Mike_Marshburn] [Mike_Marshburn] +passgo 511/tcp # PassGo [John_Rainford] [John_Rainford] +passgo 511/udp # PassGo [John_Rainford] [John_Rainford] +# remote process execution; +exec 512/tcp # authentication performed +# using passwords and UNIX +# login names +comsat 512/udp +# used by mail system to +# notify users of new mail +biff 512/udp # received; currently receives +# messages only from processes +# on the same machine +# remote login a la telnet; +# automatic authentication +# performed based on +login 513/tcp # priviledged port numbers and +# distributed data bases which +# identify "authentication +# domains" +# maintains data bases showing +who 513/udp # who's logged in to machines +# on a local net and the load +# average of the machine +# cmd like exec, but automatic +shell 514/tcp # authentication is performed +# as for login server +syslog 514/udp +printer 515/tcp # spooler +printer 515/udp # spooler +videotex 516/tcp # videotex [Daniel_Mavrakis] [Daniel_Mavrakis] +videotex 516/udp # videotex [Daniel_Mavrakis] [Daniel_Mavrakis] +# like tenex link, but across +# machine - unfortunately, +# doesn't use link protocol +talk 517/tcp # (this is actually just a +# rendezvous port from which a +# tcp connection is +# established) +talk 517/udp # (this is actually just a +ntalk 518/tcp +ntalk 518/udp +utime 519/tcp # unixtime +utime 519/udp # unixtime +efs 520/tcp # extended file name server +# local routing process (on +router 520/udp # site); uses variant of Xerox +# NS routing information +# protocol - RIP +ripng 521/tcp # ripng [Robert_E_Minnear] [Robert_E_Minnear] +ripng 521/udp # ripng [Robert_E_Minnear] [Robert_E_Minnear] +ulp 522/tcp # ULP [Max_Morris] [Max_Morris] +ulp 522/udp # ULP [Max_Morris] [Max_Morris] +ibm-db2 523/tcp # IBM-DB2 [Juliana_Hsu] [Juliana_Hsu] +ibm-db2 523/udp # IBM-DB2 [Juliana_Hsu] [Juliana_Hsu] +ncp 524/tcp # NCP [Don_Provan_2] [Don_Provan_2] +ncp 524/udp # NCP [Don_Provan_2] [Don_Provan_2] +timed 525/tcp # timeserver +timed 525/udp # timeserver +tempo 526/tcp # newdate +tempo 526/udp # newdate +stx 527/tcp # Stock IXChange [Fraxion_Software] [Ferdi_Ladeira] 2012-03-21 +stx 527/udp # Stock IXChange [Fraxion_Software] [Ferdi_Ladeira] 2012-03-21 +custix 528/tcp # Customer IXChange [Fraxion_Software] [Ferdi_Ladeira] 2012-03-21 +custix 528/udp # Customer IXChange [Fraxion_Software] [Ferdi_Ladeira] 2012-03-21 +irc-serv 529/tcp # IRC-SERV [Brian_Tackett] [Brian_Tackett] +irc-serv 529/udp # IRC-SERV [Brian_Tackett] [Brian_Tackett] +courier 530/tcp # rpc +courier 530/udp # rpc +conference 531/tcp # chat +conference 531/udp # chat +netnews 532/tcp # readnews +netnews 532/udp # readnews +netwall 533/tcp # for emergency broadcasts [Andreas_Heidemann] [Andreas_Heidemann] +netwall 533/udp # for emergency broadcasts [Andreas_Heidemann] [Andreas_Heidemann] +windream 534/tcp # windream Admin [Uwe_Honermann] [Uwe_Honermann] +windream 534/udp # windream Admin [Uwe_Honermann] [Uwe_Honermann] +iiop 535/tcp # iiop [Jeff_M_Michaud] [Jeff_M_Michaud] +iiop 535/udp # iiop [Jeff_M_Michaud] [Jeff_M_Michaud] +opalis-rdv 536/tcp # opalis-rdv [Laurent_Domenech] [Laurent_Domenech] +opalis-rdv 536/udp # opalis-rdv [Laurent_Domenech] [Laurent_Domenech] +nmsp 537/tcp # Networked Media Streaming [Paul_Santinelli_Jr] [Paul_Santinelli_Jr] +nmsp 537/udp # Networked Media Streaming [Paul_Santinelli_Jr] [Paul_Santinelli_Jr] +gdomap 538/tcp # gdomap [Richard_Frith_Macdon] [Richard_Frith_Macdon] +gdomap 538/udp # gdomap [Richard_Frith_Macdon] [Richard_Frith_Macdon] +apertus-ldp 539/tcp # Apertus Technologies Load +# Determination +apertus-ldp 539/udp # Apertus Technologies Load +uucp 540/tcp # uucpd +uucp 540/udp # uucpd +uucp-rlogin 541/tcp # uucp-rlogin [Stuart_Lynne] [Stuart_Lynne] +uucp-rlogin 541/udp # uucp-rlogin [Stuart_Lynne] [Stuart_Lynne] +commerce 542/tcp # commerce [Randy_Epstein] [Randy_Epstein] +commerce 542/udp # commerce [Randy_Epstein] [Randy_Epstein] +klogin 543/tcp +klogin 543/udp +kshell 544/tcp # krcmd +kshell 544/udp # krcmd +appleqtcsrvr 545/tcp # appleqtcsrvr [Murali_Ranganathan] [Murali_Ranganathan] +appleqtcsrvr 545/udp # appleqtcsrvr [Murali_Ranganathan] [Murali_Ranganathan] +dhcpv6-client 546/tcp # DHCPv6 Client +dhcpv6-client 546/udp # DHCPv6 Client +dhcpv6-server 547/tcp # DHCPv6 Server [Jim_Bound] [Jim_Bound] +dhcpv6-server 547/udp # DHCPv6 Server [Jim_Bound] [Jim_Bound] +afpovertcp 548/tcp # AFP over TCP [Leland_Wallace] [Leland_Wallace] Defined TXT keys: u= p= path= +afpovertcp 548/udp # AFP over TCP [Leland_Wallace] [Leland_Wallace] Defined TXT keys: u= p= path= +idfp 549/tcp # IDFP [Ramana_Kovi] [Ramana_Kovi] +idfp 549/udp # IDFP [Ramana_Kovi] [Ramana_Kovi] +new-rwho 550/tcp # new-who [n/a] +new-rwho 550/udp # new-who [n/a] +cybercash 551/tcp # cybercash [Donald_E_Eastlake] [Donald_E_Eastlake] [RFC1898] +cybercash 551/udp # cybercash [Donald_E_Eastlake] [Donald_E_Eastlake] [RFC1898] +devshr-nts 552/tcp # DeviceShare [Benjamin_Rosenberg] [Benjamin_Rosenberg] +devshr-nts 552/udp # DeviceShare [Benjamin_Rosenberg] [Benjamin_Rosenberg] +pirp 553/tcp # pirp [D_J_Bernstein] [D_J_Bernstein] +pirp 553/udp # pirp [D_J_Bernstein] [D_J_Bernstein] +rtsp 554/tcp # Real Time Streaming Protocol [Rob_Lanphier] [Rob_Lanphier] +# (RTSP) +rtsp 554/udp # Real Time Streaming Protocol [Rob_Lanphier] [Rob_Lanphier] +dsf 555/tcp +dsf 555/udp +remotefs 556/tcp # rfs server +remotefs 556/udp # rfs server +openvms-sysipc 557/tcp # openvms-sysipc [Alan_Potter] [Alan_Potter] +openvms-sysipc 557/udp # openvms-sysipc [Alan_Potter] [Alan_Potter] +sdnskmp 558/tcp # SDNSKMP +sdnskmp 558/udp # SDNSKMP +teedtap 559/tcp # TEEDTAP [Charlie_Limoges] [Charlie_Limoges] +teedtap 559/udp # TEEDTAP [Charlie_Limoges] [Charlie_Limoges] +rmonitor 560/tcp # rmonitord +rmonitor 560/udp # rmonitord +monitor 561/tcp +monitor 561/udp +chshell 562/tcp # chcmd +chshell 562/udp # chcmd +nntps 563/tcp # nntp protocol over TLS/SSL [Kipp_E_B_Hickman_2] [Kipp_E_B_Hickman_2] +# (was snntp) +nntps 563/udp # nntp protocol over TLS/SSL [Kipp_E_B_Hickman_2] [Kipp_E_B_Hickman_2] +9pfs 564/tcp # plan 9 file service +9pfs 564/udp # plan 9 file service +whoami 565/tcp # whoami +whoami 565/udp # whoami +streettalk 566/tcp # streettalk +streettalk 566/udp # streettalk +banyan-rpc 567/tcp # banyan-rpc [Tom_Lemaire] [Tom_Lemaire] +banyan-rpc 567/udp # banyan-rpc [Tom_Lemaire] [Tom_Lemaire] +ms-shuttle 568/tcp # microsoft shuttle [Rudolph_Balaz] [Rudolph_Balaz] +ms-shuttle 568/udp # microsoft shuttle [Rudolph_Balaz] [Rudolph_Balaz] +ms-rome 569/tcp # microsoft rome [Rudolph_Balaz] [Rudolph_Balaz] +ms-rome 569/udp # microsoft rome [Rudolph_Balaz] [Rudolph_Balaz] +meter 570/tcp # demon +meter 570/udp # demon +meter 571/tcp # udemon +meter 571/udp # udemon +sonar 572/tcp # sonar [Keith_Moore] [Keith_Moore] +sonar 572/udp # sonar [Keith_Moore] [Keith_Moore] +banyan-vip 573/tcp # banyan-vip [Denis_Leclerc] [Denis_Leclerc] +banyan-vip 573/udp # banyan-vip [Denis_Leclerc] [Denis_Leclerc] +ftp-agent 574/tcp # FTP Software Agent System [Michael_S_Greenberg] [Michael_S_Greenberg] +ftp-agent 574/udp # FTP Software Agent System [Michael_S_Greenberg] [Michael_S_Greenberg] +vemmi 575/tcp # VEMMI [Daniel_Mavrakis_2] [Daniel_Mavrakis_2] +vemmi 575/udp # VEMMI [Daniel_Mavrakis_2] [Daniel_Mavrakis_2] +ipcd 576/tcp # ipcd +ipcd 576/udp # ipcd +vnas 577/tcp # vnas +vnas 577/udp # vnas +ipdd 578/tcp # ipdd [Jay_Farhat] [Jay_Farhat] +ipdd 578/udp # ipdd [Jay_Farhat] [Jay_Farhat] +decbsrv 579/tcp # decbsrv [Rudi_Martin] [Rudi_Martin] +decbsrv 579/udp # decbsrv [Rudi_Martin] [Rudi_Martin] +sntp-heartbeat 580/tcp # SNTP HEARTBEAT [Louis_Mamakos_2] [Louis_Mamakos_2] +sntp-heartbeat 580/udp # SNTP HEARTBEAT [Louis_Mamakos_2] [Louis_Mamakos_2] +bdp 581/tcp # Bundle Discovery Protocol [Gary_Malkin] [Gary_Malkin] +bdp 581/udp # Bundle Discovery Protocol [Gary_Malkin] [Gary_Malkin] +scc-security 582/tcp # SCC Security [Prashant_Dholakia] [Prashant_Dholakia] +scc-security 582/udp # SCC Security [Prashant_Dholakia] [Prashant_Dholakia] +philips-vc 583/tcp # Philips Video-Conferencing [Janna_Chang] [Janna_Chang] +philips-vc 583/udp # Philips Video-Conferencing [Janna_Chang] [Janna_Chang] +keyserver 584/tcp # Key Server [Gary_Howland] [Gary_Howland] +keyserver 584/udp # Key Server [Gary_Howland] [Gary_Howland] +# 585 De-registered 2006-04-25 Use of 585 is not recommended, use 993 instead +password-chg 586/tcp # Password Change +password-chg 586/udp # Password Change +submission 587/tcp # Message Submission 2011-11-17 [RFC6409] +submission 587/udp # Message Submission 2011-11-17 [RFC6409] +cal 588/tcp # CAL [Myron_Hattig] [Myron_Hattig] +cal 588/udp # CAL [Myron_Hattig] [Myron_Hattig] +eyelink 589/tcp # EyeLink [Dave_Stampe] [Dave_Stampe] +eyelink 589/udp # EyeLink [Dave_Stampe] [Dave_Stampe] +tns-cml 590/tcp # TNS CML [Jerome_Albin] [Jerome_Albin] +tns-cml 590/udp # TNS CML [Jerome_Albin] [Jerome_Albin] +http-alt 591/tcp # FileMaker, Inc. - HTTP [Clay_Maeckel] [Clay_Maeckel] +# Alternate (see Port 80) +http-alt 591/udp # FileMaker, Inc. - HTTP [Clay_Maeckel] [Clay_Maeckel] +eudora-set 592/tcp # Eudora Set [Randall_Gellens] [Randall_Gellens] +eudora-set 592/udp # Eudora Set [Randall_Gellens] [Randall_Gellens] +http-rpc-epmap 593/tcp # HTTP RPC Ep Map [Edward_Reus] [Edward_Reus] +http-rpc-epmap 593/udp # HTTP RPC Ep Map [Edward_Reus] [Edward_Reus] +tpip 594/tcp # TPIP [Brad_Spear] [Brad_Spear] +tpip 594/udp # TPIP [Brad_Spear] [Brad_Spear] +cab-protocol 595/tcp # CAB Protocol [Winston_Hetherington] [Winston_Hetherington] +cab-protocol 595/udp # CAB Protocol [Winston_Hetherington] [Winston_Hetherington] +smsd 596/tcp # SMSD [Wayne_Barlow] [Wayne_Barlow] +smsd 596/udp # SMSD [Wayne_Barlow] [Wayne_Barlow] +ptcnameservice 597/tcp # PTC Name Service [Yuri_Machkasov] [Yuri_Machkasov] +ptcnameservice 597/udp # PTC Name Service [Yuri_Machkasov] [Yuri_Machkasov] +sco-websrvrmg3 598/tcp # SCO Web Server Manager 3 [Simon_Baldwin] [Simon_Baldwin] +sco-websrvrmg3 598/udp # SCO Web Server Manager 3 [Simon_Baldwin] [Simon_Baldwin] +acp 599/tcp # Aeolon Core Protocol [Michael_Alyn_Miller] [Michael_Alyn_Miller] +acp 599/udp # Aeolon Core Protocol [Michael_Alyn_Miller] [Michael_Alyn_Miller] +ipcserver 600/tcp # Sun IPC server [Bill_Schiefelbein] [Bill_Schiefelbein] +ipcserver 600/udp # Sun IPC server [Bill_Schiefelbein] [Bill_Schiefelbein] +syslog-conn 601/tcp # Reliable Syslog Service [RFC3195] +syslog-conn 601/udp # Reliable Syslog Service [RFC3195] +xmlrpc-beep 602/tcp # XML-RPC over BEEP [RFC3529] +xmlrpc-beep 602/udp # XML-RPC over BEEP [RFC3529] +idxp 603/tcp # IDXP [RFC4767] +idxp 603/udp # IDXP [RFC4767] +tunnel 604/tcp # TUNNEL [RFC3620] +tunnel 604/udp # TUNNEL [RFC3620] +soap-beep 605/tcp # SOAP over BEEP [RFC4227] +soap-beep 605/udp # SOAP over BEEP [RFC4227] +urm 606/tcp # Cray Unified Resource +# Manager +urm 606/udp # Cray Unified Resource +nqs 607/tcp # nqs [Bill_Schiefelbein] [Bill_Schiefelbein] +nqs 607/udp # nqs [Bill_Schiefelbein] [Bill_Schiefelbein] +sift-uft 608/tcp # Sender-Initiated/Unsolicited [Rick_Troth] [Rick_Troth] +sift-uft 608/udp # Sender-Initiated/Unsolicited [Rick_Troth] [Rick_Troth] +npmp-trap 609/tcp # npmp-trap +npmp-trap 609/udp # npmp-trap +npmp-local 610/tcp # npmp-local +npmp-local 610/udp # npmp-local +npmp-gui 611/tcp # npmp-gui [John_Barnes] [John_Barnes] +npmp-gui 611/udp # npmp-gui [John_Barnes] [John_Barnes] +hmmp-ind 612/tcp # HMMP Indication +hmmp-ind 612/udp # HMMP Indication +hmmp-op 613/tcp # HMMP Operation [Andrew_Sinclair] [Andrew_Sinclair] +hmmp-op 613/udp # HMMP Operation [Andrew_Sinclair] [Andrew_Sinclair] +sshell 614/tcp # SSLshell [Simon_J_Gerraty] [Simon_J_Gerraty] +sshell 614/udp # SSLshell [Simon_J_Gerraty] [Simon_J_Gerraty] +sco-inetmgr 615/tcp # Internet Configuration +sco-inetmgr 615/udp # Internet Configuration +sco-sysmgr 616/tcp # SCO System Administration +sco-sysmgr 616/udp # SCO System Administration +sco-dtmgr 617/tcp # SCO Desktop Administration [Christopher_Durham] [Christopher_Durham] +sco-dtmgr 617/udp # SCO Desktop Administration [Christopher_Durham] [Christopher_Durham] +dei-icda 618/tcp # DEI-ICDA [David_Turner] [David_Turner] +dei-icda 618/udp # DEI-ICDA [David_Turner] [David_Turner] +compaq-evm 619/tcp # Compaq EVM [Jem_Treadwell] [Jem_Treadwell] +compaq-evm 619/udp # Compaq EVM [Jem_Treadwell] [Jem_Treadwell] +sco-websrvrmgr 620/tcp # SCO WebServer Manager [Christopher_Durham] [Christopher_Durham] +sco-websrvrmgr 620/udp # SCO WebServer Manager [Christopher_Durham] [Christopher_Durham] +escp-ip 621/tcp # ESCP [Lai_Zit_Seng] [Lai_Zit_Seng] +escp-ip 621/udp # ESCP [Lai_Zit_Seng] [Lai_Zit_Seng] +collaborator 622/tcp # Collaborator [Johnson_Davis] [Johnson_Davis] +collaborator 622/udp # Collaborator [Johnson_Davis] [Johnson_Davis] +oob-ws-http 623/tcp # DMTF out-of-band web [Jim_Davis] [Jim_Davis] 2007-06 +# services management protocol +asf-rmcp 623/udp # ASF Remote Management and [Carl_First] [Carl_First] +# Control Protocol +cryptoadmin 624/tcp # Crypto Admin [Tony_Walker] [Tony_Walker] +cryptoadmin 624/udp # Crypto Admin [Tony_Walker] [Tony_Walker] +# DEC DLM +# +dec-dlm 625/tcp # IANA assigned this [Rudi_Martin_2] [Rudi_Martin_2] +# a replacement for "dec_dlm". +# This entry is an alias to "dec-dlm". This entry is now +dec_dlm 625/tcp # DEC DLM [Rudi_Martin_2] [Rudi_Martin_2] historic, not usable for use with many common service +# +dec-dlm 625/udp # IANA assigned this [Rudi_Martin_2] [Rudi_Martin_2] +dec_dlm 625/udp # DEC DLM [Rudi_Martin_2] [Rudi_Martin_2] historic, not usable for use with many common service +asia 626/tcp # ASIA [Michael_Dasenbrock] [Michael_Dasenbrock] +asia 626/udp # ASIA [Michael_Dasenbrock] [Michael_Dasenbrock] +passgo-tivoli 627/tcp # PassGo Tivoli [John_Rainford_2] [John_Rainford_2] +passgo-tivoli 627/udp # PassGo Tivoli [John_Rainford_2] [John_Rainford_2] +qmqp 628/tcp # QMQP [Dan_Bernstein_2] [Dan_Bernstein_2] +qmqp 628/udp # QMQP [Dan_Bernstein_2] [Dan_Bernstein_2] +3com-amp3 629/tcp # 3Com AMP3 [Prakash_Banthia] [Prakash_Banthia] +3com-amp3 629/udp # 3Com AMP3 [Prakash_Banthia] [Prakash_Banthia] +rda 630/tcp # RDA [John_Hadjioannou] [John_Hadjioannou] +rda 630/udp # RDA [John_Hadjioannou] [John_Hadjioannou] +ipp 631/tcp # IPP (Internet Printing [Carl_Uno_Manros] [Carl_Uno_Manros] Defined TXT keys: See BonjourPrinting.pdf. +# Protocol) +ipp 631/udp # IPP (Internet Printing [Carl_Uno_Manros] [Carl_Uno_Manros] Defined TXT keys: See BonjourPrinting.pdf. +bmpp 632/tcp # bmpp [Troy_Rollo] [Troy_Rollo] +bmpp 632/udp # bmpp [Troy_Rollo] [Troy_Rollo] +servstat 633/tcp # Service Status update [Greg_Rose] [Greg_Rose] +# (Sterling Software) +servstat 633/udp # Service Status update [Greg_Rose] [Greg_Rose] +ginad 634/tcp # ginad [Mark_Crother] [Mark_Crother] +ginad 634/udp # ginad [Mark_Crother] [Mark_Crother] +rlzdbase 635/tcp # RLZ DBase [Michael_Ginn] [Michael_Ginn] +rlzdbase 635/udp # RLZ DBase [Michael_Ginn] [Michael_Ginn] +ldaps 636/tcp # ldap protocol over TLS/SSL [Pat_Richard] [Pat_Richard] +# (was sldap) +ldaps 636/udp # ldap protocol over TLS/SSL [Pat_Richard] [Pat_Richard] +lanserver 637/tcp # lanserver [Chris_Larsson] [Chris_Larsson] +lanserver 637/udp # lanserver [Chris_Larsson] [Chris_Larsson] +mcns-sec 638/tcp # mcns-sec [Kaz_Ozawa] [Kaz_Ozawa] +mcns-sec 638/udp # mcns-sec [Kaz_Ozawa] [Kaz_Ozawa] +msdp 639/tcp # MSDP [Dino_Farinacci] [Dino_Farinacci] +msdp 639/udp # MSDP [Dino_Farinacci] [Dino_Farinacci] +entrust-sps 640/tcp # entrust-sps [Marek_Buchler] [Marek_Buchler] +entrust-sps 640/udp # entrust-sps [Marek_Buchler] [Marek_Buchler] +repcmd 641/tcp # repcmd [Scott_Dale] [Scott_Dale] +repcmd 641/udp # repcmd [Scott_Dale] [Scott_Dale] +esro-emsdp 642/tcp # ESRO-EMSDP V1.3 [Mohsen_Banan_2] [Mohsen_Banan_2] +esro-emsdp 642/udp # ESRO-EMSDP V1.3 [Mohsen_Banan_2] [Mohsen_Banan_2] +sanity 643/tcp # SANity [Peter_Viscarola] [Peter_Viscarola] +sanity 643/udp # SANity [Peter_Viscarola] [Peter_Viscarola] +dwr 644/tcp # dwr [Bill_Fenner] [Bill_Fenner] +dwr 644/udp # dwr [Bill_Fenner] [Bill_Fenner] +pssc 645/tcp # PSSC [Egon_Meier_Engelen] [Egon_Meier_Engelen] +pssc 645/udp # PSSC [Egon_Meier_Engelen] [Egon_Meier_Engelen] +ldp 646/tcp # LDP [Bob_Thomas] [Bob_Thomas] +ldp 646/udp # LDP [Bob_Thomas] [Bob_Thomas] +dhcp-failover 647/tcp # DHCP Failover [Bernard_Volz] [Bernard_Volz] +dhcp-failover 647/udp # DHCP Failover [Bernard_Volz] [Bernard_Volz] +rrp 648/tcp # Registry Registrar Protocol [Scott_Hollenbeck] [Scott_Hollenbeck] +# (RRP) +rrp 648/udp # Registry Registrar Protocol [Scott_Hollenbeck] [Scott_Hollenbeck] +cadview-3d 649/tcp # Cadview-3d - streaming 3d [David_Cooper] [David_Cooper] +# models over the internet +cadview-3d 649/udp # Cadview-3d - streaming 3d [David_Cooper] [David_Cooper] +obex 650/tcp # OBEX [Jeff_Garbers] [Jeff_Garbers] +obex 650/udp # OBEX [Jeff_Garbers] [Jeff_Garbers] +ieee-mms 651/tcp # IEEE MMS [Curtis_Anderson] [Curtis_Anderson] +ieee-mms 651/udp # IEEE MMS [Curtis_Anderson] [Curtis_Anderson] +hello-port 652/tcp # HELLO_PORT [Patrick_Cipiere] [Patrick_Cipiere] +hello-port 652/udp # HELLO_PORT [Patrick_Cipiere] [Patrick_Cipiere] +repscmd 653/tcp # RepCmd [Scott_Dale_2] [Scott_Dale_2] +repscmd 653/udp # RepCmd [Scott_Dale_2] [Scott_Dale_2] +aodv 654/tcp # AODV [Charles_Perkins] [Charles_Perkins] +aodv 654/udp # AODV [Charles_Perkins] [Charles_Perkins] +tinc 655/tcp # TINC [Ivo_Timmermans] [Ivo_Timmermans] +tinc 655/udp # TINC [Ivo_Timmermans] [Ivo_Timmermans] +spmp 656/tcp # SPMP [Jakob_Kaivo] [Jakob_Kaivo] +spmp 656/udp # SPMP [Jakob_Kaivo] [Jakob_Kaivo] +rmc 657/tcp # RMC [Michael_Schmidt] [Michael_Schmidt] +rmc 657/udp # RMC [Michael_Schmidt] [Michael_Schmidt] +tenfold 658/tcp # TenFold [Louis_Olszyk] [Louis_Olszyk] +tenfold 658/udp # TenFold [Louis_Olszyk] [Louis_Olszyk] +# 659 Removed 2001-06-06 +mac-srvr-admin 660/tcp # MacOS Server Admin [Forest_Hill] [Forest_Hill] +mac-srvr-admin 660/udp # MacOS Server Admin [Forest_Hill] [Forest_Hill] +hap 661/tcp # HAP [Igor_Plotnikov] [Igor_Plotnikov] +hap 661/udp # HAP [Igor_Plotnikov] [Igor_Plotnikov] +pftp 662/tcp # PFTP [Ben_Schluricke] [Ben_Schluricke] +pftp 662/udp # PFTP [Ben_Schluricke] [Ben_Schluricke] +purenoise 663/tcp # PureNoise [Sam_Osa] [Sam_Osa] +purenoise 663/udp # PureNoise [Sam_Osa] [Sam_Osa] +oob-ws-https 664/tcp # DMTF out-of-band secure web [Jim_Davis] [Jim_Davis] 2007-06 +asf-secure-rmcp 664/udp # ASF Secure Remote Management [Carl_First] [Carl_First] +# and Control Protocol +sun-dr 665/tcp # Sun DR [Harinder_Bhasin] [Harinder_Bhasin] +sun-dr 665/udp # Sun DR [Harinder_Bhasin] [Harinder_Bhasin] +mdqs 666/tcp +mdqs 666/udp +doom 666/tcp # doom Id Software [ddt] [ddt] +doom 666/udp # doom Id Software [ddt] [ddt] +# campaign contribution +disclose 667/tcp # disclosures - SDR [Jim_Dixon] [Jim_Dixon] +# Technologies +disclose 667/udp # disclosures - SDR [Jim_Dixon] [Jim_Dixon] +mecomm 668/tcp # MeComm +mecomm 668/udp # MeComm +meregister 669/tcp # MeRegister [Armin_Sawusch] [Armin_Sawusch] +meregister 669/udp # MeRegister [Armin_Sawusch] [Armin_Sawusch] +vacdsm-sws 670/tcp # VACDSM-SWS +vacdsm-sws 670/udp # VACDSM-SWS +vacdsm-app 671/tcp # VACDSM-APP +vacdsm-app 671/udp # VACDSM-APP +vpps-qua 672/tcp # VPPS-QUA +vpps-qua 672/udp # VPPS-QUA +cimplex 673/tcp # CIMPLEX [Ulysses_G_Smith_Jr] [Ulysses_G_Smith_Jr] +cimplex 673/udp # CIMPLEX [Ulysses_G_Smith_Jr] [Ulysses_G_Smith_Jr] +acap 674/tcp # ACAP [Chris_Newman] [Chris_Newman] 2010-10-15 +acap 674/udp # ACAP [Chris_Newman] [Chris_Newman] 2010-10-15 +dctp 675/tcp # DCTP [Andre_Kramer] [Andre_Kramer] +dctp 675/udp # DCTP [Andre_Kramer] [Andre_Kramer] +vpps-via 676/tcp # VPPS Via [Ulysses_G_Smith_Jr] [Ulysses_G_Smith_Jr] +vpps-via 676/udp # VPPS Via [Ulysses_G_Smith_Jr] [Ulysses_G_Smith_Jr] +vpp 677/tcp # Virtual Presence Protocol [Klaus_Wolf] [Klaus_Wolf] +vpp 677/udp # Virtual Presence Protocol [Klaus_Wolf] [Klaus_Wolf] +ggf-ncp 678/tcp # GNU Generation Foundation [Noah_Paul] [Noah_Paul] +# NCP +ggf-ncp 678/udp # GNU Generation Foundation [Noah_Paul] [Noah_Paul] +mrm 679/tcp # MRM [Liming_Wei] [Liming_Wei] +mrm 679/udp # MRM [Liming_Wei] [Liming_Wei] +entrust-aaas 680/tcp # entrust-aaas +entrust-aaas 680/udp # entrust-aaas +entrust-aams 681/tcp # entrust-aams [Adrian_Mancini] [Adrian_Mancini] +entrust-aams 681/udp # entrust-aams [Adrian_Mancini] [Adrian_Mancini] +xfr 682/tcp # XFR [Noah_Paul_2] [Noah_Paul_2] +xfr 682/udp # XFR [Noah_Paul_2] [Noah_Paul_2] +corba-iiop 683/tcp # CORBA IIOP +corba-iiop 683/udp # CORBA IIOP +corba-iiop-ssl 684/tcp # CORBA IIOP SSL [Andrew_Watson] [Andrew_Watson] +corba-iiop-ssl 684/udp # CORBA IIOP SSL [Andrew_Watson] [Andrew_Watson] +mdc-portmapper 685/tcp # MDC Port Mapper [Noah_Paul] [Noah_Paul] +mdc-portmapper 685/udp # MDC Port Mapper [Noah_Paul] [Noah_Paul] +hcp-wismar 686/tcp # Hardware Control Protocol [David_Merchant] [David_Merchant] +# Wismar +hcp-wismar 686/udp # Hardware Control Protocol [David_Merchant] [David_Merchant] +asipregistry 687/tcp # asipregistry [Erik_Sea] [Erik_Sea] +asipregistry 687/udp # asipregistry [Erik_Sea] [Erik_Sea] +realm-rusd 688/tcp # ApplianceWare managment [Stacy_Kenworthy] [Stacy_Kenworthy] +realm-rusd 688/udp # ApplianceWare managment [Stacy_Kenworthy] [Stacy_Kenworthy] +nmap 689/tcp # NMAP [Peter_Dennis_Bartok] [Peter_Dennis_Bartok] +nmap 689/udp # NMAP [Peter_Dennis_Bartok] [Peter_Dennis_Bartok] +vatp 690/tcp # Velazquez Application [Velneo] [Velneo] +# Transfer Protocol +vatp 690/udp # Velazquez Application [Velneo] [Velneo] +msexch-routing 691/tcp # MS Exchange Routing [David_Lemson] [David_Lemson] +msexch-routing 691/udp # MS Exchange Routing [David_Lemson] [David_Lemson] +hyperwave-isp 692/tcp # Hyperwave-ISP [Gerald_Mesaric] [Gerald_Mesaric] +hyperwave-isp 692/udp # Hyperwave-ISP [Gerald_Mesaric] [Gerald_Mesaric] +connendp 693/tcp # almanid Connection Endpoint [Ronny_Bremer] [Ronny_Bremer] +connendp 693/udp # almanid Connection Endpoint [Ronny_Bremer] [Ronny_Bremer] +ha-cluster 694/tcp # ha-cluster [Alan_Robertson] [Alan_Robertson] +ha-cluster 694/udp # ha-cluster [Alan_Robertson] [Alan_Robertson] +ieee-mms-ssl 695/tcp # IEEE-MMS-SSL [Curtis_Anderson_2] [Curtis_Anderson_2] +ieee-mms-ssl 695/udp # IEEE-MMS-SSL [Curtis_Anderson_2] [Curtis_Anderson_2] +rushd 696/tcp # RUSHD [Greg_Ercolano] [Greg_Ercolano] +rushd 696/udp # RUSHD [Greg_Ercolano] [Greg_Ercolano] +uuidgen 697/tcp # UUIDGEN [James_Falkner] [James_Falkner] +uuidgen 697/udp # UUIDGEN [James_Falkner] [James_Falkner] +olsr 698/tcp # OLSR [Thomas_Clausen] [Thomas_Clausen] +olsr 698/udp # OLSR [Thomas_Clausen] [Thomas_Clausen] +accessnetwork 699/tcp # Access Network [Yingchun_Xu] [Yingchun_Xu] +accessnetwork 699/udp # Access Network [Yingchun_Xu] [Yingchun_Xu] +epp 700/tcp # Extensible Provisioning [RFC5734] +epp 700/udp # Extensible Provisioning [RFC5734] +lmp 701/tcp # Link Management Protocol [RFC4204] +# (LMP) +lmp 701/udp # Link Management Protocol [RFC4204] +iris-beep 702/tcp # IRIS over BEEP [RFC3983] +iris-beep 702/udp # IRIS over BEEP [RFC3983] +# 703 Unassigned +elcsd 704/tcp # errlog copy/server daemon +elcsd 704/udp # errlog copy/server daemon +agentx 705/tcp # AgentX [Bob_Natale] [Bob_Natale] +agentx 705/udp # AgentX [Bob_Natale] [Bob_Natale] +silc 706/tcp # SILC [Pekka_Riikonen] [Pekka_Riikonen] +silc 706/udp # SILC [Pekka_Riikonen] [Pekka_Riikonen] +borland-dsj 707/tcp # Borland DSJ [Gerg_Cole] [Gerg_Cole] +borland-dsj 707/udp # Borland DSJ [Gerg_Cole] [Gerg_Cole] +# 708 Unassigned +entrust-kmsh 709/tcp # Entrust Key Management +# Service Handler +entrust-kmsh 709/udp # Entrust Key Management +entrust-ash 710/tcp # Entrust Administration [Peter_Whittaker] [Peter_Whittaker] +entrust-ash 710/udp # Entrust Administration [Peter_Whittaker] [Peter_Whittaker] +cisco-tdp 711/tcp # Cisco TDP [Bruce_Davie] [Bruce_Davie] +cisco-tdp 711/udp # Cisco TDP [Bruce_Davie] [Bruce_Davie] +tbrpf 712/tcp # TBRPF [RFC3684] +tbrpf 712/udp # TBRPF [RFC3684] +iris-xpc 713/tcp # IRIS over XPC +iris-xpc 713/udp # IRIS over XPC +iris-xpcs 714/tcp # IRIS over XPCS [RFC4992] +iris-xpcs 714/udp # IRIS over XPCS [RFC4992] +iris-lwz 715/tcp # IRIS-LWZ [RFC4993] +iris-lwz 715/udp # IRIS-LWZ [RFC4993] +pana 716/udp # PANA Messages [RFC5191] +# 717-728 Unassigned +netviewdm1 729/tcp # IBM NetView DM/6000 +# Server/Client +netviewdm1 729/udp # IBM NetView DM/6000 +netviewdm2 730/tcp # IBM NetView DM/6000 send/tcp +netviewdm2 730/udp # IBM NetView DM/6000 send/tcp +netviewdm3 731/tcp # IBM NetView DM/6000 [Philippe_Binet] [Philippe_Binet] +# receive/tcp +netviewdm3 731/udp # IBM NetView DM/6000 [Philippe_Binet] [Philippe_Binet] +# 732-740 Unassigned +netgw 741/tcp # netGW [Oliver_Korfmacher] [Oliver_Korfmacher] +netgw 741/udp # netGW [Oliver_Korfmacher] [Oliver_Korfmacher] +netrcs 742/tcp # Network based Rev. Cont. [Gordon_C_Galligher] [Gordon_C_Galligher] +# Sys. +netrcs 742/udp # Network based Rev. Cont. [Gordon_C_Galligher] [Gordon_C_Galligher] +# 743 Unassigned +flexlm 744/tcp # Flexible License Manager [Matt_Christiano] [Matt_Christiano] +flexlm 744/udp # Flexible License Manager [Matt_Christiano] [Matt_Christiano] +# 745-746 Unassigned +fujitsu-dev 747/tcp # Fujitsu Device Control +fujitsu-dev 747/udp # Fujitsu Device Control +ris-cm 748/tcp # Russell Info Sci Calendar +ris-cm 748/udp # Russell Info Sci Calendar +kerberos-adm 749/tcp # kerberos administration +kerberos-adm 749/udp # kerberos administration +rfile 750/tcp +loadav 750/udp +kerberos-iv 750/udp # kerberos version iv [Martin_Hamilton] [Martin_Hamilton] +pump 751/tcp +pump 751/udp +qrh 752/tcp +qrh 752/udp +rrh 753/tcp +rrh 753/udp +tell 754/tcp # send [Josyula_R_Rao] [Josyula_R_Rao] +tell 754/udp # send [Josyula_R_Rao] [Josyula_R_Rao] +# 755-756 Unassigned +nlogin 758/tcp +nlogin 758/udp +con 759/tcp +con 759/udp +ns 760/tcp +ns 760/udp +rxe 761/tcp +rxe 761/udp +quotad 762/tcp +quotad 762/udp +cycleserv 763/tcp +cycleserv 763/udp +omserv 764/tcp +omserv 764/udp +webster 765/tcp # [Josyula_R_Rao] [Josyula_R_Rao] +webster 765/udp # [Josyula_R_Rao] [Josyula_R_Rao] +# 766 Unassigned +phonebook 767/tcp # phone [Josyula_R_Rao] [Josyula_R_Rao] +phonebook 767/udp # phone [Josyula_R_Rao] [Josyula_R_Rao] +# 768 Unassigned +vid 769/tcp +vid 769/udp +cadlock 770/tcp +cadlock 770/udp +rtip 771/tcp +rtip 771/udp +cycleserv2 772/tcp +cycleserv2 772/udp +submit 773/tcp +notify 773/udp +rpasswd 774/tcp +acmaint-dbd 774/udp # well-formed service name as +# "acmaint_dbd". +# This entry is an alias to "acmaint-dbd". This entry is now +acmaint_dbd 774/udp # historic, not usable for use with many common service +entomb 775/tcp +acmaint-transd 775/udp # well-formed service name as +# "acmaint_transd". +# This entry is an alias to "acmaint-transd". This entry is now +acmaint_transd 775/udp # historic, not usable for use with many common service +wpages 776/tcp # [Josyula_R_Rao] [Josyula_R_Rao] +wpages 776/udp # [Josyula_R_Rao] [Josyula_R_Rao] +multiling-http 777/tcp # Multiling HTTP [Alejandro_Bonet] [Alejandro_Bonet] +multiling-http 777/udp # Multiling HTTP [Alejandro_Bonet] [Alejandro_Bonet] +# 778-779 Unassigned +wpgs 780/tcp # [Josyula_R_Rao] [Josyula_R_Rao] +wpgs 780/udp # [Josyula_R_Rao] [Josyula_R_Rao] +# 781-785 Unassigned +# 786 Unassigned 2002-05-08 +# 787 Unassigned 2002-10-08 +# 788-799 Unassigned Use Known on +# port 796 +mdbs-daemon 800/tcp # well-formed service name as +# "mdbs_daemon". +# This entry is an alias to "mdbs-daemon". This entry is now +mdbs_daemon 800/tcp # historic, not usable for use with many common service +mdbs-daemon 800/udp # well-formed service name as +mdbs_daemon 800/udp # historic, not usable for use with many common service +device 801/tcp +device 801/udp +# 802-809 Unassigned +fcp-udp 810/tcp # FCP [Paul_Whittemore] [Paul_Whittemore] +fcp-udp 810/udp # FCP Datagram [Paul_Whittemore] [Paul_Whittemore] +# 811-827 Unassigned +itm-mcell-s 828/tcp # itm-mcell-s [Portnoy_Boxman] [Portnoy_Boxman] +itm-mcell-s 828/udp # itm-mcell-s [Portnoy_Boxman] [Portnoy_Boxman] +pkix-3-ca-ra 829/tcp # PKIX-3 CA/RA [Carlisle_Adams] [Carlisle_Adams] +pkix-3-ca-ra 829/udp # PKIX-3 CA/RA [Carlisle_Adams] [Carlisle_Adams] +netconf-ssh 830/tcp # NETCONF over SSH [RFC6242] +netconf-ssh 830/udp # NETCONF over SSH [RFC6242] +netconf-beep 831/tcp # NETCONF over BEEP [RFC4744] +netconf-beep 831/udp # NETCONF over BEEP [RFC4744] +netconfsoaphttp 832/tcp # NETCONF for SOAP over HTTPS [RFC4743] +netconfsoaphttp 832/udp # NETCONF for SOAP over HTTPS [RFC4743] +netconfsoapbeep 833/tcp # NETCONF for SOAP over BEEP [RFC4743] +netconfsoapbeep 833/udp # NETCONF for SOAP over BEEP [RFC4743] +# 834-846 Unassigned +dhcp-failover2 847/tcp # dhcp-failover 2 [Bernard_Volz] [Bernard_Volz] +dhcp-failover2 847/udp # dhcp-failover 2 [Bernard_Volz] [Bernard_Volz] +gdoi 848/tcp # GDOI [RFC3547] +gdoi 848/udp # GDOI [RFC3547] +# 849-859 Unassigned +iscsi 860/tcp # iSCSI [RFC3720] +iscsi 860/udp # iSCSI [RFC3720] +owamp-control 861/tcp # OWAMP-Control [RFC4656] +owamp-control 861/udp # OWAMP-Control [RFC4656] +twamp-control 862/tcp # Two-way Active Measurement [RFC5357] +# Protocol (TWAMP) Control +twamp-control 862/udp # Two-way Active Measurement [RFC5357] +# 863-872 Unassigned +rsync 873/tcp # rsync [Andrew_Tridgell] [Andrew_Tridgell] +rsync 873/udp # rsync [Andrew_Tridgell] [Andrew_Tridgell] +# 874-885 Unassigned +iclcnet-locate 886/tcp # ICL coNETion locate server [Bob_Lyon] [Bob_Lyon] +iclcnet-locate 886/udp # ICL coNETion locate server [Bob_Lyon] [Bob_Lyon] +# ICL coNETion server info +# +iclcnet-svinfo 887/tcp # IANA assigned this [Bob_Lyon] [Bob_Lyon] +# "iclcnet_svinfo". +# This entry is an alias to "iclcnet-svinfo". This entry is now +iclcnet_svinfo 887/tcp # ICL coNETion server info [Bob_Lyon] [Bob_Lyon] historic, not usable for use with many common service +# +iclcnet-svinfo 887/udp # IANA assigned this [Bob_Lyon] [Bob_Lyon] +iclcnet_svinfo 887/udp # ICL coNETion server info [Bob_Lyon] [Bob_Lyon] historic, not usable for use with many common service +accessbuilder 888/tcp # AccessBuilder [Steve_Sweeney] [Steve_Sweeney] +accessbuilder 888/udp # AccessBuilder [Steve_Sweeney] [Steve_Sweeney] +cddbp 888/tcp # CD Database Protocol [Steve_Scherf] [Steve_Scherf] This entry records an unassigned but widespread use +# 889-899 Unassigned +omginitialrefs 900/tcp # OMG Initial Refs [Christian_Callsen] [Christian_Callsen] +omginitialrefs 900/udp # OMG Initial Refs [Christian_Callsen] [Christian_Callsen] +smpnameres 901/tcp # SMPNAMERES [Leif_Ekblad] [Leif_Ekblad] +smpnameres 901/udp # SMPNAMERES [Leif_Ekblad] [Leif_Ekblad] +ideafarm-door 902/tcp # self documenting Telnet Door +ideafarm-door 902/udp # self documenting Door: send +# 0x00 for info +ideafarm-panic 903/tcp # self documenting Telnet [Wo_o_Ideafarm] [Wo_o_Ideafarm] +# Panic Door +ideafarm-panic 903/udp # self documenting Panic Door: [Wo_o_Ideafarm] [Wo_o_Ideafarm] +# send 0x00 for info +# 904-909 Unassigned +kink 910/tcp # Kerberized Internet [RFC4430] +# Negotiation of Keys (KINK) +kink 910/udp # Kerberized Internet [RFC4430] +xact-backup 911/tcp # xact-backup [Bill_Carroll] [Bill_Carroll] +xact-backup 911/udp # xact-backup [Bill_Carroll] [Bill_Carroll] +apex-mesh 912/tcp # APEX relay-relay service +apex-mesh 912/udp # APEX relay-relay service +apex-edge 913/tcp # APEX endpoint-relay service [RFC3340] +apex-edge 913/udp # APEX endpoint-relay service [RFC3340] +# 914-988 Unassigned +ftps-data 989/tcp # ftp protocol, data, over +ftps-data 989/udp # ftp protocol, data, over +ftps 990/tcp # ftp protocol, control, over [Christopher_Allen] [Christopher_Allen] +ftps 990/udp # ftp protocol, control, over [Christopher_Allen] [Christopher_Allen] +nas 991/tcp # Netnews Administration [Vera_Heinau][Heiko_Schlichting] [Vera_Heinau][Heiko_Schlichting] +nas 991/udp # Netnews Administration [Vera_Heinau][Heiko_Schlichting] [Vera_Heinau][Heiko_Schlichting] +telnets 992/tcp # telnet protocol over TLS/SSL +telnets 992/udp # telnet protocol over TLS/SSL +imaps 993/tcp # imap4 protocol over TLS/SSL +imaps 993/udp # imap4 protocol over TLS/SSL +# 994 tcp Reserved 2011-08-31 (previous contact was[Christopher_Allen]) +# 994 udp Reserved +pop3s 995/tcp # pop3 protocol over TLS/SSL [Gordon_Mangione] [Gordon_Mangione] +# (was spop3) +pop3s 995/udp # pop3 protocol over TLS/SSL [Gordon_Mangione] [Gordon_Mangione] +vsinet 996/tcp # vsinet [Rob_Juergens] [Rob_Juergens] +vsinet 996/udp # vsinet [Rob_Juergens] [Rob_Juergens] +maitrd 997/tcp +maitrd 997/udp +busboy 998/tcp +puparp 998/udp +garcon 999/tcp +applix 999/udp # Applix ac +puprouter 999/tcp +puprouter 999/udp +cadlock2 1000/tcp +cadlock2 1000/udp +# 1001-1009 Unassigned +# 1008 udp Possibly used by Sun +# Solaris???? +surf 1010/tcp # surf [Joseph_Geer] [Joseph_Geer] +surf 1010/udp # surf [Joseph_Geer] [Joseph_Geer] +# 1011-1020 Reserved +exp1 1021/tcp # RFC3692-style Experiment 1 [IESG] [IETF_Chair] [1][RFC4727][RFC6335] +exp1 1021/udp # RFC3692-style Experiment 1 [IESG] [IETF_Chair] [1][RFC4727][RFC6335] +exp1 1021/sctp # RFC3692-style Experiment 1 [IESG] [IETF_Chair] [1][RFC4727][RFC6335] +exp1 1021/dccp # RFC3692-style Experiment 1 [IESG] [IETF_Chair] [1][RFC4727][RFC6335] +exp2 1022/tcp # RFC3692-style Experiment 2 [IESG] [IETF_Chair] [1][RFC4727][RFC6335] +exp2 1022/udp # RFC3692-style Experiment 2 [IESG] [IETF_Chair] [1][RFC4727][RFC6335] +exp2 1022/sctp # RFC3692-style Experiment 2 [IESG] [IETF_Chair] [1][RFC4727][RFC6335] +exp2 1022/dccp # RFC3692-style Experiment 2 [IESG] [IETF_Chair] [1][RFC4727][RFC6335] +# 1023 tcp Reserved [IANA] [IANA] +# 1023 udp Reserved [IANA] [IANA] +# 1024 tcp Reserved [IANA] [IANA] +# 1024 udp Reserved [IANA] [IANA] +blackjack 1025/tcp # network blackjack +blackjack 1025/udp # network blackjack +cap 1026/tcp # Calendar Access Protocol [Doug_Royer] [Doug_Royer] 2010-12-09 +cap 1026/udp # Calendar Access Protocol [Doug_Royer] [Doug_Royer] 2010-12-09 +6a44 1027/udp # IPv6 Behind NAT44 CPEs [IESG] [IETF_Chair] 2012-08-02 [RFC6751] +# 1027 tcp Reserved +# 1028 Deprecated 2004-02 +solid-mux 1029/tcp # Solid Mux Server [Anders_Borg] [Anders_Borg] 2004-11 +solid-mux 1029/udp # Solid Mux Server [Anders_Borg] [Anders_Borg] 2004-11 +iad1 1030/tcp # BBN IAD +iad1 1030/udp # BBN IAD +iad2 1031/tcp # BBN IAD +iad2 1031/udp # BBN IAD +iad3 1032/tcp # BBN IAD [Andy_Malis] [Andy_Malis] +iad3 1032/udp # BBN IAD [Andy_Malis] [Andy_Malis] +netinfo-local 1033/tcp # local netinfo port [Marc_Majka] [Marc_Majka] 2002-08 +netinfo-local 1033/udp # local netinfo port [Marc_Majka] [Marc_Majka] 2002-08 +activesync 1034/tcp # ActiveSync Notifications [Sandra_Vargas] [Sandra_Vargas] 2003-03 +activesync 1034/udp # ActiveSync Notifications [Sandra_Vargas] [Sandra_Vargas] 2003-03 +mxxrlogin 1035/tcp # MX-XR RPC [Arnold_E_Mauer] [Arnold_E_Mauer] 2003-04 +mxxrlogin 1035/udp # MX-XR RPC [Arnold_E_Mauer] [Arnold_E_Mauer] 2003-04 +nsstp 1036/tcp # Nebula Secure Segment [Steve_Ravida] [Steve_Ravida] +nsstp 1036/udp # Nebula Secure Segment [Steve_Ravida] [Steve_Ravida] +ams 1037/tcp # AMS [Ronald_R_Ohmer] [Ronald_R_Ohmer] 2004-02 +ams 1037/udp # AMS [Ronald_R_Ohmer] [Ronald_R_Ohmer] 2004-02 +mtqp 1038/tcp # Message Tracking Query [RFC3887] +mtqp 1038/udp # Message Tracking Query [RFC3887] +sbl 1039/tcp # Streamlined Blackhole [Jonathan_A_Zdziaras] [Jonathan_A_Zdziaras] 2004-11 +sbl 1039/udp # Streamlined Blackhole [Jonathan_A_Zdziaras] [Jonathan_A_Zdziaras] 2004-11 +netarx 1040/tcp # Netarx Netcare [Sandy_Kronenberg] [Sandy_Kronenberg] 2008-04-03 +netarx 1040/udp # Netarx Netcare [Sandy_Kronenberg] [Sandy_Kronenberg] 2008-04-03 +danf-ak2 1041/tcp # AK2 Product [Karl_Palsson] [Karl_Palsson] 2004-11 +danf-ak2 1041/udp # AK2 Product [Karl_Palsson] [Karl_Palsson] 2004-11 +afrog 1042/tcp # Subnet Roaming [Michael_Chapman] [Michael_Chapman] 2004-11 +afrog 1042/udp # Subnet Roaming [Michael_Chapman] [Michael_Chapman] 2004-11 +boinc-client 1043/tcp # BOINC Client Control [David_Anderson] [David_Anderson] 2004-11 +boinc-client 1043/udp # BOINC Client Control [David_Anderson] [David_Anderson] 2004-11 +dcutility 1044/tcp # Dev Consortium Utility [Chris_Ryland] [Chris_Ryland] 2004-11 +dcutility 1044/udp # Dev Consortium Utility [Chris_Ryland] [Chris_Ryland] 2004-11 +fpitp 1045/tcp # Fingerprint Image Transfer [Steven_Fields] [Steven_Fields] 2002-02 +fpitp 1045/udp # Fingerprint Image Transfer [Steven_Fields] [Steven_Fields] 2002-02 +wfremotertm 1046/tcp # WebFilter Remote Monitor [Tim_Morgan] [Tim_Morgan] 2004-11 +wfremotertm 1046/udp # WebFilter Remote Monitor [Tim_Morgan] [Tim_Morgan] 2004-11 +neod1 1047/tcp # Sun's NEO Object Request +# Broker +neod1 1047/udp # Sun's NEO Object Request +neod2 1048/tcp # Sun's NEO Object Request [Rohit_Garg] [Rohit_Garg] +neod2 1048/udp # Sun's NEO Object Request [Rohit_Garg] [Rohit_Garg] +td-postman 1049/tcp # Tobit David Postman VPMN [Franz_Josef_Leuders] [Franz_Josef_Leuders] +td-postman 1049/udp # Tobit David Postman VPMN [Franz_Josef_Leuders] [Franz_Josef_Leuders] +cma 1050/tcp # CORBA Management Agent [Ramy_Zaarour] [Ramy_Zaarour] +cma 1050/udp # CORBA Management Agent [Ramy_Zaarour] [Ramy_Zaarour] +optima-vnet 1051/tcp # Optima VNET [Ralf_Doewich] [Ralf_Doewich] +optima-vnet 1051/udp # Optima VNET [Ralf_Doewich] [Ralf_Doewich] +ddt 1052/tcp # Dynamic DNS Tools [Remi_Lefebvre] [Remi_Lefebvre] +ddt 1052/udp # Dynamic DNS Tools [Remi_Lefebvre] [Remi_Lefebvre] +remote-as 1053/tcp # Remote Assistant (RA) [Roman_Kriis] [Roman_Kriis] Use Known on +# port 1053 +remote-as 1053/udp # Remote Assistant (RA) [Roman_Kriis] [Roman_Kriis] +brvread 1054/tcp # BRVREAD [A_Boninn] [A_Boninn] +brvread 1054/udp # BRVREAD [A_Boninn] [A_Boninn] +ansyslmd 1055/tcp # ANSYS - License Manager [Suzanne_Lorrin] [Suzanne_Lorrin] +ansyslmd 1055/udp # ANSYS - License Manager [Suzanne_Lorrin] [Suzanne_Lorrin] +vfo 1056/tcp # VFO [Anthony_Gonzalez] [Anthony_Gonzalez] +vfo 1056/udp # VFO [Anthony_Gonzalez] [Anthony_Gonzalez] +startron 1057/tcp # STARTRON [Markus_Sabadello] [Markus_Sabadello] +startron 1057/udp # STARTRON [Markus_Sabadello] [Markus_Sabadello] +nim 1058/tcp # nim +nim 1058/udp # nim +nimreg 1059/tcp # nimreg [Robert_Gordon] [Robert_Gordon] +nimreg 1059/udp # nimreg [Robert_Gordon] [Robert_Gordon] +polestar 1060/tcp # POLESTAR [Masakuni_Okada] [Masakuni_Okada] +polestar 1060/udp # POLESTAR [Masakuni_Okada] [Masakuni_Okada] +kiosk 1061/tcp # KIOSK [Ken_Ksiazek] [Ken_Ksiazek] +kiosk 1061/udp # KIOSK [Ken_Ksiazek] [Ken_Ksiazek] +veracity 1062/tcp # Veracity [Ross_Williams] [Ross_Williams] +veracity 1062/udp # Veracity [Ross_Williams] [Ross_Williams] +kyoceranetdev 1063/tcp # KyoceraNetDev [Shigenaka_Kanemitsu] [Shigenaka_Kanemitsu] +kyoceranetdev 1063/udp # KyoceraNetDev [Shigenaka_Kanemitsu] [Shigenaka_Kanemitsu] +jstel 1064/tcp # JSTEL [Duane_Kiser] [Duane_Kiser] +jstel 1064/udp # JSTEL [Duane_Kiser] [Duane_Kiser] +syscomlan 1065/tcp # SYSCOMLAN [Alexandre_Lechenne] [Alexandre_Lechenne] 2008-12-10 +syscomlan 1065/udp # SYSCOMLAN [Alexandre_Lechenne] [Alexandre_Lechenne] 2008-12-10 +fpo-fns 1066/tcp # FPO-FNS [Jens_Klose] [Jens_Klose] +fpo-fns 1066/udp # FPO-FNS [Jens_Klose] [Jens_Klose] +# Installation Bootstrap +# Proto. Serv. +# +instl-boots 1067/tcp # IANA assigned this +# "instl_boots". +# Installation Bootstrap This entry is an alias to "instl-boots". This entry is now +instl_boots 1067/tcp # Proto. Serv. historic, not usable for use with many common service +# +instl-boots 1067/udp # IANA assigned this +instl_boots 1067/udp # Proto. Serv. historic, not usable for use with many common service +# Proto. Cli. +# +instl-bootc 1068/tcp # IANA assigned this [David_Arko] [David_Arko] +# "instl_bootc". +# Installation Bootstrap This entry is an alias to "instl-bootc". This entry is now +instl_bootc 1068/tcp # Proto. Cli. [David_Arko] [David_Arko] historic, not usable for use with many common service +# +instl-bootc 1068/udp # IANA assigned this [David_Arko] [David_Arko] +instl_bootc 1068/udp # Proto. Cli. [David_Arko] [David_Arko] historic, not usable for use with many common service +cognex-insight 1069/tcp # COGNEX-INSIGHT [Steve_Olson] [Steve_Olson] +cognex-insight 1069/udp # COGNEX-INSIGHT [Steve_Olson] [Steve_Olson] +gmrupdateserv 1070/tcp # GMRUpdateSERV [Steve_Kellogg] [Steve_Kellogg] +gmrupdateserv 1070/udp # GMRUpdateSERV [Steve_Kellogg] [Steve_Kellogg] +bsquare-voip 1071/tcp # BSQUARE-VOIP [Yen_Lee] [Yen_Lee] +bsquare-voip 1071/udp # BSQUARE-VOIP [Yen_Lee] [Yen_Lee] +cardax 1072/tcp # CARDAX [Charles_Oram] [Charles_Oram] +cardax 1072/udp # CARDAX [Charles_Oram] [Charles_Oram] +bridgecontrol 1073/tcp # Bridge Control [Andy_Heron] [Andy_Heron] +bridgecontrol 1073/udp # Bridge Control [Andy_Heron] [Andy_Heron] +warmspotMgmt 1074/tcp # Warmspot Management Protocol [Robert_C_Henningsga] [Robert_C_Henningsga] +warmspotMgmt 1074/udp # Warmspot Management Protocol [Robert_C_Henningsga] [Robert_C_Henningsga] +rdrmshc 1075/tcp # RDRMSHC [Ericko_Shimada] [Ericko_Shimada] +rdrmshc 1075/udp # RDRMSHC [Ericko_Shimada] [Ericko_Shimada] +dab-sti-c 1076/tcp # DAB STI-C [World_DAB] [World_DAB] +dab-sti-c 1076/udp # DAB STI-C [World_DAB] [World_DAB] +imgames 1077/tcp # IMGames [Jean_A_Ames] [Jean_A_Ames] +imgames 1077/udp # IMGames [Jean_A_Ames] [Jean_A_Ames] +avocent-proxy 1078/tcp # Avocent Proxy Protocol [Steven_W_Clark] [Steven_W_Clark] +avocent-proxy 1078/udp # Avocent Proxy Protocol [Steven_W_Clark] [Steven_W_Clark] +asprovatalk 1079/tcp # ASPROVATalk [Chiew_Farn_Chung] [Chiew_Farn_Chung] +asprovatalk 1079/udp # ASPROVATalk [Chiew_Farn_Chung] [Chiew_Farn_Chung] +socks 1080/tcp # Socks [Ying_Da_Lee] [Ying_Da_Lee] +socks 1080/udp # Socks [Ying_Da_Lee] [Ying_Da_Lee] +pvuniwien 1081/tcp # PVUNIWIEN [Peter_Lipp] [Peter_Lipp] +pvuniwien 1081/udp # PVUNIWIEN [Peter_Lipp] [Peter_Lipp] +amt-esd-prot 1082/tcp # AMT-ESD-PROT [AMTEC_S_p_A] [AMTEC_S_p_A] +amt-esd-prot 1082/udp # AMT-ESD-PROT [AMTEC_S_p_A] [AMTEC_S_p_A] +ansoft-lm-1 1083/tcp # Anasoft License Manager +ansoft-lm-1 1083/udp # Anasoft License Manager +ansoft-lm-2 1084/tcp # Anasoft License Manager +ansoft-lm-2 1084/udp # Anasoft License Manager +webobjects 1085/tcp # Web Objects [Andy_Belk] [Andy_Belk] +webobjects 1085/udp # Web Objects [Andy_Belk] [Andy_Belk] +cplscrambler-lg 1086/tcp # CPL Scrambler Logging +cplscrambler-lg 1086/udp # CPL Scrambler Logging +cplscrambler-in 1087/tcp # CPL Scrambler Internal +cplscrambler-in 1087/udp # CPL Scrambler Internal +cplscrambler-al 1088/tcp # CPL Scrambler Alarm Log [Richard_Corn] [Richard_Corn] +cplscrambler-al 1088/udp # CPL Scrambler Alarm Log [Richard_Corn] [Richard_Corn] +ff-annunc 1089/tcp # FF Annunciation +ff-annunc 1089/udp # FF Annunciation +ff-fms 1090/tcp # FF Fieldbus Message +# Specification +ff-fms 1090/udp # FF Fieldbus Message +ff-sm 1091/tcp # FF System Management [Fieldbus_Foundation] [Fieldbus_Foundation] +ff-sm 1091/udp # FF System Management [Fieldbus_Foundation] [Fieldbus_Foundation] +obrpd 1092/tcp # Open Business Reporting [William_Randolph_Roy] [William_Randolph_Roy] +obrpd 1092/udp # Open Business Reporting [William_Randolph_Roy] [William_Randolph_Roy] +proofd 1093/tcp # PROOFD +proofd 1093/udp # PROOFD +rootd 1094/tcp # ROOTD [Fons_Rademakers] [Fons_Rademakers] +rootd 1094/udp # ROOTD [Fons_Rademakers] [Fons_Rademakers] +nicelink 1095/tcp # NICELink [Jordi_Lisbona] [Jordi_Lisbona] +nicelink 1095/udp # NICELink [Jordi_Lisbona] [Jordi_Lisbona] +cnrprotocol 1096/tcp # Common Name Resolution [Michael_Mealling] [Michael_Mealling] +cnrprotocol 1096/udp # Common Name Resolution [Michael_Mealling] [Michael_Mealling] +sunclustermgr 1097/tcp # Sun Cluster Manager [Ashit_Patel] [Ashit_Patel] +sunclustermgr 1097/udp # Sun Cluster Manager [Ashit_Patel] [Ashit_Patel] +rmiactivation 1098/tcp # RMI Activation +rmiactivation 1098/udp # RMI Activation +rmiregistry 1099/tcp # RMI Registry [Mark_Hodapp] [Mark_Hodapp] +rmiregistry 1099/udp # RMI Registry [Mark_Hodapp] [Mark_Hodapp] +mctp 1100/tcp # MCTP [Vitaly_Revsin] [Vitaly_Revsin] +mctp 1100/udp # MCTP [Vitaly_Revsin] [Vitaly_Revsin] +pt2-discover 1101/tcp # PT2-DISCOVER [Ralph_Kammerlander] [Ralph_Kammerlander] +pt2-discover 1101/udp # PT2-DISCOVER [Ralph_Kammerlander] [Ralph_Kammerlander] +adobeserver-1 1102/tcp # ADOBE SERVER 1 +adobeserver-1 1102/udp # ADOBE SERVER 1 +adobeserver-2 1103/tcp # ADOBE SERVER 2 [Frank_Soetebeer] [Frank_Soetebeer] +adobeserver-2 1103/udp # ADOBE SERVER 2 [Frank_Soetebeer] [Frank_Soetebeer] +xrl 1104/tcp # XRL [Patrick_Robinson] [Patrick_Robinson] +xrl 1104/udp # XRL [Patrick_Robinson] [Patrick_Robinson] +ftranhc 1105/tcp # FTRANHC [Eriko_Shimada] [Eriko_Shimada] +ftranhc 1105/udp # FTRANHC [Eriko_Shimada] [Eriko_Shimada] +isoipsigport-1 1106/tcp # ISOIPSIGPORT-1 +isoipsigport-1 1106/udp # ISOIPSIGPORT-1 +isoipsigport-2 1107/tcp # ISOIPSIGPORT-2 [Peter_Egli] [Peter_Egli] +isoipsigport-2 1107/udp # ISOIPSIGPORT-2 [Peter_Egli] [Peter_Egli] +ratio-adp 1108/tcp # ratio-adp [Oliver_Thulke] [Oliver_Thulke] +ratio-adp 1108/udp # ratio-adp [Oliver_Thulke] [Oliver_Thulke] +# 1109 Reserved - IANA +webadmstart 1110/tcp # Start web admin server +nfsd-keepalive 1110/udp # Client status info [Beth_Crespo] [Beth_Crespo] +lmsocialserver 1111/tcp # LM Social Server [Ron_Lussier] [Ron_Lussier] +lmsocialserver 1111/udp # LM Social Server [Ron_Lussier] [Ron_Lussier] +icp 1112/tcp # Intelligent Communication [Mark_H_David] [Mark_H_David] +icp 1112/udp # Intelligent Communication [Mark_H_David] [Mark_H_David] +ltp-deepspace 1113/tcp # Licklider Transmission [RFC5326] +ltp-deepspace 1113/udp # Licklider Transmission [RFC5326] +mini-sql 1114/tcp # Mini SQL [David_Hughes] [David_Hughes] +mini-sql 1114/udp # Mini SQL [David_Hughes] [David_Hughes] +ardus-trns 1115/tcp # ARDUS Transfer +ardus-trns 1115/udp # ARDUS Transfer +ardus-cntl 1116/tcp # ARDUS Control +ardus-cntl 1116/udp # ARDUS Control +ardus-mtrns 1117/tcp # ARDUS Multicast Transfer [Shinya_Abe] [Shinya_Abe] +ardus-mtrns 1117/udp # ARDUS Multicast Transfer [Shinya_Abe] [Shinya_Abe] +sacred 1118/tcp # SACRED [RFC3767] +sacred 1118/udp # SACRED [RFC3767] +bnetgame 1119/tcp # Battle.net Chat/Game +bnetgame 1119/udp # Battle.net Chat/Game +bnetfile 1120/tcp # Battle.net File Transfer [Domain_Tech] [Domain_Tech] 2005-04 +bnetfile 1120/udp # Battle.net File Transfer [Domain_Tech] [Domain_Tech] 2005-04 +rmpp 1121/tcp # Datalode RMPP [Dave_Ruedger] [Dave_Ruedger] 2003-11 +rmpp 1121/udp # Datalode RMPP [Dave_Ruedger] [Dave_Ruedger] 2003-11 +availant-mgr 1122/tcp # availant-mgr [Steven_Pelletier] [Steven_Pelletier] +availant-mgr 1122/udp # availant-mgr [Steven_Pelletier] [Steven_Pelletier] +murray 1123/tcp # Murray [Stu_Mark] [Stu_Mark] +murray 1123/udp # Murray [Stu_Mark] [Stu_Mark] +hpvmmcontrol 1124/tcp # HP VMM Control +hpvmmcontrol 1124/udp # HP VMM Control +hpvmmagent 1125/tcp # HP VMM Agent +hpvmmagent 1125/udp # HP VMM Agent +hpvmmdata 1126/tcp # HP VMM Agent [John_Morton] [John_Morton] 2004-11 +hpvmmdata 1126/udp # HP VMM Agent [John_Morton] [John_Morton] 2004-11 +kwdb-commn 1127/tcp # KWDB Remote Communication [Lal_Samuel_Varghese] [Lal_Samuel_Varghese] 2005-08 +kwdb-commn 1127/udp # KWDB Remote Communication [Lal_Samuel_Varghese] [Lal_Samuel_Varghese] 2005-08 +saphostctrl 1128/tcp # SAPHostControl over +# SOAP/HTTP +saphostctrl 1128/udp # SAPHostControl over +saphostctrls 1129/tcp # SAPHostControl over [Muscarella_Fabrizio] [Muscarella_Fabrizio] 2006-04 +# SOAP/HTTPS +saphostctrls 1129/udp # SAPHostControl over [Muscarella_Fabrizio] [Muscarella_Fabrizio] 2006-04 +casp 1130/tcp # CAC App Service Protocol +casp 1130/udp # CAC App Service Protocol +caspssl 1131/tcp # CAC App Service Protocol [Enrique_Corujo] [Enrique_Corujo] 2006-02 +# Encripted +caspssl 1131/udp # CAC App Service Protocol [Enrique_Corujo] [Enrique_Corujo] 2006-02 +kvm-via-ip 1132/tcp # KVM-via-IP Management [Ian_Miller] [Ian_Miller] 2006-03 +# Service +kvm-via-ip 1132/udp # KVM-via-IP Management [Ian_Miller] [Ian_Miller] 2006-03 +dfn 1133/tcp # Data Flow Network [Dmitry_Obuvalin] [Dmitry_Obuvalin] 2006-02 +dfn 1133/udp # Data Flow Network [Dmitry_Obuvalin] [Dmitry_Obuvalin] 2006-02 +aplx 1134/tcp # MicroAPL APLX [Richard_Nabavi] [Richard_Nabavi] 2006-02 +aplx 1134/udp # MicroAPL APLX [Richard_Nabavi] [Richard_Nabavi] 2006-02 +omnivision 1135/tcp # OmniVision Communication [Serge_Vacquier] [Serge_Vacquier] 2006-02 +omnivision 1135/udp # OmniVision Communication [Serge_Vacquier] [Serge_Vacquier] 2006-02 +hhb-gateway 1136/tcp # HHB Gateway Control [Richard_Harwell] [Richard_Harwell] 2006-02 +hhb-gateway 1136/udp # HHB Gateway Control [Richard_Harwell] [Richard_Harwell] 2006-02 +trim 1137/tcp # TRIM Workgroup Service [Siva_Poobalasingam] [Siva_Poobalasingam] 2006-03 +trim 1137/udp # TRIM Workgroup Service [Siva_Poobalasingam] [Siva_Poobalasingam] 2006-03 +# encrypted admin requests +# +encrypted-admin 1138/tcp # IANA assigned this [Michael_Elizarov] [Michael_Elizarov] 2007-01 +# "encrypted_admin". +# This entry is an alias to "encrypted-admin". This entry is +encrypted_admin 1138/tcp # encrypted admin requests [Michael_Elizarov] [Michael_Elizarov] 2007-01 now historic, not usable for use with many common service +# +encrypted-admin 1138/udp # IANA assigned this [Michael_Elizarov] [Michael_Elizarov] 2007-01 +encrypted_admin 1138/udp # encrypted admin requests [Michael_Elizarov] [Michael_Elizarov] 2007-01 now historic, not usable for use with many common service +evm 1139/tcp # Enterprise Virtual Manager [Thomas_Hennessy] [Thomas_Hennessy] 2007-10-04 +evm 1139/udp # Enterprise Virtual Manager [Thomas_Hennessy] [Thomas_Hennessy] 2007-10-04 +autonoc 1140/tcp # AutoNOC Network Operations [Kyle_Lussier] [Kyle_Lussier] 2005-12 +autonoc 1140/udp # AutoNOC Network Operations [Kyle_Lussier] [Kyle_Lussier] 2005-12 +mxomss 1141/tcp # User Message Service [Chaoyi_Lang] [Chaoyi_Lang] 2006-01 +mxomss 1141/udp # User Message Service [Chaoyi_Lang] [Chaoyi_Lang] 2006-01 +edtools 1142/tcp # User Discovery Service [Lee_Dolson] [Lee_Dolson] 2006-01 +edtools 1142/udp # User Discovery Service [Lee_Dolson] [Lee_Dolson] 2006-01 +imyx 1143/tcp # Infomatryx Exchange [David_Walling] [David_Walling] 2006-03 +imyx 1143/udp # Infomatryx Exchange [David_Walling] [David_Walling] 2006-03 +fuscript 1144/tcp # Fusion Script [Peter_Loveday] [Peter_Loveday] 2006-01 +fuscript 1144/udp # Fusion Script [Peter_Loveday] [Peter_Loveday] 2006-01 +x9-icue 1145/tcp # X9 iCue Show Control [Brandon_Potter] [Brandon_Potter] 2006-01 +x9-icue 1145/udp # X9 iCue Show Control [Brandon_Potter] [Brandon_Potter] 2006-01 +audit-transfer 1146/tcp # audit transfer [Mark_Wahl] [Mark_Wahl] 2005-11 +audit-transfer 1146/udp # audit transfer [Mark_Wahl] [Mark_Wahl] 2005-11 +capioverlan 1147/tcp # CAPIoverLAN [Diego_Friedel] [Diego_Friedel] 2005-11 +capioverlan 1147/udp # CAPIoverLAN [Diego_Friedel] [Diego_Friedel] 2005-11 +elfiq-repl 1148/tcp # Elfiq Replication Service [Frederick_Parent] [Frederick_Parent] 2005-11 +elfiq-repl 1148/udp # Elfiq Replication Service [Frederick_Parent] [Frederick_Parent] 2005-11 +bvtsonar 1149/tcp # BlueView Sonar Service [Teledyne_BlueView_Inc] [Cat_Zimmermann] 2005-11 2012-09-19 +bvtsonar 1149/udp # BlueView Sonar Service [Teledyne_BlueView_Inc] [Cat_Zimmermann] 2005-11 2012-09-19 +blaze 1150/tcp # Blaze File Server [Curt_Schimmel] [Curt_Schimmel] 2005-11 +blaze 1150/udp # Blaze File Server [Curt_Schimmel] [Curt_Schimmel] 2005-11 +unizensus 1151/tcp # Unizensus Login Server [Dirk_Materlik] [Dirk_Materlik] 2005-11 +unizensus 1151/udp # Unizensus Login Server [Dirk_Materlik] [Dirk_Materlik] 2005-11 +winpoplanmess 1152/tcp # Winpopup LAN Messenger [Vitali_Fomine] [Vitali_Fomine] 2005-11 +winpoplanmess 1152/udp # Winpopup LAN Messenger [Vitali_Fomine] [Vitali_Fomine] 2005-11 +c1222-acse 1153/tcp # ANSI C12.22 Port [RFC6142] +c1222-acse 1153/udp # ANSI C12.22 Port [RFC6142] +resacommunity 1154/tcp # Community Service [Stephane_MONS] [Stephane_MONS] 2005-09 +resacommunity 1154/udp # Community Service [Stephane_MONS] [Stephane_MONS] 2005-09 +nfa 1155/tcp # Network File Access [James_Powell] [James_Powell] +nfa 1155/udp # Network File Access [James_Powell] [James_Powell] +iascontrol-oms 1156/tcp # iasControl OMS [Todd_Guay] [Todd_Guay] 2004-11 +iascontrol-oms 1156/udp # iasControl OMS [Todd_Guay] [Todd_Guay] 2004-11 +iascontrol 1157/tcp # Oracle iASControl [Todd_Guay] [Todd_Guay] 2004-11 +iascontrol 1157/udp # Oracle iASControl [Todd_Guay] [Todd_Guay] 2004-11 +dbcontrol-oms 1158/tcp # dbControl OMS [Todd_Guay] [Todd_Guay] 2004-11 +dbcontrol-oms 1158/udp # dbControl OMS [Todd_Guay] [Todd_Guay] 2004-11 +oracle-oms 1159/tcp # Oracle OMS [Todd_Guay] [Todd_Guay] 2004-11 +oracle-oms 1159/udp # Oracle OMS [Todd_Guay] [Todd_Guay] 2004-11 +olsv 1160/tcp # DB Lite Mult-User Server [Philip_Stephenson] [Philip_Stephenson] 2005-08 +olsv 1160/udp # DB Lite Mult-User Server [Philip_Stephenson] [Philip_Stephenson] 2005-08 +health-polling 1161/tcp # Health Polling +health-polling 1161/udp # Health Polling +health-trap 1162/tcp # Health Trap +health-trap 1162/udp # Health Trap +sddp 1163/tcp # SmartDialer Data Protocol [Lee_Griffiths] [Lee_Griffiths] 2004-11 +sddp 1163/udp # SmartDialer Data Protocol [Lee_Griffiths] [Lee_Griffiths] 2004-11 +qsm-proxy 1164/tcp # QSM Proxy Service [Norm_Lunde] [Norm_Lunde] 2004-11 +qsm-proxy 1164/udp # QSM Proxy Service [Norm_Lunde] [Norm_Lunde] 2004-11 +qsm-gui 1165/tcp # QSM GUI Service [Norm_Lunde] [Norm_Lunde] 2004-11 +qsm-gui 1165/udp # QSM GUI Service [Norm_Lunde] [Norm_Lunde] 2004-11 +qsm-remote 1166/tcp # QSM RemoteExec [Norm_Lunde] [Norm_Lunde] 2004-11 +qsm-remote 1166/udp # QSM RemoteExec [Norm_Lunde] [Norm_Lunde] 2004-11 +cisco-ipsla 1167/tcp # Cisco IP SLAs Control [Emmanuel_Tychon] [Emmanuel_Tychon] 2006-03 +cisco-ipsla 1167/udp # Cisco IP SLAs Control [Emmanuel_Tychon] [Emmanuel_Tychon] 2006-03 +cisco-ipsla 1167/sctp # Cisco IP SLAs Control [Emmanuel_Tychon] [Emmanuel_Tychon] 2006-03 +vchat 1168/tcp # VChat Conference Service [Andreas_Wetzel] [Andreas_Wetzel] 2002-09 +vchat 1168/udp # VChat Conference Service [Andreas_Wetzel] [Andreas_Wetzel] 2002-09 +tripwire 1169/tcp # TRIPWIRE [Ed_Metcalf][Albert_Holt] [Ed_Metcalf][Albert_Holt] +tripwire 1169/udp # TRIPWIRE [Ed_Metcalf][Albert_Holt] [Ed_Metcalf][Albert_Holt] +atc-lm 1170/tcp # AT+C License Manager [Peter_Schafer] [Peter_Schafer] 2004-02 +atc-lm 1170/udp # AT+C License Manager [Peter_Schafer] [Peter_Schafer] 2004-02 +atc-appserver 1171/tcp # AT+C FmiApplicationServer [Peter_Schafer] [Peter_Schafer] 2004-02 +atc-appserver 1171/udp # AT+C FmiApplicationServer [Peter_Schafer] [Peter_Schafer] 2004-02 +dnap 1172/tcp # DNA Protocol [David_McLaughlin] [David_McLaughlin] 2004-11 +dnap 1172/udp # DNA Protocol [David_McLaughlin] [David_McLaughlin] 2004-11 +d-cinema-rrp 1173/tcp # D-Cinema Request-Response [Robert_Baldwin] [Robert_Baldwin] 2004-11 +d-cinema-rrp 1173/udp # D-Cinema Request-Response [Robert_Baldwin] [Robert_Baldwin] 2004-11 +fnet-remote-ui 1174/tcp # FlashNet Remote Admin [Terry_Smyth] [Terry_Smyth] 2004-11 +fnet-remote-ui 1174/udp # FlashNet Remote Admin [Terry_Smyth] [Terry_Smyth] 2004-11 +dossier 1175/tcp # Dossier Server [Rob_Minerick] [Rob_Minerick] 2004-11 +dossier 1175/udp # Dossier Server [Rob_Minerick] [Rob_Minerick] 2004-11 +indigo-server 1176/tcp # Indigo Home Server [Matt_Bendiksen] [Matt_Bendiksen] 2004-11 +indigo-server 1176/udp # Indigo Home Server [Matt_Bendiksen] [Matt_Bendiksen] 2004-11 +dkmessenger 1177/tcp # DKMessenger Protocol [Douglas_Kadlecek] [Douglas_Kadlecek] 2004-11 +dkmessenger 1177/udp # DKMessenger Protocol [Douglas_Kadlecek] [Douglas_Kadlecek] 2004-11 +sgi-storman 1178/tcp # SGI Storage Manager [Greg_Banks] [Greg_Banks] 2004-11 +sgi-storman 1178/udp # SGI Storage Manager [Greg_Banks] [Greg_Banks] 2004-11 +b2n 1179/tcp # Backup To Neighbor [Thomas_Fok] [Thomas_Fok] 2004-11 +b2n 1179/udp # Backup To Neighbor [Thomas_Fok] [Thomas_Fok] 2004-11 +mc-client 1180/tcp # Millicent Client Proxy [Steve_Glassman] [Steve_Glassman] +mc-client 1180/udp # Millicent Client Proxy [Steve_Glassman] [Steve_Glassman] +3comnetman 1181/tcp # 3Com Net Management [Peter_White] [Peter_White] 2004-11 +3comnetman 1181/udp # 3Com Net Management [Peter_White] [Peter_White] 2004-11 +accelenet 1182/tcp # AcceleNet Control +accelenet-data 1182/udp # AcceleNet Data [Peter_Lepeska] [Peter_Lepeska] 2010-09-10 +llsurfup-http 1183/tcp # LL Surfup HTTP +llsurfup-http 1183/udp # LL Surfup HTTP +llsurfup-https 1184/tcp # LL Surfup HTTPS [Katy_Lynn_McCullough] [Katy_Lynn_McCullough] +llsurfup-https 1184/udp # LL Surfup HTTPS [Katy_Lynn_McCullough] [Katy_Lynn_McCullough] +catchpole 1185/tcp # Catchpole port [Christian_Catchpole] [Christian_Catchpole] 2002-03 +catchpole 1185/udp # Catchpole port [Christian_Catchpole] [Christian_Catchpole] 2002-03 +mysql-cluster 1186/tcp # MySQL Cluster Manager [Arjen_Lentz] [Arjen_Lentz] 2004-11 +mysql-cluster 1186/udp # MySQL Cluster Manager [Arjen_Lentz] [Arjen_Lentz] 2004-11 +alias 1187/tcp # Alias Service [Paul_Tokarchuk] [Paul_Tokarchuk] 2004-11 +alias 1187/udp # Alias Service [Paul_Tokarchuk] [Paul_Tokarchuk] 2004-11 +hp-webadmin 1188/tcp # HP Web Admin [Lance_Kind] [Lance_Kind] +hp-webadmin 1188/udp # HP Web Admin [Lance_Kind] [Lance_Kind] +unet 1189/tcp # Unet Connection [Anthony_Stahler] [Anthony_Stahler] 2004-11 +unet 1189/udp # Unet Connection [Anthony_Stahler] [Anthony_Stahler] 2004-11 +commlinx-avl 1190/tcp # CommLinx GPS / AVL System [Peter_Johnson] [Peter_Johnson] 2004-11 +commlinx-avl 1190/udp # CommLinx GPS / AVL System [Peter_Johnson] [Peter_Johnson] 2004-11 +gpfs 1191/tcp # General Parallel File System [Dave_Craft] [Dave_Craft] 2004-11 +gpfs 1191/udp # General Parallel File System [Dave_Craft] [Dave_Craft] 2004-11 +caids-sensor 1192/tcp # caids sensors channel [Gregory_Hostettler] [Gregory_Hostettler] 2004-11 +caids-sensor 1192/udp # caids sensors channel [Gregory_Hostettler] [Gregory_Hostettler] 2004-11 +fiveacross 1193/tcp # Five Across Server [Glenn_Reid] [Glenn_Reid] 2004-11 +fiveacross 1193/udp # Five Across Server [Glenn_Reid] [Glenn_Reid] 2004-11 +openvpn 1194/tcp # OpenVPN [James_Yonan] [James_Yonan] 2004-11 +openvpn 1194/udp # OpenVPN [James_Yonan] [James_Yonan] 2004-11 +rsf-1 1195/tcp # RSF-1 clustering [Dave_Hines] [Dave_Hines] 2004-11 +rsf-1 1195/udp # RSF-1 clustering [Dave_Hines] [Dave_Hines] 2004-11 +netmagic 1196/tcp # Network Magic [Nick_Holt] [Nick_Holt] 2005-08 +netmagic 1196/udp # Network Magic [Nick_Holt] [Nick_Holt] 2005-08 +carrius-rshell 1197/tcp # Carrius Remote Access [Gerry_Dubois] [Gerry_Dubois] 2005-08 +carrius-rshell 1197/udp # Carrius Remote Access [Gerry_Dubois] [Gerry_Dubois] 2005-08 +cajo-discovery 1198/tcp # cajo reference discovery [John_Catherino] [John_Catherino] 2005-08 +cajo-discovery 1198/udp # cajo reference discovery [John_Catherino] [John_Catherino] 2005-08 +dmidi 1199/tcp # DMIDI [Phil_Kerr] [Phil_Kerr] 2002-02 +dmidi 1199/udp # DMIDI [Phil_Kerr] [Phil_Kerr] 2002-02 +scol 1200/tcp # SCOL [Cryo_Networks] [Cryo_Networks] +scol 1200/udp # SCOL [Cryo_Networks] [Cryo_Networks] +nucleus-sand 1201/tcp # Nucleus Sand Database Server [James_Marsh] [James_Marsh] +nucleus-sand 1201/udp # Nucleus Sand Database Server [James_Marsh] [James_Marsh] +caiccipc 1202/tcp # caiccipc [Vince_Re] [Vince_Re] +caiccipc 1202/udp # caiccipc [Vince_Re] [Vince_Re] +ssslic-mgr 1203/tcp # License Validation +ssslic-mgr 1203/udp # License Validation +ssslog-mgr 1204/tcp # Log Request Listener [Eric_Bruno] [Eric_Bruno] +ssslog-mgr 1204/udp # Log Request Listener [Eric_Bruno] [Eric_Bruno] +accord-mgc 1205/tcp # Accord-MGC [Roni_Even] [Roni_Even] +accord-mgc 1205/udp # Accord-MGC [Roni_Even] [Roni_Even] +anthony-data 1206/tcp # Anthony Data [Paul_Dollemore] [Paul_Dollemore] +anthony-data 1206/udp # Anthony Data [Paul_Dollemore] [Paul_Dollemore] +metasage 1207/tcp # MetaSage [Peter_Anvelt] [Peter_Anvelt] +metasage 1207/udp # MetaSage [Peter_Anvelt] [Peter_Anvelt] +seagull-ais 1208/tcp # SEAGULL AIS [Lee_Breisacher] [Lee_Breisacher] +seagull-ais 1208/udp # SEAGULL AIS [Lee_Breisacher] [Lee_Breisacher] +ipcd3 1209/tcp # IPCD3 [Mark_Ciskey] [Mark_Ciskey] +ipcd3 1209/udp # IPCD3 [Mark_Ciskey] [Mark_Ciskey] +eoss 1210/tcp # EOSS [Robert_Armes] [Robert_Armes] +eoss 1210/udp # EOSS [Robert_Armes] [Robert_Armes] +groove-dpp 1211/tcp # Groove DPP [Ken_Moore] [Ken_Moore] +groove-dpp 1211/udp # Groove DPP [Ken_Moore] [Ken_Moore] +lupa 1212/tcp # lupa [Barney_Wolff] [Barney_Wolff] +lupa 1212/udp # lupa [Barney_Wolff] [Barney_Wolff] +mpc-lifenet 1213/tcp # MPC LIFENET [Ward_Silver] [Ward_Silver] +mpc-lifenet 1213/udp # MPC LIFENET [Ward_Silver] [Ward_Silver] +kazaa 1214/tcp # KAZAA [Ahti_Heinla] [Ahti_Heinla] +kazaa 1214/udp # KAZAA [Ahti_Heinla] [Ahti_Heinla] +scanstat-1 1215/tcp # scanSTAT 1.0 [William_Scheding] [William_Scheding] +scanstat-1 1215/udp # scanSTAT 1.0 [William_Scheding] [William_Scheding] +etebac5 1216/tcp # ETEBAC 5 [Jean_Louis_Barbut] [Jean_Louis_Barbut] +etebac5 1216/udp # ETEBAC 5 [Jean_Louis_Barbut] [Jean_Louis_Barbut] +hpss-ndapi 1217/tcp # HPSS NonDCE Gateway [Michael_Gleicher] [Michael_Gleicher] +hpss-ndapi 1217/udp # HPSS NonDCE Gateway [Michael_Gleicher] [Michael_Gleicher] +aeroflight-ads 1218/tcp # AeroFlight-ADs +aeroflight-ads 1218/udp # AeroFlight-ADs +aeroflight-ret 1219/tcp # AeroFlight-Ret [Eric_Johnson] [Eric_Johnson] +aeroflight-ret 1219/udp # AeroFlight-Ret [Eric_Johnson] [Eric_Johnson] +qt-serveradmin 1220/tcp # QT SERVER ADMIN [Chris_LeCroy] [Chris_LeCroy] +qt-serveradmin 1220/udp # QT SERVER ADMIN [Chris_LeCroy] [Chris_LeCroy] +sweetware-apps 1221/tcp # SweetWARE Apps [David_Dunetz] [David_Dunetz] +sweetware-apps 1221/udp # SweetWARE Apps [David_Dunetz] [David_Dunetz] +nerv 1222/tcp # SNI R&D network [Martin_Freiss] [Martin_Freiss] +nerv 1222/udp # SNI R&D network [Martin_Freiss] [Martin_Freiss] +tgp 1223/tcp # TrulyGlobal Protocol [Gur_Kimchi] [Gur_Kimchi] 2008-05-20 +tgp 1223/udp # TrulyGlobal Protocol [Gur_Kimchi] [Gur_Kimchi] 2008-05-20 +vpnz 1224/tcp # VPNz [Tom_Strack] [Tom_Strack] +vpnz 1224/udp # VPNz [Tom_Strack] [Tom_Strack] +slinkysearch 1225/tcp # SLINKYSEARCH [Desmond_Chan] [Desmond_Chan] +slinkysearch 1225/udp # SLINKYSEARCH [Desmond_Chan] [Desmond_Chan] +stgxfws 1226/tcp # STGXFWS [Tetsuya_Shioda] [Tetsuya_Shioda] +stgxfws 1226/udp # STGXFWS [Tetsuya_Shioda] [Tetsuya_Shioda] +dns2go 1227/tcp # DNS2Go [Mike_Courterier] [Mike_Courterier] +dns2go 1227/udp # DNS2Go [Mike_Courterier] [Mike_Courterier] +florence 1228/tcp # FLORENCE [Brian_Trammell] [Brian_Trammell] +florence 1228/udp # FLORENCE [Brian_Trammell] [Brian_Trammell] +zented 1229/tcp # ZENworks Tiered Electronic [Ty_Ellis] [Ty_Ellis] +# Distribution +zented 1229/udp # ZENworks Tiered Electronic [Ty_Ellis] [Ty_Ellis] +periscope 1230/tcp # Periscope [Kevin_Madden] [Kevin_Madden] +periscope 1230/udp # Periscope [Kevin_Madden] [Kevin_Madden] +menandmice-lpm 1231/tcp # menandmice-lpm [Sigfus_Magnusson] [Sigfus_Magnusson] +menandmice-lpm 1231/udp # menandmice-lpm [Sigfus_Magnusson] [Sigfus_Magnusson] +first-defense 1232/tcp # Remote systems monitoring [Nexum] [Michael_Fread] 2012-09-21 Microsoft (unoffically) using 1232 +first-defense 1232/udp # Remote systems monitoring [Nexum] [Michael_Fread] 2012-09-21 Microsoft (unoffically) using 1232 +univ-appserver 1233/tcp # Universal App Server [Tim_Sent] [Tim_Sent] +univ-appserver 1233/udp # Universal App Server [Tim_Sent] [Tim_Sent] +search-agent 1234/tcp # Infoseek Search Agent [Jackie_Wu] [Jackie_Wu] +search-agent 1234/udp # Infoseek Search Agent [Jackie_Wu] [Jackie_Wu] +mosaicsyssvc1 1235/tcp # mosaicsyssvc1 [Brian_Matthews] [Brian_Matthews] +mosaicsyssvc1 1235/udp # mosaicsyssvc1 [Brian_Matthews] [Brian_Matthews] +bvcontrol 1236/tcp # bvcontrol [Daniel_J_Walsh] [Daniel_J_Walsh] +bvcontrol 1236/udp # bvcontrol [Daniel_J_Walsh] [Daniel_J_Walsh] +tsdos390 1237/tcp # tsdos390 [Ben_Pracht] [Ben_Pracht] +tsdos390 1237/udp # tsdos390 [Ben_Pracht] [Ben_Pracht] +hacl-qs 1238/tcp # hacl-qs [Farid_Faez] [Farid_Faez] +hacl-qs 1238/udp # hacl-qs [Farid_Faez] [Farid_Faez] +nmsd 1239/tcp # NMSD [Yuri_Machkasov] [Yuri_Machkasov] +nmsd 1239/udp # NMSD [Yuri_Machkasov] [Yuri_Machkasov] +instantia 1240/tcp # Instantia [Ruth_Slater] [Ruth_Slater] +instantia 1240/udp # Instantia [Ruth_Slater] [Ruth_Slater] +nessus 1241/tcp # nessus [Jordan_Hrycaj] [Jordan_Hrycaj] +nessus 1241/udp # nessus [Jordan_Hrycaj] [Jordan_Hrycaj] +nmasoverip 1242/tcp # NMAS over IP [Hal_Henderson] [Hal_Henderson] +nmasoverip 1242/udp # NMAS over IP [Hal_Henderson] [Hal_Henderson] +serialgateway 1243/tcp # SerialGateway [Stephen_LaValley] [Stephen_LaValley] +serialgateway 1243/udp # SerialGateway [Stephen_LaValley] [Stephen_LaValley] +isbconference1 1244/tcp # isbconference1 +isbconference1 1244/udp # isbconference1 +isbconference2 1245/tcp # isbconference2 [Arnold_Dittmann] [Arnold_Dittmann] +isbconference2 1245/udp # isbconference2 [Arnold_Dittmann] [Arnold_Dittmann] +payrouter 1246/tcp # payrouter [David_Wilson] [David_Wilson] +payrouter 1246/udp # payrouter [David_Wilson] [David_Wilson] +visionpyramid 1247/tcp # VisionPyramid [Gavin_Hutchinson] [Gavin_Hutchinson] +visionpyramid 1247/udp # VisionPyramid [Gavin_Hutchinson] [Gavin_Hutchinson] +hermes 1248/tcp # hermes +hermes 1248/udp # hermes +mesavistaco 1249/tcp # Mesa Vista Co [Rick_LaBanca] [Rick_LaBanca] +mesavistaco 1249/udp # Mesa Vista Co [Rick_LaBanca] [Rick_LaBanca] +swldy-sias 1250/tcp # swldy-sias [Peter_E_Williams] [Peter_E_Williams] +swldy-sias 1250/udp # swldy-sias [Peter_E_Williams] [Peter_E_Williams] +servergraph 1251/tcp # servergraph [Lindsay_Morris] [Lindsay_Morris] +servergraph 1251/udp # servergraph [Lindsay_Morris] [Lindsay_Morris] +bspne-pcc 1252/tcp # bspne-pcc +bspne-pcc 1252/udp # bspne-pcc +q55-pcc 1253/tcp # q55-pcc [Prem_Tirilok] [Prem_Tirilok] +q55-pcc 1253/udp # q55-pcc [Prem_Tirilok] [Prem_Tirilok] +de-noc 1254/tcp # de-noc +de-noc 1254/udp # de-noc +de-cache-query 1255/tcp # de-cache-query +de-cache-query 1255/udp # de-cache-query +de-server 1256/tcp # de-server [Jeff_Burdette] [Jeff_Burdette] +de-server 1256/udp # de-server [Jeff_Burdette] [Jeff_Burdette] +shockwave2 1257/tcp # Shockwave 2 [Dave_Simmons] [Dave_Simmons] +shockwave2 1257/udp # Shockwave 2 [Dave_Simmons] [Dave_Simmons] +opennl 1258/tcp # Open Network Library +opennl 1258/udp # Open Network Library +opennl-voice 1259/tcp # Open Network Library Voice [Phil_Frisbie] [Phil_Frisbie] +opennl-voice 1259/udp # Open Network Library Voice [Phil_Frisbie] [Phil_Frisbie] +ibm-ssd 1260/tcp # ibm-ssd [Barry_Whyte] [Barry_Whyte] +ibm-ssd 1260/udp # ibm-ssd [Barry_Whyte] [Barry_Whyte] +mpshrsv 1261/tcp # mpshrsv [Makoto_Ikeyama] [Makoto_Ikeyama] +mpshrsv 1261/udp # mpshrsv [Makoto_Ikeyama] [Makoto_Ikeyama] +qnts-orb 1262/tcp # QNTS-ORB [Raghurama_Bhat] [Raghurama_Bhat] +qnts-orb 1262/udp # QNTS-ORB [Raghurama_Bhat] [Raghurama_Bhat] +dka 1263/tcp # dka [Chris_Griffin] [Chris_Griffin] +dka 1263/udp # dka [Chris_Griffin] [Chris_Griffin] +prat 1264/tcp # PRAT [Keith_Wood] [Keith_Wood] +prat 1264/udp # PRAT [Keith_Wood] [Keith_Wood] +dssiapi 1265/tcp # DSSIAPI [Jim_Turner] [Jim_Turner] +dssiapi 1265/udp # DSSIAPI [Jim_Turner] [Jim_Turner] +dellpwrappks 1266/tcp # DELLPWRAPPKS [David_Troeger] [David_Troeger] +dellpwrappks 1266/udp # DELLPWRAPPKS [David_Troeger] [David_Troeger] +epc 1267/tcp # eTrust Policy Compliance [Aaron_Stein] [Aaron_Stein] +epc 1267/udp # eTrust Policy Compliance [Aaron_Stein] [Aaron_Stein] +propel-msgsys 1268/tcp # PROPEL-MSGSYS [Bert_Van_der_Linden] [Bert_Van_der_Linden] +propel-msgsys 1268/udp # PROPEL-MSGSYS [Bert_Van_der_Linden] [Bert_Van_der_Linden] +watilapp 1269/tcp # WATiLaPP [Frederic_Weymann] [Frederic_Weymann] +watilapp 1269/udp # WATiLaPP [Frederic_Weymann] [Frederic_Weymann] +opsmgr 1270/tcp # Microsoft Operations Manager [Ashvin_Sanghvi] [Ashvin_Sanghvi] +opsmgr 1270/udp # Microsoft Operations Manager [Ashvin_Sanghvi] [Ashvin_Sanghvi] +excw 1271/tcp # eXcW [Norm_Freedman] [Norm_Freedman] +excw 1271/udp # eXcW [Norm_Freedman] [Norm_Freedman] +cspmlockmgr 1272/tcp # CSPMLockMgr [Ibtsam_Mahfouz] [Ibtsam_Mahfouz] +cspmlockmgr 1272/udp # CSPMLockMgr [Ibtsam_Mahfouz] [Ibtsam_Mahfouz] +emc-gateway 1273/tcp # EMC-Gateway [Rene_Fontaine] [Rene_Fontaine] +emc-gateway 1273/udp # EMC-Gateway [Rene_Fontaine] [Rene_Fontaine] +t1distproc 1274/tcp # t1distproc [Julian_Biddle] [Julian_Biddle] +t1distproc 1274/udp # t1distproc [Julian_Biddle] [Julian_Biddle] +ivcollector 1275/tcp # ivcollector +ivcollector 1275/udp # ivcollector +ivmanager 1276/tcp # ivmanager [Xavier_Roques] [Xavier_Roques] +ivmanager 1276/udp # ivmanager [Xavier_Roques] [Xavier_Roques] +miva-mqs 1277/tcp # mqs [Miva_Corporation] [Miva_Corporation] +miva-mqs 1277/udp # mqs [Miva_Corporation] [Miva_Corporation] +dellwebadmin-1 1278/tcp # Dell Web Admin 1 +dellwebadmin-1 1278/udp # Dell Web Admin 1 +dellwebadmin-2 1279/tcp # Dell Web Admin 2 [Bridget_Navoda] [Bridget_Navoda] +dellwebadmin-2 1279/udp # Dell Web Admin 2 [Bridget_Navoda] [Bridget_Navoda] +pictrography 1280/tcp # Pictrography [Takashi_Hoshino] [Takashi_Hoshino] +pictrography 1280/udp # Pictrography [Takashi_Hoshino] [Takashi_Hoshino] +healthd 1281/tcp # healthd [James_E_Housley] [James_E_Housley] +healthd 1281/udp # healthd [James_E_Housley] [James_E_Housley] +emperion 1282/tcp # Emperion [Claus_Thor_Barth] [Claus_Thor_Barth] +emperion 1282/udp # Emperion [Claus_Thor_Barth] [Claus_Thor_Barth] +productinfo 1283/tcp # Product Information +productinfo 1283/udp # Product Information +iee-qfx 1284/tcp # IEE-QFX [Mehrdad_Ashtiani] [Mehrdad_Ashtiani] 2009-10-19 +iee-qfx 1284/udp # IEE-QFX [Mehrdad_Ashtiani] [Mehrdad_Ashtiani] 2009-10-19 +neoiface 1285/tcp # neoiface [Jason_McManus] [Jason_McManus] +neoiface 1285/udp # neoiface [Jason_McManus] [Jason_McManus] +netuitive 1286/tcp # netuitive [JF_Huard] [JF_Huard] +netuitive 1286/udp # netuitive [JF_Huard] [JF_Huard] +routematch 1287/tcp # RouteMatch Com [Jeff_Jones] [Jeff_Jones] 2005-11 +routematch 1287/udp # RouteMatch Com [Jeff_Jones] [Jeff_Jones] 2005-11 +navbuddy 1288/tcp # NavBuddy [Eric_Hackman] [Eric_Hackman] +navbuddy 1288/udp # NavBuddy [Eric_Hackman] [Eric_Hackman] +jwalkserver 1289/tcp # JWalkServer +jwalkserver 1289/udp # JWalkServer +winjaserver 1290/tcp # WinJaServer +winjaserver 1290/udp # WinJaServer +seagulllms 1291/tcp # SEAGULLLMS [Lee_Breisacher] [Lee_Breisacher] +seagulllms 1291/udp # SEAGULLLMS [Lee_Breisacher] [Lee_Breisacher] +dsdn 1292/tcp # dsdn [Stanislaw_Skowronek] [Stanislaw_Skowronek] +dsdn 1292/udp # dsdn [Stanislaw_Skowronek] [Stanislaw_Skowronek] +pkt-krb-ipsec 1293/tcp # PKT-KRB-IPSec [Nancy_Davoust] [Nancy_Davoust] +pkt-krb-ipsec 1293/udp # PKT-KRB-IPSec [Nancy_Davoust] [Nancy_Davoust] +cmmdriver 1294/tcp # CMMdriver [Lutz_Karras] [Lutz_Karras] +cmmdriver 1294/udp # CMMdriver [Lutz_Karras] [Lutz_Karras] +ehtp 1295/tcp # End-by-Hop Transmission [Alexander_Bogdanov] [Alexander_Bogdanov] +ehtp 1295/udp # End-by-Hop Transmission [Alexander_Bogdanov] [Alexander_Bogdanov] +dproxy 1296/tcp # dproxy +dproxy 1296/udp # dproxy +sdproxy 1297/tcp # sdproxy [Raimond_Diederik] [Raimond_Diederik] +sdproxy 1297/udp # sdproxy [Raimond_Diederik] [Raimond_Diederik] +lpcp 1298/tcp # lpcp [Christian_Stredicke] [Christian_Stredicke] +lpcp 1298/udp # lpcp [Christian_Stredicke] [Christian_Stredicke] +hp-sci 1299/tcp # hp-sci [Kim_Scott] [Kim_Scott] +hp-sci 1299/udp # hp-sci [Kim_Scott] [Kim_Scott] +h323hostcallsc 1300/tcp # H.323 Secure Call Control [ITU-T] [ITU-T_TSB] 2013-01-31 +# Signalling +h323hostcallsc 1300/udp # H.323 Secure Call Control [ITU-T] [ITU-T_TSB] 2013-01-31 +ci3-software-1 1301/tcp # CI3-Software-1 +ci3-software-1 1301/udp # CI3-Software-1 +ci3-software-2 1302/tcp # CI3-Software-2 [Kelli_Watson] [Kelli_Watson] +ci3-software-2 1302/udp # CI3-Software-2 [Kelli_Watson] [Kelli_Watson] +sftsrv 1303/tcp # sftsrv [Robert_Frazier] [Robert_Frazier] +sftsrv 1303/udp # sftsrv [Robert_Frazier] [Robert_Frazier] +boomerang 1304/tcp # Boomerang [Bruce_Lueckenhoff] [Bruce_Lueckenhoff] +boomerang 1304/udp # Boomerang [Bruce_Lueckenhoff] [Bruce_Lueckenhoff] +pe-mike 1305/tcp # pe-mike [Stephen_Hemminger] [Stephen_Hemminger] +pe-mike 1305/udp # pe-mike [Stephen_Hemminger] [Stephen_Hemminger] +re-conn-proto 1306/tcp # RE-Conn-Proto [Sandeep_Singhal] [Sandeep_Singhal] +re-conn-proto 1306/udp # RE-Conn-Proto [Sandeep_Singhal] [Sandeep_Singhal] +pacmand 1307/tcp # Pacmand [Edward_T_O_Shea] [Edward_T_O_Shea] +pacmand 1307/udp # Pacmand [Edward_T_O_Shea] [Edward_T_O_Shea] +odsi 1308/tcp # Optical Domain Service [K_Arvind] [K_Arvind] +# Interconnect (ODSI) +odsi 1308/udp # Optical Domain Service [K_Arvind] [K_Arvind] +jtag-server 1309/tcp # JTAG server [Andrew_Draper] [Andrew_Draper] +jtag-server 1309/udp # JTAG server [Andrew_Draper] [Andrew_Draper] +husky 1310/tcp # Husky [Mark_Zang] [Mark_Zang] +husky 1310/udp # Husky [Mark_Zang] [Mark_Zang] +rxmon 1311/tcp # RxMon [Javier_Jiminez] [Javier_Jiminez] +rxmon 1311/udp # RxMon [Javier_Jiminez] [Javier_Jiminez] +sti-envision 1312/tcp # STI Envision [Don_Stedman] [Don_Stedman] +sti-envision 1312/udp # STI Envision [Don_Stedman] [Don_Stedman] +# BMC_PATROLDB +# +bmc-patroldb 1313/tcp # IANA assigned this [Portnoy_Boxman] [Portnoy_Boxman] +# "bmc_patroldb". +# This entry is an alias to "bmc-patroldb". This entry is now +bmc_patroldb 1313/tcp # BMC_PATROLDB [Portnoy_Boxman] [Portnoy_Boxman] historic, not usable for use with many common service +# +bmc-patroldb 1313/udp # IANA assigned this [Portnoy_Boxman] [Portnoy_Boxman] +bmc_patroldb 1313/udp # BMC_PATROLDB [Portnoy_Boxman] [Portnoy_Boxman] historic, not usable for use with many common service +pdps 1314/tcp # Photoscript Distributed [Les_Klein] [Les_Klein] +# Printing System +pdps 1314/udp # Photoscript Distributed [Les_Klein] [Les_Klein] +els 1315/tcp # E.L.S., Event Listener [Jim_Cleppe] [Jim_Cleppe] +els 1315/udp # E.L.S., Event Listener [Jim_Cleppe] [Jim_Cleppe] +exbit-escp 1316/tcp # Exbit-ESCP [Morten_Christensen] [Morten_Christensen] +exbit-escp 1316/udp # Exbit-ESCP [Morten_Christensen] [Morten_Christensen] +vrts-ipcserver 1317/tcp # vrts-ipcserver [Bruce_Hestand] [Bruce_Hestand] +vrts-ipcserver 1317/udp # vrts-ipcserver [Bruce_Hestand] [Bruce_Hestand] +krb5gatekeeper 1318/tcp # krb5gatekeeper [Patrick_Moore] [Patrick_Moore] +krb5gatekeeper 1318/udp # krb5gatekeeper [Patrick_Moore] [Patrick_Moore] +amx-icsp 1319/tcp # AMX-ICSP [Jeff_Burch] [Jeff_Burch] +amx-icsp 1319/udp # AMX-ICSP [Jeff_Burch] [Jeff_Burch] +amx-axbnet 1320/tcp # AMX-AXBNET [Jeff_Burch] [Jeff_Burch] +amx-axbnet 1320/udp # AMX-AXBNET [Jeff_Burch] [Jeff_Burch] +pip 1321/tcp # PIP [Gordon_Mohr] [Gordon_Mohr] +pip 1321/udp # PIP [Gordon_Mohr] [Gordon_Mohr] +novation 1322/tcp # Novation [Alan_Dano] [Alan_Dano] +novation 1322/udp # Novation [Alan_Dano] [Alan_Dano] +brcd 1323/tcp # brcd [Todd_Picquelle] [Todd_Picquelle] +brcd 1323/udp # brcd [Todd_Picquelle] [Todd_Picquelle] +delta-mcp 1324/tcp # delta-mcp [Quinton_Tormanen] [Quinton_Tormanen] +delta-mcp 1324/udp # delta-mcp [Quinton_Tormanen] [Quinton_Tormanen] +dx-instrument 1325/tcp # DX-Instrument [Walt_Modic] [Walt_Modic] +dx-instrument 1325/udp # DX-Instrument [Walt_Modic] [Walt_Modic] +wimsic 1326/tcp # WIMSIC [James_Brown] [James_Brown] +wimsic 1326/udp # WIMSIC [James_Brown] [James_Brown] +ultrex 1327/tcp # Ultrex [Tim_Walsh] [Tim_Walsh] +ultrex 1327/udp # Ultrex [Tim_Walsh] [Tim_Walsh] +ewall 1328/tcp # EWALL [Jeff_Busma] [Jeff_Busma] +ewall 1328/udp # EWALL [Jeff_Busma] [Jeff_Busma] +netdb-export 1329/tcp # netdb-export [Konstantinos_Kostis] [Konstantinos_Kostis] +netdb-export 1329/udp # netdb-export [Konstantinos_Kostis] [Konstantinos_Kostis] +streetperfect 1330/tcp # StreetPerfect [Michael_R_Young] [Michael_R_Young] +streetperfect 1330/udp # StreetPerfect [Michael_R_Young] [Michael_R_Young] +intersan 1331/tcp # intersan [Barry_H_Feild] [Barry_H_Feild] +intersan 1331/udp # intersan [Barry_H_Feild] [Barry_H_Feild] +pcia-rxp-b 1332/tcp # PCIA RXP-B [James_Dabbs] [James_Dabbs] +pcia-rxp-b 1332/udp # PCIA RXP-B [James_Dabbs] [James_Dabbs] +passwrd-policy 1333/tcp # Password Policy [Tonio_Pirotta] [Tonio_Pirotta] +passwrd-policy 1333/udp # Password Policy [Tonio_Pirotta] [Tonio_Pirotta] +writesrv 1334/tcp # writesrv [Marvin_Toungate] [Marvin_Toungate] +writesrv 1334/udp # writesrv [Marvin_Toungate] [Marvin_Toungate] +digital-notary 1335/tcp # Digital Notary Protocol [Wes_Doonan] [Wes_Doonan] +digital-notary 1335/udp # Digital Notary Protocol [Wes_Doonan] [Wes_Doonan] +ischat 1336/tcp # Instant Service Chat [Mike_Clise] [Mike_Clise] +ischat 1336/udp # Instant Service Chat [Mike_Clise] [Mike_Clise] +menandmice-dns 1337/tcp # menandmice DNS [Sigfus_Magnusson] [Sigfus_Magnusson] +menandmice-dns 1337/udp # menandmice DNS [Sigfus_Magnusson] [Sigfus_Magnusson] +wmc-log-svc 1338/tcp # WMC-log-svr [Scott_Anderson] [Scott_Anderson] +wmc-log-svc 1338/udp # WMC-log-svr [Scott_Anderson] [Scott_Anderson] +kjtsiteserver 1339/tcp # kjtsiteserver [Jason_Aubain] [Jason_Aubain] +kjtsiteserver 1339/udp # kjtsiteserver [Jason_Aubain] [Jason_Aubain] +naap 1340/tcp # NAAP [Henry_Haverinen] [Henry_Haverinen] +naap 1340/udp # NAAP [Henry_Haverinen] [Henry_Haverinen] +qubes 1341/tcp # QuBES [Eric_Grange] [Eric_Grange] +qubes 1341/udp # QuBES [Eric_Grange] [Eric_Grange] +esbroker 1342/tcp # ESBroker [Alexander_Medvinsky] [Alexander_Medvinsky] +esbroker 1342/udp # ESBroker [Alexander_Medvinsky] [Alexander_Medvinsky] +re101 1343/tcp # re101 [Doriano_Blengino] [Doriano_Blengino] +re101 1343/udp # re101 [Doriano_Blengino] [Doriano_Blengino] +icap 1344/tcp # ICAP [Jeremy_Elson] [Jeremy_Elson] +icap 1344/udp # ICAP [Jeremy_Elson] [Jeremy_Elson] +vpjp 1345/tcp # VPJP [Michael_Collins] [Michael_Collins] +vpjp 1345/udp # VPJP [Michael_Collins] [Michael_Collins] +alta-ana-lm 1346/tcp # Alta Analytics License +alta-ana-lm 1346/udp # Alta Analytics License +bbn-mmc 1347/tcp # multi media conferencing +bbn-mmc 1347/udp # multi media conferencing +bbn-mmx 1348/tcp # multi media conferencing +bbn-mmx 1348/udp # multi media conferencing +sbook 1349/tcp # Registration Network +sbook 1349/udp # Registration Network +editbench 1350/tcp # Registration Network [Simson_L_Garfinkel] [Simson_L_Garfinkel] +editbench 1350/udp # Registration Network [Simson_L_Garfinkel] [Simson_L_Garfinkel] +equationbuilder 1351/tcp # Digital Tool Works (MIT) [Terrence_J_Talbot] [Terrence_J_Talbot] +equationbuilder 1351/udp # Digital Tool Works (MIT) [Terrence_J_Talbot] [Terrence_J_Talbot] +lotusnote 1352/tcp # Lotus Note [Greg_Pflaum] [Greg_Pflaum] 1992-07 +lotusnote 1352/udp # Lotus Note [Greg_Pflaum] [Greg_Pflaum] 1992-07 +relief 1353/tcp # Relief Consulting [John_Feiler] [John_Feiler] +relief 1353/udp # Relief Consulting [John_Feiler] [John_Feiler] +XSIP-network 1354/tcp # Five Across XSIP Network [Glenn_Reid] [Glenn_Reid] +XSIP-network 1354/udp # Five Across XSIP Network [Glenn_Reid] [Glenn_Reid] +intuitive-edge 1355/tcp # Intuitive Edge [Montgomery_Zukowski] [Montgomery_Zukowski] +intuitive-edge 1355/udp # Intuitive Edge [Montgomery_Zukowski] [Montgomery_Zukowski] +cuillamartin 1356/tcp # CuillaMartin Company +cuillamartin 1356/udp # CuillaMartin Company +pegboard 1357/tcp # Electronic PegBoard [Chris_Cuilla] [Chris_Cuilla] +pegboard 1357/udp # Electronic PegBoard [Chris_Cuilla] [Chris_Cuilla] +connlcli 1358/tcp # CONNLCLI +connlcli 1358/udp # CONNLCLI +ftsrv 1359/tcp # FTSRV [Ines_Homem_de_Melo] [Ines_Homem_de_Melo] +ftsrv 1359/udp # FTSRV [Ines_Homem_de_Melo] [Ines_Homem_de_Melo] +mimer 1360/tcp # MIMER [Per_Schroeder] [Per_Schroeder] +mimer 1360/udp # MIMER [Per_Schroeder] [Per_Schroeder] +linx 1361/tcp # LinX [Steffen_Schilke] [Steffen_Schilke] +linx 1361/udp # LinX [Steffen_Schilke] [Steffen_Schilke] +timeflies 1362/tcp # TimeFlies [Doug_Kent] [Doug_Kent] +timeflies 1362/udp # TimeFlies [Doug_Kent] [Doug_Kent] +ndm-requester 1363/tcp # Network DataMover Requester +ndm-requester 1363/udp # Network DataMover Requester +ndm-server 1364/tcp # Network DataMover Server [Toshio_Watanabe] [Toshio_Watanabe] +ndm-server 1364/udp # Network DataMover Server [Toshio_Watanabe] [Toshio_Watanabe] +adapt-sna 1365/tcp # Network Software Associates [Jeffery_Chiao] [Jeffery_Chiao] +adapt-sna 1365/udp # Network Software Associates [Jeffery_Chiao] [Jeffery_Chiao] +netware-csp 1366/tcp # Novell NetWare Comm Service [Laurie_Lindsey] [Laurie_Lindsey] +# Platform +netware-csp 1366/udp # Novell NetWare Comm Service [Laurie_Lindsey] [Laurie_Lindsey] +dcs 1367/tcp # DCS [Stefan_Siebert] [Stefan_Siebert] +dcs 1367/udp # DCS [Stefan_Siebert] [Stefan_Siebert] +screencast 1368/tcp # ScreenCast [Bill_Tschumy] [Bill_Tschumy] +screencast 1368/udp # ScreenCast [Bill_Tschumy] [Bill_Tschumy] +gv-us 1369/tcp # GlobalView to Unix Shell +gv-us 1369/udp # GlobalView to Unix Shell +us-gv 1370/tcp # Unix Shell to GlobalView [Makoto_Mita] [Makoto_Mita] +us-gv 1370/udp # Unix Shell to GlobalView [Makoto_Mita] [Makoto_Mita] +fc-cli 1371/tcp # Fujitsu Config Protocol +fc-cli 1371/udp # Fujitsu Config Protocol +fc-ser 1372/tcp # Fujitsu Config Protocol [Ryuichi_Horie] [Ryuichi_Horie] +fc-ser 1372/udp # Fujitsu Config Protocol [Ryuichi_Horie] [Ryuichi_Horie] +chromagrafx 1373/tcp # Chromagrafx [Mike_Barthelemy] [Mike_Barthelemy] +chromagrafx 1373/udp # Chromagrafx [Mike_Barthelemy] [Mike_Barthelemy] +molly 1374/tcp # EPI Software Systems [Jim_Vlcek] [Jim_Vlcek] +molly 1374/udp # EPI Software Systems [Jim_Vlcek] [Jim_Vlcek] +bytex 1375/tcp # Bytex [Mary_Ann_Burt] [Mary_Ann_Burt] +bytex 1375/udp # Bytex [Mary_Ann_Burt] [Mary_Ann_Burt] +ibm-pps 1376/tcp # IBM Person to Person [Simon_Phipps] [Simon_Phipps] +# Software +ibm-pps 1376/udp # IBM Person to Person [Simon_Phipps] [Simon_Phipps] +cichlid 1377/tcp # Cichlid License Manager [Andy_Burgess] [Andy_Burgess] +cichlid 1377/udp # Cichlid License Manager [Andy_Burgess] [Andy_Burgess] +elan 1378/tcp # Elan License Manager [Ken_Greer] [Ken_Greer] +elan 1378/udp # Elan License Manager [Ken_Greer] [Ken_Greer] +dbreporter 1379/tcp # Integrity Solutions [Tim_Dawson] [Tim_Dawson] +dbreporter 1379/udp # Integrity Solutions [Tim_Dawson] [Tim_Dawson] +telesis-licman 1380/tcp # Telesis Network License [Karl_Schendel_Jr] [Karl_Schendel_Jr] +telesis-licman 1380/udp # Telesis Network License [Karl_Schendel_Jr] [Karl_Schendel_Jr] +apple-licman 1381/tcp # Apple Network License [Earl_Wallace] [Earl_Wallace] +apple-licman 1381/udp # Apple Network License [Earl_Wallace] [Earl_Wallace] +# udt_os +# +udt-os 1382/tcp # IANA assigned this +# a replacement for "udt_os". +# This entry is an alias to "udt-os". This entry is now +udt_os 1382/tcp # udt_os historic, not usable for use with many common service +# +udt-os 1382/udp # IANA assigned this +udt_os 1382/udp # udt_os historic, not usable for use with many common service +gwha 1383/tcp # GW Hannaway Network License [J_Gabriel_Foster] [J_Gabriel_Foster] +gwha 1383/udp # GW Hannaway Network License [J_Gabriel_Foster] [J_Gabriel_Foster] +os-licman 1384/tcp # Objective Solutions License [Donald_Cornwell] [Donald_Cornwell] +os-licman 1384/udp # Objective Solutions License [Donald_Cornwell] [Donald_Cornwell] +# Atex Publishing License +# +atex-elmd 1385/tcp # IANA assigned this [Brett_Sorenson] [Brett_Sorenson] +# "atex_elmd". +# Atex Publishing License This entry is an alias to "atex-elmd". This entry is now +atex_elmd 1385/tcp # Manager [Brett_Sorenson] [Brett_Sorenson] historic, not usable for use with many common service +# +atex-elmd 1385/udp # IANA assigned this [Brett_Sorenson] [Brett_Sorenson] +atex_elmd 1385/udp # Manager [Brett_Sorenson] [Brett_Sorenson] historic, not usable for use with many common service +checksum 1386/tcp # CheckSum License Manager [Andreas_Glocker] [Andreas_Glocker] +checksum 1386/udp # CheckSum License Manager [Andreas_Glocker] [Andreas_Glocker] +cadsi-lm 1387/tcp # Computer Aided Design [Sulistio_Muljadi] [Sulistio_Muljadi] +# Software Inc LM +cadsi-lm 1387/udp # Computer Aided Design [Sulistio_Muljadi] [Sulistio_Muljadi] +objective-dbc 1388/tcp # Objective Solutions DataBase [Donald_Cornwell_2] [Donald_Cornwell_2] +# Cache +objective-dbc 1388/udp # Objective Solutions DataBase [Donald_Cornwell_2] [Donald_Cornwell_2] +iclpv-dm 1389/tcp # Document Manager +iclpv-dm 1389/udp # Document Manager +iclpv-sc 1390/tcp # Storage Controller +iclpv-sc 1390/udp # Storage Controller +iclpv-sas 1391/tcp # Storage Access Server +iclpv-sas 1391/udp # Storage Access Server +iclpv-pm 1392/tcp # Print Manager +iclpv-pm 1392/udp # Print Manager +iclpv-nls 1393/tcp # Network Log Server +iclpv-nls 1393/udp # Network Log Server +iclpv-nlc 1394/tcp # Network Log Client +iclpv-nlc 1394/udp # Network Log Client +iclpv-wsm 1395/tcp # PC Workstation Manager [A_P_Hobson] [A_P_Hobson] +# software +iclpv-wsm 1395/udp # PC Workstation Manager [A_P_Hobson] [A_P_Hobson] +dvl-activemail 1396/tcp # DVL Active Mail +dvl-activemail 1396/udp # DVL Active Mail +audio-activmail 1397/tcp # Audio Active Mail +audio-activmail 1397/udp # Audio Active Mail +video-activmail 1398/tcp # Video Active Mail [Avshalom_Houri] [Avshalom_Houri] +video-activmail 1398/udp # Video Active Mail [Avshalom_Houri] [Avshalom_Houri] +cadkey-licman 1399/tcp # Cadkey License Manager +cadkey-licman 1399/udp # Cadkey License Manager +cadkey-tablet 1400/tcp # Cadkey Tablet Daemon [Joe_McCollough] [Joe_McCollough] +cadkey-tablet 1400/udp # Cadkey Tablet Daemon [Joe_McCollough] [Joe_McCollough] +goldleaf-licman 1401/tcp # Goldleaf License Manager [John_Fox] [John_Fox] +goldleaf-licman 1401/udp # Goldleaf License Manager [John_Fox] [John_Fox] +prm-sm-np 1402/tcp # Prospero Resource Manager +prm-sm-np 1402/udp # Prospero Resource Manager +prm-nm-np 1403/tcp # Prospero Resource Manager [B_Clifford_Neuman] [B_Clifford_Neuman] +prm-nm-np 1403/udp # Prospero Resource Manager [B_Clifford_Neuman] [B_Clifford_Neuman] +igi-lm 1404/tcp # Infinite Graphics License +igi-lm 1404/udp # Infinite Graphics License +ibm-res 1405/tcp # IBM Remote Execution Starter +ibm-res 1405/udp # IBM Remote Execution Starter +netlabs-lm 1406/tcp # NetLabs License Manager +netlabs-lm 1406/udp # NetLabs License Manager +dbsa-lm 1407/tcp # DBSA License Manager [Scott_Shattuck] [Scott_Shattuck] +dbsa-lm 1407/udp # DBSA License Manager [Scott_Shattuck] [Scott_Shattuck] +sophia-lm 1408/tcp # Sophia License Manager [Eric_Brown] [Eric_Brown] +sophia-lm 1408/udp # Sophia License Manager [Eric_Brown] [Eric_Brown] +here-lm 1409/tcp # Here License Manager [David_Ison] [David_Ison] +here-lm 1409/udp # Here License Manager [David_Ison] [David_Ison] +hiq 1410/tcp # HiQ License Manager [Rick_Pugh] [Rick_Pugh] +hiq 1410/udp # HiQ License Manager [Rick_Pugh] [Rick_Pugh] +af 1411/tcp # AudioFile [Jim_Gettys] [Jim_Gettys] +af 1411/udp # AudioFile [Jim_Gettys] [Jim_Gettys] +innosys 1412/tcp # InnoSys +innosys 1412/udp # InnoSys +innosys-acl 1413/tcp # Innosys-ACL [Eric_Welch] [Eric_Welch] +innosys-acl 1413/udp # Innosys-ACL [Eric_Welch] [Eric_Welch] +ibm-mqseries 1414/tcp # IBM MQSeries [Roger_Meli] [Roger_Meli] +ibm-mqseries 1414/udp # IBM MQSeries [Roger_Meli] [Roger_Meli] +dbstar 1415/tcp # DBStar [Jeffrey_Millman] [Jeffrey_Millman] +dbstar 1415/udp # DBStar [Jeffrey_Millman] [Jeffrey_Millman] +# Novell LU6.2 +# +novell-lu6-2 1416/tcp # IANA assigned this [Peter_Liu] [Peter_Liu] +# "novell-lu6.2". +# This entry is an alias to "novell-lu6-2". This entry is now +novell-lu6.2 1416/tcp # Novell LU6.2 [Peter_Liu] [Peter_Liu] historic, not usable for use with many common service +# +novell-lu6-2 1416/udp # IANA assigned this [Peter_Liu] [Peter_Liu] +novell-lu6.2 1416/udp # Novell LU6.2 [Peter_Liu] [Peter_Liu] historic, not usable for use with many common service +timbuktu-srv1 1417/tcp # Timbuktu Service 1 Port +timbuktu-srv1 1417/udp # Timbuktu Service 1 Port +timbuktu-srv2 1418/tcp # Timbuktu Service 2 Port +timbuktu-srv2 1418/udp # Timbuktu Service 2 Port +timbuktu-srv3 1419/tcp # Timbuktu Service 3 Port +timbuktu-srv3 1419/udp # Timbuktu Service 3 Port +timbuktu-srv4 1420/tcp # Timbuktu Service 4 Port [Marc_Epard] [Marc_Epard] +timbuktu-srv4 1420/udp # Timbuktu Service 4 Port [Marc_Epard] [Marc_Epard] +gandalf-lm 1421/tcp # Gandalf License Manager [gilmer] [gilmer] +gandalf-lm 1421/udp # Gandalf License Manager [gilmer] [gilmer] +autodesk-lm 1422/tcp # Autodesk License Manager [David_Ko] [David_Ko] +autodesk-lm 1422/udp # Autodesk License Manager [David_Ko] [David_Ko] +essbase 1423/tcp # Essbase Arbor Software +essbase 1423/udp # Essbase Arbor Software +hybrid 1424/tcp # Hybrid Encryption Protocol [Howard_Hart] [Howard_Hart] +hybrid 1424/udp # Hybrid Encryption Protocol [Howard_Hart] [Howard_Hart] +zion-lm 1425/tcp # Zion Software License [David_Ferrero] [David_Ferrero] +zion-lm 1425/udp # Zion Software License [David_Ferrero] [David_Ferrero] +sais 1426/tcp # Satellite-data Acquisition [Bill_Taylor] [Bill_Taylor] +# System 1 +sais 1426/udp # Satellite-data Acquisition [Bill_Taylor] [Bill_Taylor] +mloadd 1427/tcp # mloadd monitoring tool [Bob_Braden_2] [Bob_Braden_2] +mloadd 1427/udp # mloadd monitoring tool [Bob_Braden_2] [Bob_Braden_2] +informatik-lm 1428/tcp # Informatik License Manager [Harald_Schlangmann] [Harald_Schlangmann] +informatik-lm 1428/udp # Informatik License Manager [Harald_Schlangmann] [Harald_Schlangmann] +nms 1429/tcp # Hypercom NMS +nms 1429/udp # Hypercom NMS +tpdu 1430/tcp # Hypercom TPDU [Noor_Chowdhury] [Noor_Chowdhury] +tpdu 1430/udp # Hypercom TPDU [Noor_Chowdhury] [Noor_Chowdhury] +rgtp 1431/tcp # Reverse Gossip Transport [Ian_Jackson] [Ian_Jackson] +rgtp 1431/udp # Reverse Gossip Transport [Ian_Jackson] [Ian_Jackson] +blueberry-lm 1432/tcp # Blueberry Software License [Steve_Beigel] [Steve_Beigel] +blueberry-lm 1432/udp # Blueberry Software License [Steve_Beigel] [Steve_Beigel] +ms-sql-s 1433/tcp # Microsoft-SQL-Server +ms-sql-s 1433/udp # Microsoft-SQL-Server +ms-sql-m 1434/tcp # Microsoft-SQL-Monitor [Peter_Hussey] [Peter_Hussey] +ms-sql-m 1434/udp # Microsoft-SQL-Monitor [Peter_Hussey] [Peter_Hussey] +ibm-cics 1435/tcp # IBM CICS [Geoff_Meacock] [Geoff_Meacock] +ibm-cics 1435/udp # IBM CICS [Geoff_Meacock] [Geoff_Meacock] +saism 1436/tcp # Satellite-data Acquisition [Bill_Taylor] [Bill_Taylor] +# System 2 +saism 1436/udp # Satellite-data Acquisition [Bill_Taylor] [Bill_Taylor] +tabula 1437/tcp # Tabula [Marcelo_Einhorn] [Marcelo_Einhorn] +tabula 1437/udp # Tabula [Marcelo_Einhorn] [Marcelo_Einhorn] +eicon-server 1438/tcp # Eicon Security Agent/Server +eicon-server 1438/udp # Eicon Security Agent/Server +eicon-x25 1439/tcp # Eicon X25/SNA Gateway +eicon-x25 1439/udp # Eicon X25/SNA Gateway +eicon-slp 1440/tcp # Eicon Service Location [Pat_Calhoun] [Pat_Calhoun] +eicon-slp 1440/udp # Eicon Service Location [Pat_Calhoun] [Pat_Calhoun] +cadis-1 1441/tcp # Cadis License Management +cadis-1 1441/udp # Cadis License Management +cadis-2 1442/tcp # Cadis License Management [Todd_Wichers] [Todd_Wichers] +cadis-2 1442/udp # Cadis License Management [Todd_Wichers] [Todd_Wichers] +ies-lm 1443/tcp # Integrated Engineering [David_Tong] [David_Tong] +ies-lm 1443/udp # Integrated Engineering [David_Tong] [David_Tong] +marcam-lm 1444/tcp # Marcam License Management [Therese_Hunt] [Therese_Hunt] +marcam-lm 1444/udp # Marcam License Management [Therese_Hunt] [Therese_Hunt] +proxima-lm 1445/tcp # Proxima License Manager +proxima-lm 1445/udp # Proxima License Manager +ora-lm 1446/tcp # Optical Research Associates +# License Manager +ora-lm 1446/udp # Optical Research Associates +apri-lm 1447/tcp # Applied Parallel Research LM [Jim_Dillon] [Jim_Dillon] +apri-lm 1447/udp # Applied Parallel Research LM [Jim_Dillon] [Jim_Dillon] +oc-lm 1448/tcp # OpenConnect License Manager [Sue_Barnhill] [Sue_Barnhill] +oc-lm 1448/udp # OpenConnect License Manager [Sue_Barnhill] [Sue_Barnhill] +peport 1449/tcp # PEport [Qentin_Neill] [Qentin_Neill] +peport 1449/udp # PEport [Qentin_Neill] [Qentin_Neill] +dwf 1450/tcp # Tandem Distributed Workbench [Mike_Bert] [Mike_Bert] +# Facility +dwf 1450/udp # Tandem Distributed Workbench [Mike_Bert] [Mike_Bert] +infoman 1451/tcp # IBM Information Management [Karen_Burns] [Karen_Burns] +infoman 1451/udp # IBM Information Management [Karen_Burns] [Karen_Burns] +gtegsc-lm 1452/tcp # GTE Government Systems [Mike_Gregory] [Mike_Gregory] +# License Man +gtegsc-lm 1452/udp # GTE Government Systems [Mike_Gregory] [Mike_Gregory] +genie-lm 1453/tcp # Genie License Manager [Paul_Applegate] [Paul_Applegate] +genie-lm 1453/udp # Genie License Manager [Paul_Applegate] [Paul_Applegate] +# interHDL License Manager +# +interhdl-elmd 1454/tcp # IANA assigned this [Eli_Sternheim] [Eli_Sternheim] +# "interhdl_elmd". +# This entry is an alias to "interhdl-elmd". This entry is now +interhdl_elmd 1454/tcp # interHDL License Manager [Eli_Sternheim] [Eli_Sternheim] historic, not usable for use with many common service +# +interhdl-elmd 1454/udp # IANA assigned this [Eli_Sternheim] [Eli_Sternheim] +interhdl_elmd 1454/udp # interHDL License Manager [Eli_Sternheim] [Eli_Sternheim] historic, not usable for use with many common service +esl-lm 1455/tcp # ESL License Manager [Abel_Chou] [Abel_Chou] +esl-lm 1455/udp # ESL License Manager [Abel_Chou] [Abel_Chou] +dca 1456/tcp # DCA [Jeff_Garbers_2] [Jeff_Garbers_2] +dca 1456/udp # DCA [Jeff_Garbers_2] [Jeff_Garbers_2] +valisys-lm 1457/tcp # Valisys License Manager [Leslie_Lincoln] [Leslie_Lincoln] +valisys-lm 1457/udp # Valisys License Manager [Leslie_Lincoln] [Leslie_Lincoln] +nrcabq-lm 1458/tcp # Nichols Research Corp. [Howard_Cole] [Howard_Cole] +nrcabq-lm 1458/udp # Nichols Research Corp. [Howard_Cole] [Howard_Cole] +proshare1 1459/tcp # Proshare Notebook +# Application +proshare1 1459/udp # Proshare Notebook +proshare2 1460/tcp # Proshare Notebook [Robin_Kar] [Robin_Kar] +proshare2 1460/udp # Proshare Notebook [Robin_Kar] [Robin_Kar] +# IBM Wireless LAN +# +ibm-wrless-lan 1461/tcp # IANA assigned this [flanne] [flanne] +# "ibm_wrless_lan". +# This entry is an alias to "ibm-wrless-lan". This entry is now +ibm_wrless_lan 1461/tcp # IBM Wireless LAN [flanne] [flanne] historic, not usable for use with many common service +# +ibm-wrless-lan 1461/udp # IANA assigned this [flanne] [flanne] +ibm_wrless_lan 1461/udp # IBM Wireless LAN [flanne] [flanne] historic, not usable for use with many common service +world-lm 1462/tcp # World License Manager [Michael_S_Amirault] [Michael_S_Amirault] +world-lm 1462/udp # World License Manager [Michael_S_Amirault] [Michael_S_Amirault] +nucleus 1463/tcp # Nucleus [Venky_Nagar] [Venky_Nagar] +nucleus 1463/udp # Nucleus [Venky_Nagar] [Venky_Nagar] +# MSL License Manager +# +msl-lmd 1464/tcp # IANA assigned this [Matt_Timmermans] [Matt_Timmermans] +# a replacement for "msl_lmd". +# This entry is an alias to "msl-lmd". This entry is now +msl_lmd 1464/tcp # MSL License Manager [Matt_Timmermans] [Matt_Timmermans] historic, not usable for use with many common service +# +msl-lmd 1464/udp # IANA assigned this [Matt_Timmermans] [Matt_Timmermans] +msl_lmd 1464/udp # MSL License Manager [Matt_Timmermans] [Matt_Timmermans] historic, not usable for use with many common service +pipes 1465/tcp # Pipes Platform [Mark_Farlin] [Mark_Farlin] +pipes 1465/udp # Pipes Platform [Mark_Farlin] [Mark_Farlin] +oceansoft-lm 1466/tcp # Ocean Software License [Randy_Leonard] [Randy_Leonard] +oceansoft-lm 1466/udp # Ocean Software License [Randy_Leonard] [Randy_Leonard] +csdmbase 1467/tcp # CSDMBASE +csdmbase 1467/udp # CSDMBASE +csdm 1468/tcp # CSDM [Robert_Stabl] [Robert_Stabl] +csdm 1468/udp # CSDM [Robert_Stabl] [Robert_Stabl] +aal-lm 1469/tcp # Active Analysis Limited [David_Snocken] [David_Snocken] +aal-lm 1469/udp # Active Analysis Limited [David_Snocken] [David_Snocken] +uaiact 1470/tcp # Universal Analytics [Mark_R_Ludwig] [Mark_R_Ludwig] +uaiact 1470/udp # Universal Analytics [Mark_R_Ludwig] [Mark_R_Ludwig] +csdmbase 1471/tcp # csdmbase +csdmbase 1471/udp # csdmbase +csdm 1472/tcp # csdm [Robert_Stabl] [Robert_Stabl] +csdm 1472/udp # csdm [Robert_Stabl] [Robert_Stabl] +openmath 1473/tcp # OpenMath [Garth_Mayville] [Garth_Mayville] +openmath 1473/udp # OpenMath [Garth_Mayville] [Garth_Mayville] +telefinder 1474/tcp # Telefinder [Jim_White] [Jim_White] +telefinder 1474/udp # Telefinder [Jim_White] [Jim_White] +taligent-lm 1475/tcp # Taligent License Manager [Mark_Sapsford] [Mark_Sapsford] +taligent-lm 1475/udp # Taligent License Manager [Mark_Sapsford] [Mark_Sapsford] +clvm-cfg 1476/tcp # clvm-cfg [Eric_Soderberg] [Eric_Soderberg] +clvm-cfg 1476/udp # clvm-cfg [Eric_Soderberg] [Eric_Soderberg] +ms-sna-server 1477/tcp # ms-sna-server +ms-sna-server 1477/udp # ms-sna-server +ms-sna-base 1478/tcp # ms-sna-base [Gordon_Mangione] [Gordon_Mangione] +ms-sna-base 1478/udp # ms-sna-base [Gordon_Mangione] [Gordon_Mangione] +dberegister 1479/tcp # dberegister [Brian_Griswold] [Brian_Griswold] +dberegister 1479/udp # dberegister [Brian_Griswold] [Brian_Griswold] +pacerforum 1480/tcp # PacerForum [Peter_Caswell] [Peter_Caswell] +pacerforum 1480/udp # PacerForum [Peter_Caswell] [Peter_Caswell] +airs 1481/tcp # AIRS [Bruce_Wilson] [Bruce_Wilson] +airs 1481/udp # AIRS [Bruce_Wilson] [Bruce_Wilson] +miteksys-lm 1482/tcp # Miteksys License Manager [Shane_McRoberts] [Shane_McRoberts] +miteksys-lm 1482/udp # Miteksys License Manager [Shane_McRoberts] [Shane_McRoberts] +afs 1483/tcp # AFS License Manager [Michael_R_Pizolato] [Michael_R_Pizolato] +afs 1483/udp # AFS License Manager [Michael_R_Pizolato] [Michael_R_Pizolato] +confluent 1484/tcp # Confluent License Manager [James_Greenfiel] [James_Greenfiel] +confluent 1484/udp # Confluent License Manager [James_Greenfiel] [James_Greenfiel] +lansource 1485/tcp # LANSource [Christopher_Wells] [Christopher_Wells] +lansource 1485/udp # LANSource [Christopher_Wells] [Christopher_Wells] +# nms_topo_serv +# +nms-topo-serv 1486/tcp # IANA assigned this [Sylvia_Siu] [Sylvia_Siu] +# "nms_topo_serv". +# This entry is an alias to "nms-topo-serv". This entry is now +nms_topo_serv 1486/tcp # nms_topo_serv [Sylvia_Siu] [Sylvia_Siu] historic, not usable for use with many common service +# +nms-topo-serv 1486/udp # IANA assigned this [Sylvia_Siu] [Sylvia_Siu] +nms_topo_serv 1486/udp # nms_topo_serv [Sylvia_Siu] [Sylvia_Siu] historic, not usable for use with many common service +localinfosrvr 1487/tcp # LocalInfoSrvr [Brian_Matthews_2] [Brian_Matthews_2] +localinfosrvr 1487/udp # LocalInfoSrvr [Brian_Matthews_2] [Brian_Matthews_2] +docstor 1488/tcp # DocStor [Brian_Spears] [Brian_Spears] +docstor 1488/udp # DocStor [Brian_Spears] [Brian_Spears] +dmdocbroker 1489/tcp # dmdocbroker [Razmik_Abnous] [Razmik_Abnous] +dmdocbroker 1489/udp # dmdocbroker [Razmik_Abnous] [Razmik_Abnous] +insitu-conf 1490/tcp # insitu-conf [Paul_Blacknell] [Paul_Blacknell] +insitu-conf 1490/udp # insitu-conf [Paul_Blacknell] [Paul_Blacknell] +# 1491 Unassigned 2009-08-05 Use Known on +# port 1491 +stone-design-1 1492/tcp # stone-design-1 [Andrew_Stone] [Andrew_Stone] +stone-design-1 1492/udp # stone-design-1 [Andrew_Stone] [Andrew_Stone] +# netmap_lm +# +netmap-lm 1493/tcp # IANA assigned this [Phillip_Magson] [Phillip_Magson] +# "netmap_lm". +# This entry is an alias to "netmap-lm". This entry is now +netmap_lm 1493/tcp # netmap_lm [Phillip_Magson] [Phillip_Magson] historic, not usable for use with many common service +# +netmap-lm 1493/udp # IANA assigned this [Phillip_Magson] [Phillip_Magson] +netmap_lm 1493/udp # netmap_lm [Phillip_Magson] [Phillip_Magson] historic, not usable for use with many common service +ica 1494/tcp # ica [John_Richardson] [John_Richardson] +ica 1494/udp # ica [John_Richardson] [John_Richardson] +cvc 1495/tcp # cvc [Bill_Davidson] [Bill_Davidson] +cvc 1495/udp # cvc [Bill_Davidson] [Bill_Davidson] +liberty-lm 1496/tcp # liberty-lm [Jim_Rogers] [Jim_Rogers] +liberty-lm 1496/udp # liberty-lm [Jim_Rogers] [Jim_Rogers] +rfx-lm 1497/tcp # rfx-lm [Bill_Bishop] [Bill_Bishop] +rfx-lm 1497/udp # rfx-lm [Bill_Bishop] [Bill_Bishop] +sybase-sqlany 1498/tcp # Sybase SQL Any [Dave_Neudoerffer] [Dave_Neudoerffer] +sybase-sqlany 1498/udp # Sybase SQL Any [Dave_Neudoerffer] [Dave_Neudoerffer] +fhc 1499/tcp # Federico Heinz Consultora [Federico_Heinz] [Federico_Heinz] +fhc 1499/udp # Federico Heinz Consultora [Federico_Heinz] [Federico_Heinz] +vlsi-lm 1500/tcp # VLSI License Manager [Shue_Lin_Kuo] [Shue_Lin_Kuo] +vlsi-lm 1500/udp # VLSI License Manager [Shue_Lin_Kuo] [Shue_Lin_Kuo] +saiscm 1501/tcp # Satellite-data Acquisition [Bill_Taylor] [Bill_Taylor] +# System 3 +saiscm 1501/udp # Satellite-data Acquisition [Bill_Taylor] [Bill_Taylor] +shivadiscovery 1502/tcp # Shiva [Jonathan_Wenocur] [Jonathan_Wenocur] +shivadiscovery 1502/udp # Shiva [Jonathan_Wenocur] [Jonathan_Wenocur] +imtc-mcs 1503/tcp # Databeam [Jim_Johnston] [Jim_Johnston] +imtc-mcs 1503/udp # Databeam [Jim_Johnston] [Jim_Johnston] +evb-elm 1504/tcp # EVB Software Engineering [B_G_Mahesh] [B_G_Mahesh] +evb-elm 1504/udp # EVB Software Engineering [B_G_Mahesh] [B_G_Mahesh] +funkproxy 1505/tcp # Funk Software, Inc. [Robert_D_Vincent] [Robert_D_Vincent] +funkproxy 1505/udp # Funk Software, Inc. [Robert_D_Vincent] [Robert_D_Vincent] +utcd 1506/tcp # Universal Time daemon (utcd) [Walter_Poxon] [Walter_Poxon] +utcd 1506/udp # Universal Time daemon (utcd) [Walter_Poxon] [Walter_Poxon] +symplex 1507/tcp # symplex [Mike_Turley] [Mike_Turley] +symplex 1507/udp # symplex [Mike_Turley] [Mike_Turley] +diagmond 1508/tcp # diagmond [Pete_Moscatelli] [Pete_Moscatelli] +diagmond 1508/udp # diagmond [Pete_Moscatelli] [Pete_Moscatelli] +robcad-lm 1509/tcp # Robcad, Ltd. License Manager [Hindin_Joseph] [Hindin_Joseph] +robcad-lm 1509/udp # Robcad, Ltd. License Manager [Hindin_Joseph] [Hindin_Joseph] +mvx-lm 1510/tcp # Midland Valley Exploration [Neil_Salter] [Neil_Salter] +# Ltd. Lic. Man. +mvx-lm 1510/udp # Midland Valley Exploration [Neil_Salter] [Neil_Salter] +3l-l1 1511/tcp # 3l-l1 [Ian_A_Young] [Ian_A_Young] +3l-l1 1511/udp # 3l-l1 [Ian_A_Young] [Ian_A_Young] +wins 1512/tcp # Microsoft's Windows Internet [Pradeep_Bahl] [Pradeep_Bahl] +# Name Service +wins 1512/udp # Microsoft's Windows Internet [Pradeep_Bahl] [Pradeep_Bahl] +fujitsu-dtc 1513/tcp # Fujitsu Systems Business of +# America, Inc +fujitsu-dtc 1513/udp # Fujitsu Systems Business of +fujitsu-dtcns 1514/tcp # Fujitsu Systems Business of [Charles_A_Higgins] [Charles_A_Higgins] +fujitsu-dtcns 1514/udp # Fujitsu Systems Business of [Charles_A_Higgins] [Charles_A_Higgins] +ifor-protocol 1515/tcp # ifor-protocol [Dr_R_P_Alston] [Dr_R_P_Alston] +ifor-protocol 1515/udp # ifor-protocol [Dr_R_P_Alston] [Dr_R_P_Alston] +vpad 1516/tcp # Virtual Places Audio data +vpad 1516/udp # Virtual Places Audio data +vpac 1517/tcp # Virtual Places Audio control +vpac 1517/udp # Virtual Places Audio control +vpvd 1518/tcp # Virtual Places Video data +vpvd 1518/udp # Virtual Places Video data +vpvc 1519/tcp # Virtual Places Video control [Avshalom_Houri] [Avshalom_Houri] +vpvc 1519/udp # Virtual Places Video control [Avshalom_Houri] [Avshalom_Houri] +atm-zip-office 1520/tcp # atm zip office [Wilson_Kwan] [Wilson_Kwan] +atm-zip-office 1520/udp # atm zip office [Wilson_Kwan] [Wilson_Kwan] +ncube-lm 1521/tcp # nCube License Manager [Maxine_Yuen] [Maxine_Yuen] +ncube-lm 1521/udp # nCube License Manager [Maxine_Yuen] [Maxine_Yuen] +ricardo-lm 1522/tcp # Ricardo North America [Mike_Flemming] [Mike_Flemming] +ricardo-lm 1522/udp # Ricardo North America [Mike_Flemming] [Mike_Flemming] +cichild-lm 1523/tcp # cichild [Andy_Burgess] [Andy_Burgess] +cichild-lm 1523/udp # cichild [Andy_Burgess] [Andy_Burgess] +ingreslock 1524/tcp # ingres +ingreslock 1524/udp # ingres +orasrv 1525/tcp # oracle +orasrv 1525/udp # oracle +prospero-np 1525/tcp # Prospero Directory Service +# non-priv +prospero-np 1525/udp # Prospero Directory Service +pdap-np 1526/tcp # Prospero Data Access Prot [B_Clifford_Neuman] [B_Clifford_Neuman] +pdap-np 1526/udp # Prospero Data Access Prot [B_Clifford_Neuman] [B_Clifford_Neuman] +tlisrv 1527/tcp # oracle +tlisrv 1527/udp # oracle +# 1528 Unassigned 2007-10-04 +coauthor 1529/tcp # oracle +coauthor 1529/udp # oracle +rap-service 1530/tcp # rap-service +rap-service 1530/udp # rap-service +rap-listen 1531/tcp # rap-listen [Phil_Servita] [Phil_Servita] +rap-listen 1531/udp # rap-listen [Phil_Servita] [Phil_Servita] +miroconnect 1532/tcp # miroconnect [Michael_Fischer_2] [Michael_Fischer_2] +miroconnect 1532/udp # miroconnect [Michael_Fischer_2] [Michael_Fischer_2] +virtual-places 1533/tcp # Virtual Places Software [Avshalom_Houri] [Avshalom_Houri] +virtual-places 1533/udp # Virtual Places Software [Avshalom_Houri] [Avshalom_Houri] +micromuse-lm 1534/tcp # micromuse-lm [Adam_Kerrison] [Adam_Kerrison] +micromuse-lm 1534/udp # micromuse-lm [Adam_Kerrison] [Adam_Kerrison] +ampr-info 1535/tcp # ampr-info +ampr-info 1535/udp # ampr-info +ampr-inter 1536/tcp # ampr-inter [Rob_Janssen] [Rob_Janssen] +ampr-inter 1536/udp # ampr-inter [Rob_Janssen] [Rob_Janssen] +sdsc-lm 1537/tcp # isi-lm [Len_Wanger] [Len_Wanger] +sdsc-lm 1537/udp # isi-lm [Len_Wanger] [Len_Wanger] +3ds-lm 1538/tcp # 3ds-lm [Keith_Trummel] [Keith_Trummel] +3ds-lm 1538/udp # 3ds-lm [Keith_Trummel] [Keith_Trummel] +intellistor-lm 1539/tcp # Intellistor License Manager [Ron_Vaughn] [Ron_Vaughn] +intellistor-lm 1539/udp # Intellistor License Manager [Ron_Vaughn] [Ron_Vaughn] +rds 1540/tcp # rds +rds 1540/udp # rds +rds2 1541/tcp # rds2 [Sudhakar_Rajamannar] [Sudhakar_Rajamannar] +rds2 1541/udp # rds2 [Sudhakar_Rajamannar] [Sudhakar_Rajamannar] +gridgen-elmd 1542/tcp # gridgen-elmd [John_R_Chawner] [John_R_Chawner] +gridgen-elmd 1542/udp # gridgen-elmd [John_R_Chawner] [John_R_Chawner] +simba-cs 1543/tcp # simba-cs [Betsy_Alexander] [Betsy_Alexander] +simba-cs 1543/udp # simba-cs [Betsy_Alexander] [Betsy_Alexander] +aspeclmd 1544/tcp # aspeclmd [V_Balaji] [V_Balaji] +aspeclmd 1544/udp # aspeclmd [V_Balaji] [V_Balaji] +vistium-share 1545/tcp # vistium-share [Allison_Carleton] [Allison_Carleton] +vistium-share 1545/udp # vistium-share [Allison_Carleton] [Allison_Carleton] +abbaccuray 1546/tcp # abbaccuray [John_Wendt] [John_Wendt] +abbaccuray 1546/udp # abbaccuray [John_Wendt] [John_Wendt] +laplink 1547/tcp # laplink [Michael_Crawford] [Michael_Crawford] +laplink 1547/udp # laplink [Michael_Crawford] [Michael_Crawford] +axon-lm 1548/tcp # Axon License Manager [Mark_Pearce] [Mark_Pearce] +axon-lm 1548/udp # Axon License Manager [Mark_Pearce] [Mark_Pearce] +shivahose 1549/tcp # Shiva Hose +shivasound 1549/udp # Shiva Sound [Kin_Chan] [Kin_Chan] +3m-image-lm 1550/tcp # Image Storage license [J_C_Canessa] [J_C_Canessa] +# manager 3M Company +3m-image-lm 1550/udp # Image Storage license [J_C_Canessa] [J_C_Canessa] +hecmtl-db 1551/tcp # HECMTL-DB [Maxime_Belanger] [Maxime_Belanger] +hecmtl-db 1551/udp # HECMTL-DB [Maxime_Belanger] [Maxime_Belanger] +pciarray 1552/tcp # pciarray [Ron_Folk] [Ron_Folk] +pciarray 1552/udp # pciarray [Ron_Folk] [Ron_Folk] +sna-cs 1553/tcp # sna-cs [Tony_Sowter] [Tony_Sowter] +sna-cs 1553/udp # sna-cs [Tony_Sowter] [Tony_Sowter] +caci-lm 1554/tcp # CACI Products Company [Erik_Blume] [Erik_Blume] +caci-lm 1554/udp # CACI Products Company [Erik_Blume] [Erik_Blume] +livelan 1555/tcp # livelan [Kaynam_Hedayat] [Kaynam_Hedayat] +livelan 1555/udp # livelan [Kaynam_Hedayat] [Kaynam_Hedayat] +# VERITAS Private Branch +# Exchange +# +veritas-pbx 1556/tcp # IANA assigned this [Stefan_Winkel] [Stefan_Winkel] 2004-04 +# "veritas_pbx". +# VERITAS Private Branch This entry is an alias to "veritas-pbx". This entry is now +veritas_pbx 1556/tcp # Exchange [Stefan_Winkel] [Stefan_Winkel] 2004-04 historic, not usable for use with many common service +# +veritas-pbx 1556/udp # IANA assigned this [Stefan_Winkel] [Stefan_Winkel] 2004-04 +veritas_pbx 1556/udp # Exchange [Stefan_Winkel] [Stefan_Winkel] 2004-04 historic, not usable for use with many common service +arbortext-lm 1557/tcp # ArborText License Manager [David_J_Wilson] [David_J_Wilson] +arbortext-lm 1557/udp # ArborText License Manager [David_J_Wilson] [David_J_Wilson] +xingmpeg 1558/tcp # xingmpeg [Howard_Gordon] [Howard_Gordon] +xingmpeg 1558/udp # xingmpeg [Howard_Gordon] [Howard_Gordon] +web2host 1559/tcp # web2host [Stephen_Johnson] [Stephen_Johnson] +web2host 1559/udp # web2host [Stephen_Johnson] [Stephen_Johnson] +asci-val 1560/tcp # ASCI-RemoteSHADOW [Benjamin_Rosenberg] [Benjamin_Rosenberg] +asci-val 1560/udp # ASCI-RemoteSHADOW [Benjamin_Rosenberg] [Benjamin_Rosenberg] +facilityview 1561/tcp # facilityview [Ed_Green] [Ed_Green] +facilityview 1561/udp # facilityview [Ed_Green] [Ed_Green] +pconnectmgr 1562/tcp # pconnectmgr [Bob_Kaiser] [Bob_Kaiser] +pconnectmgr 1562/udp # pconnectmgr [Bob_Kaiser] [Bob_Kaiser] +cadabra-lm 1563/tcp # Cadabra License Manager [Arthur_Castonguay] [Arthur_Castonguay] +cadabra-lm 1563/udp # Cadabra License Manager [Arthur_Castonguay] [Arthur_Castonguay] +pay-per-view 1564/tcp # Pay-Per-View [Brian_Tung] [Brian_Tung] +pay-per-view 1564/udp # Pay-Per-View [Brian_Tung] [Brian_Tung] +winddlb 1565/tcp # WinDD [Kelly_Sims] [Kelly_Sims] +winddlb 1565/udp # WinDD [Kelly_Sims] [Kelly_Sims] +corelvideo 1566/tcp # CORELVIDEO [Ming_Poon] [Ming_Poon] +corelvideo 1566/udp # CORELVIDEO [Ming_Poon] [Ming_Poon] +jlicelmd 1567/tcp # jlicelmd [Christian_Schormann] [Christian_Schormann] +jlicelmd 1567/udp # jlicelmd [Christian_Schormann] [Christian_Schormann] +tsspmap 1568/tcp # tsspmap [Paul_W_Nelson] [Paul_W_Nelson] +tsspmap 1568/udp # tsspmap [Paul_W_Nelson] [Paul_W_Nelson] +ets 1569/tcp # ets [Carstein_Seeberg] [Carstein_Seeberg] +ets 1569/udp # ets [Carstein_Seeberg] [Carstein_Seeberg] +orbixd 1570/tcp # orbixd [Bridget_Walsh] [Bridget_Walsh] +orbixd 1570/udp # orbixd [Bridget_Walsh] [Bridget_Walsh] +rdb-dbs-disp 1571/tcp # Oracle Remote Data Base [mackin] [mackin] +rdb-dbs-disp 1571/udp # Oracle Remote Data Base [mackin] [mackin] +chip-lm 1572/tcp # Chipcom License Manager +chip-lm 1572/udp # Chipcom License Manager +itscomm-ns 1573/tcp # itscomm-ns [Rich_Thompson] [Rich_Thompson] +itscomm-ns 1573/udp # itscomm-ns [Rich_Thompson] [Rich_Thompson] +mvel-lm 1574/tcp # mvel-lm [David_Bisset] [David_Bisset] +mvel-lm 1574/udp # mvel-lm [David_Bisset] [David_Bisset] +oraclenames 1575/tcp # oraclenames [P_V_Shivkumar] [P_V_Shivkumar] +oraclenames 1575/udp # oraclenames [P_V_Shivkumar] [P_V_Shivkumar] +moldflow-lm 1576/tcp # Moldflow License Manager [Lech_Laskowski] [Lech_Laskowski] +moldflow-lm 1576/udp # Moldflow License Manager [Lech_Laskowski] [Lech_Laskowski] +hypercube-lm 1577/tcp # hypercube-lm [Christopher_McLendon] [Christopher_McLendon] +hypercube-lm 1577/udp # hypercube-lm [Christopher_McLendon] [Christopher_McLendon] +jacobus-lm 1578/tcp # Jacobus License Manager [Tony_Cleveland] [Tony_Cleveland] +jacobus-lm 1578/udp # Jacobus License Manager [Tony_Cleveland] [Tony_Cleveland] +ioc-sea-lm 1579/tcp # ioc-sea-lm [Paul_Nelson] [Paul_Nelson] +ioc-sea-lm 1579/udp # ioc-sea-lm [Paul_Nelson] [Paul_Nelson] +tn-tl-r1 1580/tcp # tn-tl-r1 +tn-tl-r2 1580/udp # tn-tl-r2 [Ed_Kress] [Ed_Kress] +mil-2045-47001 1581/tcp # MIL-2045-47001 [Eric_Whitehill] [Eric_Whitehill] +mil-2045-47001 1581/udp # MIL-2045-47001 [Eric_Whitehill] [Eric_Whitehill] +msims 1582/tcp # MSIMS [Glenn_Olander] [Glenn_Olander] +msims 1582/udp # MSIMS [Glenn_Olander] [Glenn_Olander] +simbaexpress 1583/tcp # simbaexpress [Betsy_Alexander] [Betsy_Alexander] +simbaexpress 1583/udp # simbaexpress [Betsy_Alexander] [Betsy_Alexander] +tn-tl-fd2 1584/tcp # tn-tl-fd2 [Ed_Kress] [Ed_Kress] +tn-tl-fd2 1584/udp # tn-tl-fd2 [Ed_Kress] [Ed_Kress] +intv 1585/tcp # intv [Dermot_Tynand] [Dermot_Tynand] +intv 1585/udp # intv [Dermot_Tynand] [Dermot_Tynand] +ibm-abtact 1586/tcp # ibm-abtact [Sandeep_K_Singhal] [Sandeep_K_Singhal] +ibm-abtact 1586/udp # ibm-abtact [Sandeep_K_Singhal] [Sandeep_K_Singhal] +# pra_elmd +# +pra-elmd 1587/tcp # IANA assigned this [Dennis_Mastin] [Dennis_Mastin] +# "pra_elmd". +# This entry is an alias to "pra-elmd". This entry is now +pra_elmd 1587/tcp # pra_elmd [Dennis_Mastin] [Dennis_Mastin] historic, not usable for use with many common service +# +pra-elmd 1587/udp # IANA assigned this [Dennis_Mastin] [Dennis_Mastin] +pra_elmd 1587/udp # pra_elmd [Dennis_Mastin] [Dennis_Mastin] historic, not usable for use with many common service +triquest-lm 1588/tcp # triquest-lm [Nand_Kumar] [Nand_Kumar] +triquest-lm 1588/udp # triquest-lm [Nand_Kumar] [Nand_Kumar] +vqp 1589/tcp # VQP [Keith_McCloghrie] [Keith_McCloghrie] +vqp 1589/udp # VQP [Keith_McCloghrie] [Keith_McCloghrie] +gemini-lm 1590/tcp # gemini-lm [Tony_Sawyer] [Tony_Sawyer] +gemini-lm 1590/udp # gemini-lm [Tony_Sawyer] [Tony_Sawyer] +ncpm-pm 1591/tcp # ncpm-pm [Ted_Power] [Ted_Power] +ncpm-pm 1591/udp # ncpm-pm [Ted_Power] [Ted_Power] +commonspace 1592/tcp # commonspace [Rob_Chandhok_2] [Rob_Chandhok_2] +commonspace 1592/udp # commonspace [Rob_Chandhok_2] [Rob_Chandhok_2] +mainsoft-lm 1593/tcp # mainsoft-lm [Anand_Gangadharan] [Anand_Gangadharan] +mainsoft-lm 1593/udp # mainsoft-lm [Anand_Gangadharan] [Anand_Gangadharan] +sixtrak 1594/tcp # sixtrak [Bob_Rennie] [Bob_Rennie] +sixtrak 1594/udp # sixtrak [Bob_Rennie] [Bob_Rennie] +radio 1595/tcp # radio +radio 1595/udp # radio +radio-sm 1596/tcp # radio-sm +radio-bc 1596/udp # radio-bc [Ken_Chapman] [Ken_Chapman] +orbplus-iiop 1597/tcp # orbplus-iiop [Robert_A_Kukura] [Robert_A_Kukura] +orbplus-iiop 1597/udp # orbplus-iiop [Robert_A_Kukura] [Robert_A_Kukura] +picknfs 1598/tcp # picknfs [John_Lombardo] [John_Lombardo] +picknfs 1598/udp # picknfs [John_Lombardo] [John_Lombardo] +simbaservices 1599/tcp # simbaservices [Betsy_Alexander] [Betsy_Alexander] +simbaservices 1599/udp # simbaservices [Betsy_Alexander] [Betsy_Alexander] +issd 1600/tcp # issd +issd 1600/udp # issd +aas 1601/tcp # aas [Bob_Beard] [Bob_Beard] +aas 1601/udp # aas [Bob_Beard] [Bob_Beard] +inspect 1602/tcp # inspect [Frank_O_Neill] [Frank_O_Neill] +inspect 1602/udp # inspect [Frank_O_Neill] [Frank_O_Neill] +picodbc 1603/tcp # pickodbc [John_Lombardo] [John_Lombardo] +picodbc 1603/udp # pickodbc [John_Lombardo] [John_Lombardo] +icabrowser 1604/tcp # icabrowser [Brad_Pedersen] [Brad_Pedersen] +icabrowser 1604/udp # icabrowser [Brad_Pedersen] [Brad_Pedersen] +slp 1605/tcp # Salutation Manager +# (Salutation Protocol) +slp 1605/udp # Salutation Manager +slm-api 1606/tcp # Salutation Manager (SLM-API) [Tohru_Mori] [Tohru_Mori] +slm-api 1606/udp # Salutation Manager (SLM-API) [Tohru_Mori] [Tohru_Mori] +stt 1607/tcp # stt [Ryan_Bolz] [Ryan_Bolz] +stt 1607/udp # stt [Ryan_Bolz] [Ryan_Bolz] +smart-lm 1608/tcp # Smart Corp. License Manager [Connie_Qiu] [Connie_Qiu] +smart-lm 1608/udp # Smart Corp. License Manager [Connie_Qiu] [Connie_Qiu] +isysg-lm 1609/tcp # isysg-lm [Adam_Curtin] [Adam_Curtin] +isysg-lm 1609/udp # isysg-lm [Adam_Curtin] [Adam_Curtin] +taurus-wh 1610/tcp # taurus-wh [Jeff_Moffatt] [Jeff_Moffatt] +taurus-wh 1610/udp # taurus-wh [Jeff_Moffatt] [Jeff_Moffatt] +ill 1611/tcp # Inter Library Loan [Niall_Murphy] [Niall_Murphy] +ill 1611/udp # Inter Library Loan [Niall_Murphy] [Niall_Murphy] +netbill-trans 1612/tcp # NetBill Transaction Server +netbill-trans 1612/udp # NetBill Transaction Server +netbill-keyrep 1613/tcp # NetBill Key Repository +netbill-keyrep 1613/udp # NetBill Key Repository +netbill-cred 1614/tcp # NetBill Credential Server +netbill-cred 1614/udp # NetBill Credential Server +netbill-auth 1615/tcp # NetBill Authorization Server +netbill-auth 1615/udp # NetBill Authorization Server +netbill-prod 1616/tcp # NetBill Product Server [Marvin_Sirbu] [Marvin_Sirbu] +netbill-prod 1616/udp # NetBill Product Server [Marvin_Sirbu] [Marvin_Sirbu] +nimrod-agent 1617/tcp # Nimrod Inter-Agent [Charles_Lynn] [Charles_Lynn] +# Communication +nimrod-agent 1617/udp # Nimrod Inter-Agent [Charles_Lynn] [Charles_Lynn] +skytelnet 1618/tcp # skytelnet [Byron_Jones] [Byron_Jones] +skytelnet 1618/udp # skytelnet [Byron_Jones] [Byron_Jones] +xs-openstorage 1619/tcp # xs-openstorage [XuiS_Software_Ltd] [XuiS_Software_Ltd] +xs-openstorage 1619/udp # xs-openstorage [XuiS_Software_Ltd] [XuiS_Software_Ltd] +faxportwinport 1620/tcp # faxportwinport [Chris_Wells] [Chris_Wells] +faxportwinport 1620/udp # faxportwinport [Chris_Wells] [Chris_Wells] +softdataphone 1621/tcp # softdataphone [Dror_Gill] [Dror_Gill] +softdataphone 1621/udp # softdataphone [Dror_Gill] [Dror_Gill] +ontime 1622/tcp # ontime [Keith_Rhodes] [Keith_Rhodes] +ontime 1622/udp # ontime [Keith_Rhodes] [Keith_Rhodes] +jaleosnd 1623/tcp # jaleosnd [Christian_Schormann] [Christian_Schormann] +jaleosnd 1623/udp # jaleosnd [Christian_Schormann] [Christian_Schormann] +udp-sr-port 1624/tcp # udp-sr-port [Herb_Jensen] [Herb_Jensen] +udp-sr-port 1624/udp # udp-sr-port [Herb_Jensen] [Herb_Jensen] +svs-omagent 1625/tcp # svs-omagent [Alberto_Berlen] [Alberto_Berlen] +svs-omagent 1625/udp # svs-omagent [Alberto_Berlen] [Alberto_Berlen] +shockwave 1626/tcp # Shockwave [Sarah_Allen] [Sarah_Allen] +shockwave 1626/udp # Shockwave [Sarah_Allen] [Sarah_Allen] +t128-gateway 1627/tcp # T.128 Gateway [Phil_May] [Phil_May] +t128-gateway 1627/udp # T.128 Gateway [Phil_May] [Phil_May] +lontalk-norm 1628/tcp # LonTalk normal +lontalk-norm 1628/udp # LonTalk normal +lontalk-urgnt 1629/tcp # LonTalk urgent [Bob_Dolin] [Bob_Dolin] 2008-04-10 +lontalk-urgnt 1629/udp # LonTalk urgent [Bob_Dolin] [Bob_Dolin] 2008-04-10 +oraclenet8cman 1630/tcp # Oracle Net8 Cman [Tong_Ming_Lee] [Tong_Ming_Lee] +oraclenet8cman 1630/udp # Oracle Net8 Cman [Tong_Ming_Lee] [Tong_Ming_Lee] +visitview 1631/tcp # Visit view [Tom_Whittaker] [Tom_Whittaker] +visitview 1631/udp # Visit view [Tom_Whittaker] [Tom_Whittaker] +pammratc 1632/tcp # PAMMRATC +pammratc 1632/udp # PAMMRATC +pammrpc 1633/tcp # PAMMRPC [John_Britton] [John_Britton] +pammrpc 1633/udp # PAMMRPC [John_Britton] [John_Britton] +loaprobe 1634/tcp # Log On America Probe [James_Tavares] [James_Tavares] +loaprobe 1634/udp # Log On America Probe [James_Tavares] [James_Tavares] +edb-server1 1635/tcp # EDB Server 1 [Carlos_Portela] [Carlos_Portela] +edb-server1 1635/udp # EDB Server 1 [Carlos_Portela] [Carlos_Portela] +isdc 1636/tcp # ISP shared public data +# control +isdc 1636/udp # ISP shared public data +islc 1637/tcp # ISP shared local data +islc 1637/udp # ISP shared local data +ismc 1638/tcp # ISP shared management [Nick_Austin] [Nick_Austin] +ismc 1638/udp # ISP shared management [Nick_Austin] [Nick_Austin] +cert-initiator 1639/tcp # cert-initiator +cert-initiator 1639/udp # cert-initiator +cert-responder 1640/tcp # cert-responder [Tom_Markson] [Tom_Markson] +cert-responder 1640/udp # cert-responder [Tom_Markson] [Tom_Markson] +invision 1641/tcp # InVision [Christopher_Davey] [Christopher_Davey] +invision 1641/udp # InVision [Christopher_Davey] [Christopher_Davey] +isis-am 1642/tcp # isis-am +isis-am 1642/udp # isis-am +isis-ambc 1643/tcp # isis-ambc [Ken_Chapman] [Ken_Chapman] +isis-ambc 1643/udp # isis-ambc [Ken_Chapman] [Ken_Chapman] +saiseh 1644/tcp # Satellite-data Acquisition [Bill_Taylor] [Bill_Taylor] +# System 4 +saiseh 1644/udp # Satellite-data Acquisition [Bill_Taylor] [Bill_Taylor] +sightline 1645/tcp # SightLine [admin] [admin] +sightline 1645/udp # SightLine [admin] [admin] +sa-msg-port 1646/tcp # sa-msg-port [Eric_Whitehill] [Eric_Whitehill] +sa-msg-port 1646/udp # sa-msg-port [Eric_Whitehill] [Eric_Whitehill] +rsap 1647/tcp # rsap [Holger_Reif] [Holger_Reif] +rsap 1647/udp # rsap [Holger_Reif] [Holger_Reif] +concurrent-lm 1648/tcp # concurrent-lm [Maggie_Brinsford] [Maggie_Brinsford] +concurrent-lm 1648/udp # concurrent-lm [Maggie_Brinsford] [Maggie_Brinsford] +kermit 1649/tcp # kermit [Frank_da_Cruz] [Frank_da_Cruz] +kermit 1649/udp # kermit [Frank_da_Cruz] [Frank_da_Cruz] +nkd 1650/tcp # nkdn +nkd 1650/udp # nkd +# shiva_confsrvr +# +shiva-confsrvr 1651/tcp # IANA assigned this [Mike_Horowitz] [Mike_Horowitz] +# "shiva_confsrvr". +# This entry is an alias to "shiva-confsrvr". This entry is now +shiva_confsrvr 1651/tcp # shiva_confsrvr [Mike_Horowitz] [Mike_Horowitz] historic, not usable for use with many common service +# +shiva-confsrvr 1651/udp # IANA assigned this [Mike_Horowitz] [Mike_Horowitz] +shiva_confsrvr 1651/udp # shiva_confsrvr [Mike_Horowitz] [Mike_Horowitz] historic, not usable for use with many common service +xnmp 1652/tcp # xnmp [Ali_Saleh] [Ali_Saleh] +xnmp 1652/udp # xnmp [Ali_Saleh] [Ali_Saleh] +alphatech-lm 1653/tcp # alphatech-lm [Joseph_Hauk] [Joseph_Hauk] +alphatech-lm 1653/udp # alphatech-lm [Joseph_Hauk] [Joseph_Hauk] +stargatealerts 1654/tcp # stargatealerts [Tim_Coppernoll] [Tim_Coppernoll] +stargatealerts 1654/udp # stargatealerts [Tim_Coppernoll] [Tim_Coppernoll] +dec-mbadmin 1655/tcp # dec-mbadmin +dec-mbadmin 1655/udp # dec-mbadmin +dec-mbadmin-h 1656/tcp # dec-mbadmin-h [Nick_Shipman] [Nick_Shipman] +dec-mbadmin-h 1656/udp # dec-mbadmin-h [Nick_Shipman] [Nick_Shipman] +fujitsu-mmpdc 1657/tcp # fujitsu-mmpdc [Katsumi_Oomuro] [Katsumi_Oomuro] +fujitsu-mmpdc 1657/udp # fujitsu-mmpdc [Katsumi_Oomuro] [Katsumi_Oomuro] +sixnetudr 1658/tcp # sixnetudr [Bob_Rennie] [Bob_Rennie] +sixnetudr 1658/udp # sixnetudr [Bob_Rennie] [Bob_Rennie] +sg-lm 1659/tcp # Silicon Grail License [William_R_Bishop] [William_R_Bishop] +sg-lm 1659/udp # Silicon Grail License [William_R_Bishop] [William_R_Bishop] +skip-mc-gikreq 1660/tcp # skip-mc-gikreq [Tom_Markson] [Tom_Markson] +skip-mc-gikreq 1660/udp # skip-mc-gikreq [Tom_Markson] [Tom_Markson] +netview-aix-1 1661/tcp # netview-aix-1 +netview-aix-1 1661/udp # netview-aix-1 +netview-aix-2 1662/tcp # netview-aix-2 +netview-aix-2 1662/udp # netview-aix-2 +netview-aix-3 1663/tcp # netview-aix-3 +netview-aix-3 1663/udp # netview-aix-3 +netview-aix-4 1664/tcp # netview-aix-4 +netview-aix-4 1664/udp # netview-aix-4 +netview-aix-5 1665/tcp # netview-aix-5 +netview-aix-5 1665/udp # netview-aix-5 +netview-aix-6 1666/tcp # netview-aix-6 +netview-aix-6 1666/udp # netview-aix-6 +netview-aix-7 1667/tcp # netview-aix-7 +netview-aix-7 1667/udp # netview-aix-7 +netview-aix-8 1668/tcp # netview-aix-8 +netview-aix-8 1668/udp # netview-aix-8 +netview-aix-9 1669/tcp # netview-aix-9 +netview-aix-9 1669/udp # netview-aix-9 +netview-aix-10 1670/tcp # netview-aix-10 +netview-aix-10 1670/udp # netview-aix-10 +netview-aix-11 1671/tcp # netview-aix-11 +netview-aix-11 1671/udp # netview-aix-11 +netview-aix-12 1672/tcp # netview-aix-12 [Martha_Crisson] [Martha_Crisson] +netview-aix-12 1672/udp # netview-aix-12 [Martha_Crisson] [Martha_Crisson] +proshare-mc-1 1673/tcp # Intel Proshare Multicast +proshare-mc-1 1673/udp # Intel Proshare Multicast +proshare-mc-2 1674/tcp # Intel Proshare Multicast [Mark_Lewis] [Mark_Lewis] +proshare-mc-2 1674/udp # Intel Proshare Multicast [Mark_Lewis] [Mark_Lewis] +pdp 1675/tcp # Pacific Data Products [Gary_Morton] [Gary_Morton] +pdp 1675/udp # Pacific Data Products [Gary_Morton] [Gary_Morton] +netcomm1 1676/tcp # netcomm1 +netcomm2 1676/udp # netcomm2 [Bulent_Kasman] [Bulent_Kasman] +groupwise 1677/tcp # groupwise [Brent_Bradshaw] [Brent_Bradshaw] +groupwise 1677/udp # groupwise [Brent_Bradshaw] [Brent_Bradshaw] +prolink 1678/tcp # prolink [Brian_Abramson] [Brian_Abramson] +prolink 1678/udp # prolink [Brian_Abramson] [Brian_Abramson] +darcorp-lm 1679/tcp # darcorp-lm [DARcorp] [DARcorp] +darcorp-lm 1679/udp # darcorp-lm [DARcorp] [DARcorp] +microcom-sbp 1680/tcp # microcom-sbp [Boris_B_Maiden] [Boris_B_Maiden] +microcom-sbp 1680/udp # microcom-sbp [Boris_B_Maiden] [Boris_B_Maiden] +sd-elmd 1681/tcp # sd-elmd [Bryan_Otey] [Bryan_Otey] +sd-elmd 1681/udp # sd-elmd [Bryan_Otey] [Bryan_Otey] +lanyon-lantern 1682/tcp # lanyon-lantern [Robin_Lewis] [Robin_Lewis] +lanyon-lantern 1682/udp # lanyon-lantern [Robin_Lewis] [Robin_Lewis] +ncpm-hip 1683/tcp # ncpm-hip [Ken_Hearn] [Ken_Hearn] +ncpm-hip 1683/udp # ncpm-hip [Ken_Hearn] [Ken_Hearn] +snaresecure 1684/tcp # SnareSecure [Marty_Batchelder] [Marty_Batchelder] +snaresecure 1684/udp # SnareSecure [Marty_Batchelder] [Marty_Batchelder] +n2nremote 1685/tcp # n2nremote [Kin_Chan_2] [Kin_Chan_2] +n2nremote 1685/udp # n2nremote [Kin_Chan_2] [Kin_Chan_2] +cvmon 1686/tcp # cvmon [Carol_Ann_Krug] [Carol_Ann_Krug] +cvmon 1686/udp # cvmon [Carol_Ann_Krug] [Carol_Ann_Krug] +nsjtp-ctrl 1687/tcp # nsjtp-ctrl +nsjtp-ctrl 1687/udp # nsjtp-ctrl +nsjtp-data 1688/tcp # nsjtp-data [Orazio_Granato] [Orazio_Granato] +nsjtp-data 1688/udp # nsjtp-data [Orazio_Granato] [Orazio_Granato] +firefox 1689/tcp # firefox [Mark_S_Edwards] [Mark_S_Edwards] +firefox 1689/udp # firefox [Mark_S_Edwards] [Mark_S_Edwards] +ng-umds 1690/tcp # ng-umds [Louis_E_Simard] [Louis_E_Simard] +ng-umds 1690/udp # ng-umds [Louis_E_Simard] [Louis_E_Simard] +empire-empuma 1691/tcp # empire-empuma [Bobby_Krupczak] [Bobby_Krupczak] +empire-empuma 1691/udp # empire-empuma [Bobby_Krupczak] [Bobby_Krupczak] +sstsys-lm 1692/tcp # sstsys-lm [Yih_Wu_Wang] [Yih_Wu_Wang] +sstsys-lm 1692/udp # sstsys-lm [Yih_Wu_Wang] [Yih_Wu_Wang] +rrirtr 1693/tcp # rrirtr +rrirtr 1693/udp # rrirtr +rrimwm 1694/tcp # rrimwm +rrimwm 1694/udp # rrimwm +rrilwm 1695/tcp # rrilwm +rrilwm 1695/udp # rrilwm +rrifmm 1696/tcp # rrifmm +rrifmm 1696/udp # rrifmm +rrisat 1697/tcp # rrisat [Allen_Briggs] [Allen_Briggs] +rrisat 1697/udp # rrisat [Allen_Briggs] [Allen_Briggs] +rsvp-encap-1 1698/tcp # RSVP-ENCAPSULATION-1 +rsvp-encap-1 1698/udp # RSVP-ENCAPSULATION-1 +rsvp-encap-2 1699/tcp # RSVP-ENCAPSULATION-2 [Bob_Braden_2] [Bob_Braden_2] +rsvp-encap-2 1699/udp # RSVP-ENCAPSULATION-2 [Bob_Braden_2] [Bob_Braden_2] +mps-raft 1700/tcp # mps-raft [Jason_Leupen] [Jason_Leupen] +mps-raft 1700/udp # mps-raft [Jason_Leupen] [Jason_Leupen] +l2f 1701/tcp # l2f +l2f 1701/udp # l2f +l2tp 1701/tcp # l2tp [Andy_Valencia] [Andy_Valencia] +l2tp 1701/udp # l2tp [Andy_Valencia] [Andy_Valencia] +deskshare 1702/tcp # deskshare [Sarah_Thompson] [Sarah_Thompson] +deskshare 1702/udp # deskshare [Sarah_Thompson] [Sarah_Thompson] +hb-engine 1703/tcp # hb-engine [Charles_C_L_Chou] [Charles_C_L_Chou] +hb-engine 1703/udp # hb-engine [Charles_C_L_Chou] [Charles_C_L_Chou] +bcs-broker 1704/tcp # bcs-broker [Andy_Warner] [Andy_Warner] +bcs-broker 1704/udp # bcs-broker [Andy_Warner] [Andy_Warner] +slingshot 1705/tcp # slingshot [Paul_Groarke] [Paul_Groarke] +slingshot 1705/udp # slingshot [Paul_Groarke] [Paul_Groarke] +jetform 1706/tcp # jetform [gdeinsta] [gdeinsta] +jetform 1706/udp # jetform [gdeinsta] [gdeinsta] +vdmplay 1707/tcp # vdmplay [David_Thielen] [David_Thielen] +vdmplay 1707/udp # vdmplay [David_Thielen] [David_Thielen] +gat-lmd 1708/tcp # gat-lmd [Igor_Zaoutine] [Igor_Zaoutine] +gat-lmd 1708/udp # gat-lmd [Igor_Zaoutine] [Igor_Zaoutine] +centra 1709/tcp # centra [Drew_Wolff] [Drew_Wolff] +centra 1709/udp # centra [Drew_Wolff] [Drew_Wolff] +impera 1710/tcp # impera [Stepehen_Campbell] [Stepehen_Campbell] +impera 1710/udp # impera [Stepehen_Campbell] [Stepehen_Campbell] +pptconference 1711/tcp # pptconference [John_Tafoya] [John_Tafoya] +pptconference 1711/udp # pptconference [John_Tafoya] [John_Tafoya] +registrar 1712/tcp # resource monitoring service [Ron_Lawson] [Ron_Lawson] +registrar 1712/udp # resource monitoring service [Ron_Lawson] [Ron_Lawson] +conferencetalk 1713/tcp # ConferenceTalk [George_Kajos] [George_Kajos] +conferencetalk 1713/udp # ConferenceTalk [George_Kajos] [George_Kajos] +sesi-lm 1714/tcp # sesi-lm +sesi-lm 1714/udp # sesi-lm +houdini-lm 1715/tcp # houdini-lm [Paul_Breslin] [Paul_Breslin] +houdini-lm 1715/udp # houdini-lm [Paul_Breslin] [Paul_Breslin] +xmsg 1716/tcp # xmsg [Mark_E_Fogle] [Mark_E_Fogle] +xmsg 1716/udp # xmsg [Mark_E_Fogle] [Mark_E_Fogle] +fj-hdnet 1717/tcp # fj-hdnet [Manabu_Makino] [Manabu_Makino] +fj-hdnet 1717/udp # fj-hdnet [Manabu_Makino] [Manabu_Makino] +h323gatedisc 1718/tcp # H.323 Multicast Gatekeeper [ITU-T] [ITU-T_TSB] 2013-01-31 +# Discover +h323gatedisc 1718/udp # H.323 Multicast Gatekeeper [ITU-T] [ITU-T_TSB] 2013-01-31 +h323gatestat 1719/tcp # H.323 Unicast Gatekeeper [ITU-T] [ITU-T_TSB] 2013-01-31 +# Signaling +h323gatestat 1719/udp # H.323 Unicast Gatekeeper [ITU-T] [ITU-T_TSB] 2013-01-31 +h323hostcall 1720/tcp # H.323 Call Control [ITU-T] [ITU-T_TSB] 2013-01-31 +h323hostcall 1720/udp # H.323 Call Control [ITU-T] [ITU-T_TSB] 2013-01-31 +caicci 1721/tcp # caicci [Sylvia_Scheuren] [Sylvia_Scheuren] +caicci 1721/udp # caicci [Sylvia_Scheuren] [Sylvia_Scheuren] +hks-lm 1722/tcp # HKS License Manager [Michael_Wood] [Michael_Wood] +hks-lm 1722/udp # HKS License Manager [Michael_Wood] [Michael_Wood] +pptp 1723/tcp # pptp [Ken_Crocker] [Ken_Crocker] +pptp 1723/udp # pptp [Ken_Crocker] [Ken_Crocker] +csbphonemaster 1724/tcp # csbphonemaster [Hans_Peter_Heffels] [Hans_Peter_Heffels] +csbphonemaster 1724/udp # csbphonemaster [Hans_Peter_Heffels] [Hans_Peter_Heffels] +iden-ralp 1725/tcp # iden-ralp [Chris_Stanaway] [Chris_Stanaway] +iden-ralp 1725/udp # iden-ralp [Chris_Stanaway] [Chris_Stanaway] +iberiagames 1726/tcp # IBERIAGAMES [Jose_Luis] [Jose_Luis] +iberiagames 1726/udp # IBERIAGAMES [Jose_Luis] [Jose_Luis] +winddx 1727/tcp # winddx [Bill_Andrews] [Bill_Andrews] +winddx 1727/udp # winddx [Bill_Andrews] [Bill_Andrews] +telindus 1728/tcp # TELINDUS [Paul_Pyck] [Paul_Pyck] +telindus 1728/udp # TELINDUS [Paul_Pyck] [Paul_Pyck] +citynl 1729/tcp # CityNL License Management [CityDisc] [CityDisc] +citynl 1729/udp # CityNL License Management [CityDisc] [CityDisc] +roketz 1730/tcp # roketz [Ahti_Heinla] [Ahti_Heinla] +roketz 1730/udp # roketz [Ahti_Heinla] [Ahti_Heinla] +msiccp 1731/tcp # MSICCP [Max_Morris] [Max_Morris] +msiccp 1731/udp # MSICCP [Max_Morris] [Max_Morris] +proxim 1732/tcp # proxim [Srinivas_N_Mogalapa] [Srinivas_N_Mogalapa] +proxim 1732/udp # proxim [Srinivas_N_Mogalapa] [Srinivas_N_Mogalapa] +siipat 1733/tcp # SIMS - SIIPAT Protocol for [Steve_Ryckman] [Steve_Ryckman] +# Alarm Transmission +siipat 1733/udp # SIMS - SIIPAT Protocol for [Steve_Ryckman] [Steve_Ryckman] +cambertx-lm 1734/tcp # Camber Corporation License [Jeannie_Burleson] [Jeannie_Burleson] +cambertx-lm 1734/udp # Camber Corporation License [Jeannie_Burleson] [Jeannie_Burleson] +privatechat 1735/tcp # PrivateChat [Louis_E_Simard] [Louis_E_Simard] +privatechat 1735/udp # PrivateChat [Louis_E_Simard] [Louis_E_Simard] +street-stream 1736/tcp # street-stream [Glenn_Levitt] [Glenn_Levitt] +street-stream 1736/udp # street-stream [Glenn_Levitt] [Glenn_Levitt] +ultimad 1737/tcp # ultimad [Michael_Lanzetta] [Michael_Lanzetta] +ultimad 1737/udp # ultimad [Michael_Lanzetta] [Michael_Lanzetta] +gamegen1 1738/tcp # GameGen1 [Glen_Pearson] [Glen_Pearson] +gamegen1 1738/udp # GameGen1 [Glen_Pearson] [Glen_Pearson] +webaccess 1739/tcp # webaccess [Christian_Saether] [Christian_Saether] +webaccess 1739/udp # webaccess [Christian_Saether] [Christian_Saether] +encore 1740/tcp # encore [Stuart_Button] [Stuart_Button] +encore 1740/udp # encore [Stuart_Button] [Stuart_Button] +cisco-net-mgmt 1741/tcp # cisco-net-mgmt [John_McCormack] [John_McCormack] +cisco-net-mgmt 1741/udp # cisco-net-mgmt [John_McCormack] [John_McCormack] +3Com-nsd 1742/tcp # 3Com-nsd [Nitza_Steinberg] [Nitza_Steinberg] +3Com-nsd 1742/udp # 3Com-nsd [Nitza_Steinberg] [Nitza_Steinberg] +cinegrfx-lm 1743/tcp # Cinema Graphics License [Rodney_Iwashina] [Rodney_Iwashina] +cinegrfx-lm 1743/udp # Cinema Graphics License [Rodney_Iwashina] [Rodney_Iwashina] +ncpm-ft 1744/tcp # ncpm-ft [Ken_Hearn] [Ken_Hearn] +ncpm-ft 1744/udp # ncpm-ft [Ken_Hearn] [Ken_Hearn] +remote-winsock 1745/tcp # remote-winsock [Avi_Nathan] [Avi_Nathan] +remote-winsock 1745/udp # remote-winsock [Avi_Nathan] [Avi_Nathan] +ftrapid-1 1746/tcp # ftrapid-1 +ftrapid-1 1746/udp # ftrapid-1 +ftrapid-2 1747/tcp # ftrapid-2 [Richard_J_Williams] [Richard_J_Williams] +ftrapid-2 1747/udp # ftrapid-2 [Richard_J_Williams] [Richard_J_Williams] +oracle-em1 1748/tcp # oracle-em1 [Bob_Purvy] [Bob_Purvy] +oracle-em1 1748/udp # oracle-em1 [Bob_Purvy] [Bob_Purvy] +aspen-services 1749/tcp # aspen-services [Mark_B_Hurst] [Mark_B_Hurst] +aspen-services 1749/udp # aspen-services [Mark_B_Hurst] [Mark_B_Hurst] +sslp 1750/tcp # Simple Socket Library's [Dr_Charles_E_Campb] [Dr_Charles_E_Campb] +# PortMaster +sslp 1750/udp # Simple Socket Library's [Dr_Charles_E_Campb] [Dr_Charles_E_Campb] +swiftnet 1751/tcp # SwiftNet [Terry_Lim] [Terry_Lim] +swiftnet 1751/udp # SwiftNet [Terry_Lim] [Terry_Lim] +lofr-lm 1752/tcp # Leap of Faith Research +lofr-lm 1752/udp # Leap of Faith Research +predatar-comms 1753/tcp # Predatar Comms Service [Silverstring_Ltd] [Ronnie_De_Giorgio] 2011-09-15 +# 1753 udp Reserved +oracle-em2 1754/tcp # oracle-em2 [Bob_Purvy] [Bob_Purvy] +oracle-em2 1754/udp # oracle-em2 [Bob_Purvy] [Bob_Purvy] +ms-streaming 1755/tcp # ms-streaming [Bret_O_Rourke] [Bret_O_Rourke] +ms-streaming 1755/udp # ms-streaming [Bret_O_Rourke] [Bret_O_Rourke] +capfast-lmd 1756/tcp # capfast-lmd [Chuck_Neal] [Chuck_Neal] +capfast-lmd 1756/udp # capfast-lmd [Chuck_Neal] [Chuck_Neal] +cnhrp 1757/tcp # cnhrp [William_Stoye] [William_Stoye] +cnhrp 1757/udp # cnhrp [William_Stoye] [William_Stoye] +tftp-mcast 1758/tcp # tftp-mcast [Tom_Emberson] [Tom_Emberson] +tftp-mcast 1758/udp # tftp-mcast [Tom_Emberson] [Tom_Emberson] +spss-lm 1759/tcp # SPSS License Manager [Tex_Hull] [Tex_Hull] +spss-lm 1759/udp # SPSS License Manager [Tex_Hull] [Tex_Hull] +www-ldap-gw 1760/tcp # www-ldap-gw [Nick_Emery] [Nick_Emery] +www-ldap-gw 1760/udp # www-ldap-gw [Nick_Emery] [Nick_Emery] +cft-0 1761/tcp # cft-0 [Martine_Marchand] [Martine_Marchand] +cft-0 1761/udp # cft-0 [Martine_Marchand] [Martine_Marchand] +cft-1 1762/tcp # cft-1 [Martine_Marchand] [Martine_Marchand] +cft-1 1762/udp # cft-1 [Martine_Marchand] [Martine_Marchand] +cft-2 1763/tcp # cft-2 [Martine_Marchand] [Martine_Marchand] +cft-2 1763/udp # cft-2 [Martine_Marchand] [Martine_Marchand] +cft-3 1764/tcp # cft-3 [Martine_Marchand] [Martine_Marchand] +cft-3 1764/udp # cft-3 [Martine_Marchand] [Martine_Marchand] +cft-4 1765/tcp # cft-4 [Martine_Marchand] [Martine_Marchand] +cft-4 1765/udp # cft-4 [Martine_Marchand] [Martine_Marchand] +cft-5 1766/tcp # cft-5 [Martine_Marchand] [Martine_Marchand] +cft-5 1766/udp # cft-5 [Martine_Marchand] [Martine_Marchand] +cft-6 1767/tcp # cft-6 [Martine_Marchand] [Martine_Marchand] +cft-6 1767/udp # cft-6 [Martine_Marchand] [Martine_Marchand] +cft-7 1768/tcp # cft-7 [Martine_Marchand] [Martine_Marchand] +cft-7 1768/udp # cft-7 [Martine_Marchand] [Martine_Marchand] +bmc-net-adm 1769/tcp # bmc-net-adm [Portnoy_Boxman] [Portnoy_Boxman] +bmc-net-adm 1769/udp # bmc-net-adm [Portnoy_Boxman] [Portnoy_Boxman] +bmc-net-svc 1770/tcp # bmc-net-svc [Portnoy_Boxman] [Portnoy_Boxman] +bmc-net-svc 1770/udp # bmc-net-svc [Portnoy_Boxman] [Portnoy_Boxman] +vaultbase 1771/tcp # vaultbase [Jose_A_Sesin] [Jose_A_Sesin] +vaultbase 1771/udp # vaultbase [Jose_A_Sesin] [Jose_A_Sesin] +essweb-gw 1772/tcp # EssWeb Gateway [Bob_Nattenberg] [Bob_Nattenberg] +essweb-gw 1772/udp # EssWeb Gateway [Bob_Nattenberg] [Bob_Nattenberg] +kmscontrol 1773/tcp # KMSControl [Roy_Chastain] [Roy_Chastain] +kmscontrol 1773/udp # KMSControl [Roy_Chastain] [Roy_Chastain] +global-dtserv 1774/tcp # global-dtserv [Nicholas_Davies] [Nicholas_Davies] +global-dtserv 1774/udp # global-dtserv [Nicholas_Davies] [Nicholas_Davies] +# 1775 Unassigned +femis 1776/tcp # Federal Emergency Management [Larry_Gerhardstein] [Larry_Gerhardstein] +# Information System +femis 1776/udp # Federal Emergency Management [Larry_Gerhardstein] [Larry_Gerhardstein] +powerguardian 1777/tcp # powerguardian [Charles_Bennett] [Charles_Bennett] 2008-08-29 +powerguardian 1777/udp # powerguardian [Charles_Bennett] [Charles_Bennett] 2008-08-29 +prodigy-intrnet 1778/tcp # prodigy-internet [Bob_Dedrick] [Bob_Dedrick] +prodigy-intrnet 1778/udp # prodigy-internet [Bob_Dedrick] [Bob_Dedrick] +pharmasoft 1779/tcp # pharmasoft [Ola_Strandberg] [Ola_Strandberg] +pharmasoft 1779/udp # pharmasoft [Ola_Strandberg] [Ola_Strandberg] +dpkeyserv 1780/tcp # dpkeyserv [Yasunari_Gon_Yamasit] [Yasunari_Gon_Yamasit] +dpkeyserv 1780/udp # dpkeyserv [Yasunari_Gon_Yamasit] [Yasunari_Gon_Yamasit] +answersoft-lm 1781/tcp # answersoft-lm [James_A_Brewster] [James_A_Brewster] +answersoft-lm 1781/udp # answersoft-lm [James_A_Brewster] [James_A_Brewster] +hp-hcip 1782/tcp # hp-hcip [Allen_Baker] [Allen_Baker] +hp-hcip 1782/udp # hp-hcip [Allen_Baker] [Allen_Baker] +# 1783 Decomissioned Port 04/14/00, [naonao] [naonao] +# ms +finle-lm 1784/tcp # Finle License Manager [Dongling_Wang] [Dongling_Wang] +finle-lm 1784/udp # Finle License Manager [Dongling_Wang] [Dongling_Wang] +windlm 1785/tcp # Wind River Systems License [Will_Dere] [Will_Dere] +windlm 1785/udp # Wind River Systems License [Will_Dere] [Will_Dere] +funk-logger 1786/tcp # funk-logger +funk-logger 1786/udp # funk-logger +funk-license 1787/tcp # funk-license [Cimarron_Boozer][Eric_Wilde] [Cimarron_Boozer][Eric_Wilde] +funk-license 1787/udp # funk-license [Cimarron_Boozer][Eric_Wilde] [Cimarron_Boozer][Eric_Wilde] +psmond 1788/tcp # psmond [Will_Golson] [Will_Golson] +psmond 1788/udp # psmond [Will_Golson] [Will_Golson] +hello 1789/tcp # hello [D_J_Bernstein_2] [D_J_Bernstein_2] +hello 1789/udp # hello [D_J_Bernstein_2] [D_J_Bernstein_2] +nmsp 1790/tcp # Narrative Media Streaming [Paul_Santinelli_Jr] [Paul_Santinelli_Jr] +nmsp 1790/udp # Narrative Media Streaming [Paul_Santinelli_Jr] [Paul_Santinelli_Jr] +ea1 1791/tcp # EA1 [Kirk_MacLean] [Kirk_MacLean] +ea1 1791/udp # EA1 [Kirk_MacLean] [Kirk_MacLean] +ibm-dt-2 1792/tcp # ibm-dt-2 [Sam_Borman] [Sam_Borman] +ibm-dt-2 1792/udp # ibm-dt-2 [Sam_Borman] [Sam_Borman] +rsc-robot 1793/tcp # rsc-robot [Andrew_Jay_Schneider] [Andrew_Jay_Schneider] +rsc-robot 1793/udp # rsc-robot [Andrew_Jay_Schneider] [Andrew_Jay_Schneider] +cera-bcm 1794/tcp # cera-bcm [Leo_Moesgaard] [Leo_Moesgaard] +cera-bcm 1794/udp # cera-bcm [Leo_Moesgaard] [Leo_Moesgaard] +dpi-proxy 1795/tcp # dpi-proxy [Charles_Gordon] [Charles_Gordon] +dpi-proxy 1795/udp # dpi-proxy [Charles_Gordon] [Charles_Gordon] +vocaltec-admin 1796/tcp # Vocaltec Server [Scott_Petrack] [Scott_Petrack] +# Administration +vocaltec-admin 1796/udp # Vocaltec Server [Scott_Petrack] [Scott_Petrack] +uma 1797/tcp # UMA [Martin_Kirk] [Martin_Kirk] +uma 1797/udp # UMA [Martin_Kirk] [Martin_Kirk] +etp 1798/tcp # Event Transfer Protocol [Mike_Wray] [Mike_Wray] +etp 1798/udp # Event Transfer Protocol [Mike_Wray] [Mike_Wray] +netrisk 1799/tcp # NETRISK [Kevin_Green] [Kevin_Green] +netrisk 1799/udp # NETRISK [Kevin_Green] [Kevin_Green] +ansys-lm 1800/tcp # ANSYS-License manager [Suzanne_Lorrin_2] [Suzanne_Lorrin_2] +ansys-lm 1800/udp # ANSYS-License manager [Suzanne_Lorrin_2] [Suzanne_Lorrin_2] +msmq 1801/tcp # Microsoft Message Que [Amnon_Horowitz] [Amnon_Horowitz] +msmq 1801/udp # Microsoft Message Que [Amnon_Horowitz] [Amnon_Horowitz] +concomp1 1802/tcp # ConComp1 [Ed_Vincent] [Ed_Vincent] +concomp1 1802/udp # ConComp1 [Ed_Vincent] [Ed_Vincent] +hp-hcip-gwy 1803/tcp # HP-HCIP-GWY [Allen_Baker] [Allen_Baker] +hp-hcip-gwy 1803/udp # HP-HCIP-GWY [Allen_Baker] [Allen_Baker] +enl 1804/tcp # ENL [Brian_Olson] [Brian_Olson] +enl 1804/udp # ENL [Brian_Olson] [Brian_Olson] +enl-name 1805/tcp # ENL-Name [Brian_Olson] [Brian_Olson] +enl-name 1805/udp # ENL-Name [Brian_Olson] [Brian_Olson] +musiconline 1806/tcp # Musiconline [Craig_Weeks] [Craig_Weeks] +musiconline 1806/udp # Musiconline [Craig_Weeks] [Craig_Weeks] +fhsp 1807/tcp # Fujitsu Hot Standby Protocol [Eiki_Iwata] [Eiki_Iwata] +fhsp 1807/udp # Fujitsu Hot Standby Protocol [Eiki_Iwata] [Eiki_Iwata] +oracle-vp2 1808/tcp # Oracle-VP2 [Craig_Fowler] [Craig_Fowler] +oracle-vp2 1808/udp # Oracle-VP2 [Craig_Fowler] [Craig_Fowler] +oracle-vp1 1809/tcp # Oracle-VP1 [Craig_Fowler] [Craig_Fowler] +oracle-vp1 1809/udp # Oracle-VP1 [Craig_Fowler] [Craig_Fowler] +jerand-lm 1810/tcp # Jerand License Manager [Robert_Monat] [Robert_Monat] +jerand-lm 1810/udp # Jerand License Manager [Robert_Monat] [Robert_Monat] +scientia-sdb 1811/tcp # Scientia-SDB [SYSTEMS_MANAGER] [SYSTEMS_MANAGER] +scientia-sdb 1811/udp # Scientia-SDB [SYSTEMS_MANAGER] [SYSTEMS_MANAGER] +radius 1812/tcp # RADIUS [RFC2865] +radius 1812/udp # RADIUS [RFC2865] +radius-acct 1813/tcp # RADIUS Accounting [RFC2866] +radius-acct 1813/udp # RADIUS Accounting [RFC2866] +tdp-suite 1814/tcp # TDP Suite [Rob_Lockhart] [Rob_Lockhart] +tdp-suite 1814/udp # TDP Suite [Rob_Lockhart] [Rob_Lockhart] +mmpft 1815/tcp # MMPFT [Ralf_Muckenhirn] [Ralf_Muckenhirn] +mmpft 1815/udp # MMPFT [Ralf_Muckenhirn] [Ralf_Muckenhirn] +harp 1816/tcp # HARP [Bjorn_Chambless] [Bjorn_Chambless] +harp 1816/udp # HARP [Bjorn_Chambless] [Bjorn_Chambless] +rkb-oscs 1817/tcp # RKB-OSCS [Robert_Kevin_Breton] [Robert_Kevin_Breton] +rkb-oscs 1817/udp # RKB-OSCS [Robert_Kevin_Breton] [Robert_Kevin_Breton] +etftp 1818/tcp # Enhanced Trivial File [William_Polites] [William_Polites] +etftp 1818/udp # Enhanced Trivial File [William_Polites] [William_Polites] +plato-lm 1819/tcp # Plato License Manager [Mark_Morris] [Mark_Morris] +plato-lm 1819/udp # Plato License Manager [Mark_Morris] [Mark_Morris] +mcagent 1820/tcp # mcagent [Ryoichi_Shinohara] [Ryoichi_Shinohara] +mcagent 1820/udp # mcagent [Ryoichi_Shinohara] [Ryoichi_Shinohara] +donnyworld 1821/tcp # donnyworld [Don_Oliver] [Don_Oliver] +donnyworld 1821/udp # donnyworld [Don_Oliver] [Don_Oliver] +es-elmd 1822/tcp # es-elmd [David_Duncan] [David_Duncan] +es-elmd 1822/udp # es-elmd [David_Duncan] [David_Duncan] +unisys-lm 1823/tcp # Unisys Natural Language [Raymond_A_Diedrichs] [Raymond_A_Diedrichs] +unisys-lm 1823/udp # Unisys Natural Language [Raymond_A_Diedrichs] [Raymond_A_Diedrichs] +metrics-pas 1824/tcp # metrics-pas [Tom_Haapanen] [Tom_Haapanen] +metrics-pas 1824/udp # metrics-pas [Tom_Haapanen] [Tom_Haapanen] +direcpc-video 1825/tcp # DirecPC Video [Chris_Kerrigan] [Chris_Kerrigan] +direcpc-video 1825/udp # DirecPC Video [Chris_Kerrigan] [Chris_Kerrigan] +ardt 1826/tcp # ARDT [Mike_Goddard] [Mike_Goddard] +ardt 1826/udp # ARDT [Mike_Goddard] [Mike_Goddard] +asi 1827/tcp # ASI [Bob_Tournoux] [Bob_Tournoux] +asi 1827/udp # ASI [Bob_Tournoux] [Bob_Tournoux] +itm-mcell-u 1828/tcp # itm-mcell-u [Portnoy_Boxman] [Portnoy_Boxman] +itm-mcell-u 1828/udp # itm-mcell-u [Portnoy_Boxman] [Portnoy_Boxman] +optika-emedia 1829/tcp # Optika eMedia [Daryle_DeBalski] [Daryle_DeBalski] +optika-emedia 1829/udp # Optika eMedia [Daryle_DeBalski] [Daryle_DeBalski] +net8-cman 1830/tcp # Oracle Net8 CMan Admin [Shuvayu_Kanjilal] [Shuvayu_Kanjilal] +net8-cman 1830/udp # Oracle Net8 CMan Admin [Shuvayu_Kanjilal] [Shuvayu_Kanjilal] +myrtle 1831/tcp # Myrtle [Ron_Achin] [Ron_Achin] +myrtle 1831/udp # Myrtle [Ron_Achin] [Ron_Achin] +tht-treasure 1832/tcp # ThoughtTreasure [Erik_Mueller] [Erik_Mueller] +tht-treasure 1832/udp # ThoughtTreasure [Erik_Mueller] [Erik_Mueller] +udpradio 1833/tcp # udpradio [Guus_Sliepen] [Guus_Sliepen] +udpradio 1833/udp # udpradio [Guus_Sliepen] [Guus_Sliepen] +ardusuni 1834/tcp # ARDUS Unicast +ardusuni 1834/udp # ARDUS Unicast +ardusmul 1835/tcp # ARDUS Multicast [Toshikatsu_Ito] [Toshikatsu_Ito] +ardusmul 1835/udp # ARDUS Multicast [Toshikatsu_Ito] [Toshikatsu_Ito] +ste-smsc 1836/tcp # ste-smsc [Tom_Snauwaert] [Tom_Snauwaert] +ste-smsc 1836/udp # ste-smsc [Tom_Snauwaert] [Tom_Snauwaert] +csoft1 1837/tcp # csoft1 [John_Coll] [John_Coll] +csoft1 1837/udp # csoft1 [John_Coll] [John_Coll] +talnet 1838/tcp # TALNET [Aaron_Lav] [Aaron_Lav] +talnet 1838/udp # TALNET [Aaron_Lav] [Aaron_Lav] +netopia-vo1 1839/tcp # netopia-vo1 +netopia-vo1 1839/udp # netopia-vo1 +netopia-vo2 1840/tcp # netopia-vo2 +netopia-vo2 1840/udp # netopia-vo2 +netopia-vo3 1841/tcp # netopia-vo3 +netopia-vo3 1841/udp # netopia-vo3 +netopia-vo4 1842/tcp # netopia-vo4 +netopia-vo4 1842/udp # netopia-vo4 +netopia-vo5 1843/tcp # netopia-vo5 [Marc_Epard] [Marc_Epard] +netopia-vo5 1843/udp # netopia-vo5 [Marc_Epard] [Marc_Epard] +direcpc-dll 1844/tcp # DirecPC-DLL [Chris_Kerrigan] [Chris_Kerrigan] +direcpc-dll 1844/udp # DirecPC-DLL [Chris_Kerrigan] [Chris_Kerrigan] +altalink 1845/tcp # altalink [Alberto_Raydan] [Alberto_Raydan] +altalink 1845/udp # altalink [Alberto_Raydan] [Alberto_Raydan] +tunstall-pnc 1846/tcp # Tunstall PNC [Robert_M_Moore] [Robert_M_Moore] +tunstall-pnc 1846/udp # Tunstall PNC [Robert_M_Moore] [Robert_M_Moore] +slp-notify 1847/tcp # SLP Notification [RFC3082] +slp-notify 1847/udp # SLP Notification [RFC3082] +fjdocdist 1848/tcp # fjdocdist [Yuichi_Ohiwa] [Yuichi_Ohiwa] +fjdocdist 1848/udp # fjdocdist [Yuichi_Ohiwa] [Yuichi_Ohiwa] +alpha-sms 1849/tcp # ALPHA-SMS [Benjamin_Grimm] [Benjamin_Grimm] +alpha-sms 1849/udp # ALPHA-SMS [Benjamin_Grimm] [Benjamin_Grimm] +gsi 1850/tcp # GSI [William_Mullaney] [William_Mullaney] +gsi 1850/udp # GSI [William_Mullaney] [William_Mullaney] +ctcd 1851/tcp # ctcd [John_Ryan] [John_Ryan] +ctcd 1851/udp # ctcd [John_Ryan] [John_Ryan] +virtual-time 1852/tcp # Virtual Time [Angie_S_Morner] [Angie_S_Morner] +virtual-time 1852/udp # Virtual Time [Angie_S_Morner] [Angie_S_Morner] +vids-avtp 1853/tcp # VIDS-AVTP [Sascha_Kuemmel] [Sascha_Kuemmel] +vids-avtp 1853/udp # VIDS-AVTP [Sascha_Kuemmel] [Sascha_Kuemmel] +buddy-draw 1854/tcp # Buddy Draw [Marvin_Shin] [Marvin_Shin] +buddy-draw 1854/udp # Buddy Draw [Marvin_Shin] [Marvin_Shin] +fiorano-rtrsvc 1855/tcp # Fiorano RtrSvc +fiorano-rtrsvc 1855/udp # Fiorano RtrSvc +fiorano-msgsvc 1856/tcp # Fiorano MsgSvc [Albert_Holt_2] [Albert_Holt_2] +fiorano-msgsvc 1856/udp # Fiorano MsgSvc [Albert_Holt_2] [Albert_Holt_2] +datacaptor 1857/tcp # DataCaptor [Steven_M_Forrester] [Steven_M_Forrester] +datacaptor 1857/udp # DataCaptor [Steven_M_Forrester] [Steven_M_Forrester] +privateark 1858/tcp # PrivateArk [Ronen_Zoran] [Ronen_Zoran] +privateark 1858/udp # PrivateArk [Ronen_Zoran] [Ronen_Zoran] +gammafetchsvr 1859/tcp # Gamma Fetcher Server [Cnaan_Aviv] [Cnaan_Aviv] +gammafetchsvr 1859/udp # Gamma Fetcher Server [Cnaan_Aviv] [Cnaan_Aviv] +sunscalar-svc 1860/tcp # SunSCALAR Services [Sanjay_Radia] [Sanjay_Radia] +sunscalar-svc 1860/udp # SunSCALAR Services [Sanjay_Radia] [Sanjay_Radia] +lecroy-vicp 1861/tcp # LeCroy VICP [Anthony_Cake] [Anthony_Cake] +lecroy-vicp 1861/udp # LeCroy VICP [Anthony_Cake] [Anthony_Cake] +mysql-cm-agent 1862/tcp # MySQL Cluster Manager Agent [Andrew_Morgan] [Andrew_Morgan] 2009-12-08 +mysql-cm-agent 1862/udp # MySQL Cluster Manager Agent [Andrew_Morgan] [Andrew_Morgan] 2009-12-08 +msnp 1863/tcp # MSNP [William_Lai] [William_Lai] +msnp 1863/udp # MSNP [William_Lai] [William_Lai] +paradym-31port 1864/tcp # Paradym 31 Port [David_Wooden] [David_Wooden] +paradym-31port 1864/udp # Paradym 31 Port [David_Wooden] [David_Wooden] +entp 1865/tcp # ENTP [Seiko_Epson] [Seiko_Epson] +entp 1865/udp # ENTP [Seiko_Epson] [Seiko_Epson] +swrmi 1866/tcp # swrmi [Jun_Yoshii] [Jun_Yoshii] +swrmi 1866/udp # swrmi [Jun_Yoshii] [Jun_Yoshii] +udrive 1867/tcp # UDRIVE [Robby_Walker] [Robby_Walker] +udrive 1867/udp # UDRIVE [Robby_Walker] [Robby_Walker] +viziblebrowser 1868/tcp # VizibleBrowser [Jimmy_Talbot] [Jimmy_Talbot] +viziblebrowser 1868/udp # VizibleBrowser [Jimmy_Talbot] [Jimmy_Talbot] +transact 1869/tcp # TransAct [TransAct_Futures_Dev] [TransAct_Futures_Dev] +transact 1869/udp # TransAct [TransAct_Futures_Dev] [TransAct_Futures_Dev] +sunscalar-dns 1870/tcp # SunSCALAR DNS Service [Sanjay_Radia] [Sanjay_Radia] +sunscalar-dns 1870/udp # SunSCALAR DNS Service [Sanjay_Radia] [Sanjay_Radia] +canocentral0 1871/tcp # Cano Central 0 +canocentral0 1871/udp # Cano Central 0 +canocentral1 1872/tcp # Cano Central 1 [Mark_McNamara] [Mark_McNamara] +canocentral1 1872/udp # Cano Central 1 [Mark_McNamara] [Mark_McNamara] +fjmpjps 1873/tcp # Fjmpjps +fjmpjps 1873/udp # Fjmpjps +fjswapsnp 1874/tcp # Fjswapsnp [Y_Ohiwa] [Y_Ohiwa] +fjswapsnp 1874/udp # Fjswapsnp [Y_Ohiwa] [Y_Ohiwa] +westell-stats 1875/tcp # westell stats [Thomas_McCabe] [Thomas_McCabe] +westell-stats 1875/udp # westell stats [Thomas_McCabe] [Thomas_McCabe] +ewcappsrv 1876/tcp # ewcappsrv [Howard_Yin] [Howard_Yin] +ewcappsrv 1876/udp # ewcappsrv [Howard_Yin] [Howard_Yin] +hp-webqosdb 1877/tcp # hp-webqosdb [Kim_Scott] [Kim_Scott] +hp-webqosdb 1877/udp # hp-webqosdb [Kim_Scott] [Kim_Scott] +drmsmc 1878/tcp # drmsmc [Katsuhiko_Abe] [Katsuhiko_Abe] +drmsmc 1878/udp # drmsmc [Katsuhiko_Abe] [Katsuhiko_Abe] +nettgain-nms 1879/tcp # NettGain NMS [Dr_Yair_Shapira] [Dr_Yair_Shapira] +nettgain-nms 1879/udp # NettGain NMS [Dr_Yair_Shapira] [Dr_Yair_Shapira] +vsat-control 1880/tcp # Gilat VSAT Control [Yariv_Kaplan] [Yariv_Kaplan] +vsat-control 1880/udp # Gilat VSAT Control [Yariv_Kaplan] [Yariv_Kaplan] +ibm-mqseries2 1881/tcp # IBM WebSphere MQ Everyplace [Jane_Porter] [Jane_Porter] +ibm-mqseries2 1881/udp # IBM WebSphere MQ Everyplace [Jane_Porter] [Jane_Porter] +ecsqdmn 1882/tcp # CA eTrust Common Services [Paul_Wissmiller] [Paul_Wissmiller] +ecsqdmn 1882/udp # CA eTrust Common Services [Paul_Wissmiller] [Paul_Wissmiller] +ibm-mqisdp 1883/tcp # IBM MQSeries SCADA [Andy_Stanford_Clark] [Andy_Stanford_Clark] +ibm-mqisdp 1883/udp # IBM MQSeries SCADA [Andy_Stanford_Clark] [Andy_Stanford_Clark] +idmaps 1884/tcp # Internet Distance Map Svc [Sugih_Jamim] [Sugih_Jamim] +idmaps 1884/udp # Internet Distance Map Svc [Sugih_Jamim] [Sugih_Jamim] +vrtstrapserver 1885/tcp # Veritas Trap Server [Russell_Thrasher] [Russell_Thrasher] +vrtstrapserver 1885/udp # Veritas Trap Server [Russell_Thrasher] [Russell_Thrasher] +leoip 1886/tcp # Leonardo over IP [Dietmar_Finkler] [Dietmar_Finkler] +leoip 1886/udp # Leonardo over IP [Dietmar_Finkler] [Dietmar_Finkler] +filex-lport 1887/tcp # FileX Listening Port [Megan_Woods] [Megan_Woods] +filex-lport 1887/udp # FileX Listening Port [Megan_Woods] [Megan_Woods] +ncconfig 1888/tcp # NC Config Port [Simon_Parker] [Simon_Parker] +ncconfig 1888/udp # NC Config Port [Simon_Parker] [Simon_Parker] +unify-adapter 1889/tcp # Unify Web Adapter Service [Daegis_Inc] [Chris_Anderson] 2012-07-31 +unify-adapter 1889/udp # Unify Web Adapter Service [Daegis_Inc] [Chris_Anderson] 2012-07-31 +wilkenlistener 1890/tcp # wilkenListener [Wilken_GmbH] [Wilken_GmbH] +wilkenlistener 1890/udp # wilkenListener [Wilken_GmbH] [Wilken_GmbH] +childkey-notif 1891/tcp # ChildKey Notification +childkey-notif 1891/udp # ChildKey Notification +childkey-ctrl 1892/tcp # ChildKey Control [Ivan_Berardinelli] [Ivan_Berardinelli] +childkey-ctrl 1892/udp # ChildKey Control [Ivan_Berardinelli] [Ivan_Berardinelli] +elad 1893/tcp # ELAD Protocol [Franco_Milan] [Franco_Milan] +elad 1893/udp # ELAD Protocol [Franco_Milan] [Franco_Milan] +o2server-port 1894/tcp # O2Server Port [Tim_Howard] [Tim_Howard] +o2server-port 1894/udp # O2Server Port [Tim_Howard] [Tim_Howard] +# 1895 tcp unassigned Microsoft (unoffically) using 1895 +# 1895 udp unassigned Microsoft (unoffically) using 1895 +b-novative-ls 1896/tcp # b-novative license server [Matthias_Riese] [Matthias_Riese] +b-novative-ls 1896/udp # b-novative license server [Matthias_Riese] [Matthias_Riese] +metaagent 1897/tcp # MetaAgent [Marie_France_Dubreui] [Marie_France_Dubreui] +metaagent 1897/udp # MetaAgent [Marie_France_Dubreui] [Marie_France_Dubreui] +cymtec-port 1898/tcp # Cymtec secure management [Michael_Mester] [Michael_Mester] +cymtec-port 1898/udp # Cymtec secure management [Michael_Mester] [Michael_Mester] +mc2studios 1899/tcp # MC2Studios [Michael_Coon] [Michael_Coon] +mc2studios 1899/udp # MC2Studios [Michael_Coon] [Michael_Coon] +ssdp 1900/tcp # SSDP [UPnP_Forum] [UPnP_Forum] +ssdp 1900/udp # SSDP [UPnP_Forum] [UPnP_Forum] +fjicl-tep-a 1901/tcp # Fujitsu ICL Terminal [Bob_Lyon] [Bob_Lyon] +# Emulator Program A +fjicl-tep-a 1901/udp # Fujitsu ICL Terminal [Bob_Lyon] [Bob_Lyon] +fjicl-tep-b 1902/tcp # Fujitsu ICL Terminal [Bob_Lyon] [Bob_Lyon] +# Emulator Program B +fjicl-tep-b 1902/udp # Fujitsu ICL Terminal [Bob_Lyon] [Bob_Lyon] +linkname 1903/tcp # Local Link Name Resolution [Dan_Harrington] [Dan_Harrington] +linkname 1903/udp # Local Link Name Resolution [Dan_Harrington] [Dan_Harrington] +fjicl-tep-c 1904/tcp # Fujitsu ICL Terminal [Bob_Lyon] [Bob_Lyon] +# Emulator Program C +fjicl-tep-c 1904/udp # Fujitsu ICL Terminal [Bob_Lyon] [Bob_Lyon] +sugp 1905/tcp # Secure UP.Link Gateway [Peter_King] [Peter_King] +sugp 1905/udp # Secure UP.Link Gateway [Peter_King] [Peter_King] +tpmd 1906/tcp # TPortMapperReq [Sheila_Devins] [Sheila_Devins] +tpmd 1906/udp # TPortMapperReq [Sheila_Devins] [Sheila_Devins] +intrastar 1907/tcp # IntraSTAR [Peter_Schoenberger] [Peter_Schoenberger] +intrastar 1907/udp # IntraSTAR [Peter_Schoenberger] [Peter_Schoenberger] +dawn 1908/tcp # Dawn [Michael_Crawford_2] [Michael_Crawford_2] +dawn 1908/udp # Dawn [Michael_Crawford_2] [Michael_Crawford_2] +global-wlink 1909/tcp # Global World Link [Nicholas_Davies] [Nicholas_Davies] +global-wlink 1909/udp # Global World Link [Nicholas_Davies] [Nicholas_Davies] +ultrabac 1910/tcp # UltraBac Software [Paul_Bunn] [Paul_Bunn] +# communications port +ultrabac 1910/udp # UltraBac Software [Paul_Bunn] [Paul_Bunn] +# Starlight Networks +mtp 1911/tcp # Multimedia Transport [Bruce_Lieberman] [Bruce_Lieberman] +mtp 1911/udp # Multimedia Transport [Bruce_Lieberman] [Bruce_Lieberman] +rhp-iibp 1912/tcp # rhp-iibp [George_Nachman][Tom_Lake] [George_Nachman][Tom_Lake] +rhp-iibp 1912/udp # rhp-iibp [George_Nachman][Tom_Lake] [George_Nachman][Tom_Lake] +armadp 1913/tcp # armadp [Kevin_Welton] [Kevin_Welton] +armadp 1913/udp # armadp [Kevin_Welton] [Kevin_Welton] +elm-momentum 1914/tcp # Elm-Momentum [Willie_Wu] [Willie_Wu] +elm-momentum 1914/udp # Elm-Momentum [Willie_Wu] [Willie_Wu] +facelink 1915/tcp # FACELINK [J_H_Hermans] [J_H_Hermans] +facelink 1915/udp # FACELINK [J_H_Hermans] [J_H_Hermans] +persona 1916/tcp # Persoft Persona [Tom_Spidell] [Tom_Spidell] +persona 1916/udp # Persoft Persona [Tom_Spidell] [Tom_Spidell] +noagent 1917/tcp # nOAgent [Martin_Bestmann] [Martin_Bestmann] +noagent 1917/udp # nOAgent [Martin_Bestmann] [Martin_Bestmann] +can-nds 1918/tcp # IBM Tivole Directory Service +# - NDS +can-nds 1918/udp # IBM Tivole Directory Service +can-dch 1919/tcp # IBM Tivoli Directory Service +# - DCH +can-dch 1919/udp # IBM Tivoli Directory Service +can-ferret 1920/tcp # IBM Tivoli Directory Service [Nic_Catrambone] [Nic_Catrambone] +# - FERRET +can-ferret 1920/udp # IBM Tivoli Directory Service [Nic_Catrambone] [Nic_Catrambone] +noadmin 1921/tcp # NoAdmin [Martin_Bestmann] [Martin_Bestmann] +noadmin 1921/udp # NoAdmin [Martin_Bestmann] [Martin_Bestmann] +tapestry 1922/tcp # Tapestry [Ken_Oliver] [Ken_Oliver] +tapestry 1922/udp # Tapestry [Ken_Oliver] [Ken_Oliver] +spice 1923/tcp # SPICE [Nicholas_Chua] [Nicholas_Chua] +spice 1923/udp # SPICE [Nicholas_Chua] [Nicholas_Chua] +xiip 1924/tcp # XIIP [Alain_Robert_2] [Alain_Robert_2] +xiip 1924/udp # XIIP [Alain_Robert_2] [Alain_Robert_2] +discovery-port 1925/tcp # Surrogate Discovery Port [Keith_Thompson] [Keith_Thompson] +discovery-port 1925/udp # Surrogate Discovery Port [Keith_Thompson] [Keith_Thompson] +egs 1926/tcp # Evolution Game Server [Simon_Butcher] [Simon_Butcher] +egs 1926/udp # Evolution Game Server [Simon_Butcher] [Simon_Butcher] +videte-cipc 1927/tcp # Videte CIPC Port [Videte_IT] [Videte_IT] +videte-cipc 1927/udp # Videte CIPC Port [Videte_IT] [Videte_IT] +emsd-port 1928/tcp # Expnd Maui Srvr Dscovr [Edo_Yahav] [Edo_Yahav] +emsd-port 1928/udp # Expnd Maui Srvr Dscovr [Edo_Yahav] [Edo_Yahav] +bandwiz-system 1929/tcp # Bandwiz System - Server [Joseph_Weihs] [Joseph_Weihs] +bandwiz-system 1929/udp # Bandwiz System - Server [Joseph_Weihs] [Joseph_Weihs] +driveappserver 1930/tcp # Drive AppServer [Andrew_Johnson] [Andrew_Johnson] +driveappserver 1930/udp # Drive AppServer [Andrew_Johnson] [Andrew_Johnson] +amdsched 1931/tcp # AMD SCHED [Michael_Walsh] [Michael_Walsh] +amdsched 1931/udp # AMD SCHED [Michael_Walsh] [Michael_Walsh] +ctt-broker 1932/tcp # CTT Broker [Jens_Edlund] [Jens_Edlund] +ctt-broker 1932/udp # CTT Broker [Jens_Edlund] [Jens_Edlund] +xmapi 1933/tcp # IBM LM MT Agent +xmapi 1933/udp # IBM LM MT Agent +xaapi 1934/tcp # IBM LM Appl Agent [Helga_Wolin] [Helga_Wolin] +xaapi 1934/udp # IBM LM Appl Agent [Helga_Wolin] [Helga_Wolin] +macromedia-fcs 1935/tcp # Macromedia Flash [Pritham_Shetty] [Pritham_Shetty] +# Communications Server MX +macromedia-fcs 1935/udp # Macromedia Flash [Pritham_Shetty] [Pritham_Shetty] +# Communications server MX +jetcmeserver 1936/tcp # JetCmeServer Server Port +jetcmeserver 1936/udp # JetCmeServer Server Port +jwserver 1937/tcp # JetVWay Server Port +jwserver 1937/udp # JetVWay Server Port +jwclient 1938/tcp # JetVWay Client Port +jwclient 1938/udp # JetVWay Client Port +jvserver 1939/tcp # JetVision Server Port +jvserver 1939/udp # JetVision Server Port +jvclient 1940/tcp # JetVision Client Port [Stephen_Tsun] [Stephen_Tsun] +jvclient 1940/udp # JetVision Client Port [Stephen_Tsun] [Stephen_Tsun] +dic-aida 1941/tcp # DIC-Aida [Frans_S_C_Witte] [Frans_S_C_Witte] +dic-aida 1941/udp # DIC-Aida [Frans_S_C_Witte] [Frans_S_C_Witte] +res 1942/tcp # Real Enterprise Service [Bob_Janssen] [Bob_Janssen] +res 1942/udp # Real Enterprise Service [Bob_Janssen] [Bob_Janssen] +beeyond-media 1943/tcp # Beeyond Media [Bob_Deblier] [Bob_Deblier] +beeyond-media 1943/udp # Beeyond Media [Bob_Deblier] [Bob_Deblier] +close-combat 1944/tcp # close-combat [David_Hua] [David_Hua] +close-combat 1944/udp # close-combat [David_Hua] [David_Hua] +dialogic-elmd 1945/tcp # dialogic-elmd [Roger_Kay] [Roger_Kay] +dialogic-elmd 1945/udp # dialogic-elmd [Roger_Kay] [Roger_Kay] +tekpls 1946/tcp # tekpls [Brian_Abramson_2] [Brian_Abramson_2] +tekpls 1946/udp # tekpls [Brian_Abramson_2] [Brian_Abramson_2] +sentinelsrm 1947/tcp # SentinelSRM [Michael_Zunke_2] [Michael_Zunke_2] 2010-07-23 +sentinelsrm 1947/udp # SentinelSRM [Michael_Zunke_2] [Michael_Zunke_2] 2010-07-23 +eye2eye 1948/tcp # eye2eye [Trevor_Bell] [Trevor_Bell] +eye2eye 1948/udp # eye2eye [Trevor_Bell] [Trevor_Bell] +ismaeasdaqlive 1949/tcp # ISMA Easdaq Live [Stephen_Dunne] [Stephen_Dunne] +ismaeasdaqlive 1949/udp # ISMA Easdaq Live [Stephen_Dunne] [Stephen_Dunne] +ismaeasdaqtest 1950/tcp # ISMA Easdaq Test [Stephen_Dunne] [Stephen_Dunne] +ismaeasdaqtest 1950/udp # ISMA Easdaq Test [Stephen_Dunne] [Stephen_Dunne] +bcs-lmserver 1951/tcp # bcs-lmserver [Andy_Warner] [Andy_Warner] +bcs-lmserver 1951/udp # bcs-lmserver [Andy_Warner] [Andy_Warner] +mpnjsc 1952/tcp # mpnjsc [Takenori_Miyahara] [Takenori_Miyahara] +mpnjsc 1952/udp # mpnjsc [Takenori_Miyahara] [Takenori_Miyahara] +rapidbase 1953/tcp # Rapid Base [Antoni_Wolski] [Antoni_Wolski] +rapidbase 1953/udp # Rapid Base [Antoni_Wolski] [Antoni_Wolski] +abr-api 1954/tcp # ABR-API (diskbridge) +abr-api 1954/udp # ABR-API (diskbridge) +abr-secure 1955/tcp # ABR-Secure Data (diskbridge) [Graham_Wooden] [Graham_Wooden] +abr-secure 1955/udp # ABR-Secure Data (diskbridge) [Graham_Wooden] [Graham_Wooden] +vrtl-vmf-ds 1956/tcp # Vertel VMF DS [Alan_Akahoshi] [Alan_Akahoshi] +vrtl-vmf-ds 1956/udp # Vertel VMF DS [Alan_Akahoshi] [Alan_Akahoshi] +unix-status 1957/tcp # unix-status [Thomas_Erskine] [Thomas_Erskine] +unix-status 1957/udp # unix-status [Thomas_Erskine] [Thomas_Erskine] +dxadmind 1958/tcp # CA Administration Daemon [John_Birrell] [John_Birrell] +dxadmind 1958/udp # CA Administration Daemon [John_Birrell] [John_Birrell] +simp-all 1959/tcp # SIMP Channel [Tim_Hunnewell] [Tim_Hunnewell] +simp-all 1959/udp # SIMP Channel [Tim_Hunnewell] [Tim_Hunnewell] +nasmanager 1960/tcp # Merit DAC NASmanager [Richard_S_Conto] [Richard_S_Conto] +nasmanager 1960/udp # Merit DAC NASmanager [Richard_S_Conto] [Richard_S_Conto] +bts-appserver 1961/tcp # BTS APPSERVER [Carl_Obsorn] [Carl_Obsorn] +bts-appserver 1961/udp # BTS APPSERVER [Carl_Obsorn] [Carl_Obsorn] +biap-mp 1962/tcp # BIAP-MP [Louis_Slothouber] [Louis_Slothouber] +biap-mp 1962/udp # BIAP-MP [Louis_Slothouber] [Louis_Slothouber] +webmachine 1963/tcp # WebMachine [Tim_Jowers] [Tim_Jowers] +webmachine 1963/udp # WebMachine [Tim_Jowers] [Tim_Jowers] +solid-e-engine 1964/tcp # SOLID E ENGINE [Ari_Valtanen] [Ari_Valtanen] +solid-e-engine 1964/udp # SOLID E ENGINE [Ari_Valtanen] [Ari_Valtanen] +tivoli-npm 1965/tcp # Tivoli NPM [Ivana_Cuozzo] [Ivana_Cuozzo] +tivoli-npm 1965/udp # Tivoli NPM [Ivana_Cuozzo] [Ivana_Cuozzo] +slush 1966/tcp # Slush [Damien_Miller] [Damien_Miller] +slush 1966/udp # Slush [Damien_Miller] [Damien_Miller] +sns-quote 1967/tcp # SNS Quote [Robert_Ellman] [Robert_Ellman] +sns-quote 1967/udp # SNS Quote [Robert_Ellman] [Robert_Ellman] +lipsinc 1968/tcp # LIPSinc +lipsinc 1968/udp # LIPSinc +lipsinc1 1969/tcp # LIPSinc 1 [Robert_Armington] [Robert_Armington] +lipsinc1 1969/udp # LIPSinc 1 [Robert_Armington] [Robert_Armington] +netop-rc 1970/tcp # NetOp Remote Control +netop-rc 1970/udp # NetOp Remote Control +netop-school 1971/tcp # NetOp School [NetOp_Technical_Supp] [NetOp_Technical_Supp] +netop-school 1971/udp # NetOp School [NetOp_Technical_Supp] [NetOp_Technical_Supp] +intersys-cache 1972/tcp # Cache [Mark_Hanson] [Mark_Hanson] +intersys-cache 1972/udp # Cache [Mark_Hanson] [Mark_Hanson] +dlsrap 1973/tcp # Data Link Switching Remote [Steve_T_Chiang] [Steve_T_Chiang] +# Access Protocol +dlsrap 1973/udp # Data Link Switching Remote [Steve_T_Chiang] [Steve_T_Chiang] +drp 1974/tcp # DRP [Richard_Alan_Johnson] [Richard_Alan_Johnson] +drp 1974/udp # DRP [Richard_Alan_Johnson] [Richard_Alan_Johnson] +tcoflashagent 1975/tcp # TCO Flash Agent +tcoflashagent 1975/udp # TCO Flash Agent +tcoregagent 1976/tcp # TCO Reg Agent +tcoregagent 1976/udp # TCO Reg Agent +tcoaddressbook 1977/tcp # TCO Address Book [Allan_Panitch] [Allan_Panitch] +tcoaddressbook 1977/udp # TCO Address Book [Allan_Panitch] [Allan_Panitch] +unisql 1978/tcp # UniSQL +unisql 1978/udp # UniSQL +unisql-java 1979/tcp # UniSQL Java [Keith_Yarbrough] [Keith_Yarbrough] +unisql-java 1979/udp # UniSQL Java [Keith_Yarbrough] [Keith_Yarbrough] +pearldoc-xact 1980/tcp # PearlDoc XACT [Chris_Vertonghen] [Chris_Vertonghen] +pearldoc-xact 1980/udp # PearlDoc XACT [Chris_Vertonghen] [Chris_Vertonghen] +p2pq 1981/tcp # p2pQ [Warren_Alexander] [Warren_Alexander] +p2pq 1981/udp # p2pQ [Warren_Alexander] [Warren_Alexander] +estamp 1982/tcp # Evidentiary Timestamp [Todd_Glassey] [Todd_Glassey] +estamp 1982/udp # Evidentiary Timestamp [Todd_Glassey] [Todd_Glassey] +lhtp 1983/tcp # Loophole Test Protocol [Kade_Hansson] [Kade_Hansson] +lhtp 1983/udp # Loophole Test Protocol [Kade_Hansson] [Kade_Hansson] +bb 1984/tcp # BB [Sean_MacGuire] [Sean_MacGuire] +bb 1984/udp # BB [Sean_MacGuire] [Sean_MacGuire] +hsrp 1985/tcp # Hot Standby Router Protocol [RFC2281] +hsrp 1985/udp # Hot Standby Router Protocol [RFC2281] +licensedaemon 1986/tcp # cisco license management +licensedaemon 1986/udp # cisco license management +tr-rsrb-p1 1987/tcp # cisco RSRB Priority 1 port +tr-rsrb-p1 1987/udp # cisco RSRB Priority 1 port +tr-rsrb-p2 1988/tcp # cisco RSRB Priority 2 port +tr-rsrb-p2 1988/udp # cisco RSRB Priority 2 port +tr-rsrb-p3 1989/tcp # cisco RSRB Priority 3 port +tr-rsrb-p3 1989/udp # cisco RSRB Priority 3 port +mshnet 1989/tcp # MHSnet system [Bob_Kummerfeld] [Bob_Kummerfeld] This entry records an unassigned but widespread use +mshnet 1989/udp # MHSnet system [Bob_Kummerfeld] [Bob_Kummerfeld] This entry records an unassigned but widespread use +stun-p1 1990/tcp # cisco STUN Priority 1 port +stun-p1 1990/udp # cisco STUN Priority 1 port +stun-p2 1991/tcp # cisco STUN Priority 2 port +stun-p2 1991/udp # cisco STUN Priority 2 port +stun-p3 1992/tcp # cisco STUN Priority 3 port +stun-p3 1992/udp # cisco STUN Priority 3 port +ipsendmsg 1992/tcp # IPsendmsg [Bob_Kummerfeld] [Bob_Kummerfeld] This entry records an unassigned but widespread use +ipsendmsg 1992/udp # IPsendmsg [Bob_Kummerfeld] [Bob_Kummerfeld] This entry records an unassigned but widespread use +snmp-tcp-port 1993/tcp # cisco SNMP TCP port +snmp-tcp-port 1993/udp # cisco SNMP TCP port +stun-port 1994/tcp # cisco serial tunnel port +stun-port 1994/udp # cisco serial tunnel port +perf-port 1995/tcp # cisco perf port +perf-port 1995/udp # cisco perf port +tr-rsrb-port 1996/tcp # cisco Remote SRB port +tr-rsrb-port 1996/udp # cisco Remote SRB port +gdp-port 1997/tcp # cisco Gateway Discovery +gdp-port 1997/udp # cisco Gateway Discovery +x25-svc-port 1998/tcp # cisco X.25 service (XOT) +x25-svc-port 1998/udp # cisco X.25 service (XOT) +tcp-id-port 1999/tcp # cisco identification port +tcp-id-port 1999/udp # cisco identification port +cisco-sccp 2000/tcp # Cisco SCCP [Dan_Wing] [Dan_Wing] 2003-11 +cisco-sccp 2000/udp # Cisco SCCp [Dan_Wing] [Dan_Wing] 2003-11 +dc 2001/tcp +wizard 2001/udp # curry +globe 2002/tcp +globe 2002/udp +brutus 2003/tcp # Brutus Server [Johannes_Skov_Frands] [Johannes_Skov_Frands] 2008-02-28 +brutus 2003/udp # Brutus Server [Johannes_Skov_Frands] [Johannes_Skov_Frands] 2008-02-28 +mailbox 2004/tcp +emce 2004/udp # CCWS mm conf +berknet 2005/tcp +oracle 2005/udp +invokator 2006/tcp +raid-cd 2006/udp # raid +dectalk 2007/tcp +raid-am 2007/udp +conf 2008/tcp +terminaldb 2008/udp +news 2009/tcp +whosockami 2009/udp +search 2010/tcp +pipe-server 2010/udp # well-formed service name as +# "pipe_server". +# This entry is an alias to "pipe-server". This entry is now +pipe_server 2010/udp # historic, not usable for use with many common service +raid-cc 2011/tcp # raid +servserv 2011/udp +ttyinfo 2012/tcp +raid-ac 2012/udp +raid-am 2013/tcp +raid-cd 2013/udp +troff 2014/tcp +raid-sf 2014/udp +cypress 2015/tcp +raid-cs 2015/udp +bootserver 2016/tcp +bootserver 2016/udp +cypress-stat 2017/tcp +bootclient 2017/udp +terminaldb 2018/tcp +rellpack 2018/udp +whosockami 2019/tcp +about 2019/udp +xinupageserver 2020/tcp +xinupageserver 2020/udp +servexec 2021/tcp +xinuexpansion1 2021/udp +down 2022/tcp +xinuexpansion2 2022/udp +xinuexpansion3 2023/tcp +xinuexpansion3 2023/udp +xinuexpansion4 2024/tcp +xinuexpansion4 2024/udp +ellpack 2025/tcp +xribs 2025/udp +scrabble 2026/tcp +scrabble 2026/udp +shadowserver 2027/tcp +shadowserver 2027/udp +submitserver 2028/tcp +submitserver 2028/udp +hsrpv6 2029/tcp # Hot Standby Router Protocol [Ian_Wilson] [Ian_Wilson] 2004-11 +# IPv6 +hsrpv6 2029/udp # Hot Standby Router Protocol [Ian_Wilson] [Ian_Wilson] 2004-11 +device2 2030/tcp +device2 2030/udp +mobrien-chat 2031/tcp # mobrien-chat [Mike_O_Brien] [Mike_O_Brien] 2004-11 +mobrien-chat 2031/udp # mobrien-chat [Mike_O_Brien] [Mike_O_Brien] 2004-11 +blackboard 2032/tcp +blackboard 2032/udp +glogger 2033/tcp +glogger 2033/udp +scoremgr 2034/tcp +scoremgr 2034/udp +imsldoc 2035/tcp +imsldoc 2035/udp +e-dpnet 2036/tcp # Ethernet WS DP network [Peter_Kaever] [Peter_Kaever] 2005-08 +e-dpnet 2036/udp # Ethernet WS DP network [Peter_Kaever] [Peter_Kaever] 2005-08 +applus 2037/tcp # APplus Application Server [Thomas_Boerkel] [Thomas_Boerkel] 2008-06-06 Formerly was P2plus Application Server +applus 2037/udp # APplus Application Server [Thomas_Boerkel] [Thomas_Boerkel] 2008-06-06 Formerly was P2plus Application Server +objectmanager 2038/tcp +objectmanager 2038/udp +prizma 2039/tcp # Prizma Monitoring Service [Dotan_Ofek] [Dotan_Ofek] 2005-12 +prizma 2039/udp # Prizma Monitoring Service [Dotan_Ofek] [Dotan_Ofek] 2005-12 +lam 2040/tcp +lam 2040/udp +interbase 2041/tcp +interbase 2041/udp +isis 2042/tcp # isis +isis 2042/udp # isis +isis-bcast 2043/tcp # isis-bcast [Ken_Chapman] [Ken_Chapman] +isis-bcast 2043/udp # isis-bcast [Ken_Chapman] [Ken_Chapman] +rimsl 2044/tcp +rimsl 2044/udp +cdfunc 2045/tcp +cdfunc 2045/udp +sdfunc 2046/tcp +sdfunc 2046/udp +dls 2047/tcp +dls 2047/udp +dls-monitor 2048/tcp +dls-monitor 2048/udp +shilp 2049/tcp # <== NOTE Conflict on 2049 ! +shilp 2049/udp # <== NOTE Conflict on 2049 ! +nfs 2049/tcp # Network File System - Sun [Brent_Callaghan] [Brent_Callaghan] Defined TXT keys: path= +# Microsystems +nfs 2049/udp # Network File System - Sun [Brent_Callaghan] [Brent_Callaghan] Defined TXT keys: path= +nfs 2049/sctp # Network File System [RFC5665] Defined TXT keys: path= +av-emb-config 2050/tcp # Avaya EMB Config Port [John_Yeager] [John_Yeager] +av-emb-config 2050/udp # Avaya EMB Config Port [John_Yeager] [John_Yeager] +epnsdp 2051/tcp # EPNSDP [Hiroyasu_Ogata] [Hiroyasu_Ogata] +epnsdp 2051/udp # EPNSDP [Hiroyasu_Ogata] [Hiroyasu_Ogata] +clearvisn 2052/tcp # clearVisn Services Port [Dave_Lyons] [Dave_Lyons] +clearvisn 2052/udp # clearVisn Services Port [Dave_Lyons] [Dave_Lyons] +lot105-ds-upd 2053/tcp # Lot105 DSuper Updates [Piers_Scannell] [Piers_Scannell] +lot105-ds-upd 2053/udp # Lot105 DSuper Updates [Piers_Scannell] [Piers_Scannell] +weblogin 2054/tcp # Weblogin Port [Diego_Saravia] [Diego_Saravia] +weblogin 2054/udp # Weblogin Port [Diego_Saravia] [Diego_Saravia] +iop 2055/tcp # Iliad-Odyssey Protocol [Bruce_Lueckenhoff] [Bruce_Lueckenhoff] +iop 2055/udp # Iliad-Odyssey Protocol [Bruce_Lueckenhoff] [Bruce_Lueckenhoff] +omnisky 2056/tcp # OmniSky Port [Oren_Hurvitz] [Oren_Hurvitz] +omnisky 2056/udp # OmniSky Port [Oren_Hurvitz] [Oren_Hurvitz] +rich-cp 2057/tcp # Rich Content Protocol [Ronen_Vainish] [Ronen_Vainish] +rich-cp 2057/udp # Rich Content Protocol [Ronen_Vainish] [Ronen_Vainish] +newwavesearch 2058/tcp # NewWaveSearchables RMI [Thomas_Kerkau] [Thomas_Kerkau] +newwavesearch 2058/udp # NewWaveSearchables RMI [Thomas_Kerkau] [Thomas_Kerkau] +bmc-messaging 2059/tcp # BMC Messaging Service [Portnoy_Boxman] [Portnoy_Boxman] +bmc-messaging 2059/udp # BMC Messaging Service [Portnoy_Boxman] [Portnoy_Boxman] +teleniumdaemon 2060/tcp # Telenium Daemon IF [Nick_Woronuk] [Nick_Woronuk] +teleniumdaemon 2060/udp # Telenium Daemon IF [Nick_Woronuk] [Nick_Woronuk] +netmount 2061/tcp # NetMount [Alex_Oberlander] [Alex_Oberlander] +netmount 2061/udp # NetMount [Alex_Oberlander] [Alex_Oberlander] +icg-swp 2062/tcp # ICG SWP Port +icg-swp 2062/udp # ICG SWP Port +icg-bridge 2063/tcp # ICG Bridge Port +icg-bridge 2063/udp # ICG Bridge Port +icg-iprelay 2064/tcp # ICG IP Relay Port [Steve_Quintana] [Steve_Quintana] +icg-iprelay 2064/udp # ICG IP Relay Port [Steve_Quintana] [Steve_Quintana] +dlsrpn 2065/tcp # Data Link Switch Read Port [Amir_Peless] [Amir_Peless] +# Number +dlsrpn 2065/udp # Data Link Switch Read Port [Amir_Peless] [Amir_Peless] +aura 2066/tcp # AVM USB Remote Architecture [Diego_Friedel] [Diego_Friedel] 2006-03 +aura 2066/udp # AVM USB Remote Architecture [Diego_Friedel] [Diego_Friedel] 2006-03 +dlswpn 2067/tcp # Data Link Switch Write Port [Amir_Peless] [Amir_Peless] +dlswpn 2067/udp # Data Link Switch Write Port [Amir_Peless] [Amir_Peless] +avauthsrvprtcl 2068/tcp # Avocent AuthSrv Protocol [Steven_W_Clark_2] [Steven_W_Clark_2] +avauthsrvprtcl 2068/udp # Avocent AuthSrv Protocol [Steven_W_Clark_2] [Steven_W_Clark_2] +event-port 2069/tcp # HTTP Event Port [Larry_Emlich] [Larry_Emlich] +event-port 2069/udp # HTTP Event Port [Larry_Emlich] [Larry_Emlich] +ah-esp-encap 2070/tcp # AH and ESP Encapsulated in [Amy_Weaver] [Amy_Weaver] +# UDP packet +ah-esp-encap 2070/udp # AH and ESP Encapsulated in [Amy_Weaver] [Amy_Weaver] +acp-port 2071/tcp # Axon Control Protocol [Christiaan_Simons] [Christiaan_Simons] +acp-port 2071/udp # Axon Control Protocol [Christiaan_Simons] [Christiaan_Simons] +msync 2072/tcp # GlobeCast mSync [Piers_Scannell_2] [Piers_Scannell_2] +msync 2072/udp # GlobeCast mSync [Piers_Scannell_2] [Piers_Scannell_2] +gxs-data-port 2073/tcp # DataReel Database Socket [Douglas_M_Gaer] [Douglas_M_Gaer] +gxs-data-port 2073/udp # DataReel Database Socket [Douglas_M_Gaer] [Douglas_M_Gaer] +vrtl-vmf-sa 2074/tcp # Vertel VMF SA [Alan_Akahoshi] [Alan_Akahoshi] +vrtl-vmf-sa 2074/udp # Vertel VMF SA [Alan_Akahoshi] [Alan_Akahoshi] +newlixengine 2075/tcp # Newlix ServerWare Engine +newlixengine 2075/udp # Newlix ServerWare Engine +newlixconfig 2076/tcp # Newlix JSPConfig [Jean_Serge_Gagnon] [Jean_Serge_Gagnon] +newlixconfig 2076/udp # Newlix JSPConfig [Jean_Serge_Gagnon] [Jean_Serge_Gagnon] +tsrmagt 2077/tcp # Old Tivoli Storage Manager +tsrmagt 2077/udp # Old Tivoli Storage Manager +tpcsrvr 2078/tcp # IBM Total Productivity [Justin_R_Bendich] [Justin_R_Bendich] +# Center Server +tpcsrvr 2078/udp # IBM Total Productivity [Justin_R_Bendich] [Justin_R_Bendich] +idware-router 2079/tcp # IDWARE Router Port [Zdenek_Kolba] [Zdenek_Kolba] +idware-router 2079/udp # IDWARE Router Port [Zdenek_Kolba] [Zdenek_Kolba] +autodesk-nlm 2080/tcp # Autodesk NLM (FLEXlm) [Greg_Suppes] [Greg_Suppes] +autodesk-nlm 2080/udp # Autodesk NLM (FLEXlm) [Greg_Suppes] [Greg_Suppes] +kme-trap-port 2081/tcp # KME PRINTER TRAP PORT [Masakatsu_Matsuo] [Masakatsu_Matsuo] +kme-trap-port 2081/udp # KME PRINTER TRAP PORT [Masakatsu_Matsuo] [Masakatsu_Matsuo] +infowave 2082/tcp # Infowave Mobility Server [Kaz_Kylheku] [Kaz_Kylheku] +infowave 2082/udp # Infowave Mobility Server [Kaz_Kylheku] [Kaz_Kylheku] +# The TCP port 2083 was already previously assigned by IANA for +# "RadSec", an early implementation of RADIUS/TLS, prior to +radsec 2083/tcp # Secure Radius Service [IESG] [IETF_Chair] 2005-05 [RFC6614] issuance of this RFC. This early implementation can be +# configured to be compatible to RADIUS/TLS as specified by the +# IETF. See [RFC6614], Appendix A for details. +radsec 2083/udp # Secure Radius Service [Mike_McCauley] [Mike_McCauley] 2005-05 +sunclustergeo 2084/tcp # SunCluster Geographic [Steve_McKinty] [Steve_McKinty] 2005-11 +sunclustergeo 2084/udp # SunCluster Geographic [Steve_McKinty] [Steve_McKinty] 2005-11 +ada-cip 2085/tcp # ADA Control [Eugene_Frenkel] [Eugene_Frenkel] 2005-11 +ada-cip 2085/udp # ADA Control [Eugene_Frenkel] [Eugene_Frenkel] 2005-11 +gnunet 2086/tcp # GNUnet [Christian_Grothoff] [Christian_Grothoff] 2002-10 +gnunet 2086/udp # GNUnet [Christian_Grothoff] [Christian_Grothoff] 2002-10 +eli 2087/tcp # ELI - Event Logging [Maya_Zimerman] [Maya_Zimerman] +# Integration +eli 2087/udp # ELI - Event Logging [Maya_Zimerman] [Maya_Zimerman] +ip-blf 2088/tcp # IP Busy Lamp Field [Jeffrey_Szczepanski] [Jeffrey_Szczepanski] 2005-02 +ip-blf 2088/udp # IP Busy Lamp Field [Jeffrey_Szczepanski] [Jeffrey_Szczepanski] 2005-02 +sep 2089/tcp # Security Encapsulation [Maya_Zimerman] [Maya_Zimerman] +# Protocol - SEP +sep 2089/udp # Security Encapsulation [Maya_Zimerman] [Maya_Zimerman] +lrp 2090/tcp # Load Report Protocol [Amir_Peless] [Amir_Peless] +lrp 2090/udp # Load Report Protocol [Amir_Peless] [Amir_Peless] +prp 2091/tcp # PRP [Amir_Peless] [Amir_Peless] +prp 2091/udp # PRP [Amir_Peless] [Amir_Peless] +descent3 2092/tcp # Descent 3 [Kevin_Bentley] [Kevin_Bentley] +descent3 2092/udp # Descent 3 [Kevin_Bentley] [Kevin_Bentley] +nbx-cc 2093/tcp # NBX CC +nbx-cc 2093/udp # NBX CC +nbx-au 2094/tcp # NBX AU +nbx-au 2094/udp # NBX AU +nbx-ser 2095/tcp # NBX SER +nbx-ser 2095/udp # NBX SER +nbx-dir 2096/tcp # NBX DIR [Henry_Houh] [Henry_Houh] +nbx-dir 2096/udp # NBX DIR [Henry_Houh] [Henry_Houh] +jetformpreview 2097/tcp # Jet Form Preview [Zygmunt_Wiercioch] [Zygmunt_Wiercioch] +jetformpreview 2097/udp # Jet Form Preview [Zygmunt_Wiercioch] [Zygmunt_Wiercioch] +dialog-port 2098/tcp # Dialog Port [Joseph_Mathew] [Joseph_Mathew] +dialog-port 2098/udp # Dialog Port [Joseph_Mathew] [Joseph_Mathew] +h2250-annex-g 2099/tcp # H.225.0 Annex G Signalling [ITU-T] [ITU-T_TSB] 2013-01-31 +h2250-annex-g 2099/udp # H.225.0 Annex G Signalling [ITU-T] [ITU-T_TSB] 2013-01-31 +amiganetfs 2100/tcp # Amiga Network Filesystem [Rudi_Chiarito] [Rudi_Chiarito] +amiganetfs 2100/udp # Amiga Network Filesystem [Rudi_Chiarito] [Rudi_Chiarito] +rtcm-sc104 2101/tcp # rtcm-sc104 [Wolfgang_Rupprecht] [Wolfgang_Rupprecht] +rtcm-sc104 2101/udp # rtcm-sc104 [Wolfgang_Rupprecht] [Wolfgang_Rupprecht] +zephyr-srv 2102/tcp # Zephyr server +zephyr-srv 2102/udp # Zephyr server +zephyr-clt 2103/tcp # Zephyr serv-hm connection +zephyr-clt 2103/udp # Zephyr serv-hm connection +zephyr-hm 2104/tcp # Zephyr hostmanager [Greg_Hudson] [Greg_Hudson] +zephyr-hm 2104/udp # Zephyr hostmanager [Greg_Hudson] [Greg_Hudson] +minipay 2105/tcp # MiniPay [Amir_Herzberg] [Amir_Herzberg] +minipay 2105/udp # MiniPay [Amir_Herzberg] [Amir_Herzberg] +mzap 2106/tcp # MZAP [Dave_Thaler_2] [Dave_Thaler_2] +mzap 2106/udp # MZAP [Dave_Thaler_2] [Dave_Thaler_2] +bintec-admin 2107/tcp # BinTec Admin [Thomas_Schmidt] [Thomas_Schmidt] +bintec-admin 2107/udp # BinTec Admin [Thomas_Schmidt] [Thomas_Schmidt] +comcam 2108/tcp # Comcam [Don_Gilbreath] [Don_Gilbreath] +comcam 2108/udp # Comcam [Don_Gilbreath] [Don_Gilbreath] +ergolight 2109/tcp # Ergolight [Jindra_Ryvola] [Jindra_Ryvola] +ergolight 2109/udp # Ergolight [Jindra_Ryvola] [Jindra_Ryvola] +umsp 2110/tcp # UMSP [Alexander_Bogdanov_2] [Alexander_Bogdanov_2] +umsp 2110/udp # UMSP [Alexander_Bogdanov_2] [Alexander_Bogdanov_2] +dsatp 2111/tcp # OPNET Dynamic Sampling Agent [OPNET_Technologies_Inc] [Edward_Macomber] 2011-09-21 +# Transaction Protocol +dsatp 2111/udp # OPNET Dynamic Sampling Agent [OPNET_Technologies_Inc] [Edward_Macomber] 2011-09-21 +idonix-metanet 2112/tcp # Idonix MetaNet [Paul_Harrison] [Paul_Harrison] +idonix-metanet 2112/udp # Idonix MetaNet [Paul_Harrison] [Paul_Harrison] +hsl-storm 2113/tcp # HSL StoRM [Jost_Faganel] [Jost_Faganel] +hsl-storm 2113/udp # HSL StoRM [Jost_Faganel] [Jost_Faganel] +newheights 2114/tcp # NEWHEIGHTS [Michael_Levy] [Michael_Levy] +newheights 2114/udp # NEWHEIGHTS [Michael_Levy] [Michael_Levy] +kdm 2115/tcp # Key Distribution Manager [Mike_Little] [Mike_Little] +kdm 2115/udp # Key Distribution Manager [Mike_Little] [Mike_Little] +ccowcmr 2116/tcp # CCOWCMR [Mark_Morwood] [Mark_Morwood] +ccowcmr 2116/udp # CCOWCMR [Mark_Morwood] [Mark_Morwood] +mentaclient 2117/tcp # MENTACLIENT +mentaclient 2117/udp # MENTACLIENT +mentaserver 2118/tcp # MENTASERVER [Ilan_Shlosberg] [Ilan_Shlosberg] +mentaserver 2118/udp # MENTASERVER [Ilan_Shlosberg] [Ilan_Shlosberg] +gsigatekeeper 2119/tcp # GSIGATEKEEPER [Steve_Tuecke] [Steve_Tuecke] +gsigatekeeper 2119/udp # GSIGATEKEEPER [Steve_Tuecke] [Steve_Tuecke] +qencp 2120/tcp # Quick Eagle Networks CP [Santa_Dasu] [Santa_Dasu] +qencp 2120/udp # Quick Eagle Networks CP [Santa_Dasu] [Santa_Dasu] +scientia-ssdb 2121/tcp # SCIENTIA-SSDB [SYSTEMS_MANAGER] [SYSTEMS_MANAGER] +scientia-ssdb 2121/udp # SCIENTIA-SSDB [SYSTEMS_MANAGER] [SYSTEMS_MANAGER] +caupc-remote 2122/tcp # CauPC Remote Control [Environics_Oy] [Environics_Oy] +caupc-remote 2122/udp # CauPC Remote Control [Environics_Oy] [Environics_Oy] +gtp-control 2123/tcp # GTP-Control Plane (3GPP) [Alessio_Casati] [Alessio_Casati] +gtp-control 2123/udp # GTP-Control Plane (3GPP) [Alessio_Casati] [Alessio_Casati] +elatelink 2124/tcp # ELATELINK [Tim_Lawrence] [Tim_Lawrence] +elatelink 2124/udp # ELATELINK [Tim_Lawrence] [Tim_Lawrence] +lockstep 2125/tcp # LOCKSTEP [Karl_Forster] [Karl_Forster] +lockstep 2125/udp # LOCKSTEP [Karl_Forster] [Karl_Forster] +pktcable-cops 2126/tcp # PktCable-COPS [Glenn_Russell] [Glenn_Russell] +pktcable-cops 2126/udp # PktCable-COPS [Glenn_Russell] [Glenn_Russell] +index-pc-wb 2127/tcp # INDEX-PC-WB [James_David_Fisher] [James_David_Fisher] +index-pc-wb 2127/udp # INDEX-PC-WB [James_David_Fisher] [James_David_Fisher] +net-steward 2128/tcp # Net Steward Control [Martin_Norman] [Martin_Norman] +net-steward 2128/udp # Net Steward Control [Martin_Norman] [Martin_Norman] +cs-live 2129/tcp # cs-live.com [Matt_Lachance] [Matt_Lachance] +cs-live 2129/udp # cs-live.com [Matt_Lachance] [Matt_Lachance] +xds 2130/tcp # XDS [Peter_Zurich] [Peter_Zurich] +xds 2130/udp # XDS [Peter_Zurich] [Peter_Zurich] +avantageb2b 2131/tcp # Avantageb2b [Avi_Software] [Avi_Software] +avantageb2b 2131/udp # Avantageb2b [Avi_Software] [Avi_Software] +solera-epmap 2132/tcp # SoleraTec End Point Map [Mark_Armstrong] [Mark_Armstrong] +solera-epmap 2132/udp # SoleraTec End Point Map [Mark_Armstrong] [Mark_Armstrong] +zymed-zpp 2133/tcp # ZYMED-ZPP [Gregg_Welker] [Gregg_Welker] +zymed-zpp 2133/udp # ZYMED-ZPP [Gregg_Welker] [Gregg_Welker] +avenue 2134/tcp # AVENUE [Jason_Cater] [Jason_Cater] +avenue 2134/udp # AVENUE [Jason_Cater] [Jason_Cater] +gris 2135/tcp # Grid Resource Information [Steve_Tuecke] [Steve_Tuecke] +gris 2135/udp # Grid Resource Information [Steve_Tuecke] [Steve_Tuecke] +appworxsrv 2136/tcp # APPWORXSRV [Fred_McLain] [Fred_McLain] +appworxsrv 2136/udp # APPWORXSRV [Fred_McLain] [Fred_McLain] +connect 2137/tcp # CONNECT [Reid_Ligon] [Reid_Ligon] +connect 2137/udp # CONNECT [Reid_Ligon] [Reid_Ligon] +unbind-cluster 2138/tcp # UNBIND-CLUSTER [Francois_Harvey] [Francois_Harvey] +unbind-cluster 2138/udp # UNBIND-CLUSTER [Francois_Harvey] [Francois_Harvey] +ias-auth 2139/tcp # IAS-AUTH +ias-auth 2139/udp # IAS-AUTH +ias-reg 2140/tcp # IAS-REG +ias-reg 2140/udp # IAS-REG +ias-admind 2141/tcp # IAS-ADMIND [Baiju_V_Patel] [Baiju_V_Patel] +ias-admind 2141/udp # IAS-ADMIND [Baiju_V_Patel] [Baiju_V_Patel] +tdmoip 2142/tcp # TDM OVER IP [RFC5087] +tdmoip 2142/udp # TDM OVER IP [RFC5087] +lv-jc 2143/tcp # Live Vault Job Control +lv-jc 2143/udp # Live Vault Job Control +lv-ffx 2144/tcp # Live Vault Fast Object +# Transfer +lv-ffx 2144/udp # Live Vault Fast Object +lv-pici 2145/tcp # Live Vault Remote Diagnostic +# Console Support +lv-pici 2145/udp # Live Vault Remote Diagnostic +lv-not 2146/tcp # Live Vault Admin Event +# Notification +lv-not 2146/udp # Live Vault Admin Event +lv-auth 2147/tcp # Live Vault Authentication [Ted_Hess] [Ted_Hess] +lv-auth 2147/udp # Live Vault Authentication [Ted_Hess] [Ted_Hess] +veritas-ucl 2148/tcp # VERITAS UNIVERSAL [Songlin_Ren] [Songlin_Ren] +# COMMUNICATION LAYER +veritas-ucl 2148/udp # VERITAS UNIVERSAL [Songlin_Ren] [Songlin_Ren] +acptsys 2149/tcp # ACPTSYS [Michael_Lekias] [Michael_Lekias] +acptsys 2149/udp # ACPTSYS [Michael_Lekias] [Michael_Lekias] +dynamic3d 2150/tcp # DYNAMIC3D [Tobias_Wegner] [Tobias_Wegner] +dynamic3d 2150/udp # DYNAMIC3D [Tobias_Wegner] [Tobias_Wegner] +docent 2151/tcp # DOCENT [Hali_Lindbloom] [Hali_Lindbloom] +docent 2151/udp # DOCENT [Hali_Lindbloom] [Hali_Lindbloom] +gtp-user 2152/tcp # GTP-User Plane (3GPP) [Alessio_Casati] [Alessio_Casati] +gtp-user 2152/udp # GTP-User Plane (3GPP) [Alessio_Casati] [Alessio_Casati] +ctlptc 2153/tcp # Control Protocol +ctlptc 2153/udp # Control Protocol +stdptc 2154/tcp # Standard Protocol +stdptc 2154/udp # Standard Protocol +brdptc 2155/tcp # Bridge Protocol [Hideki_Hatta] [Hideki_Hatta] 2007-09-27 +brdptc 2155/udp # Bridge Protocol [Hideki_Hatta] [Hideki_Hatta] 2007-09-27 +trp 2156/tcp # Talari Reliable Protocol [John_E_Dickey] [John_E_Dickey] 2007-09-27 +trp 2156/udp # Talari Reliable Protocol [John_E_Dickey] [John_E_Dickey] 2007-09-27 +xnds 2157/tcp # Xerox Network Document Scan [William_R_Lear] [William_R_Lear] 2008-03-06 +xnds 2157/udp # Xerox Network Document Scan [William_R_Lear] [William_R_Lear] 2008-03-06 +touchnetplus 2158/tcp # TouchNetPlus Service [Brian_Toothill] [Brian_Toothill] 2008-03-06 +touchnetplus 2158/udp # TouchNetPlus Service [Brian_Toothill] [Brian_Toothill] 2008-03-06 +gdbremote 2159/tcp # GDB Remote Debug Port [Nigel_Stephens] [Nigel_Stephens] +gdbremote 2159/udp # GDB Remote Debug Port [Nigel_Stephens] [Nigel_Stephens] +apc-2160 2160/tcp # APC 2160 [American_Power_Conve] [American_Power_Conve] +apc-2160 2160/udp # APC 2160 [American_Power_Conve] [American_Power_Conve] +apc-2161 2161/tcp # APC 2161 [American_Power_Conve] [American_Power_Conve] +apc-2161 2161/udp # APC 2161 [American_Power_Conve] [American_Power_Conve] +navisphere 2162/tcp # Navisphere +navisphere 2162/udp # Navisphere +navisphere-sec 2163/tcp # Navisphere Secure [Andreas_Bauer] [Andreas_Bauer] +navisphere-sec 2163/udp # Navisphere Secure [Andreas_Bauer] [Andreas_Bauer] +ddns-v3 2164/tcp # Dynamic DNS Version 3 [Alan_Yates] [Alan_Yates] +ddns-v3 2164/udp # Dynamic DNS Version 3 [Alan_Yates] [Alan_Yates] +x-bone-api 2165/tcp # X-Bone API [Joe_Touch] [Joe_Touch] +x-bone-api 2165/udp # X-Bone API [Joe_Touch] [Joe_Touch] +iwserver 2166/tcp # iwserver [Fred_Surr] [Fred_Surr] +iwserver 2166/udp # iwserver [Fred_Surr] [Fred_Surr] +raw-serial 2167/tcp # Raw Async Serial Link [Benjamin_Green] [Benjamin_Green] +raw-serial 2167/udp # Raw Async Serial Link [Benjamin_Green] [Benjamin_Green] +easy-soft-mux 2168/tcp # easy-soft Multiplexer [Norbert_Kintzler] [Norbert_Kintzler] 2004-11 +easy-soft-mux 2168/udp # easy-soft Multiplexer [Norbert_Kintzler] [Norbert_Kintzler] 2004-11 +# Backbone for Academic +brain 2169/tcp # Information Notification [Archishmat_Gore] [Archishmat_Gore] 2004-11 +# (BRAIN) +brain 2169/udp # Information Notification [Archishmat_Gore] [Archishmat_Gore] 2004-11 +eyetv 2170/tcp # EyeTV Server Port [Elgato_Systems] [Elgato_Systems] 2004-11 +eyetv 2170/udp # EyeTV Server Port [Elgato_Systems] [Elgato_Systems] 2004-11 +msfw-storage 2171/tcp # MS Firewall Storage +msfw-storage 2171/udp # MS Firewall Storage +msfw-s-storage 2172/tcp # MS Firewall SecureStorage +msfw-s-storage 2172/udp # MS Firewall SecureStorage +msfw-replica 2173/tcp # MS Firewall Replication +msfw-replica 2173/udp # MS Firewall Replication +msfw-array 2174/tcp # MS Firewall Intra Array [Itai_Greenberg] [Itai_Greenberg] 2004-11 +msfw-array 2174/udp # MS Firewall Intra Array [Itai_Greenberg] [Itai_Greenberg] 2004-11 +airsync 2175/tcp # Microsoft Desktop AirSync +airsync 2175/udp # Microsoft Desktop AirSync +rapi 2176/tcp # Microsoft ActiveSync Remote [Jon_Xu] [Jon_Xu] 2005-08 +# API +rapi 2176/udp # Microsoft ActiveSync Remote [Jon_Xu] [Jon_Xu] 2005-08 +qwave 2177/tcp # qWAVE Bandwidth Estimate [Gabe_Frost] [Gabe_Frost] 2005-08 +qwave 2177/udp # qWAVE Bandwidth Estimate [Gabe_Frost] [Gabe_Frost] 2005-08 +bitspeer 2178/tcp # Peer Services for BITS [Jeff_Roberts] [Jeff_Roberts] 2005-11 +bitspeer 2178/udp # Peer Services for BITS [Jeff_Roberts] [Jeff_Roberts] 2005-11 +vmrdp 2179/tcp # Microsoft RDP for virtual [Brian_Henry] [Brian_Henry] 2007-03 +# machines +vmrdp 2179/udp # Microsoft RDP for virtual [Brian_Henry] [Brian_Henry] 2007-03 +mc-gt-srv 2180/tcp # Millicent Vendor Gateway [Steve_Glassman] [Steve_Glassman] +mc-gt-srv 2180/udp # Millicent Vendor Gateway [Steve_Glassman] [Steve_Glassman] +eforward 2181/tcp # eforward [Greg_Pringle] [Greg_Pringle] +eforward 2181/udp # eforward [Greg_Pringle] [Greg_Pringle] +cgn-stat 2182/tcp # CGN status +cgn-stat 2182/udp # CGN status +cgn-config 2183/tcp # Code Green configuration [Chris_Michaelson] [Chris_Michaelson] 2005-08 +cgn-config 2183/udp # Code Green configuration [Chris_Michaelson] [Chris_Michaelson] 2005-08 +nvd 2184/tcp # NVD User [Yves_Gattegno] [Yves_Gattegno] 2004-12 +nvd 2184/udp # NVD User [Yves_Gattegno] [Yves_Gattegno] 2004-12 +onbase-dds 2185/tcp # OnBase Distributed Disk [Paul_Tam] [Paul_Tam] 2004-12 +# Services +onbase-dds 2185/udp # OnBase Distributed Disk [Paul_Tam] [Paul_Tam] 2004-12 +gtaua 2186/tcp # Guy-Tek Automated Update [Daniel_Story] [Daniel_Story] 2008-01-25 +gtaua 2186/udp # Guy-Tek Automated Update [Daniel_Story] [Daniel_Story] 2008-01-25 +ssmc 2187/tcp # Sepehr System Management +# Control +ssmd 2187/udp # Sepehr System Management [Shahriar_Pourazin] [Shahriar_Pourazin] 2008-12-02 +# Data +radware-rpm 2188/tcp # Radware Resource Pool [Radware_LTD] [Samuel_Bercovici] 2011-08-05 +# 2188 udp Reserved +radware-rpm-s 2189/tcp # Secure Radware Resource Pool [Radware_LTD] [Samuel_Bercovici] 2011-08-05 +# 2189 udp Reserved +tivoconnect 2190/tcp # TiVoConnect Beacon [Jeffrey_J_Peters] [Jeffrey_J_Peters] 2002-08 +tivoconnect 2190/udp # TiVoConnect Beacon [Jeffrey_J_Peters] [Jeffrey_J_Peters] 2002-08 +tvbus 2191/tcp # TvBus Messaging [Brian_W_Beach] [Brian_W_Beach] 2003-01 +tvbus 2191/udp # TvBus Messaging [Brian_W_Beach] [Brian_W_Beach] 2003-01 +asdis 2192/tcp # ASDIS software management [ASDIS_Support] [ASDIS_Support] 2005-08 +asdis 2192/udp # ASDIS software management [ASDIS_Support] [ASDIS_Support] 2005-08 +drwcs 2193/tcp # Dr.Web Enterprise Management [Eugeny_Gladkih] [Eugeny_Gladkih] 2008-01-31 +drwcs 2193/udp # Dr.Web Enterprise Management [Eugeny_Gladkih] [Eugeny_Gladkih] 2008-01-31 +# 2194-2196 Unassigned +mnp-exchange 2197/tcp # MNP data exchange [Peter_Pramberger] [Peter_Pramberger] 2004-11 +mnp-exchange 2197/udp # MNP data exchange [Peter_Pramberger] [Peter_Pramberger] 2004-11 +onehome-remote 2198/tcp # OneHome Remote Access +onehome-remote 2198/udp # OneHome Remote Access +onehome-help 2199/tcp # OneHome Service Port [Jim_Herman] [Jim_Herman] 2005-08 +onehome-help 2199/udp # OneHome Service Port [Jim_Herman] [Jim_Herman] 2005-08 +ici 2200/tcp # ICI [Brent_Hines] [Brent_Hines] +ici 2200/udp # ICI [Brent_Hines] [Brent_Hines] +ats 2201/tcp # Advanced Training System +ats 2201/udp # Advanced Training System +imtc-map 2202/tcp # Int. Multimedia [Pat_Galvin] [Pat_Galvin] +# Teleconferencing Cosortium +imtc-map 2202/udp # Int. Multimedia [Pat_Galvin] [Pat_Galvin] +b2-runtime 2203/tcp # b2 Runtime Protocol +b2-runtime 2203/udp # b2 Runtime Protocol +b2-license 2204/tcp # b2 License Server [Helge_Frank_Zimpel] [Helge_Frank_Zimpel] 2006-01 +b2-license 2204/udp # b2 License Server [Helge_Frank_Zimpel] [Helge_Frank_Zimpel] 2006-01 +jps 2205/tcp # Java Presentation Server [Leif_Jakob] [Leif_Jakob] 2006-01 +jps 2205/udp # Java Presentation Server [Leif_Jakob] [Leif_Jakob] 2006-01 +hpocbus 2206/tcp # HP OpenCall bus [Jerome_Forissier] [Jerome_Forissier] 2005-12 +hpocbus 2206/udp # HP OpenCall bus [Jerome_Forissier] [Jerome_Forissier] 2005-12 +hpssd 2207/tcp # HP Status and Services [Donald_Welch] [Donald_Welch] 2006-05 +hpssd 2207/udp # HP Status and Services [Donald_Welch] [Donald_Welch] 2006-05 +hpiod 2208/tcp # HP I/O Backend [David_Suffield] [David_Suffield] 2006-05 +hpiod 2208/udp # HP I/O Backend [David_Suffield] [David_Suffield] 2006-05 +rimf-ps 2209/tcp # HP RIM for Files Portal [Patty_Ho] [Patty_Ho] 2007-05 +rimf-ps 2209/udp # HP RIM for Files Portal [Patty_Ho] [Patty_Ho] 2007-05 +noaaport 2210/tcp # NOAAPORT Broadcast Network +noaaport 2210/udp # NOAAPORT Broadcast Network +emwin 2211/tcp # EMWIN [Antonio_Querubin] [Antonio_Querubin] 2008-03-10 +emwin 2211/udp # EMWIN [Antonio_Querubin] [Antonio_Querubin] 2008-03-10 +leecoposserver 2212/tcp # LeeCO POS Server Service [Patrick_Lee] [Patrick_Lee] 2008-03-10 +leecoposserver 2212/udp # LeeCO POS Server Service [Patrick_Lee] [Patrick_Lee] 2008-03-10 +kali 2213/tcp # Kali [Jay_Cotton] [Jay_Cotton] +kali 2213/udp # Kali [Jay_Cotton] [Jay_Cotton] +rpi 2214/tcp # RDQ Protocol Interface [Les_Mather] [Les_Mather] 2005-12 +rpi 2214/udp # RDQ Protocol Interface [Les_Mather] [Les_Mather] 2005-12 +ipcore 2215/tcp # IPCore.co.za GPRS [Administrator] [Administrator] 2005-12 +ipcore 2215/udp # IPCore.co.za GPRS [Administrator] [Administrator] 2005-12 +vtu-comms 2216/tcp # VTU data service [David_Barrass] [David_Barrass] 2006-01 +vtu-comms 2216/udp # VTU data service [David_Barrass] [David_Barrass] 2006-01 +gotodevice 2217/tcp # GoToDevice Device Management [John_Lisek] [John_Lisek] 2006-01 +gotodevice 2217/udp # GoToDevice Device Management [John_Lisek] [John_Lisek] 2006-01 +bounzza 2218/tcp # Bounzza IRC Proxy [Danko_Alexeyev] [Danko_Alexeyev] 2006-02 +bounzza 2218/udp # Bounzza IRC Proxy [Danko_Alexeyev] [Danko_Alexeyev] 2006-02 +netiq-ncap 2219/tcp # NetIQ NCAP Protocol [Roger_Huebner] [Roger_Huebner] 2010-08-25 +netiq-ncap 2219/udp # NetIQ NCAP Protocol [Roger_Huebner] [Roger_Huebner] 2010-08-25 +netiq 2220/tcp # NetIQ End2End [Michael_Sharpe] [Michael_Sharpe] 2010-09-14 +netiq 2220/udp # NetIQ End2End [Michael_Sharpe] [Michael_Sharpe] 2010-09-14 +rockwell-csp1 2221/tcp # Rockwell CSP1 [Brian_Batke] [Brian_Batke] +rockwell-csp1 2221/udp # Rockwell CSP1 [Brian_Batke] [Brian_Batke] +# EtherNet/IP I/O +# +EtherNet-IP-1 2222/tcp # IANA assigned this [Brian_Batke_2] [Brian_Batke_2] New contact added for port 2222 on 2008-02-01 +# "EtherNet/IP-1". +# New contact added for port 2222 on 2008-02-01 This entry is +EtherNet/IP-1 2222/tcp # EtherNet/IP I/O [Brian_Batke_2] [Brian_Batke_2] an alias to "EtherNet-IP-1". This entry is now historic, not +# usable for use with many common service discovery mechanisms. +# +EtherNet-IP-1 2222/udp # IANA assigned this [Brian_Batke_2] [Brian_Batke_2] New contact added for port 2222 on 2008-02-01 +EtherNet/IP-1 2222/udp # EtherNet/IP I/O [Brian_Batke_2] [Brian_Batke_2] an alias to "EtherNet-IP-1". This entry is now historic, not +rockwell-csp2 2223/tcp # Rockwell CSP2 [Brian_Batke] [Brian_Batke] +rockwell-csp2 2223/udp # Rockwell CSP2 [Brian_Batke] [Brian_Batke] +efi-mg 2224/tcp # Easy Flexible [Thomas_Efer] [Thomas_Efer] 2006-03 +# Internet/Multiplayer Games +efi-mg 2224/udp # Easy Flexible [Thomas_Efer] [Thomas_Efer] 2006-03 +rcip-itu 2225/tcp # Resource Connection [ITU_TSB] [ITU_TSB] +# Initiation Protocol +# 2225 udp Reserved +rcip-itu 2225/sctp # Resource Connection [ITU_TSB] [ITU_TSB] +di-drm 2226/tcp # Digital Instinct DRM +di-drm 2226/udp # Digital Instinct DRM +di-msg 2227/tcp # DI Messaging Service [Sean_Ni] [Sean_Ni] 2006-02 +di-msg 2227/udp # DI Messaging Service [Sean_Ni] [Sean_Ni] 2006-02 +ehome-ms 2228/tcp # eHome Message Server [Peter_Gabriel] [Peter_Gabriel] 2006-01 +ehome-ms 2228/udp # eHome Message Server [Peter_Gabriel] [Peter_Gabriel] 2006-01 +datalens 2229/tcp # DataLens Service [Christopher_Bidwell] [Christopher_Bidwell] 2006-02 +datalens 2229/udp # DataLens Service [Christopher_Bidwell] [Christopher_Bidwell] 2006-02 +queueadm 2230/tcp # MetaSoft Job Queue [Ilya_Melamed] [Ilya_Melamed] 2006-06 +# Administration Service +queueadm 2230/udp # MetaSoft Job Queue [Ilya_Melamed] [Ilya_Melamed] 2006-06 +wimaxasncp 2231/tcp # WiMAX ASN Control Plane [Prakash_Iyer] [Prakash_Iyer] 2006-06 +wimaxasncp 2231/udp # WiMAX ASN Control Plane [Prakash_Iyer] [Prakash_Iyer] 2006-06 +ivs-video 2232/tcp # IVS Video default [Thierry_Turletti] [Thierry_Turletti] +ivs-video 2232/udp # IVS Video default [Thierry_Turletti] [Thierry_Turletti] +infocrypt 2233/tcp # INFOCRYPT [Erica_Liu] [Erica_Liu] +infocrypt 2233/udp # INFOCRYPT [Erica_Liu] [Erica_Liu] +directplay 2234/tcp # DirectPlay [Ajay_Jindal] [Ajay_Jindal] +directplay 2234/udp # DirectPlay [Ajay_Jindal] [Ajay_Jindal] +sercomm-wlink 2235/tcp # Sercomm-WLink [Melinda_Tsao] [Melinda_Tsao] +sercomm-wlink 2235/udp # Sercomm-WLink [Melinda_Tsao] [Melinda_Tsao] +nani 2236/tcp # Nani [Steve_Benoit] [Steve_Benoit] +nani 2236/udp # Nani [Steve_Benoit] [Steve_Benoit] +optech-port1-lm 2237/tcp # Optech Port1 License Manager [Gerard_Cannie] [Gerard_Cannie] +optech-port1-lm 2237/udp # Optech Port1 License Manager [Gerard_Cannie] [Gerard_Cannie] +aviva-sna 2238/tcp # AVIVA SNA SERVER [Vick_Keshishian] [Vick_Keshishian] +aviva-sna 2238/udp # AVIVA SNA SERVER [Vick_Keshishian] [Vick_Keshishian] +imagequery 2239/tcp # Image Query [Charles_Jacobs] [Charles_Jacobs] +imagequery 2239/udp # Image Query [Charles_Jacobs] [Charles_Jacobs] +recipe 2240/tcp # RECIPe [Charlie_Limoges] [Charlie_Limoges] 1997-12-16 +recipe 2240/udp # RECIPe [Charlie_Limoges] [Charlie_Limoges] 1997-12-16 +ivsd 2241/tcp # IVS Daemon [Thierry_Turletti] [Thierry_Turletti] +ivsd 2241/udp # IVS Daemon [Thierry_Turletti] [Thierry_Turletti] +foliocorp 2242/tcp # Folio Remote Server [Pat_Mcgowan] [Pat_Mcgowan] +foliocorp 2242/udp # Folio Remote Server [Pat_Mcgowan] [Pat_Mcgowan] +magicom 2243/tcp # Magicom Protocol [Yossi_Appleboum] [Yossi_Appleboum] +magicom 2243/udp # Magicom Protocol [Yossi_Appleboum] [Yossi_Appleboum] +nmsserver 2244/tcp # NMS Server [Dmitry_Krasnonosenki] [Dmitry_Krasnonosenki] +nmsserver 2244/udp # NMS Server [Dmitry_Krasnonosenki] [Dmitry_Krasnonosenki] +hao 2245/tcp # HaO [Panic_Ride] [Panic_Ride] +hao 2245/udp # HaO [Panic_Ride] [Panic_Ride] +pc-mta-addrmap 2246/tcp # PacketCable MTA Addr Map [Dave_Maxwell] [Dave_Maxwell] +pc-mta-addrmap 2246/udp # PacketCable MTA Addr Map [Dave_Maxwell] [Dave_Maxwell] +antidotemgrsvr 2247/tcp # Antidote Deployment Manager [Rod_Waltermann] [Rod_Waltermann] 2006-02 +antidotemgrsvr 2247/udp # Antidote Deployment Manager [Rod_Waltermann] [Rod_Waltermann] 2006-02 +ums 2248/tcp # User Management Service [Andrew_Crockford] [Andrew_Crockford] +ums 2248/udp # User Management Service [Andrew_Crockford] [Andrew_Crockford] +rfmp 2249/tcp # RISO File Manager Protocol [Shinji_Yamanaka] [Shinji_Yamanaka] +rfmp 2249/udp # RISO File Manager Protocol [Shinji_Yamanaka] [Shinji_Yamanaka] +remote-collab 2250/tcp # remote-collab [Richard_Walters] [Richard_Walters] +remote-collab 2250/udp # remote-collab [Richard_Walters] [Richard_Walters] +dif-port 2251/tcp # Distributed Framework Port [Sebastien_Lambla] [Sebastien_Lambla] +dif-port 2251/udp # Distributed Framework Port [Sebastien_Lambla] [Sebastien_Lambla] +njenet-ssl 2252/tcp # NJENET using SSL [Hans_U_Schmidt] [Hans_U_Schmidt] +njenet-ssl 2252/udp # NJENET using SSL [Hans_U_Schmidt] [Hans_U_Schmidt] +dtv-chan-req 2253/tcp # DTV Channel Request [Richard_Hodges] [Richard_Hodges] +dtv-chan-req 2253/udp # DTV Channel Request [Richard_Hodges] [Richard_Hodges] +seispoc 2254/tcp # Seismic P.O.C. Port [Robert_Reimiller] [Robert_Reimiller] +seispoc 2254/udp # Seismic P.O.C. Port [Robert_Reimiller] [Robert_Reimiller] +vrtp 2255/tcp # VRTP - ViRtue Transfer [Max_Fudim] [Max_Fudim] +vrtp 2255/udp # VRTP - ViRtue Transfer [Max_Fudim] [Max_Fudim] +pcc-mfp 2256/tcp # PCC MFP [Kunihiko_Morota] [Kunihiko_Morota] 2005-08 +pcc-mfp 2256/udp # PCC MFP [Kunihiko_Morota] [Kunihiko_Morota] 2005-08 +simple-tx-rx 2257/tcp # simple text/file transfer [Daniel_Kilsdonk] [Daniel_Kilsdonk] 2006-08 +simple-tx-rx 2257/udp # simple text/file transfer [Daniel_Kilsdonk] [Daniel_Kilsdonk] 2006-08 +rcts 2258/tcp # Rotorcraft Communications [Terry_Eldridge] [Terry_Eldridge] 2006-08 +# Test System +rcts 2258/udp # Rotorcraft Communications [Terry_Eldridge] [Terry_Eldridge] 2006-08 +# 2259 Unassigned 2011-06-28 +apc-2260 2260/tcp # APC 2260 [American_Power_Conve] [American_Power_Conve] 2002-02 +apc-2260 2260/udp # APC 2260 [American_Power_Conve] [American_Power_Conve] 2002-02 +comotionmaster 2261/tcp # CoMotion Master Server +comotionmaster 2261/udp # CoMotion Master Server +comotionback 2262/tcp # CoMotion Backup Server [Friedman_Wagner_Dobl] [Friedman_Wagner_Dobl] 2005-09 +comotionback 2262/udp # CoMotion Backup Server [Friedman_Wagner_Dobl] [Friedman_Wagner_Dobl] 2005-09 +ecwcfg 2263/tcp # ECweb Configuration Service [Anders_Hjelm] [Anders_Hjelm] 2006-03 +ecwcfg 2263/udp # ECweb Configuration Service [Anders_Hjelm] [Anders_Hjelm] 2006-03 +apx500api-1 2264/tcp # Audio Precision Apx500 API +# Port 1 +apx500api-1 2264/udp # Audio Precision Apx500 API +apx500api-2 2265/tcp # Audio Precision Apx500 API [Robert_Wright] [Robert_Wright] +# Port 2 +apx500api-2 2265/udp # Audio Precision Apx500 API [Robert_Wright] [Robert_Wright] +mfserver 2266/tcp # M-Files Server [Samppa_Lahtinen] [Samppa_Lahtinen] 2004-06 +mfserver 2266/udp # M-files Server [Samppa_Lahtinen] [Samppa_Lahtinen] 2004-06 +ontobroker 2267/tcp # OntoBroker [Dr_Michael_Erdmann] [Dr_Michael_Erdmann] 2004-12 +ontobroker 2267/udp # OntoBroker [Dr_Michael_Erdmann] [Dr_Michael_Erdmann] 2004-12 +amt 2268/tcp # AMT [Tom_Pusateri] [Tom_Pusateri] 2004-12 +amt 2268/udp # AMT [Tom_Pusateri] [Tom_Pusateri] 2004-12 +mikey 2269/tcp # MIKEY [Karl_Norrman] [Karl_Norrman] 2004-12 +mikey 2269/udp # MIKEY [Karl_Norrman] [Karl_Norrman] 2004-12 +starschool 2270/tcp # starSchool [Adam_Ernst] [Adam_Ernst] 2004-12 +starschool 2270/udp # starSchool [Adam_Ernst] [Adam_Ernst] 2004-12 +mmcals 2271/tcp # Secure Meeting Maker +# Scheduling +mmcals 2271/udp # Secure Meeting Maker +mmcal 2272/tcp # Meeting Maker Scheduling [Andrew_H_Derbyshire] [Andrew_H_Derbyshire] 2004-12 +mmcal 2272/udp # Meeting Maker Scheduling [Andrew_H_Derbyshire] [Andrew_H_Derbyshire] 2004-12 +mysql-im 2273/tcp # MySQL Instance Manager [Petr_Chardin] [Petr_Chardin] 2004-12 +mysql-im 2273/udp # MySQL Instance Manager [Petr_Chardin] [Petr_Chardin] 2004-12 +pcttunnell 2274/tcp # PCTTunneller [ProControl_Technolog] [ProControl_Technolog] 2004-12 +pcttunnell 2274/udp # PCTTunneller [ProControl_Technolog] [ProControl_Technolog] 2004-12 +ibridge-data 2275/tcp # iBridge Conferencing +ibridge-data 2275/udp # iBridge Conferencing +ibridge-mgmt 2276/tcp # iBridge Management [Patrick_Fisher] [Patrick_Fisher] 2004-12 +ibridge-mgmt 2276/udp # iBridge Management [Patrick_Fisher] [Patrick_Fisher] 2004-12 +bluectrlproxy 2277/tcp # Bt device control proxy [Mark_de_Rooi] [Mark_de_Rooi] 2004-12 +bluectrlproxy 2277/udp # Bt device control proxy [Mark_de_Rooi] [Mark_de_Rooi] 2004-12 +s3db 2278/tcp # Simple Stacked Sequences [David_Brandon] [David_Brandon] 2006-08 +# Database +s3db 2278/udp # Simple Stacked Sequences [David_Brandon] [David_Brandon] 2006-08 +xmquery 2279/tcp # xmquery [Niels_Christiansen] [Niels_Christiansen] +xmquery 2279/udp # xmquery [Niels_Christiansen] [Niels_Christiansen] +lnvpoller 2280/tcp # LNVPOLLER +lnvpoller 2280/udp # LNVPOLLER +lnvconsole 2281/tcp # LNVCONSOLE +lnvconsole 2281/udp # LNVCONSOLE +lnvalarm 2282/tcp # LNVALARM +lnvalarm 2282/udp # LNVALARM +lnvstatus 2283/tcp # LNVSTATUS +lnvstatus 2283/udp # LNVSTATUS +lnvmaps 2284/tcp # LNVMAPS +lnvmaps 2284/udp # LNVMAPS +lnvmailmon 2285/tcp # LNVMAILMON [John_Payne] [John_Payne] +lnvmailmon 2285/udp # LNVMAILMON [John_Payne] [John_Payne] +nas-metering 2286/tcp # NAS-Metering [Steven_Sawkins] [Steven_Sawkins] +nas-metering 2286/udp # NAS-Metering [Steven_Sawkins] [Steven_Sawkins] +dna 2287/tcp # DNA [Tung_Nguyen] [Tung_Nguyen] +dna 2287/udp # DNA [Tung_Nguyen] [Tung_Nguyen] +netml 2288/tcp # NETML [Jochen_Hansmeyer] [Jochen_Hansmeyer] +netml 2288/udp # NETML [Jochen_Hansmeyer] [Jochen_Hansmeyer] +dict-lookup 2289/tcp # Lookup dict server [William_Fernando_Mat] [William_Fernando_Mat] 2005-01 +dict-lookup 2289/udp # Lookup dict server [William_Fernando_Mat] [William_Fernando_Mat] 2005-01 +sonus-logging 2290/tcp # Sonus Logging Services [Adwait_Sathe] [Adwait_Sathe] 2005-08 +sonus-logging 2290/udp # Sonus Logging Services [Adwait_Sathe] [Adwait_Sathe] 2005-08 +eapsp 2291/tcp # EPSON Advanced Printer Share [SEIKO_EPSON] [SEIKO_EPSON] 2006-06 +eapsp 2291/udp # EPSON Advanced Printer Share [SEIKO_EPSON] [SEIKO_EPSON] 2006-06 +mib-streaming 2292/tcp # Sonus Element Management [Linda_Lin] [Linda_Lin] 2006-08 +mib-streaming 2292/udp # Sonus Element Management [Linda_Lin] [Linda_Lin] 2006-08 +npdbgmngr 2293/tcp # Network Platform Debug [Robert_Byrne] [Robert_Byrne] 2006-09 +npdbgmngr 2293/udp # Network Platform Debug [Robert_Byrne] [Robert_Byrne] 2006-09 +konshus-lm 2294/tcp # Konshus License Manager [Francois_Painchaud] [Francois_Painchaud] +# (FLEX) +konshus-lm 2294/udp # Konshus License Manager [Francois_Painchaud] [Francois_Painchaud] +advant-lm 2295/tcp # Advant License Manager [Lars_Goran_Magnusson] [Lars_Goran_Magnusson] +advant-lm 2295/udp # Advant License Manager [Lars_Goran_Magnusson] [Lars_Goran_Magnusson] +theta-lm 2296/tcp # Theta License Manager [David_Thompson] [David_Thompson] +# (Rainbow) +theta-lm 2296/udp # Theta License Manager [David_Thompson] [David_Thompson] +d2k-datamover1 2297/tcp # D2K DataMover 1 +d2k-datamover1 2297/udp # D2K DataMover 1 +d2k-datamover2 2298/tcp # D2K DataMover 2 [Eric_Lan] [Eric_Lan] +d2k-datamover2 2298/udp # D2K DataMover 2 [Eric_Lan] [Eric_Lan] +pc-telecommute 2299/tcp # PC Telecommute [John_Daniel_Bonamico] [John_Daniel_Bonamico] +pc-telecommute 2299/udp # PC Telecommute [John_Daniel_Bonamico] [John_Daniel_Bonamico] +cvmmon 2300/tcp # CVMMON [Roger_Kumpf] [Roger_Kumpf] +cvmmon 2300/udp # CVMMON [Roger_Kumpf] [Roger_Kumpf] +cpq-wbem 2301/tcp # Compaq HTTP [Scott_Shaffer] [Scott_Shaffer] +cpq-wbem 2301/udp # Compaq HTTP [Scott_Shaffer] [Scott_Shaffer] +binderysupport 2302/tcp # Bindery Support [Narasimha_Rao_N] [Narasimha_Rao_N] +binderysupport 2302/udp # Bindery Support [Narasimha_Rao_N] [Narasimha_Rao_N] +proxy-gateway 2303/tcp # Proxy Gateway [Paul_Funk] [Paul_Funk] +proxy-gateway 2303/udp # Proxy Gateway [Paul_Funk] [Paul_Funk] +attachmate-uts 2304/tcp # Attachmate UTS [George_Gianelos] [George_Gianelos] +attachmate-uts 2304/udp # Attachmate UTS [George_Gianelos] [George_Gianelos] +mt-scaleserver 2305/tcp # MT ScaleServer [Paul_Glaubitz] [Paul_Glaubitz] +mt-scaleserver 2305/udp # MT ScaleServer [Paul_Glaubitz] [Paul_Glaubitz] +tappi-boxnet 2306/tcp # TAPPI BoxNet [Richard_Spartz] [Richard_Spartz] +tappi-boxnet 2306/udp # TAPPI BoxNet [Richard_Spartz] [Richard_Spartz] +pehelp 2307/tcp # pehelp [Jens_Kilian] [Jens_Kilian] +pehelp 2307/udp # pehelp [Jens_Kilian] [Jens_Kilian] +sdhelp 2308/tcp # sdhelp [Annette_Klecha] [Annette_Klecha] +sdhelp 2308/udp # sdhelp [Annette_Klecha] [Annette_Klecha] +sdserver 2309/tcp # SD Server +sdserver 2309/udp # SD Server +sdclient 2310/tcp # SD Client [Jeurgen_Broesamle] [Jeurgen_Broesamle] +sdclient 2310/udp # SD Client [Jeurgen_Broesamle] [Jeurgen_Broesamle] +messageservice 2311/tcp # Message Service +messageservice 2311/udp # Message Service +wanscaler 2312/tcp # WANScaler Communication [Allen_Samuels] [Allen_Samuels] 2006-11 +wanscaler 2312/udp # WANScaler Communication [Allen_Samuels] [Allen_Samuels] 2006-11 +iapp 2313/tcp # IAPP (Inter Access Point [Henri_Moelard] [Henri_Moelard] +iapp 2313/udp # IAPP (Inter Access Point [Henri_Moelard] [Henri_Moelard] +cr-websystems 2314/tcp # CR WebSystems [Robin_Giese] [Robin_Giese] +cr-websystems 2314/udp # CR WebSystems [Robin_Giese] [Robin_Giese] +precise-sft 2315/tcp # Precise Sft. [Michael_Landwehr] [Michael_Landwehr] +precise-sft 2315/udp # Precise Sft. [Michael_Landwehr] [Michael_Landwehr] +sent-lm 2316/tcp # SENT License Manager [Pisharath_Krishnan] [Pisharath_Krishnan] +sent-lm 2316/udp # SENT License Manager [Pisharath_Krishnan] [Pisharath_Krishnan] +attachmate-g32 2317/tcp # Attachmate G32 [Bryce_Bhatnagar] [Bryce_Bhatnagar] +attachmate-g32 2317/udp # Attachmate G32 [Bryce_Bhatnagar] [Bryce_Bhatnagar] +cadencecontrol 2318/tcp # Cadence Control [Buck_Caldwell] [Buck_Caldwell] +cadencecontrol 2318/udp # Cadence Control [Buck_Caldwell] [Buck_Caldwell] +infolibria 2319/tcp # InfoLibria [Chris_Chiotasso] [Chris_Chiotasso] +infolibria 2319/udp # InfoLibria [Chris_Chiotasso] [Chris_Chiotasso] +siebel-ns 2320/tcp # Siebel NS [Gilberto_Arnaiz] [Gilberto_Arnaiz] +siebel-ns 2320/udp # Siebel NS [Gilberto_Arnaiz] [Gilberto_Arnaiz] +rdlap 2321/tcp # RDLAP [Robert_Wiebe] [Robert_Wiebe] +rdlap 2321/udp # RDLAP [Robert_Wiebe] [Robert_Wiebe] +ofsd 2322/tcp # ofsd +ofsd 2322/udp # ofsd +3d-nfsd 2323/tcp # 3d-nfsd [Mike_Sherrill] [Mike_Sherrill] +3d-nfsd 2323/udp # 3d-nfsd [Mike_Sherrill] [Mike_Sherrill] +cosmocall 2324/tcp # Cosmocall [Steve_Dellutri] [Steve_Dellutri] +cosmocall 2324/udp # Cosmocall [Steve_Dellutri] [Steve_Dellutri] +ansysli 2325/tcp # ANSYS Licensing Interconnect [Suzanne_Lorrin] [Suzanne_Lorrin] Modified: 27 October 2008 +ansysli 2325/udp # ANSYS Licensing Interconnect [Suzanne_Lorrin] [Suzanne_Lorrin] Modified: 27 October 2008 +idcp 2326/tcp # IDCP [Keisokugiken_Corp] [Keisokugiken_Corp] +idcp 2326/udp # IDCP [Keisokugiken_Corp] [Keisokugiken_Corp] +xingcsm 2327/tcp # xingcsm [Dave_Spencer] [Dave_Spencer] +xingcsm 2327/udp # xingcsm [Dave_Spencer] [Dave_Spencer] +netrix-sftm 2328/tcp # Netrix SFTM [Garrett_Herschleb] [Garrett_Herschleb] +netrix-sftm 2328/udp # Netrix SFTM [Garrett_Herschleb] [Garrett_Herschleb] +nvd 2329/tcp # NVD [Peter_Weyman] [Peter_Weyman] +nvd 2329/udp # NVD [Peter_Weyman] [Peter_Weyman] +tscchat 2330/tcp # TSCCHAT [Mike_Jackson] [Mike_Jackson] +tscchat 2330/udp # TSCCHAT [Mike_Jackson] [Mike_Jackson] +agentview 2331/tcp # AGENTVIEW [Ram_Iyer] [Ram_Iyer] +agentview 2331/udp # AGENTVIEW [Ram_Iyer] [Ram_Iyer] +rcc-host 2332/tcp # RCC Host [Martin_Shoemaker] [Martin_Shoemaker] +rcc-host 2332/udp # RCC Host [Martin_Shoemaker] [Martin_Shoemaker] +snapp 2333/tcp # SNAPP [Dan_Burrows] [Dan_Burrows] 2009-09-25 +snapp 2333/udp # SNAPP [Dan_Burrows] [Dan_Burrows] 2009-09-25 +ace-client 2334/tcp # ACE Client Auth +ace-client 2334/udp # ACE Client Auth +ace-proxy 2335/tcp # ACE Proxy [Riaz_Zolfonoon] [Riaz_Zolfonoon] +ace-proxy 2335/udp # ACE Proxy [Riaz_Zolfonoon] [Riaz_Zolfonoon] +appleugcontrol 2336/tcp # Apple UG Control [Gene_Tyacke] [Gene_Tyacke] +appleugcontrol 2336/udp # Apple UG Control [Gene_Tyacke] [Gene_Tyacke] +ideesrv 2337/tcp # ideesrv [Marazzi] [Marazzi] +ideesrv 2337/udp # ideesrv [Marazzi] [Marazzi] +norton-lambert 2338/tcp # Norton Lambert [Richard_de_Mornay] [Richard_de_Mornay] +norton-lambert 2338/udp # Norton Lambert [Richard_de_Mornay] [Richard_de_Mornay] +3com-webview 2339/tcp # 3Com WebView [Jennifer_Grace] [Jennifer_Grace] +3com-webview 2339/udp # 3Com WebView [Jennifer_Grace] [Jennifer_Grace] +# WRS Registry +# +wrs-registry 2340/tcp # IANA assigned this [Christophe_Cleraux] [Christophe_Cleraux] +# "wrs_registry". +# This entry is an alias to "wrs-registry". This entry is now +wrs_registry 2340/tcp # WRS Registry [Christophe_Cleraux] [Christophe_Cleraux] historic, not usable for use with many common service +# +wrs-registry 2340/udp # IANA assigned this [Christophe_Cleraux] [Christophe_Cleraux] +wrs_registry 2340/udp # WRS Registry [Christophe_Cleraux] [Christophe_Cleraux] historic, not usable for use with many common service +xiostatus 2341/tcp # XIO Status [Randy_Maas] [Randy_Maas] +xiostatus 2341/udp # XIO Status [Randy_Maas] [Randy_Maas] +manage-exec 2342/tcp # Seagate Manage Exec [Jim_Flaherty] [Jim_Flaherty] +manage-exec 2342/udp # Seagate Manage Exec [Jim_Flaherty] [Jim_Flaherty] +nati-logos 2343/tcp # nati logos [James_Juhasz] [James_Juhasz] +nati-logos 2343/udp # nati logos [James_Juhasz] [James_Juhasz] +fcmsys 2344/tcp # fcmsys +fcmsys 2344/udp # fcmsys +dbm 2345/tcp # dbm [Dean_Robson] [Dean_Robson] +dbm 2345/udp # dbm [Dean_Robson] [Dean_Robson] +# Game Connection Port +# +redstorm-join 2346/tcp # IANA assigned this +# "redstorm_join". +# This entry is an alias to "redstorm-join". This entry is now +redstorm_join 2346/tcp # Game Connection Port historic, not usable for use with many common service +# +redstorm-join 2346/udp # IANA assigned this +redstorm_join 2346/udp # Game Connection Port historic, not usable for use with many common service +# Game Announcement and +# Location +# +redstorm-find 2347/tcp # IANA assigned this +# "redstorm_find". +# Game Announcement and This entry is an alias to "redstorm-find". This entry is now +redstorm_find 2347/tcp # Location historic, not usable for use with many common service +# +redstorm-find 2347/udp # IANA assigned this +redstorm_find 2347/udp # Location historic, not usable for use with many common service +# Information to query for +# game status +# +redstorm-info 2348/tcp # IANA assigned this +# "redstorm_info". +# Information to query for This entry is an alias to "redstorm-info". This entry is now +redstorm_info 2348/tcp # game status historic, not usable for use with many common service +# +redstorm-info 2348/udp # IANA assigned this +redstorm_info 2348/udp # game status historic, not usable for use with many common service +# Diagnostics Port +# +redstorm-diag 2349/tcp # IANA assigned this [David_Weinstein] [David_Weinstein] +# "redstorm_diag". +# This entry is an alias to "redstorm-diag". This entry is now +redstorm_diag 2349/tcp # Diagnostics Port [David_Weinstein] [David_Weinstein] historic, not usable for use with many common service +# +redstorm-diag 2349/udp # IANA assigned this [David_Weinstein] [David_Weinstein] +redstorm_diag 2349/udp # Diagnostics Port [David_Weinstein] [David_Weinstein] historic, not usable for use with many common service +psbserver 2350/tcp # Pharos Booking Server +psbserver 2350/udp # Pharos Booking Server +psrserver 2351/tcp # psrserver +psrserver 2351/udp # psrserver +pslserver 2352/tcp # pslserver +pslserver 2352/udp # pslserver +pspserver 2353/tcp # pspserver +pspserver 2353/udp # pspserver +psprserver 2354/tcp # psprserver +psprserver 2354/udp # psprserver +psdbserver 2355/tcp # psdbserver [Paul_Reddy] [Paul_Reddy] +psdbserver 2355/udp # psdbserver [Paul_Reddy] [Paul_Reddy] +gxtelmd 2356/tcp # GXT License Managemant [Robert_Hodgson] [Robert_Hodgson] +gxtelmd 2356/udp # GXT License Managemant [Robert_Hodgson] [Robert_Hodgson] +unihub-server 2357/tcp # UniHub Server [Tim_Kenyon] [Tim_Kenyon] +unihub-server 2357/udp # UniHub Server [Tim_Kenyon] [Tim_Kenyon] +futrix 2358/tcp # Futrix [Peter_Frankenberg] [Peter_Frankenberg] +futrix 2358/udp # Futrix [Peter_Frankenberg] [Peter_Frankenberg] +flukeserver 2359/tcp # FlukeServer [Bill_Marbaker] [Bill_Marbaker] +flukeserver 2359/udp # FlukeServer [Bill_Marbaker] [Bill_Marbaker] +nexstorindltd 2360/tcp # NexstorIndLtd [NexStor_India_Limite] [NexStor_India_Limite] +nexstorindltd 2360/udp # NexstorIndLtd [NexStor_India_Limite] [NexStor_India_Limite] +tl1 2361/tcp # TL1 [Charles_Scott_Robers] [Charles_Scott_Robers] +tl1 2361/udp # TL1 [Charles_Scott_Robers] [Charles_Scott_Robers] +digiman 2362/tcp # digiman [Aaron_S_Kurland] [Aaron_S_Kurland] +digiman 2362/udp # digiman [Aaron_S_Kurland] [Aaron_S_Kurland] +mediacntrlnfsd 2363/tcp # Media Central NFSD [Shivakumar_S_Govind] [Shivakumar_S_Govind] +mediacntrlnfsd 2363/udp # Media Central NFSD [Shivakumar_S_Govind] [Shivakumar_S_Govind] +oi-2000 2364/tcp # OI-2000 [Software_Horizons_In] [Software_Horizons_In] +oi-2000 2364/udp # OI-2000 [Software_Horizons_In] [Software_Horizons_In] +dbref 2365/tcp # dbref [Yoshihiro_Yamazaki] [Yoshihiro_Yamazaki] +dbref 2365/udp # dbref [Yoshihiro_Yamazaki] [Yoshihiro_Yamazaki] +qip-login 2366/tcp # qip-login [Mike_Morgan] [Mike_Morgan] +qip-login 2366/udp # qip-login [Mike_Morgan] [Mike_Morgan] +service-ctrl 2367/tcp # Service Control [Humberto_Sanchez] [Humberto_Sanchez] +service-ctrl 2367/udp # Service Control [Humberto_Sanchez] [Humberto_Sanchez] +opentable 2368/tcp # OpenTable [Brett_Goldstein] [Brett_Goldstein] +opentable 2368/udp # OpenTable [Brett_Goldstein] [Brett_Goldstein] +# 2369 Unassigned De-registered (28 March 2006) +# Port 2370 +l3-hbmon 2370/tcp # L3-HBMon [Dolores_Scott] [Dolores_Scott] Unofficially +# used by +# Compaq +l3-hbmon 2370/udp # L3-HBMon [Dolores_Scott] [Dolores_Scott] Unofficially +worldwire 2371/tcp # Compaq WorldWire Port [Michael_Spratte] [Michael_Spratte] +worldwire 2371/udp # Compaq WorldWire Port [Michael_Spratte] [Michael_Spratte] +lanmessenger 2372/tcp # LanMessenger [Garrett_Padera] [Garrett_Padera] 2008-02-01 +lanmessenger 2372/udp # LanMessenger [Garrett_Padera] [Garrett_Padera] 2008-02-01 +remographlm 2373/tcp # Remograph License Manager [Per_Fahlberg] [Per_Fahlberg] 2009-01-21 +# 2373 udp Reserved +hydra 2374/tcp # Hydra RPC [Jacob_Feisley] [Jacob_Feisley] 2009-01-21 +# 2374 udp Reserved +# 2375-2380 Unassigned +compaq-https 2381/tcp # Compaq HTTPS [Scott_Shaffer] [Scott_Shaffer] +compaq-https 2381/udp # Compaq HTTPS [Scott_Shaffer] [Scott_Shaffer] +ms-olap3 2382/tcp # Microsoft OLAP +ms-olap3 2382/udp # Microsoft OLAP +ms-olap4 2383/tcp # Microsoft OLAP [Mosha_Pasumansky] [Mosha_Pasumansky] +ms-olap4 2383/udp # Microsoft OLAP [Mosha_Pasumansky] [Mosha_Pasumansky] +sd-request 2384/tcp # SD-REQUEST +sd-capacity 2384/udp # SD-CAPACITY [Jason_McManus_2] [Jason_McManus_2] +sd-data 2385/tcp # SD-DATA [Jason_McManus_2] [Jason_McManus_2] +sd-data 2385/udp # SD-DATA [Jason_McManus_2] [Jason_McManus_2] +virtualtape 2386/tcp # Virtual Tape +virtualtape 2386/udp # Virtual Tape +vsamredirector 2387/tcp # VSAM Redirector [Ingo_Franzki] [Ingo_Franzki] +vsamredirector 2387/udp # VSAM Redirector [Ingo_Franzki] [Ingo_Franzki] +mynahautostart 2388/tcp # MYNAH AutoStart [Thomas_J_Klehr] [Thomas_J_Klehr] +mynahautostart 2388/udp # MYNAH AutoStart [Thomas_J_Klehr] [Thomas_J_Klehr] +ovsessionmgr 2389/tcp # OpenView Session Mgr [Eric_Pulsipher] [Eric_Pulsipher] +ovsessionmgr 2389/udp # OpenView Session Mgr [Eric_Pulsipher] [Eric_Pulsipher] +rsmtp 2390/tcp # RSMTP [Geoff_Collyer] [Geoff_Collyer] +rsmtp 2390/udp # RSMTP [Geoff_Collyer] [Geoff_Collyer] +3com-net-mgmt 2391/tcp # 3COM Net Management [Prathibha_Nagvar] [Prathibha_Nagvar] +3com-net-mgmt 2391/udp # 3COM Net Management [Prathibha_Nagvar] [Prathibha_Nagvar] +tacticalauth 2392/tcp # Tactical Auth [David_Yon] [David_Yon] +tacticalauth 2392/udp # Tactical Auth [David_Yon] [David_Yon] +ms-olap1 2393/tcp # MS OLAP 1 +ms-olap1 2393/udp # MS OLAP 1 +ms-olap2 2394/tcp # MS OLAP 2 [Mosha_Pasumansky] [Mosha_Pasumansky] +ms-olap2 2394/udp # MS OLAP 2 [Mosha_Pasumansky] [Mosha_Pasumansky] +# LAN900 Remote +# +lan900-remote 2395/tcp # IANA assigned this [Tom_Quinlan] [Tom_Quinlan] +# "lan900_remote". +# This entry is an alias to "lan900-remote". This entry is now +lan900_remote 2395/tcp # LAN900 Remote [Tom_Quinlan] [Tom_Quinlan] historic, not usable for use with many common service +# +lan900-remote 2395/udp # IANA assigned this [Tom_Quinlan] [Tom_Quinlan] +lan900_remote 2395/udp # LAN900 Remote [Tom_Quinlan] [Tom_Quinlan] historic, not usable for use with many common service +wusage 2396/tcp # Wusage [Thomas_Boutell] [Thomas_Boutell] +wusage 2396/udp # Wusage [Thomas_Boutell] [Thomas_Boutell] +ncl 2397/tcp # NCL [Robert_Wiebe] [Robert_Wiebe] +ncl 2397/udp # NCL [Robert_Wiebe] [Robert_Wiebe] +orbiter 2398/tcp # Orbiter [David_Goldberg] [David_Goldberg] +orbiter 2398/udp # Orbiter [David_Goldberg] [David_Goldberg] +fmpro-fdal 2399/tcp # FileMaker, Inc. - Data [Clay_Maeckal] [Clay_Maeckal] +# Access Layer +fmpro-fdal 2399/udp # FileMaker, Inc. - Data [Clay_Maeckal] [Clay_Maeckal] +opequus-server 2400/tcp # OpEquus Server [Gavin_Hutchinson_2] [Gavin_Hutchinson_2] +opequus-server 2400/udp # OpEquus Server [Gavin_Hutchinson_2] [Gavin_Hutchinson_2] +cvspserver 2401/tcp # cvspserver [Jim_Kingdon] [Jim_Kingdon] +cvspserver 2401/udp # cvspserver [Jim_Kingdon] [Jim_Kingdon] +taskmaster2000 2402/tcp # TaskMaster 2000 Server +taskmaster2000 2402/udp # TaskMaster 2000 Server +taskmaster2000 2403/tcp # TaskMaster 2000 Web [Ed_Odjaghian] [Ed_Odjaghian] +taskmaster2000 2403/udp # TaskMaster 2000 Web [Ed_Odjaghian] [Ed_Odjaghian] +iec-104 2404/tcp # IEC 60870-5-104 process [Walter_K_Eichelburg] [Walter_K_Eichelburg] +# control over IP +iec-104 2404/udp # IEC 60870-5-104 process [Walter_K_Eichelburg] [Walter_K_Eichelburg] +trc-netpoll 2405/tcp # TRC Netpoll [Bizhan_Ghavami] [Bizhan_Ghavami] +trc-netpoll 2405/udp # TRC Netpoll [Bizhan_Ghavami] [Bizhan_Ghavami] +jediserver 2406/tcp # JediServer [Paul_McEntire] [Paul_McEntire] +jediserver 2406/udp # JediServer [Paul_McEntire] [Paul_McEntire] +orion 2407/tcp # Orion [Matthew_Horoschun] [Matthew_Horoschun] +orion 2407/udp # Orion [Matthew_Horoschun] [Matthew_Horoschun] +railgun-webaccl 2408/tcp # CloudFlare Railgun Web [CloudFlare] [John_Graham_Cumming] 2012-03-09 +# Acceleration Protocol +# 2408 udp Reserved 2012-03-09 This entry is being removed on 2012-03-09. +sns-protocol 2409/tcp # SNS Protocol [Amir_Blich] [Amir_Blich] +sns-protocol 2409/udp # SNS Protocol [Amir_Blich] [Amir_Blich] +vrts-registry 2410/tcp # VRTS Registry [Pranay_Varma] [Pranay_Varma] +vrts-registry 2410/udp # VRTS Registry [Pranay_Varma] [Pranay_Varma] +netwave-ap-mgmt 2411/tcp # Netwave AP Management [Johnny_Zweig] [Johnny_Zweig] +netwave-ap-mgmt 2411/udp # Netwave AP Management [Johnny_Zweig] [Johnny_Zweig] +cdn 2412/tcp # CDN [Alan_Noble] [Alan_Noble] +cdn 2412/udp # CDN [Alan_Noble] [Alan_Noble] +orion-rmi-reg 2413/tcp # orion-rmi-reg [J_S_Greenfield_2] [J_S_Greenfield_2] +orion-rmi-reg 2413/udp # orion-rmi-reg [J_S_Greenfield_2] [J_S_Greenfield_2] +beeyond 2414/tcp # Beeyond [Bob_Deblier] [Bob_Deblier] +beeyond 2414/udp # Beeyond [Bob_Deblier] [Bob_Deblier] +codima-rtp 2415/tcp # Codima Remote Transaction [Sylvia_Ross] [Sylvia_Ross] +codima-rtp 2415/udp # Codima Remote Transaction [Sylvia_Ross] [Sylvia_Ross] +rmtserver 2416/tcp # RMT Server [Yvon_Marineau] [Yvon_Marineau] +rmtserver 2416/udp # RMT Server [Yvon_Marineau] [Yvon_Marineau] +composit-server 2417/tcp # Composit Server [Katsuaki_Naoi] [Katsuaki_Naoi] +composit-server 2417/udp # Composit Server [Katsuaki_Naoi] [Katsuaki_Naoi] +cas 2418/tcp # cas [Akiyoshi_Ochi] [Akiyoshi_Ochi] +cas 2418/udp # cas [Akiyoshi_Ochi] [Akiyoshi_Ochi] +attachmate-s2s 2419/tcp # Attachmate S2S [Chris_Rominski] [Chris_Rominski] +attachmate-s2s 2419/udp # Attachmate S2S [Chris_Rominski] [Chris_Rominski] +dslremote-mgmt 2420/tcp # DSL Remote Management [Westell] [Westell] +dslremote-mgmt 2420/udp # DSL Remote Management [Westell] [Westell] +g-talk 2421/tcp # G-Talk [Matt_Hammond] [Matt_Hammond] +g-talk 2421/udp # G-Talk [Matt_Hammond] [Matt_Hammond] +crmsbits 2422/tcp # CRMSBITS [Rod_Ward] [Rod_Ward] +crmsbits 2422/udp # CRMSBITS [Rod_Ward] [Rod_Ward] +rnrp 2423/tcp # RNRP [Per_Sahlqvist] [Per_Sahlqvist] +rnrp 2423/udp # RNRP [Per_Sahlqvist] [Per_Sahlqvist] +kofax-svr 2424/tcp # KOFAX-SVR [Steven_Kilby] [Steven_Kilby] 2011-04-25 +kofax-svr 2424/udp # KOFAX-SVR [Steven_Kilby] [Steven_Kilby] 2011-04-25 +fjitsuappmgr 2425/tcp # Fujitsu App Manager [Hiroyuki_Kawabuchi] [Hiroyuki_Kawabuchi] +fjitsuappmgr 2425/udp # Fujitsu App Manager [Hiroyuki_Kawabuchi] [Hiroyuki_Kawabuchi] +# 2426 Unassigned 2002-04-29 +mgcp-gateway 2427/tcp # Media Gateway Control [Christian_Huitema] [Christian_Huitema] +# Protocol Gateway +mgcp-gateway 2427/udp # Media Gateway Control [Christian_Huitema] [Christian_Huitema] +ott 2428/tcp # One Way Trip Time [Greg_Troxel] [Greg_Troxel] +ott 2428/udp # One Way Trip Time [Greg_Troxel] [Greg_Troxel] +ft-role 2429/tcp # FT-ROLE [Doug_Boone] [Doug_Boone] +ft-role 2429/udp # FT-ROLE [Doug_Boone] [Doug_Boone] +venus 2430/tcp # venus +venus 2430/udp # venus +venus-se 2431/tcp # venus-se +venus-se 2431/udp # venus-se +codasrv 2432/tcp # codasrv +codasrv 2432/udp # codasrv +codasrv-se 2433/tcp # codasrv-se [Robert_Watson] [Robert_Watson] +codasrv-se 2433/udp # codasrv-se [Robert_Watson] [Robert_Watson] +pxc-epmap 2434/tcp # pxc-epmap [Jun_Nakamura] [Jun_Nakamura] +pxc-epmap 2434/udp # pxc-epmap [Jun_Nakamura] [Jun_Nakamura] +optilogic 2435/tcp # OptiLogic [Clark_Williams] [Clark_Williams] +optilogic 2435/udp # OptiLogic [Clark_Williams] [Clark_Williams] +topx 2436/tcp # TOP/X [Dragos_Pop] [Dragos_Pop] +topx 2436/udp # TOP/X [Dragos_Pop] [Dragos_Pop] +unicontrol 2437/tcp # UniControl [Ing_Markus_Huemer] [Ing_Markus_Huemer] +unicontrol 2437/udp # UniControl [Ing_Markus_Huemer] [Ing_Markus_Huemer] +msp 2438/tcp # MSP [Evan_Caves] [Evan_Caves] +msp 2438/udp # MSP [Evan_Caves] [Evan_Caves] +sybasedbsynch 2439/tcp # SybaseDBSynch [Dave_Neudoerffer] [Dave_Neudoerffer] +sybasedbsynch 2439/udp # SybaseDBSynch [Dave_Neudoerffer] [Dave_Neudoerffer] +spearway 2440/tcp # Spearway Lockers [Pierre_Frisch] [Pierre_Frisch] +spearway 2440/udp # Spearway Lockers [Pierre_Frisch] [Pierre_Frisch] +pvsw-inet 2441/tcp # Pervasive I*net Data Server [Chuck_Talk] [Chuck_Talk] +pvsw-inet 2441/udp # Pervasive I*net Data Server [Chuck_Talk] [Chuck_Talk] +netangel 2442/tcp # Netangel [Ladislav_Baranyay] [Ladislav_Baranyay] +netangel 2442/udp # Netangel [Ladislav_Baranyay] [Ladislav_Baranyay] +powerclientcsf 2443/tcp # PowerClient Central Storage [Brian_Klassen] [Brian_Klassen] +powerclientcsf 2443/udp # PowerClient Central Storage [Brian_Klassen] [Brian_Klassen] +btpp2sectrans 2444/tcp # BT PP2 Sectrans [Ian_Daniels] [Ian_Daniels] +btpp2sectrans 2444/udp # BT PP2 Sectrans [Ian_Daniels] [Ian_Daniels] +dtn1 2445/tcp # DTN1 [Bob_Gaddie] [Bob_Gaddie] +dtn1 2445/udp # DTN1 [Bob_Gaddie] [Bob_Gaddie] +# bues_service +# +bues-service 2446/tcp # IANA assigned this [Leonhard_Diekmann] [Leonhard_Diekmann] +# "bues_service". +# This entry is an alias to "bues-service". This entry is now +bues_service 2446/tcp # bues_service [Leonhard_Diekmann] [Leonhard_Diekmann] historic, not usable for use with many common service +# +bues-service 2446/udp # IANA assigned this [Leonhard_Diekmann] [Leonhard_Diekmann] +bues_service 2446/udp # bues_service [Leonhard_Diekmann] [Leonhard_Diekmann] historic, not usable for use with many common service +ovwdb 2447/tcp # OpenView NNM daemon [Eric_Pulsipher_2] [Eric_Pulsipher_2] +ovwdb 2447/udp # OpenView NNM daemon [Eric_Pulsipher_2] [Eric_Pulsipher_2] +hpppssvr 2448/tcp # hpppsvr [Bridgette_Landers] [Bridgette_Landers] +hpppssvr 2448/udp # hpppsvr [Bridgette_Landers] [Bridgette_Landers] +ratl 2449/tcp # RATL [Paul_Greenfield] [Paul_Greenfield] +ratl 2449/udp # RATL [Paul_Greenfield] [Paul_Greenfield] +netadmin 2450/tcp # netadmin +netadmin 2450/udp # netadmin +netchat 2451/tcp # netchat [Julian_Mehnle] [Julian_Mehnle] +netchat 2451/udp # netchat [Julian_Mehnle] [Julian_Mehnle] +snifferclient 2452/tcp # SnifferClient [Amy_Weaver_2] [Amy_Weaver_2] +snifferclient 2452/udp # SnifferClient [Amy_Weaver_2] [Amy_Weaver_2] +madge-ltd 2453/tcp # madge ltd [Mark_Lyall] [Mark_Lyall] +madge-ltd 2453/udp # madge ltd [Mark_Lyall] [Mark_Lyall] +indx-dds 2454/tcp # IndX-DDS [Paul_Carmichael] [Paul_Carmichael] +indx-dds 2454/udp # IndX-DDS [Paul_Carmichael] [Paul_Carmichael] +wago-io-system 2455/tcp # WAGO-IO-SYSTEM [Jorg_Hoffmann] [Jorg_Hoffmann] +wago-io-system 2455/udp # WAGO-IO-SYSTEM [Jorg_Hoffmann] [Jorg_Hoffmann] +altav-remmgt 2456/tcp # altav-remmgt [Gary_M_Allen] [Gary_M_Allen] +altav-remmgt 2456/udp # altav-remmgt [Gary_M_Allen] [Gary_M_Allen] +rapido-ip 2457/tcp # Rapido_IP [Man_Shuen_Cheung] [Man_Shuen_Cheung] +rapido-ip 2457/udp # Rapido_IP [Man_Shuen_Cheung] [Man_Shuen_Cheung] +griffin 2458/tcp # griffin [Tom_Taylor] [Tom_Taylor] +griffin 2458/udp # griffin [Tom_Taylor] [Tom_Taylor] +community 2459/tcp # Community [David_Schwartz] [David_Schwartz] +community 2459/udp # Community [David_Schwartz] [David_Schwartz] +ms-theater 2460/tcp # ms-theater [Anton_Kucer] [Anton_Kucer] +ms-theater 2460/udp # ms-theater [Anton_Kucer] [Anton_Kucer] +qadmifoper 2461/tcp # qadmifoper +qadmifoper 2461/udp # qadmifoper +qadmifevent 2462/tcp # qadmifevent [Pekka_Takaranta] [Pekka_Takaranta] +qadmifevent 2462/udp # qadmifevent [Pekka_Takaranta] [Pekka_Takaranta] +lsi-raid-mgmt 2463/tcp # LSI RAID Management [Kevin_Copas] [Kevin_Copas] 2008-02-07 +lsi-raid-mgmt 2463/udp # LSI RAID Management [Kevin_Copas] [Kevin_Copas] 2008-02-07 +direcpc-si 2464/tcp # DirecPC SI [Doug_Dillon] [Doug_Dillon] +direcpc-si 2464/udp # DirecPC SI [Doug_Dillon] [Doug_Dillon] +lbm 2465/tcp # Load Balance Management +lbm 2465/udp # Load Balance Management +lbf 2466/tcp # Load Balance Forwarding [Kazuhiro_Koide] [Kazuhiro_Koide] +lbf 2466/udp # Load Balance Forwarding [Kazuhiro_Koide] [Kazuhiro_Koide] +high-criteria 2467/tcp # High Criteria [Konstantin_Iavid] [Konstantin_Iavid] +high-criteria 2467/udp # High Criteria [Konstantin_Iavid] [Konstantin_Iavid] +qip-msgd 2468/tcp # qip_msgd [Mike_Morgan] [Mike_Morgan] +qip-msgd 2468/udp # qip_msgd [Mike_Morgan] [Mike_Morgan] +mti-tcs-comm 2469/tcp # MTI-TCS-COMM [Mario_Bonin] [Mario_Bonin] +mti-tcs-comm 2469/udp # MTI-TCS-COMM [Mario_Bonin] [Mario_Bonin] +taskman-port 2470/tcp # taskman port [Boris_Panteleev] [Boris_Panteleev] +taskman-port 2470/udp # taskman port [Boris_Panteleev] [Boris_Panteleev] +seaodbc 2471/tcp # SeaODBC [Adrian_Hornby] [Adrian_Hornby] +seaodbc 2471/udp # SeaODBC [Adrian_Hornby] [Adrian_Hornby] +c3 2472/tcp # C3 [Eckhard_Grieger] [Eckhard_Grieger] +c3 2472/udp # C3 [Eckhard_Grieger] [Eckhard_Grieger] +aker-cdp 2473/tcp # Aker-cdp [Rodrigo_Ormonde] [Rodrigo_Ormonde] +aker-cdp 2473/udp # Aker-cdp [Rodrigo_Ormonde] [Rodrigo_Ormonde] +vitalanalysis 2474/tcp # Vital Analysis [Srinivas_Reddy] [Srinivas_Reddy] +vitalanalysis 2474/udp # Vital Analysis [Srinivas_Reddy] [Srinivas_Reddy] +ace-server 2475/tcp # ACE Server +ace-server 2475/udp # ACE Server +ace-svr-prop 2476/tcp # ACE Server Propagation +ace-svr-prop 2476/udp # ACE Server Propagation +ssm-cvs 2477/tcp # SecurSight Certificate +# Valifation Service +ssm-cvs 2477/udp # SecurSight Certificate +ssm-cssps 2478/tcp # SecurSight Authentication +# Server (SSL) +ssm-cssps 2478/udp # SecurSight Authentication +ssm-els 2479/tcp # SecurSight Event Logging [John_Linn] [John_Linn] +ssm-els 2479/udp # SecurSight Event Logging [John_Linn] [John_Linn] +powerexchange 2480/tcp # Informatica PowerExchange [Dale_Norman] [Dale_Norman] +# Listener +powerexchange 2480/udp # Informatica PowerExchange [Dale_Norman] [Dale_Norman] +giop 2481/tcp # Oracle GIOP +giop 2481/udp # Oracle GIOP +giop-ssl 2482/tcp # Oracle GIOP SSL +giop-ssl 2482/udp # Oracle GIOP SSL +ttc 2483/tcp # Oracle TTC +ttc 2483/udp # Oracle TTC +ttc-ssl 2484/tcp # Oracle TTC SSL [Chandar_Venkataraman] [Chandar_Venkataraman] +ttc-ssl 2484/udp # Oracle TTC SSL [Chandar_Venkataraman] [Chandar_Venkataraman] +netobjects1 2485/tcp # Net Objects1 +netobjects1 2485/udp # Net Objects1 +netobjects2 2486/tcp # Net Objects2 [Francois_Granade] [Francois_Granade] +netobjects2 2486/udp # Net Objects2 [Francois_Granade] [Francois_Granade] +pns 2487/tcp # Policy Notice Service [Akiyoshi_Ochi] [Akiyoshi_Ochi] +pns 2487/udp # Policy Notice Service [Akiyoshi_Ochi] [Akiyoshi_Ochi] +moy-corp 2488/tcp # Moy Corporation [Gang_Gong_Moy] [Gang_Gong_Moy] +moy-corp 2488/udp # Moy Corporation [Gang_Gong_Moy] [Gang_Gong_Moy] +tsilb 2489/tcp # TSILB [James_Irwin] [James_Irwin] +tsilb 2489/udp # TSILB [James_Irwin] [James_Irwin] +qip-qdhcp 2490/tcp # qip_qdhcp [Mike_Morgan] [Mike_Morgan] +qip-qdhcp 2490/udp # qip_qdhcp [Mike_Morgan] [Mike_Morgan] +conclave-cpp 2491/tcp # Conclave CPP [Larry_Lipstone] [Larry_Lipstone] +conclave-cpp 2491/udp # Conclave CPP [Larry_Lipstone] [Larry_Lipstone] +groove 2492/tcp # GROOVE [Ray_Ozzie] [Ray_Ozzie] +groove 2492/udp # GROOVE [Ray_Ozzie] [Ray_Ozzie] +talarian-mqs 2493/tcp # Talarian MQS [Jim_Stabile] [Jim_Stabile] +talarian-mqs 2493/udp # Talarian MQS [Jim_Stabile] [Jim_Stabile] +bmc-ar 2494/tcp # BMC AR [Portnoy_Boxman] [Portnoy_Boxman] +bmc-ar 2494/udp # BMC AR [Portnoy_Boxman] [Portnoy_Boxman] +fast-rem-serv 2495/tcp # Fast Remote Services [Scott_St_Clair] [Scott_St_Clair] +fast-rem-serv 2495/udp # Fast Remote Services [Scott_St_Clair] [Scott_St_Clair] +dirgis 2496/tcp # DIRGIS [Deutschland_Informat] [Deutschland_Informat] +dirgis 2496/udp # DIRGIS [Deutschland_Informat] [Deutschland_Informat] +quaddb 2497/tcp # Quad DB [Jeff_Rosenthal] [Jeff_Rosenthal] +quaddb 2497/udp # Quad DB [Jeff_Rosenthal] [Jeff_Rosenthal] +odn-castraq 2498/tcp # ODN-CasTraq [Richard_Hodges_2] [Richard_Hodges_2] +odn-castraq 2498/udp # ODN-CasTraq [Richard_Hodges_2] [Richard_Hodges_2] +unicontrol 2499/tcp # UniControl [Ing_Markus_Huemer] [Ing_Markus_Huemer] +unicontrol 2499/udp # UniControl [Ing_Markus_Huemer] [Ing_Markus_Huemer] +rtsserv 2500/tcp # Resource Tracking system +rtsserv 2500/udp # Resource Tracking system +rtsclient 2501/tcp # Resource Tracking system [Aubrey_Turner] [Aubrey_Turner] +# client +rtsclient 2501/udp # Resource Tracking system [Aubrey_Turner] [Aubrey_Turner] +kentrox-prot 2502/tcp # Kentrox Protocol [Anil_Lakhwara] [Anil_Lakhwara] +kentrox-prot 2502/udp # Kentrox Protocol [Anil_Lakhwara] [Anil_Lakhwara] +nms-dpnss 2503/tcp # NMS-DPNSS [Jean_Christophe_Desi] [Jean_Christophe_Desi] +nms-dpnss 2503/udp # NMS-DPNSS [Jean_Christophe_Desi] [Jean_Christophe_Desi] +wlbs 2504/tcp # WLBS [William_Bain] [William_Bain] +wlbs 2504/udp # WLBS [William_Bain] [William_Bain] +ppcontrol 2505/tcp # PowerPlay Control [Max_Magliaro] [Max_Magliaro] 2004-11 +ppcontrol 2505/udp # PowerPlay Control [Max_Magliaro] [Max_Magliaro] 2004-11 +jbroker 2506/tcp # jbroker [Rohit_Garg_2] [Rohit_Garg_2] +jbroker 2506/udp # jbroker [Rohit_Garg_2] [Rohit_Garg_2] +spock 2507/tcp # spock [Jon_A_Christopher] [Jon_A_Christopher] +spock 2507/udp # spock [Jon_A_Christopher] [Jon_A_Christopher] +jdatastore 2508/tcp # JDataStore [Tod_Landis] [Tod_Landis] +jdatastore 2508/udp # JDataStore [Tod_Landis] [Tod_Landis] +fjmpss 2509/tcp # fjmpss [Makoto_Watanabe] [Makoto_Watanabe] +fjmpss 2509/udp # fjmpss [Makoto_Watanabe] [Makoto_Watanabe] +fjappmgrbulk 2510/tcp # fjappmgrbulk [Hiroyuki_Kawabuchi] [Hiroyuki_Kawabuchi] +fjappmgrbulk 2510/udp # fjappmgrbulk [Hiroyuki_Kawabuchi] [Hiroyuki_Kawabuchi] +metastorm 2511/tcp # Metastorm [Eric_Isom] [Eric_Isom] +metastorm 2511/udp # Metastorm [Eric_Isom] [Eric_Isom] +citrixima 2512/tcp # Citrix IMA +citrixima 2512/udp # Citrix IMA +citrixadmin 2513/tcp # Citrix ADMIN [Myk_Willis] [Myk_Willis] +citrixadmin 2513/udp # Citrix ADMIN [Myk_Willis] [Myk_Willis] +facsys-ntp 2514/tcp # Facsys NTP +facsys-ntp 2514/udp # Facsys NTP +facsys-router 2515/tcp # Facsys Router [Jeff_Hoffman] [Jeff_Hoffman] +facsys-router 2515/udp # Facsys Router [Jeff_Hoffman] [Jeff_Hoffman] +maincontrol 2516/tcp # Main Control [Nathan_Sadia] [Nathan_Sadia] +maincontrol 2516/udp # Main Control [Nathan_Sadia] [Nathan_Sadia] +call-sig-trans 2517/tcp # H.323 Annex E Call Control [ITU-T] [ITU-T_TSB] 2013-01-31 +# Signalling Transport +call-sig-trans 2517/udp # H.323 Annex E Call Control [ITU-T] [ITU-T_TSB] 2013-01-31 +willy 2518/tcp # Willy [Carl_Johan_Wik] [Carl_Johan_Wik] +willy 2518/udp # Willy [Carl_Johan_Wik] [Carl_Johan_Wik] +globmsgsvc 2519/tcp # globmsgsvc [David_Wiltz] [David_Wiltz] +globmsgsvc 2519/udp # globmsgsvc [David_Wiltz] [David_Wiltz] +pvsw 2520/tcp # Pervasive Listener [Chuck_Talk] [Chuck_Talk] +pvsw 2520/udp # Pervasive Listener [Chuck_Talk] [Chuck_Talk] +adaptecmgr 2521/tcp # Adaptec Manager [Mark_Parenti] [Mark_Parenti] +adaptecmgr 2521/udp # Adaptec Manager [Mark_Parenti] [Mark_Parenti] +windb 2522/tcp # WinDb [Larry_Traylor] [Larry_Traylor] +windb 2522/udp # WinDb [Larry_Traylor] [Larry_Traylor] +qke-llc-v3 2523/tcp # Qke LLC V.3 [Joerg_Niehoff] [Joerg_Niehoff] +qke-llc-v3 2523/udp # Qke LLC V.3 [Joerg_Niehoff] [Joerg_Niehoff] +optiwave-lm 2524/tcp # Optiwave License Management [Slawomir_Krzesinski] [Slawomir_Krzesinski] +optiwave-lm 2524/udp # Optiwave License Management [Slawomir_Krzesinski] [Slawomir_Krzesinski] +ms-v-worlds 2525/tcp # MS V-Worlds [Pete_Wong] [Pete_Wong] +ms-v-worlds 2525/udp # MS V-Worlds [Pete_Wong] [Pete_Wong] +ema-sent-lm 2526/tcp # EMA License Manager [Thaddeus_Perala] [Thaddeus_Perala] +ema-sent-lm 2526/udp # EMA License Manager [Thaddeus_Perala] [Thaddeus_Perala] +iqserver 2527/tcp # IQ Server [Nick_Straguzzi] [Nick_Straguzzi] +iqserver 2527/udp # IQ Server [Nick_Straguzzi] [Nick_Straguzzi] +# NCR CCL +# +ncr-ccl 2528/tcp # IANA assigned this [Amitava_Dutta] [Amitava_Dutta] +# a replacement for "ncr_ccl". +# This entry is an alias to "ncr-ccl". This entry is now +ncr_ccl 2528/tcp # NCR CCL [Amitava_Dutta] [Amitava_Dutta] historic, not usable for use with many common service +# +ncr-ccl 2528/udp # IANA assigned this [Amitava_Dutta] [Amitava_Dutta] +ncr_ccl 2528/udp # NCR CCL [Amitava_Dutta] [Amitava_Dutta] historic, not usable for use with many common service +utsftp 2529/tcp # UTS FTP [David_Moore] [David_Moore] +utsftp 2529/udp # UTS FTP [David_Moore] [David_Moore] +vrcommerce 2530/tcp # VR Commerce [Yosi_Mass] [Yosi_Mass] +vrcommerce 2530/udp # VR Commerce [Yosi_Mass] [Yosi_Mass] +ito-e-gui 2531/tcp # ITO-E GUI [Michael_Haeuptle] [Michael_Haeuptle] +ito-e-gui 2531/udp # ITO-E GUI [Michael_Haeuptle] [Michael_Haeuptle] +ovtopmd 2532/tcp # OVTOPMD [Eric_Pulsipher] [Eric_Pulsipher] +ovtopmd 2532/udp # OVTOPMD [Eric_Pulsipher] [Eric_Pulsipher] +snifferserver 2533/tcp # SnifferServer [Amy_Weaver_3] [Amy_Weaver_3] +snifferserver 2533/udp # SnifferServer [Amy_Weaver_3] [Amy_Weaver_3] +combox-web-acc 2534/tcp # Combox Web Access [Yochai_Cohen] [Yochai_Cohen] +combox-web-acc 2534/udp # Combox Web Access [Yochai_Cohen] [Yochai_Cohen] +madcap 2535/tcp # MADCAP [Stephen_Hanna_2] [Stephen_Hanna_2] +madcap 2535/udp # MADCAP [Stephen_Hanna_2] [Stephen_Hanna_2] +btpp2audctr1 2536/tcp # btpp2audctr1 [Ian_Daniels] [Ian_Daniels] +btpp2audctr1 2536/udp # btpp2audctr1 [Ian_Daniels] [Ian_Daniels] +upgrade 2537/tcp # Upgrade Protocol [Breck_Auten] [Breck_Auten] +upgrade 2537/udp # Upgrade Protocol [Breck_Auten] [Breck_Auten] +vnwk-prapi 2538/tcp # vnwk-prapi [John_Hasselkus] [John_Hasselkus] +vnwk-prapi 2538/udp # vnwk-prapi [John_Hasselkus] [John_Hasselkus] +vsiadmin 2539/tcp # VSI Admin [Rob_Juergens] [Rob_Juergens] +vsiadmin 2539/udp # VSI Admin [Rob_Juergens] [Rob_Juergens] +lonworks 2540/tcp # LonWorks +lonworks 2540/udp # LonWorks +lonworks2 2541/tcp # LonWorks2 [Gary_Bartlett] [Gary_Bartlett] +lonworks2 2541/udp # LonWorks2 [Gary_Bartlett] [Gary_Bartlett] +udrawgraph 2542/tcp # uDraw(Graph) [Bremen] [Bremen] +udrawgraph 2542/udp # uDraw(Graph) [Bremen] [Bremen] +reftek 2543/tcp # REFTEK [Phil_Davidson] [Phil_Davidson] +reftek 2543/udp # REFTEK [Phil_Davidson] [Phil_Davidson] +novell-zen 2544/tcp # Management Daemon Refresh [Ty_Ellis] [Ty_Ellis] +novell-zen 2544/udp # Management Daemon Refresh [Ty_Ellis] [Ty_Ellis] +sis-emt 2545/tcp # sis-emt [Bill_Crawford] [Bill_Crawford] +sis-emt 2545/udp # sis-emt [Bill_Crawford] [Bill_Crawford] +vytalvaultbrtp 2546/tcp # vytalvaultbrtp +vytalvaultbrtp 2546/udp # vytalvaultbrtp +vytalvaultvsmp 2547/tcp # vytalvaultvsmp +vytalvaultvsmp 2547/udp # vytalvaultvsmp +vytalvaultpipe 2548/tcp # vytalvaultpipe [Tim_Boldt] [Tim_Boldt] +vytalvaultpipe 2548/udp # vytalvaultpipe [Tim_Boldt] [Tim_Boldt] +ipass 2549/tcp # IPASS [Michael_Fischer] [Michael_Fischer] +ipass 2549/udp # IPASS [Michael_Fischer] [Michael_Fischer] +ads 2550/tcp # ADS [Michael_O_Connor] [Michael_O_Connor] +ads 2550/udp # ADS [Michael_O_Connor] [Michael_O_Connor] +isg-uda-server 2551/tcp # ISG UDA Server [Dror_Harari] [Dror_Harari] +isg-uda-server 2551/udp # ISG UDA Server [Dror_Harari] [Dror_Harari] +call-logging 2552/tcp # Call Logging [Dean_Webb] [Dean_Webb] +call-logging 2552/udp # Call Logging [Dean_Webb] [Dean_Webb] +efidiningport 2553/tcp # efidiningport [Lynn_Carter] [Lynn_Carter] +efidiningport 2553/udp # efidiningport [Lynn_Carter] [Lynn_Carter] +vcnet-link-v10 2554/tcp # VCnet-Link v10 [Csaba_Mate] [Csaba_Mate] +vcnet-link-v10 2554/udp # VCnet-Link v10 [Csaba_Mate] [Csaba_Mate] +compaq-wcp 2555/tcp # Compaq WCP [Ferruccio_Barletta] [Ferruccio_Barletta] +compaq-wcp 2555/udp # Compaq WCP [Ferruccio_Barletta] [Ferruccio_Barletta] +nicetec-nmsvc 2556/tcp # nicetec-nmsvc +nicetec-nmsvc 2556/udp # nicetec-nmsvc +nicetec-mgmt 2557/tcp # nicetec-mgmt [Joerg_Paulus] [Joerg_Paulus] +nicetec-mgmt 2557/udp # nicetec-mgmt [Joerg_Paulus] [Joerg_Paulus] +pclemultimedia 2558/tcp # PCLE Multi Media [Jacob_Gsoedl] [Jacob_Gsoedl] +pclemultimedia 2558/udp # PCLE Multi Media [Jacob_Gsoedl] [Jacob_Gsoedl] +lstp 2559/tcp # LSTP [Waiki_Wright] [Waiki_Wright] +lstp 2559/udp # LSTP [Waiki_Wright] [Waiki_Wright] +labrat 2560/tcp # labrat [John_Harvey] [John_Harvey] +labrat 2560/udp # labrat [John_Harvey] [John_Harvey] +mosaixcc 2561/tcp # MosaixCC [Steven_Frare] [Steven_Frare] +mosaixcc 2561/udp # MosaixCC [Steven_Frare] [Steven_Frare] +delibo 2562/tcp # Delibo [NovaWiz_LTD] [NovaWiz_LTD] +delibo 2562/udp # Delibo [NovaWiz_LTD] [NovaWiz_LTD] +cti-redwood 2563/tcp # CTI Redwood [Songwon_Chi] [Songwon_Chi] +cti-redwood 2563/udp # CTI Redwood [Songwon_Chi] [Songwon_Chi] +hp-3000-telnet 2564/tcp # HP 3000 NS/VT block mode +# telnet +hp-3000-telnet 2564/udp # HP 3000 NS/VT block mode +coord-svr 2565/tcp # Coordinator Server [Richard_Steiger] [Richard_Steiger] +coord-svr 2565/udp # Coordinator Server [Richard_Steiger] [Richard_Steiger] +pcs-pcw 2566/tcp # pcs-pcw [W_Jordan_Fitzhugh] [W_Jordan_Fitzhugh] +pcs-pcw 2566/udp # pcs-pcw [W_Jordan_Fitzhugh] [W_Jordan_Fitzhugh] +clp 2567/tcp # Cisco Line Protocol [Susan_Hinrichs] [Susan_Hinrichs] +clp 2567/udp # Cisco Line Protocol [Susan_Hinrichs] [Susan_Hinrichs] +spamtrap 2568/tcp # SPAM TRAP [Charles_Bennett] [Charles_Bennett] 2008-08-29 +spamtrap 2568/udp # SPAM TRAP [Charles_Bennett] [Charles_Bennett] 2008-08-29 +sonuscallsig 2569/tcp # Sonus Call Signal [Mark_Garti] [Mark_Garti] +sonuscallsig 2569/udp # Sonus Call Signal [Mark_Garti] [Mark_Garti] +hs-port 2570/tcp # HS Port [Uri_Doron] [Uri_Doron] +hs-port 2570/udp # HS Port [Uri_Doron] [Uri_Doron] +cecsvc 2571/tcp # CECSVC [Roger_Pao] [Roger_Pao] +cecsvc 2571/udp # CECSVC [Roger_Pao] [Roger_Pao] +ibp 2572/tcp # IBP [Jonathan_Downes] [Jonathan_Downes] +ibp 2572/udp # IBP [Jonathan_Downes] [Jonathan_Downes] +trustestablish 2573/tcp # Trust Establish [Yosi_Mass] [Yosi_Mass] +trustestablish 2573/udp # Trust Establish [Yosi_Mass] [Yosi_Mass] +blockade-bpsp 2574/tcp # Blockade BPSP [Blockade] [Blockade] +blockade-bpsp 2574/udp # Blockade BPSP [Blockade] [Blockade] +hl7 2575/tcp # HL7 [Tim_Jacobs] [Tim_Jacobs] +hl7 2575/udp # HL7 [Tim_Jacobs] [Tim_Jacobs] +tclprodebugger 2576/tcp # TCL Pro Debugger +tclprodebugger 2576/udp # TCL Pro Debugger +scipticslsrvr 2577/tcp # Scriptics Lsrvr [Brent_Welch] [Brent_Welch] +scipticslsrvr 2577/udp # Scriptics Lsrvr [Brent_Welch] [Brent_Welch] +rvs-isdn-dcp 2578/tcp # RVS ISDN DCP [Michael_Zirpel] [Michael_Zirpel] +rvs-isdn-dcp 2578/udp # RVS ISDN DCP [Michael_Zirpel] [Michael_Zirpel] +mpfoncl 2579/tcp # mpfoncl [Itaru_Kimura] [Itaru_Kimura] +mpfoncl 2579/udp # mpfoncl [Itaru_Kimura] [Itaru_Kimura] +tributary 2580/tcp # Tributary [Louis_Lu] [Louis_Lu] +tributary 2580/udp # Tributary [Louis_Lu] [Louis_Lu] +argis-te 2581/tcp # ARGIS TE +argis-te 2581/udp # ARGIS TE +argis-ds 2582/tcp # ARGIS DS [John_Legh_Page] [John_Legh_Page] +argis-ds 2582/udp # ARGIS DS [John_Legh_Page] [John_Legh_Page] +mon 2583/tcp # MON [Jim_Trocki] [Jim_Trocki] +mon 2583/udp # MON [Jim_Trocki] [Jim_Trocki] +cyaserv 2584/tcp # cyaserv [Morgan_Jones] [Morgan_Jones] +cyaserv 2584/udp # cyaserv [Morgan_Jones] [Morgan_Jones] +netx-server 2585/tcp # NETX Server +netx-server 2585/udp # NETX Server +netx-agent 2586/tcp # NETX Agent [Brett_Dolecheck] [Brett_Dolecheck] +netx-agent 2586/udp # NETX Agent [Brett_Dolecheck] [Brett_Dolecheck] +masc 2587/tcp # MASC [Pavlin_Ivanov_Radosl] [Pavlin_Ivanov_Radosl] +masc 2587/udp # MASC [Pavlin_Ivanov_Radosl] [Pavlin_Ivanov_Radosl] +privilege 2588/tcp # Privilege [Gil_Hecht] [Gil_Hecht] +privilege 2588/udp # Privilege [Gil_Hecht] [Gil_Hecht] +quartus-tcl 2589/tcp # quartus tcl [Subroto_Datta] [Subroto_Datta] +quartus-tcl 2589/udp # quartus tcl [Subroto_Datta] [Subroto_Datta] +idotdist 2590/tcp # idotdist [Jason_Hunter] [Jason_Hunter] +idotdist 2590/udp # idotdist [Jason_Hunter] [Jason_Hunter] +maytagshuffle 2591/tcp # Maytag Shuffle [Ken_Ksiazek] [Ken_Ksiazek] +maytagshuffle 2591/udp # Maytag Shuffle [Ken_Ksiazek] [Ken_Ksiazek] +netrek 2592/tcp # netrek [Al_Guetzlaff] [Al_Guetzlaff] +netrek 2592/udp # netrek [Al_Guetzlaff] [Al_Guetzlaff] +mns-mail 2593/tcp # MNS Mail Notice Service [Rumiko_Kikuta] [Rumiko_Kikuta] +mns-mail 2593/udp # MNS Mail Notice Service [Rumiko_Kikuta] [Rumiko_Kikuta] +dts 2594/tcp # Data Base Server [Andreas_Roene] [Andreas_Roene] +dts 2594/udp # Data Base Server [Andreas_Roene] [Andreas_Roene] +worldfusion1 2595/tcp # World Fusion 1 +worldfusion1 2595/udp # World Fusion 1 +worldfusion2 2596/tcp # World Fusion 2 [World_Fusion] [World_Fusion] +worldfusion2 2596/udp # World Fusion 2 [World_Fusion] [World_Fusion] +homesteadglory 2597/tcp # Homestead Glory [John_Tokash] [John_Tokash] +homesteadglory 2597/udp # Homestead Glory [John_Tokash] [John_Tokash] +citriximaclient 2598/tcp # Citrix MA Client [Myk_Willis] [Myk_Willis] +citriximaclient 2598/udp # Citrix MA Client [Myk_Willis] [Myk_Willis] +snapd 2599/tcp # Snap Discovery [Kevin_Osborn] [Kevin_Osborn] +snapd 2599/udp # Snap Discovery [Kevin_Osborn] [Kevin_Osborn] +hpstgmgr 2600/tcp # HPSTGMGR [Kevin_Collins] [Kevin_Collins] +hpstgmgr 2600/udp # HPSTGMGR [Kevin_Collins] [Kevin_Collins] +discp-client 2601/tcp # discp client +discp-client 2601/udp # discp client +discp-server 2602/tcp # discp server [Peter_White] [Peter_White] +discp-server 2602/udp # discp server [Peter_White] [Peter_White] +servicemeter 2603/tcp # Service Meter [Duncan_Hare] [Duncan_Hare] +servicemeter 2603/udp # Service Meter [Duncan_Hare] [Duncan_Hare] +nsc-ccs 2604/tcp # NSC CCS +nsc-ccs 2604/udp # NSC CCS +nsc-posa 2605/tcp # NSC POSA [Tom_Findley] [Tom_Findley] +nsc-posa 2605/udp # NSC POSA [Tom_Findley] [Tom_Findley] +netmon 2606/tcp # Dell Netmon +netmon 2606/udp # Dell Netmon +connection 2607/tcp # Dell Connection [Sudhir_Shetty] [Sudhir_Shetty] +connection 2607/udp # Dell Connection [Sudhir_Shetty] [Sudhir_Shetty] +wag-service 2608/tcp # Wag Service [Gilles_Bourquard] [Gilles_Bourquard] +wag-service 2608/udp # Wag Service [Gilles_Bourquard] [Gilles_Bourquard] +system-monitor 2609/tcp # System Monitor [Greg_Robson_Garth] [Greg_Robson_Garth] +system-monitor 2609/udp # System Monitor [Greg_Robson_Garth] [Greg_Robson_Garth] +versa-tek 2610/tcp # VersaTek [James_Kou] [James_Kou] +versa-tek 2610/udp # VersaTek [James_Kou] [James_Kou] +lionhead 2611/tcp # LIONHEAD [Tim_Rance] [Tim_Rance] +lionhead 2611/udp # LIONHEAD [Tim_Rance] [Tim_Rance] +qpasa-agent 2612/tcp # Qpasa Agent [Craig_Ching] [Craig_Ching] +qpasa-agent 2612/udp # Qpasa Agent [Craig_Ching] [Craig_Ching] +smntubootstrap 2613/tcp # SMNTUBootstrap [Matt_Cecile] [Matt_Cecile] +smntubootstrap 2613/udp # SMNTUBootstrap [Matt_Cecile] [Matt_Cecile] +neveroffline 2614/tcp # Never Offline [Dustin_Brand] [Dustin_Brand] +neveroffline 2614/udp # Never Offline [Dustin_Brand] [Dustin_Brand] +firepower 2615/tcp # firepower [Jason_Volk] [Jason_Volk] +firepower 2615/udp # firepower [Jason_Volk] [Jason_Volk] +appswitch-emp 2616/tcp # appswitch-emp [Ted_Ross] [Ted_Ross] +appswitch-emp 2616/udp # appswitch-emp [Ted_Ross] [Ted_Ross] +cmadmin 2617/tcp # Clinical Context Managers [Mark_Morwood] [Mark_Morwood] +cmadmin 2617/udp # Clinical Context Managers [Mark_Morwood] [Mark_Morwood] +priority-e-com 2618/tcp # Priority E-Com [Marcelo_Einhorn_2] [Marcelo_Einhorn_2] +priority-e-com 2618/udp # Priority E-Com [Marcelo_Einhorn_2] [Marcelo_Einhorn_2] +bruce 2619/tcp # bruce [Alec_Muffett] [Alec_Muffett] +bruce 2619/udp # bruce [Alec_Muffett] [Alec_Muffett] +lpsrecommender 2620/tcp # LPSRecommender [Pritham_Shetty_2] [Pritham_Shetty_2] +lpsrecommender 2620/udp # LPSRecommender [Pritham_Shetty_2] [Pritham_Shetty_2] +miles-apart 2621/tcp # Miles Apart Jukebox Server [Michael_Rathmann] [Michael_Rathmann] +miles-apart 2621/udp # Miles Apart Jukebox Server [Michael_Rathmann] [Michael_Rathmann] +metricadbc 2622/tcp # MetricaDBC [Russ_Olivant] [Russ_Olivant] +metricadbc 2622/udp # MetricaDBC [Russ_Olivant] [Russ_Olivant] +lmdp 2623/tcp # LMDP [Ken_Bailey] [Ken_Bailey] +lmdp 2623/udp # LMDP [Ken_Bailey] [Ken_Bailey] +aria 2624/tcp # Aria [Logan_Bruns] [Logan_Bruns] +aria 2624/udp # Aria [Logan_Bruns] [Logan_Bruns] +blwnkl-port 2625/tcp # Blwnkl Port [Weng_Chin_Yung] [Weng_Chin_Yung] +blwnkl-port 2625/udp # Blwnkl Port [Weng_Chin_Yung] [Weng_Chin_Yung] +gbjd816 2626/tcp # gbjd816 [George_Balesta] [George_Balesta] +gbjd816 2626/udp # gbjd816 [George_Balesta] [George_Balesta] +moshebeeri 2627/tcp # Moshe Beeri [Moshe_Beeri] [Moshe_Beeri] +moshebeeri 2627/udp # Moshe Beeri [Moshe_Beeri] [Moshe_Beeri] +dict 2628/tcp # DICT [Rik_Faith] [Rik_Faith] +dict 2628/udp # DICT [Rik_Faith] [Rik_Faith] +sitaraserver 2629/tcp # Sitara Server +sitaraserver 2629/udp # Sitara Server +sitaramgmt 2630/tcp # Sitara Management +sitaramgmt 2630/udp # Sitara Management +sitaradir 2631/tcp # Sitara Dir [Manickam_R_Sridhar] [Manickam_R_Sridhar] +sitaradir 2631/udp # Sitara Dir [Manickam_R_Sridhar] [Manickam_R_Sridhar] +irdg-post 2632/tcp # IRdg Post [IRdg] [IRdg] +irdg-post 2632/udp # IRdg Post [IRdg] [IRdg] +interintelli 2633/tcp # InterIntelli [Mike_Gagle] [Mike_Gagle] +interintelli 2633/udp # InterIntelli [Mike_Gagle] [Mike_Gagle] +pk-electronics 2634/tcp # PK Electronics [Seb_Ibis] [Seb_Ibis] +pk-electronics 2634/udp # PK Electronics [Seb_Ibis] [Seb_Ibis] +backburner 2635/tcp # Back Burner [Kevin_Teiskoetter] [Kevin_Teiskoetter] +backburner 2635/udp # Back Burner [Kevin_Teiskoetter] [Kevin_Teiskoetter] +solve 2636/tcp # Solve [Peter_Morrison] [Peter_Morrison] +solve 2636/udp # Solve [Peter_Morrison] [Peter_Morrison] +imdocsvc 2637/tcp # Import Document Service [Zia_Bhatti] [Zia_Bhatti] +imdocsvc 2637/udp # Import Document Service [Zia_Bhatti] [Zia_Bhatti] +sybaseanywhere 2638/tcp # Sybase Anywhere [Dave_Neudoerffer] [Dave_Neudoerffer] +sybaseanywhere 2638/udp # Sybase Anywhere [Dave_Neudoerffer] [Dave_Neudoerffer] +aminet 2639/tcp # AMInet [Alcorn_McBride_Inc] [Alcorn_McBride_Inc] +aminet 2639/udp # AMInet [Alcorn_McBride_Inc] [Alcorn_McBride_Inc] +# Sabbagh Associates Licence +# +sai-sentlm 2640/tcp # IANA assigned this [Elias_Sabbagh] [Elias_Sabbagh] +# "sai_sentlm". +# Sabbagh Associates Licence This entry is an alias to "sai-sentlm". This entry is now +sai_sentlm 2640/tcp # Manager [Elias_Sabbagh] [Elias_Sabbagh] historic, not usable for use with many common service +# +sai-sentlm 2640/udp # IANA assigned this [Elias_Sabbagh] [Elias_Sabbagh] +sai_sentlm 2640/udp # Manager [Elias_Sabbagh] [Elias_Sabbagh] historic, not usable for use with many common service +hdl-srv 2641/tcp # HDL Server [David_Ely] [David_Ely] +hdl-srv 2641/udp # HDL Server [David_Ely] [David_Ely] +tragic 2642/tcp # Tragic [Stu_Mark] [Stu_Mark] +tragic 2642/udp # Tragic [Stu_Mark] [Stu_Mark] +gte-samp 2643/tcp # GTE-SAMP [Asher_Altman] [Asher_Altman] +gte-samp 2643/udp # GTE-SAMP [Asher_Altman] [Asher_Altman] +travsoft-ipx-t 2644/tcp # Travsoft IPX Tunnel [Jack_Wilson] [Jack_Wilson] +travsoft-ipx-t 2644/udp # Travsoft IPX Tunnel [Jack_Wilson] [Jack_Wilson] +novell-ipx-cmd 2645/tcp # Novell IPX CMD [Juan_Carlos_Luciani] [Juan_Carlos_Luciani] +novell-ipx-cmd 2645/udp # Novell IPX CMD [Juan_Carlos_Luciani] [Juan_Carlos_Luciani] +and-lm 2646/tcp # AND License Manager [Dick_van_der_Sijs] [Dick_van_der_Sijs] +and-lm 2646/udp # AND License Manager [Dick_van_der_Sijs] [Dick_van_der_Sijs] +syncserver 2647/tcp # SyncServer [Shawn_Casey] [Shawn_Casey] +syncserver 2647/udp # SyncServer [Shawn_Casey] [Shawn_Casey] +upsnotifyprot 2648/tcp # Upsnotifyprot [Mario_Leboute] [Mario_Leboute] +upsnotifyprot 2648/udp # Upsnotifyprot [Mario_Leboute] [Mario_Leboute] +vpsipport 2649/tcp # VPSIPPORT [Joon_Radley] [Joon_Radley] +vpsipport 2649/udp # VPSIPPORT [Joon_Radley] [Joon_Radley] +eristwoguns 2650/tcp # eristwoguns [Jason_Lockett][Melanie_Kacerek] [Jason_Lockett][Melanie_Kacerek] 2008-12-16 +eristwoguns 2650/udp # eristwoguns [Jason_Lockett][Melanie_Kacerek] [Jason_Lockett][Melanie_Kacerek] 2008-12-16 +ebinsite 2651/tcp # EBInSite [Lefteris_Kalamaras] [Lefteris_Kalamaras] +ebinsite 2651/udp # EBInSite [Lefteris_Kalamaras] [Lefteris_Kalamaras] +interpathpanel 2652/tcp # InterPathPanel [Stephen_Misel] [Stephen_Misel] +interpathpanel 2652/udp # InterPathPanel [Stephen_Misel] [Stephen_Misel] +sonus 2653/tcp # Sonus [Mark_Garti] [Mark_Garti] +sonus 2653/udp # Sonus [Mark_Garti] [Mark_Garti] +# Corel VNC Admin +# +corel-vncadmin 2654/tcp # IANA assigned this [Oleg_Noskov] [Oleg_Noskov] +# "corel_vncadmin". +# This entry is an alias to "corel-vncadmin". This entry is now +corel_vncadmin 2654/tcp # Corel VNC Admin [Oleg_Noskov] [Oleg_Noskov] historic, not usable for use with many common service +# +corel-vncadmin 2654/udp # IANA assigned this [Oleg_Noskov] [Oleg_Noskov] +corel_vncadmin 2654/udp # Corel VNC Admin [Oleg_Noskov] [Oleg_Noskov] historic, not usable for use with many common service +unglue 2655/tcp # UNIX Nt Glue [Peter_Santoro] [Peter_Santoro] +unglue 2655/udp # UNIX Nt Glue [Peter_Santoro] [Peter_Santoro] +kana 2656/tcp # Kana [Colin_Goldstein] [Colin_Goldstein] +kana 2656/udp # Kana [Colin_Goldstein] [Colin_Goldstein] +sns-dispatcher 2657/tcp # SNS Dispatcher +sns-dispatcher 2657/udp # SNS Dispatcher +sns-admin 2658/tcp # SNS Admin +sns-admin 2658/udp # SNS Admin +sns-query 2659/tcp # SNS Query [Mary_Holstege] [Mary_Holstege] +sns-query 2659/udp # SNS Query [Mary_Holstege] [Mary_Holstege] +gcmonitor 2660/tcp # GC Monitor [Gustavo_Rodriguez_Ri] [Gustavo_Rodriguez_Ri] +gcmonitor 2660/udp # GC Monitor [Gustavo_Rodriguez_Ri] [Gustavo_Rodriguez_Ri] +olhost 2661/tcp # OLHOST [Robert_Ripberger] [Robert_Ripberger] +olhost 2661/udp # OLHOST [Robert_Ripberger] [Robert_Ripberger] +bintec-capi 2662/tcp # BinTec-CAPI Use Known on +# port 2662 +bintec-capi 2662/udp # BinTec-CAPI Use Known on +bintec-tapi 2663/tcp # BinTec-TAPI +bintec-tapi 2663/udp # BinTec-TAPI +patrol-mq-gm 2664/tcp # Patrol for MQ GM +patrol-mq-gm 2664/udp # Patrol for MQ GM +patrol-mq-nm 2665/tcp # Patrol for MQ NM [Portnoy_Boxman] [Portnoy_Boxman] +patrol-mq-nm 2665/udp # Patrol for MQ NM [Portnoy_Boxman] [Portnoy_Boxman] +extensis 2666/tcp # extensis [Milton_Sagen] [Milton_Sagen] +extensis 2666/udp # extensis [Milton_Sagen] [Milton_Sagen] +alarm-clock-s 2667/tcp # Alarm Clock Server +alarm-clock-s 2667/udp # Alarm Clock Server +alarm-clock-c 2668/tcp # Alarm Clock Client +alarm-clock-c 2668/udp # Alarm Clock Client +toad 2669/tcp # TOAD [Michael_Marking] [Michael_Marking] +toad 2669/udp # TOAD [Michael_Marking] [Michael_Marking] +tve-announce 2670/tcp # TVE Announce [Dean_Blackketter] [Dean_Blackketter] +tve-announce 2670/udp # TVE Announce [Dean_Blackketter] [Dean_Blackketter] +newlixreg 2671/tcp # newlixreg [Jean_Serge_Gagnon_2] [Jean_Serge_Gagnon_2] +newlixreg 2671/udp # newlixreg [Jean_Serge_Gagnon_2] [Jean_Serge_Gagnon_2] +nhserver 2672/tcp # nhserver [Adrian_Hornby] [Adrian_Hornby] +nhserver 2672/udp # nhserver [Adrian_Hornby] [Adrian_Hornby] +firstcall42 2673/tcp # First Call 42 [Luke_Bowen] [Luke_Bowen] +firstcall42 2673/udp # First Call 42 [Luke_Bowen] [Luke_Bowen] +ewnn 2674/tcp # ewnn [Yasunari_Yamashita] [Yasunari_Yamashita] +ewnn 2674/udp # ewnn [Yasunari_Yamashita] [Yasunari_Yamashita] +ttc-etap 2675/tcp # TTC ETAP [Daniel_Becker] [Daniel_Becker] +ttc-etap 2675/udp # TTC ETAP [Daniel_Becker] [Daniel_Becker] +simslink 2676/tcp # SIMSLink [Steve_Ryckman] [Steve_Ryckman] +simslink 2676/udp # SIMSLink [Steve_Ryckman] [Steve_Ryckman] +gadgetgate1way 2677/tcp # Gadget Gate 1 Way +gadgetgate1way 2677/udp # Gadget Gate 1 Way +gadgetgate2way 2678/tcp # Gadget Gate 2 Way [Matt_Rollins] [Matt_Rollins] +gadgetgate2way 2678/udp # Gadget Gate 2 Way [Matt_Rollins] [Matt_Rollins] +syncserverssl 2679/tcp # Sync Server SSL [Shawn_Casey] [Shawn_Casey] +syncserverssl 2679/udp # Sync Server SSL [Shawn_Casey] [Shawn_Casey] +pxc-sapxom 2680/tcp # pxc-sapxom [Hideki_Kiriyama] [Hideki_Kiriyama] +pxc-sapxom 2680/udp # pxc-sapxom [Hideki_Kiriyama] [Hideki_Kiriyama] +mpnjsomb 2681/tcp # mpnjsomb [Takenori_Miyahara] [Takenori_Miyahara] +mpnjsomb 2681/udp # mpnjsomb [Takenori_Miyahara] [Takenori_Miyahara] +# 2682 Removed 2002-04-30 +ncdloadbalance 2683/tcp # NCDLoadBalance [Tim_Stevenson] [Tim_Stevenson] +ncdloadbalance 2683/udp # NCDLoadBalance [Tim_Stevenson] [Tim_Stevenson] +mpnjsosv 2684/tcp # mpnjsosv +mpnjsosv 2684/udp # mpnjsosv +mpnjsocl 2685/tcp # mpnjsocl +mpnjsocl 2685/udp # mpnjsocl +mpnjsomg 2686/tcp # mpnjsomg [Takenori_Miyahara] [Takenori_Miyahara] +mpnjsomg 2686/udp # mpnjsomg [Takenori_Miyahara] [Takenori_Miyahara] +pq-lic-mgmt 2687/tcp # pq-lic-mgmt [Bob_Sledge] [Bob_Sledge] +pq-lic-mgmt 2687/udp # pq-lic-mgmt [Bob_Sledge] [Bob_Sledge] +md-cg-http 2688/tcp # md-cf-http [Lyndon_Nerenberg] [Lyndon_Nerenberg] +md-cg-http 2688/udp # md-cf-http [Lyndon_Nerenberg] [Lyndon_Nerenberg] +fastlynx 2689/tcp # FastLynx [Dave_Sewell] [Dave_Sewell] +fastlynx 2689/udp # FastLynx [Dave_Sewell] [Dave_Sewell] +hp-nnm-data 2690/tcp # HP NNM Embedded Database [Chris_Das] [Chris_Das] +hp-nnm-data 2690/udp # HP NNM Embedded Database [Chris_Das] [Chris_Das] +itinternet 2691/tcp # ITInternet ISM Server [Ron_Ehli] [Ron_Ehli] +itinternet 2691/udp # ITInternet ISM Server [Ron_Ehli] [Ron_Ehli] +admins-lms 2692/tcp # Admins LMS [Dagfinn_Saether] [Dagfinn_Saether] +admins-lms 2692/udp # Admins LMS [Dagfinn_Saether] [Dagfinn_Saether] +# 2693 tcp Unassigned (Removed 2004-2-6) +# 2693 udp Unassigned (Removed 2004-2-6) +pwrsevent 2694/tcp # pwrsevent [Yoshinobu_Nakamura] [Yoshinobu_Nakamura] +pwrsevent 2694/udp # pwrsevent [Yoshinobu_Nakamura] [Yoshinobu_Nakamura] +vspread 2695/tcp # VSPREAD [Sumitake_kobayashi] [Sumitake_kobayashi] +vspread 2695/udp # VSPREAD [Sumitake_kobayashi] [Sumitake_kobayashi] +unifyadmin 2696/tcp # Unify Admin [Daegis_Inc] [Chris_Anderson] 2012-07-31 +unifyadmin 2696/udp # Unify Admin [Daegis_Inc] [Chris_Anderson] 2012-07-31 +oce-snmp-trap 2697/tcp # Oce SNMP Trap Port [Peter_Teeuwen] [Peter_Teeuwen] +oce-snmp-trap 2697/udp # Oce SNMP Trap Port [Peter_Teeuwen] [Peter_Teeuwen] +mck-ivpip 2698/tcp # MCK-IVPIP [Robert_Vincent] [Robert_Vincent] +mck-ivpip 2698/udp # MCK-IVPIP [Robert_Vincent] [Robert_Vincent] +csoft-plusclnt 2699/tcp # Csoft Plus Client [Nedelcho_Stanev] [Nedelcho_Stanev] +csoft-plusclnt 2699/udp # Csoft Plus Client [Nedelcho_Stanev] [Nedelcho_Stanev] +tqdata 2700/tcp # tqdata [Al_Guetzlaff] [Al_Guetzlaff] +tqdata 2700/udp # tqdata [Al_Guetzlaff] [Al_Guetzlaff] +sms-rcinfo 2701/tcp # SMS RCINFO +sms-rcinfo 2701/udp # SMS RCINFO +sms-xfer 2702/tcp # SMS XFER +sms-xfer 2702/udp # SMS XFER +sms-chat 2703/tcp # SMS CHAT +sms-chat 2703/udp # SMS CHAT +sms-remctrl 2704/tcp # SMS REMCTRL [Tom_Friend] [Tom_Friend] +sms-remctrl 2704/udp # SMS REMCTRL [Tom_Friend] [Tom_Friend] +sds-admin 2705/tcp # SDS Admin [Don_Traub] [Don_Traub] +sds-admin 2705/udp # SDS Admin [Don_Traub] [Don_Traub] +ncdmirroring 2706/tcp # NCD Mirroring [Tim_Stevenson] [Tim_Stevenson] +ncdmirroring 2706/udp # NCD Mirroring [Tim_Stevenson] [Tim_Stevenson] +emcsymapiport 2707/tcp # EMCSYMAPIPORT [Bruce_Ferjulian] [Bruce_Ferjulian] +emcsymapiport 2707/udp # EMCSYMAPIPORT [Bruce_Ferjulian] [Bruce_Ferjulian] +banyan-net 2708/tcp # Banyan-Net [R_Thirumurthy] [R_Thirumurthy] +banyan-net 2708/udp # Banyan-Net [R_Thirumurthy] [R_Thirumurthy] +supermon 2709/tcp # Supermon [Ron_Minnich] [Ron_Minnich] +supermon 2709/udp # Supermon [Ron_Minnich] [Ron_Minnich] +sso-service 2710/tcp # SSO Service +sso-service 2710/udp # SSO Service +sso-control 2711/tcp # SSO Control [Axel_Kern] [Axel_Kern] +sso-control 2711/udp # SSO Control [Axel_Kern] [Axel_Kern] +aocp 2712/tcp # Axapta Object Communication [Jakob_Steen_Hansen] [Jakob_Steen_Hansen] +aocp 2712/udp # Axapta Object Communication [Jakob_Steen_Hansen] [Jakob_Steen_Hansen] +raventbs 2713/tcp # Raven Trinity Broker Service +raventbs 2713/udp # Raven Trinity Broker Service +raventdm 2714/tcp # Raven Trinity Data Mover [Daniel_Sorlov] [Daniel_Sorlov] +raventdm 2714/udp # Raven Trinity Data Mover [Daniel_Sorlov] [Daniel_Sorlov] +hpstgmgr2 2715/tcp # HPSTGMGR2 [Kevin_Collins_2] [Kevin_Collins_2] +hpstgmgr2 2715/udp # HPSTGMGR2 [Kevin_Collins_2] [Kevin_Collins_2] +inova-ip-disco 2716/tcp # Inova IP Disco [Chris_Koeritz] [Chris_Koeritz] +inova-ip-disco 2716/udp # Inova IP Disco [Chris_Koeritz] [Chris_Koeritz] +pn-requester 2717/tcp # PN REQUESTER +pn-requester 2717/udp # PN REQUESTER +pn-requester2 2718/tcp # PN REQUESTER 2 [Portnoy_Boxman] [Portnoy_Boxman] +pn-requester2 2718/udp # PN REQUESTER 2 [Portnoy_Boxman] [Portnoy_Boxman] +scan-change 2719/tcp # Scan & Change [Alexander_Raji] [Alexander_Raji] +scan-change 2719/udp # Scan & Change [Alexander_Raji] [Alexander_Raji] +wkars 2720/tcp # wkars [Barry_Shelton] [Barry_Shelton] +wkars 2720/udp # wkars [Barry_Shelton] [Barry_Shelton] +smart-diagnose 2721/tcp # Smart Diagnose [Geoffry_Meek] [Geoffry_Meek] +smart-diagnose 2721/udp # Smart Diagnose [Geoffry_Meek] [Geoffry_Meek] +proactivesrvr 2722/tcp # Proactive Server [Dalit_Naor] [Dalit_Naor] +proactivesrvr 2722/udp # Proactive Server [Dalit_Naor] [Dalit_Naor] +watchdog-nt 2723/tcp # WatchDog NT Protocol [Glen_Sansoucie] [Glen_Sansoucie] +watchdog-nt 2723/udp # WatchDog NT Protocol [Glen_Sansoucie] [Glen_Sansoucie] +qotps 2724/tcp # qotps [Piotr_Parlewicz] [Piotr_Parlewicz] +qotps 2724/udp # qotps [Piotr_Parlewicz] [Piotr_Parlewicz] +msolap-ptp2 2725/tcp # MSOLAP PTP2 [Cristian_Petculescu] [Cristian_Petculescu] +msolap-ptp2 2725/udp # MSOLAP PTP2 [Cristian_Petculescu] [Cristian_Petculescu] +tams 2726/tcp # TAMS [David_Leinbach] [David_Leinbach] +tams 2726/udp # TAMS [David_Leinbach] [David_Leinbach] +mgcp-callagent 2727/tcp # Media Gateway Control [Christian_Huitema] [Christian_Huitema] +# Protocol Call Agent +mgcp-callagent 2727/udp # Media Gateway Control [Christian_Huitema] [Christian_Huitema] +sqdr 2728/tcp # SQDR [Matthew_Orzen] [Matthew_Orzen] +sqdr 2728/udp # SQDR [Matthew_Orzen] [Matthew_Orzen] +tcim-control 2729/tcp # TCIM Control [Dean_Skelton] [Dean_Skelton] +tcim-control 2729/udp # TCIM Control [Dean_Skelton] [Dean_Skelton] +nec-raidplus 2730/tcp # NEC RaidPlus [Yusuke_Asai] [Yusuke_Asai] +nec-raidplus 2730/udp # NEC RaidPlus [Yusuke_Asai] [Yusuke_Asai] +fyre-messanger 2731/tcp # Fyre Messanger [Robert_Waters] [Robert_Waters] +fyre-messanger 2731/udp # Fyre Messagner [Robert_Waters] [Robert_Waters] +g5m 2732/tcp # G5M [Graham_Klyne] [Graham_Klyne] +g5m 2732/udp # G5M [Graham_Klyne] [Graham_Klyne] +signet-ctf 2733/tcp # Signet CTF [Greg_Broiles] [Greg_Broiles] +signet-ctf 2733/udp # Signet CTF [Greg_Broiles] [Greg_Broiles] +ccs-software 2734/tcp # CCS Software [Bertus_Jacobs] [Bertus_Jacobs] +ccs-software 2734/udp # CCS Software [Bertus_Jacobs] [Bertus_Jacobs] +netiq-mc 2735/tcp # NetIQ Monitor Console [Scott_Southard] [Scott_Southard] 2010-08-25 +netiq-mc 2735/udp # NetIQ Monitor Console [Scott_Southard] [Scott_Southard] 2010-08-25 +radwiz-nms-srv 2736/tcp # RADWIZ NMS SRV [Israel_Shainert] [Israel_Shainert] +radwiz-nms-srv 2736/udp # RADWIZ NMS SRV [Israel_Shainert] [Israel_Shainert] +srp-feedback 2737/tcp # SRP Feedback [Werner_Almesberger] [Werner_Almesberger] +srp-feedback 2737/udp # SRP Feedback [Werner_Almesberger] [Werner_Almesberger] +ndl-tcp-ois-gw 2738/tcp # NDL TCP-OSI Gateway [Martin_Norman] [Martin_Norman] +ndl-tcp-ois-gw 2738/udp # NDL TCP-OSI Gateway [Martin_Norman] [Martin_Norman] +tn-timing 2739/tcp # TN Timing [Paul_Roberts] [Paul_Roberts] +tn-timing 2739/udp # TN Timing [Paul_Roberts] [Paul_Roberts] +alarm 2740/tcp # Alarm [Uriy_Makasjuk] [Uriy_Makasjuk] +alarm 2740/udp # Alarm [Uriy_Makasjuk] [Uriy_Makasjuk] +tsb 2741/tcp # TSB +tsb 2741/udp # TSB +tsb2 2742/tcp # TSB2 [Ashish_Chatterjee] [Ashish_Chatterjee] +tsb2 2742/udp # TSB2 [Ashish_Chatterjee] [Ashish_Chatterjee] +murx 2743/tcp # murx [Thomas_Kuiper] [Thomas_Kuiper] +murx 2743/udp # murx [Thomas_Kuiper] [Thomas_Kuiper] +honyaku 2744/tcp # honyaku [Yasunari_Yamashita] [Yasunari_Yamashita] +honyaku 2744/udp # honyaku [Yasunari_Yamashita] [Yasunari_Yamashita] +urbisnet 2745/tcp # URBISNET [Urbis_Net_Ltd] [Urbis_Net_Ltd] +urbisnet 2745/udp # URBISNET [Urbis_Net_Ltd] [Urbis_Net_Ltd] +cpudpencap 2746/tcp # CPUDPENCAP [Tamir_Zegman] [Tamir_Zegman] +cpudpencap 2746/udp # CPUDPENCAP [Tamir_Zegman] [Tamir_Zegman] +fjippol-swrly 2747/tcp +fjippol-swrly 2747/udp +fjippol-polsvr 2748/tcp +fjippol-polsvr 2748/udp +fjippol-cnsl 2749/tcp +fjippol-cnsl 2749/udp +fjippol-port1 2750/tcp +fjippol-port1 2750/udp +fjippol-port2 2751/tcp # [Shoichi_Tachibana] [Shoichi_Tachibana] +fjippol-port2 2751/udp # [Shoichi_Tachibana] [Shoichi_Tachibana] +rsisysaccess 2752/tcp # RSISYS ACCESS [Christophe_Besant] [Christophe_Besant] +rsisysaccess 2752/udp # RSISYS ACCESS [Christophe_Besant] [Christophe_Besant] +de-spot 2753/tcp # de-spot [Sanjay_Parekh] [Sanjay_Parekh] +de-spot 2753/udp # de-spot [Sanjay_Parekh] [Sanjay_Parekh] +apollo-cc 2754/tcp # APOLLO CC [Brand_Communications] [Brand_Communications] +apollo-cc 2754/udp # APOLLO CC [Brand_Communications] [Brand_Communications] +expresspay 2755/tcp # Express Pay [Ben_Higgins] [Ben_Higgins] +expresspay 2755/udp # Express Pay [Ben_Higgins] [Ben_Higgins] +simplement-tie 2756/tcp # simplement-tie [Tzvika_Chumash] [Tzvika_Chumash] +simplement-tie 2756/udp # simplement-tie [Tzvika_Chumash] [Tzvika_Chumash] +cnrp 2757/tcp # CNRP [Jacob_Ulmert] [Jacob_Ulmert] +cnrp 2757/udp # CNRP [Jacob_Ulmert] [Jacob_Ulmert] +apollo-status 2758/tcp # APOLLO Status +apollo-status 2758/udp # APOLLO Status +apollo-gms 2759/tcp # APOLLO GMS [Simon_Hovell] [Simon_Hovell] +apollo-gms 2759/udp # APOLLO GMS [Simon_Hovell] [Simon_Hovell] +sabams 2760/tcp # Saba MS [Davoud_Maha] [Davoud_Maha] +sabams 2760/udp # Saba MS [Davoud_Maha] [Davoud_Maha] +dicom-iscl 2761/tcp # DICOM ISCL +dicom-iscl 2761/udp # DICOM ISCL +dicom-tls 2762/tcp # DICOM TLS [Lawrence_Tarbox] [Lawrence_Tarbox] +dicom-tls 2762/udp # DICOM TLS [Lawrence_Tarbox] [Lawrence_Tarbox] +desktop-dna 2763/tcp # Desktop DNA [Jon_Walker] [Jon_Walker] +desktop-dna 2763/udp # Desktop DNA [Jon_Walker] [Jon_Walker] +data-insurance 2764/tcp # Data Insurance [Brent_Irwin] [Brent_Irwin] +data-insurance 2764/udp # Data Insurance [Brent_Irwin] [Brent_Irwin] +qip-audup 2765/tcp # qip-audup [Mike_Morgan] [Mike_Morgan] +qip-audup 2765/udp # qip-audup [Mike_Morgan] [Mike_Morgan] +compaq-scp 2766/tcp # Compaq SCP [Ferruccio_Barletta] [Ferruccio_Barletta] +compaq-scp 2766/udp # Compaq SCP [Ferruccio_Barletta] [Ferruccio_Barletta] +uadtc 2767/tcp # UADTC +uadtc 2767/udp # UADTC +uacs 2768/tcp # UACS [Vishwas_Lele] [Vishwas_Lele] +uacs 2768/udp # UACS [Vishwas_Lele] [Vishwas_Lele] +exce 2769/tcp # eXcE [Norm_Freedman] [Norm_Freedman] +exce 2769/udp # eXcE [Norm_Freedman] [Norm_Freedman] +veronica 2770/tcp # Veronica [Jonas_Oberg] [Jonas_Oberg] +veronica 2770/udp # Veronica [Jonas_Oberg] [Jonas_Oberg] +vergencecm 2771/tcp # Vergence CM [Mark_Morwood] [Mark_Morwood] +vergencecm 2771/udp # Vergence CM [Mark_Morwood] [Mark_Morwood] +auris 2772/tcp # auris [Francisco_Saez_Aranc] [Francisco_Saez_Aranc] +auris 2772/udp # auris [Francisco_Saez_Aranc] [Francisco_Saez_Aranc] +rbakcup1 2773/tcp # RBackup Remote Backup +rbakcup1 2773/udp # RBackup Remote Backup +rbakcup2 2774/tcp # RBackup Remote Backup [Rob_Cosgrove] [Rob_Cosgrove] +rbakcup2 2774/udp # RBackup Remote Backup [Rob_Cosgrove] [Rob_Cosgrove] +smpp 2775/tcp # SMPP [Owen_Sullivan] [Owen_Sullivan] +smpp 2775/udp # SMPP [Owen_Sullivan] [Owen_Sullivan] +ridgeway1 2776/tcp # Ridgeway Systems & Software +ridgeway1 2776/udp # Ridgeway Systems & Software +ridgeway2 2777/tcp # Ridgeway Systems & Software [Steve_Read] [Steve_Read] +ridgeway2 2777/udp # Ridgeway Systems & Software [Steve_Read] [Steve_Read] +gwen-sonya 2778/tcp # Gwen-Sonya [Mark_Hurst] [Mark_Hurst] +gwen-sonya 2778/udp # Gwen-Sonya [Mark_Hurst] [Mark_Hurst] +lbc-sync 2779/tcp # LBC Sync +lbc-sync 2779/udp # LBC Sync +lbc-control 2780/tcp # LBC Control [Keiji_Michine] [Keiji_Michine] +lbc-control 2780/udp # LBC Control [Keiji_Michine] [Keiji_Michine] +whosells 2781/tcp # whosells [William_Randolph_Roy] [William_Randolph_Roy] +whosells 2781/udp # whosells [William_Randolph_Roy] [William_Randolph_Roy] +everydayrc 2782/tcp # everydayrc [Ahti_Heinla] [Ahti_Heinla] +everydayrc 2782/udp # everydayrc [Ahti_Heinla] [Ahti_Heinla] +aises 2783/tcp # AISES [Daniel_Grazioli] [Daniel_Grazioli] +aises 2783/udp # AISES [Daniel_Grazioli] [Daniel_Grazioli] +www-dev 2784/tcp # world wide web - development +www-dev 2784/udp # world wide web - development +aic-np 2785/tcp # aic-np [Brad_Parker] [Brad_Parker] +aic-np 2785/udp # aic-np [Brad_Parker] [Brad_Parker] +aic-oncrpc 2786/tcp # aic-oncrpc - Destiny MCD [Brad_Parker] [Brad_Parker] +# database +aic-oncrpc 2786/udp # aic-oncrpc - Destiny MCD [Brad_Parker] [Brad_Parker] +piccolo 2787/tcp # piccolo - Cornerstone [Dave_Bellivea] [Dave_Bellivea] +piccolo 2787/udp # piccolo - Cornerstone [Dave_Bellivea] [Dave_Bellivea] +fryeserv 2788/tcp # NetWare Loadable Module - [Joseph_LoPilato] [Joseph_LoPilato] +# Seagate Software +fryeserv 2788/udp # NetWare Loadable Module - [Joseph_LoPilato] [Joseph_LoPilato] +media-agent 2789/tcp # Media Agent [Nitzan_Daube] [Nitzan_Daube] +media-agent 2789/udp # Media Agent [Nitzan_Daube] [Nitzan_Daube] +plgproxy 2790/tcp # PLG Proxy [Charlie_Hava] [Charlie_Hava] +plgproxy 2790/udp # PLG Proxy [Charlie_Hava] [Charlie_Hava] +mtport-regist 2791/tcp # MT Port Registrator [Maxim_Tseitlin] [Maxim_Tseitlin] +mtport-regist 2791/udp # MT Port Registrator [Maxim_Tseitlin] [Maxim_Tseitlin] +f5-globalsite 2792/tcp # f5-globalsite [Christian_Saether_2] [Christian_Saether_2] +f5-globalsite 2792/udp # f5-globalsite [Christian_Saether_2] [Christian_Saether_2] +initlsmsad 2793/tcp # initlsmsad [Kelly_Green] [Kelly_Green] +initlsmsad 2793/udp # initlsmsad [Kelly_Green] [Kelly_Green] +# 2794 Unassigned 2006-12-04 +livestats 2795/tcp # LiveStats [Chris_Greene] [Chris_Greene] +livestats 2795/udp # LiveStats [Chris_Greene] [Chris_Greene] +ac-tech 2796/tcp # ac-tech [Chiming_Huang] [Chiming_Huang] +ac-tech 2796/udp # ac-tech [Chiming_Huang] [Chiming_Huang] +esp-encap 2797/tcp # esp-encap [Jorn_Sierwald] [Jorn_Sierwald] +esp-encap 2797/udp # esp-encap [Jorn_Sierwald] [Jorn_Sierwald] +tmesis-upshot 2798/tcp # TMESIS-UPShot [Brian_Schenkenberger] [Brian_Schenkenberger] +tmesis-upshot 2798/udp # TMESIS-UPShot [Brian_Schenkenberger] [Brian_Schenkenberger] +icon-discover 2799/tcp # ICON Discover [Alexander_Falk] [Alexander_Falk] +icon-discover 2799/udp # ICON Discover [Alexander_Falk] [Alexander_Falk] +acc-raid 2800/tcp # ACC RAID [Scott_St_Clair] [Scott_St_Clair] +acc-raid 2800/udp # ACC RAID [Scott_St_Clair] [Scott_St_Clair] +igcp 2801/tcp # IGCP [David_Hampson] [David_Hampson] +igcp 2801/udp # IGCP [David_Hampson] [David_Hampson] +veritas-tcp1 2802/tcp # Veritas TCP1 +veritas-udp1 2802/udp # Veritas UDP1 [Russ_Thrasher] [Russ_Thrasher] +btprjctrl 2803/tcp # btprjctrl [Huw_Thomas] [Huw_Thomas] +btprjctrl 2803/udp # btprjctrl [Huw_Thomas] [Huw_Thomas] +# March Networks Digital Video +dvr-esm 2804/tcp # Recorders and Enterprise [Paul_Streatch] [Paul_Streatch] 2004-06 +# Service Manager products +dvr-esm 2804/udp # Recorders and Enterprise [Paul_Streatch] [Paul_Streatch] 2004-06 +wta-wsp-s 2805/tcp # WTA WSP-S [Sebastien_Bury] [Sebastien_Bury] +wta-wsp-s 2805/udp # WTA WSP-S [Sebastien_Bury] [Sebastien_Bury] +cspuni 2806/tcp # cspuni +cspuni 2806/udp # cspuni +cspmulti 2807/tcp # cspmulti [Terumasa_Yoneda] [Terumasa_Yoneda] +cspmulti 2807/udp # cspmulti [Terumasa_Yoneda] [Terumasa_Yoneda] +j-lan-p 2808/tcp # J-LAN-P [Takeshi_Sahara] [Takeshi_Sahara] +j-lan-p 2808/udp # J-LAN-P [Takeshi_Sahara] [Takeshi_Sahara] +corbaloc 2809/tcp # CORBA LOC [Ted_McFadden] [Ted_McFadden] +corbaloc 2809/udp # CORBA LOC [Ted_McFadden] [Ted_McFadden] +netsteward 2810/tcp # Active Net Steward [Keith_Morley] [Keith_Morley] +netsteward 2810/udp # Active Net Steward [Keith_Morley] [Keith_Morley] +gsiftp 2811/tcp # GSI FTP [Von_Welch] [Von_Welch] +gsiftp 2811/udp # GSI FTP [Von_Welch] [Von_Welch] +atmtcp 2812/tcp # atmtcp [Werner_Almesberger] [Werner_Almesberger] +atmtcp 2812/udp # atmtcp [Werner_Almesberger] [Werner_Almesberger] +llm-pass 2813/tcp # llm-pass +llm-pass 2813/udp # llm-pass +llm-csv 2814/tcp # llm-csv [Glen_Sansoucie_2] [Glen_Sansoucie_2] +llm-csv 2814/udp # llm-csv [Glen_Sansoucie_2] [Glen_Sansoucie_2] +lbc-measure 2815/tcp # LBC Measurement +lbc-measure 2815/udp # LBC Measurement +lbc-watchdog 2816/tcp # LBC Watchdog [Akiyoshi_Ochi] [Akiyoshi_Ochi] +lbc-watchdog 2816/udp # LBC Watchdog [Akiyoshi_Ochi] [Akiyoshi_Ochi] +nmsigport 2817/tcp # NMSig Port [Peter_Egli_2] [Peter_Egli_2] +nmsigport 2817/udp # NMSig Port [Peter_Egli_2] [Peter_Egli_2] +rmlnk 2818/tcp # rmlnk +rmlnk 2818/udp # rmlnk +fc-faultnotify 2819/tcp # FC Fault Notification [Dave_Watkins] [Dave_Watkins] +fc-faultnotify 2819/udp # FC Fault Notification [Dave_Watkins] [Dave_Watkins] +univision 2820/tcp # UniVision [Keith_Ansell] [Keith_Ansell] +univision 2820/udp # UniVision [Keith_Ansell] [Keith_Ansell] +vrts-at-port 2821/tcp # VERITAS Authentication [Stefan_Winkel] [Stefan_Winkel] +vrts-at-port 2821/udp # VERITAS Authentication [Stefan_Winkel] [Stefan_Winkel] +ka0wuc 2822/tcp # ka0wuc [Kit_Haskins] [Kit_Haskins] +ka0wuc 2822/udp # ka0wuc [Kit_Haskins] [Kit_Haskins] +cqg-netlan 2823/tcp # CQG Net/LAN +cqg-netlan 2823/udp # CQG Net/LAN +cqg-netlan-1 2824/tcp # CQG Net/LAN 1 [Jeff_Wood] [Jeff_Wood] +cqg-netlan-1 2824/udp # CQG Net/Lan 1 [Jeff_Wood] [Jeff_Wood] +# 2825 (unassigned) Possibly +# assigned +slc-systemlog 2826/tcp # slc systemlog +slc-systemlog 2826/udp # slc systemlog +slc-ctrlrloops 2827/tcp # slc ctrlrloops [Erwin_Hogeweg] [Erwin_Hogeweg] +slc-ctrlrloops 2827/udp # slc ctrlrloops [Erwin_Hogeweg] [Erwin_Hogeweg] +itm-lm 2828/tcp # ITM License Manager [Portnoy_Boxman] [Portnoy_Boxman] +itm-lm 2828/udp # ITM License Manager [Portnoy_Boxman] [Portnoy_Boxman] +silkp1 2829/tcp # silkp1 +silkp1 2829/udp # silkp1 +silkp2 2830/tcp # silkp2 +silkp2 2830/udp # silkp2 +silkp3 2831/tcp # silkp3 +silkp3 2831/udp # silkp3 +silkp4 2832/tcp # silkp4 [Erik_Skyten] [Erik_Skyten] +silkp4 2832/udp # silkp4 [Erik_Skyten] [Erik_Skyten] +glishd 2833/tcp # glishd [Darrell_Schiebel] [Darrell_Schiebel] +glishd 2833/udp # glishd [Darrell_Schiebel] [Darrell_Schiebel] +evtp 2834/tcp # EVTP +evtp 2834/udp # EVTP +evtp-data 2835/tcp # EVTP-DATA [Eric_Bruno] [Eric_Bruno] +evtp-data 2835/udp # EVTP-DATA [Eric_Bruno] [Eric_Bruno] +catalyst 2836/tcp # catalyst [Garret_Tollkuhn] [Garret_Tollkuhn] +catalyst 2836/udp # catalyst [Garret_Tollkuhn] [Garret_Tollkuhn] +repliweb 2837/tcp # Repliweb [William_Orme] [William_Orme] +repliweb 2837/udp # Repliweb [William_Orme] [William_Orme] +starbot 2838/tcp # Starbot [Markus_Sabadello_2] [Markus_Sabadello_2] +starbot 2838/udp # Starbot [Markus_Sabadello_2] [Markus_Sabadello_2] +nmsigport 2839/tcp # NMSigPort [Peter_Egli_2] [Peter_Egli_2] +nmsigport 2839/udp # NMSigPort [Peter_Egli_2] [Peter_Egli_2] +l3-exprt 2840/tcp # l3-exprt +l3-exprt 2840/udp # l3-exprt +l3-ranger 2841/tcp # l3-ranger +l3-ranger 2841/udp # l3-ranger +l3-hawk 2842/tcp # l3-hawk [Dolores_Scott_2] [Dolores_Scott_2] +l3-hawk 2842/udp # l3-hawk [Dolores_Scott_2] [Dolores_Scott_2] +pdnet 2843/tcp # PDnet [Torsten_Scheffler] [Torsten_Scheffler] +pdnet 2843/udp # PDnet [Torsten_Scheffler] [Torsten_Scheffler] +bpcp-poll 2844/tcp # BPCP POLL +bpcp-poll 2844/udp # BPCP POLL +bpcp-trap 2845/tcp # BPCP TRAP [Steve_Van_Duser] [Steve_Van_Duser] +bpcp-trap 2845/udp # BPCP TRAP [Steve_Van_Duser] [Steve_Van_Duser] +aimpp-hello 2846/tcp # AIMPP Hello +aimpp-hello 2846/udp # AIMPP Hello +aimpp-port-req 2847/tcp # AIMPP Port Req [Brian_Martinicky] [Brian_Martinicky] +aimpp-port-req 2847/udp # AIMPP Port Req [Brian_Martinicky] [Brian_Martinicky] +amt-blc-port 2848/tcp # AMT-BLC-PORT [Sandra_Frulloni] [Sandra_Frulloni] +amt-blc-port 2848/udp # AMT-BLC-PORT [Sandra_Frulloni] [Sandra_Frulloni] +fxp 2849/tcp # FXP [Martin_Lichtin] [Martin_Lichtin] +fxp 2849/udp # FXP [Martin_Lichtin] [Martin_Lichtin] +metaconsole 2850/tcp # MetaConsole [Rakesh_Mahajan] [Rakesh_Mahajan] +metaconsole 2850/udp # MetaConsole [Rakesh_Mahajan] [Rakesh_Mahajan] +webemshttp 2851/tcp # webemshttp [Stephen_Tsun] [Stephen_Tsun] +webemshttp 2851/udp # webemshttp [Stephen_Tsun] [Stephen_Tsun] +bears-01 2852/tcp # bears-01 [Bruce_McKinnon] [Bruce_McKinnon] +bears-01 2852/udp # bears-01 [Bruce_McKinnon] [Bruce_McKinnon] +ispipes 2853/tcp # ISPipes [Rajesh_Nandyalam] [Rajesh_Nandyalam] +ispipes 2853/udp # ISPipes [Rajesh_Nandyalam] [Rajesh_Nandyalam] +infomover 2854/tcp # InfoMover [Carla_Caputo] [Carla_Caputo] +infomover 2854/udp # InfoMover [Carla_Caputo] [Carla_Caputo] +msrp 2855/tcp # MSRP over TCP [RFC4975] +msrp 2855/udp # MSRP [RFC4975] +cesdinv 2856/tcp # cesdinv [Yoshiaki_Tokumoto] [Yoshiaki_Tokumoto] +cesdinv 2856/udp # cesdinv [Yoshiaki_Tokumoto] [Yoshiaki_Tokumoto] +simctlp 2857/tcp # SimCtIP [Christian_Zietz] [Christian_Zietz] +simctlp 2857/udp # SimCtIP [Christian_Zietz] [Christian_Zietz] +ecnp 2858/tcp # ECNP [Robert_Reimiller] [Robert_Reimiller] +ecnp 2858/udp # ECNP [Robert_Reimiller] [Robert_Reimiller] +activememory 2859/tcp # Active Memory [Joe_Graham] [Joe_Graham] +activememory 2859/udp # Active Memory [Joe_Graham] [Joe_Graham] +dialpad-voice1 2860/tcp # Dialpad Voice 1 +dialpad-voice1 2860/udp # Dialpad Voice 1 +dialpad-voice2 2861/tcp # Dialpad Voice 2 [Wongyu_Cho] [Wongyu_Cho] +dialpad-voice2 2861/udp # Dialpad Voice 2 [Wongyu_Cho] [Wongyu_Cho] +ttg-protocol 2862/tcp # TTG Protocol [Mark_Boler] [Mark_Boler] +ttg-protocol 2862/udp # TTG Protocol [Mark_Boler] [Mark_Boler] +sonardata 2863/tcp # Sonar Data [Ian_Higginbottom] [Ian_Higginbottom] +sonardata 2863/udp # Sonar Data [Ian_Higginbottom] [Ian_Higginbottom] +astromed-main 2864/tcp # main 5001 cmd [Chris_Tate] [Chris_Tate] +astromed-main 2864/udp # main 5001 cmd [Chris_Tate] [Chris_Tate] +pit-vpn 2865/tcp # pit-vpn [Norbert_Sendetzky] [Norbert_Sendetzky] +pit-vpn 2865/udp # pit-vpn [Norbert_Sendetzky] [Norbert_Sendetzky] +iwlistener 2866/tcp # iwlistener [Fred_Surr] [Fred_Surr] +iwlistener 2866/udp # iwlistener [Fred_Surr] [Fred_Surr] +esps-portal 2867/tcp # esps-portal [Nicholas_Stowfis] [Nicholas_Stowfis] +esps-portal 2867/udp # esps-portal [Nicholas_Stowfis] [Nicholas_Stowfis] +npep-messaging 2868/tcp # NPEP Messaging [Kristian_A_Bognaes] [Kristian_A_Bognaes] +npep-messaging 2868/udp # NPEP Messaging [Kristian_A_Bognaes] [Kristian_A_Bognaes] +icslap 2869/tcp # ICSLAP [Richard_Lamb] [Richard_Lamb] +icslap 2869/udp # ICSLAP [Richard_Lamb] [Richard_Lamb] +daishi 2870/tcp # daishi [Patrick_Chipman] [Patrick_Chipman] +daishi 2870/udp # daishi [Patrick_Chipman] [Patrick_Chipman] +msi-selectplay 2871/tcp # MSI Select Play [Paul_Fonte] [Paul_Fonte] +msi-selectplay 2871/udp # MSI Select Play [Paul_Fonte] [Paul_Fonte] +radix 2872/tcp # RADIX [Stein_Roger_Skaflott] [Stein_Roger_Skaflott] 2011-07-06 +radix 2872/udp # RADIX [Stein_Roger_Skaflott] [Stein_Roger_Skaflott] 2011-07-06 +# 2873 Unassigned 2003-07-23 +dxmessagebase1 2874/tcp # DX Message Base Transport +dxmessagebase1 2874/udp # DX Message Base Transport +dxmessagebase2 2875/tcp # DX Message Base Transport [G_E_Ozz_Nixon_Jr] [G_E_Ozz_Nixon_Jr] 2009-01-13 +dxmessagebase2 2875/udp # DX Message Base Transport [G_E_Ozz_Nixon_Jr] [G_E_Ozz_Nixon_Jr] 2009-01-13 +sps-tunnel 2876/tcp # SPS Tunnel [Bill_McIntosh] [Bill_McIntosh] +sps-tunnel 2876/udp # SPS Tunnel [Bill_McIntosh] [Bill_McIntosh] +bluelance 2877/tcp # BLUELANCE [Michael_Padrezas] [Michael_Padrezas] +bluelance 2877/udp # BLUELANCE [Michael_Padrezas] [Michael_Padrezas] +aap 2878/tcp # AAP [Stephen_Hanna_2] [Stephen_Hanna_2] +aap 2878/udp # AAP [Stephen_Hanna_2] [Stephen_Hanna_2] +ucentric-ds 2879/tcp # ucentric-ds [Alex_Vasilevsky] [Alex_Vasilevsky] +ucentric-ds 2879/udp # ucentric-ds [Alex_Vasilevsky] [Alex_Vasilevsky] +synapse 2880/tcp # Synapse Transport [Ali_Fracyon] [Ali_Fracyon] +synapse 2880/udp # Synapse Transport [Ali_Fracyon] [Ali_Fracyon] +ndsp 2881/tcp # NDSP +ndsp 2881/udp # NDSP +ndtp 2882/tcp # NDTP +ndtp 2882/udp # NDTP +ndnp 2883/tcp # NDNP [Khelben_Blackstaff] [Khelben_Blackstaff] +ndnp 2883/udp # NDNP [Khelben_Blackstaff] [Khelben_Blackstaff] +flashmsg 2884/tcp # Flash Msg [Jeffrey_Zinkerman] [Jeffrey_Zinkerman] +flashmsg 2884/udp # Flash Msg [Jeffrey_Zinkerman] [Jeffrey_Zinkerman] +topflow 2885/tcp # TopFlow [Ted_Ross] [Ted_Ross] +topflow 2885/udp # TopFlow [Ted_Ross] [Ted_Ross] +responselogic 2886/tcp # RESPONSELOGIC [Bruce_Casey] [Bruce_Casey] +responselogic 2886/udp # RESPONSELOGIC [Bruce_Casey] [Bruce_Casey] +aironetddp 2887/tcp # aironet [Victor_Griswold] [Victor_Griswold] +aironetddp 2887/udp # aironet [Victor_Griswold] [Victor_Griswold] +spcsdlobby 2888/tcp # SPCSDLOBBY [Matthew_Williams] [Matthew_Williams] +spcsdlobby 2888/udp # SPCSDLOBBY [Matthew_Williams] [Matthew_Williams] +rsom 2889/tcp # RSOM [Justine_Higgins] [Justine_Higgins] +rsom 2889/udp # RSOM [Justine_Higgins] [Justine_Higgins] +cspclmulti 2890/tcp # CSPCLMULTI [Yoneda_Terumasa] [Yoneda_Terumasa] +cspclmulti 2890/udp # CSPCLMULTI [Yoneda_Terumasa] [Yoneda_Terumasa] +cinegrfx-elmd 2891/tcp # CINEGRFX-ELMD License [Greg_Ercolano_2] [Greg_Ercolano_2] +cinegrfx-elmd 2891/udp # CINEGRFX-ELMD License [Greg_Ercolano_2] [Greg_Ercolano_2] +snifferdata 2892/tcp # SNIFFERDATA [Jeff_Mangasarian] [Jeff_Mangasarian] +snifferdata 2892/udp # SNIFFERDATA [Jeff_Mangasarian] [Jeff_Mangasarian] +vseconnector 2893/tcp # VSECONNECTOR [Ingo_Franzki] [Ingo_Franzki] +vseconnector 2893/udp # VSECONNECTOR [Ingo_Franzki] [Ingo_Franzki] +abacus-remote 2894/tcp # ABACUS-REMOTE [Mike_Bello] [Mike_Bello] +abacus-remote 2894/udp # ABACUS-REMOTE [Mike_Bello] [Mike_Bello] +natuslink 2895/tcp # NATUS LINK [Jonathan_Mergy] [Jonathan_Mergy] +natuslink 2895/udp # NATUS LINK [Jonathan_Mergy] [Jonathan_Mergy] +ecovisiong6-1 2896/tcp # ECOVISIONG6-1 [Henrik_Holst] [Henrik_Holst] +ecovisiong6-1 2896/udp # ECOVISIONG6-1 [Henrik_Holst] [Henrik_Holst] +citrix-rtmp 2897/tcp # Citrix RTMP [Myk_Willis] [Myk_Willis] +citrix-rtmp 2897/udp # Citrix RTMP [Myk_Willis] [Myk_Willis] +appliance-cfg 2898/tcp # APPLIANCE-CFG [Gary_A_James] [Gary_A_James] +appliance-cfg 2898/udp # APPLIANCE-CFG [Gary_A_James] [Gary_A_James] +powergemplus 2899/tcp # POWERGEMPLUS [Koich_Nakamura] [Koich_Nakamura] +powergemplus 2899/udp # POWERGEMPLUS [Koich_Nakamura] [Koich_Nakamura] +quicksuite 2900/tcp # QUICKSUITE [William_Egge] [William_Egge] +quicksuite 2900/udp # QUICKSUITE [William_Egge] [William_Egge] +allstorcns 2901/tcp # ALLSTORCNS [Steve_Dobson] [Steve_Dobson] +allstorcns 2901/udp # ALLSTORCNS [Steve_Dobson] [Steve_Dobson] +netaspi 2902/tcp # NET ASPI [Johnson_Luo] [Johnson_Luo] +netaspi 2902/udp # NET ASPI [Johnson_Luo] [Johnson_Luo] +suitcase 2903/tcp # SUITCASE [Milton_E_Sagen] [Milton_E_Sagen] +suitcase 2903/udp # SUITCASE [Milton_E_Sagen] [Milton_E_Sagen] +m2ua 2904/tcp # M2UA [Lyndon_Ong] [Lyndon_Ong] +m2ua 2904/udp # M2UA [Lyndon_Ong] [Lyndon_Ong] +m2ua 2904/sctp # M2UA [Lyndon_Ong] [Lyndon_Ong] +m3ua 2905/tcp # M3UA [Lyndon_Ong] [Lyndon_Ong] [RFC4666] +# 2905 udp De-registered 2001-06-07 +m3ua 2905/sctp # M3UA [Lyndon_Ong] [Lyndon_Ong] [RFC4666] +caller9 2906/tcp # CALLER9 [Shams_Naqi] [Shams_Naqi] +caller9 2906/udp # CALLER9 [Shams_Naqi] [Shams_Naqi] +webmethods-b2b 2907/tcp # WEBMETHODS B2B [Joseph_Hines] [Joseph_Hines] +webmethods-b2b 2907/udp # WEBMETHODS B2B [Joseph_Hines] [Joseph_Hines] +mao 2908/tcp # mao [Marc_Baudoin] [Marc_Baudoin] +mao 2908/udp # mao [Marc_Baudoin] [Marc_Baudoin] +funk-dialout 2909/tcp # Funk Dialout [Cimarron_Boozer] [Cimarron_Boozer] +funk-dialout 2909/udp # Funk Dialout [Cimarron_Boozer] [Cimarron_Boozer] +tdaccess 2910/tcp # TDAccess [Tom_Haapanen] [Tom_Haapanen] +tdaccess 2910/udp # TDAccess [Tom_Haapanen] [Tom_Haapanen] +blockade 2911/tcp # Blockade [Blockade] [Blockade] +blockade 2911/udp # Blockade [Blockade] [Blockade] +epicon 2912/tcp # Epicon [Michael_Khalandovsky] [Michael_Khalandovsky] +epicon 2912/udp # Epicon [Michael_Khalandovsky] [Michael_Khalandovsky] +boosterware 2913/tcp # Booster Ware [Ido_Ben_David] [Ido_Ben_David] +boosterware 2913/udp # Booster Ware [Ido_Ben_David] [Ido_Ben_David] +gamelobby 2914/tcp # Game Lobby [Paul_Ford_Hutchinson] [Paul_Ford_Hutchinson] +gamelobby 2914/udp # Game Lobby [Paul_Ford_Hutchinson] [Paul_Ford_Hutchinson] +tksocket 2915/tcp # TK Socket [Dino_Ciano] [Dino_Ciano] 2011-03-02 +tksocket 2915/udp # TK Socket [Dino_Ciano] [Dino_Ciano] 2011-03-02 +# Elvin Server +# +elvin-server 2916/tcp # IANA assigned this +# "elvin_server". +# This entry is an alias to "elvin-server". This entry is now +elvin_server 2916/tcp # Elvin Server historic, not usable for use with many common service +# +elvin-server 2916/udp # IANA assigned this +elvin_server 2916/udp # Elvin Server historic, not usable for use with many common service +# Elvin Client +# +elvin-client 2917/tcp # IANA assigned this [David_Arnold] [David_Arnold] +# "elvin_client". +# This entry is an alias to "elvin-client". This entry is now +elvin_client 2917/tcp # Elvin Client [David_Arnold] [David_Arnold] historic, not usable for use with many common service +# +elvin-client 2917/udp # IANA assigned this [David_Arnold] [David_Arnold] +elvin_client 2917/udp # Elvin Client [David_Arnold] [David_Arnold] historic, not usable for use with many common service +kastenchasepad 2918/tcp # Kasten Chase Pad [Marc_Gauthier] [Marc_Gauthier] +kastenchasepad 2918/udp # Kasten Chase Pad [Marc_Gauthier] [Marc_Gauthier] +roboer 2919/tcp # roboER [Paul_Snook] [Paul_Snook] +roboer 2919/udp # roboER [Paul_Snook] [Paul_Snook] +roboeda 2920/tcp # roboEDA [Paul_Snook] [Paul_Snook] +roboeda 2920/udp # roboEDA [Paul_Snook] [Paul_Snook] +cesdcdman 2921/tcp # CESD Contents Delivery [Shinya_Abe] [Shinya_Abe] +cesdcdman 2921/udp # CESD Contents Delivery [Shinya_Abe] [Shinya_Abe] +cesdcdtrn 2922/tcp # CESD Contents Delivery Data [Shinya_Abe] [Shinya_Abe] +cesdcdtrn 2922/udp # CESD Contents Delivery Data [Shinya_Abe] [Shinya_Abe] +wta-wsp-wtp-s 2923/tcp # WTA-WSP-WTP-S [Sebastien_Bury] [Sebastien_Bury] +wta-wsp-wtp-s 2923/udp # WTA-WSP-WTP-S [Sebastien_Bury] [Sebastien_Bury] +precise-vip 2924/tcp # PRECISE-VIP [Michael_Landwehr] [Michael_Landwehr] +precise-vip 2924/udp # PRECISE-VIP [Michael_Landwehr] [Michael_Landwehr] +# 2925 Unassigned (FRP-Released +# 12/7/00) +mobile-file-dl 2926/tcp # MOBILE-FILE-DL [Mitsuji_Toda] [Mitsuji_Toda] +mobile-file-dl 2926/udp # MOBILE-FILE-DL [Mitsuji_Toda] [Mitsuji_Toda] +unimobilectrl 2927/tcp # UNIMOBILECTRL [Vikas] [Vikas] +unimobilectrl 2927/udp # UNIMOBILECTRL [Vikas] [Vikas] +redstone-cpss 2928/tcp # REDSTONE-CPSS [Jeff_Looman] [Jeff_Looman] +redstone-cpss 2928/udp # REDSTONE-CPSS [Jeff_Looman] [Jeff_Looman] +amx-webadmin 2929/tcp # AMX-WEBADMIN [Mike_Morris] [Mike_Morris] +amx-webadmin 2929/udp # AMX-WEBADMIN [Mike_Morris] [Mike_Morris] +amx-weblinx 2930/tcp # AMX-WEBLINX [Mike_Morris] [Mike_Morris] +amx-weblinx 2930/udp # AMX-WEBLINX [Mike_Morris] [Mike_Morris] +circle-x 2931/tcp # Circle-X [Norm_Freedman_2] [Norm_Freedman_2] +circle-x 2931/udp # Circle-X [Norm_Freedman_2] [Norm_Freedman_2] +incp 2932/tcp # INCP [Keith_Paulsen] [Keith_Paulsen] +incp 2932/udp # INCP [Keith_Paulsen] [Keith_Paulsen] +4-tieropmgw 2933/tcp # 4-TIER OPM GW [Francois_Peloffy] [Francois_Peloffy] +4-tieropmgw 2933/udp # 4-TIER OPM GW [Francois_Peloffy] [Francois_Peloffy] +4-tieropmcli 2934/tcp # 4-TIER OPM CLI [Francois_Peloffy] [Francois_Peloffy] +4-tieropmcli 2934/udp # 4-TIER OPM CLI [Francois_Peloffy] [Francois_Peloffy] +qtp 2935/tcp # QTP [Cameron_Young] [Cameron_Young] +qtp 2935/udp # QTP [Cameron_Young] [Cameron_Young] +otpatch 2936/tcp # OTPatch [Brett_Goldstein] [Brett_Goldstein] +otpatch 2936/udp # OTPatch [Brett_Goldstein] [Brett_Goldstein] +pnaconsult-lm 2937/tcp # PNACONSULT-LM [Theo_Nijssen] [Theo_Nijssen] +pnaconsult-lm 2937/udp # PNACONSULT-LM [Theo_Nijssen] [Theo_Nijssen] +sm-pas-1 2938/tcp # SM-PAS-1 +sm-pas-1 2938/udp # SM-PAS-1 +sm-pas-2 2939/tcp # SM-PAS-2 +sm-pas-2 2939/udp # SM-PAS-2 +sm-pas-3 2940/tcp # SM-PAS-3 +sm-pas-3 2940/udp # SM-PAS-3 +sm-pas-4 2941/tcp # SM-PAS-4 +sm-pas-4 2941/udp # SM-PAS-4 +sm-pas-5 2942/tcp # SM-PAS-5 [Tom_Haapanen] [Tom_Haapanen] +sm-pas-5 2942/udp # SM-PAS-5 [Tom_Haapanen] [Tom_Haapanen] +ttnrepository 2943/tcp # TTNRepository [Robert_Orr] [Robert_Orr] +ttnrepository 2943/udp # TTNRepository [Robert_Orr] [Robert_Orr] +megaco-h248 2944/tcp # Megaco H-248 [Tom_Taylor_2] [Tom_Taylor_2] +megaco-h248 2944/udp # Megaco H-248 [Tom_Taylor_2] [Tom_Taylor_2] +megaco-h248 2944/sctp # Megaco-H.248 text [Tom_Taylor_3] [Tom_Taylor_3] 2006-09 +h248-binary 2945/tcp # H248 Binary [Tom_Taylor_2] [Tom_Taylor_2] +h248-binary 2945/udp # H248 Binary [Tom_Taylor_2] [Tom_Taylor_2] +h248-binary 2945/sctp # Megaco/H.248 binary [Tom_Taylor_3] [Tom_Taylor_3] 2006-09 +fjsvmpor 2946/tcp # FJSVmpor [Naoki_Hayashi] [Naoki_Hayashi] +fjsvmpor 2946/udp # FJSVmpor [Naoki_Hayashi] [Naoki_Hayashi] +gpsd 2947/tcp # GPS Daemon request/response [Eric_S_Raymond] [Eric_S_Raymond] 2010-04-19 +gpsd 2947/udp # GPS Daemon request/response [Eric_S_Raymond] [Eric_S_Raymond] 2010-04-19 +wap-push 2948/tcp # WAP PUSH +wap-push 2948/udp # WAP PUSH +wap-pushsecure 2949/tcp # WAP PUSH SECURE [WAP_Forum] [WAP_Forum] +wap-pushsecure 2949/udp # WAP PUSH SECURE [WAP_Forum] [WAP_Forum] +esip 2950/tcp # ESIP [David_Stephenson] [David_Stephenson] +esip 2950/udp # ESIP [David_Stephenson] [David_Stephenson] +ottp 2951/tcp # OTTP [Brent_Foster] [Brent_Foster] +ottp 2951/udp # OTTP [Brent_Foster] [Brent_Foster] +mpfwsas 2952/tcp # MPFWSAS [Toru_Murai] [Toru_Murai] +mpfwsas 2952/udp # MPFWSAS [Toru_Murai] [Toru_Murai] +ovalarmsrv 2953/tcp # OVALARMSRV +ovalarmsrv 2953/udp # OVALARMSRV +ovalarmsrv-cmd 2954/tcp # OVALARMSRV-CMD [Eric_Pulsipher] [Eric_Pulsipher] +ovalarmsrv-cmd 2954/udp # OVALARMSRV-CMD [Eric_Pulsipher] [Eric_Pulsipher] +csnotify 2955/tcp # CSNOTIFY [Israel_Beniaminy] [Israel_Beniaminy] +csnotify 2955/udp # CSNOTIFY [Israel_Beniaminy] [Israel_Beniaminy] +ovrimosdbman 2956/tcp # OVRIMOSDBMAN [Dimitrios_Souflis] [Dimitrios_Souflis] +ovrimosdbman 2956/udp # OVRIMOSDBMAN [Dimitrios_Souflis] [Dimitrios_Souflis] +jmact5 2957/tcp # JAMCT5 +jmact5 2957/udp # JAMCT5 +jmact6 2958/tcp # JAMCT6 +jmact6 2958/udp # JAMCT6 +rmopagt 2959/tcp # RMOPAGT [Shuji_Okubo] [Shuji_Okubo] +rmopagt 2959/udp # RMOPAGT [Shuji_Okubo] [Shuji_Okubo] +dfoxserver 2960/tcp # DFOXSERVER [David_Holden] [David_Holden] +dfoxserver 2960/udp # DFOXSERVER [David_Holden] [David_Holden] +boldsoft-lm 2961/tcp # BOLDSOFT-LM [Fredrik_Haglund] [Fredrik_Haglund] +boldsoft-lm 2961/udp # BOLDSOFT-LM [Fredrik_Haglund] [Fredrik_Haglund] +iph-policy-cli 2962/tcp # IPH-POLICY-CLI +iph-policy-cli 2962/udp # IPH-POLICY-CLI +iph-policy-adm 2963/tcp # IPH-POLICY-ADM [Shai_Herzog] [Shai_Herzog] +iph-policy-adm 2963/udp # IPH-POLICY-ADM [Shai_Herzog] [Shai_Herzog] +bullant-srap 2964/tcp # BULLANT SRAP +bullant-srap 2964/udp # BULLANT SRAP +bullant-rap 2965/tcp # BULLANT RAP [Michael_Cahill] [Michael_Cahill] +bullant-rap 2965/udp # BULLANT RAP [Michael_Cahill] [Michael_Cahill] +idp-infotrieve 2966/tcp # IDP-INFOTRIEVE [Kevin_Bruckert] [Kevin_Bruckert] +idp-infotrieve 2966/udp # IDP-INFOTRIEVE [Kevin_Bruckert] [Kevin_Bruckert] +ssc-agent 2967/tcp # SSC-AGENT [George_Dzieciol] [George_Dzieciol] +ssc-agent 2967/udp # SSC-AGENT [George_Dzieciol] [George_Dzieciol] +enpp 2968/tcp # ENPP [Kazuhito_Gassho] [Kazuhito_Gassho] +enpp 2968/udp # ENPP [Kazuhito_Gassho] [Kazuhito_Gassho] +essp 2969/tcp # ESSP [Hitoshi_Ishida] [Hitoshi_Ishida] +essp 2969/udp # ESSP [Hitoshi_Ishida] [Hitoshi_Ishida] +index-net 2970/tcp # INDEX-NET [Chris_J_Wren] [Chris_J_Wren] +index-net 2970/udp # INDEX-NET [Chris_J_Wren] [Chris_J_Wren] +netclip 2971/tcp # NetClip clipboard daemon [Rudi_Chiarito] [Rudi_Chiarito] +netclip 2971/udp # NetClip clipboard daemon [Rudi_Chiarito] [Rudi_Chiarito] +pmsm-webrctl 2972/tcp # PMSM Webrctl [Markus_Michels] [Markus_Michels] +pmsm-webrctl 2972/udp # PMSM Webrctl [Markus_Michels] [Markus_Michels] +svnetworks 2973/tcp # SV Networks [Sylvia_Siu_2] [Sylvia_Siu_2] +svnetworks 2973/udp # SV Networks [Sylvia_Siu_2] [Sylvia_Siu_2] +signal 2974/tcp # Signal [Wyatt_Williams] [Wyatt_Williams] +signal 2974/udp # Signal [Wyatt_Williams] [Wyatt_Williams] +fjmpcm 2975/tcp # Fujitsu Configuration [Hiroki_Kawano] [Hiroki_Kawano] +# Management Service +fjmpcm 2975/udp # Fujitsu Configuration [Hiroki_Kawano] [Hiroki_Kawano] +cns-srv-port 2976/tcp # CNS Server Port [Ram_Golla] [Ram_Golla] +cns-srv-port 2976/udp # CNS Server Port [Ram_Golla] [Ram_Golla] +ttc-etap-ns 2977/tcp # TTCs Enterprise Test Access +# Protocol - NS +ttc-etap-ns 2977/udp # TTCs Enterprise Test Access +ttc-etap-ds 2978/tcp # TTCs Enterprise Test Access [Daniel_Becker_2] [Daniel_Becker_2] +# Protocol - DS +ttc-etap-ds 2978/udp # TTCs Enterprise Test Access [Daniel_Becker_2] [Daniel_Becker_2] +h263-video 2979/tcp # H.263 Video Streaming [Jauvane_C_de_Olivei] [Jauvane_C_de_Olivei] +h263-video 2979/udp # H.263 Video Streaming [Jauvane_C_de_Olivei] [Jauvane_C_de_Olivei] +wimd 2980/tcp # Instant Messaging Service [Kevin_Birch] [Kevin_Birch] +wimd 2980/udp # Instant Messaging Service [Kevin_Birch] [Kevin_Birch] +mylxamport 2981/tcp # MYLXAMPORT [Wei_Gao] [Wei_Gao] +mylxamport 2981/udp # MYLXAMPORT [Wei_Gao] [Wei_Gao] +iwb-whiteboard 2982/tcp # IWB-WHITEBOARD [David_W_Radcliffe] [David_W_Radcliffe] +iwb-whiteboard 2982/udp # IWB-WHITEBOARD [David_W_Radcliffe] [David_W_Radcliffe] +netplan 2983/tcp # NETPLAN [Thomas_Driemeyer] [Thomas_Driemeyer] +netplan 2983/udp # NETPLAN [Thomas_Driemeyer] [Thomas_Driemeyer] +hpidsadmin 2984/tcp # HPIDSADMIN +hpidsadmin 2984/udp # HPIDSADMIN +hpidsagent 2985/tcp # HPIDSAGENT [John_Trudeau] [John_Trudeau] +hpidsagent 2985/udp # HPIDSAGENT [John_Trudeau] [John_Trudeau] +stonefalls 2986/tcp # STONEFALLS [Scott_Grau] [Scott_Grau] +stonefalls 2986/udp # STONEFALLS [Scott_Grau] [Scott_Grau] +identify 2987/tcp # identify +identify 2987/udp # identify +hippad 2988/tcp # HIPPA Reporting Protocol [William_Randolph_Roy] [William_Randolph_Roy] +hippad 2988/udp # HIPPA Reporting Protocol [William_Randolph_Roy] [William_Randolph_Roy] +zarkov 2989/tcp # ZARKOV Intelligent Agent [Robin_Felix] [Robin_Felix] +zarkov 2989/udp # ZARKOV Intelligent Agent [Robin_Felix] [Robin_Felix] +boscap 2990/tcp # BOSCAP [Dirk_Hillbrecht] [Dirk_Hillbrecht] +boscap 2990/udp # BOSCAP [Dirk_Hillbrecht] [Dirk_Hillbrecht] +wkstn-mon 2991/tcp # WKSTN-MON [William_David] [William_David] +wkstn-mon 2991/udp # WKSTN-MON [William_David] [William_David] +avenyo 2992/tcp # Avenyo Server [Bodo_Rueskamp] [Bodo_Rueskamp] +avenyo 2992/udp # Avenyo Server [Bodo_Rueskamp] [Bodo_Rueskamp] +veritas-vis1 2993/tcp # VERITAS VIS1 +veritas-vis1 2993/udp # VERITAS VIS1 +veritas-vis2 2994/tcp # VERITAS VIS2 [Dinkar_Chivaluri] [Dinkar_Chivaluri] +veritas-vis2 2994/udp # VERITAS VIS2 [Dinkar_Chivaluri] [Dinkar_Chivaluri] +idrs 2995/tcp # IDRS [Jeff_Eaton] [Jeff_Eaton] +idrs 2995/udp # IDRS [Jeff_Eaton] [Jeff_Eaton] +vsixml 2996/tcp # vsixml [Rob_Juergens] [Rob_Juergens] +vsixml 2996/udp # vsixml [Rob_Juergens] [Rob_Juergens] +rebol 2997/tcp # REBOL [Holger_Kruse] [Holger_Kruse] +rebol 2997/udp # REBOL [Holger_Kruse] [Holger_Kruse] +realsecure 2998/tcp # Real Secure [Wes_Wilson] [Wes_Wilson] +realsecure 2998/udp # Real Secure [Wes_Wilson] [Wes_Wilson] +remoteware-un 2999/tcp # RemoteWare Unassigned [Tim_Farley] [Tim_Farley] +remoteware-un 2999/udp # RemoteWare Unassigned [Tim_Farley] [Tim_Farley] +hbci 3000/tcp # HBCI [Kurt_Haubner] [Kurt_Haubner] +hbci 3000/udp # HBCI [Kurt_Haubner] [Kurt_Haubner] +remoteware-cl 3000/tcp # RemoteWare Client [Tim_Farley] [Tim_Farley] This entry records an unassigned but widespread use +remoteware-cl 3000/udp # RemoteWare Client [Tim_Farley] [Tim_Farley] This entry records an unassigned but widespread use +# 3001 Unassigned 2006-05-25 +exlm-agent 3002/tcp # EXLM Agent [Randy_Martin] [Randy_Martin] +exlm-agent 3002/udp # EXLM Agent [Randy_Martin] [Randy_Martin] +remoteware-srv 3002/tcp # RemoteWare Server [Tim_Farley] [Tim_Farley] This entry records an unassigned but widespread use +remoteware-srv 3002/udp # RemoteWare Server [Tim_Farley] [Tim_Farley] This entry records an unassigned but widespread use +cgms 3003/tcp # CGMS [Corey_Clinton] [Corey_Clinton] 2011-02-02 +cgms 3003/udp # CGMS [Corey_Clinton] [Corey_Clinton] 2011-02-02 +csoftragent 3004/tcp # Csoft Agent [Nedelcho_Stanev_2] [Nedelcho_Stanev_2] +csoftragent 3004/udp # Csoft Agent [Nedelcho_Stanev_2] [Nedelcho_Stanev_2] +geniuslm 3005/tcp # Genius License Manager [Jakob_Spies] [Jakob_Spies] +geniuslm 3005/udp # Genius License Manager [Jakob_Spies] [Jakob_Spies] +ii-admin 3006/tcp # Instant Internet Admin [Lewis_Donzis] [Lewis_Donzis] +ii-admin 3006/udp # Instant Internet Admin [Lewis_Donzis] [Lewis_Donzis] +lotusmtap 3007/tcp # Lotus Mail Tracking Agent [Ken_Lin] [Ken_Lin] +lotusmtap 3007/udp # Lotus Mail Tracking Agent [Ken_Lin] [Ken_Lin] +midnight-tech 3008/tcp # Midnight Technologies [Kyle_Unice] [Kyle_Unice] +midnight-tech 3008/udp # Midnight Technologies [Kyle_Unice] [Kyle_Unice] +pxc-ntfy 3009/tcp # PXC-NTFY [Takeshi_Nishizawa] [Takeshi_Nishizawa] +pxc-ntfy 3009/udp # PXC-NTFY [Takeshi_Nishizawa] [Takeshi_Nishizawa] +gw 3010/tcp # Telerate Workstation +ping-pong 3010/udp # Telerate Workstation [Timo_Sivonen] [Timo_Sivonen] +trusted-web 3011/tcp # Trusted Web +trusted-web 3011/udp # Trusted Web +twsdss 3012/tcp # Trusted Web Client [Alex_Duncan] [Alex_Duncan] +twsdss 3012/udp # Trusted Web Client [Alex_Duncan] [Alex_Duncan] +gilatskysurfer 3013/tcp # Gilat Sky Surfer [Yossi_Gal] [Yossi_Gal] +gilatskysurfer 3013/udp # Gilat Sky Surfer [Yossi_Gal] [Yossi_Gal] +# Broker Service +# +broker-service 3014/tcp # IANA assigned this [Dale_Bethers] [Dale_Bethers] +# "broker_service". +# This entry is an alias to "broker-service". This entry is now +broker_service 3014/tcp # Broker Service [Dale_Bethers] [Dale_Bethers] historic, not usable for use with many common service +# +broker-service 3014/udp # IANA assigned this [Dale_Bethers] [Dale_Bethers] +broker_service 3014/udp # Broker Service [Dale_Bethers] [Dale_Bethers] historic, not usable for use with many common service +nati-dstp 3015/tcp # NATI DSTP [Paul_Austin] [Paul_Austin] +nati-dstp 3015/udp # NATI DSTP [Paul_Austin] [Paul_Austin] +# Notify Server +# +notify-srvr 3016/tcp # IANA assigned this [Hugo_Parra] [Hugo_Parra] +# "notify_srvr". +# This entry is an alias to "notify-srvr". This entry is now +notify_srvr 3016/tcp # Notify Server [Hugo_Parra] [Hugo_Parra] historic, not usable for use with many common service +# +notify-srvr 3016/udp # IANA assigned this [Hugo_Parra] [Hugo_Parra] +notify_srvr 3016/udp # Notify Server [Hugo_Parra] [Hugo_Parra] historic, not usable for use with many common service +# Event Listener +# +event-listener 3017/tcp # IANA assigned this [Ted_Tronson] [Ted_Tronson] +# "event_listener". +# This entry is an alias to "event-listener". This entry is now +event_listener 3017/tcp # Event Listener [Ted_Tronson] [Ted_Tronson] historic, not usable for use with many common service +# +event-listener 3017/udp # IANA assigned this [Ted_Tronson] [Ted_Tronson] +event_listener 3017/udp # Event Listener [Ted_Tronson] [Ted_Tronson] historic, not usable for use with many common service +# Service Registry +# +srvc-registry 3018/tcp # IANA assigned this [Mark_Killgore] [Mark_Killgore] +# "srvc_registry". +# This entry is an alias to "srvc-registry". This entry is now +srvc_registry 3018/tcp # Service Registry [Mark_Killgore] [Mark_Killgore] historic, not usable for use with many common service +# +srvc-registry 3018/udp # IANA assigned this [Mark_Killgore] [Mark_Killgore] +srvc_registry 3018/udp # Service Registry [Mark_Killgore] [Mark_Killgore] historic, not usable for use with many common service +# Resource Manager +# +resource-mgr 3019/tcp # IANA assigned this [Gary_Glover] [Gary_Glover] +# "resource_mgr". +# This entry is an alias to "resource-mgr". This entry is now +resource_mgr 3019/tcp # Resource Manager [Gary_Glover] [Gary_Glover] historic, not usable for use with many common service +# +resource-mgr 3019/udp # IANA assigned this [Gary_Glover] [Gary_Glover] +resource_mgr 3019/udp # Resource Manager [Gary_Glover] [Gary_Glover] historic, not usable for use with many common service +cifs 3020/tcp # CIFS [Paul_Leach] [Paul_Leach] +cifs 3020/udp # CIFS [Paul_Leach] [Paul_Leach] +agriserver 3021/tcp # AGRI Server [Frank_Neulichedl] [Frank_Neulichedl] +agriserver 3021/udp # AGRI Server [Frank_Neulichedl] [Frank_Neulichedl] +csregagent 3022/tcp # CSREGAGENT [Nedelcho_Stanev] [Nedelcho_Stanev] +csregagent 3022/udp # CSREGAGENT [Nedelcho_Stanev] [Nedelcho_Stanev] +magicnotes 3023/tcp # magicnotes [Karl_Edwall] [Karl_Edwall] +magicnotes 3023/udp # magicnotes [Karl_Edwall] [Karl_Edwall] +# NDS_SSO +# +nds-sso 3024/tcp # IANA assigned this [Mel_Oyler] [Mel_Oyler] +# a replacement for "nds_sso". +# This entry is an alias to "nds-sso". This entry is now +nds_sso 3024/tcp # NDS_SSO [Mel_Oyler] [Mel_Oyler] historic, not usable for use with many common service +# +nds-sso 3024/udp # IANA assigned this [Mel_Oyler] [Mel_Oyler] +nds_sso 3024/udp # NDS_SSO [Mel_Oyler] [Mel_Oyler] historic, not usable for use with many common service +arepa-raft 3025/tcp # Arepa Raft [Stuart_Schaefer] [Stuart_Schaefer] +arepa-raft 3025/udp # Arepa Raft [Stuart_Schaefer] [Stuart_Schaefer] +agri-gateway 3026/tcp # AGRI Gateway [Agri_Datalog] [Agri_Datalog] +agri-gateway 3026/udp # AGRI Gateway [Agri_Datalog] [Agri_Datalog] +# LiebDevMgmt_C +# +LiebDevMgmt-C 3027/tcp # IANA assigned this +# "LiebDevMgmt_C". +# This entry is an alias to "LiebDevMgmt-C". This entry is now +LiebDevMgmt_C 3027/tcp # LiebDevMgmt_C historic, not usable for use with many common service +# +LiebDevMgmt-C 3027/udp # IANA assigned this +LiebDevMgmt_C 3027/udp # LiebDevMgmt_C historic, not usable for use with many common service +# LiebDevMgmt_DM +# +LiebDevMgmt-DM 3028/tcp # IANA assigned this +# "LiebDevMgmt_DM". +# This entry is an alias to "LiebDevMgmt-DM". This entry is now +LiebDevMgmt_DM 3028/tcp # LiebDevMgmt_DM historic, not usable for use with many common service +# +LiebDevMgmt-DM 3028/udp # IANA assigned this +LiebDevMgmt_DM 3028/udp # LiebDevMgmt_DM historic, not usable for use with many common service +# LiebDevMgmt_A +# +LiebDevMgmt-A 3029/tcp # IANA assigned this [Mike_Velten] [Mike_Velten] +# "LiebDevMgmt_A". +# This entry is an alias to "LiebDevMgmt-A". This entry is now +LiebDevMgmt_A 3029/tcp # LiebDevMgmt_A [Mike_Velten] [Mike_Velten] historic, not usable for use with many common service +# +LiebDevMgmt-A 3029/udp # IANA assigned this [Mike_Velten] [Mike_Velten] +LiebDevMgmt_A 3029/udp # LiebDevMgmt_A [Mike_Velten] [Mike_Velten] historic, not usable for use with many common service +arepa-cas 3030/tcp # Arepa Cas [Stuart_Schaefer] [Stuart_Schaefer] +arepa-cas 3030/udp # Arepa Cas [Stuart_Schaefer] [Stuart_Schaefer] +eppc 3031/tcp # Remote AppleEvents/PPC [Steve_Zellers] [Steve_Zellers] +# Toolbox +eppc 3031/udp # Remote AppleEvents/PPC [Steve_Zellers] [Steve_Zellers] +redwood-chat 3032/tcp # Redwood Chat [Songwon_Chi] [Songwon_Chi] +redwood-chat 3032/udp # Redwood Chat [Songwon_Chi] [Songwon_Chi] +pdb 3033/tcp # PDB [Don_Bowman] [Don_Bowman] +pdb 3033/udp # PDB [Don_Bowman] [Don_Bowman] +osmosis-aeea 3034/tcp # Osmosis / Helix (R) AEEA [Larry_Atkin] [Larry_Atkin] +# Port +osmosis-aeea 3034/udp # Osmosis / Helix (R) AEEA [Larry_Atkin] [Larry_Atkin] +fjsv-gssagt 3035/tcp # FJSV gssagt [Tomoji_Koike] [Tomoji_Koike] +fjsv-gssagt 3035/udp # FJSV gssagt [Tomoji_Koike] [Tomoji_Koike] +hagel-dump 3036/tcp # Hagel DUMP [Haim_Gelfenbeyn] [Haim_Gelfenbeyn] +hagel-dump 3036/udp # Hagel DUMP [Haim_Gelfenbeyn] [Haim_Gelfenbeyn] +hp-san-mgmt 3037/tcp # HP SAN Mgmt [Steve_Britt] [Steve_Britt] +hp-san-mgmt 3037/udp # HP SAN Mgmt [Steve_Britt] [Steve_Britt] +santak-ups 3038/tcp # Santak UPS [Tom_Liu] [Tom_Liu] +santak-ups 3038/udp # Santak UPS [Tom_Liu] [Tom_Liu] +cogitate 3039/tcp # Cogitate, Inc. [Jim_Harlan] [Jim_Harlan] +cogitate 3039/udp # Cogitate, Inc. [Jim_Harlan] [Jim_Harlan] +tomato-springs 3040/tcp # Tomato Springs [Jack_Waller_III] [Jack_Waller_III] +tomato-springs 3040/udp # Tomato Springs [Jack_Waller_III] [Jack_Waller_III] +di-traceware 3041/tcp # di-traceware [Carlos_Hung] [Carlos_Hung] +di-traceware 3041/udp # di-traceware [Carlos_Hung] [Carlos_Hung] +journee 3042/tcp # journee [Kevin_Calman] [Kevin_Calman] +journee 3042/udp # journee [Kevin_Calman] [Kevin_Calman] +brp 3043/tcp # Broadcast Routing Protocol [John_Border] [John_Border] +brp 3043/udp # Broadcast Routing Protocol [John_Border] [John_Border] +epp 3044/tcp # EndPoint Protocol [Stephen_Cipolli] [Stephen_Cipolli] +epp 3044/udp # EndPoint Protocol [Stephen_Cipolli] [Stephen_Cipolli] +responsenet 3045/tcp # ResponseNet [Chul_Yoon] [Chul_Yoon] +responsenet 3045/udp # ResponseNet [Chul_Yoon] [Chul_Yoon] +di-ase 3046/tcp # di-ase [Carlos_Hung] [Carlos_Hung] +di-ase 3046/udp # di-ase [Carlos_Hung] [Carlos_Hung] +hlserver 3047/tcp # Fast Security HL Server [Michael_Zunke] [Michael_Zunke] 2010-07-23 +hlserver 3047/udp # Fast Security HL Server [Michael_Zunke] [Michael_Zunke] 2010-07-23 +pctrader 3048/tcp # Sierra Net PC Trader [Chris_Hahn] [Chris_Hahn] +pctrader 3048/udp # Sierra Net PC Trader [Chris_Hahn] [Chris_Hahn] +nsws 3049/tcp # NSWS [Ray_Gwinn] [Ray_Gwinn] +nsws 3049/udp # NSWS [Ray_Gwinn] [Ray_Gwinn] +# gds_db +# +gds-db 3050/tcp # IANA assigned this [Madhukar_N_Thakur] [Madhukar_N_Thakur] +# a replacement for "gds_db". +# This entry is an alias to "gds-db". This entry is now +gds_db 3050/tcp # gds_db [Madhukar_N_Thakur] [Madhukar_N_Thakur] historic, not usable for use with many common service +# +gds-db 3050/udp # IANA assigned this [Madhukar_N_Thakur] [Madhukar_N_Thakur] +gds_db 3050/udp # gds_db [Madhukar_N_Thakur] [Madhukar_N_Thakur] historic, not usable for use with many common service +galaxy-server 3051/tcp # Galaxy Server [Michael_Andre] [Michael_Andre] +galaxy-server 3051/udp # Galaxy Server [Michael_Andre] [Michael_Andre] +apc-3052 3052/tcp # APC 3052 [American_Power_Conve] [American_Power_Conve] +apc-3052 3052/udp # APC 3052 [American_Power_Conve] [American_Power_Conve] +dsom-server 3053/tcp # dsom-server [Daniel_Sisk] [Daniel_Sisk] +dsom-server 3053/udp # dsom-server [Daniel_Sisk] [Daniel_Sisk] +amt-cnf-prot 3054/tcp # AMT CNF PROT [Marco_Marcucci] [Marco_Marcucci] +amt-cnf-prot 3054/udp # AMT CNF PROT [Marco_Marcucci] [Marco_Marcucci] +policyserver 3055/tcp # Policy Server [Mark_Garti] [Mark_Garti] +policyserver 3055/udp # Policy Server [Mark_Garti] [Mark_Garti] +cdl-server 3056/tcp # CDL Server [Paul_Roberts] [Paul_Roberts] +cdl-server 3056/udp # CDL Server [Paul_Roberts] [Paul_Roberts] +goahead-fldup 3057/tcp # GoAhead FldUp [Alan_Pickrell] [Alan_Pickrell] +goahead-fldup 3057/udp # GoAhead FldUp [Alan_Pickrell] [Alan_Pickrell] +videobeans 3058/tcp # videobeans [Hiroyuki_Takahashi] [Hiroyuki_Takahashi] +videobeans 3058/udp # videobeans [Hiroyuki_Takahashi] [Hiroyuki_Takahashi] +qsoft 3059/tcp # qsoft [James_Kunz] [James_Kunz] +qsoft 3059/udp # qsoft [James_Kunz] [James_Kunz] +interserver 3060/tcp # interserver [Madhukar_N_Thakur] [Madhukar_N_Thakur] +interserver 3060/udp # interserver [Madhukar_N_Thakur] [Madhukar_N_Thakur] +cautcpd 3061/tcp # cautcpd +cautcpd 3061/udp # cautcpd +ncacn-ip-tcp 3062/tcp # ncacn-ip-tcp +ncacn-ip-tcp 3062/udp # ncacn-ip-tcp +ncadg-ip-udp 3063/tcp # ncadg-ip-udp [Gabi_Kalmar] [Gabi_Kalmar] +ncadg-ip-udp 3063/udp # ncadg-ip-udp [Gabi_Kalmar] [Gabi_Kalmar] +rprt 3064/tcp # Remote Port Redirector [Robin_Johnston] [Robin_Johnston] +rprt 3064/udp # Remote Port Redirector [Robin_Johnston] [Robin_Johnston] +slinterbase 3065/tcp # slinterbase [Bie_Tie] [Bie_Tie] +slinterbase 3065/udp # slinterbase [Bie_Tie] [Bie_Tie] +netattachsdmp 3066/tcp # NETATTACHSDMP [Mike_Young] [Mike_Young] +netattachsdmp 3066/udp # NETATTACHSDMP [Mike_Young] [Mike_Young] +fjhpjp 3067/tcp # FJHPJP [Ryozo_Furutani] [Ryozo_Furutani] +fjhpjp 3067/udp # FJHPJP [Ryozo_Furutani] [Ryozo_Furutani] +ls3bcast 3068/tcp # ls3 Broadcast +ls3bcast 3068/udp # ls3 Broadcast +ls3 3069/tcp # ls3 [Jim_Thompson] [Jim_Thompson] +ls3 3069/udp # ls3 [Jim_Thompson] [Jim_Thompson] +mgxswitch 3070/tcp # MGXSWITCH [George_Walter] [George_Walter] +mgxswitch 3070/udp # MGXSWITCH [George_Walter] [George_Walter] +csd-mgmt-port 3071/tcp # ContinuStor Manager Port +csd-mgmt-port 3071/udp # ContinuStor Manager Port +csd-monitor 3072/tcp # ContinuStor Monitor Port [Ray_Jantz] [Ray_Jantz] +csd-monitor 3072/udp # ContinuStor Monitor Port [Ray_Jantz] [Ray_Jantz] +vcrp 3073/tcp # Very simple chatroom prot [Andreas_Wurf] [Andreas_Wurf] +vcrp 3073/udp # Very simple chatroom prot [Andreas_Wurf] [Andreas_Wurf] +xbox 3074/tcp # Xbox game port [Damon_Danieli] [Damon_Danieli] +xbox 3074/udp # Xbox game port [Damon_Danieli] [Damon_Danieli] +orbix-locator 3075/tcp # Orbix 2000 Locator +orbix-locator 3075/udp # Orbix 2000 Locator +orbix-config 3076/tcp # Orbix 2000 Config +orbix-config 3076/udp # Orbix 2000 Config +orbix-loc-ssl 3077/tcp # Orbix 2000 Locator SSL +orbix-loc-ssl 3077/udp # Orbix 2000 Locator SSL +orbix-cfg-ssl 3078/tcp # Orbix 2000 Locator SSL [Eric_Newcomer] [Eric_Newcomer] +orbix-cfg-ssl 3078/udp # Orbix 2000 Locator SSL [Eric_Newcomer] [Eric_Newcomer] +lv-frontpanel 3079/tcp # LV Front Panel [Darshan_Shah] [Darshan_Shah] +lv-frontpanel 3079/udp # LV Front Panel [Darshan_Shah] [Darshan_Shah] +# stm_pproc +# +stm-pproc 3080/tcp # IANA assigned this [Paul_McGinnis] [Paul_McGinnis] +# "stm_pproc". +# This entry is an alias to "stm-pproc". This entry is now +stm_pproc 3080/tcp # stm_pproc [Paul_McGinnis] [Paul_McGinnis] historic, not usable for use with many common service +# +stm-pproc 3080/udp # IANA assigned this [Paul_McGinnis] [Paul_McGinnis] +stm_pproc 3080/udp # stm_pproc [Paul_McGinnis] [Paul_McGinnis] historic, not usable for use with many common service +tl1-lv 3081/tcp # TL1-LV +tl1-lv 3081/udp # TL1-LV +tl1-raw 3082/tcp # TL1-RAW +tl1-raw 3082/udp # TL1-RAW +tl1-telnet 3083/tcp # TL1-TELNET [SONET_Internetworkin] [SONET_Internetworkin] +tl1-telnet 3083/udp # TL1-TELNET [SONET_Internetworkin] [SONET_Internetworkin] +itm-mccs 3084/tcp # ITM-MCCS [Portnoy_Boxman] [Portnoy_Boxman] +itm-mccs 3084/udp # ITM-MCCS [Portnoy_Boxman] [Portnoy_Boxman] +pcihreq 3085/tcp # PCIHReq [Paul_Sanders] [Paul_Sanders] +pcihreq 3085/udp # PCIHReq [Paul_Sanders] [Paul_Sanders] +jdl-dbkitchen 3086/tcp # JDL-DBKitchen [Hideo_Wakabayashi] [Hideo_Wakabayashi] +jdl-dbkitchen 3086/udp # JDL-DBKitchen [Hideo_Wakabayashi] [Hideo_Wakabayashi] +asoki-sma 3087/tcp # Asoki SMA [Andrew_Mossberg] [Andrew_Mossberg] +asoki-sma 3087/udp # Asoki SMA [Andrew_Mossberg] [Andrew_Mossberg] +xdtp 3088/tcp # eXtensible Data Transfer [Michael_Shearson] [Michael_Shearson] +xdtp 3088/udp # eXtensible Data Transfer [Michael_Shearson] [Michael_Shearson] +ptk-alink 3089/tcp # ParaTek Agent Linking [Robert_Hodgson_2] [Robert_Hodgson_2] +ptk-alink 3089/udp # ParaTek Agent Linking [Robert_Hodgson_2] [Robert_Hodgson_2] +stss 3090/tcp # Senforce Session Services [Peter_Boucher] [Peter_Boucher] +stss 3090/udp # Senforce Session Services [Peter_Boucher] [Peter_Boucher] +1ci-smcs 3091/tcp # 1Ci Server Management [Ralf_Bensmann] [Ralf_Bensmann] +1ci-smcs 3091/udp # 1Ci Server Management [Ralf_Bensmann] [Ralf_Bensmann] +# 3092 Unassigned 2008-04-22 +rapidmq-center 3093/tcp # Jiiva RapidMQ Center +rapidmq-center 3093/udp # Jiiva RapidMQ Center +rapidmq-reg 3094/tcp # Jiiva RapidMQ Registry [Mark_Ericksen] [Mark_Ericksen] +rapidmq-reg 3094/udp # Jiiva RapidMQ Registry [Mark_Ericksen] [Mark_Ericksen] +panasas 3095/tcp # Panasas rendevous port [Peter_Berger] [Peter_Berger] +panasas 3095/udp # Panasas rendevous port [Peter_Berger] [Peter_Berger] +ndl-aps 3096/tcp # Active Print Server Port [Martin_Norman] [Martin_Norman] +ndl-aps 3096/udp # Active Print Server Port [Martin_Norman] [Martin_Norman] +# 3097 tcp Reserved +# 3097 udp Reserved +itu-bicc-stc 3097/sctp # ITU-T Q.1902.1/Q.2150.3 [Greg_Sidebottom] [Greg_Sidebottom] +umm-port 3098/tcp # Universal Message Manager [Phil_Braham] [Phil_Braham] +umm-port 3098/udp # Universal Message Manager [Phil_Braham] [Phil_Braham] +chmd 3099/tcp # CHIPSY Machine Daemon [Trond_Borsting] [Trond_Borsting] +chmd 3099/udp # CHIPSY Machine Daemon [Trond_Borsting] [Trond_Borsting] +opcon-xps 3100/tcp # OpCon/xps [David_Bourland] [David_Bourland] +opcon-xps 3100/udp # OpCon/xps [David_Bourland] [David_Bourland] +hp-pxpib 3101/tcp # HP PolicyXpert PIB Server [Brian_O_Keefe] [Brian_O_Keefe] +hp-pxpib 3101/udp # HP PolicyXpert PIB Server [Brian_O_Keefe] [Brian_O_Keefe] +slslavemon 3102/tcp # SoftlinK Slave Mon Port [Moshe_Livne] [Moshe_Livne] +slslavemon 3102/udp # SoftlinK Slave Mon Port [Moshe_Livne] [Moshe_Livne] +autocuesmi 3103/tcp # Autocue SMI Protocol +autocuesmi 3103/udp # Autocue SMI Protocol +autocuelog 3104/tcp # Autocue Logger Protocol +autocuetime 3104/udp # Autocue Time Service [Geoff_Back] [Geoff_Back] +cardbox 3105/tcp # Cardbox +cardbox 3105/udp # Cardbox +cardbox-http 3106/tcp # Cardbox HTTP [Martin_Kochanski] [Martin_Kochanski] +cardbox-http 3106/udp # Cardbox HTTP [Martin_Kochanski] [Martin_Kochanski] +business 3107/tcp # Business protocol +business 3107/udp # Business protocol +geolocate 3108/tcp # Geolocate protocol +geolocate 3108/udp # Geolocate protocol +personnel 3109/tcp # Personnel protocol [William_Randolph_Roy] [William_Randolph_Roy] +personnel 3109/udp # Personnel protocol [William_Randolph_Roy] [William_Randolph_Roy] +sim-control 3110/tcp # simulator control port [Ian_Bell] [Ian_Bell] +sim-control 3110/udp # simulator control port [Ian_Bell] [Ian_Bell] +wsynch 3111/tcp # Web Synchronous Services [Valery_Fremaux] [Valery_Fremaux] +wsynch 3111/udp # Web Synchronous Services [Valery_Fremaux] [Valery_Fremaux] +ksysguard 3112/tcp # KDE System Guard [Chris_Schlaeger] [Chris_Schlaeger] +ksysguard 3112/udp # KDE System Guard [Chris_Schlaeger] [Chris_Schlaeger] +cs-auth-svr 3113/tcp # CS-Authenticate Svr Port [Cliff_Diamond][Andy_Georgiou] [Cliff_Diamond][Andy_Georgiou] +cs-auth-svr 3113/udp # CS-Authenticate Svr Port [Cliff_Diamond][Andy_Georgiou] [Cliff_Diamond][Andy_Georgiou] +ccmad 3114/tcp # CCM AutoDiscover [Ram_Sudama] [Ram_Sudama] +ccmad 3114/udp # CCM AutoDiscover [Ram_Sudama] [Ram_Sudama] +mctet-master 3115/tcp # MCTET Master +mctet-master 3115/udp # MCTET Master +mctet-gateway 3116/tcp # MCTET Gateway +mctet-gateway 3116/udp # MCTET Gateway +mctet-jserv 3117/tcp # MCTET Jserv [Portnoy_Boxman] [Portnoy_Boxman] +mctet-jserv 3117/udp # MCTET Jserv [Portnoy_Boxman] [Portnoy_Boxman] +pkagent 3118/tcp # PKAgent [Michael_Douglass] [Michael_Douglass] +pkagent 3118/udp # PKAgent [Michael_Douglass] [Michael_Douglass] +d2000kernel 3119/tcp # D2000 Kernel Port +d2000kernel 3119/udp # D2000 Kernel Port +d2000webserver 3120/tcp # D2000 Webserver Port [Tomas_Rajcan] [Tomas_Rajcan] +d2000webserver 3120/udp # D2000 Webserver Port [Tomas_Rajcan] [Tomas_Rajcan] +# 3121 Unassigned 2003-09-17 +vtr-emulator 3122/tcp # MTI VTR Emulator port [John_Mertus] [John_Mertus] +vtr-emulator 3122/udp # MTI VTR Emulator port [John_Mertus] [John_Mertus] +edix 3123/tcp # EDI Translation Protocol [William_Randolph_Roy] [William_Randolph_Roy] +edix 3123/udp # EDI Translation Protocol [William_Randolph_Roy] [William_Randolph_Roy] +beacon-port 3124/tcp # Beacon Port [James_Paul_Duncan] [James_Paul_Duncan] +beacon-port 3124/udp # Beacon Port [James_Paul_Duncan] [James_Paul_Duncan] +a13-an 3125/tcp # A13-AN Interface [Douglas_Knisely] [Douglas_Knisely] +a13-an 3125/udp # A13-AN Interface [Douglas_Knisely] [Douglas_Knisely] +# 3126 Unassigned 2007-10-04 +ctx-bridge 3127/tcp # CTX Bridge Port [Alexander_Dubrovsky] [Alexander_Dubrovsky] +ctx-bridge 3127/udp # CTX Bridge Port [Alexander_Dubrovsky] [Alexander_Dubrovsky] +ndl-aas 3128/tcp # Active API Server Port [Martin_Norman] [Martin_Norman] +ndl-aas 3128/udp # Active API Server Port [Martin_Norman] [Martin_Norman] +netport-id 3129/tcp # NetPort Discovery Port [P_T_K_Farrar] [P_T_K_Farrar] +netport-id 3129/udp # NetPort Discovery Port [P_T_K_Farrar] [P_T_K_Farrar] +icpv2 3130/tcp # ICPv2 [Duane_Wessels] [Duane_Wessels] +icpv2 3130/udp # ICPv2 [Duane_Wessels] [Duane_Wessels] +netbookmark 3131/tcp # Net Book Mark [Yiftach_Ravid] [Yiftach_Ravid] +netbookmark 3131/udp # Net Book Mark [Yiftach_Ravid] [Yiftach_Ravid] +ms-rule-engine 3132/tcp # Microsoft Business Rule [Anush_Kumar] [Anush_Kumar] +# Engine Update Service +ms-rule-engine 3132/udp # Microsoft Business Rule [Anush_Kumar] [Anush_Kumar] +prism-deploy 3133/tcp # Prism Deploy User Port [Joan_Linck] [Joan_Linck] +prism-deploy 3133/udp # Prism Deploy User Port [Joan_Linck] [Joan_Linck] +ecp 3134/tcp # Extensible Code Protocol [Jim_Trek][Mark_Bocko] [Jim_Trek][Mark_Bocko] +ecp 3134/udp # Extensible Code Protocol [Jim_Trek][Mark_Bocko] [Jim_Trek][Mark_Bocko] +peerbook-port 3135/tcp # PeerBook Port [John_Flowers] [John_Flowers] +peerbook-port 3135/udp # PeerBook Port [John_Flowers] [John_Flowers] +grubd 3136/tcp # Grub Server Port [Kord_Campbell] [Kord_Campbell] +grubd 3136/udp # Grub Server Port [Kord_Campbell] [Kord_Campbell] +rtnt-1 3137/tcp # rtnt-1 data packets +rtnt-1 3137/udp # rtnt-1 data packets +rtnt-2 3138/tcp # rtnt-2 data packets [Ron_Muellerschoen] [Ron_Muellerschoen] +rtnt-2 3138/udp # rtnt-2 data packets [Ron_Muellerschoen] [Ron_Muellerschoen] +incognitorv 3139/tcp # Incognito Rendez-Vous [Stephane_Bourque] [Stephane_Bourque] +incognitorv 3139/udp # Incognito Rendez-Vous [Stephane_Bourque] [Stephane_Bourque] +ariliamulti 3140/tcp # Arilia Multiplexor [Stephane_Bourque_2] [Stephane_Bourque_2] +ariliamulti 3140/udp # Arilia Multiplexor [Stephane_Bourque_2] [Stephane_Bourque_2] +vmodem 3141/tcp # VMODEM [Ray_Gwinn] [Ray_Gwinn] +vmodem 3141/udp # VMODEM [Ray_Gwinn] [Ray_Gwinn] +rdc-wh-eos 3142/tcp # RDC WH EOS [Udi_Nir] [Udi_Nir] +rdc-wh-eos 3142/udp # RDC WH EOS [Udi_Nir] [Udi_Nir] +seaview 3143/tcp # Sea View [Jim_Flaherty_2] [Jim_Flaherty_2] +seaview 3143/udp # Sea View [Jim_Flaherty_2] [Jim_Flaherty_2] +tarantella 3144/tcp # Tarantella [Roger_Binns] [Roger_Binns] +tarantella 3144/udp # Tarantella [Roger_Binns] [Roger_Binns] +# UNAUTHORIZED +csi-lfap 3145/tcp # CSI-LFAP [Paul_Amsden] [Paul_Amsden] USE: port +# 3145 by +# zftpserver +csi-lfap 3145/udp # CSI-LFAP [Paul_Amsden] [Paul_Amsden] USE: port +bears-02 3146/tcp # bears-02 [Bruce_McKinnon_2] [Bruce_McKinnon_2] +bears-02 3146/udp # bears-02 [Bruce_McKinnon_2] [Bruce_McKinnon_2] +rfio 3147/tcp # RFIO [Frederic_Hemmer] [Frederic_Hemmer] +rfio 3147/udp # RFIO [Frederic_Hemmer] [Frederic_Hemmer] +nm-game-admin 3148/tcp # NetMike Game Administrator +nm-game-admin 3148/udp # NetMike Game Administrator +nm-game-server 3149/tcp # NetMike Game Server +nm-game-server 3149/udp # NetMike Game Server +nm-asses-admin 3150/tcp # NetMike Assessor +# Administrator +nm-asses-admin 3150/udp # NetMike Assessor +nm-assessor 3151/tcp # NetMike Assessor [Andrew_Sharpe] [Andrew_Sharpe] +nm-assessor 3151/udp # NetMike Assessor [Andrew_Sharpe] [Andrew_Sharpe] +feitianrockey 3152/tcp # FeiTian Port [Huang_Yu] [Huang_Yu] +feitianrockey 3152/udp # FeiTian Port [Huang_Yu] [Huang_Yu] +s8-client-port 3153/tcp # S8Cargo Client Port [Jon_S_Kyle] [Jon_S_Kyle] +s8-client-port 3153/udp # S8Cargo Client Port [Jon_S_Kyle] [Jon_S_Kyle] +ccmrmi 3154/tcp # ON RMI Registry [Ram_Sudama] [Ram_Sudama] +ccmrmi 3154/udp # ON RMI Registry [Ram_Sudama] [Ram_Sudama] +jpegmpeg 3155/tcp # JpegMpeg Port [Richard_Bassous] [Richard_Bassous] +jpegmpeg 3155/udp # JpegMpeg Port [Richard_Bassous] [Richard_Bassous] +indura 3156/tcp # Indura Collector [Bruce_Kosbab] [Bruce_Kosbab] +indura 3156/udp # Indura Collector [Bruce_Kosbab] [Bruce_Kosbab] +e3consultants 3157/tcp # CCC Listener Port [Brian_Carnell] [Brian_Carnell] +e3consultants 3157/udp # CCC Listener Port [Brian_Carnell] [Brian_Carnell] +stvp 3158/tcp # SmashTV Protocol [Christian_Wolff] [Christian_Wolff] +stvp 3158/udp # SmashTV Protocol [Christian_Wolff] [Christian_Wolff] +navegaweb-port 3159/tcp # NavegaWeb Tarification [Miguel_Angel_Fernand] [Miguel_Angel_Fernand] +navegaweb-port 3159/udp # NavegaWeb Tarification [Miguel_Angel_Fernand] [Miguel_Angel_Fernand] +tip-app-server 3160/tcp # TIP Application Server [Olivier_Mascia] [Olivier_Mascia] +tip-app-server 3160/udp # TIP Application Server [Olivier_Mascia] [Olivier_Mascia] +doc1lm 3161/tcp # DOC1 License Manager [Greg_Goodson] [Greg_Goodson] +doc1lm 3161/udp # DOC1 License Manager [Greg_Goodson] [Greg_Goodson] +sflm 3162/tcp # SFLM [System_Administrator] [System_Administrator] +sflm 3162/udp # SFLM [System_Administrator] [System_Administrator] +res-sap 3163/tcp # RES-SAP [Bob_Janssen] [Bob_Janssen] +res-sap 3163/udp # RES-SAP [Bob_Janssen] [Bob_Janssen] +imprs 3164/tcp # IMPRS [Lars_Bohn] [Lars_Bohn] +imprs 3164/udp # IMPRS [Lars_Bohn] [Lars_Bohn] +newgenpay 3165/tcp # Newgenpay Engine Service [Ilan_Zisser] [Ilan_Zisser] +newgenpay 3165/udp # Newgenpay Engine Service [Ilan_Zisser] [Ilan_Zisser] +sossecollector 3166/tcp # Quest Spotlight [Greg_Cottman] [Greg_Cottman] 2008-10-23 +# Out-Of-Process Collector +sossecollector 3166/udp # Quest Spotlight [Greg_Cottman] [Greg_Cottman] 2008-10-23 +nowcontact 3167/tcp # Now Contact Public Server +nowcontact 3167/udp # Now Contact Public Server +poweronnud 3168/tcp # Now Up-to-Date Public Server [John_Wallace] [John_Wallace] +poweronnud 3168/udp # Now Up-to-Date Public Server [John_Wallace] [John_Wallace] +serverview-as 3169/tcp # SERVERVIEW-AS +serverview-as 3169/udp # SERVERVIEW-AS +serverview-asn 3170/tcp # SERVERVIEW-ASN +serverview-asn 3170/udp # SERVERVIEW-ASN +serverview-gf 3171/tcp # SERVERVIEW-GF +serverview-gf 3171/udp # SERVERVIEW-GF +serverview-rm 3172/tcp # SERVERVIEW-RM +serverview-rm 3172/udp # SERVERVIEW-RM +serverview-icc 3173/tcp # SERVERVIEW-ICC [Detlef_Rothe] [Detlef_Rothe] 2009-05-15 +serverview-icc 3173/udp # SERVERVIEW-ICC [Detlef_Rothe] [Detlef_Rothe] 2009-05-15 +armi-server 3174/tcp # ARMI Server [Bobby_Martin] [Bobby_Martin] +armi-server 3174/udp # ARMI Server [Bobby_Martin] [Bobby_Martin] +t1-e1-over-ip 3175/tcp # T1_E1_Over_IP [Mark_Doyle] [Mark_Doyle] +t1-e1-over-ip 3175/udp # T1_E1_Over_IP [Mark_Doyle] [Mark_Doyle] +ars-master 3176/tcp # ARS Master [Portnoy_Boxman] [Portnoy_Boxman] +ars-master 3176/udp # ARS Master [Portnoy_Boxman] [Portnoy_Boxman] +phonex-port 3177/tcp # Phonex Protocol [Doug_Grover] [Doug_Grover] +phonex-port 3177/udp # Phonex Protocol [Doug_Grover] [Doug_Grover] +radclientport 3178/tcp # Radiance UltraEdge Port [Sri_Subramaniam] [Sri_Subramaniam] +radclientport 3178/udp # Radiance UltraEdge Port [Sri_Subramaniam] [Sri_Subramaniam] +h2gf-w-2m 3179/tcp # H2GF W.2m Handover prot. [Arne_Norefors] [Arne_Norefors] +h2gf-w-2m 3179/udp # H2GF W.2m Handover prot. [Arne_Norefors] [Arne_Norefors] +mc-brk-srv 3180/tcp # Millicent Broker Server [Steve_Glassman] [Steve_Glassman] +mc-brk-srv 3180/udp # Millicent Broker Server [Steve_Glassman] [Steve_Glassman] +bmcpatrolagent 3181/tcp # BMC Patrol Agent +bmcpatrolagent 3181/udp # BMC Patrol Agent +bmcpatrolrnvu 3182/tcp # BMC Patrol Rendezvous [Portnoy_Boxman] [Portnoy_Boxman] +bmcpatrolrnvu 3182/udp # BMC Patrol Rendezvous [Portnoy_Boxman] [Portnoy_Boxman] +cops-tls 3183/tcp # COPS/TLS [Mark_Stevens] [Mark_Stevens] +cops-tls 3183/udp # COPS/TLS [Mark_Stevens] [Mark_Stevens] +apogeex-port 3184/tcp # ApogeeX Port [Tom_Nys] [Tom_Nys] +apogeex-port 3184/udp # ApogeeX Port [Tom_Nys] [Tom_Nys] +smpppd 3185/tcp # SuSE Meta PPPD [Arvin_Schnell] [Arvin_Schnell] +smpppd 3185/udp # SuSE Meta PPPD [Arvin_Schnell] [Arvin_Schnell] +iiw-port 3186/tcp # IIW Monitor User Port [Corey_Burnett] [Corey_Burnett] +iiw-port 3186/udp # IIW Monitor User Port [Corey_Burnett] [Corey_Burnett] +odi-port 3187/tcp # Open Design Listen Port [Phivos_Aristides] [Phivos_Aristides] +odi-port 3187/udp # Open Design Listen Port [Phivos_Aristides] [Phivos_Aristides] +brcm-comm-port 3188/tcp # Broadcom Port [Thomas_L_Johnson] [Thomas_L_Johnson] +brcm-comm-port 3188/udp # Broadcom Port [Thomas_L_Johnson] [Thomas_L_Johnson] +pcle-infex 3189/tcp # Pinnacle Sys InfEx Port [Anthon_van_der_Neut] [Anthon_van_der_Neut] +pcle-infex 3189/udp # Pinnacle Sys InfEx Port [Anthon_van_der_Neut] [Anthon_van_der_Neut] +csvr-proxy 3190/tcp # ConServR Proxy +csvr-proxy 3190/udp # ConServR Proxy +csvr-sslproxy 3191/tcp # ConServR SSL Proxy [Mikhail_Kruk] [Mikhail_Kruk] +csvr-sslproxy 3191/udp # ConServR SSL Proxy [Mikhail_Kruk] [Mikhail_Kruk] +firemonrcc 3192/tcp # FireMon Revision Control [Michael_Bishop] [Michael_Bishop] +firemonrcc 3192/udp # FireMon Revision Control [Michael_Bishop] [Michael_Bishop] +spandataport 3193/tcp # SpanDataPort [Jesse_McKay] [Jesse_McKay] +spandataport 3193/udp # SpanDataPort [Jesse_McKay] [Jesse_McKay] +magbind 3194/tcp # Rockstorm MAG protocol [Jens_Nilsson] [Jens_Nilsson] +magbind 3194/udp # Rockstorm MAG protocol [Jens_Nilsson] [Jens_Nilsson] +ncu-1 3195/tcp # Network Control Unit +ncu-1 3195/udp # Network Control Unit +ncu-2 3196/tcp # Network Control Unit [Charlie_Hundre] [Charlie_Hundre] +ncu-2 3196/udp # Network Control Unit [Charlie_Hundre] [Charlie_Hundre] +embrace-dp-s 3197/tcp # Embrace Device Protocol +embrace-dp-s 3197/udp # Embrace Device Protocol +embrace-dp-c 3198/tcp # Embrace Device Protocol [Elliot_Schwartz] [Elliot_Schwartz] +# Client +embrace-dp-c 3198/udp # Embrace Device Protocol [Elliot_Schwartz] [Elliot_Schwartz] +dmod-workspace 3199/tcp # DMOD WorkSpace [Nick_Plante] [Nick_Plante] +dmod-workspace 3199/udp # DMOD WorkSpace [Nick_Plante] [Nick_Plante] +tick-port 3200/tcp # Press-sense Tick Port [Boris_Svetlitsky] [Boris_Svetlitsky] +tick-port 3200/udp # Press-sense Tick Port [Boris_Svetlitsky] [Boris_Svetlitsky] +cpq-tasksmart 3201/tcp # CPQ-TaskSmart [Jackie_Lau] [Jackie_Lau] +cpq-tasksmart 3201/udp # CPQ-TaskSmart [Jackie_Lau] [Jackie_Lau] +intraintra 3202/tcp # IntraIntra [Matthew_Asham] [Matthew_Asham] +intraintra 3202/udp # IntraIntra [Matthew_Asham] [Matthew_Asham] +netwatcher-mon 3203/tcp # Network Watcher Monitor +netwatcher-mon 3203/udp # Network Watcher Monitor +netwatcher-db 3204/tcp # Network Watcher DB Access [Hirokazu_Fujisawa] [Hirokazu_Fujisawa] +netwatcher-db 3204/udp # Network Watcher DB Access [Hirokazu_Fujisawa] [Hirokazu_Fujisawa] +isns 3205/tcp # iSNS Server Port [RFC4171] +isns 3205/udp # iSNS Server Port [RFC4171] +ironmail 3206/tcp # IronMail POP Proxy [Mike_Hudack] [Mike_Hudack] +ironmail 3206/udp # IronMail POP Proxy [Mike_Hudack] [Mike_Hudack] +vx-auth-port 3207/tcp # Veritas Authentication Port [Senthil_Ponnuswamy] [Senthil_Ponnuswamy] +vx-auth-port 3207/udp # Veritas Authentication Port [Senthil_Ponnuswamy] [Senthil_Ponnuswamy] +pfu-prcallback 3208/tcp # PFU PR Callback [Tetsuharu_Hanada] [Tetsuharu_Hanada] +pfu-prcallback 3208/udp # PFU PR Callback [Tetsuharu_Hanada] [Tetsuharu_Hanada] +netwkpathengine 3209/tcp # HP OpenView Network Path [Anthony_Walker] [Anthony_Walker] +# Engine Server +netwkpathengine 3209/udp # HP OpenView Network Path [Anthony_Walker] [Anthony_Walker] +flamenco-proxy 3210/tcp # Flamenco Networks Proxy [Corey_Corrick] [Corey_Corrick] +flamenco-proxy 3210/udp # Flamenco Networks Proxy [Corey_Corrick] [Corey_Corrick] +avsecuremgmt 3211/tcp # Avocent Secure Management [Brian_S_Stewart] [Brian_S_Stewart] +avsecuremgmt 3211/udp # Avocent Secure Management [Brian_S_Stewart] [Brian_S_Stewart] +surveyinst 3212/tcp # Survey Instrument [Al_Amet] [Al_Amet] +surveyinst 3212/udp # Survey Instrument [Al_Amet] [Al_Amet] +neon24x7 3213/tcp # NEON 24X7 Mission Control [Tony_Lubrano] [Tony_Lubrano] +neon24x7 3213/udp # NEON 24X7 Mission Control [Tony_Lubrano] [Tony_Lubrano] +jmq-daemon-1 3214/tcp # JMQ Daemon Port 1 +jmq-daemon-1 3214/udp # JMQ Daemon Port 1 +jmq-daemon-2 3215/tcp # JMQ Daemon Port 2 [Martin_West] [Martin_West] +jmq-daemon-2 3215/udp # JMQ Daemon Port 2 [Martin_West] [Martin_West] +ferrari-foam 3216/tcp # Ferrari electronic FOAM [Johann_Deutinger] [Johann_Deutinger] +ferrari-foam 3216/udp # Ferrari electronic FOAM [Johann_Deutinger] [Johann_Deutinger] +unite 3217/tcp # Unified IP & Telecom [Christer_Gunnarsson] [Christer_Gunnarsson] 2009-03-26 +unite 3217/udp # Unified IP & Telecom [Christer_Gunnarsson] [Christer_Gunnarsson] 2009-03-26 +smartpackets 3218/tcp # EMC SmartPackets [Steve_Spataro] [Steve_Spataro] +smartpackets 3218/udp # EMC SmartPackets [Steve_Spataro] [Steve_Spataro] +wms-messenger 3219/tcp # WMS Messenger [Michael_Monasterio] [Michael_Monasterio] +wms-messenger 3219/udp # WMS Messenger [Michael_Monasterio] [Michael_Monasterio] +xnm-ssl 3220/tcp # XML NM over SSL +xnm-ssl 3220/udp # XML NM over SSL +xnm-clear-text 3221/tcp # XML NM over TCP [Mark_Trostler] [Mark_Trostler] +xnm-clear-text 3221/udp # XML NM over TCP [Mark_Trostler] [Mark_Trostler] +glbp 3222/tcp # Gateway Load Balancing Pr [Douglas_McLaggan] [Douglas_McLaggan] +glbp 3222/udp # Gateway Load Balancing Pr [Douglas_McLaggan] [Douglas_McLaggan] +digivote 3223/tcp # DIGIVOTE (R) Vote-Server [Christian_Treczoks] [Christian_Treczoks] +digivote 3223/udp # DIGIVOTE (R) Vote-Server [Christian_Treczoks] [Christian_Treczoks] +aes-discovery 3224/tcp # AES Discovery Port [Ken_Richard] [Ken_Richard] +aes-discovery 3224/udp # AES Discovery Port [Ken_Richard] [Ken_Richard] +fcip-port 3225/tcp # FCIP [RFC3821] +fcip-port 3225/udp # FCIP [RFC3821] +isi-irp 3226/tcp # ISI Industry Software IRP [Peter_Sandstrom] [Peter_Sandstrom] +isi-irp 3226/udp # ISI Industry Software IRP [Peter_Sandstrom] [Peter_Sandstrom] +dwnmshttp 3227/tcp # DiamondWave NMS Server +dwnmshttp 3227/udp # DiamondWave NMS Server +dwmsgserver 3228/tcp # DiamondWave MSG Server [Varma_Bhupatiraju] [Varma_Bhupatiraju] +dwmsgserver 3228/udp # DiamondWave MSG Server [Varma_Bhupatiraju] [Varma_Bhupatiraju] +global-cd-port 3229/tcp # Global CD Port [Vitaly_Revsin_2] [Vitaly_Revsin_2] +global-cd-port 3229/udp # Global CD Port [Vitaly_Revsin_2] [Vitaly_Revsin_2] +sftdst-port 3230/tcp # Software Distributor Port [Andrea_Lanza] [Andrea_Lanza] +sftdst-port 3230/udp # Software Distributor Port [Andrea_Lanza] [Andrea_Lanza] +# VidiGo communication +vidigo 3231/tcp # (previous was: Delta [Peter_Ijkhout] [Peter_Ijkhout] +# Solutions Direct) +vidigo 3231/udp # (previous was: Delta [Peter_Ijkhout] [Peter_Ijkhout] +mdtp 3232/tcp # MDT port 2012-02-21 [RFC6513] +mdtp 3232/udp # MDT port 2012-02-21 [RFC6513] +whisker 3233/tcp # WhiskerControl main port [Rudolf_Cardinal] [Rudolf_Cardinal] 2002-02 +whisker 3233/udp # WhiskerControl main port [Rudolf_Cardinal] [Rudolf_Cardinal] 2002-02 +alchemy 3234/tcp # Alchemy Server [Mikhail_Belov] [Mikhail_Belov] 2002-02 +alchemy 3234/udp # Alchemy Server [Mikhail_Belov] [Mikhail_Belov] 2002-02 +mdap-port 3235/tcp # MDAP port [Johan_Deleu] [Johan_Deleu] 2002-02 +mdap-port 3235/udp # MDAP Port [Johan_Deleu] [Johan_Deleu] 2002-02 +apparenet-ts 3236/tcp # appareNet Test Server +apparenet-ts 3236/udp # appareNet Test Server +apparenet-tps 3237/tcp # appareNet Test Packet +# Sequencer +apparenet-tps 3237/udp # appareNet Test Packet +apparenet-as 3238/tcp # appareNet Analysis Server +apparenet-as 3238/udp # appareNet Analysis Server +apparenet-ui 3239/tcp # appareNet User Interface [Fred_Klassen] [Fred_Klassen] 2002-02 +apparenet-ui 3239/udp # appareNet User Interface [Fred_Klassen] [Fred_Klassen] 2002-02 +triomotion 3240/tcp # Trio Motion Control Port [Tony_Matthews] [Tony_Matthews] 2002-02 +triomotion 3240/udp # Trio Motion Control Port [Tony_Matthews] [Tony_Matthews] 2002-02 +sysorb 3241/tcp # SysOrb Monitoring Server [Jakob_Oestergaard] [Jakob_Oestergaard] 2002-02 +sysorb 3241/udp # SysOrb Monitoring Server [Jakob_Oestergaard] [Jakob_Oestergaard] 2002-02 +sdp-id-port 3242/tcp # Session Description ID [Greg_Rose_2] [Greg_Rose_2] 2002-02 +sdp-id-port 3242/udp # Session Description ID [Greg_Rose_2] [Greg_Rose_2] 2002-02 +timelot 3243/tcp # Timelot Port [David_Ferguson] [David_Ferguson] 2002-02 +timelot 3243/udp # Timelot Port [David_Ferguson] [David_Ferguson] 2002-02 +onesaf 3244/tcp # OneSAF [Gene_McCulley] [Gene_McCulley] 2002-02 +onesaf 3244/udp # OneSAF [Gene_McCulley] [Gene_McCulley] 2002-02 +vieo-fe 3245/tcp # VIEO Fabric Executive [James_Cox] [James_Cox] 2002-02 +vieo-fe 3245/udp # VIEO Fabric Executive [James_Cox] [James_Cox] 2002-02 +dvt-system 3246/tcp # DVT SYSTEM PORT +dvt-system 3246/udp # DVT SYSTEM PORT +dvt-data 3247/tcp # DVT DATA LINK [Phillip_Heil] [Phillip_Heil] 2002-02 +dvt-data 3247/udp # DVT DATA LINK [Phillip_Heil] [Phillip_Heil] 2002-02 +procos-lm 3248/tcp # PROCOS LM [Torsten_Rendelmann] [Torsten_Rendelmann] +procos-lm 3248/udp # PROCOS LM [Torsten_Rendelmann] [Torsten_Rendelmann] +ssp 3249/tcp # State Sync Protocol [Stephane_Beaulieu] [Stephane_Beaulieu] 2002-02 +ssp 3249/udp # State Sync Protocol [Stephane_Beaulieu] [Stephane_Beaulieu] 2002-02 +hicp 3250/tcp # HMS hicp port [Joel_Palsson] [Joel_Palsson] 2002-02 +hicp 3250/udp # HMS hicp port [Joel_Palsson] [Joel_Palsson] 2002-02 +sysscanner 3251/tcp # Sys Scanner [Dick_Georges] [Dick_Georges] 2002-02 +sysscanner 3251/udp # Sys Scanner [Dick_Georges] [Dick_Georges] 2002-02 +dhe 3252/tcp # DHE port [Fabrizio_Massimo_Fer] [Fabrizio_Massimo_Fer] 2002-02 +dhe 3252/udp # DHE port [Fabrizio_Massimo_Fer] [Fabrizio_Massimo_Fer] 2002-02 +pda-data 3253/tcp # PDA Data +pda-data 3253/udp # PDA Data +pda-sys 3254/tcp # PDA System [Jian_Fan] [Jian_Fan] 2002-02 +pda-sys 3254/udp # PDA System [Jian_Fan] [Jian_Fan] 2002-02 +semaphore 3255/tcp # Semaphore Connection Port [Jay_Eckles] [Jay_Eckles] 2002-02 +semaphore 3255/udp # Semaphore Connection Port [Jay_Eckles] [Jay_Eckles] 2002-02 +cpqrpm-agent 3256/tcp # Compaq RPM Agent Port +cpqrpm-agent 3256/udp # Compaq RPM Agent Port +cpqrpm-server 3257/tcp # Compaq RPM Server Port [Royal_King] [Royal_King] 2002-02 +cpqrpm-server 3257/udp # Compaq RPM Server Port [Royal_King] [Royal_King] 2002-02 +ivecon-port 3258/tcp # Ivecon Server Port [Serguei_Tevs] [Serguei_Tevs] 2002-02 +ivecon-port 3258/udp # Ivecon Server Port [Serguei_Tevs] [Serguei_Tevs] 2002-02 +epncdp2 3259/tcp # Epson Network Common Devi [Oishi_Toshiaki] [Oishi_Toshiaki] 2002-02 +epncdp2 3259/udp # Epson Network Common Devi [Oishi_Toshiaki] [Oishi_Toshiaki] 2002-02 +iscsi-target 3260/tcp # iSCSI port [Julian_Satran] [Julian_Satran] +iscsi-target 3260/udp # iSCSI port [Julian_Satran] [Julian_Satran] +winshadow 3261/tcp # winShadow [Colin_Barry] [Colin_Barry] +winshadow 3261/udp # winShadow [Colin_Barry] [Colin_Barry] +necp 3262/tcp # NECP [Alberto_Cerpa] [Alberto_Cerpa] +necp 3262/udp # NECP [Alberto_Cerpa] [Alberto_Cerpa] +ecolor-imager 3263/tcp # E-Color Enterprise Imager [Tamara_Baker] [Tamara_Baker] +ecolor-imager 3263/udp # E-Color Enterprise Imager [Tamara_Baker] [Tamara_Baker] +ccmail 3264/tcp # cc:mail/lotus [brockman] [brockman] +ccmail 3264/udp # cc:mail/lotus [brockman] [brockman] +altav-tunnel 3265/tcp # Altav Tunnel [Gary_M_Allen] [Gary_M_Allen] +altav-tunnel 3265/udp # Altav Tunnel [Gary_M_Allen] [Gary_M_Allen] +ns-cfg-server 3266/tcp # NS CFG Server [Aivi_Lie] [Aivi_Lie] +ns-cfg-server 3266/udp # NS CFG Server [Aivi_Lie] [Aivi_Lie] +ibm-dial-out 3267/tcp # IBM Dial Out [Skip_Booth] [Skip_Booth] +ibm-dial-out 3267/udp # IBM Dial Out [Skip_Booth] [Skip_Booth] +msft-gc 3268/tcp # Microsoft Global Catalog +msft-gc 3268/udp # Microsoft Global Catalog +msft-gc-ssl 3269/tcp # Microsoft Global Catalog [Asaf_Kashi] [Asaf_Kashi] +# with LDAP/SSL +msft-gc-ssl 3269/udp # Microsoft Global Catalog [Asaf_Kashi] [Asaf_Kashi] +verismart 3270/tcp # Verismart [Jay_Weber] [Jay_Weber] +verismart 3270/udp # Verismart [Jay_Weber] [Jay_Weber] +csoft-prev 3271/tcp # CSoft Prev Port [Nedelcho_Stanev_3] [Nedelcho_Stanev_3] +csoft-prev 3271/udp # CSoft Prev Port [Nedelcho_Stanev_3] [Nedelcho_Stanev_3] +user-manager 3272/tcp # Fujitsu User Manager [Yukihiko_Sakurai] [Yukihiko_Sakurai] +user-manager 3272/udp # Fujitsu User Manager [Yukihiko_Sakurai] [Yukihiko_Sakurai] +sxmp 3273/tcp # Simple Extensible [admin] [admin] +# Multiplexed Protocol +sxmp 3273/udp # Simple Extensible [admin] [admin] +ordinox-server 3274/tcp # Ordinox Server [Denis_Ducharme] [Denis_Ducharme] +ordinox-server 3274/udp # Ordinox Server [Denis_Ducharme] [Denis_Ducharme] +samd 3275/tcp # SAMD [Edgar_Circenis] [Edgar_Circenis] +samd 3275/udp # SAMD [Edgar_Circenis] [Edgar_Circenis] +maxim-asics 3276/tcp # Maxim ASICs [Dave_Inman] [Dave_Inman] +maxim-asics 3276/udp # Maxim ASICs [Dave_Inman] [Dave_Inman] +awg-proxy 3277/tcp # AWG Proxy [Alex_McDonald] [Alex_McDonald] +awg-proxy 3277/udp # AWG Proxy [Alex_McDonald] [Alex_McDonald] +lkcmserver 3278/tcp # LKCM Server [Javier_Jimenez] [Javier_Jimenez] +lkcmserver 3278/udp # LKCM Server [Javier_Jimenez] [Javier_Jimenez] +admind 3279/tcp # admind [Jeff_Haynes] [Jeff_Haynes] +admind 3279/udp # admind [Jeff_Haynes] [Jeff_Haynes] +vs-server 3280/tcp # VS Server [Scott_Godlew] [Scott_Godlew] +vs-server 3280/udp # VS Server [Scott_Godlew] [Scott_Godlew] +sysopt 3281/tcp # SYSOPT [Tony_Hoffman] [Tony_Hoffman] +sysopt 3281/udp # SYSOPT [Tony_Hoffman] [Tony_Hoffman] +datusorb 3282/tcp # Datusorb [Thomas_Martin] [Thomas_Martin] +datusorb 3282/udp # Datusorb [Thomas_Martin] [Thomas_Martin] +# Apple Remote +# Desktop (Net 3283 tcp Net Assistant [Michael_Stein] [Michael_Stein] 2011-11-09 +# Assistant) +# Desktop (Net 3283 udp Net Assistant [Michael_Stein] [Michael_Stein] 2011-11-09 +4talk 3284/tcp # 4Talk [Tony_Bushnell] [Tony_Bushnell] +4talk 3284/udp # 4Talk [Tony_Bushnell] [Tony_Bushnell] +plato 3285/tcp # Plato [Jim_Battin] [Jim_Battin] +plato 3285/udp # Plato [Jim_Battin] [Jim_Battin] +e-net 3286/tcp # E-Net [Steven_Grigsby] [Steven_Grigsby] +e-net 3286/udp # E-Net [Steven_Grigsby] [Steven_Grigsby] +directvdata 3287/tcp # DIRECTVDATA [Michael_Friedman] [Michael_Friedman] +directvdata 3287/udp # DIRECTVDATA [Michael_Friedman] [Michael_Friedman] +cops 3288/tcp # COPS [Shai_Herzog] [Shai_Herzog] +cops 3288/udp # COPS [Shai_Herzog] [Shai_Herzog] +enpc 3289/tcp # ENPC [SEIKO_EPSON_2] [SEIKO_EPSON_2] +enpc 3289/udp # ENPC [SEIKO_EPSON_2] [SEIKO_EPSON_2] +caps-lm 3290/tcp # CAPS LOGISTICS TOOLKIT - LM [Joseph_Krebs] [Joseph_Krebs] +caps-lm 3290/udp # CAPS LOGISTICS TOOLKIT - LM [Joseph_Krebs] [Joseph_Krebs] +sah-lm 3291/tcp # S A Holditch & Associates - [Randy_Hudgens] [Randy_Hudgens] +# LM +sah-lm 3291/udp # S A Holditch & Associates - [Randy_Hudgens] [Randy_Hudgens] +cart-o-rama 3292/tcp # Cart O Rama [Phillip_Dillinger] [Phillip_Dillinger] +cart-o-rama 3292/udp # Cart O Rama [Phillip_Dillinger] [Phillip_Dillinger] +fg-fps 3293/tcp # fg-fps +fg-fps 3293/udp # fg-fps +fg-gip 3294/tcp # fg-gip [Jean_Marc_Frailong] [Jean_Marc_Frailong] +fg-gip 3294/udp # fg-gip [Jean_Marc_Frailong] [Jean_Marc_Frailong] +dyniplookup 3295/tcp # Dynamic IP Lookup [Eugene_Osovetsky] [Eugene_Osovetsky] +dyniplookup 3295/udp # Dynamic IP Lookup [Eugene_Osovetsky] [Eugene_Osovetsky] +rib-slm 3296/tcp # Rib License Manager [Kristean_Heisler] [Kristean_Heisler] +rib-slm 3296/udp # Rib License Manager [Kristean_Heisler] [Kristean_Heisler] +cytel-lm 3297/tcp # Cytel License Manager [Yogesh_P_Gajjar] [Yogesh_P_Gajjar] +cytel-lm 3297/udp # Cytel License Manager [Yogesh_P_Gajjar] [Yogesh_P_Gajjar] +deskview 3298/tcp # DeskView [Manfred_Randelzofer] [Manfred_Randelzofer] +deskview 3298/udp # DeskView [Manfred_Randelzofer] [Manfred_Randelzofer] +pdrncs 3299/tcp # pdrncs [Paul_Wissenbach] [Paul_Wissenbach] +pdrncs 3299/udp # pdrncs [Paul_Wissenbach] [Paul_Wissenbach] +# 3300-3301 +# 3300-3301 unassigned Unauthorized +# Use by SAP +# R/3 +mcs-fastmail 3302/tcp # MCS Fastmail [Patti_Jo_Newsom] [Patti_Jo_Newsom] +mcs-fastmail 3302/udp # MCS Fastmail [Patti_Jo_Newsom] [Patti_Jo_Newsom] +opsession-clnt 3303/tcp # OP Session Client +opsession-clnt 3303/udp # OP Session Client +opsession-srvr 3304/tcp # OP Session Server [Amir_Blich] [Amir_Blich] +opsession-srvr 3304/udp # OP Session Server [Amir_Blich] [Amir_Blich] +odette-ftp 3305/tcp # ODETTE-FTP [David_Nash] [David_Nash] [RFC5024] +odette-ftp 3305/udp # ODETTE-FTP [David_Nash] [David_Nash] [RFC5024] +mysql 3306/tcp # MySQL [Monty] [Monty] +mysql 3306/udp # MySQL [Monty] [Monty] +opsession-prxy 3307/tcp # OP Session Proxy [Amir_Blich] [Amir_Blich] +opsession-prxy 3307/udp # OP Session Proxy [Amir_Blich] [Amir_Blich] +tns-server 3308/tcp # TNS Server +tns-server 3308/udp # TNS Server +tns-adv 3309/tcp # TNS ADV [Jerome_Albin] [Jerome_Albin] +tns-adv 3309/udp # TNS ADV [Jerome_Albin] [Jerome_Albin] +dyna-access 3310/tcp # Dyna Access [Dave_Belliveau] [Dave_Belliveau] +dyna-access 3310/udp # Dyna Access [Dave_Belliveau] [Dave_Belliveau] +mcns-tel-ret 3311/tcp # MCNS Tel Ret [Randall_Atkinson] [Randall_Atkinson] +mcns-tel-ret 3311/udp # MCNS Tel Ret [Randall_Atkinson] [Randall_Atkinson] +appman-server 3312/tcp # Application Management +appman-server 3312/udp # Application Management +uorb 3313/tcp # Unify Object Broker [Daegis_Inc] [Chris_Anderson] 2012-07-31 +uorb 3313/udp # Unify Object Broker [Daegis_Inc] [Chris_Anderson] 2012-07-31 +uohost 3314/tcp # Unify Object Host [Daegis_Inc] [Chris_Anderson] 2012-07-31 +uohost 3314/udp # Unify Object Host [Daegis_Inc] [Chris_Anderson] 2012-07-31 +cdid 3315/tcp # CDID [Andrew_Borisov] [Andrew_Borisov] +cdid 3315/udp # CDID [Andrew_Borisov] [Andrew_Borisov] +aicc-cmi 3316/tcp # AICC/CMI [William_McDonald] [William_McDonald] +aicc-cmi 3316/udp # AICC/CMI [William_McDonald] [William_McDonald] +vsaiport 3317/tcp # VSAI PORT [Rieko_Asai] [Rieko_Asai] +vsaiport 3317/udp # VSAI PORT [Rieko_Asai] [Rieko_Asai] +ssrip 3318/tcp # Swith to Swith Routing [Baba_Hidekazu] [Baba_Hidekazu] +# Information Protocol +ssrip 3318/udp # Swith to Swith Routing [Baba_Hidekazu] [Baba_Hidekazu] +sdt-lmd 3319/tcp # SDT License Manager [Salvo_Nassisi] [Salvo_Nassisi] +sdt-lmd 3319/udp # SDT License Manager [Salvo_Nassisi] [Salvo_Nassisi] +officelink2000 3320/tcp # Office Link 2000 [Mike_Balch] [Mike_Balch] +officelink2000 3320/udp # Office Link 2000 [Mike_Balch] [Mike_Balch] +vnsstr 3321/tcp # VNSSTR [Takeshi_Ohmura] [Takeshi_Ohmura] +vnsstr 3321/udp # VNSSTR [Takeshi_Ohmura] [Takeshi_Ohmura] +# active-net 3322-3325 Active Networks [Bob_Braden_2] [Bob_Braden_2] +sftu 3326/tcp # SFTU [Eduardo_Rosenberg_de] [Eduardo_Rosenberg_de] +sftu 3326/udp # SFTU [Eduardo_Rosenberg_de] [Eduardo_Rosenberg_de] +bbars 3327/tcp # BBARS [Lou_Harris] [Lou_Harris] +bbars 3327/udp # BBARS [Lou_Harris] [Lou_Harris] +egptlm 3328/tcp # Eaglepoint License Manager [Dave_Benton] [Dave_Benton] +egptlm 3328/udp # Eaglepoint License Manager [Dave_Benton] [Dave_Benton] +hp-device-disc 3329/tcp # HP Device Disc [Shivaun_Albright] [Shivaun_Albright] +hp-device-disc 3329/udp # HP Device Disc [Shivaun_Albright] [Shivaun_Albright] +mcs-calypsoicf 3330/tcp # MCS Calypso ICF +mcs-calypsoicf 3330/udp # MCS Calypso ICF +mcs-messaging 3331/tcp # MCS Messaging +mcs-messaging 3331/udp # MCS Messaging +mcs-mailsvr 3332/tcp # MCS Mail Server [Patti_Jo_Newsom] [Patti_Jo_Newsom] +mcs-mailsvr 3332/udp # MCS Mail Server [Patti_Jo_Newsom] [Patti_Jo_Newsom] +dec-notes 3333/tcp # DEC Notes [Kim_Moraros] [Kim_Moraros] +dec-notes 3333/udp # DEC Notes [Kim_Moraros] [Kim_Moraros] +directv-web 3334/tcp # Direct TV Webcasting +directv-web 3334/udp # Direct TV Webcasting +directv-soft 3335/tcp # Direct TV Software Updates +directv-soft 3335/udp # Direct TV Software Updates +directv-tick 3336/tcp # Direct TV Tickers +directv-tick 3336/udp # Direct TV Tickers +directv-catlg 3337/tcp # Direct TV Data Catalog [Michael_Friedman] [Michael_Friedman] +directv-catlg 3337/udp # Direct TV Data Catalog [Michael_Friedman] [Michael_Friedman] +anet-b 3338/tcp # OMF data b +anet-b 3338/udp # OMF data b +anet-l 3339/tcp # OMF data l +anet-l 3339/udp # OMF data l +anet-m 3340/tcp # OMF data m +anet-m 3340/udp # OMF data m +anet-h 3341/tcp # OMF data h [Per_Sahlqvist] [Per_Sahlqvist] +anet-h 3341/udp # OMF data h [Per_Sahlqvist] [Per_Sahlqvist] +webtie 3342/tcp # WebTIE [Kevin_Frender] [Kevin_Frender] +webtie 3342/udp # WebTIE [Kevin_Frender] [Kevin_Frender] +ms-cluster-net 3343/tcp # MS Cluster Net [David_Dion] [David_Dion] 2009-02-12 +ms-cluster-net 3343/udp # MS Cluster Net [David_Dion] [David_Dion] 2009-02-12 +bnt-manager 3344/tcp # BNT Manager [Engineering_Dept] [Engineering_Dept] +bnt-manager 3344/udp # BNT Manager [Engineering_Dept] [Engineering_Dept] +influence 3345/tcp # Influence [Russ_Ferriday] [Russ_Ferriday] +influence 3345/udp # Influence [Russ_Ferriday] [Russ_Ferriday] +trnsprntproxy 3346/tcp # Trnsprnt Proxy [Grant_Kirby] [Grant_Kirby] +trnsprntproxy 3346/udp # Trnsprnt Proxy [Grant_Kirby] [Grant_Kirby] +phoenix-rpc 3347/tcp # Phoenix RPC [Ian_Anderson] [Ian_Anderson] +phoenix-rpc 3347/udp # Phoenix RPC [Ian_Anderson] [Ian_Anderson] +pangolin-laser 3348/tcp # Pangolin Laser [William_Benner] [William_Benner] +pangolin-laser 3348/udp # Pangolin Laser [William_Benner] [William_Benner] +chevinservices 3349/tcp # Chevin Services [Gus_McNaughton] [Gus_McNaughton] +chevinservices 3349/udp # Chevin Services [Gus_McNaughton] [Gus_McNaughton] +findviatv 3350/tcp # FINDVIATV [Oran_Davis] [Oran_Davis] +findviatv 3350/udp # FINDVIATV [Oran_Davis] [Oran_Davis] +btrieve 3351/tcp # Btrieve port +btrieve 3351/udp # Btrieve port +ssql 3352/tcp # Scalable SQL [Chuck_Talk] [Chuck_Talk] +ssql 3352/udp # Scalable SQL [Chuck_Talk] [Chuck_Talk] +fatpipe 3353/tcp # FATPIPE [Sanchaita_Datta] [Sanchaita_Datta] +fatpipe 3353/udp # FATPIPE [Sanchaita_Datta] [Sanchaita_Datta] +suitjd 3354/tcp # SUITJD [Todd_Moyer] [Todd_Moyer] +suitjd 3354/udp # SUITJD [Todd_Moyer] [Todd_Moyer] +ordinox-dbase 3355/tcp # Ordinox Dbase [Denis_Ducharme] [Denis_Ducharme] +ordinox-dbase 3355/udp # Ordinox Dbase [Denis_Ducharme] [Denis_Ducharme] +upnotifyps 3356/tcp # UPNOTIFYPS [Mark_Fox] [Mark_Fox] +upnotifyps 3356/udp # UPNOTIFYPS [Mark_Fox] [Mark_Fox] +adtech-test 3357/tcp # Adtech Test IP [Robin_Uyeshiro] [Robin_Uyeshiro] +adtech-test 3357/udp # Adtech Test IP [Robin_Uyeshiro] [Robin_Uyeshiro] +mpsysrmsvr 3358/tcp # Mp Sys Rmsvr [Hiroyuki_Kawabuchi] [Hiroyuki_Kawabuchi] +mpsysrmsvr 3358/udp # Mp Sys Rmsvr [Hiroyuki_Kawabuchi] [Hiroyuki_Kawabuchi] +wg-netforce 3359/tcp # WG NetForce [Lee_Wheat] [Lee_Wheat] +wg-netforce 3359/udp # WG NetForce [Lee_Wheat] [Lee_Wheat] +kv-server 3360/tcp # KV Server +kv-server 3360/udp # KV Server +kv-agent 3361/tcp # KV Agent [Thomas_Soranno] [Thomas_Soranno] +kv-agent 3361/udp # KV Agent [Thomas_Soranno] [Thomas_Soranno] +dj-ilm 3362/tcp # DJ ILM [Don_Tyson] [Don_Tyson] +dj-ilm 3362/udp # DJ ILM [Don_Tyson] [Don_Tyson] +nati-vi-server 3363/tcp # NATI Vi Server [Robert_Dye] [Robert_Dye] +nati-vi-server 3363/udp # NATI Vi Server [Robert_Dye] [Robert_Dye] +creativeserver 3364/tcp # Creative Server +creativeserver 3364/udp # Creative Server +contentserver 3365/tcp # Content Server +contentserver 3365/udp # Content Server +creativepartnr 3366/tcp # Creative Partner [Jesus_Ortiz_2] [Jesus_Ortiz_2] +creativepartnr 3366/udp # Creative Partner [Jesus_Ortiz_2] [Jesus_Ortiz_2] +# satvid-datalnk 3367-3371 Satellite Video Data Link [Scott_Engel] [Scott_Engel] +tip2 3372/tcp # TIP 2 [Keith_Evans] [Keith_Evans] +tip2 3372/udp # TIP 2 [Keith_Evans] [Keith_Evans] +lavenir-lm 3373/tcp # Lavenir License Manager [Marius_Matioc] [Marius_Matioc] +lavenir-lm 3373/udp # Lavenir License Manager [Marius_Matioc] [Marius_Matioc] +cluster-disc 3374/tcp # Cluster Disc [Jeff_Hughes] [Jeff_Hughes] +cluster-disc 3374/udp # Cluster Disc [Jeff_Hughes] [Jeff_Hughes] +vsnm-agent 3375/tcp # VSNM Agent [Venkat_Rangan] [Venkat_Rangan] +vsnm-agent 3375/udp # VSNM Agent [Venkat_Rangan] [Venkat_Rangan] +cdbroker 3376/tcp # CD Broker [Moon_Ho_Chung] [Moon_Ho_Chung] +cdbroker 3376/udp # CD Broker [Moon_Ho_Chung] [Moon_Ho_Chung] +cogsys-lm 3377/tcp # Cogsys Network License [Simon_Chinnick] [Simon_Chinnick] +cogsys-lm 3377/udp # Cogsys Network License [Simon_Chinnick] [Simon_Chinnick] +wsicopy 3378/tcp # WSICOPY [James_Overby] [James_Overby] +wsicopy 3378/udp # WSICOPY [James_Overby] [James_Overby] +socorfs 3379/tcp # SOCORFS [Hugo_Charbonneau] [Hugo_Charbonneau] +socorfs 3379/udp # SOCORFS [Hugo_Charbonneau] [Hugo_Charbonneau] +sns-channels 3380/tcp # SNS Channels [Shekar_Pasumarthi] [Shekar_Pasumarthi] +sns-channels 3380/udp # SNS Channels [Shekar_Pasumarthi] [Shekar_Pasumarthi] +geneous 3381/tcp # Geneous [Nick_de_Smith] [Nick_de_Smith] +geneous 3381/udp # Geneous [Nick_de_Smith] [Nick_de_Smith] +fujitsu-neat 3382/tcp # Fujitsu Network Enhanced [Markku_Viima] [Markku_Viima] +# Antitheft function +fujitsu-neat 3382/udp # Fujitsu Network Enhanced [Markku_Viima] [Markku_Viima] +esp-lm 3383/tcp # Enterprise Software Products [George_Rudy] [George_Rudy] +esp-lm 3383/udp # Enterprise Software Products [George_Rudy] [George_Rudy] +hp-clic 3384/tcp # Cluster Management Services [Rajesh_Srinivasaragh] [Rajesh_Srinivasaragh] +hp-clic 3384/udp # Hardware Management [Rajesh_Srinivasaragh] [Rajesh_Srinivasaragh] +qnxnetman 3385/tcp # qnxnetman [Michael_Hunter] [Michael_Hunter] +qnxnetman 3385/udp # qnxnetman [Michael_Hunter] [Michael_Hunter] +gprs-data 3386/tcp # GPRS Data +gprs-sig 3386/udp # GPRS SIG [Ansgar_Bergmann] [Ansgar_Bergmann] +backroomnet 3387/tcp # Back Room Net [Clayton_Wilkinson] [Clayton_Wilkinson] +backroomnet 3387/udp # Back Room Net [Clayton_Wilkinson] [Clayton_Wilkinson] +cbserver 3388/tcp # CB Server [Allen_Wei] [Allen_Wei] +cbserver 3388/udp # CB Server [Allen_Wei] [Allen_Wei] +ms-wbt-server 3389/tcp # MS WBT Server [Ritu_Bahl] [Ritu_Bahl] +ms-wbt-server 3389/udp # MS WBT Server [Ritu_Bahl] [Ritu_Bahl] +dsc 3390/tcp # Distributed Service [Charles_Honton] [Charles_Honton] +# Coordinator +dsc 3390/udp # Distributed Service [Charles_Honton] [Charles_Honton] +savant 3391/tcp # SAVANT [Andy_Bruce] [Andy_Bruce] +savant 3391/udp # SAVANT [Andy_Bruce] [Andy_Bruce] +efi-lm 3392/tcp # EFI License Management [Ross_E_Greinke] [Ross_E_Greinke] +efi-lm 3392/udp # EFI License Management [Ross_E_Greinke] [Ross_E_Greinke] +d2k-tapestry1 3393/tcp # D2K Tapestry Client to +d2k-tapestry1 3393/udp # D2K Tapestry Client to +d2k-tapestry2 3394/tcp # D2K Tapestry Server to [Eric_Lan] [Eric_Lan] +d2k-tapestry2 3394/udp # D2K Tapestry Server to [Eric_Lan] [Eric_Lan] +dyna-lm 3395/tcp # Dyna License Manager (Elam) [Anjana_Iyer] [Anjana_Iyer] +dyna-lm 3395/udp # Dyna License Manager (Elam) [Anjana_Iyer] [Anjana_Iyer] +# Printer Agent +# +printer-agent 3396/tcp # IANA assigned this [Devon_Taylor] [Devon_Taylor] +# "printer_agent". +# This entry is an alias to "printer-agent". This entry is now +printer_agent 3396/tcp # Printer Agent [Devon_Taylor] [Devon_Taylor] historic, not usable for use with many common service +# +printer-agent 3396/udp # IANA assigned this [Devon_Taylor] [Devon_Taylor] +printer_agent 3396/udp # Printer Agent [Devon_Taylor] [Devon_Taylor] historic, not usable for use with many common service +cloanto-lm 3397/tcp # Cloanto License Manager [Takeo_Sato] [Takeo_Sato] 2010-04-30 +cloanto-lm 3397/udp # Cloanto License Manager [Takeo_Sato] [Takeo_Sato] 2010-04-30 +mercantile 3398/tcp # Mercantile [Erik_Kragh_Jensen] [Erik_Kragh_Jensen] +mercantile 3398/udp # Mercantile [Erik_Kragh_Jensen] [Erik_Kragh_Jensen] +csms 3399/tcp # CSMS +csms 3399/udp # CSMS +csms2 3400/tcp # CSMS2 [Markus_Michels_2] [Markus_Michels_2] +csms2 3400/udp # CSMS2 [Markus_Michels_2] [Markus_Michels_2] +filecast 3401/tcp # filecast [Eden_Sherry] [Eden_Sherry] +filecast 3401/udp # filecast [Eden_Sherry] [Eden_Sherry] +fxaengine-net 3402/tcp # FXa Engine Network Port [Lucas_Alonso] [Lucas_Alonso] 2002-02 +fxaengine-net 3402/udp # FXa Engine Network Port [Lucas_Alonso] [Lucas_Alonso] 2002-02 +# 3403 De-registered 2006-10-27 +# 3404 Removed 2002-05-01 +nokia-ann-ch1 3405/tcp # Nokia Announcement ch 1 +nokia-ann-ch1 3405/udp # Nokia Announcement ch 1 +nokia-ann-ch2 3406/tcp # Nokia Announcement ch 2 [Morteza_Kalhour] [Morteza_Kalhour] 2002-02 +nokia-ann-ch2 3406/udp # Nokia Announcement ch 2 [Morteza_Kalhour] [Morteza_Kalhour] 2002-02 +ldap-admin 3407/tcp # LDAP admin server port [Stephen_Tsun_2] [Stephen_Tsun_2] 2002-02 +ldap-admin 3407/udp # LDAP admin server port [Stephen_Tsun_2] [Stephen_Tsun_2] 2002-02 +BESApi 3408/tcp # BES Api Port [Colin_Griffiths] [Colin_Griffiths] 2002-02 +BESApi 3408/udp # BES Api Port [Colin_Griffiths] [Colin_Griffiths] 2002-02 +networklens 3409/tcp # NetworkLens Event Port +networklens 3409/udp # NetworkLens Event Port +networklenss 3410/tcp # NetworkLens SSL Event [Greg_Bailey] [Greg_Bailey] 2002-02 +networklenss 3410/udp # NetworkLens SSL Event [Greg_Bailey] [Greg_Bailey] 2002-02 +biolink-auth 3411/tcp # BioLink Authenteon server [BioLink_Support] [BioLink_Support] 2002-02 +biolink-auth 3411/udp # BioLink Authenteon server [BioLink_Support] [BioLink_Support] 2002-02 +xmlblaster 3412/tcp # xmlBlaster [Marcel_Ruff] [Marcel_Ruff] 2002-02 +xmlblaster 3412/udp # xmlBlaster [Marcel_Ruff] [Marcel_Ruff] 2002-02 +svnet 3413/tcp # SpecView Networking [Richard_Dickins] [Richard_Dickins] 2002-02 +svnet 3413/udp # SpecView Networking [Richard_Dickins] [Richard_Dickins] 2002-02 +wip-port 3414/tcp # BroadCloud WIP Port +wip-port 3414/udp # BroadCloud WIP Port +bcinameservice 3415/tcp # BCI Name Service [Dennis_Parker] [Dennis_Parker] 2002-02 +bcinameservice 3415/udp # BCI Name Service [Dennis_Parker] [Dennis_Parker] 2002-02 +commandport 3416/tcp # AirMobile IS Command Port [Mike_Klein] [Mike_Klein] 2002-02 +commandport 3416/udp # AirMobile IS Command Port [Mike_Klein] [Mike_Klein] 2002-02 +csvr 3417/tcp # ConServR file translation [Albert_Leung] [Albert_Leung] 2002-02 +csvr 3417/udp # ConServR file translation [Albert_Leung] [Albert_Leung] 2002-02 +rnmap 3418/tcp # Remote nmap [Tuomo_Makinen] [Tuomo_Makinen] 2002-02 +rnmap 3418/udp # Remote nmap [Tuomo_Makinen] [Tuomo_Makinen] 2002-02 +softaudit 3419/tcp # Isogon SoftAudit [Per_Hellberg] [Per_Hellberg] 2002-02 +softaudit 3419/udp # ISogon SoftAudit [Per_Hellberg] [Per_Hellberg] 2002-02 +ifcp-port 3420/tcp # iFCP User Port [RFC4172] +ifcp-port 3420/udp # iFCP User Port [RFC4172] +bmap 3421/tcp # Bull Apprise portmapper [Jeremy_Gilbert] [Jeremy_Gilbert] +bmap 3421/udp # Bull Apprise portmapper [Jeremy_Gilbert] [Jeremy_Gilbert] +rusb-sys-port 3422/tcp # Remote USB System Port [Steven_Klein] [Steven_Klein] 2002-02 +rusb-sys-port 3422/udp # Remote USB System Port [Steven_Klein] [Steven_Klein] 2002-02 +xtrm 3423/tcp # xTrade Reliable Messaging +xtrm 3423/udp # xTrade Reliable Messaging +xtrms 3424/tcp # xTrade over TLS/SSL [Mats_Nilsson] [Mats_Nilsson] 2002-02 +xtrms 3424/udp # xTrade over TLS/SSL [Mats_Nilsson] [Mats_Nilsson] 2002-02 +agps-port 3425/tcp # AGPS Access Port [Kristoffer_Nilsson] [Kristoffer_Nilsson] 2002-02 +agps-port 3425/udp # AGPS Access Port [Kristoffer_Nilsson] [Kristoffer_Nilsson] 2002-02 +arkivio 3426/tcp # Arkivio Storage Protocol [Bruce_Greenblatt] [Bruce_Greenblatt] 2002-02 +arkivio 3426/udp # Arkivio Storage Protocol [Bruce_Greenblatt] [Bruce_Greenblatt] 2002-02 +websphere-snmp 3427/tcp # WebSphere SNMP [Richard_Mills] [Richard_Mills] 2002-02 +websphere-snmp 3427/udp # WebSphere SNMP [Richard_Mills] [Richard_Mills] 2002-02 +twcss 3428/tcp # 2Wire CSS [Wire_IANA_Contact] [Wire_IANA_Contact] 2002-02 +twcss 3428/udp # 2Wire CSS [Wire_IANA_Contact] [Wire_IANA_Contact] 2002-02 +gcsp 3429/tcp # GCSP user port [Anirban_Majumder] [Anirban_Majumder] 2002-03 +gcsp 3429/udp # GCSP user port [Anirban_Majumder] [Anirban_Majumder] 2002-03 +ssdispatch 3430/tcp # Scott Studios Dispatch [Michael_Settles] [Michael_Settles] 2002-03 +ssdispatch 3430/udp # Scott Studios Dispatch [Michael_Settles] [Michael_Settles] 2002-03 +ndl-als 3431/tcp # Active License Server Port [Quentin_Brown] [Quentin_Brown] 2002-03 +ndl-als 3431/udp # Active License Server Port [Quentin_Brown] [Quentin_Brown] 2002-03 +osdcp 3432/tcp # Secure Device Protocol [Peter_Fernandez] [Peter_Fernandez] 2002-03 +osdcp 3432/udp # Secure Device Protocol [Peter_Fernandez] [Peter_Fernandez] 2002-03 +opnet-smp 3433/tcp # OPNET Service Management [OPNET_Technologies_Inc] [Edward_Macomber] 2002-03 2011-09-21 +opnet-smp 3433/udp # OPNET Service Management [OPNET_Technologies_Inc] [Edward_Macomber] 2002-03 2011-09-21 +opencm 3434/tcp # OpenCM Server [Jonathan_S_Shapiro] [Jonathan_S_Shapiro] 2002-03 +opencm 3434/udp # OpenCM Server [Jonathan_S_Shapiro] [Jonathan_S_Shapiro] 2002-03 +pacom 3435/tcp # Pacom Security User Port [Steve_Barton] [Steve_Barton] 2002-03 +pacom 3435/udp # Pacom Security User Port [Steve_Barton] [Steve_Barton] 2002-03 +gc-config 3436/tcp # GuardControl Exchange [Andreas_Schwarz] [Andreas_Schwarz] 2002-03 +gc-config 3436/udp # GuardControl Exchange [Andreas_Schwarz] [Andreas_Schwarz] 2002-03 +autocueds 3437/tcp # Autocue Directory Service [Geoff_Back] [Geoff_Back] 2002-03 +autocueds 3437/udp # Autocue Directory Service [Geoff_Back] [Geoff_Back] 2002-03 +spiral-admin 3438/tcp # Spiralcraft Admin [Michael_Toth] [Michael_Toth] 2002-03 +spiral-admin 3438/udp # Spiralcraft Admin [Michael_Toth] [Michael_Toth] 2002-03 +hri-port 3439/tcp # HRI Interface Port [John_Fayos] [John_Fayos] 2002-03 +hri-port 3439/udp # HRI Interface Port [John_Fayos] [John_Fayos] 2002-03 +ans-console 3440/tcp # Net Steward Mgmt Console [John_Richmond] [John_Richmond] 2002-03 +ans-console 3440/udp # Net Steward Mgmt Console [John_Richmond] [John_Richmond] 2002-03 +connect-client 3441/tcp # OC Connect Client +connect-client 3441/udp # OC Connect Client +connect-server 3442/tcp # OC Connect Server [Mike_Velten_2] [Mike_Velten_2] 2002-03 +connect-server 3442/udp # OC Connect Server [Mike_Velten_2] [Mike_Velten_2] 2002-03 +ov-nnm-websrv 3443/tcp # OpenView Network Node [Anthony_Walker] [Anthony_Walker] 2002-03 +# Manager WEB Server +ov-nnm-websrv 3443/udp # OpenView Network Node [Anthony_Walker] [Anthony_Walker] 2002-03 +denali-server 3444/tcp # Denali Server [Joe_Devlin] [Joe_Devlin] 2002-03 +denali-server 3444/udp # Denali Server [Joe_Devlin] [Joe_Devlin] 2002-03 +monp 3445/tcp # Media Object Network [Ron_Herardian] [Ron_Herardian] 2002-03 +monp 3445/udp # Media Object Network [Ron_Herardian] [Ron_Herardian] 2002-03 +3comfaxrpc 3446/tcp # 3Com FAX RPC port [Christopher_Wells_2] [Christopher_Wells_2] 2002-04 +3comfaxrpc 3446/udp # 3Com FAX RPC port [Christopher_Wells_2] [Christopher_Wells_2] 2002-04 +directnet 3447/tcp # DirectNet IM System [Gregory_Richards] [Gregory_Richards] 2002-04 +directnet 3447/udp # DirectNet IM System [Gregory_Richards] [Gregory_Richards] 2002-04 +dnc-port 3448/tcp # Discovery and Net Config [Chi_Chen] [Chi_Chen] 2002-04 +dnc-port 3448/udp # Discovery and Net Config [Chi_Chen] [Chi_Chen] 2002-04 +hotu-chat 3449/tcp # HotU Chat [Tim_Burgess] [Tim_Burgess] 2002-04 +hotu-chat 3449/udp # HotU Chat [Tim_Burgess] [Tim_Burgess] 2002-04 +castorproxy 3450/tcp # CAStorProxy [Raymond_J_Young] [Raymond_J_Young] 2002-04 +castorproxy 3450/udp # CAStorProxy [Raymond_J_Young] [Raymond_J_Young] 2002-04 +asam 3451/tcp # ASAM Services [Mike_Gossett] [Mike_Gossett] 2002-04 +asam 3451/udp # ASAM Services [Mike_Gossett] [Mike_Gossett] 2002-04 +sabp-signal 3452/tcp # SABP-Signalling Protocol [Brendan_McWilliams] [Brendan_McWilliams] 2002-04 +sabp-signal 3452/udp # SABP-Signalling Protocol [Brendan_McWilliams] [Brendan_McWilliams] 2002-04 +pscupd 3453/tcp # PSC Update Port [Reid_B_Ligon] [Reid_B_Ligon] +pscupd 3453/udp # PSC Update Port [Reid_B_Ligon] [Reid_B_Ligon] +mira 3454/tcp # Apple Remote Access Protocol [Mike_Alexander] [Mike_Alexander] +mira 3454/udp # Apple Remote Access Protocol [Mike_Alexander] [Mike_Alexander] +prsvp 3455/tcp # RSVP Port [Bob_Braden] [Bob_Braden] +prsvp 3455/udp # RSVP Port [Bob_Braden] [Bob_Braden] +vat 3456/tcp # VAT default data [Van_Jacobson] [Van_Jacobson] +vat 3456/udp # VAT default data [Van_Jacobson] [Van_Jacobson] +vat-control 3457/tcp # VAT default control [Van_Jacobson] [Van_Jacobson] +vat-control 3457/udp # VAT default control [Van_Jacobson] [Van_Jacobson] +d3winosfi 3458/tcp # D3WinOSFI [Brad_Hamilton] [Brad_Hamilton] +d3winosfi 3458/udp # D3WinOSFI [Brad_Hamilton] [Brad_Hamilton] +integral 3459/tcp # TIP Integral [Olivier_Mascia] [Olivier_Mascia] +integral 3459/udp # TIP Integral [Olivier_Mascia] [Olivier_Mascia] +edm-manager 3460/tcp # EDM Manger +edm-manager 3460/udp # EDM Manger +edm-stager 3461/tcp # EDM Stager +edm-stager 3461/udp # EDM Stager +edm-std-notify 3462/tcp # EDM STD Notify +edm-std-notify 3462/udp # EDM STD Notify +edm-adm-notify 3463/tcp # EDM ADM Notify +edm-adm-notify 3463/udp # EDM ADM Notify +edm-mgr-sync 3464/tcp # EDM MGR Sync +edm-mgr-sync 3464/udp # EDM MGR Sync +edm-mgr-cntrl 3465/tcp # EDM MGR Cntrl [Tom_Hennessy] [Tom_Hennessy] +edm-mgr-cntrl 3465/udp # EDM MGR Cntrl [Tom_Hennessy] [Tom_Hennessy] +workflow 3466/tcp # WORKFLOW [Robert_Hufsky] [Robert_Hufsky] +workflow 3466/udp # WORKFLOW [Robert_Hufsky] [Robert_Hufsky] +rcst 3467/tcp # RCST [Kit_Sturgeon] [Kit_Sturgeon] +rcst 3467/udp # RCST [Kit_Sturgeon] [Kit_Sturgeon] +ttcmremotectrl 3468/tcp # TTCM Remote Controll [Yossi_Cohen_Shahar] [Yossi_Cohen_Shahar] +ttcmremotectrl 3468/udp # TTCM Remote Controll [Yossi_Cohen_Shahar] [Yossi_Cohen_Shahar] +pluribus 3469/tcp # Pluribus [Mark_Miller] [Mark_Miller] +pluribus 3469/udp # Pluribus [Mark_Miller] [Mark_Miller] +jt400 3470/tcp # jt400 +jt400 3470/udp # jt400 +jt400-ssl 3471/tcp # jt400-ssl [Clifton_Nock] [Clifton_Nock] +jt400-ssl 3471/udp # jt400-ssl [Clifton_Nock] [Clifton_Nock] +jaugsremotec-1 3472/tcp # JAUGS N-G Remotec 1 +jaugsremotec-1 3472/udp # JAUGS N-G Remotec 1 +jaugsremotec-2 3473/tcp # JAUGS N-G Remotec 2 [Steven_B_Cliff] [Steven_B_Cliff] 2002-04 +jaugsremotec-2 3473/udp # JAUGS N-G Remotec 2 [Steven_B_Cliff] [Steven_B_Cliff] 2002-04 +ttntspauto 3474/tcp # TSP Automation [Arnie_Koster] [Arnie_Koster] 2002-04 +ttntspauto 3474/udp # TSP Automation [Arnie_Koster] [Arnie_Koster] 2002-04 +genisar-port 3475/tcp # Genisar Comm Port [Candace_Niccolson] [Candace_Niccolson] 2002-04 +genisar-port 3475/udp # Genisar Comm Port [Candace_Niccolson] [Candace_Niccolson] 2002-04 +nppmp 3476/tcp # NVIDIA Mgmt Protocol [Gilbert_Yeung] [Gilbert_Yeung] 2002-04 +nppmp 3476/udp # NVIDIA Mgmt Protocol [Gilbert_Yeung] [Gilbert_Yeung] 2002-04 +ecomm 3477/tcp # eComm link port [Thomas_Soerensen] [Thomas_Soerensen] 2002-04 +ecomm 3477/udp # eComm link port [Thomas_Soerensen] [Thomas_Soerensen] 2002-04 +stun 3478/tcp # Session Traversal Utilities [RFC5389] +# for NAT (STUN) port +stun 3478/udp # Session Traversal Utilities [RFC5389] +turn 3478/tcp # TURN over TCP [RFC5766] +turn 3478/udp # TURN over UDP [RFC5766] +stun-behavior 3478/tcp # STUN Behavior Discovery over [RFC5780] +# TCP +stun-behavior 3478/udp # STUN Behavior Discovery over [RFC5780] +# UDP +twrpc 3479/tcp # 2Wire RPC [Wire_IANA_Contact] [Wire_IANA_Contact] 2002-04 +twrpc 3479/udp # 2Wire RPC [Wire_IANA_Contact] [Wire_IANA_Contact] 2002-04 +plethora 3480/tcp # Secure Virtual Workspace [Tim_Simms] [Tim_Simms] 2002-04 +plethora 3480/udp # Secure Virtual Workspace [Tim_Simms] [Tim_Simms] 2002-04 +cleanerliverc 3481/tcp # CleanerLive remote ctrl [David_Mojdehi] [David_Mojdehi] 2002-04 +cleanerliverc 3481/udp # CleanerLive remote ctrl [David_Mojdehi] [David_Mojdehi] 2002-04 +vulture 3482/tcp # Vulture Monitoring System [Jason_Santos] [Jason_Santos] 2002-04 +vulture 3482/udp # Vulture Monitoring System [Jason_Santos] [Jason_Santos] 2002-04 +slim-devices 3483/tcp # Slim Devices Protocol [Sean_Adams] [Sean_Adams] 2002-05 +slim-devices 3483/udp # Slim Devices Protocol [Sean_Adams] [Sean_Adams] 2002-05 +gbs-stp 3484/tcp # GBS SnapTalk Protocol [Eric_Harris_Braun] [Eric_Harris_Braun] 2002-05 +gbs-stp 3484/udp # GBS SnapTalk Protocol [Eric_Harris_Braun] [Eric_Harris_Braun] 2002-05 +celatalk 3485/tcp # CelaTalk [Carl_Blundell] [Carl_Blundell] 2002-05 +celatalk 3485/udp # CelaTalk [Carl_Blundell] [Carl_Blundell] 2002-05 +ifsf-hb-port 3486/tcp # IFSF Heartbeat Port [IFSF_Secretary] [IFSF_Secretary] 2002-05 +ifsf-hb-port 3486/udp # IFSF Heartbeat Port [IFSF_Secretary] [IFSF_Secretary] 2002-05 +ltctcp 3487/tcp # LISA TCP Transfer Channel +ltcudp 3487/udp # LISA UDP Transfer Channel [Pit_Vetterick] [Pit_Vetterick] 2002-05 +fs-rh-srv 3488/tcp # FS Remote Host Server [Brian_Nickles] [Brian_Nickles] 2002-05 +fs-rh-srv 3488/udp # FS Remote Host Server [Brian_Nickles] [Brian_Nickles] 2002-05 +dtp-dia 3489/tcp # DTP/DIA [Alexei_V_Soloviev] [Alexei_V_Soloviev] 2002-05 +dtp-dia 3489/udp # DTP/DIA [Alexei_V_Soloviev] [Alexei_V_Soloviev] 2002-05 +colubris 3490/tcp # Colubris Management Port [Gilbert_Moineau] [Gilbert_Moineau] 2002-05 +colubris 3490/udp # Colubris Management Port [Gilbert_Moineau] [Gilbert_Moineau] 2002-05 +swr-port 3491/tcp # SWR Port [Ian_Manning] [Ian_Manning] 2002-05 +swr-port 3491/udp # SWR Port [Ian_Manning] [Ian_Manning] 2002-05 +tvdumtray-port 3492/tcp # TVDUM Tray Port [Peter_Boers] [Peter_Boers] 2002-05 +tvdumtray-port 3492/udp # TVDUM Tray Port [Peter_Boers] [Peter_Boers] 2002-05 +nut 3493/tcp # Network UPS Tools [Russell_Kroll] [Russell_Kroll] 2002-05 +nut 3493/udp # Network UPS Tools [Russell_Kroll] [Russell_Kroll] 2002-05 +ibm3494 3494/tcp # IBM 3494 [Jeffrey_Pilch] [Jeffrey_Pilch] +ibm3494 3494/udp # IBM 3494 [Jeffrey_Pilch] [Jeffrey_Pilch] +seclayer-tcp 3495/tcp # securitylayer over tcp +seclayer-tcp 3495/udp # securitylayer over tcp +seclayer-tls 3496/tcp # securitylayer over tls [Arno_Hollosi] [Arno_Hollosi] 2002-03 +seclayer-tls 3496/udp # securitylayer over tls [Arno_Hollosi] [Arno_Hollosi] 2002-03 +ipether232port 3497/tcp # ipEther232Port [Marcus_Leufgen] [Marcus_Leufgen] 2002-05 +ipether232port 3497/udp # ipEther232Port [Marcus_Leufgen] [Marcus_Leufgen] 2002-05 +dashpas-port 3498/tcp # DASHPAS user port [Albrecht_Mayer] [Albrecht_Mayer] 2002-05 +dashpas-port 3498/udp # DASHPAS user port [Albrecht_Mayer] [Albrecht_Mayer] 2002-05 +sccip-media 3499/tcp # SccIP Media [David_Yon_2] [David_Yon_2] 2002-05 +sccip-media 3499/udp # SccIP Media [David_Yon_2] [David_Yon_2] 2002-05 +rtmp-port 3500/tcp # RTMP Port [Miriam_Wohlgelernter] [Miriam_Wohlgelernter] +rtmp-port 3500/udp # RTMP Port [Miriam_Wohlgelernter] [Miriam_Wohlgelernter] +isoft-p2p 3501/tcp # iSoft-P2P [David_Walling_2] [David_Walling_2] +isoft-p2p 3501/udp # iSoft-P2P [David_Walling_2] [David_Walling_2] +avinstalldisc 3502/tcp # Avocent Install Discovery [Brian_S_Stewart_2] [Brian_S_Stewart_2] +avinstalldisc 3502/udp # Avocent Install Discovery [Brian_S_Stewart_2] [Brian_S_Stewart_2] +lsp-ping 3503/tcp # MPLS LSP-echo Port [RFC4379] +lsp-ping 3503/udp # MPLS LSP-echo Port [RFC4379] +ironstorm 3504/tcp # IronStorm game server [Arnaud_Clermonte] [Arnaud_Clermonte] +ironstorm 3504/udp # IronStorm game server [Arnaud_Clermonte] [Arnaud_Clermonte] +ccmcomm 3505/tcp # CCM communications port [Tom_Bougan] [Tom_Bougan] +ccmcomm 3505/udp # CCM communications port [Tom_Bougan] [Tom_Bougan] +apc-3506 3506/tcp # APC 3506 [American_Power_Conve] [American_Power_Conve] +apc-3506 3506/udp # APC 3506 [American_Power_Conve] [American_Power_Conve] +nesh-broker 3507/tcp # Nesh Broker Port [Jeremy_Maiden] [Jeremy_Maiden] +nesh-broker 3507/udp # Nesh Broker Port [Jeremy_Maiden] [Jeremy_Maiden] +interactionweb 3508/tcp # Interaction Web [Mike_Gagle_2] [Mike_Gagle_2] +interactionweb 3508/udp # Interaction Web [Mike_Gagle_2] [Mike_Gagle_2] +vt-ssl 3509/tcp # Virtual Token SSL Port [Libor_Sykora] [Libor_Sykora] 2002-05 +vt-ssl 3509/udp # Virtual Token SSL Port [Libor_Sykora] [Libor_Sykora] 2002-05 +xss-port 3510/tcp # XSS Port [Joe_Purcell] [Joe_Purcell] 2002-05 +xss-port 3510/udp # XSS Port [Joe_Purcell] [Joe_Purcell] 2002-05 +webmail-2 3511/tcp # WebMail/2 [Dimitris_Michelinaki] [Dimitris_Michelinaki] 2002-05 +webmail-2 3511/udp # WebMail/2 [Dimitris_Michelinaki] [Dimitris_Michelinaki] 2002-05 +aztec 3512/tcp # Aztec Distribution Port [Alan_Francis] [Alan_Francis] 2002-05 +aztec 3512/udp # Aztec Distribution Port [Alan_Francis] [Alan_Francis] 2002-05 +arcpd 3513/tcp # Adaptec Remote Protocol [Hardy_Doelfel] [Hardy_Doelfel] 2002-05 +arcpd 3513/udp # Adaptec Remote Protocol [Hardy_Doelfel] [Hardy_Doelfel] 2002-05 +must-p2p 3514/tcp # MUST Peer to Peer +must-p2p 3514/udp # MUST Peer to Peer +must-backplane 3515/tcp # MUST Backplane [Rick_Stefanik] [Rick_Stefanik] 2002-05 +must-backplane 3515/udp # MUST Backplane [Rick_Stefanik] [Rick_Stefanik] 2002-05 +smartcard-port 3516/tcp # Smartcard Port [Scott_Guthery] [Scott_Guthery] 2002-05 +smartcard-port 3516/udp # Smartcard Port [Scott_Guthery] [Scott_Guthery] 2002-05 +802-11-iapp 3517/tcp # IEEE 802.11 WLANs WG IAPP [Stuart_J_Kerry] [Stuart_J_Kerry] 2002-05 +802-11-iapp 3517/udp # IEEE 802.11 WLANs WG IAPP [Stuart_J_Kerry] [Stuart_J_Kerry] 2002-05 +artifact-msg 3518/tcp # Artifact Message Server [Ron_Capwell] [Ron_Capwell] 2002-06 +artifact-msg 3518/udp # Artifact Message Server [Ron_Capwell] [Ron_Capwell] 2002-06 +nvmsgd 3519/tcp # Netvion Messenger Port +galileo 3519/udp # Netvion Galileo Port +galileolog 3520/tcp # Netvion Galileo Log Port [Ray_Caruso] [Ray_Caruso] 2002-06 +galileolog 3520/udp # Netvion Galileo Log Port [Ray_Caruso] [Ray_Caruso] 2002-06 +mc3ss 3521/tcp # Telequip Labs MC3SS [Michael_Sparks] [Michael_Sparks] 2002-06 +mc3ss 3521/udp # Telequip Labs MC3SS [Michael_Sparks] [Michael_Sparks] 2002-06 +# NFS service for the domain +# nfs-domainroot tcp root, the root of an [IESG] [IETF_Chair] 2012-04-24 [RFC6641] Defined TXT keys: None +# organization's published +# file namespace. +nssocketport 3522/tcp # DO over NSSocketPort [Douglas_Davidson] [Douglas_Davidson] 2002-06 +nssocketport 3522/udp # DO over NSSocketPort [Douglas_Davidson] [Douglas_Davidson] 2002-06 +odeumservlink 3523/tcp # Odeum Serverlink [Mads_Peter_Back] [Mads_Peter_Back] 2002-06 +odeumservlink 3523/udp # Odeum Serverlink [Mads_Peter_Back] [Mads_Peter_Back] 2002-06 +ecmport 3524/tcp # ECM Server port +ecmport 3524/udp # ECM Server port +eisport 3525/tcp # EIS Server port [Paul_Kraus] [Paul_Kraus] 2002-06 +eisport 3525/udp # EIS Server port [Paul_Kraus] [Paul_Kraus] 2002-06 +starquiz-port 3526/tcp # starQuiz Port [Adam_Ernst_2] [Adam_Ernst_2] 2002-06 +starquiz-port 3526/udp # starQuiz Port [Adam_Ernst_2] [Adam_Ernst_2] 2002-06 +beserver-msg-q 3527/tcp # VERITAS Backup Exec Server [Katherine_Wattwood] [Katherine_Wattwood] 2002-06 +beserver-msg-q 3527/udp # VERITAS Backup Exec Server [Katherine_Wattwood] [Katherine_Wattwood] 2002-06 +jboss-iiop 3528/tcp # JBoss IIOP +jboss-iiop 3528/udp # JBoss IIOP +jboss-iiop-ssl 3529/tcp # JBoss IIOP/SSL [Francisco_Reverbel] [Francisco_Reverbel] 2002-06 +jboss-iiop-ssl 3529/udp # JBoss IIOP/SSL [Francisco_Reverbel] [Francisco_Reverbel] 2002-06 +gf 3530/tcp # Grid Friendly [Daivd_P_Chassin] [Daivd_P_Chassin] 2002-06 +gf 3530/udp # Grid Friendly [Daivd_P_Chassin] [Daivd_P_Chassin] 2002-06 +joltid 3531/tcp # Joltid [Ahti_Heinla] [Ahti_Heinla] 2002-06 +joltid 3531/udp # Joltid [Ahti_Heinla] [Ahti_Heinla] 2002-06 +raven-rmp 3532/tcp # Raven Remote Management +raven-rmp 3532/udp # Raven Remote Management +raven-rdp 3533/tcp # Raven Remote Management Data [Daniel_Sorlov_2] [Daniel_Sorlov_2] 2002-06 +raven-rdp 3533/udp # Raven Remote Management Data [Daniel_Sorlov_2] [Daniel_Sorlov_2] 2002-06 +urld-port 3534/tcp # URL Daemon Port [Jim_Binkley] [Jim_Binkley] 2002-06 +urld-port 3534/udp # URL Daemon Port [Jim_Binkley] [Jim_Binkley] 2002-06 +ms-la 3535/tcp # MS-LA [Eric_Ledoux] [Eric_Ledoux] +ms-la 3535/udp # MS-LA [Eric_Ledoux] [Eric_Ledoux] +snac 3536/tcp # SNAC [Tatsuya_Igarashi] [Tatsuya_Igarashi] 2002-07 +snac 3536/udp # SNAC [Tatsuya_Igarashi] [Tatsuya_Igarashi] 2002-07 +ni-visa-remote 3537/tcp # Remote NI-VISA port [Sinnadurai_Dharshan] [Sinnadurai_Dharshan] 2002-07 +ni-visa-remote 3537/udp # Remote NI-VISA port [Sinnadurai_Dharshan] [Sinnadurai_Dharshan] 2002-07 +ibm-diradm 3538/tcp # IBM Directory Server +ibm-diradm 3538/udp # IBM Directory Server +ibm-diradm-ssl 3539/tcp # IBM Directory Server SSL [Mark_Cavage] [Mark_Cavage] 2002-07 +ibm-diradm-ssl 3539/udp # IBM Directory Server SSL [Mark_Cavage] [Mark_Cavage] 2002-07 +pnrp-port 3540/tcp # PNRP User Port [Igor_Kostic] [Igor_Kostic] 2002-07 +pnrp-port 3540/udp # PNRP User Port [Igor_Kostic] [Igor_Kostic] 2002-07 +voispeed-port 3541/tcp # VoiSpeed Port [Virgilio_Lattanzi] [Virgilio_Lattanzi] 2002-07 +voispeed-port 3541/udp # VoiSpeed Port [Virgilio_Lattanzi] [Virgilio_Lattanzi] 2002-07 +hacl-monitor 3542/tcp # HA cluster monitor [Jason_Ko] [Jason_Ko] 2002-07 +hacl-monitor 3542/udp # HA cluster monitor [Jason_Ko] [Jason_Ko] 2002-07 +qftest-lookup 3543/tcp # qftest Lookup Port [Gregor_Schmid] [Gregor_Schmid] 2002-07 +qftest-lookup 3543/udp # qftest Lookup Port [Gregor_Schmid] [Gregor_Schmid] 2002-07 +teredo 3544/tcp # Teredo Port [RFC4380] +teredo 3544/udp # Teredo Port [RFC4380] +camac 3545/tcp # CAMAC equipment [Eugene_Zhiganov] [Eugene_Zhiganov] 2002-07 +camac 3545/udp # CAMAC equipment [Eugene_Zhiganov] [Eugene_Zhiganov] 2002-07 +# 3546 Unassigned 2002-09 +symantec-sim 3547/tcp # Symantec SIM [George_Dzieciol] [George_Dzieciol] 2002-07 +symantec-sim 3547/udp # Symantec SIM [George_Dzieciol] [George_Dzieciol] 2002-07 +interworld 3548/tcp # Interworld [John_Stephen] [John_Stephen] 2002-07 +interworld 3548/udp # Interworld [John_Stephen] [John_Stephen] 2002-07 +tellumat-nms 3549/tcp # Tellumat MDR NMS [Hennie_van_der_Merwe] [Hennie_van_der_Merwe] 2002-07 +tellumat-nms 3549/udp # Tellumat MDR NMS [Hennie_van_der_Merwe] [Hennie_van_der_Merwe] 2002-07 +ssmpp 3550/tcp # Secure SMPP [Cormac_Long] [Cormac_Long] 2002-07 +ssmpp 3550/udp # Secure SMPP [Cormac_Long] [Cormac_Long] 2002-07 +apcupsd 3551/tcp # Apcupsd Information Port [Riccardo_Facchetti] [Riccardo_Facchetti] 2002-07 +apcupsd 3551/udp # Apcupsd Information Port [Riccardo_Facchetti] [Riccardo_Facchetti] 2002-07 +taserver 3552/tcp # TeamAgenda Server Port [Dany_Ayotte] [Dany_Ayotte] 2002-07 +taserver 3552/udp # TeamAgenda Server Port [Dany_Ayotte] [Dany_Ayotte] 2002-07 +rbr-discovery 3553/tcp # Red Box Recorder ADP [Simon_Jolly] [Simon_Jolly] 2002-07 +rbr-discovery 3553/udp # Red Box Recorder ADP [Simon_Jolly] [Simon_Jolly] 2002-07 +questnotify 3554/tcp # Quest Notification Server [Rob_Griffin] [Rob_Griffin] 2002-07 +questnotify 3554/udp # Quest Notification Server [Rob_Griffin] [Rob_Griffin] 2002-07 +razor 3555/tcp # Vipul's Razor [Vipul_Ved_Prakash] [Vipul_Ved_Prakash] 2002-07 +razor 3555/udp # Vipul's Razor [Vipul_Ved_Prakash] [Vipul_Ved_Prakash] 2002-07 +sky-transport 3556/tcp # Sky Transport Protocol [Michael_Paddon] [Michael_Paddon] 2002-07 +sky-transport 3556/udp # Sky Transport Protocol [Michael_Paddon] [Michael_Paddon] 2002-07 +personalos-001 3557/tcp # PersonalOS Comm Port [Shane_Roberts] [Shane_Roberts] 2002-07 +personalos-001 3557/udp # PersonalOS Comm Port [Shane_Roberts] [Shane_Roberts] 2002-07 +mcp-port 3558/tcp # MCP user port [Professor_Paul_S_Wa] [Professor_Paul_S_Wa] 2002-07 +mcp-port 3558/udp # MCP user port [Professor_Paul_S_Wa] [Professor_Paul_S_Wa] 2002-07 +cctv-port 3559/tcp # CCTV control port [John_Skidmore] [John_Skidmore] 2002-07 +cctv-port 3559/udp # CCTV control port [John_Skidmore] [John_Skidmore] 2002-07 +iniserve-port 3560/tcp # INIServe port [Peter_Moylan] [Peter_Moylan] 2002-08 +iniserve-port 3560/udp # INIServe port [Peter_Moylan] [Peter_Moylan] 2002-08 +bmc-onekey 3561/tcp # BMC-OneKey [Portnoy_Boxman] [Portnoy_Boxman] 2002-08 +bmc-onekey 3561/udp # BMC-OneKey [Portnoy_Boxman] [Portnoy_Boxman] 2002-08 +sdbproxy 3562/tcp # SDBProxy [Eric_Grange] [Eric_Grange] 2002-08 +sdbproxy 3562/udp # SDBProxy [Eric_Grange] [Eric_Grange] 2002-08 +watcomdebug 3563/tcp # Watcom Debug [Dave_Neudoerffer] [Dave_Neudoerffer] +watcomdebug 3563/udp # Watcom Debug [Dave_Neudoerffer] [Dave_Neudoerffer] +esimport 3564/tcp # Electromed SIM port [Francois_Marchand] [Francois_Marchand] 2002-08 +esimport 3564/udp # Electromed SIM port [Francois_Marchand] [Francois_Marchand] 2002-08 +m2pa 3565/tcp # M2PA [RFC4165] +# 3565 udp Reserved +m2pa 3565/sctp # M2PA [RFC4165] +quest-data-hub 3566/tcp # Quest Data Hub [Greg_Cottman_2] [Greg_Cottman_2] 2010-10-18 +# 3566 udp Reserved 2010-10-18 +enc-eps 3567/tcp # EMIT protocol stack [Panasonic_Intranet_Panasonic_North_America_PEWLA] [Bryant_Eastham] 2002-08 2012-11-12 +enc-eps 3567/udp # EMIT protocol stack [Panasonic_Intranet_Panasonic_North_America_PEWLA] [Bryant_Eastham] 2002-08 2012-11-12 +enc-tunnel-sec 3568/tcp # EMIT secure tunnel [Panasonic_Intranet_Panasonic_North_America_PEWLA] [Bryant_Eastham] 2003-01 2012-11-12 +enc-tunnel-sec 3568/udp # EMIT secure tunnel [Panasonic_Intranet_Panasonic_North_America_PEWLA] [Bryant_Eastham] 2003-01 2012-11-12 +mbg-ctrl 3569/tcp # Meinberg Control Service [Martin_Burnicki] [Martin_Burnicki] 2002-08 +mbg-ctrl 3569/udp # Meinberg Control Service [Martin_Burnicki] [Martin_Burnicki] 2002-08 +mccwebsvr-port 3570/tcp # MCC Web Server Port +mccwebsvr-port 3570/udp # MCC Web Server Port +megardsvr-port 3571/tcp # MegaRAID Server Port +megardsvr-port 3571/udp # MegaRAID Server Port +megaregsvrport 3572/tcp # Registration Server Port [Sreenivas_Bagalkote] [Sreenivas_Bagalkote] 2002-08 +megaregsvrport 3572/udp # Registration Server Port [Sreenivas_Bagalkote] [Sreenivas_Bagalkote] 2002-08 +tag-ups-1 3573/tcp # Advantage Group UPS Suite [James_Goddard] [James_Goddard] 2002-08 +tag-ups-1 3573/udp # Advantage Group UPS Suite [James_Goddard] [James_Goddard] 2002-08 +dmaf-server 3574/tcp # DMAF Server +dmaf-caster 3574/udp # DMAF Caster [Ramakrishna_Nadendla] [Ramakrishna_Nadendla] 2002-08 +ccm-port 3575/tcp # Coalsere CCM Port +ccm-port 3575/udp # Coalsere CCM Port +cmc-port 3576/tcp # Coalsere CMC Port [Chris_Hawkinson] [Chris_Hawkinson] 2002-08 +cmc-port 3576/udp # Coalsere CMC Port [Chris_Hawkinson] [Chris_Hawkinson] 2002-08 +config-port 3577/tcp # Configuration Port +config-port 3577/udp # Configuration Port +data-port 3578/tcp # Data Port [Anupam_Bharali] [Anupam_Bharali] 2002-08 +data-port 3578/udp # Data Port [Anupam_Bharali] [Anupam_Bharali] 2002-08 +ttat3lb 3579/tcp # Tarantella Load Balancing [Jim_Musgrave] [Jim_Musgrave] 2002-08 +ttat3lb 3579/udp # Tarantella Load Balancing [Jim_Musgrave] [Jim_Musgrave] 2002-08 +nati-svrloc 3580/tcp # NATI-ServiceLocator [Jason_Case] [Jason_Case] 2002-08 +nati-svrloc 3580/udp # NATI-ServiceLocator [Jason_Case] [Jason_Case] 2002-08 +kfxaclicensing 3581/tcp # Ascent Capture Licensing [Brad_Hamilton_2] [Brad_Hamilton_2] 2002-08 +kfxaclicensing 3581/udp # Ascent Capture Licensing [Brad_Hamilton_2] [Brad_Hamilton_2] 2002-08 +press 3582/tcp # PEG PRESS Server [Jim_DeLisle] [Jim_DeLisle] 2002-08 +press 3582/udp # PEG PRESS Server [Jim_DeLisle] [Jim_DeLisle] 2002-08 +canex-watch 3583/tcp # CANEX Watch System [Peter_Kollath] [Peter_Kollath] 2002-08 +canex-watch 3583/udp # CANEX Watch System [Peter_Kollath] [Peter_Kollath] 2002-08 +u-dbap 3584/tcp # U-DBase Access Protocol [Bodo_Rueskamp] [Bodo_Rueskamp] 2002-08 +u-dbap 3584/udp # U-DBase Access Protocol [Bodo_Rueskamp] [Bodo_Rueskamp] 2002-08 +emprise-lls 3585/tcp # Emprise License Server +emprise-lls 3585/udp # Emprise License Server +emprise-lsc 3586/tcp # License Server Console [James_J_Diaz] [James_J_Diaz] 2002-08 +emprise-lsc 3586/udp # License Server Console [James_J_Diaz] [James_J_Diaz] 2002-08 +p2pgroup 3587/tcp # Peer to Peer Grouping [Igor_Kostic] [Igor_Kostic] 2002-08 +p2pgroup 3587/udp # Peer to Peer Grouping [Igor_Kostic] [Igor_Kostic] 2002-08 +sentinel 3588/tcp # Sentinel Server [Ian_Gordon] [Ian_Gordon] 2002-08 +sentinel 3588/udp # Sentinel Server [Ian_Gordon] [Ian_Gordon] 2002-08 +isomair 3589/tcp # isomair [Richard_Fleming] [Richard_Fleming] 2002-08 +isomair 3589/udp # isomair [Richard_Fleming] [Richard_Fleming] 2002-08 +wv-csp-sms 3590/tcp # WV CSP SMS Binding [Matti_Salmi] [Matti_Salmi] 2002-08 +wv-csp-sms 3590/udp # WV CSP SMS Binding [Matti_Salmi] [Matti_Salmi] 2002-08 +gtrack-server 3591/tcp # LOCANIS G-TRACK Server +gtrack-server 3591/udp # LOCANIS G-TRACK Server +gtrack-ne 3592/tcp # LOCANIS G-TRACK NE Port [Juergen_Edelhaeuser] [Juergen_Edelhaeuser] 2002-08 +gtrack-ne 3592/udp # LOCANIS G-TRACK NE Port [Juergen_Edelhaeuser] [Juergen_Edelhaeuser] 2002-08 +bpmd 3593/tcp # BP Model Debugger [Keith_Fligg] [Keith_Fligg] 2002-09 +bpmd 3593/udp # BP Model Debugger [Keith_Fligg] [Keith_Fligg] 2002-09 +mediaspace 3594/tcp # MediaSpace +mediaspace 3594/udp # MediaSpace +shareapp 3595/tcp # ShareApp [Jeff_King] [Jeff_King] 2002-09 +shareapp 3595/udp # ShareApp [Jeff_King] [Jeff_King] 2002-09 +iw-mmogame 3596/tcp # Illusion Wireless MMOG [Jan_Vrsinsky] [Jan_Vrsinsky] 2002-09 +iw-mmogame 3596/udp # Illusion Wireless MMOG [Jan_Vrsinsky] [Jan_Vrsinsky] 2002-09 +a14 3597/tcp # A14 (AN-to-SC/MM) +a14 3597/udp # A14 (AN-to-SC/MM) +a15 3598/tcp # A15 (AN-to-AN) [David_Ott] [David_Ott] 2002-09 +a15 3598/udp # A15 (AN-to-AN) [David_Ott] [David_Ott] 2002-09 +quasar-server 3599/tcp # Quasar Accounting Server [Brad_Pepers] [Brad_Pepers] 2002-09 +quasar-server 3599/udp # Quasar Accounting Server [Brad_Pepers] [Brad_Pepers] 2002-09 +trap-daemon 3600/tcp # text relay-answer [John_Willis] [John_Willis] 2002-09 +trap-daemon 3600/udp # text relay-answer [John_Willis] [John_Willis] 2002-09 +visinet-gui 3601/tcp # Visinet Gui [Jeff_Douglass] [Jeff_Douglass] 2002-09 +visinet-gui 3601/udp # Visinet Gui [Jeff_Douglass] [Jeff_Douglass] 2002-09 +infiniswitchcl 3602/tcp # InfiniSwitch Mgr Client [Lee_VanTine] [Lee_VanTine] 2002-09 +infiniswitchcl 3602/udp # InfiniSwitch Mgr Client [Lee_VanTine] [Lee_VanTine] 2002-09 +int-rcv-cntrl 3603/tcp # Integrated Rcvr Control [Dave_Stone] [Dave_Stone] 2002-09 +int-rcv-cntrl 3603/udp # Integrated Rcvr Control [Dave_Stone] [Dave_Stone] 2002-09 +bmc-jmx-port 3604/tcp # BMC JMX Port [Portnoy_Boxman] [Portnoy_Boxman] 2002-09 +bmc-jmx-port 3604/udp # BMC JMX Port [Portnoy_Boxman] [Portnoy_Boxman] 2002-09 +comcam-io 3605/tcp # ComCam IO Port [Don_Gilbreath] [Don_Gilbreath] 2002-09 +comcam-io 3605/udp # ComCam IO Port [Don_Gilbreath] [Don_Gilbreath] 2002-09 +splitlock 3606/tcp # Splitlock Server [Andrew_Tune] [Andrew_Tune] 2002-09 +splitlock 3606/udp # Splitlock Server [Andrew_Tune] [Andrew_Tune] 2002-09 +precise-i3 3607/tcp # Precise I3 [Tomer_Shain] [Tomer_Shain] 2002-09 +precise-i3 3607/udp # Precise I3 [Tomer_Shain] [Tomer_Shain] 2002-09 +trendchip-dcp 3608/tcp # Trendchip control protocol [Ming_Jen_Chen] [Ming_Jen_Chen] 2002-09 +trendchip-dcp 3608/udp # Trendchip control protocol [Ming_Jen_Chen] [Ming_Jen_Chen] 2002-09 +cpdi-pidas-cm 3609/tcp # CPDI PIDAS Connection Mon [Tony_Splaver] [Tony_Splaver] 2002-09 +cpdi-pidas-cm 3609/udp # CPDI PIDAS Connection Mon [Tony_Splaver] [Tony_Splaver] 2002-09 +echonet 3610/tcp # ECHONET [Takeshi_Saito] [Takeshi_Saito] 2002-09 +echonet 3610/udp # ECHONET [Takeshi_Saito] [Takeshi_Saito] 2002-09 +six-degrees 3611/tcp # Six Degrees Port [Zach_Nies] [Zach_Nies] 2002-09 +six-degrees 3611/udp # Six Degrees Port [Zach_Nies] [Zach_Nies] 2002-09 +hp-dataprotect 3612/tcp # HP Data Protector [Hewlett_Packard_2] [Oliver_Breyel] 2002-09 2013-02-07 +hp-dataprotect 3612/udp # HP Data Protector [Hewlett_Packard_2] [Oliver_Breyel] 2002-09 2013-02-07 +alaris-disc 3613/tcp # Alaris Device Discovery [Chris_Dern] [Chris_Dern] 2004-06 +alaris-disc 3613/udp # Alaris Device Discovery [Chris_Dern] [Chris_Dern] 2004-06 +sigma-port 3614/tcp # Satchwell Sigma [Dave_Chapman] [Dave_Chapman] 2011-06-06 +sigma-port 3614/udp # Satchwell Sigma [Dave_Chapman] [Dave_Chapman] 2011-06-06 +start-network 3615/tcp # Start Messaging Network [Peter_Rocca] [Peter_Rocca] 2002-10 +start-network 3615/udp # Start Messaging Network [Peter_Rocca] [Peter_Rocca] 2002-10 +cd3o-protocol 3616/tcp # cd3o Control Protocol [Chris_Wilcox] [Chris_Wilcox] 2002-10 +cd3o-protocol 3616/udp # cd3o Control Protocol [Chris_Wilcox] [Chris_Wilcox] 2002-10 +sharp-server 3617/tcp # ATI SHARP Logic Engine [Bill_Reveile] [Bill_Reveile] +sharp-server 3617/udp # ATI SHARP Logic Engine [Bill_Reveile] [Bill_Reveile] +aairnet-1 3618/tcp # AAIR-Network 1 +aairnet-1 3618/udp # AAIR-Network 1 +aairnet-2 3619/tcp # AAIR-Network 2 [James_Mealey] [James_Mealey] 2002-10 +aairnet-2 3619/udp # AAIR-Network 2 [James_Mealey] [James_Mealey] 2002-10 +ep-pcp 3620/tcp # EPSON Projector Control Port +ep-pcp 3620/udp # EPSON Projector Control Port +ep-nsp 3621/tcp # EPSON Network Screen Port [SEIKO_EPSON_3] [SEIKO_EPSON_3] 2002-10 +ep-nsp 3621/udp # EPSON Network Screen Port [SEIKO_EPSON_3] [SEIKO_EPSON_3] 2002-10 +ff-lr-port 3622/tcp # FF LAN Redundancy Port [Fieldbus_Foundation] [Fieldbus_Foundation] 2002-10 +ff-lr-port 3622/udp # FF LAN Redundancy Port [Fieldbus_Foundation] [Fieldbus_Foundation] 2002-10 +haipe-discover 3623/tcp # HAIPIS Dynamic Discovery [Mike_Irani] [Mike_Irani] 2002-10 +haipe-discover 3623/udp # HAIPIS Dynamic Discovery [Mike_Irani] [Mike_Irani] 2002-10 +dist-upgrade 3624/tcp # Distributed Upgrade Port [Jason_Schoon] [Jason_Schoon] 2002-10 +dist-upgrade 3624/udp # Distributed Upgrade Port [Jason_Schoon] [Jason_Schoon] 2002-10 +volley 3625/tcp # Volley [David_Catmull] [David_Catmull] 2002-10 +volley 3625/udp # Volley [David_Catmull] [David_Catmull] 2002-10 +bvcdaemon-port 3626/tcp # bvControl Daemon [Ravi_Gokhale] [Ravi_Gokhale] 2002-10 +bvcdaemon-port 3626/udp # bvControl Daemon [Ravi_Gokhale] [Ravi_Gokhale] 2002-10 +jamserverport 3627/tcp # Jam Server Port [Art_Pope] [Art_Pope] 2002-10 +jamserverport 3627/udp # Jam Server Port [Art_Pope] [Art_Pope] 2002-10 +ept-machine 3628/tcp # EPT Machine Interface [Victor_H_Farrace] [Victor_H_Farrace] 2002-10 +ept-machine 3628/udp # EPT Machine Interface [Victor_H_Farrace] [Victor_H_Farrace] 2002-10 +escvpnet 3629/tcp # ESC/VP.net [Hiroyuki_Hashimoto] [Hiroyuki_Hashimoto] 2002-10 +escvpnet 3629/udp # ESC/VP.net [Hiroyuki_Hashimoto] [Hiroyuki_Hashimoto] 2002-10 +cs-remote-db 3630/tcp # C&S Remote Database Port +cs-remote-db 3630/udp # C&S Remote Database Port +cs-services 3631/tcp # C&S Web Services Port [Computer_Software_Gm] [Computer_Software_Gm] 2002-10 +cs-services 3631/udp # C&S Web Services Port [Computer_Software_Gm] [Computer_Software_Gm] 2002-10 +distcc 3632/tcp # distributed compiler [Martin_Pool] [Martin_Pool] 2002-11 Defined TXT keys: None +distcc 3632/udp # distributed compiler [Martin_Pool] [Martin_Pool] 2002-11 Defined TXT keys: None +wacp 3633/tcp # Wyrnix AIS port [Harry_T_Vennik] [Harry_T_Vennik] 2002-11 +wacp 3633/udp # Wyrnix AIS port [Harry_T_Vennik] [Harry_T_Vennik] 2002-11 +hlibmgr 3634/tcp # hNTSP Library Manager [Kenji_Tetsuyama] [Kenji_Tetsuyama] 2002-11 +hlibmgr 3634/udp # hNTSP Library Manager [Kenji_Tetsuyama] [Kenji_Tetsuyama] 2002-11 +sdo 3635/tcp # Simple Distributed Objects [Alexander_Philippou] [Alexander_Philippou] 2002-11 +sdo 3635/udp # Simple Distributed Objects [Alexander_Philippou] [Alexander_Philippou] 2002-11 +servistaitsm 3636/tcp # SerVistaITSM [Ralph_Campbell] [Ralph_Campbell] 2002-11 +servistaitsm 3636/udp # SerVistaITSM [Ralph_Campbell] [Ralph_Campbell] 2002-11 +scservp 3637/tcp # Customer Service Port [Jonathan_A_Zdziarsk] [Jonathan_A_Zdziarsk] 2002-11 +scservp 3637/udp # Customer Service Port [Jonathan_A_Zdziarsk] [Jonathan_A_Zdziarsk] 2002-11 +ehp-backup 3638/tcp # EHP Backup Protocol [Ed_Fair] [Ed_Fair] 2002-11 +ehp-backup 3638/udp # EHP Backup Protocol [Ed_Fair] [Ed_Fair] 2002-11 +xap-ha 3639/tcp # Extensible Automation [Mark_Harrison] [Mark_Harrison] 2002-11 +xap-ha 3639/udp # Extensible Automation [Mark_Harrison] [Mark_Harrison] 2002-11 +netplay-port1 3640/tcp # Netplay Port 1 +netplay-port1 3640/udp # Netplay Port 1 +netplay-port2 3641/tcp # Netplay Port 2 [Predrag_Filipovic] [Predrag_Filipovic] 2002-11 +netplay-port2 3641/udp # Netplay Port 2 [Predrag_Filipovic] [Predrag_Filipovic] 2002-11 +juxml-port 3642/tcp # Juxml Replication port [Colin_Reid] [Colin_Reid] 2002-11 +juxml-port 3642/udp # Juxml Replication port [Colin_Reid] [Colin_Reid] 2002-11 +audiojuggler 3643/tcp # AudioJuggler [Morten_Mertner] [Morten_Mertner] 2002-11 +audiojuggler 3643/udp # AudioJuggler [Morten_Mertner] [Morten_Mertner] 2002-11 +ssowatch 3644/tcp # ssowatch [Marie_France_Dubreui] [Marie_France_Dubreui] 2002-11 +ssowatch 3644/udp # ssowatch [Marie_France_Dubreui] [Marie_France_Dubreui] 2002-11 +cyc 3645/tcp # Cyc [Stephen_Reed] [Stephen_Reed] 2003-01 +cyc 3645/udp # Cyc [Stephen_Reed] [Stephen_Reed] 2003-01 +xss-srv-port 3646/tcp # XSS Server Port [Joe_Purcell] [Joe_Purcell] 2003-01 +xss-srv-port 3646/udp # XSS Server Port [Joe_Purcell] [Joe_Purcell] 2003-01 +splitlock-gw 3647/tcp # Splitlock Gateway [Andrew_Tune] [Andrew_Tune] 2003-01 +splitlock-gw 3647/udp # Splitlock Gateway [Andrew_Tune] [Andrew_Tune] 2003-01 +fjcp 3648/tcp # Fujitsu Cooperation Port [Kouji_Sugisawa] [Kouji_Sugisawa] 2003-01 +fjcp 3648/udp # Fujitsu Cooperation Port [Kouji_Sugisawa] [Kouji_Sugisawa] 2003-01 +nmmp 3649/tcp # Nishioka Miyuki Msg Protocol [TAKEDA_Hiroyuki] [TAKEDA_Hiroyuki] 2003-01 +nmmp 3649/udp # Nishioka Miyuki Msg Protocol [TAKEDA_Hiroyuki] [TAKEDA_Hiroyuki] 2003-01 +prismiq-plugin 3650/tcp # PRISMIQ VOD plug-in [Richard_Hodges_3] [Richard_Hodges_3] 2003-01 +prismiq-plugin 3650/udp # PRISMIQ VOD plug-in [Richard_Hodges_3] [Richard_Hodges_3] 2003-01 +xrpc-registry 3651/tcp # XRPC Registry [Slava_Monich] [Slava_Monich] 2003-01 +xrpc-registry 3651/udp # XRPC Registry [Slava_Monich] [Slava_Monich] 2003-01 +vxcrnbuport 3652/tcp # VxCR NBU Default Port [Boris_Star] [Boris_Star] 2003-01 +vxcrnbuport 3652/udp # VxCR NBU Default Port [Boris_Star] [Boris_Star] 2003-01 +tsp 3653/tcp # Tunnel Setup Protocol [Marc_Blanchet] [Marc_Blanchet] 2003-01 [RFC5572] +tsp 3653/udp # Tunnel Setup Protocol [Marc_Blanchet] [Marc_Blanchet] 2003-01 [RFC5572] +vaprtm 3654/tcp # VAP RealTime Messenger [Boris_Polevoy] [Boris_Polevoy] 2003-01 +vaprtm 3654/udp # VAP RealTime Messenger [Boris_Polevoy] [Boris_Polevoy] 2003-01 +abatemgr 3655/tcp # ActiveBatch Exec Agent +abatemgr 3655/udp # ActiveBatch Exec Agent +abatjss 3656/tcp # ActiveBatch Job Scheduler [Ben_Rosenberg] [Ben_Rosenberg] 2003-01 +abatjss 3656/udp # ActiveBatch Job Scheduler [Ben_Rosenberg] [Ben_Rosenberg] 2003-01 +immedianet-bcn 3657/tcp # ImmediaNet Beacon [Bill_Homan] [Bill_Homan] 2003-01 +immedianet-bcn 3657/udp # ImmediaNet Beacon [Bill_Homan] [Bill_Homan] 2003-01 +ps-ams 3658/tcp # PlayStation AMS (Secure) [Edgar_Alan_Tu] [Edgar_Alan_Tu] 2003-01 +ps-ams 3658/udp # PlayStation AMS (Secure) [Edgar_Alan_Tu] [Edgar_Alan_Tu] 2003-01 +apple-sasl 3659/tcp # Apple SASL [David_M_O_Rourke] [David_M_O_Rourke] 2003-01 +apple-sasl 3659/udp # Apple SASL [David_M_O_Rourke] [David_M_O_Rourke] 2003-01 +can-nds-ssl 3660/tcp # IBM Tivoli Directory Service +# using SSL +can-nds-ssl 3660/udp # IBM Tivoli Directory Service +can-ferret-ssl 3661/tcp # IBM Tivoli Directory Service [Nic_Catrambone] [Nic_Catrambone] 2003-01 +can-ferret-ssl 3661/udp # IBM Tivoli Directory Service [Nic_Catrambone] [Nic_Catrambone] 2003-01 +pserver 3662/tcp # pserver [Patrick_Furlong] [Patrick_Furlong] 2003-01 +pserver 3662/udp # pserver [Patrick_Furlong] [Patrick_Furlong] 2003-01 +dtp 3663/tcp # DIRECWAY Tunnel Protocol [John_Border] [John_Border] 2003-01 +dtp 3663/udp # DIRECWAY Tunnel Protocol [John_Border] [John_Border] 2003-01 +ups-engine 3664/tcp # UPS Engine Port +ups-engine 3664/udp # UPS Engine Port +ent-engine 3665/tcp # Enterprise Engine Port [Mike_Delgrosso] [Mike_Delgrosso] 2003-01 +ent-engine 3665/udp # Enterprise Engine Port [Mike_Delgrosso] [Mike_Delgrosso] 2003-01 +eserver-pap 3666/tcp # IBM eServer PAP [Dave_Gimpl] [Dave_Gimpl] 2003-01 +eserver-pap 3666/udp # IBM EServer PAP [Dave_Gimpl] [Dave_Gimpl] 2003-01 +infoexch 3667/tcp # IBM Information Exchange [Paul_Ford_Hutchinson] [Paul_Ford_Hutchinson] 2003-01 +infoexch 3667/udp # IBM Information Exchange [Paul_Ford_Hutchinson] [Paul_Ford_Hutchinson] 2003-01 +dell-rm-port 3668/tcp # Dell Remote Management [Bradley_Bransom] [Bradley_Bransom] 2003-01 +dell-rm-port 3668/udp # Dell Remote Management [Bradley_Bransom] [Bradley_Bransom] 2003-01 +casanswmgmt 3669/tcp # CA SAN Switch Management [Emre_Tunar] [Emre_Tunar] 2003-01 +casanswmgmt 3669/udp # CA SAN Switch Management [Emre_Tunar] [Emre_Tunar] 2003-01 +smile 3670/tcp # SMILE TCP/UDP Interface [Andre_Petras] [Andre_Petras] 2003-01 +smile 3670/udp # SMILE TCP/UDP Interface [Andre_Petras] [Andre_Petras] 2003-01 +efcp 3671/tcp # e Field Control (EIBnet) [Marc_Goossens] [Marc_Goossens] 2003-01 +efcp 3671/udp # e Field Control (EIBnet) [Marc_Goossens] [Marc_Goossens] 2003-01 +lispworks-orb 3672/tcp # LispWorks ORB [Lisp_Support] [Lisp_Support] +lispworks-orb 3672/udp # LispWorks ORB [Lisp_Support] [Lisp_Support] +mediavault-gui 3673/tcp # Openview Media Vault GUI [Stephen_Gold] [Stephen_Gold] 2003-01 +mediavault-gui 3673/udp # Openview Media Vault GUI [Stephen_Gold] [Stephen_Gold] 2003-01 +wininstall-ipc 3674/tcp # WinINSTALL IPC Port [Bill_Somerville] [Bill_Somerville] 2008-08-13 +wininstall-ipc 3674/udp # WinINSTALL IPC Port [Bill_Somerville] [Bill_Somerville] 2008-08-13 +calltrax 3675/tcp # CallTrax Data Port [Oliver_Bailey] [Oliver_Bailey] 2003-01 +calltrax 3675/udp # CallTrax Data Port [Oliver_Bailey] [Oliver_Bailey] 2003-01 +va-pacbase 3676/tcp # VisualAge Pacbase server [Dominique_Lelievre] [Dominique_Lelievre] 2003-01 +va-pacbase 3676/udp # VisualAge Pacbase server [Dominique_Lelievre] [Dominique_Lelievre] 2003-01 +roverlog 3677/tcp # RoverLog IPC [Tom_Mayo] [Tom_Mayo] 2003-01 +roverlog 3677/udp # RoverLog IPC [Tom_Mayo] [Tom_Mayo] 2003-01 +ipr-dglt 3678/tcp # DataGuardianLT [Bruce_Carlson] [Bruce_Carlson] 2003-01 +ipr-dglt 3678/udp # DataGuardianLT [Bruce_Carlson] [Bruce_Carlson] 2003-01 +# Escale (Newton 3679 tcp Newton Dock [Paul_Guyot] [Paul_Guyot] 2011-11-09 +# Dock) +# Escale (Newton 3679 udp Newton Dock [Paul_Guyot] [Paul_Guyot] 2011-11-09 +npds-tracker 3680/tcp # NPDS Tracker [Paul_Guyot] [Paul_Guyot] 2003-01 +npds-tracker 3680/udp # NPDS Tracker [Paul_Guyot] [Paul_Guyot] 2003-01 +bts-x73 3681/tcp # BTS X73 Port [Todd_Cooper] [Todd_Cooper] 2003-01 +bts-x73 3681/udp # BTS X73 Port [Todd_Cooper] [Todd_Cooper] 2003-01 +cas-mapi 3682/tcp # EMC SmartPackets-MAPI [Koen_Schoofs] [Koen_Schoofs] 2003-01 +cas-mapi 3682/udp # EMC SmartPackets-MAPI [Koen_Schoofs] [Koen_Schoofs] 2003-01 +bmc-ea 3683/tcp # BMC EDV/EA [Portnoy_Boxman] [Portnoy_Boxman] 2003-01 +bmc-ea 3683/udp # BMC EDV/EA [Portnoy_Boxman] [Portnoy_Boxman] 2003-01 +faxstfx-port 3684/tcp # FAXstfX [Alec_Carlson] [Alec_Carlson] 2003-01 +faxstfx-port 3684/udp # FAXstfX [Alec_Carlson] [Alec_Carlson] 2003-01 +dsx-agent 3685/tcp # DS Expert Agent [Jason_Lockett][Melanie_Kacerek] [Jason_Lockett][Melanie_Kacerek] 2008-12-16 +dsx-agent 3685/udp # DS Expert Agent [Jason_Lockett][Melanie_Kacerek] [Jason_Lockett][Melanie_Kacerek] 2008-12-16 +tnmpv2 3686/tcp # Trivial Network Management [Andrea_Premoli] [Andrea_Premoli] 2003-01 +tnmpv2 3686/udp # Trivial Network Management [Andrea_Premoli] [Andrea_Premoli] 2003-01 +simple-push 3687/tcp # simple-push +simple-push 3687/udp # simple-push +simple-push-s 3688/tcp # simple-push Secure [C_Enrique_Ortiz] [C_Enrique_Ortiz] 2003-01 +simple-push-s 3688/udp # simple-push Secure [C_Enrique_Ortiz] [C_Enrique_Ortiz] 2003-01 +daap 3689/tcp # Digital Audio Access [Amandeep_Jawa] [Amandeep_Jawa] 2003-01 Defined TXT keys: txtvers, Version, iTSh Version, Machine ID, +# Protocol (iTunes) Database ID, Machine Name, Password +daap 3689/udp # Digital Audio Access [Amandeep_Jawa] [Amandeep_Jawa] 2003-01 Defined TXT keys: txtvers, Version, iTSh Version, Machine ID, +svn 3690/tcp # Subversion [Greg_Hudson_2] [Greg_Hudson_2] 2003-01 +svn 3690/udp # Subversion [Greg_Hudson_2] [Greg_Hudson_2] 2003-01 +magaya-network 3691/tcp # Magaya Network Port [Jesus_David_Rodrigue] [Jesus_David_Rodrigue] 2003-02 +magaya-network 3691/udp # Magaya Network Port [Jesus_David_Rodrigue] [Jesus_David_Rodrigue] 2003-02 +intelsync 3692/tcp # Brimstone IntelSync [Davey_Taylor] [Davey_Taylor] 2003-02 +intelsync 3692/udp # Brimstone IntelSync [Davey_Taylor] [Davey_Taylor] 2003-02 +# 3693-3694 Unassigned 2007-04-05 +bmc-data-coll 3695/tcp # BMC Data Collection [Portnoy_Boxman] [Portnoy_Boxman] 2003-02 +bmc-data-coll 3695/udp # BMC Data Collection [Portnoy_Boxman] [Portnoy_Boxman] 2003-02 +telnetcpcd 3696/tcp # Telnet Com Port Control [Thomas_J_Pinkl] [Thomas_J_Pinkl] 2003-02 +telnetcpcd 3696/udp # Telnet Com Port Control [Thomas_J_Pinkl] [Thomas_J_Pinkl] 2003-02 +nw-license 3697/tcp # NavisWorks License System [Tim_Wiegand] [Tim_Wiegand] 2003-02 +nw-license 3697/udp # NavisWorks Licnese System [Tim_Wiegand] [Tim_Wiegand] 2003-02 +sagectlpanel 3698/tcp # SAGECTLPANEL [Mark_Gamble] [Mark_Gamble] 2003-02 +sagectlpanel 3698/udp # SAGECTLPANEL [Mark_Gamble] [Mark_Gamble] 2003-02 +kpn-icw 3699/tcp # Internet Call Waiting [B_J_Kortekaas] [B_J_Kortekaas] 2003-02 +kpn-icw 3699/udp # Internet Call Waiting [B_J_Kortekaas] [B_J_Kortekaas] 2003-02 +lrs-paging 3700/tcp # LRS NetPage [Geoffrey_Wossum] [Geoffrey_Wossum] 2003-02 +lrs-paging 3700/udp # LRS NetPage [Geoffrey_Wossum] [Geoffrey_Wossum] 2003-02 +netcelera 3701/tcp # NetCelera [Tarek_Nabhan] [Tarek_Nabhan] 2003-02 +netcelera 3701/udp # NetCelera [Tarek_Nabhan] [Tarek_Nabhan] 2003-02 +ws-discovery 3702/tcp # Web Service Discovery [Christian_Huitema_2] [Christian_Huitema_2] 2003-02 +ws-discovery 3702/udp # Web Service Discovery [Christian_Huitema_2] [Christian_Huitema_2] 2003-02 +adobeserver-3 3703/tcp # Adobe Server 3 +adobeserver-3 3703/udp # Adobe Server 3 +adobeserver-4 3704/tcp # Adobe Server 4 [Frank_Soetebeer] [Frank_Soetebeer] 2003-01 +adobeserver-4 3704/udp # Adobe Server 4 [Frank_Soetebeer] [Frank_Soetebeer] 2003-01 +adobeserver-5 3705/tcp # Adobe Server 5 [Bernd_Paradies] [Bernd_Paradies] 2008-01-14 +adobeserver-5 3705/udp # Adobe Server 5 [Bernd_Paradies] [Bernd_Paradies] 2008-01-14 +rt-event 3706/tcp # Real-Time Event Port +rt-event 3706/udp # Real-Time Event Port +rt-event-s 3707/tcp # Real-Time Event Secure Port [Terry_Gin] [Terry_Gin] 2003-02 +rt-event-s 3707/udp # Real-Time Event Secure Port [Terry_Gin] [Terry_Gin] 2003-02 +sun-as-iiops 3708/tcp # Sun App Svr - Naming [Abhijit_Kumar] [Abhijit_Kumar] 2005-11 +sun-as-iiops 3708/udp # Sun App Svr - Naming [Abhijit_Kumar] [Abhijit_Kumar] 2005-11 +ca-idms 3709/tcp # CA-IDMS Server [Dave_Ross] [Dave_Ross] +ca-idms 3709/udp # CA-IDMS Server [Dave_Ross] [Dave_Ross] +portgate-auth 3710/tcp # PortGate Authentication [Scott_Harris] [Scott_Harris] 2003-02 +portgate-auth 3710/udp # PortGate Authentication [Scott_Harris] [Scott_Harris] 2003-02 +edb-server2 3711/tcp # EBD Server 2 [Carlos_Portela] [Carlos_Portela] 2003-02 +edb-server2 3711/udp # EBD Server 2 [Carlos_Portela] [Carlos_Portela] 2003-02 +sentinel-ent 3712/tcp # Sentinel Enterprise [Ian_Gordon_2] [Ian_Gordon_2] 2003-03 +sentinel-ent 3712/udp # Sentinel Enterprise [Ian_Gordon_2] [Ian_Gordon_2] 2003-03 +tftps 3713/tcp # TFTP over TLS [Mark_mayernick] [Mark_mayernick] 2003-03 +tftps 3713/udp # TFTP over TLS [Mark_mayernick] [Mark_mayernick] 2003-03 +delos-dms 3714/tcp # DELOS Direct Messaging [Ekkehard_Morgenstern] [Ekkehard_Morgenstern] 2003-03 +delos-dms 3714/udp # DELOS Direct Messaging [Ekkehard_Morgenstern] [Ekkehard_Morgenstern] 2003-03 +anoto-rendezv 3715/tcp # Anoto Rendezvous Port [Ola_Sandstrom] [Ola_Sandstrom] 2003-03 +anoto-rendezv 3715/udp # Anoto Rendezvous Port [Ola_Sandstrom] [Ola_Sandstrom] 2003-03 +wv-csp-sms-cir 3716/tcp # WV CSP SMS CIR Channel +wv-csp-sms-cir 3716/udp # WV CSP SMS CIR Channel +wv-csp-udp-cir 3717/tcp # WV CSP UDP/IP CIR Channel [Jon_Ingi_Ingimundars] [Jon_Ingi_Ingimundars] 2003-03 +wv-csp-udp-cir 3717/udp # WV CSP UDP/IP CIR Channel [Jon_Ingi_Ingimundars] [Jon_Ingi_Ingimundars] 2003-03 +opus-services 3718/tcp # OPUS Server Port [Detlef_Stoever] [Detlef_Stoever] 2003-03 +opus-services 3718/udp # OPUS Server Port [Detlef_Stoever] [Detlef_Stoever] 2003-03 +itelserverport 3719/tcp # iTel Server Port [Mark_Hendricks] [Mark_Hendricks] 2003-03 +itelserverport 3719/udp # iTel Server Port [Mark_Hendricks] [Mark_Hendricks] 2003-03 +ufastro-instr 3720/tcp # UF Astro. Instr. Services [David_B_Hon] [David_B_Hon] 2003-03 +ufastro-instr 3720/udp # UF Astro. Instr. Services [David_B_Hon] [David_B_Hon] 2003-03 +xsync 3721/tcp # Xsync +xsync 3721/udp # Xsync +xserveraid 3722/tcp # Xserve RAID [Bob_Bradley] [Bob_Bradley] 2003-03 +xserveraid 3722/udp # Xserve RAID [Bob_Bradley] [Bob_Bradley] 2003-03 +sychrond 3723/tcp # Sychron Service Daemon [Robert_Marinelli] [Robert_Marinelli] 2003-03 +sychrond 3723/udp # Sychron Service Daemon [Robert_Marinelli] [Robert_Marinelli] 2003-03 +blizwow 3724/tcp # World of Warcraft [Domain_Tech] [Domain_Tech] 2005-04 +blizwow 3724/udp # World of Warcraft [Domain_Tech] [Domain_Tech] 2005-04 +na-er-tip 3725/tcp # Netia NA-ER Port [Jean_Pierre_Garcia] [Jean_Pierre_Garcia] 2003-04 +na-er-tip 3725/udp # Netia NA-ER Port [Jean_Pierre_Garcia] [Jean_Pierre_Garcia] 2003-04 +array-manager 3726/tcp # Xyratex Array Manager [David_A_Lethe] [David_A_Lethe] 2003-04 +array-manager 3726/udp # Xyartex Array Manager [David_A_Lethe] [David_A_Lethe] 2003-04 +e-mdu 3727/tcp # Ericsson Mobile Data Unit +e-mdu 3727/udp # Ericsson Mobile Data Unit +e-woa 3728/tcp # Ericsson Web on Air [Marco_Casole] [Marco_Casole] 2003-04 +e-woa 3728/udp # Ericsson Web on Air [Marco_Casole] [Marco_Casole] 2003-04 +fksp-audit 3729/tcp # Fireking Audit Port [Richard_Thurman] [Richard_Thurman] 2003-04 +fksp-audit 3729/udp # Fireking Audit Port [Richard_Thurman] [Richard_Thurman] 2003-04 +client-ctrl 3730/tcp # Client Control [Lawrence_W_Dunn] [Lawrence_W_Dunn] 2003-04 +client-ctrl 3730/udp # Client Control [Lawrence_W_Dunn] [Lawrence_W_Dunn] 2003-04 +smap 3731/tcp # Service Manager +smap 3731/udp # Service Manager +m-wnn 3732/tcp # Mobile Wnn [Yasunari_Yamashita] [Yasunari_Yamashita] 2003-04 +m-wnn 3732/udp # Mobile Wnn [Yasunari_Yamashita] [Yasunari_Yamashita] 2003-04 +multip-msg 3733/tcp # Multipuesto Msg Port [Felisa_Ares] [Felisa_Ares] 2003-04 +multip-msg 3733/udp # Multipuesto Msg Port [Felisa_Ares] [Felisa_Ares] 2003-04 +synel-data 3734/tcp # Synel Data Collection Port [David_Ashkenazi] [David_Ashkenazi] 2003-04 +synel-data 3734/udp # Synel Data Collection Port [David_Ashkenazi] [David_Ashkenazi] 2003-04 +pwdis 3735/tcp # Password Distribution [Robert_Erl] [Robert_Erl] 2003-04 +pwdis 3735/udp # Password Distribution [Robert_Erl] [Robert_Erl] 2003-04 +rs-rmi 3736/tcp # RealSpace RMI [Barry_McDarby] [Barry_McDarby] 2003-04 +rs-rmi 3736/udp # RealSpace RMI [Barry_McDarby] [Barry_McDarby] 2003-04 +xpanel 3737/tcp # XPanel Daemon [Lilian_Rudenco] [Lilian_Rudenco] 2009-03-04 +# 3737 udp Reserved +versatalk 3738/tcp # versaTalk Server Port [Dr_Kingsley_C_Nwos] [Dr_Kingsley_C_Nwos] 2003-04 +versatalk 3738/udp # versaTalk Server Port [Dr_Kingsley_C_Nwos] [Dr_Kingsley_C_Nwos] 2003-04 +launchbird-lm 3739/tcp # Launchbird LicenseManager [Tom_Hawkins] [Tom_Hawkins] 2003-04 +launchbird-lm 3739/udp # Launchbird LicenseManager [Tom_Hawkins] [Tom_Hawkins] 2003-04 +heartbeat 3740/tcp # Heartbeat Protocol [Jeroen_Massar] [Jeroen_Massar] 2003-04 +heartbeat 3740/udp # Heartbeat Protocol [Jeroen_Massar] [Jeroen_Massar] 2003-04 +wysdma 3741/tcp # WysDM Agent [Jim_McDonald] [Jim_McDonald] 2003-04 +wysdma 3741/udp # WysDM Agent [Jim_McDonald] [Jim_McDonald] 2003-04 +cst-port 3742/tcp # CST - Configuration & [Hai_Ou_Yang] [Hai_Ou_Yang] 2003-04 +# Service Tracker +cst-port 3742/udp # CST - Configuration & [Hai_Ou_Yang] [Hai_Ou_Yang] 2003-04 +ipcs-command 3743/tcp # IP Control Systems Ltd. [Paul_Anderson] [Paul_Anderson] 2003-04 +ipcs-command 3743/udp # IP Control Systems Ltd. [Paul_Anderson] [Paul_Anderson] 2003-04 +sasg 3744/tcp # SASG [Cristian_Petculescu_2] [Cristian_Petculescu_2] 2003-04 +sasg 3744/udp # SASG [Cristian_Petculescu_2] [Cristian_Petculescu_2] 2003-04 +gw-call-port 3745/tcp # GWRTC Call Port [Felisa_Ares] [Felisa_Ares] 2003-04 +gw-call-port 3745/udp # GWRTC Call Port [Felisa_Ares] [Felisa_Ares] 2003-04 +linktest 3746/tcp # LXPRO.COM LinkTest +linktest 3746/udp # LXPRO.COM LinkTest +linktest-s 3747/tcp # LXPRO.COM LinkTest SSL [Greg_Bailey] [Greg_Bailey] 2003-04 +linktest-s 3747/udp # LXPRO.COM LinkTest SSL [Greg_Bailey] [Greg_Bailey] 2003-04 +webdata 3748/tcp # webData [Michael_Whiteley] [Michael_Whiteley] 2003-04 +webdata 3748/udp # webData [Michael_Whiteley] [Michael_Whiteley] 2003-04 +cimtrak 3749/tcp # CimTrak [Robert_E_Johnson_II] [Robert_E_Johnson_II] 2003-04 +cimtrak 3749/udp # CimTrak [Robert_E_Johnson_II] [Robert_E_Johnson_II] 2003-04 +cbos-ip-port 3750/tcp # CBOS/IP ncapsalation port [Thomas_Dannemiller] [Thomas_Dannemiller] 2003-04 +cbos-ip-port 3750/udp # CBOS/IP ncapsalatoin port [Thomas_Dannemiller] [Thomas_Dannemiller] 2003-04 +gprs-cube 3751/tcp # CommLinx GPRS Cube [Peter_Johnson] [Peter_Johnson] 2003-04 +gprs-cube 3751/udp # CommLinx GPRS Cube [Peter_Johnson] [Peter_Johnson] 2003-04 +vipremoteagent 3752/tcp # Vigil-IP RemoteAgent [Bryan_Alvord] [Bryan_Alvord] 2003-04 +vipremoteagent 3752/udp # Vigil-IP RemoteAgent [Bryan_Alvord] [Bryan_Alvord] 2003-04 +nattyserver 3753/tcp # NattyServer Port [Akira_Saito] [Akira_Saito] 2003-04 +nattyserver 3753/udp # NattyServer Port [Akira_Saito] [Akira_Saito] 2003-04 +timestenbroker 3754/tcp # TimesTen Broker Port [David_Aspinwall] [David_Aspinwall] 2003-04 +timestenbroker 3754/udp # TimesTen Broker Port [David_Aspinwall] [David_Aspinwall] 2003-04 +sas-remote-hlp 3755/tcp # SAS Remote Help Server [Gary_T_Ciampa] [Gary_T_Ciampa] 2003-04 +sas-remote-hlp 3755/udp # SAS Remote Help Server [Gary_T_Ciampa] [Gary_T_Ciampa] 2003-04 +canon-capt 3756/tcp # Canon CAPT Port [Takashi_Okazawa] [Takashi_Okazawa] 2003-04 +canon-capt 3756/udp # Canon CAPT Port [Takashi_Okazawa] [Takashi_Okazawa] 2003-04 +grf-port 3757/tcp # GRF Server Port [Robert_Banfill] [Robert_Banfill] 2003-04 +grf-port 3757/udp # GRF Server Port [Robert_Banfill] [Robert_Banfill] 2003-04 +apw-registry 3758/tcp # apw RMI registry [Dan_Davis] [Dan_Davis] 2003-04 +apw-registry 3758/udp # apw RMI registry [Dan_Davis] [Dan_Davis] 2003-04 +exapt-lmgr 3759/tcp # Exapt License Manager [Christoph_Kukulies] [Christoph_Kukulies] 2003-04 +exapt-lmgr 3759/udp # Exapt License Manager [Christoph_Kukulies] [Christoph_Kukulies] 2003-04 +adtempusclient 3760/tcp # adTempus Client [Bill_Wingate] [Bill_Wingate] 2003-05 +adtempusclient 3760/udp # adTEmpus Client [Bill_Wingate] [Bill_Wingate] 2003-05 +gsakmp 3761/tcp # gsakmp port [RFC4535] +gsakmp 3761/udp # gsakmp port [RFC4535] +gbs-smp 3762/tcp # GBS SnapMail Protocol [Eric_Harris_Braun] [Eric_Harris_Braun] 2003-06 +gbs-smp 3762/udp # GBS SnapMail Protocol [Eric_Harris_Braun] [Eric_Harris_Braun] 2003-06 +xo-wave 3763/tcp # XO Wave Control Port [Bjorn_Dittmer_Roche] [Bjorn_Dittmer_Roche] 2003-06 +xo-wave 3763/udp # XO Wave Control Port [Bjorn_Dittmer_Roche] [Bjorn_Dittmer_Roche] 2003-06 +mni-prot-rout 3764/tcp # MNI Protected Routing [Tim_Behne] [Tim_Behne] 2003-06 +mni-prot-rout 3764/udp # MNI Protected Routing [Tim_Behne] [Tim_Behne] 2003-06 +rtraceroute 3765/tcp # Remote Traceroute [A_Blake_Cooper] [A_Blake_Cooper] 2003-06 +rtraceroute 3765/udp # Remote Traceroute [A_Blake_Cooper] [A_Blake_Cooper] 2003-06 +# 3766 Unassigned 2009-06-19 +listmgr-port 3767/tcp # ListMGR Port [Takashi_Kubota] [Takashi_Kubota] 2003-06 +listmgr-port 3767/udp # ListMGR Port [Takashi_Kubota] [Takashi_Kubota] 2003-06 +rblcheckd 3768/tcp # rblcheckd server daemon [Sabri_Berisha] [Sabri_Berisha] 2003-06 +rblcheckd 3768/udp # rblcheckd server daemon [Sabri_Berisha] [Sabri_Berisha] 2003-06 +haipe-otnk 3769/tcp # HAIPE Network Keying [Mike_Irani_2] [Mike_Irani_2] 2003-06 +haipe-otnk 3769/udp # HAIPE Network Keying [Mike_Irani_2] [Mike_Irani_2] 2003-06 +cindycollab 3770/tcp # Cinderella Collaboration [Ulrich_Kortenkamp] [Ulrich_Kortenkamp] 2003-06 +cindycollab 3770/udp # Cinderella Collaboration [Ulrich_Kortenkamp] [Ulrich_Kortenkamp] 2003-06 +paging-port 3771/tcp # RTP Paging Port [Patrick_Ferriter] [Patrick_Ferriter] 2003-06 +paging-port 3771/udp # RTP Paging Port [Patrick_Ferriter] [Patrick_Ferriter] 2003-06 +ctp 3772/tcp # Chantry Tunnel Protocol [Inderpreet_Singh] [Inderpreet_Singh] 2003-06 +ctp 3772/udp # Chantry Tunnel Protocol [Inderpreet_Singh] [Inderpreet_Singh] 2003-06 +ctdhercules 3773/tcp # ctdhercules [Carl_Banzhof] [Carl_Banzhof] 2003-06 +ctdhercules 3773/udp # ctdhercules [Carl_Banzhof] [Carl_Banzhof] 2003-06 +zicom 3774/tcp # ZICOM [Sabu_Das] [Sabu_Das] 2003-06 +zicom 3774/udp # ZICOM [Sabu_Das] [Sabu_Das] 2003-06 +ispmmgr 3775/tcp # ISPM Manager Port [Eric_Anderson] [Eric_Anderson] 2003-06 +ispmmgr 3775/udp # ISPM Manager Port [Eric_Anderson] [Eric_Anderson] 2003-06 +dvcprov-port 3776/tcp # Device Provisioning Port [Rob_Lehew] [Rob_Lehew] 2003-06 +dvcprov-port 3776/udp # Device Provisioning Port [Rob_Lehew] [Rob_Lehew] 2003-06 +jibe-eb 3777/tcp # Jibe EdgeBurst [Chap_Tippin] [Chap_Tippin] 2003-06 +jibe-eb 3777/udp # Jibe EdgeBurst [Chap_Tippin] [Chap_Tippin] 2003-06 +c-h-it-port 3778/tcp # Cutler-Hammer IT Port [Thomas_Ruchti] [Thomas_Ruchti] 2003-06 +c-h-it-port 3778/udp # Cutler-Hammer IT Port [Thomas_Ruchti] [Thomas_Ruchti] 2003-06 +cognima 3779/tcp # Cognima Replication [Ralph_Greenwell] [Ralph_Greenwell] 2003-06 +cognima 3779/udp # Cognima Replication [Ralph_Greenwell] [Ralph_Greenwell] 2003-06 +nnp 3780/tcp # Nuzzler Network Protocol [Andreas_Schwarz_2] [Andreas_Schwarz_2] 2003-06 +nnp 3780/udp # Nuzzler Network Protocol [Andreas_Schwarz_2] [Andreas_Schwarz_2] 2003-06 +abcvoice-port 3781/tcp # ABCvoice server port [Carlos_Gonzalez_Roma] [Carlos_Gonzalez_Roma] 2003-06 +abcvoice-port 3781/udp # ABCvoice server port [Carlos_Gonzalez_Roma] [Carlos_Gonzalez_Roma] 2003-06 +iso-tp0s 3782/tcp # Secure ISO TP0 port [Herbert_Falk] [Herbert_Falk] 2003-06 +iso-tp0s 3782/udp # Secure ISO TP0 port [Herbert_Falk] [Herbert_Falk] 2003-06 +bim-pem 3783/tcp # Impact Mgr./PEM Gateway [Walter_G_Giroir] [Walter_G_Giroir] 2003-07 +bim-pem 3783/udp # Impact Mgr./PEM Gateway [Walter_G_Giroir] [Walter_G_Giroir] 2003-07 +bfd-control 3784/tcp # BFD Control Protocol [RFC5881] +bfd-control 3784/udp # BFD Control Protocol [RFC5881] +bfd-echo 3785/tcp # BFD Echo Protocol [RFC5881] +bfd-echo 3785/udp # BFD Echo Protocol [RFC5881] +upstriggervsw 3786/tcp # VSW Upstrigger port [Mark_Tim_Junghanns] [Mark_Tim_Junghanns] 2003-07 +upstriggervsw 3786/udp # VSW Upstrigger port [Mark_Tim_Junghanns] [Mark_Tim_Junghanns] 2003-07 +fintrx 3787/tcp # Fintrx [Peter_G_L_Potgiese] [Peter_G_L_Potgiese] 2003-07 +fintrx 3787/udp # Fintrx [Peter_G_L_Potgiese] [Peter_G_L_Potgiese] 2003-07 +isrp-port 3788/tcp # SPACEWAY Routing port [Vaibhav_Kumar] [Vaibhav_Kumar] 2003-07 +isrp-port 3788/udp # SPACEWAY Routing port [Vaibhav_Kumar] [Vaibhav_Kumar] 2003-07 +remotedeploy 3789/tcp # RemoteDeploy Administration [Detlef_Rothe] [Detlef_Rothe] 2009-05-15 +# Port [July 2003] +remotedeploy 3789/udp # RemoteDeploy Administration [Detlef_Rothe] [Detlef_Rothe] 2009-05-15 +quickbooksrds 3790/tcp # QuickBooks RDS [Almira] [Almira] 2003-07 +quickbooksrds 3790/udp # QuickBooks RDS [Almira] [Almira] 2003-07 +tvnetworkvideo 3791/tcp # TV NetworkVideo Data port [Kevin_Brunner] [Kevin_Brunner] 2003-07 +tvnetworkvideo 3791/udp # TV NetworkVideo Data port [Kevin_Brunner] [Kevin_Brunner] 2003-07 +sitewatch 3792/tcp # e-Watch Corporation [John_M_Baird] [John_M_Baird] 2003-07 +# SiteWatch +sitewatch 3792/udp # e-Watch Corporation [John_M_Baird] [John_M_Baird] 2003-07 +dcsoftware 3793/tcp # DataCore Software [Andre_Cato] [Andre_Cato] 2003-07 +dcsoftware 3793/udp # DataCore Software [Andre_Cato] [Andre_Cato] 2003-07 +jaus 3794/tcp # JAUS Robots [Steven_B_Cliff] [Steven_B_Cliff] 2003-07 +jaus 3794/udp # JAUS Robots [Steven_B_Cliff] [Steven_B_Cliff] 2003-07 +myblast 3795/tcp # myBLAST Mekentosj port [Alexander_Griekspoor] [Alexander_Griekspoor] 2003-07 +myblast 3795/udp # myBLAST Mekentosj port [Alexander_Griekspoor] [Alexander_Griekspoor] 2003-07 +spw-dialer 3796/tcp # Spaceway Dialer [Patrick_Fisher] [Patrick_Fisher] 2003-07 +spw-dialer 3796/udp # Spaceway Dialer [Patrick_Fisher] [Patrick_Fisher] 2003-07 +idps 3797/tcp # idps [Jean_Francois_Rabass] [Jean_Francois_Rabass] 2003-07 +idps 3797/udp # idps [Jean_Francois_Rabass] [Jean_Francois_Rabass] 2003-07 +minilock 3798/tcp # Minilock [Daniel_Julio_Reyes] [Daniel_Julio_Reyes] 2003-08 +minilock 3798/udp # Minilock [Daniel_Julio_Reyes] [Daniel_Julio_Reyes] 2003-08 +radius-dynauth 3799/tcp # RADIUS Dynamic Authorization [RFC3576] +radius-dynauth 3799/udp # RADIUS Dynamic Authorization [RFC3576] +pwgpsi 3800/tcp # Print Services Interface [Harry_Lewis] [Harry_Lewis] 2003-05 +pwgpsi 3800/udp # Print Services Interface [Harry_Lewis] [Harry_Lewis] 2003-05 +ibm-mgr 3801/tcp # ibm manager service [Tim_Hahn] [Tim_Hahn] 2006-03 +ibm-mgr 3801/udp # ibm manager service [Tim_Hahn] [Tim_Hahn] 2006-03 +vhd 3802/tcp # VHD [Chris_Duncombe] [Chris_Duncombe] +vhd 3802/udp # VHD [Chris_Duncombe] [Chris_Duncombe] +soniqsync 3803/tcp # SoniqSync [Ryan_Melville] [Ryan_Melville] 2004-01 +soniqsync 3803/udp # SoniqSync [Ryan_Melville] [Ryan_Melville] 2004-01 +iqnet-port 3804/tcp # Harman IQNet Port [Bruce_Vander_Werf] [Bruce_Vander_Werf] 2004-02 +iqnet-port 3804/udp # Harman IQNet Port [Bruce_Vander_Werf] [Bruce_Vander_Werf] 2004-02 +tcpdataserver 3805/tcp # ThorGuard Server Port [Joel_E_Steiger] [Joel_E_Steiger] 2004-02 +tcpdataserver 3805/udp # ThorGuard Server Port [Joel_E_Steiger] [Joel_E_Steiger] 2004-02 +wsmlb 3806/tcp # Remote System Manager [Thomas_Fiege] [Thomas_Fiege] 2004-02 +wsmlb 3806/udp # Remote System Manager [Thomas_Fiege] [Thomas_Fiege] 2004-02 +spugna 3807/tcp # SpuGNA Communication Port [Samuele_Sequi] [Samuele_Sequi] 2004-02 +spugna 3807/udp # SpuGNA Communication Port [Samuele_Sequi] [Samuele_Sequi] 2004-02 +sun-as-iiops-ca 3808/tcp # Sun App Svr-IIOPClntAuth [Abhijit_Kumar] [Abhijit_Kumar] 2005-11 +sun-as-iiops-ca 3808/udp # Sun App Svr-IIOPClntAuth [Abhijit_Kumar] [Abhijit_Kumar] 2005-11 +apocd 3809/tcp # Java Desktop System [Geoff_Higgins] [Geoff_Higgins] 2006-03 +# Configuration Agent +apocd 3809/udp # Java Desktop System [Geoff_Higgins] [Geoff_Higgins] 2006-03 +wlanauth 3810/tcp # WLAN AS server [Bianling_Zhang] [Bianling_Zhang] 2004-02 +wlanauth 3810/udp # WLAN AS server [Bianling_Zhang] [Bianling_Zhang] 2004-02 +amp 3811/tcp # AMP [Northon_Rodrigues] [Northon_Rodrigues] 2004-02 +amp 3811/udp # AMP [Northon_Rodrigues] [Northon_Rodrigues] 2004-02 +neto-wol-server 3812/tcp # netO WOL Server [Martin_Bestmann_2] [Martin_Bestmann_2] 2004-03 +neto-wol-server 3812/udp # netO WOL Server [Martin_Bestmann_2] [Martin_Bestmann_2] 2004-03 +rap-ip 3813/tcp # Rhapsody Interface Protocol [Paul_Zander] [Paul_Zander] 2004-03 +rap-ip 3813/udp # Rhapsody Interface Protocol [Paul_Zander] [Paul_Zander] 2004-03 +neto-dcs 3814/tcp # netO DCS [Martin_Bestmann_2] [Martin_Bestmann_2] 2004-03 +neto-dcs 3814/udp # netO DCS [Martin_Bestmann_2] [Martin_Bestmann_2] 2004-03 +lansurveyorxml 3815/tcp # LANsurveyor XML [Michael_Swan] [Michael_Swan] 2004-04 +lansurveyorxml 3815/udp # LANsurveyor XML [Michael_Swan] [Michael_Swan] 2004-04 +sunlps-http 3816/tcp # Sun Local Patch Server [Barry_Greenberg] [Barry_Greenberg] 2004-04 +sunlps-http 3816/udp # Sun Local Patch Server [Barry_Greenberg] [Barry_Greenberg] 2004-04 +tapeware 3817/tcp # Yosemite Tech Tapeware [Luke_Dion] [Luke_Dion] 2004-04 +tapeware 3817/udp # Yosemite Tech Tapeware [Luke_Dion] [Luke_Dion] 2004-04 +crinis-hb 3818/tcp # Crinis Heartbeat [Eric_McMurry] [Eric_McMurry] 2004-04 +crinis-hb 3818/udp # Crinis Heartbeat [Eric_McMurry] [Eric_McMurry] 2004-04 +epl-slp 3819/tcp # EPL Sequ Layer Protocol [Hans_Weibel] [Hans_Weibel] 2004-10 +epl-slp 3819/udp # EPL Sequ Layer Protocol [Hans_Weibel] [Hans_Weibel] 2004-10 +scp 3820/tcp # Siemens AuD SCP [Johann_Arnold] [Johann_Arnold] 2004-10 +scp 3820/udp # Siemens AuD SCP [Johann_Arnold] [Johann_Arnold] 2004-10 +pmcp 3821/tcp # ATSC PMCP Standard [Graham_Jones] [Graham_Jones] 2004-11 +pmcp 3821/udp # ATSC PMCP Standard [Graham_Jones] [Graham_Jones] 2004-11 +acp-discovery 3822/tcp # Compute Pool Discovery +acp-discovery 3822/udp # Compute Pool Discovery +acp-conduit 3823/tcp # Compute Pool Conduit +acp-conduit 3823/udp # Compute Pool Conduit +acp-policy 3824/tcp # Compute Pool Policy [Andy_Belk_2] [Andy_Belk_2] 2005-02 +acp-policy 3824/udp # Compute Pool Policy [Andy_Belk_2] [Andy_Belk_2] 2005-02 +ffserver 3825/tcp # Antera FlowFusion Process [Armin_Liebchen] [Armin_Liebchen] 2007-06 +# Simulation +ffserver 3825/udp # Antera FlowFusion Process [Armin_Liebchen] [Armin_Liebchen] 2007-06 +warmux 3826/tcp # WarMUX game server [Christophe_Gisquet] [Christophe_Gisquet] 2011-05-26 +warmux 3826/udp # WarMUX game server [Christophe_Gisquet] [Christophe_Gisquet] 2011-05-26 +netmpi 3827/tcp # Netadmin Systems MPI service [G_Runfeldt] [G_Runfeldt] 2007-07-10 +netmpi 3827/udp # Netadmin Systems MPI service [G_Runfeldt] [G_Runfeldt] 2007-07-10 +neteh 3828/tcp # Netadmin Systems Event +# Handler +neteh 3828/udp # Netadmin Systems Event +neteh-ext 3829/tcp # Netadmin Systems Event [Jonas_Krogell] [Jonas_Krogell] 2007-07-10 +# Handler External +neteh-ext 3829/udp # Netadmin Systems Event [Jonas_Krogell] [Jonas_Krogell] 2007-07-10 +cernsysmgmtagt 3830/tcp # Cerner System Management [Mike_Craft] [Mike_Craft] 2008-01-29 +# Agent +cernsysmgmtagt 3830/udp # Cerner System Management [Mike_Craft] [Mike_Craft] 2008-01-29 +dvapps 3831/tcp # Docsvault Application [Ketul_Patel] [Ketul_Patel] 2006-10 +dvapps 3831/udp # Docsvault Application [Ketul_Patel] [Ketul_Patel] 2006-10 +xxnetserver 3832/tcp # xxNETserver [XXT_LLC] [Matt_Ferrari] 2006-10 2012-07-12 +xxnetserver 3832/udp # xxNETserver [XXT_LLC] [Matt_Ferrari] 2006-10 2012-07-12 +aipn-auth 3833/tcp # AIPN LS Authentication [Qiang_Zhang] [Qiang_Zhang] 2006-10 +aipn-auth 3833/udp # AIPN LS Authentication [Qiang_Zhang] [Qiang_Zhang] 2006-10 +spectardata 3834/tcp # Spectar Data Stream Service +spectardata 3834/udp # Spectar Data Stream Service +spectardb 3835/tcp # Spectar Database Rights [Jan_Rutger_Voorhorst] [Jan_Rutger_Voorhorst] 2006-10 +spectardb 3835/udp # Spectar Database Rights [Jan_Rutger_Voorhorst] [Jan_Rutger_Voorhorst] 2006-10 +markem-dcp 3836/tcp # MARKEM NEXTGEN DCP +markem-dcp 3836/udp # MARKEM NEXTGEN DCP +mkm-discovery 3837/tcp # MARKEM Auto-Discovery [Vadym_Kargin] [Vadym_Kargin] 2005-08 +mkm-discovery 3837/udp # MARKEM Auto-Discovery [Vadym_Kargin] [Vadym_Kargin] 2005-08 +sos 3838/tcp # Scito Object Server [Arno_Klaassen] [Arno_Klaassen] 2003-11 +sos 3838/udp # Scito Object Server [Arno_Klaassen] [Arno_Klaassen] 2003-11 +amx-rms 3839/tcp # AMX Resource Management [Ron_Barber] [Ron_Barber] 2003-11 +# Suite +amx-rms 3839/udp # AMX Resource Management [Ron_Barber] [Ron_Barber] 2003-11 +flirtmitmir 3840/tcp # www.FlirtMitMir.de [Carsten_Falticska] [Carsten_Falticska] 2003-11 +flirtmitmir 3840/udp # www.FlirtMitMir.de [Carsten_Falticska] [Carsten_Falticska] 2003-11 +zfirm-shiprush3 3841/tcp # Z-Firm ShipRush v3 [Rafael_Zimberoff] [Rafael_Zimberoff] 2003-11 +zfirm-shiprush3 3841/udp # Z-Firm ShipRush v3 [Rafael_Zimberoff] [Rafael_Zimberoff] 2003-11 +nhci 3842/tcp # NHCI status port [Eric_Welch_2] [Eric_Welch_2] 2003-11 +nhci 3842/udp # NHCI status port [Eric_Welch_2] [Eric_Welch_2] 2003-11 +quest-agent 3843/tcp # Quest Common Agent [Peter_Maher] [Peter_Maher] 2003-11 +quest-agent 3843/udp # Quest Common Agent [Peter_Maher] [Peter_Maher] 2003-11 +rnm 3844/tcp # RNM [sn_w_of_renegade_lab] [sn_w_of_renegade_lab] 2003-11 +rnm 3844/udp # RNM [sn_w_of_renegade_lab] [sn_w_of_renegade_lab] 2003-11 +v-one-spp 3845/tcp # V-ONE Single Port Proxy [Daniel_Becker_3] [Daniel_Becker_3] +v-one-spp 3845/udp # V-ONE Single Port Proxy [Daniel_Becker_3] [Daniel_Becker_3] +an-pcp 3846/tcp # Astare Network PCP [Tony_Gulino] [Tony_Gulino] 2003-08 +an-pcp 3846/udp # Astare Network PCP [Tony_Gulino] [Tony_Gulino] 2003-08 +msfw-control 3847/tcp # MS Firewall Control [Oren_Trutner] [Oren_Trutner] 2003-08 +msfw-control 3847/udp # MS Firewall Control [Oren_Trutner] [Oren_Trutner] 2003-08 +item 3848/tcp # IT Environmental Monitor [Keith_Wright] [Keith_Wright] 2003-08 +item 3848/udp # IT Environmental Monitor [Keith_Wright] [Keith_Wright] 2003-08 +spw-dnspreload 3849/tcp # SPACEWAY DNS Preload [Daniel_Friedman] [Daniel_Friedman] 2003-08 +spw-dnspreload 3849/udp # SPACEWAY DNS Prelaod [Daniel_Friedman] [Daniel_Friedman] 2003-08 +qtms-bootstrap 3850/tcp # QTMS Bootstrap Protocol [Phil_Willis] [Phil_Willis] 2003-08 +qtms-bootstrap 3850/udp # QTMS Bootstrap Protocol [Phil_Willis] [Phil_Willis] 2003-08 +spectraport 3851/tcp # SpectraTalk Port [Madhav_Karhade] [Madhav_Karhade] 2003-08 +spectraport 3851/udp # SpectraTalk Port [Madhav_Karhade] [Madhav_Karhade] 2003-08 +sse-app-config 3852/tcp # SSE App Configuration [Tim_Wilson] [Tim_Wilson] 2003-08 +sse-app-config 3852/udp # SSE App Configuration [Tim_Wilson] [Tim_Wilson] 2003-08 +sscan 3853/tcp # SONY scanning protocol [Takashi_Aihara] [Takashi_Aihara] 2003-08 +sscan 3853/udp # SONY scanning protocol [Takashi_Aihara] [Takashi_Aihara] 2003-08 +stryker-com 3854/tcp # Stryker Comm Port [Andrew_Schultz] [Andrew_Schultz] 2003-08 +stryker-com 3854/udp # Stryker Comm Port [Andrew_Schultz] [Andrew_Schultz] 2003-08 +opentrac 3855/tcp # OpenTRAC [Scott_Miller] [Scott_Miller] 2003-08 +opentrac 3855/udp # OpenTRAC [Scott_Miller] [Scott_Miller] 2003-08 +informer 3856/tcp # INFORMER [Filippo_Fadda] [Filippo_Fadda] 2003-08 +informer 3856/udp # INFORMER [Filippo_Fadda] [Filippo_Fadda] 2003-08 +trap-port 3857/tcp # Trap Port [Norm_Freedman] [Norm_Freedman] 2003-08 +trap-port 3857/udp # Trap Port [Norm_Freedman] [Norm_Freedman] 2003-08 +trap-port-mom 3858/tcp # Trap Port MOM [Norm_Freedman] [Norm_Freedman] 2003-08 +trap-port-mom 3858/udp # Trap Port MOM [Norm_Freedman] [Norm_Freedman] 2003-08 +nav-port 3859/tcp # Navini Port [Chris_Sanders] [Chris_Sanders] 2003-08 +nav-port 3859/udp # Navini Port [Chris_Sanders] [Chris_Sanders] 2003-08 +sasp 3860/tcp # Server/Application State [Alan_Bivens] [Alan_Bivens] 2003-08 +# Protocol (SASP) +sasp 3860/udp # Server/Application State [Alan_Bivens] [Alan_Bivens] 2003-08 +winshadow-hd 3861/tcp # winShadow Host Discovery [Shu_Wei_Tan] [Shu_Wei_Tan] 2003-03 +winshadow-hd 3861/udp # winShadow Host Discovery [Shu_Wei_Tan] [Shu_Wei_Tan] 2003-03 +giga-pocket 3862/tcp # GIGA-POCKET [Yoshikazu_Watanabe] [Yoshikazu_Watanabe] +giga-pocket 3862/udp # GIGA-POCKET [Yoshikazu_Watanabe] [Yoshikazu_Watanabe] +asap-tcp 3863/tcp # asap tcp port +asap-udp 3863/udp # asap udp port [RFC5352] +asap-sctp 3863/sctp # asap sctp [RFC5352] +asap-tcp-tls 3864/tcp # asap/tls tcp port [RFC5352] +# 3864 udp Reserved This entry has been removed on 2006-06-23. +asap-sctp-tls 3864/sctp # asap-sctp/tls [RFC5352] +xpl 3865/tcp # xpl automation protocol [Ian_Lowe] [Ian_Lowe] 2003-08 +xpl 3865/udp # xpl automation protocol [Ian_Lowe] [Ian_Lowe] 2003-08 +dzdaemon 3866/tcp # Sun SDViz DZDAEMON Port [Kevin_Rushforth] [Kevin_Rushforth] 2003-08 +dzdaemon 3866/udp # Sun SDViz DZDAEMON Port [Kevin_Rushforth] [Kevin_Rushforth] 2003-08 +dzoglserver 3867/tcp # Sun SDViz DZOGLSERVER Port [Kevin_Rushforth] [Kevin_Rushforth] 2003-08 +dzoglserver 3867/udp # Sun SDViz DZOGLSERVER Port [Kevin_Rushforth] [Kevin_Rushforth] 2003-08 +diameter 3868/tcp # DIAMETER +# 3868 udp Reserved +diameter 3868/sctp # DIAMETER [RFC3588] +ovsam-mgmt 3869/tcp # hp OVSAM MgmtServer Disco [Mike_Pontillo] [Mike_Pontillo] 2003-08 +ovsam-mgmt 3869/udp # hp OVSAM MgmtServer Disco [Mike_Pontillo] [Mike_Pontillo] 2003-08 +ovsam-d-agent 3870/tcp # hp OVSAM HostAgent Disco [Mike_Pontillo] [Mike_Pontillo] 2003-08 +ovsam-d-agent 3870/udp # hp OVSAM HostAgent Disco [Mike_Pontillo] [Mike_Pontillo] 2003-08 +avocent-adsap 3871/tcp # Avocent DS Authorization [Eduardo_Fernandez] [Eduardo_Fernandez] 2003-08 +avocent-adsap 3871/udp # Avocent DS Authorization [Eduardo_Fernandez] [Eduardo_Fernandez] 2003-08 +oem-agent 3872/tcp # OEM Agent [Narain_Jagathesan] [Narain_Jagathesan] 2003-11 +oem-agent 3872/udp # OEM Agent [Narain_Jagathesan] [Narain_Jagathesan] 2003-11 +fagordnc 3873/tcp # fagordnc [Luis_Zugasti] [Luis_Zugasti] 2003-11 +fagordnc 3873/udp # fagordnc [Luis_Zugasti] [Luis_Zugasti] 2003-11 +sixxsconfig 3874/tcp # SixXS Configuration [Jeroen_Massar] [Jeroen_Massar] 2003-11 +sixxsconfig 3874/udp # SixXS Configuration [Jeroen_Massar] [Jeroen_Massar] 2003-11 +pnbscada 3875/tcp # PNBSCADA [Philip_N_Bergstress] [Philip_N_Bergstress] +pnbscada 3875/udp # PNBSCADA [Philip_N_Bergstress] [Philip_N_Bergstress] +# DirectoryLockdown Agent +# +dl-agent 3876/tcp # IANA assigned this [Jason_Lockett][Melanie_Kacerek] [Jason_Lockett][Melanie_Kacerek] 2008-12-16 +# "dl_agent". +# This entry is an alias to "dl-agent". This entry is now +dl_agent 3876/tcp # DirectoryLockdown Agent [Jason_Lockett][Melanie_Kacerek] [Jason_Lockett][Melanie_Kacerek] 2008-12-16 historic, not usable for use with many common service +# +dl-agent 3876/udp # IANA assigned this [Jason_Lockett][Melanie_Kacerek] [Jason_Lockett][Melanie_Kacerek] 2008-12-16 +dl_agent 3876/udp # DirectoryLockdown Agent [Jason_Lockett][Melanie_Kacerek] [Jason_Lockett][Melanie_Kacerek] 2008-12-16 historic, not usable for use with many common service +xmpcr-interface 3877/tcp # XMPCR Interface Port [Christopher_Carlson] [Christopher_Carlson] 2003-10 +xmpcr-interface 3877/udp # XMPCR Interface Port [Christopher_Carlson] [Christopher_Carlson] 2003-10 +fotogcad 3878/tcp # FotoG CAD interface [Jason_Szabo] [Jason_Szabo] 2003-10 +fotogcad 3878/udp # FotoG CAD interface [Jason_Szabo] [Jason_Szabo] 2003-10 +appss-lm 3879/tcp # appss license manager [Peter_Krueger] [Peter_Krueger] 2003-10 +appss-lm 3879/udp # appss license manager [Peter_Krueger] [Peter_Krueger] 2003-10 +igrs 3880/tcp # IGRS [Huang_Jingnan] [Huang_Jingnan] 2003-10 +igrs 3880/udp # IGRS [Huang_Jingnan] [Huang_Jingnan] 2003-10 +idac 3881/tcp # Data Acquisition and Control [Chatziandreoglou_Chr] [Chatziandreoglou_Chr] 2003-10 +idac 3881/udp # Data Acquisition and Control [Chatziandreoglou_Chr] [Chatziandreoglou_Chr] 2003-10 +msdts1 3882/tcp # DTS Service Port [Sergei_Ivanov] [Sergei_Ivanov] 2003-10 +msdts1 3882/udp # DTS Service Port [Sergei_Ivanov] [Sergei_Ivanov] 2003-10 +vrpn 3883/tcp # VR Peripheral Network [Russell_M_Taylor_II] [Russell_M_Taylor_II] 2003-10 +vrpn 3883/udp # VR Peripheral Network [Russell_M_Taylor_II] [Russell_M_Taylor_II] 2003-10 +softrack-meter 3884/tcp # SofTrack Metering [John_T_McCann] [John_T_McCann] 2003-10 +softrack-meter 3884/udp # SofTrack Metering [John_T_McCann] [John_T_McCann] 2003-10 +topflow-ssl 3885/tcp # TopFlow SSL [Ken_Nelson] [Ken_Nelson] +topflow-ssl 3885/udp # TopFlow SSL [Ken_Nelson] [Ken_Nelson] +nei-management 3886/tcp # NEI management port [Kevin_Murphy_2] [Kevin_Murphy_2] 2003-10 +nei-management 3886/udp # NEI management port [Kevin_Murphy_2] [Kevin_Murphy_2] 2003-10 +ciphire-data 3887/tcp # Ciphire Data Transport [Lars_Eilebrecht] [Lars_Eilebrecht] 2003-10 +ciphire-data 3887/udp # Ciphire Data Transport [Lars_Eilebrecht] [Lars_Eilebrecht] 2003-10 +ciphire-serv 3888/tcp # Ciphire Services [Lars_Eilebrecht] [Lars_Eilebrecht] 2003-10 +ciphire-serv 3888/udp # Ciphire Services [Lars_Eilebrecht] [Lars_Eilebrecht] 2003-10 +dandv-tester 3889/tcp # D and V Tester Control Port [Voiko_Loukanov] [Voiko_Loukanov] 2003-10 +dandv-tester 3889/udp # D and V Tester Control Port [Voiko_Loukanov] [Voiko_Loukanov] 2003-10 +ndsconnect 3890/tcp # Niche Data Server Connect [Roland_Schneider] [Roland_Schneider] 2003-10 +ndsconnect 3890/udp # Niche Data Server Connect [Roland_Schneider] [Roland_Schneider] 2003-10 +rtc-pm-port 3891/tcp # Oracle RTC-PM port [PV_Shivkumar] [PV_Shivkumar] 2003-10 +rtc-pm-port 3891/udp # Oracle RTC-PM port [PV_Shivkumar] [PV_Shivkumar] 2003-10 +pcc-image-port 3892/tcp # PCC-image-port [Shiro_Tamoto] [Shiro_Tamoto] 2003-10 +pcc-image-port 3892/udp # PCC-image-port [Shiro_Tamoto] [Shiro_Tamoto] 2003-10 +cgi-starapi 3893/tcp # CGI StarAPI Server [Garry_Moore] [Garry_Moore] 2003-10 +cgi-starapi 3893/udp # CGI StarAPI Server [Garry_Moore] [Garry_Moore] 2003-10 +syam-agent 3894/tcp # SyAM Agent Port [Michael_Daniele] [Michael_Daniele] 2003-10 +syam-agent 3894/udp # SyAM Agent Port [Michael_Daniele] [Michael_Daniele] 2003-10 +syam-smc 3895/tcp # SyAm SMC Service Port [Michael_Daniele] [Michael_Daniele] 2003-10 +syam-smc 3895/udp # SyAm SMC Service Port [Michael_Daniele] [Michael_Daniele] 2003-10 +sdo-tls 3896/tcp # Simple Distributed Objects [Alexander_Philippou] [Alexander_Philippou] 2003-10 +# over TLS +sdo-tls 3896/udp # Simple Distributed Objects [Alexander_Philippou] [Alexander_Philippou] 2003-10 +sdo-ssh 3897/tcp # Simple Distributed Objects [Alexander_Philippou] [Alexander_Philippou] 2003-10 +# over SSH +sdo-ssh 3897/udp # Simple Distributed Objects [Alexander_Philippou] [Alexander_Philippou] 2003-10 +senip 3898/tcp # IAS, Inc. SmartEye NET [Matt_Nowicki] [Matt_Nowicki] 2003-10 +# Internet Protocol +senip 3898/udp # IAS, Inc. SmartEye NET [Matt_Nowicki] [Matt_Nowicki] 2003-10 +itv-control 3899/tcp # ITV Port [Alex_Nicu] [Alex_Nicu] 2003-10 +itv-control 3899/udp # ITV Port [Alex_Nicu] [Alex_Nicu] 2003-10 +# Unidata UDT OS +# +udt-os 3900/tcp # IANA assigned this [James_Powell] [James_Powell] +udt_os 3900/tcp # Unidata UDT OS [James_Powell] [James_Powell] historic, not usable for use with many common service +# +udt-os 3900/udp # IANA assigned this [James_Powell] [James_Powell] +udt_os 3900/udp # Unidata UDT OS [James_Powell] [James_Powell] historic, not usable for use with many common service +nimsh 3901/tcp # NIM Service Handler [Paul_B_Finley] [Paul_B_Finley] 2003-10 +nimsh 3901/udp # NIM Service Handler [Paul_B_Finley] [Paul_B_Finley] 2003-10 +nimaux 3902/tcp # NIMsh Auxiliary Port [Paul_B_Finley] [Paul_B_Finley] 2003-10 +nimaux 3902/udp # NIMsh Auxiliary Port [Paul_B_Finley] [Paul_B_Finley] 2003-10 +charsetmgr 3903/tcp # CharsetMGR [Tatsuya_Ueda] [Tatsuya_Ueda] 2003-10 +charsetmgr 3903/udp # CharsetMGR [Tatsuya_Ueda] [Tatsuya_Ueda] 2003-10 +omnilink-port 3904/tcp # Arnet Omnilink Port [Ronen_Shaul] [Ronen_Shaul] 2003-10 +omnilink-port 3904/udp # Arnet Omnilink Port [Ronen_Shaul] [Ronen_Shaul] 2003-10 +mupdate 3905/tcp # Mailbox Update (MUPDATE) [RFC3656] +mupdate 3905/udp # Mailbox Update (MUPDATE) [RFC3656] +topovista-data 3906/tcp # TopoVista elevation data [Gregg_Townsend] [Gregg_Townsend] 2003-11 +topovista-data 3906/udp # TopoVista elevation data [Gregg_Townsend] [Gregg_Townsend] 2003-11 +imoguia-port 3907/tcp # Imoguia Port [Emidio_Cunha] [Emidio_Cunha] 2003-11 +imoguia-port 3907/udp # Imoguia Port [Emidio_Cunha] [Emidio_Cunha] 2003-11 +hppronetman 3908/tcp # HP Procurve NetManagement [Devon_Dawson] [Devon_Dawson] 2003-11 +hppronetman 3908/udp # HP Procurve NetManagement [Devon_Dawson] [Devon_Dawson] 2003-11 +surfcontrolcpa 3909/tcp # SurfControl CPA [Hywel_Morgan] [Hywel_Morgan] 2003-11 +surfcontrolcpa 3909/udp # SurfControl CPA [Hywel_Morgan] [Hywel_Morgan] 2003-11 +prnrequest 3910/tcp # Printer Request Port [Brett_Green] [Brett_Green] 2003-11 +prnrequest 3910/udp # Printer Request Port [Brett_Green] [Brett_Green] 2003-11 +prnstatus 3911/tcp # Printer Status Port [Brett_Green] [Brett_Green] 2003-11 +prnstatus 3911/udp # Printer Status Port [Brett_Green] [Brett_Green] 2003-11 +gbmt-stars 3912/tcp # Global Maintech Stars [Harry_Goldschmitt] [Harry_Goldschmitt] 2003-11 +gbmt-stars 3912/udp # Global Maintech Stars [Harry_Goldschmitt] [Harry_Goldschmitt] 2003-11 +listcrt-port 3913/tcp # ListCREATOR Port [Tomokazu_Asai] [Tomokazu_Asai] 2003-11 +listcrt-port 3913/udp # ListCREATOR Port [Tomokazu_Asai] [Tomokazu_Asai] 2003-11 +listcrt-port-2 3914/tcp # ListCREATOR Port 2 [Tomokazu_Asai] [Tomokazu_Asai] 2003-11 +listcrt-port-2 3914/udp # ListCREATOR Port 2 [Tomokazu_Asai] [Tomokazu_Asai] 2003-11 +agcat 3915/tcp # Auto-Graphics Cataloging [Paul_Cope] [Paul_Cope] 2003-11 +agcat 3915/udp # Auto-Graphics Cataloging [Paul_Cope] [Paul_Cope] 2003-11 +wysdmc 3916/tcp # WysDM Controller [Jim_McDonald_2] [Jim_McDonald_2] 2003-11 +wysdmc 3916/udp # WysDM Controller [Jim_McDonald_2] [Jim_McDonald_2] 2003-11 +aftmux 3917/tcp # AFT multiplex port [Alfred_Schmidt] [Alfred_Schmidt] 2003-11 +aftmux 3917/udp # AFT multiples port [Alfred_Schmidt] [Alfred_Schmidt] 2003-11 +pktcablemmcops 3918/tcp # PacketCableMultimediaCOPS [Eric_Rosenfeld] [Eric_Rosenfeld] 2003-11 +pktcablemmcops 3918/udp # PacketCableMultimediaCOPS [Eric_Rosenfeld] [Eric_Rosenfeld] 2003-11 +hyperip 3919/tcp # HyperIP [Dave_Reiland] [Dave_Reiland] 2003-11 +hyperip 3919/udp # HyperIP [Dave_Reiland] [Dave_Reiland] 2003-11 +exasoftport1 3920/tcp # Exasoft IP Port [Alan_Malik] [Alan_Malik] 2003-11 +exasoftport1 3920/udp # Exasoft IP Port [Alan_Malik] [Alan_Malik] 2003-11 +herodotus-net 3921/tcp # Herodotus Net [Adam_Gawne_Cain] [Adam_Gawne_Cain] 2003-11 +herodotus-net 3921/udp # Herodotus Net [Adam_Gawne_Cain] [Adam_Gawne_Cain] 2003-11 +sor-update 3922/tcp # Soronti Update Port [Carleton_Watkins] [Carleton_Watkins] 2003-11 +sor-update 3922/udp # Soronti Update Port [Carleton_Watkins] [Carleton_Watkins] 2003-11 +symb-sb-port 3923/tcp # Symbian Service Broker [Ian_McDowall] [Ian_McDowall] 2003-11 +symb-sb-port 3923/udp # Symbian Service Broker [Ian_McDowall] [Ian_McDowall] 2003-11 +mpl-gprs-port 3924/tcp # MPL_GPRS_PORT [David_Barrass_2] [David_Barrass_2] 2003-11 +mpl-gprs-port 3924/udp # MPL_GPRS_Port [David_Barrass_2] [David_Barrass_2] 2003-11 +zmp 3925/tcp # Zoran Media Port [Gerard_Cerchio] [Gerard_Cerchio] 2003-11 +zmp 3925/udp # Zoran Media Port [Gerard_Cerchio] [Gerard_Cerchio] 2003-11 +winport 3926/tcp # WINPort [Alwin_Egger] [Alwin_Egger] 2003-11 +winport 3926/udp # WINPort [Alwin_Egger] [Alwin_Egger] 2003-11 +natdataservice 3927/tcp # ScsTsr [Ghanshyam_Patel] [Ghanshyam_Patel] 2003-11 +natdataservice 3927/udp # ScsTsr [Ghanshyam_Patel] [Ghanshyam_Patel] 2003-11 +netboot-pxe 3928/tcp # PXE NetBoot Manager [Markus_Treinen] [Markus_Treinen] 2003-11 +netboot-pxe 3928/udp # PXE NetBoot Manager [Markus_Treinen] [Markus_Treinen] 2003-11 +smauth-port 3929/tcp # AMS Port [Angelique_Dokos] [Angelique_Dokos] 2003-11 +smauth-port 3929/udp # AMS Port [Angelique_Dokos] [Angelique_Dokos] 2003-11 +syam-webserver 3930/tcp # Syam Web Server Port [Michael_Daniele] [Michael_Daniele] 2003-11 +syam-webserver 3930/udp # Syam Web Server Port [Michael_Daniele] [Michael_Daniele] 2003-11 +msr-plugin-port 3931/tcp # MSR Plugin Port [Ron_Steed] [Ron_Steed] 2003-11 +msr-plugin-port 3931/udp # MSR Plugin Port [Ron_Steed] [Ron_Steed] 2003-11 +dyn-site 3932/tcp # Dynamic Site System [Steve_Qi] [Steve_Qi] 2003-11 +dyn-site 3932/udp # Dynamic Site System [Steve_Qi] [Steve_Qi] 2003-11 +plbserve-port 3933/tcp # PL/B App Server User Port [Edward_R_Boedecker] [Edward_R_Boedecker] 2003-11 +plbserve-port 3933/udp # PL/B App Server User Port [Edward_R_Boedecker] [Edward_R_Boedecker] 2003-11 +sunfm-port 3934/tcp # PL/B File Manager Port [Edward_R_Boedecker] [Edward_R_Boedecker] 2003-11 +sunfm-port 3934/udp # PL/B File Manager Port [Edward_R_Boedecker] [Edward_R_Boedecker] 2003-11 +sdp-portmapper 3935/tcp # SDP Port Mapper Protocol [James_Pinkerton] [James_Pinkerton] 2003-11 +sdp-portmapper 3935/udp # SDP Port Mapper Protocol [James_Pinkerton] [James_Pinkerton] 2003-11 +mailprox 3936/tcp # Mailprox [Christof_Drescher] [Christof_Drescher] 2003-11 +mailprox 3936/udp # Mailprox [Christof_Drescher] [Christof_Drescher] 2003-11 +dvbservdsc 3937/tcp # DVB Service Discovery [Bert_van_Willigen][Peter_MacAvock] [Bert_van_Willigen][Peter_MacAvock] 2003-11 +dvbservdsc 3937/udp # DVB Service Discovery [Bert_van_Willigen][Peter_MacAvock] [Bert_van_Willigen][Peter_MacAvock] 2003-11 +# Oracle dbControl Agent po +# +dbcontrol-agent 3938/tcp # IANA assigned this [Todd_Guay] [Todd_Guay] 2003-11 +# "dbcontrol_agent". +# This entry is an alias to "dbcontrol-agent". This entry is +dbcontrol_agent 3938/tcp # Oracle dbControl Agent po [Todd_Guay] [Todd_Guay] 2003-11 now historic, not usable for use with many common service +# Oracel dbControl Agent po +# +dbcontrol-agent 3938/udp # IANA assigned this [Todd_Guay] [Todd_Guay] 2003-11 +dbcontrol_agent 3938/udp # Oracel dbControl Agent po [Todd_Guay] [Todd_Guay] 2003-11 now historic, not usable for use with many common service +aamp 3939/tcp # Anti-virus Application [In_sik_Choi] [In_sik_Choi] 2002-02 +# Management Port +aamp 3939/udp # Anti-virus Application [In_sik_Choi] [In_sik_Choi] 2002-02 +xecp-node 3940/tcp # XeCP Node Service [Brent_McCullough] [Brent_McCullough] 2003-11 +xecp-node 3940/udp # XeCP Node Service [Brent_McCullough] [Brent_McCullough] 2003-11 +homeportal-web 3941/tcp # Home Portal Web Server [Christian_Beaumont] [Christian_Beaumont] 2003-11 +homeportal-web 3941/udp # Home Portal Web Server [Christian_Beaumont] [Christian_Beaumont] 2003-11 +srdp 3942/tcp # satellite distribution [Simone_Molendini] [Simone_Molendini] 2003-11 +srdp 3942/udp # satellite distribution [Simone_Molendini] [Simone_Molendini] 2003-11 +tig 3943/tcp # TetraNode Ip Gateway [B_van_Klinken] [B_van_Klinken] 2003-12 +tig 3943/udp # TetraNode Ip Gateway [B_van_Klinken] [B_van_Klinken] 2003-12 +sops 3944/tcp # S-Ops Management [Stefan_Hochuli] [Stefan_Hochuli] 2003-12 +sops 3944/udp # S-Ops Management [Stefan_Hochuli] [Stefan_Hochuli] 2003-12 +emcads 3945/tcp # EMCADS Server Port [Lars_Struwe_Christen] [Lars_Struwe_Christen] 2004-01 +emcads 3945/udp # EMCADS Server Port [Lars_Struwe_Christen] [Lars_Struwe_Christen] 2004-01 +backupedge 3946/tcp # BackupEDGE Server [Frank_Liberato] [Frank_Liberato] 2004-06 +backupedge 3946/udp # BackupEDGE Server [Frank_Liberato] [Frank_Liberato] 2004-06 +# Connect and Control Protocol +ccp 3947/tcp # for Consumer, Commercial, [Aaron_Myer] [Aaron_Myer] 2004-06 +# and Industrial Electronic +# Devices +ccp 3947/udp # for Consumer, Commercial, [Aaron_Myer] [Aaron_Myer] 2004-06 +apdap 3948/tcp # Anton Paar Device [Martin_Leitner] [Martin_Leitner] 2004-06 +# Administration Protocol +apdap 3948/udp # Anton Paar Device [Martin_Leitner] [Martin_Leitner] 2004-06 +drip 3949/tcp # Dynamic Routing Information [Dana_Blair] [Dana_Blair] 2004-06 +drip 3949/udp # Dynamic Routing Information [Dana_Blair] [Dana_Blair] 2004-06 +namemunge 3950/tcp # Name Munging [John_C_Klensin] [John_C_Klensin] 2004-07 +namemunge 3950/udp # Name Munging [John_C_Klensin] [John_C_Klensin] 2004-07 +pwgippfax 3951/tcp # PWG IPP Facsimile [Ira_McDonald] [Ira_McDonald] 2004-08 +pwgippfax 3951/udp # PWG IPP Facsimile [Ira_McDonald] [Ira_McDonald] 2004-08 +i3-sessionmgr 3952/tcp # I3 Session Manager [Mike_Gagle_2] [Mike_Gagle_2] 2004-08 +i3-sessionmgr 3952/udp # I3 Session Manager [Mike_Gagle_2] [Mike_Gagle_2] 2004-08 +xmlink-connect 3953/tcp # Eydeas XMLink Connect [David_Crewson] [David_Crewson] 2004-09 +xmlink-connect 3953/udp # Eydeas XMLink Connect [David_Crewson] [David_Crewson] 2004-09 +adrep 3954/tcp # AD Replication RPC [Robert_Ball] [Robert_Ball] 2008-03-26 +adrep 3954/udp # AD Replication RPC [Robert_Ball] [Robert_Ball] 2008-03-26 +p2pcommunity 3955/tcp # p2pCommunity [Tiago_Bittencourt_Si] [Tiago_Bittencourt_Si] 2005-08 +p2pcommunity 3955/udp # p2pCommunity [Tiago_Bittencourt_Si] [Tiago_Bittencourt_Si] 2005-08 +gvcp 3956/tcp # GigE Vision Control [Eric_Carey] [Eric_Carey] 2005-08 +gvcp 3956/udp # GigE Vision Control [Eric_Carey] [Eric_Carey] 2005-08 +mqe-broker 3957/tcp # MQEnterprise Broker +mqe-broker 3957/udp # MQEnterprise Broker +mqe-agent 3958/tcp # MQEnterprise Agent [Bob_Lauria] [Bob_Lauria] 2005-08 +mqe-agent 3958/udp # MQEnterprise Agent [Bob_Lauria] [Bob_Lauria] 2005-08 +treehopper 3959/tcp # Tree Hopper Networking [Gary_Whelan] [Gary_Whelan] 2005-08 +treehopper 3959/udp # Tree Hopper Networking [Gary_Whelan] [Gary_Whelan] 2005-08 +bess 3960/tcp # Bess Peer Assessment [Peter_Verdon] [Peter_Verdon] 2005-08 +bess 3960/udp # Bess Peer Assessment [Peter_Verdon] [Peter_Verdon] 2005-08 +proaxess 3961/tcp # ProAxess Server [Jonas_Ahlqvist] [Jonas_Ahlqvist] 2005-08 +proaxess 3961/udp # ProAxess Server [Jonas_Ahlqvist] [Jonas_Ahlqvist] 2005-08 +sbi-agent 3962/tcp # SBI Agent Protocol [Yossi_Appleboum_2] [Yossi_Appleboum_2] 2005-08 +sbi-agent 3962/udp # SBI Agent Protocol [Yossi_Appleboum_2] [Yossi_Appleboum_2] 2005-08 +thrp 3963/tcp # Teran Hybrid Routing [Spencer_Teran] [Spencer_Teran] 2005-08 +thrp 3963/udp # Teran Hybrid Routing [Spencer_Teran] [Spencer_Teran] 2005-08 +sasggprs 3964/tcp # SASG GPRS [Cristian_Petculescu_3] [Cristian_Petculescu_3] 2005-08 +sasggprs 3964/udp # SASG GPRS [Cristian_Petculescu_3] [Cristian_Petculescu_3] 2005-08 +ati-ip-to-ncpe 3965/tcp # Avanti IP to NCPE API [Steve_Meyer_Sr] [Steve_Meyer_Sr] 2005-08 +ati-ip-to-ncpe 3965/udp # Avanti IP to NCPE API [Steve_Meyer_Sr] [Steve_Meyer_Sr] 2005-08 +bflckmgr 3966/tcp # BuildForge Lock Manager [Joe_Senner] [Joe_Senner] 2005-08 +bflckmgr 3966/udp # BuildForge Lock Manager [Joe_Senner] [Joe_Senner] 2005-08 +ppsms 3967/tcp # PPS Message Service [Bart_Schaefer] [Bart_Schaefer] 2005-08 +ppsms 3967/udp # PPS Message Service [Bart_Schaefer] [Bart_Schaefer] 2005-08 +ianywhere-dbns 3968/tcp # iAnywhere DBNS [Graeme_Perrow] [Graeme_Perrow] 2005-08 +ianywhere-dbns 3968/udp # iAnywhere DBNS [Graeme_Perrow] [Graeme_Perrow] 2005-08 +landmarks 3969/tcp # Landmark Messages [Petri_Rauhala] [Petri_Rauhala] 2005-08 +landmarks 3969/udp # Landmark Messages [Petri_Rauhala] [Petri_Rauhala] 2005-08 +# Defined TXT keys: +# txtvers +lanrevagent 3970/tcp # LANrev Agent [Martin_Bestmann_3] [Martin_Bestmann_3] server=
+# vers= +# build= +# id= +lanrevagent 3970/udp # LANrev Agent [Martin_Bestmann_3] [Martin_Bestmann_3] server=
+lanrevserver 3971/tcp # LANrev Server [Martin_Bestmann_3] [Martin_Bestmann_3] 2005-08 +lanrevserver 3971/udp # LANrev Server [Martin_Bestmann_3] [Martin_Bestmann_3] 2005-08 +iconp 3972/tcp # ict-control Protocol [Roel_Harbers] [Roel_Harbers] 2005-08 +iconp 3972/udp # ict-control Protocol [Roel_Harbers] [Roel_Harbers] 2005-08 +progistics 3973/tcp # ConnectShip Progistics [Jeff_Skaistis] [Jeff_Skaistis] 2005-08 +progistics 3973/udp # ConnectShip Progistics [Jeff_Skaistis] [Jeff_Skaistis] 2005-08 +citysearch 3974/tcp # Remote Applicant Tracking [Marc_Castelluccio] [Marc_Castelluccio] 2005-08 +citysearch 3974/udp # Remote Applicant Tracking [Marc_Castelluccio] [Marc_Castelluccio] 2005-08 +airshot 3975/tcp # Air Shot [Shingo_Kimura] [Shingo_Kimura] 2005-08 +airshot 3975/udp # Air Shot [Shingo_Kimura] [Shingo_Kimura] 2005-08 +opswagent 3976/tcp # Opsware Agent +opswagent 3976/udp # Opsware Agent +opswmanager 3977/tcp # Opsware Manager [Dave_Jagoda] [Dave_Jagoda] 2006-06 +opswmanager 3977/udp # Opsware Manager [Dave_Jagoda] [Dave_Jagoda] 2006-06 +secure-cfg-svr 3978/tcp # Secured Configuration Server [Dr_Anupam_Bharali] [Dr_Anupam_Bharali] 2006-06 +secure-cfg-svr 3978/udp # Secured Configuration Server [Dr_Anupam_Bharali] [Dr_Anupam_Bharali] 2006-06 +smwan 3979/tcp # Smith Micro Wide Area [David_Sperling] [David_Sperling] 2006-06 +# Network Service +smwan 3979/udp # Smith Micro Wide Area [David_Sperling] [David_Sperling] 2006-06 +acms 3980/tcp # Aircraft Cabin Management [Dustin_Zack] [Dustin_Zack] 2006-06 +acms 3980/udp # Aircraft Cabin Management [Dustin_Zack] [Dustin_Zack] 2006-06 +starfish 3981/tcp # Starfish System Admin [Dan_Razzell] [Dan_Razzell] 2006-06 +starfish 3981/udp # Starfish System Admin [Dan_Razzell] [Dan_Razzell] 2006-06 +eis 3982/tcp # ESRI Image Server +eis 3982/udp # ESRI Image Server +eisp 3983/tcp # ESRI Image Service [Keith_Ryden] [Keith_Ryden] 2006-07 +eisp 3983/udp # ESRI Image Service [Keith_Ryden] [Keith_Ryden] 2006-07 +mapper-nodemgr 3984/tcp # MAPPER network node manager +mapper-nodemgr 3984/udp # MAPPER network node manager +mapper-mapethd 3985/tcp # MAPPER TCP/IP server +mapper-mapethd 3985/udp # MAPPER TCP/IP server +# MAPPER workstation server +# +mapper-ws-ethd 3986/tcp # IANA assigned this [John_C_Horton] [John_C_Horton] +# "mapper-ws_ethd". +# This entry is an alias to "mapper-ws-ethd". This entry is now +mapper-ws_ethd 3986/tcp # MAPPER workstation server [John_C_Horton] [John_C_Horton] historic, not usable for use with many common service +# +mapper-ws-ethd 3986/udp # IANA assigned this [John_C_Horton] [John_C_Horton] +mapper-ws_ethd 3986/udp # MAPPER workstation server [John_C_Horton] [John_C_Horton] historic, not usable for use with many common service +centerline 3987/tcp # Centerline [Mark_Simpson] [Mark_Simpson] +centerline 3987/udp # Centerline [Mark_Simpson] [Mark_Simpson] +dcs-config 3988/tcp # DCS Configuration Port [Ian_Cargill] [Ian_Cargill] 2005-08 +dcs-config 3988/udp # DCS Configuration Port [Ian_Cargill] [Ian_Cargill] 2005-08 +bv-queryengine 3989/tcp # BindView-Query Engine +bv-queryengine 3989/udp # BindView-Query Engine +bv-is 3990/tcp # BindView-IS +bv-is 3990/udp # BindView-IS +bv-smcsrv 3991/tcp # BindView-SMCServer +bv-smcsrv 3991/udp # BindView-SMCServer +bv-ds 3992/tcp # BindView-DirectoryServer +bv-ds 3992/udp # BindView-DirectoryServer +bv-agent 3993/tcp # BindView-Agent [David_A_Gayler] [David_A_Gayler] 2005-08 +bv-agent 3993/udp # BindView-Agent [David_A_Gayler] [David_A_Gayler] 2005-08 +# 3994 Unassigned 2008-04-24 +iss-mgmt-ssl 3995/tcp # ISS Management Svcs SSL [Wes_Wilson] [Wes_Wilson] 2003-10 +iss-mgmt-ssl 3995/udp # ISS Management Svcs SSL [Wes_Wilson] [Wes_Wilson] 2003-10 +abcsoftware 3996/tcp # abcsoftware-01 [Andrew_Zimmerman] [Andrew_Zimmerman] 2004-06 +abcsoftware 3996/udp # abcsoftware-01 [Andrew_Zimmerman] [Andrew_Zimmerman] 2004-06 +agentsease-db 3997/tcp # aes_db [Colin_Hughes] [Colin_Hughes] 2006-02 +agentsease-db 3997/udp # aes_db [Colin_Hughes] [Colin_Hughes] 2006-02 +dnx 3998/tcp # Distributed Nagios Executor [John_Calcote] [John_Calcote] 2007-11-06 +dnx 3998/udp # Distributed Nagios Executor [John_Calcote] [John_Calcote] 2007-11-06 +nvcnet 3999/tcp # Norman distributes scanning [Kristian_A_Bognaes] [Kristian_A_Bognaes] 2007-11-06 +# service +nvcnet 3999/udp # Norman distributes scanning [Kristian_A_Bognaes] [Kristian_A_Bognaes] 2007-11-06 +terabase 4000/tcp # Terabase [Thor_Olson] [Thor_Olson] Potential Conflict of ports PORT 4000 also used by ICQ +# +terabase 4000/udp # Terabase [Thor_Olson] [Thor_Olson] Potential Conflict of ports PORT 4000 also used by ICQ +newoak 4001/tcp # NewOak [Jim_Philippou] [Jim_Philippou] +newoak 4001/udp # NewOak [Jim_Philippou] [Jim_Philippou] +pxc-spvr-ft 4002/tcp # pxc-spvr-ft +pxc-spvr-ft 4002/udp # pxc-spvr-ft +pxc-splr-ft 4003/tcp # pxc-splr-ft +pxc-splr-ft 4003/udp # pxc-splr-ft +pxc-roid 4004/tcp # pxc-roid +pxc-roid 4004/udp # pxc-roid +pxc-pin 4005/tcp # pxc-pin +pxc-pin 4005/udp # pxc-pin +pxc-spvr 4006/tcp # pxc-spvr +pxc-spvr 4006/udp # pxc-spvr +pxc-splr 4007/tcp # pxc-splr [Dave_Nesbitt] [Dave_Nesbitt] +pxc-splr 4007/udp # pxc-splr [Dave_Nesbitt] [Dave_Nesbitt] +netcheque 4008/tcp # NetCheque accounting [B_Clifford_Neuman] [B_Clifford_Neuman] +netcheque 4008/udp # NetCheque accounting [B_Clifford_Neuman] [B_Clifford_Neuman] +chimera-hwm 4009/tcp # Chimera HWM [Ken_Anderson] [Ken_Anderson] +chimera-hwm 4009/udp # Chimera HWM [Ken_Anderson] [Ken_Anderson] +samsung-unidex 4010/tcp # Samsung Unidex [Konstantin_V_Vyazni] [Konstantin_V_Vyazni] +samsung-unidex 4010/udp # Samsung Unidex [Konstantin_V_Vyazni] [Konstantin_V_Vyazni] +altserviceboot 4011/tcp # Alternate Service Boot [Eric_Dittert] [Eric_Dittert] +altserviceboot 4011/udp # Alternate Service Boot [Eric_Dittert] [Eric_Dittert] +pda-gate 4012/tcp # PDA Gate [Masakuni_Okada] [Masakuni_Okada] +pda-gate 4012/udp # PDA Gate [Masakuni_Okada] [Masakuni_Okada] +acl-manager 4013/tcp # ACL Manager [Toru_Murai] [Toru_Murai] +acl-manager 4013/udp # ACL Manager [Toru_Murai] [Toru_Murai] +taiclock 4014/tcp # TAICLOCK [Dan_Bernstein_3] [Dan_Bernstein_3] +taiclock 4014/udp # TAICLOCK [Dan_Bernstein_3] [Dan_Bernstein_3] +talarian-mcast1 4015/tcp # Talarian Mcast +talarian-mcast1 4015/udp # Talarian Mcast +talarian-mcast2 4016/tcp # Talarian Mcast +talarian-mcast2 4016/udp # Talarian Mcast +talarian-mcast3 4017/tcp # Talarian Mcast +talarian-mcast3 4017/udp # Talarian Mcast +talarian-mcast4 4018/tcp # Talarian Mcast +talarian-mcast4 4018/udp # Talarian Mcast +talarian-mcast5 4019/tcp # Talarian Mcast [Geoff_Mendal] [Geoff_Mendal] +talarian-mcast5 4019/udp # Talarian Mcast [Geoff_Mendal] [Geoff_Mendal] +trap 4020/tcp # TRAP Port [Jeffrey_C_Byrd] [Jeffrey_C_Byrd] +trap 4020/udp # TRAP Port [Jeffrey_C_Byrd] [Jeffrey_C_Byrd] +nexus-portal 4021/tcp # Nexus Portal [Damian_Tarnawsky] [Damian_Tarnawsky] +nexus-portal 4021/udp # Nexus Portal [Damian_Tarnawsky] [Damian_Tarnawsky] +dnox 4022/tcp # DNOX [Leo_Rathnayake] [Leo_Rathnayake] +dnox 4022/udp # DNOX [Leo_Rathnayake] [Leo_Rathnayake] +esnm-zoning 4023/tcp # ESNM Zoning Port [Yong_Cai] [Yong_Cai] +esnm-zoning 4023/udp # ESNM Zoning Port [Yong_Cai] [Yong_Cai] +tnp1-port 4024/tcp # TNP1 User Port [Tony_Gibbs] [Tony_Gibbs] +tnp1-port 4024/udp # TNP1 User Port [Tony_Gibbs] [Tony_Gibbs] +partimage 4025/tcp # Partition Image Port [Franck_Ladurelle] [Franck_Ladurelle] +partimage 4025/udp # Partition Image Port [Franck_Ladurelle] [Franck_Ladurelle] +as-debug 4026/tcp # Graphical Debug Server [Steve_Halverson] [Steve_Halverson] +as-debug 4026/udp # Graphical Debug Server [Steve_Halverson] [Steve_Halverson] +bxp 4027/tcp # bitxpress [Morgan_Doyle] [Morgan_Doyle] +bxp 4027/udp # bitxpress [Morgan_Doyle] [Morgan_Doyle] +dtserver-port 4028/tcp # DTServer Port [Stephen_Aikins] [Stephen_Aikins] +dtserver-port 4028/udp # DTServer Port [Stephen_Aikins] [Stephen_Aikins] +ip-qsig 4029/tcp # IP Q signaling protocol [Toru_Tachibana] [Toru_Tachibana] +ip-qsig 4029/udp # IP Q signaling protocol [Toru_Tachibana] [Toru_Tachibana] +jdmn-port 4030/tcp # Accell/JSP Daemon Port [Daegis_Inc] [Chris_Anderson] 2012-07-12 +jdmn-port 4030/udp # Accell/JSP Daemon Port [Daegis_Inc] [Chris_Anderson] 2012-07-12 +suucp 4031/tcp # UUCP over SSL [Harald_Welte] [Harald_Welte] +suucp 4031/udp # UUCP over SSL [Harald_Welte] [Harald_Welte] +vrts-auth-port 4032/tcp # VERITAS Authorization [Stefan_Winkel] [Stefan_Winkel] +vrts-auth-port 4032/udp # VERITAS Authorization [Stefan_Winkel] [Stefan_Winkel] +sanavigator 4033/tcp # SANavigator Peer Port [Robert_J_Chansler] [Robert_J_Chansler] +sanavigator 4033/udp # SANavigator Peer Port [Robert_J_Chansler] [Robert_J_Chansler] +ubxd 4034/tcp # Ubiquinox Daemon [Kit_Smithers] [Kit_Smithers] +ubxd 4034/udp # Ubiquinox Daemon [Kit_Smithers] [Kit_Smithers] +wap-push-http 4035/tcp # WAP Push OTA-HTTP port +wap-push-http 4035/udp # WAP Push OTA-HTTP port +wap-push-https 4036/tcp # WAP Push OTA-HTTP secure [Matthieu_Lachance] [Matthieu_Lachance] +wap-push-https 4036/udp # WAP Push OTA-HTTP secure [Matthieu_Lachance] [Matthieu_Lachance] +ravehd 4037/tcp # RaveHD network control [Jason_Howard] [Jason_Howard] 2006-01 +ravehd 4037/udp # RaveHD network control [Jason_Howard] [Jason_Howard] 2006-01 +fazzt-ptp 4038/tcp # Fazzt Point-To-Point +fazzt-ptp 4038/udp # Fazzt Point-To-Point +fazzt-admin 4039/tcp # Fazzt Administration [Lewis_Wolfgang] [Lewis_Wolfgang] 2006-05 +fazzt-admin 4039/udp # Fazzt Administration [Lewis_Wolfgang] [Lewis_Wolfgang] 2006-05 +yo-main 4040/tcp # Yo.net main service [John_Tintor] [John_Tintor] +yo-main 4040/udp # Yo.net main service [John_Tintor] [John_Tintor] +houston 4041/tcp # Rocketeer-Houston [Johnny_C_Norris_II] [Johnny_C_Norris_II] +houston 4041/udp # Rocketeer-Houston [Johnny_C_Norris_II] [Johnny_C_Norris_II] +ldxp 4042/tcp # LDXP [Craig_Calef] [Craig_Calef] +ldxp 4042/udp # LDXP [Craig_Calef] [Craig_Calef] +nirp 4043/tcp # Neighbour Identity +# Resolution +nirp 4043/udp # Neighbour Identity +ltp 4044/tcp # Location Tracking Protocol +ltp 4044/udp # Location Tracking Protocol +npp 4045/tcp # Network Paging Protocol USE: Port +# 4045 used by +# NFS +npp 4045/udp # Network Paging Protocol USE: Port +acp-proto 4046/tcp # Accounting Protocol +acp-proto 4046/udp # Accounting Protocol +ctp-state 4047/tcp # Context Transfer Protocol [Hesham_Soliman] [Hesham_Soliman] 2005-11 +ctp-state 4047/udp # Context Transfer Protocol [Hesham_Soliman] [Hesham_Soliman] 2005-11 +# 4048 Unassigned 2008-04-24 +wafs 4049/tcp # Wide Area File Services [Yuval_Hager] [Yuval_Hager] 2006-01 +wafs 4049/udp # Wide Area File Services [Yuval_Hager] [Yuval_Hager] 2006-01 +cisco-wafs 4050/tcp # Wide Area File Services [Etai_Lev_Ran] [Etai_Lev_Ran] 2005-02 +cisco-wafs 4050/udp # Wide Area File Services [Etai_Lev_Ran] [Etai_Lev_Ran] 2005-02 +cppdp 4051/tcp # Cisco Peer to Peer [Susan_Sauter] [Susan_Sauter] 2006-07 +# Distribution Protocol +cppdp 4051/udp # Cisco Peer to Peer [Susan_Sauter] [Susan_Sauter] 2006-07 +interact 4052/tcp # VoiceConnect Interact [Jonathan_Custance] [Jonathan_Custance] 2006-07 +interact 4052/udp # VoiceConnect Interact [Jonathan_Custance] [Jonathan_Custance] 2006-07 +ccu-comm-1 4053/tcp # CosmoCall Universe +# Communications Port 1 +ccu-comm-1 4053/udp # CosmoCall Universe +ccu-comm-2 4054/tcp # CosmoCall Universe +# Communications Port 2 +ccu-comm-2 4054/udp # CosmoCall Universe +ccu-comm-3 4055/tcp # CosmoCall Universe [Steve_Dellutri_2] [Steve_Dellutri_2] 2006-07 +# Communications Port 3 +ccu-comm-3 4055/udp # CosmoCall Universe [Steve_Dellutri_2] [Steve_Dellutri_2] 2006-07 +lms 4056/tcp # Location Message Service [Sergey_Burnevsky] [Sergey_Burnevsky] 2006-08 +lms 4056/udp # Location Message Service [Sergey_Burnevsky] [Sergey_Burnevsky] 2006-08 +wfm 4057/tcp # Servigistics WFM server [Yuri_Machkasov_2] [Yuri_Machkasov_2] 2006-08 +wfm 4057/udp # Servigistics WFM server [Yuri_Machkasov_2] [Yuri_Machkasov_2] 2006-08 +kingfisher 4058/tcp # Kingfisher protocol [Vaughan_Wesson] [Vaughan_Wesson] 2006-10 +kingfisher 4058/udp # Kingfisher protocol [Vaughan_Wesson] [Vaughan_Wesson] 2006-10 +dlms-cosem 4059/tcp # DLMS/COSEM [Gyozo_Kmethy] [Gyozo_Kmethy] 2006-11 +dlms-cosem 4059/udp # DLMS/COSEM [Gyozo_Kmethy] [Gyozo_Kmethy] 2006-11 +# DSMETER Inter-Agent Transfer +# Channel +# +dsmeter-iatc 4060/tcp # IANA assigned this [John_McCann] [John_McCann] 2006-12 +# "dsmeter_iatc". +# DSMETER Inter-Agent Transfer This entry is an alias to "dsmeter-iatc". This entry is now +dsmeter_iatc 4060/tcp # Channel [John_McCann] [John_McCann] 2006-12 historic, not usable for use with many common service +# +dsmeter-iatc 4060/udp # IANA assigned this [John_McCann] [John_McCann] 2006-12 +dsmeter_iatc 4060/udp # Channel [John_McCann] [John_McCann] 2006-12 historic, not usable for use with many common service +ice-location 4061/tcp # Ice Location Service (TCP) +ice-location 4061/udp # Ice Location Service (TCP) +ice-slocation 4062/tcp # Ice Location Service (SSL) +ice-slocation 4062/udp # Ice Location Service (SSL) +ice-router 4063/tcp # Ice Firewall Traversal +# Service (TCP) +ice-router 4063/udp # Ice Firewall Traversal +ice-srouter 4064/tcp # Ice Firewall Traversal [Bernard_Normier] [Bernard_Normier] 2006-12 +# Service (SSL) +ice-srouter 4064/udp # Ice Firewall Traversal [Bernard_Normier] [Bernard_Normier] 2006-12 +# Avanti Common Data +# +avanti-cdp 4065/tcp # IANA assigned this [Steve_Meyer_Sr] [Steve_Meyer_Sr] 2007-02 +# "avanti_cdp". +# This entry is an alias to "avanti-cdp". This entry is now +avanti_cdp 4065/tcp # Avanti Common Data [Steve_Meyer_Sr] [Steve_Meyer_Sr] 2007-02 historic, not usable for use with many common service +# +avanti-cdp 4065/udp # IANA assigned this [Steve_Meyer_Sr] [Steve_Meyer_Sr] 2007-02 +avanti_cdp 4065/udp # Avanti Common Data [Steve_Meyer_Sr] [Steve_Meyer_Sr] 2007-02 historic, not usable for use with many common service +pmas 4066/tcp # Performance Measurement and [Zenon_Fortuna] [Zenon_Fortuna] 2007-02 +# Analysis +pmas 4066/udp # Performance Measurement and [Zenon_Fortuna] [Zenon_Fortuna] 2007-02 +idp 4067/tcp # Information Distribution [Michaela_Vanderveen] [Michaela_Vanderveen] 2007-02 +idp 4067/udp # Information Distribution [Michaela_Vanderveen] [Michaela_Vanderveen] 2007-02 +ipfltbcst 4068/tcp # IP Fleet Broadcast [Trung_Huu_Tran] [Trung_Huu_Tran] 2007-03 +ipfltbcst 4068/udp # IP Fleet Broadcast [Trung_Huu_Tran] [Trung_Huu_Tran] 2007-03 +minger 4069/tcp # Minger Email Address [Arvel_Hathcock] [Arvel_Hathcock] 2007-03 +# Validation Service +minger 4069/udp # Minger Email Address [Arvel_Hathcock] [Arvel_Hathcock] 2007-03 +tripe 4070/tcp # Trivial IP Encryption [Mark_Wooding] [Mark_Wooding] 2007-07-10 +# (TrIPE) +tripe 4070/udp # Trivial IP Encryption [Mark_Wooding] [Mark_Wooding] 2007-07-10 +aibkup 4071/tcp # Automatically Incremental [Volker_Wiegand] [Volker_Wiegand] 2007-07-10 +# Backup +aibkup 4071/udp # Automatically Incremental [Volker_Wiegand] [Volker_Wiegand] 2007-07-10 +zieto-sock 4072/tcp # Zieto Socket Communications [Malcolm_McLean] [Malcolm_McLean] 2007-07-19 +zieto-sock 4072/udp # Zieto Socket Communications [Malcolm_McLean] [Malcolm_McLean] 2007-07-19 +iRAPP 4073/tcp # iRAPP Server Protocol [Vladimir_Bickov] [Vladimir_Bickov] 2007-08-20 +iRAPP 4073/udp # iRAPP Server Protocol [Vladimir_Bickov] [Vladimir_Bickov] 2007-08-20 +cequint-cityid 4074/tcp # Cequint City ID UI trigger [Phill_Goeckler] [Phill_Goeckler] 2007-08-20 +cequint-cityid 4074/udp # Cequint City ID UI trigger [Phill_Goeckler] [Phill_Goeckler] 2007-08-20 +perimlan 4075/tcp # ISC Alarm Message Service [Bernie_Malkowski] [Bernie_Malkowski] 2007-08-20 +perimlan 4075/udp # ISC Alarm Message Service [Bernie_Malkowski] [Bernie_Malkowski] 2007-08-20 +seraph 4076/tcp # Seraph DCS [Jason_Spence] [Jason_Spence] 2008-01-22 +seraph 4076/udp # Seraph DCS [Jason_Spence] [Jason_Spence] 2008-01-22 +# 4077 tcp Reserved +ascomalarm 4077/udp # Ascom IP Alarming [Ascom_Austria_GmbH] [Ascom_Austria_GmbH] 2008-05-01 +cssp 4078/tcp # Coordinated Security Service [Michael_McDaniels] [Michael_McDaniels] 2008-05-01 +# 4078 udp Reserved +santools 4079/tcp # SANtools Diagnostic Server [David_A_Lethe_2] [David_A_Lethe_2] 2008-05-01 +santools 4079/udp # SANtools Diagnostic Server [David_A_Lethe_2] [David_A_Lethe_2] 2008-05-01 +lorica-in 4080/tcp # Lorica inside facing +lorica-in 4080/udp # Lorica inside facing +lorica-in-sec 4081/tcp # Lorica inside facing (SSL) +lorica-in-sec 4081/udp # Lorica inside facing (SSL) +lorica-out 4082/tcp # Lorica outside facing +lorica-out 4082/udp # Lorica outside facing +lorica-out-sec 4083/tcp # Lorica outside facing (SSL) [Johannes_Skov_Frands] [Johannes_Skov_Frands] 2008-02-28 +lorica-out-sec 4083/udp # Lorica outside facing (SSL) [Johannes_Skov_Frands] [Johannes_Skov_Frands] 2008-02-28 +# 4084 tcp Reserved +fortisphere-vm 4084/udp # Fortisphere VM Service [Daniel_Becker_4] [Daniel_Becker_4] 2008-06-03 +ezmessagesrv 4085/tcp # EZNews Newsroom Message [Gerald_R_Jensen] [Gerald_R_Jensen] 2008-06-05 +# 4085 udp Reserved +# 4086 tcp Reserved +ftsync 4086/udp # Firewall/NAT state table [Heiner_Erne] [Heiner_Erne] 2008-06-06 +# synchronization +applusservice 4087/tcp # APplus Service [Thomas_Boerkel] [Thomas_Boerkel] 2008-06-05 +# 4087 udp Reserved +npsp 4088/tcp # Noah Printing Service [Hiromi_Ohara] [Hiromi_Ohara] 2008-06-18 +# 4088 udp Reserved +opencore 4089/tcp # OpenCORE Remote Control [Pim_van_Riezen] [Pim_van_Riezen] 2006-07 +opencore 4089/udp # OpenCORE Remote Control [Pim_van_Riezen] [Pim_van_Riezen] 2006-07 +omasgport 4090/tcp # OMA BCAST Service Guide [Mark_Lipford] [Mark_Lipford] 2006-07 +omasgport 4090/udp # OMA BCAST Service Guide [Mark_Lipford] [Mark_Lipford] 2006-07 +ewinstaller 4091/tcp # EminentWare Installer +ewinstaller 4091/udp # EminentWare Installer +ewdgs 4092/tcp # EminentWare DGS [David_A_Gayler_2] [David_A_Gayler_2] 2006-07 +ewdgs 4092/udp # EminentWare DGS [David_A_Gayler_2] [David_A_Gayler_2] 2006-07 +pvxpluscs 4093/tcp # Pvx Plus CS Host [Michael_King] [Michael_King] 2006-07 +pvxpluscs 4093/udp # Pvx Plus CS Host [Michael_King] [Michael_King] 2006-07 +sysrqd 4094/tcp # sysrq daemon [Julien_Danjou] [Julien_Danjou] 2006-07 +sysrqd 4094/udp # sysrq daemon [Julien_Danjou] [Julien_Danjou] 2006-07 +xtgui 4095/tcp # xtgui information service [Jim_Robanske] [Jim_Robanske] 2006-05 +xtgui 4095/udp # xtgui information service [Jim_Robanske] [Jim_Robanske] 2006-05 +bre 4096/tcp # BRE (Bridge Relay Element) [Stephen_Egbert] [Stephen_Egbert] +bre 4096/udp # BRE (Bridge Relay Element) [Stephen_Egbert] [Stephen_Egbert] +patrolview 4097/tcp # Patrol View [Portnoy_Boxman] [Portnoy_Boxman] +patrolview 4097/udp # Patrol View [Portnoy_Boxman] [Portnoy_Boxman] +drmsfsd 4098/tcp # drmsfsd [Masao_Iwai] [Masao_Iwai] +drmsfsd 4098/udp # drmsfsd [Masao_Iwai] [Masao_Iwai] +dpcp 4099/tcp # DPCP [John_Croft] [John_Croft] +dpcp 4099/udp # DPCP [John_Croft] [John_Croft] +igo-incognito 4100/tcp # IGo Incognito Data Port [Paul_Reddy_2] [Paul_Reddy_2] 2002-02 +igo-incognito 4100/udp # IGo Incognito Data Port [Paul_Reddy_2] [Paul_Reddy_2] 2002-02 +brlp-0 4101/tcp # Braille protocol +brlp-0 4101/udp # Braille protocol +brlp-1 4102/tcp # Braille protocol +brlp-1 4102/udp # Braille protocol +brlp-2 4103/tcp # Braille protocol +brlp-2 4103/udp # Braille protocol +brlp-3 4104/tcp # Braille protocol [Sebastien_Hinderer] [Sebastien_Hinderer] 2006-03 +brlp-3 4104/udp # Braille protocol [Sebastien_Hinderer] [Sebastien_Hinderer] 2006-03 +shofar 4105/tcp # Shofar [ShofarNexus] [John_Kozlowski] 2006-07 2012-02-20 +shofar 4105/udp # Shofar [ShofarNexus] [John_Kozlowski] 2006-07 2012-02-20 +synchronite 4106/tcp # Synchronite [James_Figgins] [James_Figgins] 2006-07 +synchronite 4106/udp # Synchronite [James_Figgins] [James_Figgins] 2006-07 +j-ac 4107/tcp # JDL Accounting LAN Service [Takashi_Sahara] [Takashi_Sahara] 2006-09 +j-ac 4107/udp # JDL Accounting LAN Service [Takashi_Sahara] [Takashi_Sahara] 2006-09 +accel 4108/tcp # ACCEL [Masahiro_Koiwai] [Masahiro_Koiwai] 2006-10 +accel 4108/udp # ACCEL [Masahiro_Koiwai] [Masahiro_Koiwai] 2006-10 +izm 4109/tcp # Instantiated Zero-control [David_Miller] [David_Miller] 2007-02 +# Messaging +izm 4109/udp # Instantiated Zero-control [David_Miller] [David_Miller] 2007-02 +g2tag 4110/tcp # G2 RFID Tag Telemetry Data [David_Goodall] [David_Goodall] 2007-02 +g2tag 4110/udp # G2 RFID Tag Telemetry Data [David_Goodall] [David_Goodall] 2007-02 +xgrid 4111/tcp # Xgrid [David_Kramer] [David_Kramer] 2004-11 +xgrid 4111/udp # Xgrid [David_Kramer] [David_Kramer] 2004-11 +apple-vpns-rp 4112/tcp # Apple VPN Server Reporting [Christophe_Allie] [Christophe_Allie] 2006-08 +apple-vpns-rp 4112/udp # Apple VPN Server Reporting [Christophe_Allie] [Christophe_Allie] 2006-08 +aipn-reg 4113/tcp # AIPN LS Registration [Qiang_Zhang_2] [Qiang_Zhang_2] 2006-10 +aipn-reg 4113/udp # AIPN LS Registration [Qiang_Zhang_2] [Qiang_Zhang_2] 2006-10 +jomamqmonitor 4114/tcp # JomaMQMonitor [Marcel_Hofstetter] [Marcel_Hofstetter] 2003-01 +jomamqmonitor 4114/udp # JomaMQMonitor [Marcel_Hofstetter] [Marcel_Hofstetter] 2003-01 +cds 4115/tcp # CDS Transfer Agent [Neil_Coggins] [Neil_Coggins] 2006-07 +cds 4115/udp # CDS Transfer Agent [Neil_Coggins] [Neil_Coggins] 2006-07 +smartcard-tls 4116/tcp # smartcard-TLS [Ilan_Mahalal] [Ilan_Mahalal] 2006-04 +smartcard-tls 4116/udp # smartcard-TLS [Ilan_Mahalal] [Ilan_Mahalal] 2006-04 +hillrserv 4117/tcp # Hillr Connection Manager [Freddy_A_Ayuso_Hens] [Freddy_A_Ayuso_Hens] 2008-05-22 +hillrserv 4117/udp # Hillr Connection Manager [Freddy_A_Ayuso_Hens] [Freddy_A_Ayuso_Hens] 2008-05-22 +netscript 4118/tcp # Netadmin Systems NETscript [Goran_Runfeldt] [Goran_Runfeldt] 2006-12 +netscript 4118/udp # Netadmin Systems NETscript [Goran_Runfeldt] [Goran_Runfeldt] 2006-12 +assuria-slm 4119/tcp # Assuria Log Manager [Nick_Connor] [Nick_Connor] 2006-12 +assuria-slm 4119/udp # Assuria Log Manager [Nick_Connor] [Nick_Connor] 2006-12 +# 4120 Unassigned 2007-02-01 +e-builder 4121/tcp # e-Builder Application [James_Caza] [James_Caza] 2006-12 +e-builder 4121/udp # e-Builder Application [James_Caza] [James_Caza] 2006-12 +fprams 4122/tcp # Fiber Patrol Alarm Service [Zhizhong_Zhuang] [Zhizhong_Zhuang] 2006-12 +fprams 4122/udp # Fiber Patrol Alarm Service [Zhizhong_Zhuang] [Zhizhong_Zhuang] 2006-12 +z-wave 4123/tcp # Z-Wave Protocol [Sigma_Designs_Inc_2] [Anders_Brandt][Mary_Miller] 2007-02 2012-11-08 +z-wave 4123/udp # Z-Wave Protocol [Sigma_Designs_Inc_2] [Anders_Brandt][Mary_Miller] 2007-02 2012-11-08 +tigv2 4124/tcp # Rohill TetraNode Ip Gateway [Bert_Bouwers] [Bert_Bouwers] 2007-05 +# v2 +tigv2 4124/udp # Rohill TetraNode Ip Gateway [Bert_Bouwers] [Bert_Bouwers] 2007-05 +opsview-envoy 4125/tcp # Opsview Envoy [Ton_Voon] [Ton_Voon] 2008-09-26 +opsview-envoy 4125/udp # Opsview Envoy [Ton_Voon] [Ton_Voon] 2008-09-26 +ddrepl 4126/tcp # Data Domain Replication [Pratik_Wadher] [Pratik_Wadher] 2007-05 +ddrepl 4126/udp # Data Domain Replication [Pratik_Wadher] [Pratik_Wadher] 2007-05 +unikeypro 4127/tcp # NetUniKeyServer [Raymond_Chaw] [Raymond_Chaw] 2007-05 +unikeypro 4127/udp # NetUniKeyServer [Raymond_Chaw] [Raymond_Chaw] 2007-05 +nufw 4128/tcp # NuFW decision delegation +nufw 4128/udp # NuFW decision delegation +nuauth 4129/tcp # NuFW authentication protocol [Eric_Leblond] [Eric_Leblond] 2007-06 +nuauth 4129/udp # NuFW authentication protocol [Eric_Leblond] [Eric_Leblond] 2007-06 +fronet 4130/tcp # FRONET message protocol [Christer_Nygren] [Christer_Nygren] 2007-08-07 +fronet 4130/udp # FRONET message protocol [Christer_Nygren] [Christer_Nygren] 2007-08-07 +stars 4131/tcp # Global Maintech Stars [Harry_Goldschmitt_2] [Harry_Goldschmitt_2] 2007-06 +stars 4131/udp # Global Maintech Stars [Harry_Goldschmitt_2] [Harry_Goldschmitt_2] 2007-06 +# NUTS Daemon +# +nuts-dem 4132/tcp # IANA assigned this +# "nuts_dem". +# This entry is an alias to "nuts-dem". This entry is now +nuts_dem 4132/tcp # NUTS Daemon historic, not usable for use with many common service +# +nuts-dem 4132/udp # IANA assigned this +nuts_dem 4132/udp # NUTS Daemon historic, not usable for use with many common service +# NUTS Bootp Server +# +nuts-bootp 4133/tcp # IANA assigned this [Martin_Freiss_2] [Martin_Freiss_2] +# "nuts_bootp". +# This entry is an alias to "nuts-bootp". This entry is now +nuts_bootp 4133/tcp # NUTS Bootp Server [Martin_Freiss_2] [Martin_Freiss_2] historic, not usable for use with many common service +# +nuts-bootp 4133/udp # IANA assigned this [Martin_Freiss_2] [Martin_Freiss_2] +nuts_bootp 4133/udp # NUTS Bootp Server [Martin_Freiss_2] [Martin_Freiss_2] historic, not usable for use with many common service +nifty-hmi 4134/tcp # NIFTY-Serve HMI protocol [Ryuichi_Suzuki] [Ryuichi_Suzuki] +nifty-hmi 4134/udp # NIFTY-Serve HMI protocol [Ryuichi_Suzuki] [Ryuichi_Suzuki] +cl-db-attach 4135/tcp # Classic Line Database Server +# Attach +cl-db-attach 4135/udp # Classic Line Database Server +cl-db-request 4136/tcp # Classic Line Database Server +# Request +cl-db-request 4136/udp # Classic Line Database Server +cl-db-remote 4137/tcp # Classic Line Database Server [Arno_Kirmeir] [Arno_Kirmeir] 2007-01 +# Remote +cl-db-remote 4137/udp # Classic Line Database Server [Arno_Kirmeir] [Arno_Kirmeir] 2007-01 +nettest 4138/tcp # nettest [David_Borman] [David_Borman] 2003-03 +nettest 4138/udp # nettest [David_Borman] [David_Borman] 2003-03 +thrtx 4139/tcp # Imperfect Networks Server [Dinkar_Chivaluri_2] [Dinkar_Chivaluri_2] 2006-02 +thrtx 4139/udp # Imperfect Networks Server [Dinkar_Chivaluri_2] [Dinkar_Chivaluri_2] 2006-02 +# Cedros Fraud Detection +# +cedros-fds 4140/tcp # IANA assigned this [Markus_Michels_3] [Markus_Michels_3] 2006-10 +# "cedros_fds". +# Cedros Fraud Detection This entry is an alias to "cedros-fds". This entry is now +cedros_fds 4140/tcp # System [Markus_Michels_3] [Markus_Michels_3] 2006-10 historic, not usable for use with many common service +# +cedros-fds 4140/udp # IANA assigned this [Markus_Michels_3] [Markus_Michels_3] 2006-10 +cedros_fds 4140/udp # System [Markus_Michels_3] [Markus_Michels_3] 2006-10 historic, not usable for use with many common service +oirtgsvc 4141/tcp # Workflow Server +oirtgsvc 4141/udp # Workflow Server +oidocsvc 4142/tcp # Document Server +oidocsvc 4142/udp # Document Server +oidsr 4143/tcp # Document Replication [Norman_Brie] [Norman_Brie] +oidsr 4143/udp # Document Replication [Norman_Brie] [Norman_Brie] +# 4144 Unassigned Compuserve (unoffically) is using port 4144 +vvr-control 4145/tcp # VVR Control [Ming_Xu] [Ming_Xu] +vvr-control 4145/udp # VVR Control [Ming_Xu] [Ming_Xu] +tgcconnect 4146/tcp # TGCConnect Beacon [Brian_Becker] [Brian_Becker] 2006-10 +tgcconnect 4146/udp # TGCConnect Beacon [Brian_Becker] [Brian_Becker] 2006-10 +vrxpservman 4147/tcp # Multum Service Manager [Scott_Mager] [Scott_Mager] 2006-10 +vrxpservman 4147/udp # Multum Service Manager [Scott_Mager] [Scott_Mager] 2006-10 +hhb-handheld 4148/tcp # HHB Handheld Client [Steven_G_Loughner] [Steven_G_Loughner] 2007-03 +hhb-handheld 4148/udp # HHB Handheld Client [Steven_G_Loughner] [Steven_G_Loughner] 2007-03 +agslb 4149/tcp # A10 GSLB Service [John_Chiong] [John_Chiong] 2007-07-02 +agslb 4149/udp # A10 GSLB Service [John_Chiong] [John_Chiong] 2007-07-02 +PowerAlert-nsa 4150/tcp # PowerAlert Network Shutdown [Mike_Delgrosso_2] [Mike_Delgrosso_2] 2007-07-02 +PowerAlert-nsa 4150/udp # PowerAlert Network Shutdown [Mike_Delgrosso_2] [Mike_Delgrosso_2] 2007-07-02 +# Men & Mice Remote Control +# +menandmice-noh 4151/tcp # IANA assigned this [Eggert_Thorlacius] [Eggert_Thorlacius] 2007-08-30 +# "menandmice_noh". +# This entry is an alias to "menandmice-noh". This entry is now +menandmice_noh 4151/tcp # Men & Mice Remote Control [Eggert_Thorlacius] [Eggert_Thorlacius] 2007-08-30 historic, not usable for use with many common service +# +menandmice-noh 4151/udp # IANA assigned this [Eggert_Thorlacius] [Eggert_Thorlacius] 2007-08-30 +menandmice_noh 4151/udp # Men & Mice Remote Control [Eggert_Thorlacius] [Eggert_Thorlacius] 2007-08-30 historic, not usable for use with many common service +# iDigTech Multiplex +# +idig-mux 4152/tcp # IANA assigned this [Robin_Findley] [Robin_Findley] 2007-05 +# "idig_mux". +# This entry is an alias to "idig-mux". This entry is now +idig_mux 4152/tcp # iDigTech Multiplex [Robin_Findley] [Robin_Findley] 2007-05 historic, not usable for use with many common service +# +idig-mux 4152/udp # IANA assigned this [Robin_Findley] [Robin_Findley] 2007-05 +idig_mux 4152/udp # iDigTech Multiplex [Robin_Findley] [Robin_Findley] 2007-05 historic, not usable for use with many common service +mbl-battd 4153/tcp # MBL Remote Battery [Claudio_Procida] [Claudio_Procida] 2007-05 +# Monitoring +mbl-battd 4153/udp # MBL Remote Battery [Claudio_Procida] [Claudio_Procida] 2007-05 +atlinks 4154/tcp # atlinks device discovery [Scott_Griepentrog] [Scott_Griepentrog] 2002-10 +atlinks 4154/udp # atlinks device discovery [Scott_Griepentrog] [Scott_Griepentrog] 2002-10 +bzr 4155/tcp # Bazaar version control [Martin_Pool_2] [Martin_Pool_2] 2007-02 +# system +bzr 4155/udp # Bazaar version control [Martin_Pool_2] [Martin_Pool_2] 2007-02 +stat-results 4156/tcp # STAT Results +stat-results 4156/udp # STAT Results +stat-scanner 4157/tcp # STAT Scanner Control +stat-scanner 4157/udp # STAT Scanner Control +stat-cc 4158/tcp # STAT Command Center [Darwin_Ammala] [Darwin_Ammala] 2007-03 +stat-cc 4158/udp # STAT Command Center [Darwin_Ammala] [Darwin_Ammala] 2007-03 +nss 4159/tcp # Network Security Service [Dave_Wierbowski] [Dave_Wierbowski] 2006-08 +nss 4159/udp # Network Security Service [Dave_Wierbowski] [Dave_Wierbowski] 2006-08 +jini-discovery 4160/tcp # Jini Discovery [Mark_Hodapp] [Mark_Hodapp] +jini-discovery 4160/udp # Jini Discovery [Mark_Hodapp] [Mark_Hodapp] +omscontact 4161/tcp # OMS Contact +omscontact 4161/udp # OMS Contact +omstopology 4162/tcp # OMS Topology [David_Page] [David_Page] 2005-08 +omstopology 4162/udp # OMS Topology [David_Page] [David_Page] 2005-08 +silverpeakpeer 4163/tcp # Silver Peak Peer Protocol [Damon_Ennis] [Damon_Ennis] 2007-03 +silverpeakpeer 4163/udp # Silver Peak Peer Protocol [Damon_Ennis] [Damon_Ennis] 2007-03 +silverpeakcomm 4164/tcp # Silver Peak Communication [Damon_Ennis] [Damon_Ennis] 2007-03 +silverpeakcomm 4164/udp # Silver Peak Communication [Damon_Ennis] [Damon_Ennis] 2007-03 +altcp 4165/tcp # ArcLink over Ethernet [Dmitry_Brant] [Dmitry_Brant] 2007-03 +altcp 4165/udp # ArcLink over Ethernet [Dmitry_Brant] [Dmitry_Brant] 2007-03 +joost 4166/tcp # Joost Peer to Peer Protocol [Colm_MacCarthaigh] [Colm_MacCarthaigh] 2007-04 +joost 4166/udp # Joost Peer to Peer Protocol [Colm_MacCarthaigh] [Colm_MacCarthaigh] 2007-04 +ddgn 4167/tcp # DeskDirect Global Network [Laurie_Charlwood] [Laurie_Charlwood] 2007-08-22 +ddgn 4167/udp # DeskDirect Global Network [Laurie_Charlwood] [Laurie_Charlwood] 2007-08-22 +pslicser 4168/tcp # PrintSoft License Server [David_Weisgerber] [David_Weisgerber] 2007-09-27 +pslicser 4168/udp # PrintSoft License Server [David_Weisgerber] [David_Weisgerber] 2007-09-27 +iadt 4169/tcp # Automation Drive Interface [Paul_Suhler] [Paul_Suhler] 2008-02-15 +# Transport +iadt-disc 4169/udp # Internet ADT Discovery [Paul_A_Suhler] [Paul_A_Suhler] 2009-02-06 +d-cinema-csp 4170/tcp # SMPTE Content Synchonization [Michael_Karagosian] [Michael_Karagosian] 2008-09-04 +# 4170 udp Reserved +ml-svnet 4171/tcp # Maxlogic Supervisor [Taha_Paksu] [Taha_Paksu] 2009-12-21 +# 4171 udp Reserved +pcoip 4172/tcp # PC over IP [Teradici] [Jeff_Dillabough] 2009-12-23 2012-03-06 +pcoip 4172/udp # PC over IP [Teradici] [Jeff_Dillabough] 2009-12-23 2012-03-06 +# 4173 tcp Reserved +mma-discovery 4173/udp # MMA Device Discovery [MIDI_Manufacturers_Assoc_Inc] [Tom_White] 2011-11-14 +smcluster 4174/tcp # StorMagic Cluster Services [Chris_Farey] [Chris_Farey] 2011-03-09 +sm-disc 4174/udp # StorMagic Discovery [StorMagic_Ltd] [Chris_Farey] 2011-12-16 +bccp 4175/tcp # Brocade Cluster [Norival_Figueira] [Norival_Figueira] 2010-04-07 +# Communication Protocol +# 4175 udp Reserved +tl-ipcproxy 4176/tcp # Translattice Cluster IPC [Michael_Lyle] [Michael_Lyle] 2009-11-03 +# Proxy +# 4176 udp Reserved +wello 4177/tcp # Wello P2P pubsub service [Christian_Westbrook] [Christian_Westbrook] 2007-11-15 +wello 4177/udp # Wello P2P pubsub service [Christian_Westbrook] [Christian_Westbrook] 2007-11-15 +storman 4178/tcp # StorMan [Werner_Guertler] [Werner_Guertler] 2009-05-11 +storman 4178/udp # StorMan [Werner_Guertler] [Werner_Guertler] 2009-05-11 +MaxumSP 4179/tcp # Maxum Services [Greg_Stine] [Greg_Stine] 2007-07-05 +MaxumSP 4179/udp # Maxum Services [Greg_Stine] [Greg_Stine] 2007-07-05 +httpx 4180/tcp # HTTPX [Paul_McGough] [Paul_McGough] 2007-02 +httpx 4180/udp # HTTPX [Paul_McGough] [Paul_McGough] 2007-02 +macbak 4181/tcp # MacBak [Wes_Peters] [Wes_Peters] 2007-04 +macbak 4181/udp # MacBak [Wes_Peters] [Wes_Peters] 2007-04 +pcptcpservice 4182/tcp # Production Company Pro TCP [Ben_McNeill] [Ben_McNeill] 2007-05 +pcptcpservice 4182/udp # Production Company Pro TCP [Ben_McNeill] [Ben_McNeill] 2007-05 +gmmp 4183/tcp # General Metaverse Messaging [Gareth_Nelson] [Gareth_Nelson] 2007-06 +gmmp 4183/udp # General Metaverse Messaging [Gareth_Nelson] [Gareth_Nelson] 2007-06 +# UNIVERSE SUITE MESSAGE +# SERVICE +# +universe-suite 4184/tcp # IANA assigned this [Gary_ANDREWS] [Gary_ANDREWS] 2008-01-07 +# "universe_suite". +# UNIVERSE SUITE MESSAGE This entry is an alias to "universe-suite". This entry is now +universe_suite 4184/tcp # SERVICE [Gary_ANDREWS] [Gary_ANDREWS] 2008-01-07 historic, not usable for use with many common service +# +universe-suite 4184/udp # IANA assigned this [Gary_ANDREWS] [Gary_ANDREWS] 2008-01-07 +universe_suite 4184/udp # SERVICE [Gary_ANDREWS] [Gary_ANDREWS] 2008-01-07 historic, not usable for use with many common service +wcpp 4185/tcp # Woven Control Plane Protocol [Christopher_LILJENST] [Christopher_LILJENST] 2008-04-14 +wcpp 4185/udp # Woven Control Plane Protocol [Christopher_LILJENST] [Christopher_LILJENST] 2008-04-14 +boxbackupstore 4186/tcp # Box Backup Store Service [Chris_Wilson] [Chris_Wilson] 2008-09-11 +# 4186 udp Reserved +# Cascade Proxy +# +csc-proxy 4187/tcp # IANA assigned this [Matt_Craighead] [Matt_Craighead] 2008-09-11 +# "csc_proxy". +# This entry is an alias to "csc-proxy". This entry is now +csc_proxy 4187/tcp # Cascade Proxy [Matt_Craighead] [Matt_Craighead] 2008-09-11 historic, not usable for use with many common service +# 4187 udp Reserved +vatata 4188/tcp # Vatata Peer to Peer Protocol [Song_Jian] [Song_Jian] 2008-09-15 +vatata 4188/udp # Vatata Peer to Peer Protocol [Song_Jian] [Song_Jian] 2008-09-15 +pcep 4189/tcp # Path Computation Element +# 4189 udp Reserved [RFC5440] +sieve 4190/tcp # ManageSieve Protocol +# 4190 udp Reserved [RFC5804] +# 4191 tcp Reserved +dsmipv6 4191/udp # Dual Stack MIPv6 NAT [RFC5555] +# Traversal +azeti 4192/tcp # Azeti Agent Service [Uwe_Holz] [Uwe_Holz] 2009-11-09 +azeti-bd 4192/udp # azeti blinddate [Michael_Werski] [Michael_Werski] 2010-02-18 +pvxplusio 4193/tcp # PxPlus remote file srvr [Mike_King] [Mike_King] 2009-11-09 +# 4193 udp Reserved +# 4194-4198 Unassigned +eims-admin 4199/tcp # EIMS ADMIN [Glenn_Anderson] [Glenn_Anderson] +eims-admin 4199/udp # EIMS ADMIN [Glenn_Anderson] [Glenn_Anderson] +# vrml-multi-use 4200-4299 VRML Multi User Systems [Mitra] [Mitra] +corelccam 4300/tcp # Corel CCam [Jason_Aiken] [Jason_Aiken] +corelccam 4300/udp # Corel CCam [Jason_Aiken] [Jason_Aiken] +d-data 4301/tcp # Diagnostic Data +d-data 4301/udp # Diagnostic Data +d-data-control 4302/tcp # Diagnostic Data Control [Jon_March] [Jon_March] 2006-09 +d-data-control 4302/udp # Diagnostic Data Control [Jon_March] [Jon_March] 2006-09 +srcp 4303/tcp # Simple Railroad Command [Matthias_Trute] [Matthias_Trute] 2007-01 +srcp 4303/udp # Simple Railroad Command [Matthias_Trute] [Matthias_Trute] 2007-01 +owserver 4304/tcp # One-Wire Filesystem Server [Paul_Alfille] [Paul_Alfille] 2007-01 Defined TXT keys: txtvers +owserver 4304/udp # One-Wire Filesystem Server [Paul_Alfille] [Paul_Alfille] 2007-01 Defined TXT keys: txtvers +batman 4305/tcp # better approach to mobile [Simon_Wunderlich] [Simon_Wunderlich] 2007-08-30 +# ad-hoc networking +batman 4305/udp # better approach to mobile [Simon_Wunderlich] [Simon_Wunderlich] 2007-08-30 +pinghgl 4306/tcp # Hellgate London [David_Berk] [David_Berk] 2007-08-30 +pinghgl 4306/udp # Hellgate London [David_Berk] [David_Berk] 2007-08-30 +visicron-vs 4307/tcp # Visicron Videoconference [Alexey_Vlaskin] [Alexey_Vlaskin] 2007-10-22 +visicron-vs 4307/udp # Visicron Videoconference [Alexey_Vlaskin] [Alexey_Vlaskin] 2007-10-22 +compx-lockview 4308/tcp # CompX-LockView [John_Payson] [John_Payson] 2007-10-22 +compx-lockview 4308/udp # CompX-LockView [John_Payson] [John_Payson] 2007-10-22 +dserver 4309/tcp # Exsequi Appliance Discovery [Angelo_Masci] [Angelo_Masci] 2007-01 +dserver 4309/udp # Exsequi Appliance Discovery [Angelo_Masci] [Angelo_Masci] 2007-01 +mirrtex 4310/tcp # Mir-RT exchange service [Sylvain_Robert] [Sylvain_Robert] 2008-02-14 +mirrtex 4310/udp # Mir-RT exchange service [Sylvain_Robert] [Sylvain_Robert] 2008-02-14 +p6ssmc 4311/tcp # P6R Secure Server Management [Jim_Susoy] [Jim_Susoy] 2010-01-21 +# Console +# 4311 udp Reserved +pscl-mgt 4312/tcp # Parascale Membership Manager [John_Muth] [John_Muth] 2010-01-21 +# 4312 udp Reserved +perrla 4313/tcp # PERRLA User Services [Cliff_Batson] [Cliff_Batson] 2010-01-21 +# 4313 udp Reserved +# 4314-4319 Unassigned +fdt-rcatp 4320/tcp # FDT Remote Categorization [Russell_P_Holsclaw] [Russell_P_Holsclaw] 2006-03 +fdt-rcatp 4320/udp # FDT Remote Categorization [Russell_P_Holsclaw] [Russell_P_Holsclaw] 2006-03 +rwhois 4321/tcp # Remote Who Is [Mark_Kosters] [Mark_Kosters] [RFC2167] +rwhois 4321/udp # Remote Who Is [Mark_Kosters] [Mark_Kosters] [RFC2167] +trim-event 4322/tcp # TRIM Event Service +trim-event 4322/udp # TRIM Event Service +trim-ice 4323/tcp # TRIM ICE Service [Siva_Poobalasingam_2] [Siva_Poobalasingam_2] 2007-02 +trim-ice 4323/udp # TRIM ICE Service [Siva_Poobalasingam_2] [Siva_Poobalasingam_2] 2007-02 +balour 4324/tcp # Balour Game Server [Konstantin_Schauweck] [Konstantin_Schauweck] 2007-02 +balour 4324/udp # Balour Game Server [Konstantin_Schauweck] [Konstantin_Schauweck] 2007-02 +geognosisman 4325/tcp # Cadcorp GeognoSIS Manager +geognosisman 4325/udp # Cadcorp GeognoSIS Manager +geognosis 4326/tcp # Cadcorp GeognoSIS Service [Martin_Daly] [Martin_Daly] 2006-11 +geognosis 4326/udp # Cadcorp GeognoSIS Service [Martin_Daly] [Martin_Daly] 2006-11 +jaxer-web 4327/tcp # Jaxer Web Protocol [Uri_Sarid] [Uri_Sarid] 2008-01-07 +jaxer-web 4327/udp # Jaxer Web Protocol [Uri_Sarid] [Uri_Sarid] 2008-01-07 +jaxer-manager 4328/tcp # Jaxer Manager Command [Uri_Sarid] [Uri_Sarid] 2008-01-22 +jaxer-manager 4328/udp # Jaxer Manager Command [Uri_Sarid] [Uri_Sarid] 2008-01-22 +# PubliQare Distributed +publiqare-sync 4329/tcp # Environment Synchronisation [Tom_Maaswinkel] [Tom_Maaswinkel] 2011-02-07 +# Engine +# 4329 udp Reserved +# 4330-4339 Unassigned +gaia 4340/tcp # Gaia Connector Protocol [Philippe_Detournay] [Philippe_Detournay] 2007-11-12 +gaia 4340/udp # Gaia Connector Protocol [Philippe_Detournay] [Philippe_Detournay] 2007-11-12 +lisp-data 4341/tcp # LISP Data Packets [Dino_Farinacci] [Dino_Farinacci] 2007-11-12 +lisp-data 4341/udp # LISP Data Packets [IESG] [IETF_Chair] 2007-11-12 2012-04-26 [RFC6830] +lisp-cons 4342/tcp # LISP-CONS Control +lisp-control 4342/udp # LISP Control Packets [IESG] [IETF_Chair] 2007-05 2012-04-26 [RFC6830] +unicall 4343/tcp # UNICALL [James_Powell_2] [James_Powell_2] +unicall 4343/udp # UNICALL [James_Powell_2] [James_Powell_2] +vinainstall 4344/tcp # VinaInstall [Jay_Slupesky] [Jay_Slupesky] +vinainstall 4344/udp # VinaInstall [Jay_Slupesky] [Jay_Slupesky] +m4-network-as 4345/tcp # Macro 4 Network AS [Paul_Wren] [Paul_Wren] +m4-network-as 4345/udp # Macro 4 Network AS [Paul_Wren] [Paul_Wren] +elanlm 4346/tcp # ELAN LM [Paul_Ballew] [Paul_Ballew] +elanlm 4346/udp # ELAN LM [Paul_Ballew] [Paul_Ballew] +lansurveyor 4347/tcp # LAN Surveyor [Michael_Swan] [Michael_Swan] +lansurveyor 4347/udp # LAN Surveyor [Michael_Swan] [Michael_Swan] +itose 4348/tcp # ITOSE [Michael_Haeuptle] [Michael_Haeuptle] +itose 4348/udp # ITOSE [Michael_Haeuptle] [Michael_Haeuptle] +fsportmap 4349/tcp # File System Port Map [Ron_Minnich_2] [Ron_Minnich_2] +fsportmap 4349/udp # File System Port Map [Ron_Minnich_2] [Ron_Minnich_2] +net-device 4350/tcp # Net Device [Glenn_Peterson] [Glenn_Peterson] +net-device 4350/udp # Net Device [Glenn_Peterson] [Glenn_Peterson] +plcy-net-svcs 4351/tcp # PLCY Net Services [J_J_Ekstrom] [J_J_Ekstrom] +plcy-net-svcs 4351/udp # PLCY Net Services [J_J_Ekstrom] [J_J_Ekstrom] +pjlink 4352/tcp # Projector Link [Mitsuo_Kodama] [Mitsuo_Kodama] 2005-06 +pjlink 4352/udp # Projector Link [Mitsuo_Kodama] [Mitsuo_Kodama] 2005-06 +f5-iquery 4353/tcp # F5 iQuery [Tom_Kee] [Tom_Kee] +f5-iquery 4353/udp # F5 iQuery [Tom_Kee] [Tom_Kee] +qsnet-trans 4354/tcp # QSNet Transmitter +qsnet-trans 4354/udp # QSNet Transmitter +qsnet-workst 4355/tcp # QSNet Workstation +qsnet-workst 4355/udp # QSNet Workstation +qsnet-assist 4356/tcp # QSNet Assistant +qsnet-assist 4356/udp # QSNet Assistant +qsnet-cond 4357/tcp # QSNet Conductor +qsnet-cond 4357/udp # QSNet Conductor +qsnet-nucl 4358/tcp # QSNet Nucleus [Neer_Kleinman] [Neer_Kleinman] +qsnet-nucl 4358/udp # QSNet Nucleus [Neer_Kleinman] [Neer_Kleinman] +omabcastltkm 4359/tcp # OMA BCAST Long-Term Key [Frank_Hartung] [Frank_Hartung] 2007-09-07 +# Messages +omabcastltkm 4359/udp # OMA BCAST Long-Term Key [Frank_Hartung] [Frank_Hartung] 2007-09-07 +# Matrix VNet Communication +# +matrix-vnet 4360/tcp # IANA assigned this [Rehan_Mahmood] [Rehan_Mahmood] 2009-03-18 +# "matrix_vnet". +# Matrix VNet Communication This entry is an alias to "matrix-vnet". This entry is now +matrix_vnet 4360/tcp # Protocol [Rehan_Mahmood] [Rehan_Mahmood] 2009-03-18 historic, not usable for use with many common service +# 4360 udp Reserved +# 4361 tcp Reserved +nacnl 4361/udp # NavCom Discovery and Control [Yilei_Jia] [Yilei_Jia] 2009-03-18 +# 4362 tcp Reserved +afore-vdp-disc 4362/udp # AFORE vNode Discovery [Michael_Richardson] [Michael_Richardson] 2011-02-08 +# 4363-4367 Unassigned +wxbrief 4368/tcp # WeatherBrief Direct [Kim_Alan_Waggoner] [Kim_Alan_Waggoner] 2006-11 +wxbrief 4368/udp # WeatherBrief Direct [Kim_Alan_Waggoner] [Kim_Alan_Waggoner] 2006-11 +epmd 4369/tcp # Erlang Port Mapper Daemon [Erlang] [Erlang] +epmd 4369/udp # Erlang Port Mapper Daemon [Erlang] [Erlang] +# ELPRO V2 Protocol Tunnel +# +elpro-tunnel 4370/tcp # IANA assigned this [Harry_Courtice] [Harry_Courtice] 2008-04-14 +# "elpro_tunnel". +# This entry is an alias to "elpro-tunnel". This entry is now +elpro_tunnel 4370/tcp # ELPRO V2 Protocol Tunnel [Harry_Courtice] [Harry_Courtice] 2008-04-14 historic, not usable for use with many common service +# +elpro-tunnel 4370/udp # IANA assigned this [Harry_Courtice] [Harry_Courtice] 2008-04-14 +elpro_tunnel 4370/udp # ELPRO V2 Protocol Tunnel [Harry_Courtice] [Harry_Courtice] 2008-04-14 historic, not usable for use with many common service +l2c-control 4371/tcp # LAN2CAN Control [Phil_Tolson] [Phil_Tolson] 2008-07-07 Modified: 21 January 2010 +l2c-disc 4371/udp # LAN2CAN Discovery [Phil_Tolson] [Phil_Tolson] 2010-01-21 +l2c-data 4372/tcp # LAN2CAN Data [Phil_Tolson] [Phil_Tolson] 2008-07-07 Modified: 21 January 2010 +l2c-data 4372/udp # LAN2CAN Data [Phil_Tolson] [Phil_Tolson] 2010-01-21 +remctl 4373/tcp # Remote Authenticated Command [Russ_Allbery] [Russ_Allbery] 2007-08-30 +remctl 4373/udp # Remote Authenticated Command [Russ_Allbery] [Russ_Allbery] 2007-08-30 +psi-ptt 4374/tcp # PSI Push-to-Talk Protocol [Frank_B] [Frank_B] 2008-07-17 +# 4374 udp Reserved +tolteces 4375/tcp # Toltec EasyShare [Joon_Radley_2] [Joon_Radley_2] 2008-10-21 +tolteces 4375/udp # Toltec EasyShare [Joon_Radley_2] [Joon_Radley_2] 2008-10-21 +bip 4376/tcp # BioAPI Interworking [Jean_Paul_Lemaire] [Jean_Paul_Lemaire] 2007-07-05 +bip 4376/udp # BioAPI Interworking [Jean_Paul_Lemaire] [Jean_Paul_Lemaire] 2007-07-05 +cp-spxsvr 4377/tcp # Cambridge Pixel SPx Server +cp-spxsvr 4377/udp # Cambridge Pixel SPx Server +cp-spxdpy 4378/tcp # Cambridge Pixel SPx Display [Richard_Warren] [Richard_Warren] 2007-07-05 +cp-spxdpy 4378/udp # Cambridge Pixel SPx Display [Richard_Warren] [Richard_Warren] 2007-07-05 +ctdb 4379/tcp # CTDB [Ronnie_Sahlberg] [Ronnie_Sahlberg] 2007-07-05 +ctdb 4379/udp # CTDB [Ronnie_Sahlberg] [Ronnie_Sahlberg] 2007-07-05 +# 4380-4388 Unassigned +xandros-cms 4389/tcp # Xandros Community Management [Stephen_M_Webb] [Stephen_M_Webb] 2007-05 +xandros-cms 4389/udp # Xandros Community Management [Stephen_M_Webb] [Stephen_M_Webb] 2007-05 +wiegand 4390/tcp # Physical Access Control [Scott_Guthery_2] [Scott_Guthery_2] 2008-08-25 +wiegand 4390/udp # Physical Access Control [Scott_Guthery_2] [Scott_Guthery_2] 2008-08-25 +apwi-imserver 4391/tcp # American Printware IMServer [Lech_Lakomy] [Lech_Lakomy] 2009-02-12 +# 4391 udp Reserved +apwi-rxserver 4392/tcp # American Printware RXServer [Lech_Lakomy] [Lech_Lakomy] 2009-02-12 +# 4392 udp Reserved +apwi-rxspooler 4393/tcp # American Printware RXSpooler [Lech_Lakomy] [Lech_Lakomy] 2009-02-12 +# 4393 udp Reserved +# 4394 tcp Reserved +apwi-disc 4394/udp # American Printware Discovery [Lech_Lakomy] [Lech_Lakomy] 2009-02-12 +omnivisionesx 4395/tcp # OmniVision communication for [Vacquier_Serge] [Vacquier_Serge] 2009-02-12 +# Virtual environments +omnivisionesx 4395/udp # OmniVision communication for [Vacquier_Serge] [Vacquier_Serge] 2009-02-12 +fly 4396/tcp # Fly Object Space [Nigel_Warren] [Nigel_Warren] 2009-02-12 +# 4396 udp Reserved +# 4397-4399 Unassigned +ds-srv 4400/tcp # ASIGRA Services [David_Farajun] [David_Farajun] 2004-11 +ds-srv 4400/udp # ASIGRA Services [David_Farajun] [David_Farajun] 2004-11 +ds-srvr 4401/tcp # ASIGRA Televaulting +# DS-System Service +ds-srvr 4401/udp # ASIGRA Televaulting +ds-clnt 4402/tcp # ASIGRA Televaulting +# DS-Client Service +ds-clnt 4402/udp # ASIGRA Televaulting +# ASIGRA Televaulting +ds-user 4403/tcp # DS-Client +# Monitoring/Management +ds-user 4403/udp # DS-Client +ds-admin 4404/tcp # DS-System +ds-admin 4404/udp # DS-System +ds-mail 4405/tcp # ASIGRA Televaulting Message +# Level Restore service +ds-mail 4405/udp # ASIGRA Televaulting Message +ds-slp 4406/tcp # ASIGRA Televaulting [Andrei_Litvinn] [Andrei_Litvinn] 2005-01 +# DS-Sleeper Service +ds-slp 4406/udp # ASIGRA Televaulting [Andrei_Litvinn] [Andrei_Litvinn] 2005-01 +nacagent 4407/tcp # Network Access Control Agent [ITGroup] [ITGroup] 2008-06-30 +# 4407 udp Reserved +slscc 4408/tcp # SLS Technology Control [Steven_Sweeting] [Steven_Sweeting] 2008-01-28 +# Centre +# 4408 udp Reserved +netcabinet-com 4409/tcp # Net-Cabinet comunication [Ian_Manning_2] [Ian_Manning_2] 2009-12-16 +# 4409 udp Reserved +itwo-server 4410/tcp # RIB iTWO Application Server [Kristean_Heisler_2] [Kristean_Heisler_2] 2009-12-16 +# 4410 udp Reserved +found 4411/tcp # Found Messaging Protocol [Found_Software] [John_Mitchell] 2012-04-11 Defined TXT keys: id, key +# 4411 udp Reserved +# 4412-4424 Unassigned +netrockey6 4425/tcp # NetROCKEY6 SMART Plus [Feitian_Technologies] [Feitian_Technologies] 2010-09-15 +netrockey6 4425/udp # NetROCKEY6 SMART Plus [Feitian_Technologies] [Feitian_Technologies] 2010-09-15 +beacon-port-2 4426/tcp # SMARTS Beacon Port [Eyal_Yardeni] [Eyal_Yardeni] 2003-11 +beacon-port-2 4426/udp # SMARTS Beacon Port [Eyal_Yardeni] [Eyal_Yardeni] 2003-11 +drizzle 4427/tcp # Drizzle database server [Elliot_Murphy] [Elliot_Murphy] 2008-07-09 +# 4427 udp Reserved +omviserver 4428/tcp # OMV-Investigation [Serge_Vacquier] [Serge_Vacquier] 2009-05-20 +# Server-Client +# 4428 udp Reserved +omviagent 4429/tcp # OMV Investigation [Serge_Vacquier] [Serge_Vacquier] 2009-05-20 +# Agent-Server +# 4429 udp Reserved +rsqlserver 4430/tcp # REAL SQL Server [Marco_Bambini] [Marco_Bambini] 2008-08-28 +rsqlserver 4430/udp # REAL SQL Server [Marco_Bambini] [Marco_Bambini] 2008-08-28 +wspipe 4431/tcp # adWISE Pipe [Heikki_E] [Heikki_E] 2009-06-18 +# 4431 udp Reserved +l-acoustics 4432/tcp # L-ACOUSTICS management [L-ACOUSTICS] [Christophe_Pignon] 2012-08-13 +l-acoustics 4432/udp # L-ACOUSTICS management [L-ACOUSTICS] [Christophe_Pignon] 2012-08-13 +vop 4433/tcp # Versile Object Protocol [Versile_AS] [Tore_Skaug] 2012-02-01 +# 4433 udp Reserved +# 4434-4440 Unassigned +# 4441 tcp Reserved +netblox 4441/udp # Netblox Protocol [Brian_S_Locke] [Brian_S_Locke] 2008-07-10 +saris 4442/tcp # Saris +saris 4442/udp # Saris +pharos 4443/tcp # Pharos [TeleConsult] [TeleConsult] +pharos 4443/udp # Pharos [TeleConsult] [TeleConsult] +# krb524 +# assigned the +krb524 4444/tcp # KRB524 [B_Clifford_Neuman] [B_Clifford_Neuman] port, nv used +# it without an +# assignment +krb524 4444/udp # KRB524 [B_Clifford_Neuman] [B_Clifford_Neuman] port, nv used +nv-video 4444/tcp # NV Video default [Ron_Frederick] [Ron_Frederick] port, nv used +nv-video 4444/udp # NV Video default [Ron_Frederick] [Ron_Frederick] port, nv used +upnotifyp 4445/tcp # UPNOTIFYP [Mark_Fox] [Mark_Fox] +upnotifyp 4445/udp # UPNOTIFYP [Mark_Fox] [Mark_Fox] +n1-fwp 4446/tcp # N1-FWP +n1-fwp 4446/udp # N1-FWP +n1-rmgmt 4447/tcp # N1-RMGMT [Lori_Tassin] [Lori_Tassin] +n1-rmgmt 4447/udp # N1-RMGMT [Lori_Tassin] [Lori_Tassin] +asc-slmd 4448/tcp # ASC Licence Manager [Casper_Stoel] [Casper_Stoel] +asc-slmd 4448/udp # ASC Licence Manager [Casper_Stoel] [Casper_Stoel] +privatewire 4449/tcp # PrivateWire [Uri_Resnitzky] [Uri_Resnitzky] +privatewire 4449/udp # PrivateWire [Uri_Resnitzky] [Uri_Resnitzky] +camp 4450/tcp # Common ASCII Messaging [Control_Technology_Inc] [Clint_Eskew] 2011-10-28 +camp 4450/udp # Common ASCII Messaging [Control_Technology_Inc] [Clint_Eskew] 2011-10-28 +ctisystemmsg 4451/tcp # CTI System Msg [Control_Technology_Inc] [Clint_Eskew] 2011-10-28 +ctisystemmsg 4451/udp # CTI System Msg [Control_Technology_Inc] [Clint_Eskew] 2011-10-28 +ctiprogramload 4452/tcp # CTI Program Load [Control_Technology_Inc] [Clint_Eskew] 2011-10-28 +ctiprogramload 4452/udp # CTI Program Load [Control_Technology_Inc] [Clint_Eskew] 2011-10-28 +nssalertmgr 4453/tcp # NSS Alert Manager +nssalertmgr 4453/udp # NSS Alert Manager +nssagentmgr 4454/tcp # NSS Agent Manager [Jim_Hill] [Jim_Hill] +nssagentmgr 4454/udp # NSS Agent Manager [Jim_Hill] [Jim_Hill] +prchat-user 4455/tcp # PR Chat User +prchat-user 4455/udp # PR Chat User +prchat-server 4456/tcp # PR Chat Server +prchat-server 4456/udp # PR Chat Server +prRegister 4457/tcp # PR Register [Donny_Gilor] [Donny_Gilor] +prRegister 4457/udp # PR Register [Donny_Gilor] [Donny_Gilor] +mcp 4458/tcp # Matrix Configuration [Tim_DeBaillie] [Tim_DeBaillie] 2006-12 +mcp 4458/udp # Matrix Configuration [Tim_DeBaillie] [Tim_DeBaillie] 2006-12 +# 4459-4483 Unassigned +hpssmgmt 4484/tcp # hpssmgmt service [David_Straw] [David_Straw] 2005-11 +hpssmgmt 4484/udp # hpssmgmt service [David_Straw] [David_Straw] 2005-11 +assyst-dr 4485/tcp # Assyst Data Repository [Albert_Cester] [Albert_Cester] 2008-08-26 +# 4485 udp Reserved +icms 4486/tcp # Integrated Client Message [Resource_Allocation] [Resource_Allocation] 2010-09-27 +icms 4486/udp # Integrated Client Message [Resource_Allocation] [Resource_Allocation] 2010-09-27 +prex-tcp 4487/tcp # Protocol for Remote [Daniel_Ruppert] [Daniel_Ruppert] 2010-09-16 +# Execution over TCP +# 4487 udp Reserved +awacs-ice 4488/tcp # Apple Wide Area Connectivity [Rory_McGuire] [Rory_McGuire] 2010-09-24 +# Service ICE Bootstrap +awacs-ice 4488/udp # Apple Wide Area Connectivity [Rory_McGuire] [Rory_McGuire] 2010-09-24 +# 4489-4499 Unassigned +ipsec-nat-t 4500/tcp # IPsec NAT-Traversal [RFC3947] +ipsec-nat-t 4500/udp # IPsec NAT-Traversal [RFC3947] +# 4501 Unassigned [IANA] [IANA] De-registered 08 June 2001 +a25-fap-fgw 4502/sctp # A25 (FAP-FGW) [ThreeGPP2] [Zhiming_Li] 2012-01-11 +# 4503-4533 Unassigned +# 4534 tcp Reserved +armagetronad 4534/udp # Armagetron Advanced Game [Manuel_Moos] [Yann_Kaiser] 2012-11-02 +ehs 4535/tcp # Event Heap Server +ehs 4535/udp # Event Heap Server +ehs-ssl 4536/tcp # Event Heap Server SSL [Brad_Johanson] [Brad_Johanson] 2005-08 +ehs-ssl 4536/udp # Event Heap Server SSL [Brad_Johanson] [Brad_Johanson] 2005-08 +wssauthsvc 4537/tcp # WSS Security Service [Mark_Tirschwell] [Mark_Tirschwell] 2006-01 +wssauthsvc 4537/udp # WSS Security Service [Mark_Tirschwell] [Mark_Tirschwell] 2006-01 +swx-gate 4538/tcp # Software Data Exchange [Julien_VALIENTE] [Julien_VALIENTE] 2006-05 +# Gateway +swx-gate 4538/udp # Software Data Exchange [Julien_VALIENTE] [Julien_VALIENTE] 2006-05 +# 4539-4544 Unassigned +worldscores 4545/tcp # WorldScores [Steve_Davis] [Steve_Davis] +worldscores 4545/udp # WorldScores [Steve_Davis] [Steve_Davis] +sf-lm 4546/tcp # SF License Manager [Thomas_Koell] [Thomas_Koell] +# (Sentinel) +sf-lm 4546/udp # SF License Manager [Thomas_Koell] [Thomas_Koell] +lanner-lm 4547/tcp # Lanner License Manager [Les_Enstone] [Les_Enstone] +lanner-lm 4547/udp # Lanner License Manager [Les_Enstone] [Les_Enstone] +synchromesh 4548/tcp # Synchromesh [Tom_Hawkins_2] [Tom_Hawkins_2] 2006-02 +synchromesh 4548/udp # Synchromesh [Tom_Hawkins_2] [Tom_Hawkins_2] 2006-02 +aegate 4549/tcp # Aegate PMR Service [Nick_Warrington] [Nick_Warrington] 2006-03 +aegate 4549/udp # Aegate PMR Service [Nick_Warrington] [Nick_Warrington] 2006-03 +gds-adppiw-db 4550/tcp # Perman I Interbase Server [Leo_Lesage] [Leo_Lesage] 2006-04 +gds-adppiw-db 4550/udp # Perman I Interbase Server [Leo_Lesage] [Leo_Lesage] 2006-04 +ieee-mih 4551/tcp # MIH Services [RFC5677] +ieee-mih 4551/udp # MIH Services [RFC5677] +menandmice-mon 4552/tcp # Men and Mice Monitoring [Carsten_Strotmann] [Carsten_Strotmann] 2009-05-20 +menandmice-mon 4552/udp # Men and Mice Monitoring [Carsten_Strotmann] [Carsten_Strotmann] 2009-05-20 +icshostsvc 4553/tcp # ICS host services [Gordan_Vosicki] [Gordan_Vosicki] 2009-09-23 +# 4553 udp Reserved +msfrs 4554/tcp # MS FRS Replication [Kev_George] [Kev_George] 2006-09 +msfrs 4554/udp # MS FRS Replication [Kev_George] [Kev_George] 2006-09 +rsip 4555/tcp # RSIP Port [RFC3103] +rsip 4555/udp # RSIP Port [RFC3103] +dtn-bundle-tcp 4556/tcp # DTN Bundle TCP CL Protocol +dtn-bundle-udp 4556/udp # DTN Bundle UDP CL Protocol [Michael_Demmer] [Michael_Demmer] 2006-11 +# 4557 tcp Reserved +mtcevrunqss 4557/udp # Marathon everRun Quorum [David_Schwartz_2] [David_Schwartz_2] 2009-06-18 +# Service Server +# 4558 tcp Reserved +mtcevrunqman 4558/udp # Marathon everRun Quorum [David_Schwartz_2] [David_Schwartz_2] 2009-06-18 +# Service Manager +hylafax 4559/tcp # HylaFAX [Lee_Howard] [Lee_Howard] 2002-03 +hylafax 4559/udp # HylaFAX [Lee_Howard] [Lee_Howard] 2002-03 +# 4560-4565 Unassigned +kwtc 4566/tcp # Kids Watch Time Control [Larry_Zarou] [Larry_Zarou] 2006-10 +kwtc 4566/udp # Kids Watch Time Control [Larry_Zarou] [Larry_Zarou] 2006-10 +tram 4567/tcp # TRAM [Joe_Wesley] [Joe_Wesley] +tram 4567/udp # TRAM [Joe_Wesley] [Joe_Wesley] +bmc-reporting 4568/tcp # BMC Reporting [Portnoy_Boxman] [Portnoy_Boxman] +bmc-reporting 4568/udp # BMC Reporting [Portnoy_Boxman] [Portnoy_Boxman] +# auth plaintext | md5 | rsakeys +# userid alphanumeric, additionally '_', '+', '-' +# secret any printable ASCII characters +# domain any DNS domain name or IP address +# extension alphanumeric, additionally '*', '#', '_', '+', '-' +# context alphanumeric, additionally '_', '+', '-' +iax 4569/tcp # Inter-Asterisk eXchange [Benjamin_Kowarsch] [Benjamin_Kowarsch] [RFC5456] trunk yes | no | 0 | 1 +# welcome alphanumeric, additionally '*', '#', '_', '+', '-' +# voicemail alphanumeric, additionally '*', '#', '_', '+', '-' +# reception alphanumeric, additionally '*', '#', '_', '+', '-' +# echotest alphanumeric, additionally '*', '#', '_', '+', '-' +# ivrtest alphanumeric, additionally '*', '#', '_', '+', '-' +# All of these TXT record keys are optional, they may be +# omitted. Further keys may be added in the future. +iax 4569/udp # Inter-Asterisk eXchange [Benjamin_Kowarsch] [Benjamin_Kowarsch] [RFC5456] trunk yes | no | 0 | 1 +# 4570-4589 Unassigned +rid 4590/tcp # RID over HTTP/TLS [IESG] [IETF_Chair] [RFC6546] +# 4590 udp Reserved +l3t-at-an 4591/tcp # HRPD L3T (AT-AN) [Avi_Lior] [Avi_Lior] 2009-02-27 +l3t-at-an 4591/udp # HRPD L3T (AT-AN) [Avi_Lior] [Avi_Lior] 2009-02-27 +# 4592 tcp Reserved +hrpd-ith-at-an 4592/udp # HRPD-ITH (AT-AN) [David_Ott] [David_Ott] 2008-06-05 +ipt-anri-anri 4593/tcp # IPT (ANRI-ANRI) +ipt-anri-anri 4593/udp # IPT (ANRI-ANRI) +ias-session 4594/tcp # IAS-Session (ANRI-ANRI) +ias-session 4594/udp # IAS-Session (ANRI-ANRI) +ias-paging 4595/tcp # IAS-Paging (ANRI-ANRI) +ias-paging 4595/udp # IAS-Paging (ANRI-ANRI) +ias-neighbor 4596/tcp # IAS-Neighbor (ANRI-ANRI) [David_Ott] [David_Ott] 2007-07-31 +ias-neighbor 4596/udp # IAS-Neighbor (ANRI-ANRI) [David_Ott] [David_Ott] 2007-07-31 +a21-an-1xbs 4597/tcp # A21 (AN-1xBS) [David_Ott] [David_Ott] 2006-02 +a21-an-1xbs 4597/udp # A21 (AN-1xBS) [David_Ott] [David_Ott] 2006-02 +a16-an-an 4598/tcp # A16 (AN-AN) [David_Ott] [David_Ott] 2005-12 +a16-an-an 4598/udp # A16 (AN-AN) [David_Ott] [David_Ott] 2005-12 +a17-an-an 4599/tcp # A17 (AN-AN) [David_Ott] [David_Ott] 2006-02 +a17-an-an 4599/udp # A17 (AN-AN) [David_Ott] [David_Ott] 2006-02 +piranha1 4600/tcp # Piranha1 +piranha1 4600/udp # Piranha1 +piranha2 4601/tcp # Piranha2 [Primark_Corporation] [Primark_Corporation] +piranha2 4601/udp # Piranha2 [Primark_Corporation] [Primark_Corporation] +mtsserver 4602/tcp # EAX MTS Server [Pedro_A_Rodriguez] [Pedro_A_Rodriguez] 2008-08-06 +# 4602 udp Reserved +menandmice-upg 4603/tcp # Men & Mice Upgrade Agent [Eggert_Thorlacius_2] [Eggert_Thorlacius_2] 2010-01-27 +# 4603 udp Reserved +# 4604-4657 Unassigned +playsta2-app 4658/tcp # PlayStation2 App Port +playsta2-app 4658/udp # PlayStation2 App Port +playsta2-lob 4659/tcp # PlayStation2 Lobby Port [Noam_Rimon] [Noam_Rimon] 2004-12 +playsta2-lob 4659/udp # PlayStation2 Lobby Port [Noam_Rimon] [Noam_Rimon] 2004-12 +smaclmgr 4660/tcp # smaclmgr [Hiromi_Taki] [Hiromi_Taki] +smaclmgr 4660/udp # smaclmgr [Hiromi_Taki] [Hiromi_Taki] +kar2ouche 4661/tcp # Kar2ouche Peer location [Andy_Krouwel] [Andy_Krouwel] +kar2ouche 4661/udp # Kar2ouche Peer location [Andy_Krouwel] [Andy_Krouwel] +oms 4662/tcp # OrbitNet Message Service [Roy_Davies] [Roy_Davies] 2005-08 +oms 4662/udp # OrbitNet Message Service [Roy_Davies] [Roy_Davies] 2005-08 +noteit 4663/tcp # Note It! Message Service [Pedro_Alpedrinha] [Pedro_Alpedrinha] 2006-02 +noteit 4663/udp # Note It! Message Service [Pedro_Alpedrinha] [Pedro_Alpedrinha] 2006-02 +ems 4664/tcp # Rimage Messaging Server [David_V_Raskin] [David_V_Raskin] 2006-02 +ems 4664/udp # Rimage Messaging Server [David_V_Raskin] [David_V_Raskin] 2006-02 +contclientms 4665/tcp # Container Client Message [Bruce_Thompson] [Bruce_Thompson] 2006-02 +contclientms 4665/udp # Container Client Message [Bruce_Thompson] [Bruce_Thompson] 2006-02 +eportcomm 4666/tcp # E-Port Message Service +eportcomm 4666/udp # E-Port Message Service +mmacomm 4667/tcp # MMA Comm Services +mmacomm 4667/udp # MMA Comm Services +mmaeds 4668/tcp # MMA EDS Service [Robert_Shaffer] [Robert_Shaffer] 2006-02 +mmaeds 4668/udp # MMA EDS Service [Robert_Shaffer] [Robert_Shaffer] 2006-02 +eportcommdata 4669/tcp # E-Port Data Service [Robert_Shaffer] [Robert_Shaffer] 2006-02 +eportcommdata 4669/udp # E-Port Data Service [Robert_Shaffer] [Robert_Shaffer] 2006-02 +light 4670/tcp # Light packets transfer [Adam_Golovenko] [Adam_Golovenko] 2006-10 +light 4670/udp # Light packets transfer [Adam_Golovenko] [Adam_Golovenko] 2006-10 +acter 4671/tcp # Bull RSF action server [Christian_Caudrelier] [Christian_Caudrelier] 2006-02 +acter 4671/udp # Bull RSF action server [Christian_Caudrelier] [Christian_Caudrelier] 2006-02 +rfa 4672/tcp # remote file access server +rfa 4672/udp # remote file access server +cxws 4673/tcp # CXWS Operations [Phil_Abercrombie] [Phil_Abercrombie] 2005-08 +cxws 4673/udp # CXWS Operations [Phil_Abercrombie] [Phil_Abercrombie] 2005-08 +appiq-mgmt 4674/tcp # AppIQ Agent Management [Phil_Abercrombie] [Phil_Abercrombie] 2005-08 +appiq-mgmt 4674/udp # AppIQ Agent Management [Phil_Abercrombie] [Phil_Abercrombie] 2005-08 +dhct-status 4675/tcp # BIAP Device Status +dhct-status 4675/udp # BIAP Device Status +dhct-alerts 4676/tcp # BIAP Generic Alert [Louis_Slothouber] [Louis_Slothouber] 2005-08 +dhct-alerts 4676/udp # BIAP Generic Alert [Louis_Slothouber] [Louis_Slothouber] 2005-08 +bcs 4677/tcp # Business Continuity Servi [Siew_Sim] [Siew_Sim] 2005-08 +bcs 4677/udp # Business Continuity Servi [Siew_Sim] [Siew_Sim] 2005-08 +traversal 4678/tcp # boundary traversal [Kevin_Lu] [Kevin_Lu] 2005-08 +traversal 4678/udp # boundary traversal [Kevin_Lu] [Kevin_Lu] 2005-08 +mgesupervision 4679/tcp # MGE UPS Supervision +mgesupervision 4679/udp # MGE UPS Supervision +mgemanagement 4680/tcp # MGE UPS Management [Lecuivre_J] [Lecuivre_J] 2005-08 +mgemanagement 4680/udp # MGE UPS Management [Lecuivre_J] [Lecuivre_J] 2005-08 +parliant 4681/tcp # Parliant Telephony System [Colin_Henein] [Colin_Henein] 2005-08 +parliant 4681/udp # Parliant Telephony System [Colin_Henein] [Colin_Henein] 2005-08 +finisar 4682/tcp # finisar [Christina_Mercier] [Christina_Mercier] 2005-08 +finisar 4682/udp # finisar [Christina_Mercier] [Christina_Mercier] 2005-08 +spike 4683/tcp # Spike Clipboard Service [Scott_Herscher] [Scott_Herscher] 2005-08 +spike 4683/udp # Spike Clipboard Service [Scott_Herscher] [Scott_Herscher] 2005-08 +rfid-rp1 4684/tcp # RFID Reader Protocol 1.0 [Michael_Mealling_2] [Michael_Mealling_2] 2005-08 +rfid-rp1 4684/udp # RFID Reader Protocol 1.0 [Michael_Mealling_2] [Michael_Mealling_2] 2005-08 +autopac 4685/tcp # Autopac Protocol [Peter_Hallenbeck] [Peter_Hallenbeck] 2005-08 +autopac 4685/udp # Autopac Protocol [Peter_Hallenbeck] [Peter_Hallenbeck] 2005-08 +msp-os 4686/tcp # Manina Service Protocol [Markus_Nix] [Markus_Nix] 2005-08 +msp-os 4686/udp # Manina Service Protocol [Markus_Nix] [Markus_Nix] 2005-08 +nst 4687/tcp # Network Scanner Tool FTP [Mala_Bhat] [Mala_Bhat] 2005-08 +nst 4687/udp # Network Scanner Tool FTP [Mala_Bhat] [Mala_Bhat] 2005-08 +mobile-p2p 4688/tcp # Mobile P2P Service [Hanz_Hager] [Hanz_Hager] 2008-12-04 +mobile-p2p 4688/udp # Mobile P2P Service [Hanz_Hager] [Hanz_Hager] 2008-12-04 +altovacentral 4689/tcp # Altova DatabaseCentral [Altova] [Altova] 2005-08 +altovacentral 4689/udp # Altova DatabaseCentral [Altova] [Altova] 2005-08 +prelude 4690/tcp # Prelude IDS message proto [Yoann_Vandoorselaere] [Yoann_Vandoorselaere] 2005-08 +prelude 4690/udp # Prelude IDS message proto [Yoann_Vandoorselaere] [Yoann_Vandoorselaere] 2005-08 +mtn 4691/tcp # monotone Netsync Protocol [Thomas_Keller] [Thomas_Keller] 2010-12-22 +mtn 4691/udp # monotone Netsync Protocol [Thomas_Keller] [Thomas_Keller] 2010-12-22 +conspiracy 4692/tcp # Conspiracy messaging [Jens_Edlund] [Jens_Edlund] 2005-08 +conspiracy 4692/udp # Conspiracy messaging [Jens_Edlund] [Jens_Edlund] 2005-08 +# 4693-4699 Unassigned +netxms-agent 4700/tcp # NetXMS Agent +netxms-agent 4700/udp # NetXMS Agent +netxms-mgmt 4701/tcp # NetXMS Management +netxms-mgmt 4701/udp # NetXMS Management +netxms-sync 4702/tcp # NetXMS Server [Victor_Kirhenshtein] [Victor_Kirhenshtein] 2006-07 +# Synchronization +netxms-sync 4702/udp # NetXMS Server [Victor_Kirhenshtein] [Victor_Kirhenshtein] 2006-07 +# Network Performance Quality +npqes-test 4703/tcp # Evaluation System Test [Zhengli] [Zhengli] 2010-06-28 +# 4703 udp Reserved +assuria-ins 4704/tcp # Assuria Insider [Nick_Connor] [Nick_Connor] 2010-06-30 +# 4704 udp Reserved +# 4705-4724 Unassigned +truckstar 4725/tcp # TruckStar Service [Brian_Toothill] [Brian_Toothill] 2010-10-15 +truckstar 4725/udp # TruckStar Service [Brian_Toothill] [Brian_Toothill] 2010-10-15 +# 4726 tcp Reserved +a26-fap-fgw 4726/udp # A26 (FAP-FGW) [David_Ott] [David_Ott] 2010-10-15 +fcis 4727/tcp # F-Link Client Information +fcis-disc 4727/udp # F-Link Client Information [Makoto_Zukawa] [Makoto_Zukawa] 2010-10-15 +# Service Discovery +capmux 4728/tcp # CA Port Multiplexer [Nigel_Groves] [Nigel_Groves] 2006-06 +capmux 4728/udp # CA Port Multiplexer [Nigel_Groves] [Nigel_Groves] 2006-06 +# 4729 tcp Reserved +gsmtap 4729/udp # GSM Interface Tap [Harald_Welte] [Harald_Welte] 2009-01-16 +gearman 4730/tcp # Gearman Job Queue System [Eric_Day] [Eric_Day] 2009-01-16 +gearman 4730/udp # Gearman Job Queue System [Eric_Day] [Eric_Day] 2009-01-16 +remcap 4731/tcp # Remote Capture Protocol [Marc_Donner] [Marc_Donner] 2009-01-16 +# 4731 udp Reserved +# 4732 tcp Reserved +ohmtrigger 4732/udp # OHM server trigger [Franck_Lefevre] [Franck_Lefevre] 2009-11-18 +resorcs 4733/tcp # RES Orchestration Catalog [Bob_Janssen_2] [Bob_Janssen_2] 2009-11-18 +# 4733 udp Reserved +# 4734-4736 Unassigned +ipdr-sp 4737/tcp # IPDR/SP [Ken_Sarno] [Ken_Sarno] 2005-08 +ipdr-sp 4737/udp # IPDR/SP [Ken_Sarno] [Ken_Sarno] 2005-08 +solera-lpn 4738/tcp # SoleraTec Locator [Mark_Armstrong] [Mark_Armstrong] 2005-12 +solera-lpn 4738/udp # SoleraTec Locator [Mark_Armstrong] [Mark_Armstrong] 2005-12 +ipfix 4739/tcp # IP Flow Info Export [Nevil_Brownlee] [Nevil_Brownlee] 2005-08 +ipfix 4739/udp # IP Flow Info Export [Nevil_Brownlee] [Nevil_Brownlee] 2005-08 +ipfix 4739/sctp # IP Flow Info Export [Nevil_Brownlee] [Nevil_Brownlee] 2006-01 +ipfixs 4740/tcp # ipfix protocol over TLS [Nevil_Brownlee] [Nevil_Brownlee] 2006-10 +ipfixs 4740/sctp # ipfix protocol over DTLS [Nevil_Brownlee] [Nevil_Brownlee] 2006-10 +ipfixs 4740/udp # ipfix protocol over DTLS [Nevil_Brownlee] [Nevil_Brownlee] 2006-10 +lumimgrd 4741/tcp # Luminizer Manager [George_Hwa] [George_Hwa] 2007-03 +lumimgrd 4741/udp # Luminizer Manager [George_Hwa] [George_Hwa] 2007-03 +sicct 4742/tcp # SICCT +sicct-sdp 4742/udp # SICCT Service Discovery [TeleTrusT_Deutschlan] [TeleTrusT_Deutschlan] 2006-04 +openhpid 4743/tcp # openhpi HPI service [Thomas_Kanngieser] [Thomas_Kanngieser] 2006-01 +openhpid 4743/udp # openhpi HPI service [Thomas_Kanngieser] [Thomas_Kanngieser] 2006-01 +ifsp 4744/tcp # Internet File [Alex_White] [Alex_White] 2007-09-12 +# Synchronization Protocol +ifsp 4744/udp # Internet File [Alex_White] [Alex_White] 2007-09-12 +fmp 4745/tcp # Funambol Mobile Push [Andrea_Gazzaniga] [Andrea_Gazzaniga] 2007-01 +fmp 4745/udp # Funambol Mobile Push [Andrea_Gazzaniga] [Andrea_Gazzaniga] 2007-01 +# 4746 Unassigned +buschtrommel 4747/udp # peer-to-peer file exchange [None] [Tobias_Sturm] 2013-01-14 +# 4747 tcp Reserved +# 4748-4748 Unassigned +profilemac 4749/tcp # Profile for Mac [David_Sinclair] [David_Sinclair] 2006-05 +profilemac 4749/udp # Profile for Mac [David_Sinclair] [David_Sinclair] 2006-05 +ssad 4750/tcp # Simple Service Auto [Dr_Horst_Herb] [Dr_Horst_Herb] 2005-12 +# Discovery +ssad 4750/udp # Simple Service Auto [Dr_Horst_Herb] [Dr_Horst_Herb] 2005-12 +spocp 4751/tcp # Simple Policy Control [Roland_Hedberg_2] [Roland_Hedberg_2] 2005-08 +spocp 4751/udp # Simple Policy Control [Roland_Hedberg_2] [Roland_Hedberg_2] 2005-08 +snap 4752/tcp # Simple Network Audio [Dameon_Wagner] [Dameon_Wagner] 2002-02 +snap 4752/udp # Simple Network Audio [Dameon_Wagner] [Dameon_Wagner] 2002-02 +simon 4753/tcp # Simple Invocation of Methods [Alexander_Christian] [Alexander_Christian] 2012-04-19 +# Over Network (SIMON) +# Simple Invocation of Methods +simon-disc 4753/udp # Over Network (SIMON) [Alexander_Christian] [Alexander_Christian] 2012-04-19 +# 4754-4783 Unassigned +bfd-multi-ctl 4784/tcp # BFD Multihop Control [Dave_Katz][Dave_Ward] [Dave_Katz][Dave_Ward] 2006-02 +bfd-multi-ctl 4784/udp # BFD Multihop Control [Dave_Katz][Dave_Ward] [Dave_Katz][Dave_Ward] 2006-02 +# 4785 tcp Reserved +cncp 4785/udp # Cisco Nexus Control Protocol [Joseph_Swaminathan] [Joseph_Swaminathan] 2009-04-01 +smart-install 4786/tcp # Smart Install Service [Amit_Nigam] [Amit_Nigam] 2009-08-24 +# 4786 udp Reserved +# Service Insertion +sia-ctrl-plane 4787/tcp # Architecture (SIA) [Shree_Murthy] [Shree_Murthy] 2009-10-29 +# Control-Plane +# 4787 udp Reserved +# eXtensible Messaging Client Defined TXT keys: txtvers=1 (as described in the draft) +xmcp 4788/tcp # Protocol [Cisco] [Glenn_Matthews] 2011-05-23 2011-10-25 protovers= (examples: "protovers=1.0" "protovers=1.1,2.0" +# 4788 udp Reserved +# 4789-4799 Unassigned +iims 4800/tcp # Icona Instant Messenging +iims 4800/udp # Icona Instant Messenging +iwec 4801/tcp # Icona Web Embedded Chat +iwec 4801/udp # Icona Web Embedded Chat +ilss 4802/tcp # Icona License System Server [Paul_Stephen_Borlie] [Paul_Stephen_Borlie] +ilss 4802/udp # Icona License System Server [Paul_Stephen_Borlie] [Paul_Stephen_Borlie] +notateit 4803/tcp # Notateit Messaging +notateit-disc 4803/udp # Notateit Messaging Discovery [Ean_Black] [Ean_Black] 2009-04-08 +# 4804 tcp Reserved +aja-ntv4-disc 4804/udp # AJA ntv4 Video System [Mike_Bernadett] [Mike_Bernadett] 2010-06-03 +# 4805-4826 Unassigned +htcp 4827/tcp # HTCP [Paul_Vixie] [Paul_Vixie] +htcp 4827/udp # HTCP [Paul_Vixie] [Paul_Vixie] +# 4828-4836 Unassigned +varadero-0 4837/tcp # Varadero-0 +varadero-0 4837/udp # Varadero-0 +varadero-1 4838/tcp # Varadero-1 +varadero-1 4838/udp # Varadero-1 +varadero-2 4839/tcp # Varadero-2 [Carlos_Arteaga] [Carlos_Arteaga] +varadero-2 4839/udp # Varadero-2 [Carlos_Arteaga] [Carlos_Arteaga] +opcua-tcp 4840/tcp # OPC UA TCP Protocol +opcua-udp 4840/udp # OPC UA TCP Protocol [Randy_Armstrong] [Randy_Armstrong] 2006-09 +quosa 4841/tcp # QUOSA Virtual Library [Uri_Blank] [Uri_Blank] 2006-09 +quosa 4841/udp # QUOSA Virtual Library [Uri_Blank] [Uri_Blank] 2006-09 +gw-asv 4842/tcp # nCode ICE-flow Library [Ross_Swithenbank] [Ross_Swithenbank] 2006-09 +# AppServer +gw-asv 4842/udp # nCode ICE-flow Library [Ross_Swithenbank] [Ross_Swithenbank] 2006-09 +opcua-tls 4843/tcp # OPC UA TCP Protocol over [Randy_Armstrong] [Randy_Armstrong] 2006-09 +opcua-tls 4843/udp # OPC UA TCP Protocol over [Randy_Armstrong] [Randy_Armstrong] 2006-09 +gw-log 4844/tcp # nCode ICE-flow Library [Ross_Swithenbank] [Ross_Swithenbank] 2006-09 +# LogServer +gw-log 4844/udp # nCode ICE-flow Library [Ross_Swithenbank] [Ross_Swithenbank] 2006-09 +wcr-remlib 4845/tcp # WordCruncher Remote Library [Jason_Dzubak] [Jason_Dzubak] 2008-03-17 +wcr-remlib 4845/udp # WordCruncher Remote Library [Jason_Dzubak] [Jason_Dzubak] 2008-03-17 +# Contamac ICM Service +# +contamac-icm 4846/tcp # IANA assigned this [Abdullah_Obeid] [Abdullah_Obeid] 2008-03-20 +# "contamac_icm". +# This entry is an alias to "contamac-icm". This entry is now +contamac_icm 4846/tcp # Contamac ICM Service [Abdullah_Obeid] [Abdullah_Obeid] 2008-03-20 historic, not usable for use with many common service +# +contamac-icm 4846/udp # IANA assigned this [Abdullah_Obeid] [Abdullah_Obeid] 2008-03-20 +contamac_icm 4846/udp # Contamac ICM Service [Abdullah_Obeid] [Abdullah_Obeid] 2008-03-20 historic, not usable for use with many common service +wfc 4847/tcp # Web Fresh Communication [Jonathan_Bastnagel] [Jonathan_Bastnagel] 2007-09-17 +wfc 4847/udp # Web Fresh Communication [Jonathan_Bastnagel] [Jonathan_Bastnagel] 2007-09-17 +appserv-http 4848/tcp # App Server - Admin HTTP +appserv-http 4848/udp # App Server - Admin HTTP +appserv-https 4849/tcp # App Server - Admin HTTPS [Sreeram_Duvvuru] [Sreeram_Duvvuru] 2002-04 +appserv-https 4849/udp # App Server - Admin HTTPS [Sreeram_Duvvuru] [Sreeram_Duvvuru] 2002-04 +sun-as-nodeagt 4850/tcp # Sun App Server - NA [Kedar_Mhaswade] [Kedar_Mhaswade] 2004-11 +sun-as-nodeagt 4850/udp # Sun App Server - NA [Kedar_Mhaswade] [Kedar_Mhaswade] 2004-11 +derby-repli 4851/tcp # Apache Derby Replication [Jorgen_Loland] [Jorgen_Loland] 2008-02-27 +derby-repli 4851/udp # Apache Derby Replication [Jorgen_Loland] [Jorgen_Loland] 2008-02-27 +# 4852-4866 Unassigned +unify-debug 4867/tcp # Unify Debugger [Daegis_Inc] [Chris_Anderson] 2006-05 2012-07-31 +unify-debug 4867/udp # Unify Debugger [Daegis_Inc] [Chris_Anderson] 2006-05 2012-07-31 +phrelay 4868/tcp # Photon Relay +phrelay 4868/udp # Photon Relay +phrelaydbg 4869/tcp # Photon Relay Debug [Michael_Hunter] [Michael_Hunter] +phrelaydbg 4869/udp # Photon Relay Debug [Michael_Hunter] [Michael_Hunter] +cc-tracking 4870/tcp # Citcom Tracking Service [Wolfgang_Weidner] [Wolfgang_Weidner] 2005-12 +cc-tracking 4870/udp # Citcom Tracking Service [Wolfgang_Weidner] [Wolfgang_Weidner] 2005-12 +wired 4871/tcp # Wired [Axel_Andersson] [Axel_Andersson] 2006-02 +wired 4871/udp # Wired [Axel_Andersson] [Axel_Andersson] 2006-02 +# 4872-4875 Unassigned +tritium-can 4876/tcp # Tritium CAN Bus Bridge [James_Kennedy] [James_Kennedy] 2011-02-15 +tritium-can 4876/udp # Tritium CAN Bus Bridge [James_Kennedy] [James_Kennedy] 2011-02-15 +lmcs 4877/tcp # Lighting Management Control [Timothy_Parry] [Timothy_Parry] 2011-02-15 +lmcs 4877/udp # Lighting Management Control [Timothy_Parry] [Timothy_Parry] 2011-02-15 +# 4878 tcp Reserved +inst-discovery 4878/udp # Agilent Instrument Discovery [Charles_F_Steele] [Charles_F_Steele] 2011-02-15 +wsdl-event 4879/tcp # WSDL Event Receiver [Charles_F_Steele] [Charles_F_Steele] 2011-02-15 +# 4879 udp Reserved +hislip 4880/tcp # IVI High-Speed LAN [Joe_Mueller] [Joe_Mueller] 2010-01-11 +# Instrument Protocol +# 4880 udp Reserved +# 4881 tcp Reserved +socp-t 4881/udp # SOCP Time Synchronization [Joe_Haver] [Joe_Haver] 2010-05-28 +# 4882 tcp Reserved +socp-c 4882/udp # SOCP Control Protocol [Joe_Haver] [Joe_Haver] 2010-05-28 +wmlserver 4883/tcp # Meier-Phelps License Server [William_Phelps] [William_Phelps] 2010-03-22 +# 4883 udp Reserved +hivestor 4884/tcp # HiveStor Distributed File [Nicholas_Young] [Nicholas_Young] 2008-07-10 +hivestor 4884/udp # HiveStor Distributed File [Nicholas_Young] [Nicholas_Young] 2008-07-10 +abbs 4885/tcp # ABBS [Ryan_Rubley] [Ryan_Rubley] +abbs 4885/udp # ABBS [Ryan_Rubley] [Ryan_Rubley] +# 4886-4893 Unassigned +lyskom 4894/tcp # LysKOM Protocol A [Per_Cederqvist] [Per_Cederqvist] +lyskom 4894/udp # LysKOM Protocol A [Per_Cederqvist] [Per_Cederqvist] +# 4895-4898 Unassigned +radmin-port 4899/tcp # RAdmin Port [Dmitri_Znosko] [Dmitri_Znosko] 2003-03 +radmin-port 4899/udp # RAdmin Port [Dmitri_Znosko] [Dmitri_Znosko] 2003-03 +hfcs 4900/tcp # HyperFileSQL Client/Server [Jerome_AERTS] [Jerome_AERTS] 2010-11-30 +# Database Engine +hfcs 4900/udp # HyperFileSQL Client/Server [Jerome_AERTS] [Jerome_AERTS] 2010-11-30 +# FileLocator Remote Search +# +flr-agent 4901/tcp # IANA assigned this [David_Vest] [David_Vest] 2008-11-19 +# "flr_agent". +# FileLocator Remote Search This entry is an alias to "flr-agent". This entry is now +flr_agent 4901/tcp # Agent [David_Vest] [David_Vest] 2008-11-19 historic, not usable for use with many common service +# 4901 udp Reserved +magiccontrol 4902/tcp # magicCONROL RF and Data [Andreas_Spalenski] [Andreas_Spalenski] 2008-11-24 +# 4902 udp Reserved +# 4903-4911 Unassigned +lutap 4912/tcp # Technicolor LUT Access [Markus_Loeffler] [Markus_Loeffler] 2009-02-17 +# 4912 udp Reserved +lutcp 4913/tcp # LUTher Control Protocol [Markus_Loeffler] [Markus_Loeffler] 2007-07-03 +bones 4914/tcp # Bones Remote Control [Andreas_Foedrowitz] [Andreas_Foedrowitz] 2008-06-18 +bones 4914/udp # Bones Remote Control [Andreas_Foedrowitz] [Andreas_Foedrowitz] 2008-06-18 +frcs 4915/tcp # Fibics Remote Control [Ken_Lagarec] [Ken_Lagarec] 2009-04-17 +# 4915 udp Reserved +# 4916-4936 Unassigned +# 4937 tcp Reserved +atsc-mh-ssc 4937/udp # ATSC-M/H Service Signaling [Jerry_Whitaker] [Jerry_Whitaker] 2008-10-27 +# 4938-4939 Unassigned +eq-office-4940 4940/tcp # Equitrac Office +eq-office-4940 4940/udp # Equitrac Office +eq-office-4941 4941/tcp # Equitrac Office +eq-office-4941 4941/udp # Equitrac Office +eq-office-4942 4942/tcp # Equitrac Office [Tom_Haapanen_2] [Tom_Haapanen_2] 2007-07-11 +eq-office-4942 4942/udp # Equitrac Office [Tom_Haapanen_2] [Tom_Haapanen_2] 2007-07-11 +# 4943-4948 Unassigned +munin 4949/tcp # Munin Graphing Framework [Jimmy_Olsen] [Jimmy_Olsen] 2010-12-24 +munin 4949/udp # Munin Graphing Framework [Jimmy_Olsen] [Jimmy_Olsen] 2010-12-24 +sybasesrvmon 4950/tcp # Sybase Server Monitor [Chris_Irie] [Chris_Irie] 2008-03-26 +sybasesrvmon 4950/udp # Sybase Server Monitor [Chris_Irie] [Chris_Irie] 2008-03-26 +pwgwims 4951/tcp # PWG WIMS [Ira_McDonald] [Ira_McDonald] 2005-12 +pwgwims 4951/udp # PWG WIMS [Ira_McDonald] [Ira_McDonald] 2005-12 +sagxtsds 4952/tcp # SAG Directory Server [Michael_Chirila] [Michael_Chirila] 2006-01 +sagxtsds 4952/udp # SAG Directory Server [Michael_Chirila] [Michael_Chirila] 2006-01 +dbsyncarbiter 4953/tcp # Synchronization Arbiter [Dave_Neudoerffer_2] [Dave_Neudoerffer_2] 2009-11-18 +# 4953 udp Reserved +# 4954-4968 Unassigned USE: port +# 4967 by +# Rockwell FTA +ccss-qmm 4969/tcp # CCSS QMessageMonitor +ccss-qmm 4969/udp # CCSS QMessageMonitor +ccss-qsm 4970/tcp # CCSS QSystemMonitor [David_Young] [David_Young] 2006-01 +ccss-qsm 4970/udp # CCSS QSystemMonitor [David_Young] [David_Young] 2006-01 +# 4971-4982 Unassigned +# 4983 Unassigned 2005-12-22 +webyast 4984/tcp # WebYast [Federico_Lucifredi] [Federico_Lucifredi] 2009-09-25 +# 4984 udp Reserved +gerhcs 4985/tcp # GER HC Standard [Roger_Ward] [Roger_Ward] 2009-09-25 +# 4985 udp Reserved +mrip 4986/tcp # Model Railway Interface [Howard_Amos] [Howard_Amos] 2006-04 +mrip 4986/udp # Model Railway Interface [Howard_Amos] [Howard_Amos] 2006-04 +smar-se-port1 4987/tcp # SMAR Ethernet Port 1 +smar-se-port1 4987/udp # SMAR Ethernet Port 1 +smar-se-port2 4988/tcp # SMAR Ethernet Port 2 [Delcio_Prizon] [Delcio_Prizon] +smar-se-port2 4988/udp # SMAR Ethernet Port 2 [Delcio_Prizon] [Delcio_Prizon] +parallel 4989/tcp # Parallel for GAUSS (tm) [Matthew_Ford] [Matthew_Ford] 2003-03 +parallel 4989/udp # Parallel for GAUSS (tm) [Matthew_Ford] [Matthew_Ford] 2003-03 +busycal 4990/tcp # BusySync Calendar Synch. [David_Riggle] [David_Riggle] 2008-01-07 Defined TXT keys: Proprietary +busycal 4990/udp # BusySync Calendar Synch. [David_Riggle] [David_Riggle] 2008-01-07 Defined TXT keys: Proprietary +vrt 4991/tcp # VITA Radio Transport [Sam_Bretheim] [Sam_Bretheim] 2009-01-08 +vrt 4991/udp # VITA Radio Transport [Sam_Bretheim] [Sam_Bretheim] 2009-01-08 +# 4992-4998 Unassigned +hfcs-manager 4999/tcp # HyperFileSQL Client/Server [Jerome_AERTS] [Jerome_AERTS] 2010-11-30 +# Database Engine Manager +hfcs-manager 4999/udp # HyperFileSQL Client/Server [Jerome_AERTS] [Jerome_AERTS] 2010-11-30 +commplex-main 5000/tcp +commplex-main 5000/udp +commplex-link 5001/tcp +commplex-link 5001/udp +rfe 5002/tcp # radio free ethernet +rfe 5002/udp # radio free ethernet +fmpro-internal 5003/tcp # FileMaker, Inc. - [Clay_Maeckel] [Clay_Maeckel] +# Proprietary transport +fmpro-internal 5003/udp # FileMaker, Inc. - [Clay_Maeckel] [Clay_Maeckel] +# Proprietary name binding +avt-profile-1 5004/tcp # RTP media data [RFC3551][RFC4571] +avt-profile-1 5004/udp # RTP media data [RFC3551] +avt-profile-1 5004/dccp # RTP media data [RFC3551][RFC5762] +avt-profile-2 5005/tcp # RTP control protocol [RFC3551][RFC4571] +avt-profile-2 5005/udp # RTP control protocol [RFC3551] +avt-profile-2 5005/dccp # RTP control protocol [RFC3551][RFC5762] +wsm-server 5006/tcp # wsm server [Adam_Berk] [Adam_Berk] +wsm-server 5006/udp # wsm server [Adam_Berk] [Adam_Berk] +wsm-server-ssl 5007/tcp # wsm server ssl [Adam_Berk] [Adam_Berk] +wsm-server-ssl 5007/udp # wsm server ssl [Adam_Berk] [Adam_Berk] +synapsis-edge 5008/tcp # Synapsis EDGE [Paul_Schilling] [Paul_Schilling] +synapsis-edge 5008/udp # Synapsis EDGE [Paul_Schilling] [Paul_Schilling] +winfs 5009/tcp # Microsoft Windows Filesystem [Simon_Skaria] [Simon_Skaria] 2006-01 +winfs 5009/udp # Microsoft Windows Filesystem [Simon_Skaria] [Simon_Skaria] 2006-01 +telelpathstart 5010/tcp # TelepathStart [Helmuth_Breitenfelln] [Helmuth_Breitenfelln] +telelpathstart 5010/udp # TelepathStart [Helmuth_Breitenfelln] [Helmuth_Breitenfelln] +telelpathattack 5011/tcp # TelepathAttack [Helmuth_Breitenfelln] [Helmuth_Breitenfelln] +telelpathattack 5011/udp # TelepathAttack [Helmuth_Breitenfelln] [Helmuth_Breitenfelln] +nsp 5012/tcp # NetOnTap Service [Kim_Hancock] [Kim_Hancock] 2007-10-24 +nsp 5012/udp # NetOnTap Service [Kim_Hancock] [Kim_Hancock] 2007-10-24 +fmpro-v6 5013/tcp # FileMaker, Inc. - [Alex_Chen] [Alex_Chen] 2007-08-01 +fmpro-v6 5013/udp # FileMaker, Inc. - [Alex_Chen] [Alex_Chen] 2007-08-01 +# 5014 tcp Reserved +onpsocket 5014/udp # Overlay Network Protocol [Roger_Matthias] [Roger_Matthias] 2009-08-24 +fmwp 5015/tcp # FileMaker, Inc. - Web [Alex_Chen] [Alex_Chen] 2009-11-25 +# publishing +# 5015 udp Reserved +# 5016-5019 Unassigned +zenginkyo-1 5020/tcp # zenginkyo-1 [Masashi_Suzaki] [Masashi_Suzaki] +zenginkyo-1 5020/udp # zenginkyo-1 [Masashi_Suzaki] [Masashi_Suzaki] +zenginkyo-2 5021/tcp # zenginkyo-2 [Masashi_Suzaki] [Masashi_Suzaki] +zenginkyo-2 5021/udp # zenginkyo-2 [Masashi_Suzaki] [Masashi_Suzaki] +mice 5022/tcp # mice server [Alan_Clifford] [Alan_Clifford] +mice 5022/udp # mice server [Alan_Clifford] [Alan_Clifford] +htuilsrv 5023/tcp # Htuil Server for PLD2 [Dennis_Reinhardt] [Dennis_Reinhardt] +htuilsrv 5023/udp # Htuil Server for PLD2 [Dennis_Reinhardt] [Dennis_Reinhardt] +scpi-telnet 5024/tcp # SCPI-TELNET [Ryan_Columbus] [Ryan_Columbus] 2002-10 +scpi-telnet 5024/udp # SCPI-TELNET [Ryan_Columbus] [Ryan_Columbus] 2002-10 +scpi-raw 5025/tcp # SCPI-RAW [Ryan_Columbus] [Ryan_Columbus] 2002-10 +scpi-raw 5025/udp # SCPI-RAW [Ryan_Columbus] [Ryan_Columbus] 2002-10 +strexec-d 5026/tcp # Storix I/O daemon (data) [Anthony_Johnson] [Anthony_Johnson] 2005-08 +strexec-d 5026/udp # Storix I/O daemon (data) [Anthony_Johnson] [Anthony_Johnson] 2005-08 +strexec-s 5027/tcp # Storix I/O daemon (stat) [Anthony_Johnson] [Anthony_Johnson] 2005-08 +strexec-s 5027/udp # Storix I/O daemon (stat) [Anthony_Johnson] [Anthony_Johnson] 2005-08 +qvr 5028/tcp # Quiqum Virtual Relais [Philipp_Marcel_Albre] [Philipp_Marcel_Albre] 2009-07-06 +# 5028 udp Reserved +infobright 5029/tcp # Infobright Database Server [Mark_Windrim] [Mark_Windrim] 2009-07-23 +infobright 5029/udp # Infobright Database Server [Mark_Windrim] [Mark_Windrim] 2009-07-23 +surfpass 5030/tcp # SurfPass [Olivier_Guezenec] [Olivier_Guezenec] 2006-12 +surfpass 5030/udp # SurfPass [Olivier_Guezenec] [Olivier_Guezenec] 2006-12 +# 5031 tcp Reserved +dmp 5031/udp # Direct Message Protocol [Gjermund_Wallenius] [Gjermund_Wallenius] 2009-09-30 +signacert-agent 5032/tcp # SignaCert Enterprise Trust [Harris_Corporation] [Daniel_R_Somerfield] 2011-08-05 +# Server Agent +# 5032 udp Reserved +# 5033-5041 Unassigned +asnaacceler8db 5042/tcp # asnaacceler8db [Walter_Goodwin] [Walter_Goodwin] +asnaacceler8db 5042/udp # asnaacceler8db [Walter_Goodwin] [Walter_Goodwin] +swxadmin 5043/tcp # ShopWorX Administration [Don_W_Fitzpatrick] [Don_W_Fitzpatrick] 2005-08 +swxadmin 5043/udp # ShopWorX Administration [Don_W_Fitzpatrick] [Don_W_Fitzpatrick] 2005-08 +lxi-evntsvc 5044/tcp # LXI Event Service [Nick_Barendt] [Nick_Barendt] 2005-08 +lxi-evntsvc 5044/udp # LXI Event Service [Nick_Barendt] [Nick_Barendt] 2005-08 +osp 5045/tcp # Open Settlement Protocol [Dmitry_Isakbayev] [Dmitry_Isakbayev] 2010-03-05 +# 5045 udp Reserved +# 5046 tcp Reserved +vpm-udp 5046/udp # Vishay PM UDP Service [Ashley_Clarke] [Ashley_Clarke] 2010-06-17 +# 5047 tcp Reserved +iscape 5047/udp # iSCAPE Data Broadcasting [Roland_van_der_Veen] [Roland_van_der_Veen] 2010-06-17 +texai 5048/tcp # Texai Message Service [Stephen_Reed_2] [Stephen_Reed_2] 2010-06-17 +# 5048 udp Reserved +ivocalize 5049/tcp # iVocalize Web Conference [Bryan_Vergato] [Bryan_Vergato] 2006-05 +ivocalize 5049/udp # iVocalize Web Conference [Bryan_Vergato] [Bryan_Vergato] 2006-05 +mmcc 5050/tcp # multimedia conference [Steve_Casner] [Steve_Casner] +# control tool +mmcc 5050/udp # multimedia conference [Steve_Casner] [Steve_Casner] +ita-agent 5051/tcp # ITA Agent [Don_Merrell] [Don_Merrell] +ita-agent 5051/udp # ITA Agent [Don_Merrell] [Don_Merrell] +ita-manager 5052/tcp # ITA Manager [Don_Merrell] [Don_Merrell] +ita-manager 5052/udp # ITA Manager [Don_Merrell] [Don_Merrell] +rlm 5053/tcp # RLM License Server [Matt_Christiano_2] [Matt_Christiano_2] 2008-07-28 +rlm-disc 5053/udp # RLM Discovery Server [Reprise_Software_Inc] [Matt_Christiano_3] 2012-11-06 +rlm-admin 5054/tcp # RLM administrative interface [Matt_Christiano_2] [Matt_Christiano_2] 2008-07-28 +# 5054 udp Reserved +unot 5055/tcp # UNOT [Gordon_Mohr_2] [Gordon_Mohr_2] +unot 5055/udp # UNOT [Gordon_Mohr_2] [Gordon_Mohr_2] +intecom-ps1 5056/tcp # Intecom Pointspan 1 [David_Meermans] [David_Meermans] +intecom-ps1 5056/udp # Intecom Pointspan 1 [David_Meermans] [David_Meermans] +intecom-ps2 5057/tcp # Intecom Pointspan 2 [David_Meermans] [David_Meermans] +intecom-ps2 5057/udp # Intecom Pointspan 2 [David_Meermans] [David_Meermans] +# 5058 tcp Reserved +locus-disc 5058/udp # Locus Discovery [Alan_King] [Alan_King] 2009-08-13 +sds 5059/tcp # SIP Directory Services [Arthur_Wilton] [Arthur_Wilton] 2006-03 +sds 5059/udp # SIP Directory Services [Arthur_Wilton] [Arthur_Wilton] 2006-03 +sip 5060/tcp # SIP [Henning_Schulzrinne] [Henning_Schulzrinne] +sip 5060/udp # SIP [Henning_Schulzrinne] [Henning_Schulzrinne] +sip-tls 5061/tcp # SIP-TLS [Henning_Schulzrinne] [Henning_Schulzrinne] +sip-tls 5061/udp # SIP-TLS [Henning_Schulzrinne] [Henning_Schulzrinne] +na-localise 5062/tcp # Localisation access [Jean_Pierre_Garcia_2] [Jean_Pierre_Garcia_2] 2009-10-28 +na-localise 5062/udp # Localisation access [Jean_Pierre_Garcia_2] [Jean_Pierre_Garcia_2] 2009-10-28 +csrpc 5063/tcp # centrify secure RPC [Paul_Moore] [Paul_Moore] 2009-10-28 +# 5063 udp Reserved +ca-1 5064/tcp # Channel Access 1 [Jeffrey_Hill] [Jeffrey_Hill] 2002-08 +ca-1 5064/udp # Channel Access 1 [Jeffrey_Hill] [Jeffrey_Hill] 2002-08 +ca-2 5065/tcp # Channel Access 2 [Jeffrey_Hill] [Jeffrey_Hill] 2002-08 +ca-2 5065/udp # Channel Access 2 [Jeffrey_Hill] [Jeffrey_Hill] 2002-08 +stanag-5066 5066/tcp # STANAG-5066-SUBNET-INTF [Donald_G_Kallgren] [Donald_G_Kallgren] +stanag-5066 5066/udp # STANAG-5066-SUBNET-INTF [Donald_G_Kallgren] [Donald_G_Kallgren] +authentx 5067/tcp # Authentx Service [Alberto_Fernandez] [Alberto_Fernandez] 2006-01 +authentx 5067/udp # Authentx Service [Alberto_Fernandez] [Alberto_Fernandez] 2006-01 +bitforestsrv 5068/tcp # Bitforest Data Service [Ville_Pekka_Vahteala] [Ville_Pekka_Vahteala] 2008-06-05 +# 5068 udp Reserved +i-net-2000-npr 5069/tcp # I/Net 2000-NPR [Chris_Megede] [Chris_Megede] +i-net-2000-npr 5069/udp # I/Net 2000-NPR [Chris_Megede] [Chris_Megede] +vtsas 5070/tcp # VersaTrans Server Agent [Christopher_Miller] [Christopher_Miller] 2006-02 +vtsas 5070/udp # VersaTrans Server Agent [Christopher_Miller] [Christopher_Miller] 2006-02 +powerschool 5071/tcp # PowerSchool [Greg_Porter] [Greg_Porter] +powerschool 5071/udp # PowerSchool [Greg_Porter] [Greg_Porter] +ayiya 5072/tcp # Anything In Anything [Jeroen_Massar] [Jeroen_Massar] 2005-08 +ayiya 5072/udp # Anything In Anything [Jeroen_Massar] [Jeroen_Massar] 2005-08 +tag-pm 5073/tcp # Advantage Group Port Mgr [James_Goddard] [James_Goddard] 2005-08 +tag-pm 5073/udp # Advantage Group Port Mgr [James_Goddard] [James_Goddard] 2005-08 +alesquery 5074/tcp # ALES Query [Tim_Maloney] [Tim_Maloney] 2005-08 +alesquery 5074/udp # ALES Query [Tim_Maloney] [Tim_Maloney] 2005-08 +pvaccess 5075/tcp # Experimental Physics and [Matej_Sekoranja] [Matej_Sekoranja] 2012-03-23 +# Industrial Control System +# 5075 udp Reserved +# 5076-5078 Unassigned +# 5079 tcp Reserved +cp-spxrpts 5079/udp # Cambridge Pixel SPx Reports [Richard_Warren] [Richard_Warren] 2008-09-17 +onscreen 5080/tcp # OnScreen Data Collection [Christopher_Miller_2] [Christopher_Miller_2] 2008-01-14 +onscreen 5080/udp # OnScreen Data Collection [Christopher_Miller_2] [Christopher_Miller_2] 2008-01-14 +sdl-ets 5081/tcp # SDL - Ent Trans Server [Marc_Morin] [Marc_Morin] 2002-04 +sdl-ets 5081/udp # SDL - Ent Trans Server [Marc_Morin] [Marc_Morin] 2002-04 +qcp 5082/tcp # Qpur Communication Protocol [Joachim_Kluemper] [Joachim_Kluemper] 2008-03-19 +qcp 5082/udp # Qpur Communication Protocol [Joachim_Kluemper] [Joachim_Kluemper] 2008-03-19 +qfp 5083/tcp # Qpur File Protocol [Joachim_Kluemper] [Joachim_Kluemper] 2008-03-19 +qfp 5083/udp # Qpur File Protocol [Joachim_Kluemper] [Joachim_Kluemper] 2008-03-19 +llrp 5084/tcp # EPCglobal Low-Level Reader [Margaret_Wasserman][Paul_Dietrich] [Margaret_Wasserman][Paul_Dietrich] 2006-11 Defined TXT keys: None. RFID reader Low Level Reader Protocol +llrp 5084/udp # EPCglobal Low-Level Reader [Margaret_Wasserman][Paul_Dietrich] [Margaret_Wasserman][Paul_Dietrich] 2006-11 Defined TXT keys: None. RFID reader Low Level Reader Protocol +encrypted-llrp 5085/tcp # EPCglobal Encrypted LLRP [Margaret_Wasserman] [Margaret_Wasserman] 2006-11 +encrypted-llrp 5085/udp # EPCglobal Encrypted LLRP [Margaret_Wasserman] [Margaret_Wasserman] 2006-11 +aprigo-cs 5086/tcp # Aprigo Collection Service [Ron_Zalkind] [Ron_Zalkind] 2010-05-28 +# 5086 udp Reserved +# 5087-5089 Unassigned +car 5090/sctp # Candidate AR +cxtp 5091/sctp # Context Transfer Protocol 2005-07 [RFC4065] +# 5092 tcp Reserved +magpie 5092/udp # Magpie Binary [Phil_Maker] [Phil_Maker] 2008-06-18 +sentinel-lm 5093/tcp # Sentinel LM [Derick_Snyder] [Derick_Snyder] +sentinel-lm 5093/udp # Sentinel LM [Derick_Snyder] [Derick_Snyder] +hart-ip 5094/tcp # HART-IP [Wally_Pratt_Jr] [Wally_Pratt_Jr] 2010-03-02 +hart-ip 5094/udp # HART-IP [Wally_Pratt_Jr] [Wally_Pratt_Jr] 2010-03-02 +# 5095-5098 Unassigned +sentlm-srv2srv 5099/tcp # SentLM Srv2Srv [Derick_Snyder] [Derick_Snyder] +sentlm-srv2srv 5099/udp # SentLM Srv2Srv [Derick_Snyder] [Derick_Snyder] +socalia 5100/tcp # Socalia service mux [Alberto_Raydan_2] [Alberto_Raydan_2] 2005-08 +socalia 5100/udp # Socalia service mux [Alberto_Raydan_2] [Alberto_Raydan_2] 2005-08 +talarian-tcp 5101/tcp # Talarian_TCP [Leo_Martins] [Leo_Martins] +talarian-udp 5101/udp # Talarian_UDP [Leo_Martins] [Leo_Martins] +oms-nonsecure 5102/tcp # Oracle OMS non-secure [Todd_Guay] [Todd_Guay] 2005-08 +oms-nonsecure 5102/udp # Oracle OMS non-secure [Todd_Guay] [Todd_Guay] 2005-08 +actifio-c2c 5103/tcp # Actifio C2C [Ravi_Kollipara] [Ravi_Kollipara] 2010-06-18 +# 5103 udp Reserved +# 5104 tcp Reserved +tinymessage 5104/udp # TinyMessage [Josip_Medved] [Josip_Medved] 2010-10-20 +# 5105 tcp Reserved +hughes-ap 5105/udp # Hughes Association Protocol [Varun_Santosh] [Varun_Santosh] 2010-10-20 +# 5106-5110 Unassigned +taep-as-svc 5111/tcp # TAEP AS service [Liu_Changchun] [Liu_Changchun] 2008-11-05 +taep-as-svc 5111/udp # TAEP AS service [Liu_Changchun] [Liu_Changchun] 2008-11-05 +pm-cmdsvr 5112/tcp # PeerMe Msg Cmd Service [Marcos_Della] [Marcos_Della] 2005-08 +pm-cmdsvr 5112/udp # PeerMe Msg Cmd Service [Marcos_Della] [Marcos_Della] 2005-08 +# 5113 Unassigned 2010-11-09 +ev-services 5114/tcp # Enterprise Vault Services [Richard_Jones_2] [Richard_Jones_2] 2009-05-26 +# 5114 udp Reserved +autobuild 5115/tcp # Symantec Autobuild Service [David_Warden] [David_Warden] 2008-11-17 +# 5115 udp Reserved +# 5116 tcp Reserved +emb-proj-cmd 5116/udp # EPSON Projecter Image [SEIKO_EPSON_4] [SEIKO_EPSON_4] 2008-11-17 +gradecam 5117/tcp # GradeCam Image Processing [Robert_Porter] [Robert_Porter] 2009-09-24 +# 5117 udp Reserved +# 5118-5132 Unassigned +nbt-pc 5133/tcp # Policy Commander [Emily_Harris] [Emily_Harris] 2004-11 +nbt-pc 5133/udp # Policy Commander [Emily_Harris] [Emily_Harris] 2004-11 +ppactivation 5134/tcp # PP ActivationServer [Ian_Bradley] [Ian_Bradley] 2009-10-14 +# 5134 udp Reserved +erp-scale 5135/tcp # ERP-Scale [Ian_Bradley] [Ian_Bradley] 2009-10-14 RFC= +# Device= +# 5135 udp Reserved +# 5136 tcp Reserved +minotaur-sa 5136/udp # Minotaur SA [Kenneth_Flynn] [Kenneth_Flynn] 2009-10-14 +ctsd 5137/tcp # MyCTS server port [Jilles_Oldenbeuving] [Jilles_Oldenbeuving] 2002-06 +ctsd 5137/udp # MyCTS server port [Jilles_Oldenbeuving] [Jilles_Oldenbeuving] 2002-06 +# 5138-5144 Unassigned +# RMONITOR SECURE +# +rmonitor-secure 5145/tcp # IANA assigned this [Kory_Hamzeh] [Kory_Hamzeh] +# "rmonitor_secure". +# This entry is an alias to "rmonitor-secure". This entry is +rmonitor_secure 5145/tcp # RMONITOR SECURE [Kory_Hamzeh] [Kory_Hamzeh] now historic, not usable for use with many common service +# +rmonitor-secure 5145/udp # IANA assigned this [Kory_Hamzeh] [Kory_Hamzeh] +rmonitor_secure 5145/udp # RMONITOR SECURE [Kory_Hamzeh] [Kory_Hamzeh] now historic, not usable for use with many common service +social-alarm 5146/tcp # Social Alarm Service [Shaun_Byrne] [Shaun_Byrne] 2009-08-18 +# 5146 udp Reserved +# 5147-5149 Unassigned +atmp 5150/tcp # Ascend Tunnel Management [Kory_Hamzeh] [Kory_Hamzeh] +atmp 5150/udp # Ascend Tunnel Management [Kory_Hamzeh] [Kory_Hamzeh] +# ESRI SDE Instance +esri-sde 5151/tcp # IANA assigned this [Peter_Aronson] [Peter_Aronson] Use Known on +# well-formed service name as ports 5151 +# a replacement for and 5152 +# "esri_sde". +# This entry is an alias to "esri-sde". This entry is now +esri_sde 5151/tcp # ESRI SDE Instance [Peter_Aronson] [Peter_Aronson] historic, not usable for use with many common service +# ESRI SDE Remote Start +esri-sde 5151/udp # IANA assigned this [Peter_Aronson] [Peter_Aronson] Use Known on +esri_sde 5151/udp # ESRI SDE Remote Start [Peter_Aronson] [Peter_Aronson] historic, not usable for use with many common service +sde-discovery 5152/tcp # ESRI SDE Instance Discovery [Peter_Aronson] [Peter_Aronson] Use Known on +# ports 5151 +# and 5152 +sde-discovery 5152/udp # ESRI SDE Instance Discovery [Peter_Aronson] [Peter_Aronson] Use Known on +toruxserver 5153/tcp # ToruX Game Server [Josse_van_Dobben_de] [Josse_van_Dobben_de] 2009-07-01 +# 5153 udp Reserved +bzflag 5154/tcp # BZFlag game server [Tim_Riker] [Tim_Riker] 2003-07 +bzflag 5154/udp # BZFlag game server [Tim_Riker] [Tim_Riker] 2003-07 +asctrl-agent 5155/tcp # Oracle asControl Agent [Todd_Guay] [Todd_Guay] 2005-08 +asctrl-agent 5155/udp # Oracle asControl Agent [Todd_Guay] [Todd_Guay] 2005-08 +rugameonline 5156/tcp # Russian Online Game [Andrey_Mohov] [Andrey_Mohov] 2010-08-17 +# 5156 udp Reserved +mediat 5157/tcp # Mediat Remote Object [Oliver_Anan] [Oliver_Anan] 2010-09-02 +# 5157 udp Reserved +# 5158-5160 Unassigned +snmpssh 5161/tcp # SNMP over SSH Transport [RFC5592] +# Model +# 5161 udp Reserved +snmpssh-trap 5162/tcp # SNMP Notification over SSH [RFC5592] +# Transport Model +# 5162 udp Reserved +sbackup 5163/tcp # Shadow Backup [Glenn_Allen] [Glenn_Allen] 2009-08-05 +# 5163 udp Reserved +vpa 5164/tcp # Virtual Protocol Adapter [Douglas_Goodall] [Douglas_Goodall] 2009-08-05 +vpa-disc 5164/udp # Virtual Protocol Adapter [Douglas_Goodall] [Douglas_Goodall] 2009-08-05 +# ife_1corp +# +ife-icorp 5165/tcp # IANA assigned this [Paul_Annala] [Paul_Annala] +# "ife_icorp". +# This entry is an alias to "ife-icorp". This entry is now +ife_icorp 5165/tcp # ife_1corp [Paul_Annala] [Paul_Annala] historic, not usable for use with many common service +# +ife-icorp 5165/udp # IANA assigned this [Paul_Annala] [Paul_Annala] +ife_icorp 5165/udp # ife_1corp [Paul_Annala] [Paul_Annala] historic, not usable for use with many common service +winpcs 5166/tcp # WinPCS Service Connection [Complan_Network_AS] [Complan_Network_AS] 2006-02 +winpcs 5166/udp # WinPCS Service Connection [Complan_Network_AS] [Complan_Network_AS] 2006-02 +scte104 5167/tcp # SCTE104 Connection [Thomas_Russell] [Thomas_Russell] 2005-05 +scte104 5167/udp # SCTE104 Connection [Thomas_Russell] [Thomas_Russell] 2005-05 +scte30 5168/tcp # SCTE30 Connection [Thomas_Russell] [Thomas_Russell] 2005-05 +scte30 5168/udp # SCTE30 Connection [Thomas_Russell] [Thomas_Russell] 2005-05 +# 5169-5189 Unassigned +aol 5190/tcp # America-Online [Marty_Lyons] [Marty_Lyons] +aol 5190/udp # America-Online [Marty_Lyons] [Marty_Lyons] +aol-1 5191/tcp # AmericaOnline1 [Bruce_Mackey] [Bruce_Mackey] +aol-1 5191/udp # AmericaOnline1 [Bruce_Mackey] [Bruce_Mackey] +aol-2 5192/tcp # AmericaOnline2 [Bruce_Mackey] [Bruce_Mackey] +aol-2 5192/udp # AmericaOnline2 [Bruce_Mackey] [Bruce_Mackey] +aol-3 5193/tcp # AmericaOnline3 [Bruce_Mackey] [Bruce_Mackey] +aol-3 5193/udp # AmericaOnline3 [Bruce_Mackey] [Bruce_Mackey] +cpscomm 5194/tcp # CipherPoint Config Service [CipherPoint] [CipherPoint] 2010-03-03 +# 5194 udp Reserved +# The protocol is used by a +# license server and client +ampl-lic 5195/tcp # programs to control use of [AMPL_Optimization] [David_M_Gay] 2012-05-25 +# program licenses that float +# to networked machines +# 5195 udp Reserved +# The protocol is used by two +ampl-tableproxy 5196/tcp # programs that exchange [AMPL_Optimization] [David_M_Gay] 2012-05-25 +# "table" data used in the +# AMPL modeling language +# 5196 udp Reserved +# 5197-5199 Unassigned +targus-getdata 5200/tcp # TARGUS GetData [John_Keaveney] [John_Keaveney] +targus-getdata 5200/udp # TARGUS GetData [John_Keaveney] [John_Keaveney] +targus-getdata1 5201/tcp # TARGUS GetData 1 [John_Keaveney] [John_Keaveney] +targus-getdata1 5201/udp # TARGUS GetData 1 [John_Keaveney] [John_Keaveney] +targus-getdata2 5202/tcp # TARGUS GetData 2 [John_Keaveney] [John_Keaveney] +targus-getdata2 5202/udp # TARGUS GetData 2 [John_Keaveney] [John_Keaveney] +targus-getdata3 5203/tcp # TARGUS GetData 3 [John_Keaveney] [John_Keaveney] +targus-getdata3 5203/udp # TARGUS GetData 3 [John_Keaveney] [John_Keaveney] +# 5204-5208 Unassigned +nomad 5209/tcp # Nomad Device Video Transfer [Morega_System] [Ashraf_Tahir] 2012-08-20 +# 5209 udp Reserved +# 5210-5220 Unassigned +3exmp 5221/tcp # 3eTI Extensible Management [Bill_Rettig] [Bill_Rettig] 2010-05-19 +# Protocol for OAMP +# 5221 udp Reserved +xmpp-client 5222/tcp # XMPP Client Connection [RFC6120] +# 5222 udp Reserved +hpvirtgrp 5223/tcp # HP Virtual Machine Group [John_Williams] [John_Williams] 2007-06 +hpvirtgrp 5223/udp # HP Virtual Machine Group [John_Williams] [John_Williams] 2007-06 +hpvirtctrl 5224/tcp # HP Virtual Machine Console [John_Williams] [John_Williams] 2007-06 +hpvirtctrl 5224/udp # HP Virtual Machine Console [John_Williams] [John_Williams] 2007-06 +hp-server 5225/tcp # HP Server [Brett_Green_2] [Brett_Green_2] +hp-server 5225/udp # HP Server [Brett_Green_2] [Brett_Green_2] +hp-status 5226/tcp # HP Status [Brett_Green_2] [Brett_Green_2] +hp-status 5226/udp # HP Status [Brett_Green_2] [Brett_Green_2] +perfd 5227/tcp # HP System Performance Metric [Chris_Bertin] [Chris_Bertin] 2009-05-19 +perfd 5227/udp # HP System Performance Metric [Chris_Bertin] [Chris_Bertin] 2009-05-19 +hpvroom 5228/tcp # HP Virtual Room Service [Scott_Levin] [Scott_Levin] 2009-03-19 +# 5228 udp Reserved +# 5229-5231 Unassigned +csedaemon 5232/tcp # Cruse Scanning System [Christof_J_Reetz] [Christof_J_Reetz] 2011-03-09 +# 5232 udp Reserved +enfs 5233/tcp # Etinnae Network File Service [Chris_Peel] [Chris_Peel] 2011-03-09 +# 5233 udp Reserved +eenet 5234/tcp # EEnet communications [Helmut_Giritzer] [Helmut_Giritzer] 2005-11 +eenet 5234/udp # EEnet communications [Helmut_Giritzer] [Helmut_Giritzer] 2005-11 +galaxy-network 5235/tcp # Galaxy Network Service [Michael_Andre_2] [Michael_Andre_2] 2007-10-04 +galaxy-network 5235/udp # Galaxy Network Service [Michael_Andre_2] [Michael_Andre_2] 2007-10-04 +padl2sim 5236/tcp +padl2sim 5236/udp +mnet-discovery 5237/tcp # m-net discovery [Andy_Crick] [Andy_Crick] 2007-11-13 +mnet-discovery 5237/udp # m-net discovery [Andy_Crick] [Andy_Crick] 2007-11-13 +# 5238-5244 Unassigned +downtools 5245/tcp # DownTools Control Protocol [Jarrod_Sayers] [Jarrod_Sayers] 2009-04-07 +downtools-disc 5245/udp # DownTools Discovery Protocol [Jarrod_Sayers] [Jarrod_Sayers] 2009-04-07 +# 5246 tcp Reserved +capwap-control 5246/udp # CAPWAP Control Protocol [RFC5415] +# 5247 tcp Reserved +capwap-data 5247/udp # CAPWAP Data Protocol [RFC5415] +caacws 5248/tcp # CA Access Control Web [Gabriel_Kalmar] [Gabriel_Kalmar] 2008-03-06 +caacws 5248/udp # CA Access Control Web [Gabriel_Kalmar] [Gabriel_Kalmar] 2008-03-06 +caaclang2 5249/tcp # CA AC Lang Service [Gabriel_Kalmar] [Gabriel_Kalmar] 2008-02-19 +caaclang2 5249/udp # CA AC Lang Service [Gabriel_Kalmar] [Gabriel_Kalmar] 2008-02-19 +soagateway 5250/tcp # soaGateway [Greg_Bodine] [Greg_Bodine] 2002-02 +soagateway 5250/udp # soaGateway [Greg_Bodine] [Greg_Bodine] 2002-02 +caevms 5251/tcp # CA eTrust VM Service [Kevin_Bond] [Kevin_Bond] 2004-11 +caevms 5251/udp # CA eTrust VM Service [Kevin_Bond] [Kevin_Bond] 2004-11 +movaz-ssc 5252/tcp # Movaz SSC [Lou_Berger] [Lou_Berger] 2004-11 +movaz-ssc 5252/udp # Movaz SSC [Lou_Berger] [Lou_Berger] 2004-11 +kpdp 5253/tcp # Kohler Power Device Protocol [Bill_Gross] [Bill_Gross] 2010-11-01 +# 5253 udp Reserved +# 5254-5263 Unassigned +3com-njack-1 5264/tcp # 3Com Network Jack Port 1 [Abhay_Rajaram] [Abhay_Rajaram] 2003-03 +3com-njack-1 5264/udp # 3Com Network Jack Port 1 [Abhay_Rajaram] [Abhay_Rajaram] 2003-03 +3com-njack-2 5265/tcp # 3Com Network Jack Port 2 [Abhay_Rajaram] [Abhay_Rajaram] 2003-03 +3com-njack-2 5265/udp # 3Com Network Jack Port 2 [Abhay_Rajaram] [Abhay_Rajaram] 2003-03 +# 5266-5268 Unassigned +xmpp-server 5269/tcp # XMPP Server Connection [RFC6120] +# 5269 udp Reserved +cartographerxmp 5270/tcp # Cartographer XMP [Bobby_Krupczak_2] [Bobby_Krupczak_2] 2008-04-03 2011-08-31 +cartographerxmp 5270/udp # Cartographer XMP [Bobby_Krupczak_2] [Bobby_Krupczak_2] 2008-04-03 2011-08-31 +cuelink 5271/tcp # StageSoft CueLink messaging [Todd_Pichler] [Todd_Pichler] 2010-03-26 +cuelink-disc 5271/udp # StageSoft CueLink discovery [Todd_Pichler] [Todd_Pichler] 2010-03-26 +pk 5272/tcp # PK [Patrick_Kara] [Patrick_Kara] +pk 5272/udp # PK [Patrick_Kara] [Patrick_Kara] +# 5273-5279 Unassigned +xmpp-bosh 5280/tcp # Bidirectional-streams Over [Peter_Saint_Andre] [Peter_Saint_Andre] 2009-11-25 +# Synchronous HTTP (BOSH) +# 5280 udp Reserved +undo-lm 5281/tcp # Undo License Manager [Julian_Smith] [Julian_Smith] 2010-04-19 +# 5281 udp Reserved +transmit-port 5282/tcp # Marimba Transmitter Port [Johan_Eriksson] [Johan_Eriksson] 2002-04 +transmit-port 5282/udp # Marimba Transmitter Port [Johan_Eriksson] [Johan_Eriksson] 2002-04 +# 5283-5297 Unassigned +presence 5298/tcp # XMPP Link-Local Messaging [Eric_St_Onge] [Eric_St_Onge] 2008-01-14 Defined TXT keys: See +# http://www.xmpp.org/registrar/linklocal.html +presence 5298/udp # XMPP Link-Local Messaging [Eric_St_Onge] [Eric_St_Onge] 2008-01-14 Defined TXT keys: See +nlg-data 5299/tcp # NLG Data Service [Andy_Shellam] [Andy_Shellam] 2008-02-19 +nlg-data 5299/udp # NLG Data Service [Andy_Shellam] [Andy_Shellam] 2008-02-19 +hacl-hb 5300/tcp # HA cluster heartbeat [Eric_Soderberg_2][Edward_Yim] [Eric_Soderberg_2][Edward_Yim] +hacl-hb 5300/udp # HA cluster heartbeat [Eric_Soderberg_2][Edward_Yim] [Eric_Soderberg_2][Edward_Yim] +hacl-gs 5301/tcp # HA cluster general services [Eric_Soderberg_2][Edward_Yim] [Eric_Soderberg_2][Edward_Yim] +hacl-gs 5301/udp # HA cluster general services [Eric_Soderberg_2][Edward_Yim] [Eric_Soderberg_2][Edward_Yim] +hacl-cfg 5302/tcp # HA cluster configuration [Eric_Soderberg_2][Edward_Yim] [Eric_Soderberg_2][Edward_Yim] +hacl-cfg 5302/udp # HA cluster configuration [Eric_Soderberg_2][Edward_Yim] [Eric_Soderberg_2][Edward_Yim] +hacl-probe 5303/tcp # HA cluster probing [Eric_Soderberg_2][Edward_Yim] [Eric_Soderberg_2][Edward_Yim] +hacl-probe 5303/udp # HA cluster probing [Eric_Soderberg_2][Edward_Yim] [Eric_Soderberg_2][Edward_Yim] +hacl-local 5304/tcp # HA Cluster Commands [Eric_Soderberg_2][Edward_Yim] [Eric_Soderberg_2][Edward_Yim] +hacl-local 5304/udp # HA Cluster Commands [Eric_Soderberg_2][Edward_Yim] [Eric_Soderberg_2][Edward_Yim] +hacl-test 5305/tcp # HA Cluster Test [Eric_Soderberg_2][Edward_Yim] [Eric_Soderberg_2][Edward_Yim] +hacl-test 5305/udp # HA Cluster Test [Eric_Soderberg_2][Edward_Yim] [Eric_Soderberg_2][Edward_Yim] +sun-mc-grp 5306/tcp # Sun MC Group [Michael_DeMoney] [Michael_DeMoney] +sun-mc-grp 5306/udp # Sun MC Group [Michael_DeMoney] [Michael_DeMoney] +sco-aip 5307/tcp # SCO AIP [Barrie_Cooper] [Barrie_Cooper] +sco-aip 5307/udp # SCO AIP [Barrie_Cooper] [Barrie_Cooper] +cfengine 5308/tcp # CFengine [Mark_Burgess] [Mark_Burgess] +cfengine 5308/udp # CFengine [Mark_Burgess] [Mark_Burgess] +jprinter 5309/tcp # J Printer [Ken_Blackwell] [Ken_Blackwell] +jprinter 5309/udp # J Printer [Ken_Blackwell] [Ken_Blackwell] +outlaws 5310/tcp # Outlaws [Richard_Fife] [Richard_Fife] +outlaws 5310/udp # Outlaws [Richard_Fife] [Richard_Fife] +# 5311 Unassigned 2004-05-07 +permabit-cs 5312/tcp # Permabit Client-Server [Jered_Floyd] [Jered_Floyd] 2004-06 +permabit-cs 5312/udp # Permabit Client-Server [Jered_Floyd] [Jered_Floyd] 2004-06 +rrdp 5313/tcp # Real-time & Reliable Data [Ted_Hoshi] [Ted_Hoshi] 2004-06 +rrdp 5313/udp # Real-time & Reliable Data [Ted_Hoshi] [Ted_Hoshi] 2004-06 +opalis-rbt-ipc 5314/tcp # opalis-rbt-ipc [Laurent_Domenech] [Laurent_Domenech] +opalis-rbt-ipc 5314/udp # opalis-rbt-ipc [Laurent_Domenech] [Laurent_Domenech] +hacl-poll 5315/tcp # HA Cluster UDP Polling [Hoa_Nguyen] [Hoa_Nguyen] +hacl-poll 5315/udp # HA Cluster UDP Polling [Hoa_Nguyen] [Hoa_Nguyen] +hpbladems 5316/tcp # HPBladeSystem Monitor [Alan_Minchew] [Alan_Minchew] 2011-05-23 2011-05-16 +# 5316 udp Unassigned 2011-05-16 +hpdevms 5317/tcp # HP Device Monitor Service [Alan_Minchew] [Alan_Minchew] 2011-05-16 +# 5317 udp Reserved +pkix-cmc 5318/tcp # PKIX Certificate Management [IESG] [IETF_Chair] [RFC6402] +# using CMS (CMC) +# 5318 udp Reserved +# 5319 Unassigned +bsfserver-zn 5320/tcp # Webservices-based Zn [Bert_Paul] [Bert_Paul] 2008-05-01 +# interface of BSF +# 5320 udp Reserved +bsfsvr-zn-ssl 5321/tcp # Webservices-based Zn [Bert_Paul] [Bert_Paul] 2008-07-03 +# interface of BSF over SSL +# 5321 udp Reserved +# 5322-5342 Unassigned +kfserver 5343/tcp # Sculptor Database Server [Keith_Ashman] [Keith_Ashman] 2005-12 +kfserver 5343/udp # Sculptor Database Server [Keith_Ashman] [Keith_Ashman] 2005-12 +xkotodrcp 5344/tcp # xkoto DRCP [Jeff_Heisz] [Jeff_Heisz] 2006-02 +xkotodrcp 5344/udp # xkoto DRCP [Jeff_Heisz] [Jeff_Heisz] 2006-02 +# 5345-5348 Unassigned +stuns 5349/tcp # STUN over TLS [RFC5389] +stuns 5349/udp # Reserved for a future [RFC5389] +# enhancement of STUN +turns 5349/tcp # TURN over TLS [RFC5766] +turns 5349/udp # Reserved for a future [RFC5766] +# enhancement of TURN +stun-behaviors 5349/tcp # STUN Behavior Discovery over [RFC5780] +# TLS +stun-behaviors 5349/udp # Reserved for a future [RFC5780] +# enhancement of STUN-BEHAVIOR +# 5350 tcp Reserved +pcp-multicast 5350/udp # Port Control Protocol [IESG] [IETF_Chair] [RFC-ietf-pcp-base-29] +# Multicast +# 5351 tcp Reserved +pcp 5351/udp # Port Control Protocol [IESG] [IETF_Chair] [RFC-ietf-pcp-base-29] +dns-llq 5352/tcp # DNS Long-Lived Queries [Kiren_Sekar] [Kiren_Sekar] 2005-08 +dns-llq 5352/udp # DNS Long-Lived Queries [Kiren_Sekar] [Kiren_Sekar] 2005-08 +mdns 5353/tcp # Multicast DNS [IESG] [IETF_Chair] [RFC6762] +mdns 5353/udp # Multicast DNS [IESG] [IETF_Chair] [RFC6762] +mdnsresponder 5354/tcp # Multicast DNS Responder IPC [Stuart_Cheshire_3] [Stuart_Cheshire_3] 2004-06 +mdnsresponder 5354/udp # Multicast DNS Responder IPC [Stuart_Cheshire_3] [Stuart_Cheshire_3] 2004-06 +llmnr 5355/tcp # LLMNR [Bernard_Aboba] [Bernard_Aboba] 2004-06 +llmnr 5355/udp # LLMNR [Bernard_Aboba] [Bernard_Aboba] 2004-06 +ms-smlbiz 5356/tcp # Microsoft Small Business [Gopikrishna_Sandra] [Gopikrishna_Sandra] 2005-02 +ms-smlbiz 5356/udp # Microsoft Small Business [Gopikrishna_Sandra] [Gopikrishna_Sandra] 2005-02 +wsdapi 5357/tcp # Web Services for Devices [Henry_Rawas] [Henry_Rawas] 2005-08 +wsdapi 5357/udp # Web Services for Devices [Henry_Rawas] [Henry_Rawas] 2005-08 +wsdapi-s 5358/tcp # WS for Devices Secured [Henry_Rawas] [Henry_Rawas] 2005-08 +wsdapi-s 5358/udp # WS for Devices Secured [Henry_Rawas] [Henry_Rawas] 2005-08 +ms-alerter 5359/tcp # Microsoft Alerter [Marc_McClure] [Marc_McClure] 2007-08-07 +ms-alerter 5359/udp # Microsoft Alerter [Marc_McClure] [Marc_McClure] 2007-08-07 +ms-sideshow 5360/tcp # Protocol for Windows [Dan_Polivy] [Dan_Polivy] 2008-03-12 +# SideShow +ms-sideshow 5360/udp # Protocol for Windows [Dan_Polivy] [Dan_Polivy] 2008-03-12 +ms-s-sideshow 5361/tcp # Secure Protocol for Windows [Dan_Polivy] [Dan_Polivy] 2008-03-12 +ms-s-sideshow 5361/udp # Secure Protocol for Windows [Dan_Polivy] [Dan_Polivy] 2008-03-12 +serverwsd2 5362/tcp # Microsoft Windows Server [Erhan_Soyer_Osman] [Erhan_Soyer_Osman] 2008-03-26 +# WSD2 Service +serverwsd2 5362/udp # Microsoft Windows Server [Erhan_Soyer_Osman] [Erhan_Soyer_Osman] 2008-03-26 +net-projection 5363/tcp # Windows Network Projection [Rob_Williams] [Rob_Williams] 2009-02-17 +net-projection 5363/udp # Windows Network Projection [Rob_Williams] [Rob_Williams] 2009-02-17 +# 5364-5396 Unassigned +stresstester 5397/tcp # StressTester(tm) Injector [Graham_Parsons] [Graham_Parsons] 2005-08 +stresstester 5397/udp # StressTester(tm) Injector [Graham_Parsons] [Graham_Parsons] 2005-08 +elektron-admin 5398/tcp # Elektron Administration [Chris_Hawk] [Chris_Hawk] 2005-08 +elektron-admin 5398/udp # Elektron Administration [Chris_Hawk] [Chris_Hawk] 2005-08 +securitychase 5399/tcp # SecurityChase [Daisuke_Shinomiya] [Daisuke_Shinomiya] 2005-08 +securitychase 5399/udp # SecurityChase [Daisuke_Shinomiya] [Daisuke_Shinomiya] 2005-08 +excerpt 5400/tcp # Excerpt Search [John_Hinsdale] [John_Hinsdale] +excerpt 5400/udp # Excerpt Search [John_Hinsdale] [John_Hinsdale] +excerpts 5401/tcp # Excerpt Search Secure [John_Hinsdale] [John_Hinsdale] +excerpts 5401/udp # Excerpt Search Secure [John_Hinsdale] [John_Hinsdale] +mftp 5402/tcp # OmniCast MFTP [Steve_Bannister] [Steve_Bannister] +mftp 5402/udp # OmniCast MFTP [Steve_Bannister] [Steve_Bannister] +hpoms-ci-lstn 5403/tcp # HPOMS-CI-LSTN [Harold_Froehling] [Harold_Froehling] +hpoms-ci-lstn 5403/udp # HPOMS-CI-LSTN [Harold_Froehling] [Harold_Froehling] +hpoms-dps-lstn 5404/tcp # HPOMS-DPS-LSTN [Harold_Froehling] [Harold_Froehling] +hpoms-dps-lstn 5404/udp # HPOMS-DPS-LSTN [Harold_Froehling] [Harold_Froehling] +netsupport 5405/tcp # NetSupport [Paul_Sanders_2] [Paul_Sanders_2] +netsupport 5405/udp # NetSupport [Paul_Sanders_2] [Paul_Sanders_2] +systemics-sox 5406/tcp # Systemics Sox [Gary_Howland] [Gary_Howland] +systemics-sox 5406/udp # Systemics Sox [Gary_Howland] [Gary_Howland] +foresyte-clear 5407/tcp # Foresyte-Clear [Jorge_Aldana] [Jorge_Aldana] +foresyte-clear 5407/udp # Foresyte-Clear [Jorge_Aldana] [Jorge_Aldana] +foresyte-sec 5408/tcp # Foresyte-Sec [Jorge_Aldana] [Jorge_Aldana] +foresyte-sec 5408/udp # Foresyte-Sec [Jorge_Aldana] [Jorge_Aldana] +salient-dtasrv 5409/tcp # Salient Data Server [Richard_Farnham] [Richard_Farnham] +salient-dtasrv 5409/udp # Salient Data Server [Richard_Farnham] [Richard_Farnham] +salient-usrmgr 5410/tcp # Salient User Manager [Richard_Farnham] [Richard_Farnham] +salient-usrmgr 5410/udp # Salient User Manager [Richard_Farnham] [Richard_Farnham] +actnet 5411/tcp # ActNet [Simon_Robillard] [Simon_Robillard] +actnet 5411/udp # ActNet [Simon_Robillard] [Simon_Robillard] +continuus 5412/tcp # Continuus [Steven_Holtsberg] [Steven_Holtsberg] +continuus 5412/udp # Continuus [Steven_Holtsberg] [Steven_Holtsberg] +wwiotalk 5413/tcp # WWIOTALK [Roger_Knobbe] [Roger_Knobbe] +wwiotalk 5413/udp # WWIOTALK [Roger_Knobbe] [Roger_Knobbe] +statusd 5414/tcp # StatusD [Stephen_Misel_2] [Stephen_Misel_2] +statusd 5414/udp # StatusD [Stephen_Misel_2] [Stephen_Misel_2] +ns-server 5415/tcp # NS Server [Jeffrey_Chiao] [Jeffrey_Chiao] +ns-server 5415/udp # NS Server [Jeffrey_Chiao] [Jeffrey_Chiao] +sns-gateway 5416/tcp # SNS Gateway [Mary_Holstage] [Mary_Holstage] +sns-gateway 5416/udp # SNS Gateway [Mary_Holstage] [Mary_Holstage] +sns-agent 5417/tcp # SNS Agent [Mary_Holstage] [Mary_Holstage] +sns-agent 5417/udp # SNS Agent [Mary_Holstage] [Mary_Holstage] +mcntp 5418/tcp # MCNTP [Heiko_Rupp] [Heiko_Rupp] +mcntp 5418/udp # MCNTP [Heiko_Rupp] [Heiko_Rupp] +dj-ice 5419/tcp # DJ-ICE [Don_Tyson_2] [Don_Tyson_2] +dj-ice 5419/udp # DJ-ICE [Don_Tyson_2] [Don_Tyson_2] +cylink-c 5420/tcp # Cylink-C [John_Jobe] [John_Jobe] +cylink-c 5420/udp # Cylink-C [John_Jobe] [John_Jobe] +netsupport2 5421/tcp # Net Support 2 [Paul_Sanders] [Paul_Sanders] +netsupport2 5421/udp # Net Support 2 [Paul_Sanders] [Paul_Sanders] +salient-mux 5422/tcp # Salient MUX [Richard_Farnham] [Richard_Farnham] +salient-mux 5422/udp # Salient MUX [Richard_Farnham] [Richard_Farnham] +virtualuser 5423/tcp # VIRTUALUSER [Chad_Williams] [Chad_Williams] +virtualuser 5423/udp # VIRTUALUSER [Chad_Williams] [Chad_Williams] +beyond-remote 5424/tcp # Beyond Remote [Michael_Berg] [Michael_Berg] 2004-11 +beyond-remote 5424/udp # Beyond Remote [Michael_Berg] [Michael_Berg] 2004-11 +br-channel 5425/tcp # Beyond Remote Command [Michael_Berg] [Michael_Berg] 2005-08 +br-channel 5425/udp # Beyond Remote Command [Michael_Berg] [Michael_Berg] 2005-08 +devbasic 5426/tcp # DEVBASIC [Curtis_Smith] [Curtis_Smith] +devbasic 5426/udp # DEVBASIC [Curtis_Smith] [Curtis_Smith] +sco-peer-tta 5427/tcp # SCO-PEER-TTA [Andrew_Shire] [Andrew_Shire] +sco-peer-tta 5427/udp # SCO-PEER-TTA [Andrew_Shire] [Andrew_Shire] +telaconsole 5428/tcp # TELACONSOLE [Joseph_M_Newcomer] [Joseph_M_Newcomer] +telaconsole 5428/udp # TELACONSOLE [Joseph_M_Newcomer] [Joseph_M_Newcomer] +base 5429/tcp # Billing and Accounting [Odo_Maletzki] [Odo_Maletzki] +# System Exchange +base 5429/udp # Billing and Accounting [Odo_Maletzki] [Odo_Maletzki] +radec-corp 5430/tcp # RADEC CORP [David_Chell] [David_Chell] +radec-corp 5430/udp # RADEC CORP [David_Chell] [David_Chell] +park-agent 5431/tcp # PARK AGENT [John_Clifford] [John_Clifford] +park-agent 5431/udp # PARK AGENT [John_Clifford] [John_Clifford] +postgresql 5432/tcp # PostgreSQL Database [Tom_Lane] [Tom_Lane] +postgresql 5432/udp # PostgreSQL Database [Tom_Lane] [Tom_Lane] +pyrrho 5433/tcp # Pyrrho DBMS [Malcolm_Crowe] [Malcolm_Crowe] 2005-11 +pyrrho 5433/udp # Pyrrho DBMS [Malcolm_Crowe] [Malcolm_Crowe] 2005-11 +sgi-arrayd 5434/tcp # SGI Array Services Daemon [Karl_Feind] [Karl_Feind] 2005-10 +sgi-arrayd 5434/udp # SGI Array Services Daemon [Karl_Feind] [Karl_Feind] 2005-10 +sceanics 5435/tcp # SCEANICS situation and [Richard_Olsen] [Richard_Olsen] +# action notification +sceanics 5435/udp # SCEANICS situation and [Richard_Olsen] [Richard_Olsen] +# 5436 tcp Reserved +pmip6-cntl 5436/udp # pmip6-cntl [RFC5844] +# 5437 tcp Reserved +pmip6-data 5437/udp # pmip6-data [RFC5844] +# 5438-5442 Unassigned +spss 5443/tcp # Pearson HTTPS [Pearson] [Pearson] 2008-01-17 +spss 5443/udp # Pearson HTTPS [Pearson] [Pearson] 2008-01-17 +# USE: Port +# 5444 by +# as-mgtc, +# AS400 ISeries +# 5444 Unassigned (IBM), w.32 +# zotob worm +# (None), +# 'ppas' +# (EnterpriseDB +# Corporation) +smbdirect 5445/tcp # Server Message Block over [Microsoft_Corporation_2] [Tom_Talpey] 2012-03-15 +# Remote Direct Memory Access +# 5445 udp Reserved +smbdirect 5445/sctp # Server Message Block over [Microsoft_Corporation_2] [Tom_Talpey] 2012-03-15 +# 5446-5452 Unassigned +surebox 5453/tcp # SureBox [Emin_BORU] [Emin_BORU] 2004-11 +surebox 5453/udp # SureBox [Emin_BORU] [Emin_BORU] 2004-11 +apc-5454 5454/tcp # APC 5454 [American_Power_Conve] [American_Power_Conve] +apc-5454 5454/udp # APC 5454 [American_Power_Conve] [American_Power_Conve] +apc-5455 5455/tcp # APC 5455 [American_Power_Conve] [American_Power_Conve] +apc-5455 5455/udp # APC 5455 [American_Power_Conve] [American_Power_Conve] +apc-5456 5456/tcp # APC 5456 [American_Power_Conve] [American_Power_Conve] +apc-5456 5456/udp # APC 5456 [American_Power_Conve] [American_Power_Conve] +# 5457-5460 Unassigned +silkmeter 5461/tcp # SILKMETER [Klaus_Fellner] [Klaus_Fellner] +silkmeter 5461/udp # SILKMETER [Klaus_Fellner] [Klaus_Fellner] +ttl-publisher 5462/tcp # TTL Publisher [Peter_Jacobs] [Peter_Jacobs] +ttl-publisher 5462/udp # TTL Publisher [Peter_Jacobs] [Peter_Jacobs] +ttlpriceproxy 5463/tcp # TTL Price Proxy [Peter_Jacobs] [Peter_Jacobs] +ttlpriceproxy 5463/udp # TTL Price Proxy [Peter_Jacobs] [Peter_Jacobs] +quailnet 5464/tcp # Quail Networks Object Broker [Craig_N_Bissell] [Craig_N_Bissell] 2006-04 +quailnet 5464/udp # Quail Networks Object Broker [Craig_N_Bissell] [Craig_N_Bissell] 2006-04 +netops-broker 5465/tcp # NETOPS-BROKER [John_R_Deuel] [John_R_Deuel] +netops-broker 5465/udp # NETOPS-BROKER [John_R_Deuel] [John_R_Deuel] +# 5466-5499 Unassigned +fcp-addr-srvr1 5500/tcp # fcp-addr-srvr1 [Ken_Wittmer] [Ken_Wittmer] +fcp-addr-srvr1 5500/udp # fcp-addr-srvr1 [Ken_Wittmer] [Ken_Wittmer] +fcp-addr-srvr2 5501/tcp # fcp-addr-srvr2 [Ken_Wittmer] [Ken_Wittmer] +fcp-addr-srvr2 5501/udp # fcp-addr-srvr2 [Ken_Wittmer] [Ken_Wittmer] +fcp-srvr-inst1 5502/tcp # fcp-srvr-inst1 [Ken_Wittmer] [Ken_Wittmer] +fcp-srvr-inst1 5502/udp # fcp-srvr-inst1 [Ken_Wittmer] [Ken_Wittmer] +fcp-srvr-inst2 5503/tcp # fcp-srvr-inst2 [Ken_Wittmer] [Ken_Wittmer] +fcp-srvr-inst2 5503/udp # fcp-srvr-inst2 [Ken_Wittmer] [Ken_Wittmer] +fcp-cics-gw1 5504/tcp # fcp-cics-gw1 [Ken_Wittmer] [Ken_Wittmer] +fcp-cics-gw1 5504/udp # fcp-cics-gw1 [Ken_Wittmer] [Ken_Wittmer] +checkoutdb 5505/tcp # Checkout Database [Dirk_Stoop] [Dirk_Stoop] 2007-04 +checkoutdb 5505/udp # Checkout Database [Dirk_Stoop] [Dirk_Stoop] 2007-04 +amc 5506/tcp # Amcom Mobile Connect [Aaron_Fracht_Monroe] [Aaron_Fracht_Monroe] 2010-06-03 +amc 5506/udp # Amcom Mobile Connect [Aaron_Fracht_Monroe] [Aaron_Fracht_Monroe] 2010-06-03 +# 5507-5552 Unassigned +sgi-eventmond 5553/tcp # SGI Eventmond Port [Andrei_Vilkotski] [Andrei_Vilkotski] 2003-06 +sgi-eventmond 5553/udp # SGI Eventmond Port [Andrei_Vilkotski] [Andrei_Vilkotski] 2003-06 +sgi-esphttp 5554/tcp # SGI ESP HTTP [Vladimir_Legalov] [Vladimir_Legalov] +sgi-esphttp 5554/udp # SGI ESP HTTP [Vladimir_Legalov] [Vladimir_Legalov] +# USE: port +# 5555 by +# Intermec +personal-agent 5555/tcp # Personal Agent [Jackie_Wu] [Jackie_Wu] UDPPlus; +# 5555 also +# used by HP +# Omniback +personal-agent 5555/udp # Personal Agent [Jackie_Wu] [Jackie_Wu] UDPPlus; +freeciv 5556/tcp # Freeciv gameplay [Reinier_Post_and_Pau] [Reinier_Post_and_Pau] 2006-01 +freeciv 5556/udp # Freeciv gameplay [Reinier_Post_and_Pau] [Reinier_Post_and_Pau] 2006-01 +farenet 5557/tcp # Sandlab FARENET [Kay_T_Labinsky] [Kay_T_Labinsky] 2010-05-03 +# 5557 udp Reserved +# 5558-5565 Unassigned +westec-connect 5566/tcp # Westec Connect [Jon_Bolen] [Jon_Bolen] 2009-03-18 +# 5566 udp Reserved +enc-eps-mc-sec 5567/tcp # EMIT protocol stack [Panasonic_Intranet_Panasonic_North_America_PEWLA] [Bryant_Eastham] 2004-11 2012-11-12 +# multicast/secure transport +enc-eps-mc-sec 5567/udp # EMIT protocol stack [Panasonic_Intranet_Panasonic_North_America_PEWLA] [Bryant_Eastham] 2004-11 2012-11-12 +sdt 5568/tcp # Session Data Transport [Daniel_W_Antonuk] [Daniel_W_Antonuk] 2006-05 +sdt 5568/udp # Session Data Transport [Daniel_W_Antonuk] [Daniel_W_Antonuk] 2006-05 +# PLASA E1.33, Remote Device +rdmnet-ctrl 5569/tcp # Management (RDM) controller [PLASA] [Simon_Newton] 2012-06-01 +# status notifications +rdmnet-device 5569/udp # PLASA E1.33, Remote Device [PLASA] [Simon_Newton] 2012-06-01 +# Management (RDM) messages +# 5570-5572 Unassigned +sdmmp 5573/tcp # SAS Domain Management [Ron_Zuckerman] [Ron_Zuckerman] 2007-08-30 +# Messaging Protocol +sdmmp 5573/udp # SAS Domain Management [Ron_Zuckerman] [Ron_Zuckerman] 2007-08-30 +lsi-bobcat 5574/tcp # SAS IO Forwarding [Mandar_Joshi] [Mandar_Joshi] 2009-02-09 +# 5574 udp Reserved +ora-oap 5575/tcp # Oracle Access Protocol [Peter_Povinec] [Peter_Povinec] 2010-04-13 +# 5575 udp Reserved +# 5576-5578 Unassigned +fdtracks 5579/tcp # FleetDisplay Tracking [Henrik_Woffinden] [Henrik_Woffinden] 2008-09-22 +# 5579 udp Reserved +tmosms0 5580/tcp # T-Mobile SMS Protocol [Ezinne_Oji] [Ezinne_Oji] 2006-06 +# Message 0 +tmosms0 5580/udp # T-Mobile SMS Protocol [Ezinne_Oji] [Ezinne_Oji] 2006-06 +tmosms1 5581/tcp # T-Mobile SMS Protocol [Ezinne_Oji] [Ezinne_Oji] 2006-06 +# Message 1 +tmosms1 5581/udp # T-Mobile SMS Protocol [Ezinne_Oji] [Ezinne_Oji] 2006-06 +fac-restore 5582/tcp # T-Mobile SMS Protocol [Jessica_Yan] [Jessica_Yan] 2008-02-19 +# Message 3 +fac-restore 5582/udp # T-Mobile SMS Protocol [Jessica_Yan] [Jessica_Yan] 2008-02-19 +tmo-icon-sync 5583/tcp # T-Mobile SMS Protocol [Donghwan_Lim] [Donghwan_Lim] 2008-01-22 +# Message 2 +tmo-icon-sync 5583/udp # T-Mobile SMS Protocol [Donghwan_Lim] [Donghwan_Lim] 2008-01-22 +bis-web 5584/tcp # BeInSync-Web [Adi_Ruppin] [Adi_Ruppin] 2005-08 +bis-web 5584/udp # BeInSync-Web [Adi_Ruppin] [Adi_Ruppin] 2005-08 +bis-sync 5585/tcp # BeInSync-sync [Adi_Ruppin] [Adi_Ruppin] 2005-08 +bis-sync 5585/udp # BeInSync-sync [Adi_Ruppin] [Adi_Ruppin] 2005-08 +# 5586-5596 Unassigned +ininmessaging 5597/tcp # inin secure messaging [Mike_Gagle_2] [Mike_Gagle_2] 2006-05 +ininmessaging 5597/udp # inin secure messaging [Mike_Gagle_2] [Mike_Gagle_2] 2006-05 +mctfeed 5598/tcp # MCT Market Data Feed [Stephane_Touizer] [Stephane_Touizer] 2006-05 +mctfeed 5598/udp # MCT Market Data Feed [Stephane_Touizer] [Stephane_Touizer] 2006-05 +esinstall 5599/tcp # Enterprise Security Remote [Kimberly_Gibbs] [Kimberly_Gibbs] +# Install +esinstall 5599/udp # Enterprise Security Remote [Kimberly_Gibbs] [Kimberly_Gibbs] +esmmanager 5600/tcp # Enterprise Security Manager [Kimberly_Gibbs] [Kimberly_Gibbs] +esmmanager 5600/udp # Enterprise Security Manager [Kimberly_Gibbs] [Kimberly_Gibbs] +esmagent 5601/tcp # Enterprise Security Agent [Kimberly_Gibbs] [Kimberly_Gibbs] +esmagent 5601/udp # Enterprise Security Agent [Kimberly_Gibbs] [Kimberly_Gibbs] +a1-msc 5602/tcp # A1-MSC [Mike_Dolan] [Mike_Dolan] +a1-msc 5602/udp # A1-MSC [Mike_Dolan] [Mike_Dolan] +a1-bs 5603/tcp # A1-BS [Mike_Dolan] [Mike_Dolan] +a1-bs 5603/udp # A1-BS [Mike_Dolan] [Mike_Dolan] +a3-sdunode 5604/tcp # A3-SDUNode [Mike_Dolan] [Mike_Dolan] +a3-sdunode 5604/udp # A3-SDUNode [Mike_Dolan] [Mike_Dolan] +a4-sdunode 5605/tcp # A4-SDUNode [Mike_Dolan] [Mike_Dolan] +a4-sdunode 5605/udp # A4-SDUNode [Mike_Dolan] [Mike_Dolan] +# 5606-5626 Unassigned +ninaf 5627/tcp # Node Initiated Network [Thomas_Scholl] [Thomas_Scholl] 2006-03 +# Association Forma +ninaf 5627/udp # Node Initiated Network [Thomas_Scholl] [Thomas_Scholl] 2006-03 +htrust 5628/tcp # HTrust API [Karl_Olafsson] [Karl_Olafsson] 2008-10-24 +htrust 5628/udp # HTrust API [Karl_Olafsson] [Karl_Olafsson] 2008-10-24 +symantec-sfdb 5629/tcp # Symantec Storage Foundation [Quang_Thoi] [Quang_Thoi] 2006-11 +# for Database +symantec-sfdb 5629/udp # Symantec Storage Foundation [Quang_Thoi] [Quang_Thoi] 2006-11 +precise-comm 5630/tcp # PreciseCommunication [Alon_Tamir] [Alon_Tamir] 2006-04 +precise-comm 5630/udp # PreciseCommunication [Alon_Tamir] [Alon_Tamir] 2006-04 +pcanywheredata 5631/tcp # pcANYWHEREdata [Jon_Rosarky] [Jon_Rosarky] +pcanywheredata 5631/udp # pcANYWHEREdata [Jon_Rosarky] [Jon_Rosarky] +pcanywherestat 5632/tcp # pcANYWHEREstat [Jon_Rosarky] [Jon_Rosarky] +pcanywherestat 5632/udp # pcANYWHEREstat [Jon_Rosarky] [Jon_Rosarky] +beorl 5633/tcp # BE Operations Request [Chirag_Desai] [Chirag_Desai] 2006-02 +beorl 5633/udp # BE Operations Request [Chirag_Desai] [Chirag_Desai] 2006-02 +xprtld 5634/tcp # SF Message Service [VR_Satish] [VR_Satish] 2007-08-16 +xprtld 5634/udp # SF Message Service [VR_Satish] [VR_Satish] 2007-08-16 +sfmsso 5635/tcp # SFM Authentication Subsystem [De_Chih_Chien] [De_Chih_Chien] 2008-09-15 +# 5635 udp Reserved +sfm-db-server 5636/tcp # SFMdb - SFM DB server [De_Chih_Chien] [De_Chih_Chien] 2008-10-06 +# 5636 udp Reserved +cssc 5637/tcp # Symantec CSSC [Amol_P_Tambe] [Amol_P_Tambe] 2011-02-02 +# 5637 udp Reserved +# Symantec Fingerprint Lookup +flcrs 5638/tcp # and Container Reference [Symantec_Corp] [Neel_A_Bhatt] 2012-01-03 +# 5638 udp Reserved +ics 5639/tcp # Symantec Integrity Checking [Symantec_Corp2] [Danzhou_Liu] 2012-05-07 +# 5639 udp Reserved +# 5640-5645 Unassigned +vfmobile 5646/tcp # Ventureforth Mobile [Ventureforth_Inc] [Blakely_Snyder] 2011-11-03 +# 5646 udp Reserved +# 5647-5669 Unassigned USE: Port +# 5666 used by +# SAIC NRPE +filemq 5670/tcp # ZeroMQ file [ZeroMQ.org] [Pieter_Hintjens2] 2012-11-01 +# publish-subscribe protocol +zre-disc 5670/udp # Local area discovery and [Pieter_Hintjens_3] [Pieter_Hintjens_3] 2012-12-17 +# messaging over ZeroMQ +amqps 5671/tcp # amqp protocol over TLS/SSL [Ted_Ross_2] [Ted_Ross_2] 2008-03-26 +amqps 5671/udp # amqp protocol over TLS/SSL [Ted_Ross_2] [Ted_Ross_2] 2008-03-26 +amqp 5672/tcp # AMQP [Pieter_Hintjens] [Pieter_Hintjens] 2006-01 +amqp 5672/udp # AMQP [Pieter_Hintjens] [Pieter_Hintjens] 2006-01 +amqp 5672/sctp # AMQP [Martin_Sustrik] [Martin_Sustrik] 2007-03 +jms 5673/tcp # JACL Message Server [Stuart_Allen] [Stuart_Allen] 2002-02 +jms 5673/udp # JACL Message Server [Stuart_Allen] [Stuart_Allen] 2002-02 +hyperscsi-port 5674/tcp # HyperSCSI Port [Data_Storage_Institu] [Data_Storage_Institu] 2002-02 +hyperscsi-port 5674/udp # HyperSCSI Port [Data_Storage_Institu] [Data_Storage_Institu] 2002-02 +v5ua 5675/tcp # V5UA application port [RFC3807] +v5ua 5675/udp # V5UA application port [RFC3807] +v5ua 5675/sctp # V5UA application port [RFC3807] +raadmin 5676/tcp # RA Administration [Sergei_Zjaikin] [Sergei_Zjaikin] 2002-02 +raadmin 5676/udp # RA Administration [Sergei_Zjaikin] [Sergei_Zjaikin] 2002-02 +questdb2-lnchr 5677/tcp # Quest Central DB2 Launchr [Robert_M_Mackowiak] [Robert_M_Mackowiak] 2002-02 +questdb2-lnchr 5677/udp # Quest Central DB2 Launchr [Robert_M_Mackowiak] [Robert_M_Mackowiak] 2002-02 +rrac 5678/tcp # Remote Replication Agent +# Connection +rrac 5678/udp # Remote Replication Agent +dccm 5679/tcp # Direct Cable Connect Manager [Mark_Miller_2] [Mark_Miller_2] +dccm 5679/udp # Direct Cable Connect Manager [Mark_Miller_2] [Mark_Miller_2] +auriga-router 5680/tcp # Auriga Router Service [Vincent_Gaudeul] [Vincent_Gaudeul] 2006-02 +auriga-router 5680/udp # Auriga Router Service [Vincent_Gaudeul] [Vincent_Gaudeul] 2006-02 +ncxcp 5681/tcp # Net-coneX Control Protocol [Ryan_Werber] [Ryan_Werber] 2006-06 +ncxcp 5681/udp # Net-coneX Control Protocol [Ryan_Werber] [Ryan_Werber] 2006-06 +# 5682 tcp Reserved +brightcore 5682/udp # BrightCore control & data [Marko_Bjelac] [Marko_Bjelac] 2010-06-10 +# transfer exchange +# 5683 tcp Reserved +coap 5683/udp # Constrained Application 2011-06-13 [draft-ietf-core-coap] +# 5684-5687 Unassigned +ggz 5688/tcp # GGZ Gaming Zone [Josef_Spillner] [Josef_Spillner] 2003-01 +ggz 5688/udp # GGZ Gaming Zone [Josef_Spillner] [Josef_Spillner] 2003-01 +qmvideo 5689/tcp # QM video network management [Jamie_Lokier] [Jamie_Lokier] 2006-05 +qmvideo 5689/udp # QM video network management [Jamie_Lokier] [Jamie_Lokier] 2006-05 +# 5690-5692 Unassigned +rbsystem 5693/tcp # Robert Bosch Data Transfer [Robert_Bosch_GmbH] [Klaus_Warth] 2011-08-01 2012-07-17 +# 5693 udp Reserved +# 5694-5695 Unassigned +kmip 5696/tcp # Key Management [OASIS_KMIP_Technical_Committee] [Robin_Cover] 2011-07-25 +# Interoperability Protocol +# 5696 udp Reserved +# 5697-5712 Unassigned +proshareaudio 5713/tcp # proshare conf audio [gunner] [gunner] +proshareaudio 5713/udp # proshare conf audio [gunner] [gunner] +prosharevideo 5714/tcp # proshare conf video [gunner] [gunner] +prosharevideo 5714/udp # proshare conf video [gunner] [gunner] +prosharedata 5715/tcp # proshare conf data [gunner] [gunner] +prosharedata 5715/udp # proshare conf data [gunner] [gunner] +prosharerequest 5716/tcp # proshare conf request [gunner] [gunner] +prosharerequest 5716/udp # proshare conf request [gunner] [gunner] +prosharenotify 5717/tcp # proshare conf notify [gunner] [gunner] +prosharenotify 5717/udp # proshare conf notify +dpm 5718/tcp # DPM Communication Server [Sundar_Srinivasan][Vinay_Badami] [Sundar_Srinivasan][Vinay_Badami] +dpm 5718/udp # DPM Communication Server [Sundar_Srinivasan][Vinay_Badami] [Sundar_Srinivasan][Vinay_Badami] +dpm-agent 5719/tcp # DPM Agent Coordinator [Sundar_Srinivasan][Vinay_Badami] [Sundar_Srinivasan][Vinay_Badami] 2006-05 +dpm-agent 5719/udp # DPM Agent Coordinator [Sundar_Srinivasan][Vinay_Badami] [Sundar_Srinivasan][Vinay_Badami] 2006-05 +ms-licensing 5720/tcp # MS-Licensing [Thomas_Lindeman] [Thomas_Lindeman] 2002-11 +ms-licensing 5720/udp # MS-Licensing [Thomas_Lindeman] [Thomas_Lindeman] 2002-11 +dtpt 5721/tcp # Desktop Passthru Service [Dan_Leising] [Dan_Leising] 2005-01 +dtpt 5721/udp # Desktop Passthru Service [Dan_Leising] [Dan_Leising] 2005-01 +msdfsr 5722/tcp # Microsoft DFS Replication [Guhan_Suriyanarayana] [Guhan_Suriyanarayana] 2006-03 +msdfsr 5722/udp # Microsoft DFS Replication [Guhan_Suriyanarayana] [Guhan_Suriyanarayana] 2006-03 +omhs 5723/tcp # Operations Manager - Health [Gerardo_Dilillo] [Gerardo_Dilillo] 2006-08 +omhs 5723/udp # Operations Manager - Health [Gerardo_Dilillo] [Gerardo_Dilillo] 2006-08 +omsdk 5724/tcp # Operations Manager - SDK [Gerardo_Dilillo] [Gerardo_Dilillo] 2006-08 +omsdk 5724/udp # Operations Manager - SDK [Gerardo_Dilillo] [Gerardo_Dilillo] 2006-08 +ms-ilm 5725/tcp # Microsoft Identity Lifecycle [Rob_Ward] [Rob_Ward] +# 5725 udp Reserved 2008-05-02 +ms-ilm-sts 5726/tcp # Microsoft Lifecycle Manager [Rob_Ward] [Rob_Ward] +# Secure Token Service +# 5726 udp Reserved 2008-05-02 +asgenf 5727/tcp # ASG Event Notification [Arman_Bedonian] [Arman_Bedonian] 2009-07-15 +# Framework +# 5727 udp Reserved +io-dist-data 5728/tcp # Dist. I/O Comm. Service Data [Harish_Kuttan] [Harish_Kuttan] 2010-03-22 +# and Control +io-dist-group 5728/udp # Dist. I/O Comm. Service [Harish_Kuttan] [Harish_Kuttan] 2010-03-22 +# Group Membership +openmail 5729/tcp # Openmail User Agent Layer [OpenMail_Encyclopedi][Don_Loughry] [OpenMail_Encyclopedi][Don_Loughry] +openmail 5729/udp # Openmail User Agent Layer [OpenMail_Encyclopedi][Don_Loughry] [OpenMail_Encyclopedi][Don_Loughry] +unieng 5730/tcp # Steltor's calendar access [Bernard_Desruisseaux] [Bernard_Desruisseaux] +unieng 5730/udp # Steltor's calendar access [Bernard_Desruisseaux] [Bernard_Desruisseaux] +# 5731-5740 Unassigned +ida-discover1 5741/tcp # IDA Discover Port 1 [MPITech_Support] [MPITech_Support] +ida-discover1 5741/udp # IDA Discover Port 1 [MPITech_Support] [MPITech_Support] +ida-discover2 5742/tcp # IDA Discover Port 2 [MPITech_Support] [MPITech_Support] +ida-discover2 5742/udp # IDA Discover Port 2 [MPITech_Support] [MPITech_Support] +watchdoc-pod 5743/tcp # Watchdoc NetPOD Protocol [Christophe_Chevalier] [Christophe_Chevalier] 2005-08 +watchdoc-pod 5743/udp # Watchdoc NetPOD Protocol [Christophe_Chevalier] [Christophe_Chevalier] 2005-08 +watchdoc 5744/tcp # Watchdoc Server [Christophe_Chevalier] [Christophe_Chevalier] 2004-11 +watchdoc 5744/udp # Watchdoc Server [Christophe_Chevalier] [Christophe_Chevalier] 2004-11 +fcopy-server 5745/tcp # fcopy-server [Moshe_Leibovitch] [Moshe_Leibovitch] +fcopy-server 5745/udp # fcopy-server [Moshe_Leibovitch] [Moshe_Leibovitch] +fcopys-server 5746/tcp # fcopys-server [Moshe_Leibovitch] [Moshe_Leibovitch] +fcopys-server 5746/udp # fcopys-server [Moshe_Leibovitch] [Moshe_Leibovitch] +tunatic 5747/tcp # Wildbits Tunatic [Sylvain_Demongeot] [Sylvain_Demongeot] 2005-08 +tunatic 5747/udp # Wildbits Tunatic [Sylvain_Demongeot] [Sylvain_Demongeot] 2005-08 +tunalyzer 5748/tcp # Wildbits Tunalyzer [Sylvain_Demongeot] [Sylvain_Demongeot] 2005-08 +tunalyzer 5748/udp # Wildbits Tunalyzer [Sylvain_Demongeot] [Sylvain_Demongeot] 2005-08 +# 5749 Unassigned +rscd 5750/tcp # Bladelogic Agent Service [Brian_Trevor] [Brian_Trevor] 2008-10-24 +rscd 5750/udp # Bladelogic Agent Service [Brian_Trevor] [Brian_Trevor] 2008-10-24 +# 5751-5754 Unassigned +openmailg 5755/tcp # OpenMail Desk Gateway server [OpenMail_Encyclopedi][Don_Loughry] [OpenMail_Encyclopedi][Don_Loughry] +openmailg 5755/udp # OpenMail Desk Gateway server [OpenMail_Encyclopedi][Don_Loughry] [OpenMail_Encyclopedi][Don_Loughry] +# 5756 Unassigned +x500ms 5757/tcp # OpenMail X.500 Directory [OpenMail_Encyclopedi][Don_Loughry] [OpenMail_Encyclopedi][Don_Loughry] +x500ms 5757/udp # OpenMail X.500 Directory [OpenMail_Encyclopedi][Don_Loughry] [OpenMail_Encyclopedi][Don_Loughry] +# 5758-5765 Unassigned +openmailns 5766/tcp # OpenMail NewMail Server [OpenMail_Encyclopedi][Don_Loughry] [OpenMail_Encyclopedi][Don_Loughry] +openmailns 5766/udp # OpenMail NewMail Server [OpenMail_Encyclopedi][Don_Loughry] [OpenMail_Encyclopedi][Don_Loughry] +s-openmail 5767/tcp # OpenMail Suer Agent Layer [OpenMail_Encyclopedi][Don_Loughry] [OpenMail_Encyclopedi][Don_Loughry] +# (Secure) +s-openmail 5767/udp # OpenMail Suer Agent Layer [OpenMail_Encyclopedi][Don_Loughry] [OpenMail_Encyclopedi][Don_Loughry] +openmailpxy 5768/tcp # OpenMail CMTS Server [OpenMail_Encyclopedi][Don_Loughry] [OpenMail_Encyclopedi][Don_Loughry] +openmailpxy 5768/udp # OpenMail CMTS Server [OpenMail_Encyclopedi][Don_Loughry] [OpenMail_Encyclopedi][Don_Loughry] +spramsca 5769/tcp # x509solutions Internal CA [Brendan_Fay] [Brendan_Fay] 2006-02 +spramsca 5769/udp # x509solutions Internal CA [Brendan_Fay] [Brendan_Fay] 2006-02 +spramsd 5770/tcp # x509solutions Secure Data [Brendan_Fay] [Brendan_Fay] 2006-02 +spramsd 5770/udp # x509solutions Secure Data [Brendan_Fay] [Brendan_Fay] 2006-02 +netagent 5771/tcp # NetAgent [Bradley_Birnbaum] [Bradley_Birnbaum] +netagent 5771/udp # NetAgent [Bradley_Birnbaum] [Bradley_Birnbaum] +# 5772-5776 Unassigned +dali-port 5777/tcp # DALI Port [Wayne_Morrow][Michael_Melio] [Wayne_Morrow][Michael_Melio] 2003-10 +dali-port 5777/udp # DALI Port [Wayne_Morrow][Michael_Melio] [Wayne_Morrow][Michael_Melio] 2003-10 +# 5778-5779 Unassigned +vts-rpc 5780/tcp # Visual Tag System RPC [Graham_Bloice] [Graham_Bloice] 2009-09-17 +# 5780 udp Reserved +3par-evts 5781/tcp # 3PAR Event Reporting Service [Sushil_Thomas] [Sushil_Thomas] 2008-03-10 +3par-evts 5781/udp # 3PAR Event Reporting Service [Sushil_Thomas] [Sushil_Thomas] 2008-03-10 +3par-mgmt 5782/tcp # 3PAR Management Service [Don_Marselle] [Don_Marselle] 2008-04-09 +3par-mgmt 5782/udp # 3PAR Management Service [Don_Marselle] [Don_Marselle] 2008-04-09 +3par-mgmt-ssl 5783/tcp # 3PAR Management Service with [Don_Marselle] [Don_Marselle] 2008-03-19 +# SSL +3par-mgmt-ssl 5783/udp # 3PAR Management Service with [Don_Marselle] [Don_Marselle] 2008-03-19 +# 5784 tcp Reserved +ibar 5784/udp # Cisco Interbox Application [Cullen_Jennings] [Cullen_Jennings] 2010-02-03 +# Redundancy +3par-rcopy 5785/tcp # 3PAR Inform Remote Copy [Don_Marselle] [Don_Marselle] 2010-02-03 +3par-rcopy 5785/udp # 3PAR Inform Remote Copy [Don_Marselle] [Don_Marselle] 2008-04-09 +# 5786 tcp Reserved +cisco-redu 5786/udp # redundancy notification [Ming_Zhang] [Ming_Zhang] 2010-02-04 +# 5787 tcp Reserved +waascluster 5787/udp # Cisco WAAS Cluster Protocol [Winston_Chou] [Winston_Chou] 2011-02-08 +# 5788-5792 Unassigned +xtreamx 5793/tcp # XtreamX Supervised Peer [Ahmad_Tajuddin_Samsu] [Ahmad_Tajuddin_Samsu] 2007-02 +# message +xtreamx 5793/udp # XtreamX Supervised Peer [Ahmad_Tajuddin_Samsu] [Ahmad_Tajuddin_Samsu] 2007-02 +# 5794 tcp Reserved +spdp 5794/udp # Simple Peered Discovery [Dave_Lindquist] [Dave_Lindquist] 2010-05-27 +# 5795-5812 Unassigned +icmpd 5813/tcp # ICMPD [Shane_O_Donnell] [Shane_O_Donnell] +icmpd 5813/udp # ICMPD [Shane_O_Donnell] [Shane_O_Donnell] +spt-automation 5814/tcp # Support Automation [Joshua_Hawkins] [Joshua_Hawkins] 2003-11 +spt-automation 5814/udp # Support Automation [Joshua_Hawkins] [Joshua_Hawkins] 2003-11 +# 5815-5841 Unassigned +reversion 5842/tcp # Reversion Backup/Restore [Cameo_Systems_Inc] [Craig_Nelson] 2011-09-26 +# 5842 udp Reserved +# 5843-5858 Unassigned +wherehoo 5859/tcp # WHEREHOO [Jim_Youll] [Jim_Youll] +wherehoo 5859/udp # WHEREHOO [Jim_Youll] [Jim_Youll] +# 5860-5862 Unassigned +ppsuitemsg 5863/tcp # PlanetPress Suite Messeng [Yannick_Fortin] [Yannick_Fortin] 2006-02 +ppsuitemsg 5863/udp # PlanetPress Suite Messeng [Yannick_Fortin] [Yannick_Fortin] 2006-02 +# 5864-5867 Unassigned +diameters 5868/tcp # Diameter over TLS/TCP [IESG] [IETF_Chair] [RFC6733] +# 5868 udp Reserved +diameters 5868/sctp # Diameter over DTLS/SCTP [IESG] [IETF_Chair] [RFC6733] +# 5869-5882 Unassigned +jute 5883/tcp # Javascript Unit Test [Mark_Ethan_Trostler] [Mark_Ethan_Trostler] 2011-11-23 +# 5884-5899 Unassigned +rfb 5900/tcp # Remote Framebuffer [Tristan_Richardson] [Tristan_Richardson] 2006-03 [RFC6143] +rfb 5900/udp # Remote Framebuffer [Tristan_Richardson] [Tristan_Richardson] 2006-03 [RFC6143] +# 5901-5909 Unassigned +cm 5910/tcp # Context Management [Eivan_Cerasi] [Eivan_Cerasi] 2008-10-10 +cm 5910/udp # Context Management [Eivan_Cerasi] [Eivan_Cerasi] 2008-10-10 +cm 5910/sctp # Context Management [Justin_Yu] [Justin_Yu] 2011-05-19 +cpdlc 5911/tcp # Controller Pilot Data Link [Eivan_Cerasi] [Eivan_Cerasi] 2008-10-10 +cpdlc 5911/udp # Controller Pilot Data Link [Eivan_Cerasi] [Eivan_Cerasi] 2008-10-10 +cpdlc 5911/sctp # Controller Pilot Data Link [Justin_Yu] [Justin_Yu] 2011-05-18 +fis 5912/tcp # Flight Information Services [Eivan_Cerasi] [Eivan_Cerasi] 2008-10-10 +fis 5912/udp # Flight Information Services [Eivan_Cerasi] [Eivan_Cerasi] 2008-10-10 +fis 5912/sctp # Flight Information Services [Justin_Yu] [Justin_Yu] 2011-05-25 +ads-c 5913/tcp # Automatic Dependent [Eivan_Cerasi] [Eivan_Cerasi] 2008-10-10 +# Surveillance +ads-c 5913/udp # Automatic Dependent [Eivan_Cerasi] [Eivan_Cerasi] 2008-10-10 +ads-c 5913/sctp # Automatic Dependent [Justin_Yu] [Justin_Yu] 2011-05-25 +# 5914-5962 Unassigned +indy 5963/tcp # Indy Application Server [Bjorn_Lantz] [Bjorn_Lantz] 2004-11 +indy 5963/udp # Indy Application Server [Bjorn_Lantz] [Bjorn_Lantz] 2004-11 +# 5964-5967 Unassigned +mppolicy-v5 5968/tcp # mppolicy-v5 [Yutaka_Ono] [Yutaka_Ono] +mppolicy-v5 5968/udp # mppolicy-v5 [Yutaka_Ono] [Yutaka_Ono] +mppolicy-mgr 5969/tcp # mppolicy-mgr [Yutaka_Ono] [Yutaka_Ono] +mppolicy-mgr 5969/udp # mppolicy-mgr [Yutaka_Ono] [Yutaka_Ono] +# 5970-5983 Unassigned +couchdb 5984/tcp # CouchDB [Noah_Slater] [Noah_Slater] 2007-11-27 +couchdb 5984/udp # CouchDB [Noah_Slater] [Noah_Slater] 2007-11-27 +wsman 5985/tcp # WBEM WS-Management HTTP [Jim_Davis] [Jim_Davis] 2006-11 +wsman 5985/udp # WBEM WS-Management HTTP [Jim_Davis] [Jim_Davis] 2006-11 +wsmans 5986/tcp # WBEM WS-Management HTTP over [Jim_Davis] [Jim_Davis] 2006-11 +wsmans 5986/udp # WBEM WS-Management HTTP over [Jim_Davis] [Jim_Davis] 2006-11 +wbem-rmi 5987/tcp # WBEM RMI [Jim_Davis] [Jim_Davis] +wbem-rmi 5987/udp # WBEM RMI [Jim_Davis] [Jim_Davis] +wbem-http 5988/tcp # WBEM CIM-XML (HTTP) [Jim_Davis] [Jim_Davis] +wbem-http 5988/udp # WBEM CIM-XML (HTTP) [Jim_Davis] [Jim_Davis] +wbem-https 5989/tcp # WBEM CIM-XML (HTTPS) [Jim_Davis] [Jim_Davis] +wbem-https 5989/udp # WBEM CIM-XML (HTTPS) [Jim_Davis] [Jim_Davis] +wbem-exp-https 5990/tcp # WBEM Export HTTPS [Denise_Eckstein] [Denise_Eckstein] 2004-11 +wbem-exp-https 5990/udp # WBEM Export HTTPS [Denise_Eckstein] [Denise_Eckstein] 2004-11 +nuxsl 5991/tcp # NUXSL [Kai_Kretschmann] [Kai_Kretschmann] 2002-03 +nuxsl 5991/udp # NUXSL [Kai_Kretschmann] [Kai_Kretschmann] 2002-03 +consul-insight 5992/tcp # Consul InSight Security [Arthur_Hillenaar] [Arthur_Hillenaar] 2006-01 +consul-insight 5992/udp # Consul InSight Security [Arthur_Hillenaar] [Arthur_Hillenaar] 2006-01 +# 5993-5998 Unassigned +cvsup 5999/tcp # CVSup [Randall_Atkinson_2] [Randall_Atkinson_2] +cvsup 5999/udp # CVSup [Randall_Atkinson_2] [Randall_Atkinson_2] +x11 6000/tcp # X Window System [Stephen_Gildea] [Stephen_Gildea] +x11 6000/udp # X Window System [Stephen_Gildea] [Stephen_Gildea] +ndl-ahp-svc 6064/tcp # NDL-AHP-SVC [John_Richmond_2] [John_Richmond_2] +ndl-ahp-svc 6064/udp # NDL-AHP-SVC [John_Richmond_2] [John_Richmond_2] +winpharaoh 6065/tcp # WinPharaoh [Basil_Lee] [Basil_Lee] +winpharaoh 6065/udp # WinPharaoh [Basil_Lee] [Basil_Lee] +ewctsp 6066/tcp # EWCTSP [Mark_Bailon] [Mark_Bailon] +ewctsp 6066/udp # EWCTSP [Mark_Bailon] [Mark_Bailon] +# 6067 Unassigned 2007-07-17 +gsmp-ancp 6068/tcp # GSMP/ANCP [Avri_Doria] [Avri_Doria] [RFC6320] +# 6068 udp Reserved +trip 6069/tcp # TRIP [Hussein_F_Salama] [Hussein_F_Salama] +trip 6069/udp # TRIP [Hussein_F_Salama] [Hussein_F_Salama] +messageasap 6070/tcp # Messageasap [Murray_Freeman] [Murray_Freeman] +messageasap 6070/udp # Messageasap [Murray_Freeman] [Murray_Freeman] +ssdtp 6071/tcp # SSDTP [Michael_Shearson_2] [Michael_Shearson_2] +ssdtp 6071/udp # SSDTP [Michael_Shearson_2] [Michael_Shearson_2] +diagnose-proc 6072/tcp # DIAGNOSE-PROC [Allan_Miller] [Allan_Miller] +diagnose-proc 6072/udp # DIAGNOSE-PROC [Allan_Miller] [Allan_Miller] +directplay8 6073/tcp # DirectPlay8 [John_Kane] [John_Kane] +directplay8 6073/udp # DirectPlay8 [John_Kane] [John_Kane] +max 6074/tcp # Microsoft Max [Jay_Beavers] [Jay_Beavers] 2006-02 +max 6074/udp # Microsoft Max [Jay_Beavers] [Jay_Beavers] 2006-02 +dpm-acm 6075/tcp # Microsoft DPM Access Control [Prabu_Ambravaneswara] [Prabu_Ambravaneswara] 2009-10-29 +# 6075 udp Reserved +msft-dpm-cert 6076/tcp # Microsoft DPM WCF [Microsoft_Corporation] [Prateek_Sharma] 2011-08-04 +# Certificates +# 6076 udp Reserved +iconstructsrv 6077/tcp # iConstruct Server [iConstruct_Aus_Pty_Ltd] [Afshin_Jafari] 2012-12-21 +# 6077 udp Reserved +# 6078-6081 Unassigned +# 6082 tcp Reserved +# APCO Project 25 Common Air +p25cai 6082/udp # Interface - UDP [APCO_Project] [APCO_Project] 2011-05-13 +# encapsulation +# 6083 tcp Reserved +miami-bcast 6083/udp # telecomsoftware miami [Peter_Steiner] [Peter_Steiner] 2011-02-22 +# broadcast +p2p-sip 6084/tcp # Peer to Peer Infrastructure [Cullen_Jennings] [Cullen_Jennings] 2009-01-29 +# 6084 udp Reserved +konspire2b 6085/tcp # konspire2b p2p network [Jason_Rohrer] [Jason_Rohrer] 2002-10 +konspire2b 6085/udp # konspire2b p2p network [Jason_Rohrer] [Jason_Rohrer] 2002-10 +pdtp 6086/tcp # PDTP P2P [Tony_Arcieri] [Tony_Arcieri] 2006-03 +pdtp 6086/udp # PDTP P2P [Tony_Arcieri] [Tony_Arcieri] 2006-03 +ldss 6087/tcp # Local Download Sharing [Clifford_Heath] [Clifford_Heath] 2006-05 +ldss 6087/udp # Local Download Sharing [Clifford_Heath] [Clifford_Heath] 2006-05 +doglms 6088/tcp # SuperDog License Manager [SafeNet] [Rob_Tao] 2012-07-26 +doglms-notify 6088/udp # SuperDog License Manager [SafeNet] [Rob_Tao] 2012-07-26 +# Notifier +# 6089-6098 Unassigned +raxa-mgmt 6099/tcp # RAXA Management [Sukanta_Ganguly] [Sukanta_Ganguly] +# 6099 udp Reserved +synchronet-db 6100/tcp # SynchroNet-db [Arne_Haugland] [Arne_Haugland] +synchronet-db 6100/udp # SynchroNet-db [Arne_Haugland] [Arne_Haugland] +synchronet-rtc 6101/tcp # SynchroNet-rtc [Arne_Haugland] [Arne_Haugland] +synchronet-rtc 6101/udp # SynchroNet-rtc [Arne_Haugland] [Arne_Haugland] +synchronet-upd 6102/tcp # SynchroNet-upd [Arne_Haugland] [Arne_Haugland] +synchronet-upd 6102/udp # SynchroNet-upd [Arne_Haugland] [Arne_Haugland] +rets 6103/tcp # RETS [Bruce_Toback] [Bruce_Toback] +rets 6103/udp # RETS [Bruce_Toback] [Bruce_Toback] +dbdb 6104/tcp # DBDB [Aaron_Brick] [Aaron_Brick] +dbdb 6104/udp # DBDB [Aaron_Brick] [Aaron_Brick] +primaserver 6105/tcp # Prima Server [Prima_Designs_System] [Prima_Designs_System] +primaserver 6105/udp # Prima Server [Prima_Designs_System] [Prima_Designs_System] +mpsserver 6106/tcp # MPS Server [Prima_Designs_System] [Prima_Designs_System] +mpsserver 6106/udp # MPS Server [Prima_Designs_System] [Prima_Designs_System] +etc-control 6107/tcp # ETC Control [Steve_Polishinski] [Steve_Polishinski] +etc-control 6107/udp # ETC Control [Steve_Polishinski] [Steve_Polishinski] +sercomm-scadmin 6108/tcp # Sercomm-SCAdmin [Melinda_Tsao_2] [Melinda_Tsao_2] +sercomm-scadmin 6108/udp # Sercomm-SCAdmin [Melinda_Tsao_2] [Melinda_Tsao_2] +globecast-id 6109/tcp # GLOBECAST-ID [Piers_Scannell_2] [Piers_Scannell_2] +globecast-id 6109/udp # GLOBECAST-ID [Piers_Scannell_2] [Piers_Scannell_2] +softcm 6110/tcp # HP SoftBench CM [Scott_A_Kramer] [Scott_A_Kramer] +softcm 6110/udp # HP SoftBench CM [Scott_A_Kramer] [Scott_A_Kramer] +spc 6111/tcp # HP SoftBench Sub-Process [Scott_A_Kramer] [Scott_A_Kramer] +spc 6111/udp # HP SoftBench Sub-Process [Scott_A_Kramer] [Scott_A_Kramer] +dtspcd 6112/tcp # Desk-Top Sub-Process Control [Doug_Royer] [Doug_Royer] 2010-12-08 +# Daemon +dtspcd 6112/udp # Desk-Top Sub-Process Control [Doug_Royer] [Doug_Royer] 2010-12-08 +dayliteserver 6113/tcp # Daylite Server [Brent_Gulanowski] [Brent_Gulanowski] 2009-08-26 +# 6113 udp Reserved +wrspice 6114/tcp # WRspice IPC Service [Stephen_R_Whiteley] [Stephen_R_Whiteley] 2010-10-07 +# 6114 udp Reserved +xic 6115/tcp # Xic IPC Service [Stephen_R_Whiteley] [Stephen_R_Whiteley] 2010-10-07 +# 6115 udp Reserved +xtlserv 6116/tcp # XicTools License Manager [Stephen_R_Whiteley] [Stephen_R_Whiteley] 2010-10-07 +# 6116 udp Reserved +daylitetouch 6117/tcp # Daylite Touch Sync [Brent_Gulanowski] [Brent_Gulanowski] 2009-08-26 +# 6117 udp Reserved +tipc 6118/udp # Transparent Inter Process [Ericsson] [Erik_Hugne] 2012-09-05 +# 6118 tcp Reserved +# 6119-6120 Unassigned +spdy 6121/tcp # SPDY for a faster web [Matthew_Lloyd] [Matthew_Lloyd] 2010-04-26 +# 6121 udp Reserved +bex-webadmin 6122/tcp # Backup Express Web Server [Chi_Shih_Chang] [Chi_Shih_Chang] 2008-03-19 +bex-webadmin 6122/udp # Backup Express Web Server [Chi_Shih_Chang] [Chi_Shih_Chang] 2008-03-19 +backup-express 6123/tcp # Backup Express [Chi_Shih_Chang] [Chi_Shih_Chang] 2008-03-19 +backup-express 6123/udp # Backup Express [Chi_Shih_Chang] [Chi_Shih_Chang] 2008-03-19 +pnbs 6124/tcp # Phlexible Network Backup [William_R_Lear_2] [William_R_Lear_2] 2008-10-23 +pnbs 6124/udp # Phlexible Network Backup [William_R_Lear_2] [William_R_Lear_2] 2008-10-23 +# 6125-6132 Unassigned +nbt-wol 6133/tcp # New Boundary Tech WOL [Elizabeth_Zilen] [Elizabeth_Zilen] 2004-11 +nbt-wol 6133/udp # New Boundary Tech WOL [Elizabeth_Zilen] [Elizabeth_Zilen] 2004-11 +# 6134-6139 Unassigned +pulsonixnls 6140/tcp # Pulsonix Network License [David_Manns] [David_Manns] 2008-02-28 +pulsonixnls 6140/udp # Pulsonix Network License [David_Manns] [David_Manns] 2008-02-28 +meta-corp 6141/tcp # Meta Corporation License [Osamu_Masuda] [Osamu_Masuda] +meta-corp 6141/udp # Meta Corporation License [Osamu_Masuda] [Osamu_Masuda] +aspentec-lm 6142/tcp # Aspen Technology License [Kevin_Massey] [Kevin_Massey] +aspentec-lm 6142/udp # Aspen Technology License [Kevin_Massey] [Kevin_Massey] +watershed-lm 6143/tcp # Watershed License Manager [David_Ferrero] [David_Ferrero] +watershed-lm 6143/udp # Watershed License Manager [David_Ferrero] [David_Ferrero] +statsci1-lm 6144/tcp # StatSci License Manager - 1 [Scott_Blachowicz] [Scott_Blachowicz] +statsci1-lm 6144/udp # StatSci License Manager - 1 [Scott_Blachowicz] [Scott_Blachowicz] +statsci2-lm 6145/tcp # StatSci License Manager - 2 [Scott_Blachowicz] [Scott_Blachowicz] +statsci2-lm 6145/udp # StatSci License Manager - 2 [Scott_Blachowicz] [Scott_Blachowicz] +lonewolf-lm 6146/tcp # Lone Wolf Systems License [Dan_Klein] [Dan_Klein] +lonewolf-lm 6146/udp # Lone Wolf Systems License [Dan_Klein] [Dan_Klein] +montage-lm 6147/tcp # Montage License Manager [Michael_Ubell] [Michael_Ubell] +montage-lm 6147/udp # Montage License Manager [Michael_Ubell] [Michael_Ubell] +ricardo-lm 6148/tcp # Ricardo North America [M_Flemming] [M_Flemming] +ricardo-lm 6148/udp # Ricardo North America [M_Flemming] [M_Flemming] +tal-pod 6149/tcp # tal-pod [Steven_Loomis] [Steven_Loomis] +tal-pod 6149/udp # tal-pod [Steven_Loomis] [Steven_Loomis] +# 6150-6158 Unassigned +efb-aci 6159/tcp # EFB Application Control [Jonathan_Schaaf] [Jonathan_Schaaf] 2010-02-10 +# 6159 udp Reserved +ecmp 6160/tcp # Emerson Extensible Control [Bryce_Beeston] [Bryce_Beeston] 2011-06-23 +# and Management Protocol +ecmp-data 6160/udp # Emerson Extensible Control [Bryce_Beeston] [Bryce_Beeston] 2011-06-23 +# and Management Protocol Data +patrol-ism 6161/tcp # PATROL Internet Srv Mgr [Portnoy_Boxman] [Portnoy_Boxman] 2005-01 +patrol-ism 6161/udp # PATROL Internet Srv Mgr [Portnoy_Boxman] [Portnoy_Boxman] 2005-01 +patrol-coll 6162/tcp # PATROL Collector [Portnoy_Boxman] [Portnoy_Boxman] 2005-01 +patrol-coll 6162/udp # PATROL Collector [Portnoy_Boxman] [Portnoy_Boxman] 2005-01 +pscribe 6163/tcp # Precision Scribe Cnx Port [Robert_W_Hodges] [Robert_W_Hodges] 2005-01 +pscribe 6163/udp # Precision Scribe Cnx Port [Robert_W_Hodges] [Robert_W_Hodges] 2005-01 +# 6164-6199 Unassigned +lm-x 6200/tcp # LM-X License Manager by [Henrik_Goldman] [Henrik_Goldman] 2006-10 +# X-Formation +lm-x 6200/udp # LM-X License Manager by [Henrik_Goldman] [Henrik_Goldman] 2006-10 +# 6201 tcp Reserved +# Management of service nodes +thermo-calc 6201/udp # in a processing grid for [Thermo-Calc_Software] [Thomas_Revesz] 2012-06-28 +# thermodynamic calculations +# 6202-6221 Unassigned +radmind 6222/tcp # Radmind Access Protocol [Patrick_M_McNeal] [Patrick_M_McNeal] 2006-03 +radmind 6222/udp # Radmind Access Protocol [Patrick_M_McNeal] [Patrick_M_McNeal] 2006-03 +# 6223-6240 Unassigned +jeol-nsdtp-1 6241/tcp # JEOL Network Services Data [Kevin_Wellwood] [Kevin_Wellwood] 2008-04-17 +# Transport Protocol 1 +jeol-nsddp-1 6241/udp # JEOL Network Services [Kevin_Wellwood] [Kevin_Wellwood] 2008-04-17 +# Dynamic Discovery Protocol 1 +jeol-nsdtp-2 6242/tcp # JEOL Network Services Data [Kevin_Wellwood] [Kevin_Wellwood] 2008-04-17 +# Transport Protocol 2 +jeol-nsddp-2 6242/udp # JEOL Network Services [Kevin_Wellwood] [Kevin_Wellwood] 2008-04-17 +# Dynamic Discovery Protocol 2 +jeol-nsdtp-3 6243/tcp # JEOL Network Services Data [Kevin_Wellwood] [Kevin_Wellwood] 2008-04-17 +# Transport Protocol 3 +jeol-nsddp-3 6243/udp # JEOL Network Services [Kevin_Wellwood] [Kevin_Wellwood] 2008-04-17 +# Dynamic Discovery Protocol 3 +jeol-nsdtp-4 6244/tcp # JEOL Network Services Data [Kevin_Wellwood] [Kevin_Wellwood] 2008-04-17 +# Transport Protocol 4 +jeol-nsddp-4 6244/udp # JEOL Network Services [Kevin_Wellwood] [Kevin_Wellwood] 2008-04-17 +# Dynamic Discovery Protocol 4 +# 6245-6250 Unassigned +tl1-raw-ssl 6251/tcp # TL1 Raw Over SSL/TLS [Jim_Humphreys] [Jim_Humphreys] 2008-01-29 +tl1-raw-ssl 6251/udp # TL1 Raw Over SSL/TLS [Jim_Humphreys] [Jim_Humphreys] 2008-01-29 +tl1-ssh 6252/tcp # TL1 over SSH [Jim_Humphreys] [Jim_Humphreys] 2008-01-25 +tl1-ssh 6252/udp # TL1 over SSH [Jim_Humphreys] [Jim_Humphreys] 2008-01-25 +crip 6253/tcp # CRIP [Mike_Rodbell] [Mike_Rodbell] +crip 6253/udp # CRIP [Mike_Rodbell] [Mike_Rodbell] +# 6254-6266 Unassigned +gld 6267/tcp # GridLAB-D User Interface [David_Chassin] [David_Chassin] 2010-12-10 +# 6267 udp Reserved +grid 6268/tcp # Grid Authentication [Jason_Hamilton] [Jason_Hamilton] 2006-06 +grid 6268/udp # Grid Authentication [Jason_Hamilton] [Jason_Hamilton] 2006-06 +grid-alt 6269/tcp # Grid Authentication Alt [Jason_Hamilton] [Jason_Hamilton] 2006-06 +grid-alt 6269/udp # Grid Authentication Alt [Jason_Hamilton] [Jason_Hamilton] 2006-06 +# 6270-6299 Unassigned +bmc-grx 6300/tcp # BMC GRX [Portnoy_Boxman] [Portnoy_Boxman] +bmc-grx 6300/udp # BMC GRX [Portnoy_Boxman] [Portnoy_Boxman] +# BMC CONTROL-D LDAP SERVER +# +bmc-ctd-ldap 6301/tcp # IANA assigned this [Portnoy_Boxman_2] [Portnoy_Boxman_2] 2006-09 +# "bmc_ctd_ldap". +# This entry is an alias to "bmc-ctd-ldap". This entry is now +bmc_ctd_ldap 6301/tcp # BMC CONTROL-D LDAP SERVER [Portnoy_Boxman_2] [Portnoy_Boxman_2] 2006-09 historic, not usable for use with many common service +# +bmc-ctd-ldap 6301/udp # IANA assigned this [Portnoy_Boxman_2] [Portnoy_Boxman_2] 2006-09 +bmc_ctd_ldap 6301/udp # BMC CONTROL-D LDAP SERVER [Portnoy_Boxman_2] [Portnoy_Boxman_2] 2006-09 historic, not usable for use with many common service +# 6302-6305 Unassigned +ufmp 6306/tcp # Unified Fabric Management [Albert_Berlovitch] [Albert_Berlovitch] 2009-12-17 +ufmp 6306/udp # Unified Fabric Management [Albert_Berlovitch] [Albert_Berlovitch] 2009-12-17 +# 6307-6314 Unassigned +scup 6315/tcp # Sensor Control Unit Protocol [Sven_Kopacz] [Sven_Kopacz] 2010-09-01 +scup-disc 6315/udp # Sensor Control Unit Protocol [Sven_Kopacz] [Sven_Kopacz] 2010-09-01 +# Discovery Protocol +abb-escp 6316/tcp # Ethernet Sensor [Jaime_Antolin] [Jaime_Antolin] 2008-09-25 +# Communications Protocol +abb-escp 6316/udp # Ethernet Sensor [Jaime_Antolin] [Jaime_Antolin] 2008-09-25 +nav-data-cmd 6317/tcp # Navtech Radar Sensor Data [Navtech_Radar_Ltd] [Guy_Avery] 2013-02-20 +# Command +nav-data 6317/udp # Navtech Radar Sensor Data [Navtech_Radar_Ltd] [Guy_Avery] 2013-02-20 +# 6318-6319 Unassigned +repsvc 6320/tcp # Double-Take Replication [James_Wilkinson] [James_Wilkinson] 2006-04 +repsvc 6320/udp # Double-Take Replication [James_Wilkinson] [James_Wilkinson] 2006-04 +emp-server1 6321/tcp # Empress Software [Srdjan_Holovac] [Srdjan_Holovac] +# Connectivity Server 1 +emp-server1 6321/udp # Empress Software [Srdjan_Holovac] [Srdjan_Holovac] +emp-server2 6322/tcp # Empress Software [Srdjan_Holovac] [Srdjan_Holovac] +# Connectivity Server 2 +emp-server2 6322/udp # Empress Software [Srdjan_Holovac] [Srdjan_Holovac] +# 6323 Unassigned +hrd-ncs 6324/tcp # HR Device Network [Hall_Research] [Vishal_Dharmadhikari] 2011-11-29 +# Configuration Service +hrd-ns-disc 6324/udp # HR Device Network service [Hall_Research] [Vishal_Dharmadhikari] 2011-11-29 +dt-mgmtsvc 6325/tcp # Double-Take Management [Vision_Solutions] [James_Wilkinson2] 2012-06-06 +# 6325 udp Reserved +dt-vra 6326/tcp # Double-Take Virtual Recovery [Vision_Solutions] [James_Wilkinson2] 2012-10-08 +# Assistant +# 6326 udp Reserved +# 6327-6342 Unassigned +sflow 6343/tcp # sFlow traffic monitoring [Peter_Phaal] [Peter_Phaal] 2003-06 +sflow 6343/udp # sFlow traffic monitoring [Peter_Phaal] [Peter_Phaal] 2003-06 +# 6344-6345 Unassigned +gnutella-svc 6346/tcp # gnutella-svc [Serguei_Osokine] [Serguei_Osokine] +gnutella-svc 6346/udp # gnutella-svc [Serguei_Osokine] [Serguei_Osokine] +gnutella-rtr 6347/tcp # gnutella-rtr [Serguei_Osokine] [Serguei_Osokine] +gnutella-rtr 6347/udp # gnutella-rtr [Serguei_Osokine] [Serguei_Osokine] +# 6348-6349 Unassigned +adap 6350/tcp # App Discovery and Access [Thomas_Kjoernes] [Thomas_Kjoernes] 2010-06-22 +adap 6350/udp # App Discovery and Access [Thomas_Kjoernes] [Thomas_Kjoernes] 2010-06-22 +# 6351-6354 Unassigned +pmcs 6355/tcp # PMCS applications [Pavel_Mendl] [Pavel_Mendl] 2007-03 +pmcs 6355/udp # PMCS applications [Pavel_Mendl] [Pavel_Mendl] 2007-03 +# 6356-6359 Unassigned +metaedit-mu 6360/tcp # MetaEdit+ Multi-User [Steven_Kelly] [Steven_Kelly] 2007-11-12 +metaedit-mu 6360/udp # MetaEdit+ Multi-User [Steven_Kelly] [Steven_Kelly] 2007-11-12 +# 6361-6369 Unassigned +metaedit-se 6370/tcp # MetaEdit+ Server [Steven_Kelly] [Steven_Kelly] 2007-11-12 +metaedit-se 6370/udp # MetaEdit+ Server [Steven_Kelly] [Steven_Kelly] 2007-11-12 +# 6371-6381 Unassigned +metatude-mds 6382/tcp # Metatude Dialogue Server [Menno_Zweistra] [Menno_Zweistra] +metatude-mds 6382/udp # Metatude Dialogue Server [Menno_Zweistra] [Menno_Zweistra] +# 6383-6388 Unassigned +clariion-evr01 6389/tcp # clariion-evr01 [Dave_DesRoches] [Dave_DesRoches] +clariion-evr01 6389/udp # clariion-evr01 [Dave_DesRoches] [Dave_DesRoches] +metaedit-ws 6390/tcp # MetaEdit+ WebService API [Steven_Kelly] [Steven_Kelly] 2007-11-12 +metaedit-ws 6390/udp # MetaEdit+ WebService API [Steven_Kelly] [Steven_Kelly] 2007-11-12 +# 6391-6399 Unassigned +# boe-cms 6400 Business Objects CMS contact [Wade_Richards] [Wade_Richards] 2008-05-05 +# port +# boe-was 6401 boe-was [Wade_Richards] [Wade_Richards] 2008-05-05 +# boe-eventsrv 6402 boe-eventsrv [Wade_Richards] [Wade_Richards] 2008-05-05 +# boe-cachesvr 6403 boe-cachesvr [Wade_Richards] [Wade_Richards] 2008-05-05 +# boe-filesvr 6404 Business Objects Enterprise [Wade_Richards] [Wade_Richards] 2008-05-05 +# internal server +# boe-pagesvr 6405 Business Objects Enterprise [Wade_Richards] [Wade_Richards] 2008-05-05 +# boe-processsvr 6406 Business Objects Enterprise [Wade_Richards] [Wade_Richards] 2008-05-05 +# boe-resssvr1 6407 Business Objects Enterprise [Wade_Richards] [Wade_Richards] 2008-05-05 +# boe-resssvr2 6408 Business Objects Enterprise [Wade_Richards] [Wade_Richards] 2008-05-05 +# boe-resssvr3 6409 Business Objects Enterprise [Wade_Richards] [Wade_Richards] 2008-05-05 +# boe-resssvr4 6410 Business Objects Enterprise [Wade_Richards] [Wade_Richards] 2008-05-05 +# 6411-6416 Unassigned +faxcomservice 6417/tcp # Faxcom Message Service [Albert_Leung] [Albert_Leung] 2006-04 +faxcomservice 6417/udp # Faxcom Message Service [Albert_Leung] [Albert_Leung] 2006-04 +syserverremote 6418/tcp # SYserver remote commands [David_Ashkenazi] [David_Ashkenazi] 2010-03-23 +# 6418 udp Reserved +svdrp 6419/tcp # Simple VDR Protocol [Klaus_Schmidinger] [Klaus_Schmidinger] 2010-03-31 +# 6419 udp Reserved +nim-vdrshell 6420/tcp # NIM_VDRShell [Rik_Ditter] [Rik_Ditter] 2006-02 +nim-vdrshell 6420/udp # NIM_VDRShell [Rik_Ditter] [Rik_Ditter] 2006-02 +nim-wan 6421/tcp # NIM_WAN [Rik_Ditter] [Rik_Ditter] 2006-02 +nim-wan 6421/udp # NIM_WAN [Rik_Ditter] [Rik_Ditter] 2006-02 +# 6422-6431 Unassigned +pgbouncer 6432/tcp # PgBouncer [Marko_Kreen] [Marko_Kreen] 2009-02-13 +# 6432 udp Reserved +# 6433-6442 Unassigned +sun-sr-https 6443/tcp # Service Registry Default [Paul_Sterk] [Paul_Sterk] 2006-03 +# HTTPS Domain +sun-sr-https 6443/udp # Service Registry Default [Paul_Sterk] [Paul_Sterk] 2006-03 +# Grid Engine Qmaster Service +# +sge-qmaster 6444/tcp # IANA assigned this [Andreas_Haas] [Andreas_Haas] 2006-08 +# "sge_qmaster". +# This entry is an alias to "sge-qmaster". This entry is now +sge_qmaster 6444/tcp # Grid Engine Qmaster Service [Andreas_Haas] [Andreas_Haas] 2006-08 historic, not usable for use with many common service +# +sge-qmaster 6444/udp # IANA assigned this [Andreas_Haas] [Andreas_Haas] 2006-08 +sge_qmaster 6444/udp # Grid Engine Qmaster Service [Andreas_Haas] [Andreas_Haas] 2006-08 historic, not usable for use with many common service +# Grid Engine Execution +# +sge-execd 6445/tcp # IANA assigned this [Andreas_Haas] [Andreas_Haas] 2006-08 +# "sge_execd". +# Grid Engine Execution This entry is an alias to "sge-execd". This entry is now +sge_execd 6445/tcp # Service [Andreas_Haas] [Andreas_Haas] 2006-08 historic, not usable for use with many common service +# +sge-execd 6445/udp # IANA assigned this [Andreas_Haas] [Andreas_Haas] 2006-08 +sge_execd 6445/udp # Service [Andreas_Haas] [Andreas_Haas] 2006-08 historic, not usable for use with many common service +mysql-proxy 6446/tcp # MySQL Proxy [Kay_Roepke] [Kay_Roepke] 2009-04-22 +mysql-proxy 6446/udp # MySQL Proxy [Kay_Roepke] [Kay_Roepke] 2009-04-22 +# 6447-6454 Unassigned +skip-cert-recv 6455/tcp # SKIP Certificate Receive [Tom_Markson] [Tom_Markson] +skip-cert-recv 6455/udp # SKIP Certificate Receive [Tom_Markson] [Tom_Markson] +skip-cert-send 6456/tcp # SKIP Certificate Send [Tom_Markson] [Tom_Markson] +skip-cert-send 6456/udp # SKIP Certificate Send [Tom_Markson] [Tom_Markson] +# 6457-6470 Unassigned +lvision-lm 6471/tcp # LVision License Manager [Brian_McKinnon] [Brian_McKinnon] +lvision-lm 6471/udp # LVision License Manager [Brian_McKinnon] [Brian_McKinnon] +# 6472-6479 Unassigned +sun-sr-http 6480/tcp # Service Registry Default [Paul_Sterk] [Paul_Sterk] 2006-03 +# HTTP Domain +sun-sr-http 6480/udp # Service Registry Default [Paul_Sterk] [Paul_Sterk] 2006-03 +servicetags 6481/tcp # Service Tags [Peter_Schow] [Peter_Schow] 2007-01 +servicetags 6481/udp # Service Tags [Peter_Schow] [Peter_Schow] 2007-01 +ldoms-mgmt 6482/tcp # Logical Domains Management [Eric_Sharakan] [Eric_Sharakan] 2008-02-14 +ldoms-mgmt 6482/udp # Logical Domains Management [Eric_Sharakan] [Eric_Sharakan] 2008-02-14 +SunVTS-RMI 6483/tcp # SunVTS RMI [Sumit_Arora] [Sumit_Arora] 2007-06 +SunVTS-RMI 6483/udp # SunVTS RMI [Sumit_Arora] [Sumit_Arora] 2007-06 +sun-sr-jms 6484/tcp # Service Registry Default JMS [Paul_Sterk] [Paul_Sterk] 2006-03 +# Domain +sun-sr-jms 6484/udp # Service Registry Default JMS [Paul_Sterk] [Paul_Sterk] 2006-03 +sun-sr-iiop 6485/tcp # Service Registry Default [Paul_Sterk] [Paul_Sterk] 2006-03 +# IIOP Domain +sun-sr-iiop 6485/udp # Service Registry Default [Paul_Sterk] [Paul_Sterk] 2006-03 +sun-sr-iiops 6486/tcp # Service Registry Default [Paul_Sterk] [Paul_Sterk] 2006-03 +# IIOPS Domain +sun-sr-iiops 6486/udp # Service Registry Default [Paul_Sterk] [Paul_Sterk] 2006-03 +sun-sr-iiop-aut 6487/tcp # Service Registry Default [Paul_Sterk] [Paul_Sterk] 2006-03 +# IIOPAuth Domain +sun-sr-iiop-aut 6487/udp # Service Registry Default [Paul_Sterk] [Paul_Sterk] 2006-03 +sun-sr-jmx 6488/tcp # Service Registry Default JMX [Paul_Sterk] [Paul_Sterk] 2006-03 +sun-sr-jmx 6488/udp # Service Registry Default JMX [Paul_Sterk] [Paul_Sterk] 2006-03 +sun-sr-admin 6489/tcp # Service Registry Default [Paul_Sterk] [Paul_Sterk] 2006-03 +# Admin Domain +sun-sr-admin 6489/udp # Service Registry Default [Paul_Sterk] [Paul_Sterk] 2006-03 +# 6490-6499 Unassigned +boks 6500/tcp # BoKS Master [Magnus_Nystrom] [Magnus_Nystrom] +boks 6500/udp # BoKS Master [Magnus_Nystrom] [Magnus_Nystrom] +# BoKS Servc +# +boks-servc 6501/tcp # IANA assigned this [Magnus_Nystrom] [Magnus_Nystrom] +# "boks_servc". +# This entry is an alias to "boks-servc". This entry is now +boks_servc 6501/tcp # BoKS Servc [Magnus_Nystrom] [Magnus_Nystrom] historic, not usable for use with many common service +# +boks-servc 6501/udp # IANA assigned this [Magnus_Nystrom] [Magnus_Nystrom] +boks_servc 6501/udp # BoKS Servc [Magnus_Nystrom] [Magnus_Nystrom] historic, not usable for use with many common service +# BoKS Servm +# +boks-servm 6502/tcp # IANA assigned this [Magnus_Nystrom] [Magnus_Nystrom] +# "boks_servm". +# This entry is an alias to "boks-servm". This entry is now +boks_servm 6502/tcp # BoKS Servm [Magnus_Nystrom] [Magnus_Nystrom] historic, not usable for use with many common service +# +boks-servm 6502/udp # IANA assigned this [Magnus_Nystrom] [Magnus_Nystrom] +boks_servm 6502/udp # BoKS Servm [Magnus_Nystrom] [Magnus_Nystrom] historic, not usable for use with many common service +# BoKS Clntd +# +boks-clntd 6503/tcp # IANA assigned this [Magnus_Nystrom] [Magnus_Nystrom] +# "boks_clntd". +# This entry is an alias to "boks-clntd". This entry is now +boks_clntd 6503/tcp # BoKS Clntd [Magnus_Nystrom] [Magnus_Nystrom] historic, not usable for use with many common service +# +boks-clntd 6503/udp # IANA assigned this [Magnus_Nystrom] [Magnus_Nystrom] +boks_clntd 6503/udp # BoKS Clntd [Magnus_Nystrom] [Magnus_Nystrom] historic, not usable for use with many common service +# 6504 Unassigned +# BoKS Admin Private Port +# +badm-priv 6505/tcp # IANA assigned this [Magnus_Nystrom] [Magnus_Nystrom] +# "badm_priv". +# This entry is an alias to "badm-priv". This entry is now +badm_priv 6505/tcp # BoKS Admin Private Port [Magnus_Nystrom] [Magnus_Nystrom] historic, not usable for use with many common service +# +badm-priv 6505/udp # IANA assigned this [Magnus_Nystrom] [Magnus_Nystrom] +badm_priv 6505/udp # BoKS Admin Private Port [Magnus_Nystrom] [Magnus_Nystrom] historic, not usable for use with many common service +# BoKS Admin Public Port +# +badm-pub 6506/tcp # IANA assigned this [Magnus_Nystrom] [Magnus_Nystrom] +# "badm_pub". +# This entry is an alias to "badm-pub". This entry is now +badm_pub 6506/tcp # BoKS Admin Public Port [Magnus_Nystrom] [Magnus_Nystrom] historic, not usable for use with many common service +# +badm-pub 6506/udp # IANA assigned this [Magnus_Nystrom] [Magnus_Nystrom] +badm_pub 6506/udp # BoKS Admin Public Port [Magnus_Nystrom] [Magnus_Nystrom] historic, not usable for use with many common service +# BoKS Dir Server, Private +# +bdir-priv 6507/tcp # IANA assigned this [Magnus_Nystrom] [Magnus_Nystrom] +# "bdir_priv". +# BoKS Dir Server, Private This entry is an alias to "bdir-priv". This entry is now +bdir_priv 6507/tcp # Port [Magnus_Nystrom] [Magnus_Nystrom] historic, not usable for use with many common service +# +bdir-priv 6507/udp # IANA assigned this [Magnus_Nystrom] [Magnus_Nystrom] +bdir_priv 6507/udp # Port [Magnus_Nystrom] [Magnus_Nystrom] historic, not usable for use with many common service +# BoKS Dir Server, Public Port +# +bdir-pub 6508/tcp # IANA assigned this [Magnus_Nystrom] [Magnus_Nystrom] +# "bdir_pub". +# This entry is an alias to "bdir-pub". This entry is now +bdir_pub 6508/tcp # BoKS Dir Server, Public Port [Magnus_Nystrom] [Magnus_Nystrom] historic, not usable for use with many common service +# +bdir-pub 6508/udp # IANA assigned this [Magnus_Nystrom] [Magnus_Nystrom] +bdir_pub 6508/udp # BoKS Dir Server, Public Port [Magnus_Nystrom] [Magnus_Nystrom] historic, not usable for use with many common service +mgcs-mfp-port 6509/tcp # MGCS-MFP Port [Minoru_Ozaki] [Minoru_Ozaki] +mgcs-mfp-port 6509/udp # MGCS-MFP Port [Minoru_Ozaki] [Minoru_Ozaki] +mcer-port 6510/tcp # MCER Port [Portnoy_Boxman] [Portnoy_Boxman] +mcer-port 6510/udp # MCER Port [Portnoy_Boxman] [Portnoy_Boxman] +# 6511 tcp Reserved +# Datagram Congestion Control +dccp-udp 6511/udp # Protocol Encapsulation for [IESG] [IETF_Chair] [RFC6773] +# NAT Traversal +# 6512-6512 Unassigned +netconf-tls 6513/tcp # NETCONF over TLS [RFC5539] +# 6513 udp Reserved +syslog-tls 6514/tcp # Syslog over TLS [RFC5425] +syslog-tls 6514/udp # syslog over DTLS [RFC6012] +syslog-tls 6514/dccp # syslog over DTLS [RFC6012] +elipse-rec 6515/tcp # Elipse RPC Protocol [F_Englert] [F_Englert] 2007-09-17 +elipse-rec 6515/udp # Elipse RPC Protocol [F_Englert] [F_Englert] 2007-09-17 +# 6516-6542 Unassigned +lds-distrib 6543/tcp # lds_distrib [Jack_Baker] [Jack_Baker] 2003-06 +lds-distrib 6543/udp # lds_distrib [Jack_Baker] [Jack_Baker] 2003-06 +lds-dump 6544/tcp # LDS Dump Service [Jack_Baker] [Jack_Baker] 2006-02 +lds-dump 6544/udp # LDS Dump Service [Jack_Baker] [Jack_Baker] 2006-02 +# 6545-6546 Unassigned +apc-6547 6547/tcp # APC 6547 [American_Power_Conve] [American_Power_Conve] +apc-6547 6547/udp # APC 6547 [American_Power_Conve] [American_Power_Conve] +apc-6548 6548/tcp # APC 6548 [American_Power_Conve] [American_Power_Conve] +apc-6548 6548/udp # APC 6548 [American_Power_Conve] [American_Power_Conve] +apc-6549 6549/tcp # APC 6549 [American_Power_Conve] [American_Power_Conve] +apc-6549 6549/udp # APC 6549 [American_Power_Conve] [American_Power_Conve] +fg-sysupdate 6550/tcp # fg-sysupdate [Mark_Beyer] [Mark_Beyer] +fg-sysupdate 6550/udp # fg-sysupdate [Mark_Beyer] [Mark_Beyer] +sum 6551/tcp # Software Update Manager [Jan_Dirven] [Jan_Dirven] 2007-12-13 +sum 6551/udp # Software Update Manager [Jan_Dirven] [Jan_Dirven] 2007-12-13 +# 6552-6557 Unassigned +xdsxdm 6558/tcp # [Brian_Tackett] [Brian_Tackett] possible contact +xdsxdm 6558/udp # [Brian_Tackett] [Brian_Tackett] possible contact +# 6559-6565 Unassigned +sane-port 6566/tcp # SANE Control Port [Henning_Meier_Geinit] [Henning_Meier_Geinit] 2002-10 +sane-port 6566/udp # SANE Control Port [Henning_Meier_Geinit] [Henning_Meier_Geinit] 2002-10 +# 6567 Reserved 2007-01 2011-08-26 This entry has been removed on 2011-08-26. +# CanIt Storage Manager +# +canit-store 6568/tcp # IANA assigned this [David_F_Skoll] [David_F_Skoll] 2009-04-22 +# "canit_store". +# This entry is an alias to "canit-store". This entry is now +canit_store 6568/tcp # CanIt Storage Manager [David_F_Skoll] [David_F_Skoll] 2009-04-22 historic, not usable for use with many common service +rp-reputation 6568/udp # Roaring Penguin IP Address [David_F_Skoll] [David_F_Skoll] 2010-02-05 +# Reputation Collection +# 6569-6578 Unassigned +affiliate 6579/tcp # Affiliate [David_Catmull] [David_Catmull] 2006-01 +affiliate 6579/udp # Affiliate [David_Catmull] [David_Catmull] 2006-01 +parsec-master 6580/tcp # Parsec Masterserver [Andreas_Varga] [Andreas_Varga] +parsec-master 6580/udp # Parsec Masterserver [Andreas_Varga] [Andreas_Varga] +parsec-peer 6581/tcp # Parsec Peer-to-Peer [Andreas_Varga] [Andreas_Varga] +parsec-peer 6581/udp # Parsec Peer-to-Peer [Andreas_Varga] [Andreas_Varga] +parsec-game 6582/tcp # Parsec Gameserver [Andreas_Varga] [Andreas_Varga] +parsec-game 6582/udp # Parsec Gameserver [Andreas_Varga] [Andreas_Varga] +joaJewelSuite 6583/tcp # JOA Jewel Suite [Bob_Rundle] [Bob_Rundle] 2005-11 +joaJewelSuite 6583/udp # JOA Jewel Suite [Bob_Rundle] [Bob_Rundle] 2005-11 +# 6584-6587 Unassigned +# Unofficial +# use of port +# 6588 Unassigned 6588 by +# AnalogX and +# Microsoft +# 6589-6599 Unassigned +mshvlm 6600/tcp # Microsoft Hyper-V Live [Rajesh_D] [Rajesh_D] 2009-02-03 +# Migration +# 6600 udp Reserved +mstmg-sstp 6601/tcp # Microsoft Threat Management [Ori_Yosefi] [Ori_Yosefi] 2009-05-04 +# Gateway SSTP +# 6601 udp Reserved +wsscomfrmwk 6602/tcp # Windows WSS Communication [Rong_Yu] [Rong_Yu] 2010-08-10 +# 6602 udp Reserved +# 6603-6618 Unassigned +odette-ftps 6619/tcp # ODETTE-FTP over TLS/SSL [Ieuan_Friend] [Ieuan_Friend] 2006-03 [RFC5024] +odette-ftps 6619/udp # ODETTE-FTP over TLS/SSL [Ieuan_Friend] [Ieuan_Friend] 2006-03 [RFC5024] +kftp-data 6620/tcp # Kerberos V5 FTP Data [Robert_J_Scott] [Robert_J_Scott] 2005-08 +kftp-data 6620/udp # Kerberos V5 FTP Data [Robert_J_Scott] [Robert_J_Scott] 2005-08 +kftp 6621/tcp # Kerberos V5 FTP Control [Robert_J_Scott] [Robert_J_Scott] 2005-08 +kftp 6621/udp # Kerberos V5 FTP Control [Robert_J_Scott] [Robert_J_Scott] 2005-08 +mcftp 6622/tcp # Multicast FTP [Bruce_Lueckenhoff_2] [Bruce_Lueckenhoff_2] 2006-02 +mcftp 6622/udp # Multicast FTP [Bruce_Lueckenhoff_2] [Bruce_Lueckenhoff_2] 2006-02 +ktelnet 6623/tcp # Kerberos V5 Telnet [Robert_J_Scott] [Robert_J_Scott] 2005-08 +ktelnet 6623/udp # Kerberos V5 Telnet [Robert_J_Scott] [Robert_J_Scott] 2005-08 +datascaler-db 6624/tcp # DataScaler database [Vasu_Murthy] [Vasu_Murthy] 2010-02-08 +# 6624 udp Reserved +datascaler-ctl 6625/tcp # DataScaler control [Vasu_Murthy] [Vasu_Murthy] 2010-02-08 +# 6625 udp Reserved +wago-service 6626/tcp # WAGO Service and Update [Wolfgang_Adler] [Wolfgang_Adler] 2006-04 +wago-service 6626/udp # WAGO Service and Update [Wolfgang_Adler] [Wolfgang_Adler] 2006-04 +nexgen 6627/tcp # Allied Electronics NeXGen [Lou_Seitchik] [Lou_Seitchik] 2005-08 +nexgen 6627/udp # Allied Electronics NeXGen [Lou_Seitchik] [Lou_Seitchik] 2005-08 +afesc-mc 6628/tcp # AFE Stock Channel M/C [K_K_Ho] [K_K_Ho] 2004-04 +afesc-mc 6628/udp # AFE Stock Channel M/C [K_K_Ho] [K_K_Ho] 2004-04 +# 6629-6630 Unassigned +# 6631 Unassigned 2004-05-28 +mxodbc-connect 6632/tcp # eGenix mxODBC Connect [Marc_Andre_Lemburg] [Marc_Andre_Lemburg] 2009-11-13 +# 6632 udp Reserved +# 6633 tcp Reserved +cisco-vpath-tun 6633/udp # Cisco vPath Services Overlay [Cisco2] [Surendra_Kumar] 2012-06-11 +# 6634-6654 Unassigned +pcs-sf-ui-man 6655/tcp # PC SOFT - Software factory [Jerome_AERTS] [Jerome_AERTS] 2010-11-30 +# UI/manager +# 6655 udp Reserved +emgmsg 6656/tcp # Emergency Message Control [Gerry_Gorman] [Gerry_Gorman] 2010-12-06 +# 6656 udp Reserved +# 6657 tcp Reserved +palcom-disc 6657/udp # PalCom Discovery [Boris_Magnusson] [Boris_Magnusson] 2010-12-06 +# 6658-6664 Unassigned Use Known on +# Port 6659 +ircu 6665/tcp # IRCU [Brian_Tackett] [Brian_Tackett] +# 6665-6669 udp Reserved +vocaltec-gold 6670/tcp # Vocaltec Global Online [Scott_Petrack] [Scott_Petrack] +# Directory +vocaltec-gold 6670/udp # Vocaltec Global Online [Scott_Petrack] [Scott_Petrack] +p4p-portal 6671/tcp # P4P Portal Service [Chris_Griffiths] [Chris_Griffiths] 2008-07-28 +p4p-portal 6671/udp # P4P Portal Service [Chris_Griffiths] [Chris_Griffiths] 2008-07-28 +# vision_server +# +vision-server 6672/tcp # IANA assigned this [Chris_Kramer] [Chris_Kramer] +# "vision_server". +# This entry is an alias to "vision-server". This entry is now +vision_server 6672/tcp # vision_server [Chris_Kramer] [Chris_Kramer] historic, not usable for use with many common service +# +vision-server 6672/udp # IANA assigned this [Chris_Kramer] [Chris_Kramer] +vision_server 6672/udp # vision_server [Chris_Kramer] [Chris_Kramer] historic, not usable for use with many common service +# vision_elmd +# +vision-elmd 6673/tcp # IANA assigned this [Chris_Kramer] [Chris_Kramer] +# "vision_elmd". +# This entry is an alias to "vision-elmd". This entry is now +vision_elmd 6673/tcp # vision_elmd [Chris_Kramer] [Chris_Kramer] historic, not usable for use with many common service +# +vision-elmd 6673/udp # IANA assigned this [Chris_Kramer] [Chris_Kramer] +vision_elmd 6673/udp # vision_elmd [Chris_Kramer] [Chris_Kramer] historic, not usable for use with many common service +# 6674-6677 Unassigned +vfbp 6678/tcp # Viscount Freedom Bridge [Chris_MacDonald] [Chris_MacDonald] 2011-03-16 +vfbp-disc 6678/udp # Viscount Freedom Bridge [Chris_MacDonald] [Chris_MacDonald] 2011-03-16 +osaut 6679/tcp # Osorno Automation [Peter_Hombach] [Peter_Hombach] 2011-03-16 +osaut 6679/udp # Osorno Automation [Peter_Hombach] [Peter_Hombach] 2011-03-16 +# 6680-6686 Unassigned +clever-ctrace 6687/tcp # CleverView for cTrace [David_Cheng] [David_Cheng] 2010-02-01 +# Message Service +# 6687 udp Reserved +clever-tcpip 6688/tcp # CleverView for TCP/IP [David_Cheng] [David_Cheng] 2009-10-13 +# 6688 udp Reserved +tsa 6689/tcp # Tofino Security Appliance [Scott_Howard] [Scott_Howard] 2009-10-13 +tsa 6689/udp # Tofino Security Appliance [Scott_Howard] [Scott_Howard] 2009-10-13 +# 6690-6695 Unassigned +# 6696 tcp Reserved +babel 6696/udp # Babel Routing Protocol 2011-08-15 [RFC6126] +# 6697-6699 Unassigned +# 6700 Unassigned 2010-01-26 +kti-icad-srvr 6701/tcp # KTI/ICAD Nameserver [Stanley_Knutson] [Stanley_Knutson] +kti-icad-srvr 6701/udp # KTI/ICAD Nameserver [Stanley_Knutson] [Stanley_Knutson] +# 6701 sctp Unassigned 2010-01-26 +e-design-net 6702/tcp # e-Design network [Janos_Lerch] [Janos_Lerch] 2006-02 +e-design-net 6702/udp # e-Design network [Janos_Lerch] [Janos_Lerch] 2006-02 +# 6702 sctp Unassigned 2010-01-26 +e-design-web 6703/tcp # e-Design web [Janos_Lerch] [Janos_Lerch] 2006-02 +e-design-web 6703/udp # e-Design web [Janos_Lerch] [Janos_Lerch] 2006-02 +# 6704 udp Reserved +# 6704 tcp Reserved +frc-hp 6704/sctp # ForCES HP (High Priority) [RFC5811] +# channel +# 6705 udp Reserved +# 6705 tcp Reserved +frc-mp 6705/sctp # ForCES MP (Medium Priority) [RFC5811] +# 6706 udp Reserved +# 6706 tcp Reserved +frc-lp 6706/sctp # ForCES LP (Low priority) [RFC5811] +# 6707-6713 Unassigned +ibprotocol 6714/tcp # Internet Backplane Protocol [Alessandro_Bassi] [Alessandro_Bassi] +ibprotocol 6714/udp # Internet Backplane Protocol [Alessandro_Bassi] [Alessandro_Bassi] +fibotrader-com 6715/tcp # Fibotrader Communications [Robert_Wetzold] [Robert_Wetzold] 2006-01 +fibotrader-com 6715/udp # Fibotrader Communications [Robert_Wetzold] [Robert_Wetzold] 2006-01 +# 6716-6766 Unassigned +bmc-perf-agent 6767/tcp # BMC PERFORM AGENT [Portnoy_Boxman] [Portnoy_Boxman] +bmc-perf-agent 6767/udp # BMC PERFORM AGENT [Portnoy_Boxman] [Portnoy_Boxman] +bmc-perf-mgrd 6768/tcp # BMC PERFORM MGRD [Portnoy_Boxman] [Portnoy_Boxman] +bmc-perf-mgrd 6768/udp # BMC PERFORM MGRD [Portnoy_Boxman] [Portnoy_Boxman] +adi-gxp-srvprt 6769/tcp # ADInstruments GxP Server [Mathew_Pitchforth] [Mathew_Pitchforth] 2005-08 +adi-gxp-srvprt 6769/udp # ADInstruments GxP Server [Mathew_Pitchforth] [Mathew_Pitchforth] 2005-08 +plysrv-http 6770/tcp # PolyServe http [Mike_Spitzer] [Mike_Spitzer] 2005-08 +plysrv-http 6770/udp # PolyServe http [Mike_Spitzer] [Mike_Spitzer] 2005-08 +plysrv-https 6771/tcp # PolyServe https [Mike_Spitzer] [Mike_Spitzer] 2005-08 +plysrv-https 6771/udp # PolyServe https [Mike_Spitzer] [Mike_Spitzer] 2005-08 +# 6772-6783 Unassigned +# 6784 tcp Reserved +# Bidirectional Forwarding +bfd-lag 6784/udp # Detection (BFD) on Link [IESG] [IETF_Chair] 2012-11-08 [draft-mmm-bfd-on-lags-05] +# Aggregation Group (LAG) +# Interfaces +dgpf-exchg 6785/tcp # DGPF Individual Exchange [Thomas_Weise] [Thomas_Weise] 2006-04 +dgpf-exchg 6785/udp # DGPF Individual Exchange [Thomas_Weise] [Thomas_Weise] 2006-04 +smc-jmx 6786/tcp # Sun Java Web Console JMX [Bill_Edwards] [Bill_Edwards] 2005-08 +smc-jmx 6786/udp # Sun Java Web Console JMX [Bill_Edwards] [Bill_Edwards] 2005-08 +smc-admin 6787/tcp # Sun Web Console Admin [Bill_Edwards] [Bill_Edwards] 2005-08 +smc-admin 6787/udp # Sun Web Console Admin [Bill_Edwards] [Bill_Edwards] 2005-08 +smc-http 6788/tcp # SMC-HTTP [Ratnadeep_Bhattachar] [Ratnadeep_Bhattachar] 2002-11 +smc-http 6788/udp # SMC-HTTP [Ratnadeep_Bhattachar] [Ratnadeep_Bhattachar] 2002-11 +smc-https 6789/tcp # SMC-HTTPS [Ratnadeep_Bhattachar] [Ratnadeep_Bhattachar] 2002-08 +smc-https 6789/udp # SMC-HTTPS [Ratnadeep_Bhattachar] [Ratnadeep_Bhattachar] 2002-08 +hnmp 6790/tcp # HNMP [Jude_George] [Jude_George] +hnmp 6790/udp # HNMP [Jude_George] [Jude_George] +hnm 6791/tcp # Halcyon Network Manager [Richard_Harriss] [Richard_Harriss] 2005-05 +hnm 6791/udp # Halcyon Network Manager [Richard_Harriss] [Richard_Harriss] 2005-05 +# 6792-6800 Unassigned +acnet 6801/tcp # ACNET Control System [Rich_Neswold] [Rich_Neswold] 2007-02 +acnet 6801/udp # ACNET Control System [Rich_Neswold] [Rich_Neswold] 2007-02 +# 6802-6816 Unassigned +pentbox-sim 6817/tcp # PenTBox Secure IM Protocol [Alberto_Ortega_Llama] [Alberto_Ortega_Llama] 2009-11-04 +# 6817 udp Reserved +# 6818-6830 Unassigned +ambit-lm 6831/tcp # ambit-lm [Don_Hejna] [Don_Hejna] +ambit-lm 6831/udp # ambit-lm [Don_Hejna] [Don_Hejna] +# 6832-6840 Unassigned +netmo-default 6841/tcp # Netmo Default [Urs_Bertschinger] [Urs_Bertschinger] +netmo-default 6841/udp # Netmo Default [Urs_Bertschinger] [Urs_Bertschinger] +netmo-http 6842/tcp # Netmo HTTP [Urs_Bertschinger] [Urs_Bertschinger] +netmo-http 6842/udp # Netmo HTTP [Urs_Bertschinger] [Urs_Bertschinger] +# 6843-6849 Unassigned +iccrushmore 6850/tcp # ICCRUSHMORE [Dave_Hubbard] [Dave_Hubbard] +iccrushmore 6850/udp # ICCRUSHMORE [Dave_Hubbard] [Dave_Hubbard] +# 6851-6867 Unassigned +acctopus-cc 6868/tcp # Acctopus Command Channel [Stefan_Auweiler] [Stefan_Auweiler] 2009-11-16 +acctopus-st 6868/udp # Acctopus Status [Stefan_Auweiler] [Stefan_Auweiler] 2009-11-16 +# 6869-6887 Unassigned +muse 6888/tcp # MUSE [Muse_Communications] [Muse_Communications] +muse 6888/udp # MUSE [Muse_Communications] [Muse_Communications] +# 6889-6900 Unassigned +jetstream 6901/tcp # Novell Jetstream messaging [Anil_Tyagi] [Anil_Tyagi] 2010-06-11 +# 6901 udp Reserved +# 6902-6934 Unassigned +ethoscan 6935/tcp # EthoScan Service [Marty_Campbell] [Marty_Campbell] 2011-06-10 +ethoscan 6935/udp # EthoScan Service [Marty_Campbell] [Marty_Campbell] 2011-06-10 +xsmsvc 6936/tcp # XenSource Management Service [Roger_Klorese] [Roger_Klorese] 2006-06 +xsmsvc 6936/udp # XenSource Management Service [Roger_Klorese] [Roger_Klorese] 2006-06 +# 6937-6945 Unassigned +bioserver 6946/tcp # Biometrics Server [ISHII_AKIO] [ISHII_AKIO] 2006-01 +bioserver 6946/udp # Biometrics Server [ISHII_AKIO] [ISHII_AKIO] 2006-01 +# 6947-6950 Unassigned +otlp 6951/tcp # OTLP [Brent_Foster] [Brent_Foster] 2006-04 +otlp 6951/udp # OTLP [Brent_Foster] [Brent_Foster] 2006-04 +# 6952-6960 Unassigned +jmact3 6961/tcp # JMACT3 [Yutaka_Ono] [Yutaka_Ono] +jmact3 6961/udp # JMACT3 [Yutaka_Ono] [Yutaka_Ono] +jmevt2 6962/tcp # jmevt2 [Yutaka_Ono] [Yutaka_Ono] +jmevt2 6962/udp # jmevt2 [Yutaka_Ono] [Yutaka_Ono] +swismgr1 6963/tcp # swismgr1 [Yutaka_Ono] [Yutaka_Ono] +swismgr1 6963/udp # swismgr1 [Yutaka_Ono] [Yutaka_Ono] +swismgr2 6964/tcp # swismgr2 [Yutaka_Ono] [Yutaka_Ono] +swismgr2 6964/udp # swismgr2 [Yutaka_Ono] [Yutaka_Ono] +swistrap 6965/tcp # swistrap [Yutaka_Ono] [Yutaka_Ono] +swistrap 6965/udp # swistrap [Yutaka_Ono] [Yutaka_Ono] +swispol 6966/tcp # swispol [Yutaka_Ono] [Yutaka_Ono] +swispol 6966/udp # swispol [Yutaka_Ono] [Yutaka_Ono] +# 6967-6968 Unassigned +acmsoda 6969/tcp # acmsoda [Daniel_Simms] [Daniel_Simms] +acmsoda 6969/udp # acmsoda [Daniel_Simms] [Daniel_Simms] +# 6970-6996 Unassigned +MobilitySrv 6997/tcp # Mobility XE Protocol [Joseph_T_Savarese] [Joseph_T_Savarese] 2007-06 +MobilitySrv 6997/udp # Mobility XE Protocol [Joseph_T_Savarese] [Joseph_T_Savarese] 2007-06 +iatp-highpri 6998/tcp # IATP-highPri [John_Murphy] [John_Murphy] +iatp-highpri 6998/udp # IATP-highPri [John_Murphy] [John_Murphy] +iatp-normalpri 6999/tcp # IATP-normalPri [John_Murphy] [John_Murphy] +iatp-normalpri 6999/udp # IATP-normalPri [John_Murphy] [John_Murphy] +afs3-fileserver 7000/tcp # file server itself +afs3-fileserver 7000/udp # file server itself +afs3-callback 7001/tcp # callbacks to cache managers +afs3-callback 7001/udp # callbacks to cache managers +afs3-prserver 7002/tcp # users & groups database +afs3-prserver 7002/udp # users & groups database +afs3-vlserver 7003/tcp # volume location database +afs3-vlserver 7003/udp # volume location database +afs3-kaserver 7004/tcp # AFS/Kerberos authentication +afs3-kaserver 7004/udp # AFS/Kerberos authentication +afs3-volser 7005/tcp # volume managment server +afs3-volser 7005/udp # volume managment server +afs3-errors 7006/tcp # error interpretation service +afs3-errors 7006/udp # error interpretation service +afs3-bos 7007/tcp # basic overseer process +afs3-bos 7007/udp # basic overseer process +afs3-update 7008/tcp # server-to-server updater +afs3-update 7008/udp # server-to-server updater +afs3-rmtsys 7009/tcp # remote cache manager service +afs3-rmtsys 7009/udp # remote cache manager service +ups-onlinet 7010/tcp # onlinet uninterruptable [Jim_Thompson] [Jim_Thompson] +# power supplies +ups-onlinet 7010/udp # onlinet uninterruptable [Jim_Thompson] [Jim_Thompson] +talon-disc 7011/tcp # Talon Discovery Port [Jim_Thompson] [Jim_Thompson] Use by RZG +# OpenAFS+OSD +talon-disc 7011/udp # Talon Discovery Port [Jim_Thompson] [Jim_Thompson] Use by RZG +talon-engine 7012/tcp # Talon Engine [Jim_Thompson] [Jim_Thompson] Use by RZG +talon-engine 7012/udp # Talon Engine [Jim_Thompson] [Jim_Thompson] Use by RZG +microtalon-dis 7013/tcp # Microtalon Discovery [Jim_Thompson] [Jim_Thompson] +microtalon-dis 7013/udp # Microtalon Discovery [Jim_Thompson] [Jim_Thompson] +microtalon-com 7014/tcp # Microtalon Communications [Jim_Thompson] [Jim_Thompson] +microtalon-com 7014/udp # Microtalon Communications [Jim_Thompson] [Jim_Thompson] +talon-webserver 7015/tcp # Talon Webserver [Jim_Thompson] [Jim_Thompson] +talon-webserver 7015/udp # Talon Webserver [Jim_Thompson] [Jim_Thompson] +# 7016-7017 Unassigned +fisa-svc 7018/tcp # FISA Service [FAUCONNET_Ingenierie] [FAUCONNET_Ingenierie] 2011-05-19 +# 7018 udp Reserved +doceri-ctl 7019/tcp # doceri drawing service [Paul_Brown] [Paul_Brown] 2011-04-27 +doceri-view 7019/udp # doceri drawing service [Paul_Brown] [Paul_Brown] 2011-04-27 +# screen view +dpserve 7020/tcp # DP Serve [Allan_Stanley] [Allan_Stanley] +dpserve 7020/udp # DP Serve [Allan_Stanley] [Allan_Stanley] +dpserveadmin 7021/tcp # DP Serve Admin [Allan_Stanley] [Allan_Stanley] +dpserveadmin 7021/udp # DP Serve Admin [Allan_Stanley] [Allan_Stanley] +ctdp 7022/tcp # CT Discovery Protocol [James_Kirkwood] [James_Kirkwood] 2005-06 +ctdp 7022/udp # CT Discovery Protocol [James_Kirkwood] [James_Kirkwood] 2005-06 +ct2nmcs 7023/tcp # Comtech T2 NMCS [Bryan_Wilcutt] [Bryan_Wilcutt] 2005-06 +ct2nmcs 7023/udp # Comtech T2 NMCS [Bryan_Wilcutt] [Bryan_Wilcutt] 2005-06 +vmsvc 7024/tcp # Vormetric service [Tom_Boyle] [Tom_Boyle] 2005-06 +vmsvc 7024/udp # Vormetric service [Tom_Boyle] [Tom_Boyle] 2005-06 +vmsvc-2 7025/tcp # Vormetric Service II [Tom_Boyle] [Tom_Boyle] 2005-06 +vmsvc-2 7025/udp # Vormetric Service II [Tom_Boyle] [Tom_Boyle] 2005-06 +# 7026-7029 Unassigned +op-probe 7030/tcp # ObjectPlanet probe [Bjorn_Jarle_Kvande] [Bjorn_Jarle_Kvande] 2002-04 +op-probe 7030/udp # ObjectPlanet probe [Bjorn_Jarle_Kvande] [Bjorn_Jarle_Kvande] 2002-04 +iposplanet 7031/tcp # IPOSPLANET retailing multi [Fabrice_Paget] [Fabrice_Paget] 2012-10-23 +# devices protocol +# 7031 udp Reserved +# 7032-7039 Unassigned +# 7040 tcp Reserved +quest-disc 7040/udp # Quest application level [Quest_Software] [Henrik_Johnson] 2012-04-09 +# network service discovery +# 7041-7069 Unassigned +arcp 7070/tcp # ARCP [Jude_George] [Jude_George] +arcp 7070/udp # ARCP [Jude_George] [Jude_George] +iwg1 7071/tcp # IWGADTS Aircraft [Don_Sullivan] [Don_Sullivan] 2010-02-16 +# Housekeeping Message +iwg1 7071/udp # IWGADTS Aircraft [Don_Sullivan] [Don_Sullivan] 2010-02-16 +# 7072-7079 Unassigned +empowerid 7080/tcp # EmpowerID Communication [Matthew_Whited] [Matthew_Whited] 2008-01-16 +empowerid 7080/udp # EmpowerID Communication [Matthew_Whited] [Matthew_Whited] 2008-01-16 +# 7081-7098 Unassigned +lazy-ptop 7099/tcp # lazy-ptop [Guy_Keren] [Guy_Keren] +lazy-ptop 7099/udp # lazy-ptop [Guy_Keren] [Guy_Keren] +font-service 7100/tcp # X Font Service [Stephen_Gildea] [Stephen_Gildea] +font-service 7100/udp # X Font Service [Stephen_Gildea] [Stephen_Gildea] +elcn 7101/tcp # Embedded Light Control [Michael_Scarito] [Michael_Scarito] 2007-02 +# Network +elcn 7101/udp # Embedded Light Control [Michael_Scarito] [Michael_Scarito] 2007-02 +# 7102-7106 Unassigned +# 7107 tcp Reserved +aes-x170 7107/udp # AES-X170 [Richard_Foss] [Richard_Foss] 2011-02-10 +# 7108-7120 Unassigned +virprot-lm 7121/tcp # Virtual Prototypes License [Victor_Galis] [Victor_Galis] +virprot-lm 7121/udp # Virtual Prototypes License [Victor_Galis] [Victor_Galis] +# 7122-7127 Unassigned +scenidm 7128/tcp # intelligent data manager [Paul_Ignatius] [Paul_Ignatius] 2006-03 +scenidm 7128/udp # intelligent data manager [Paul_Ignatius] [Paul_Ignatius] 2006-03 +scenccs 7129/tcp # Catalog Content Search [Anil_Sharma] [Anil_Sharma] 2006-04 +scenccs 7129/udp # Catalog Content Search [Anil_Sharma] [Anil_Sharma] 2006-04 +# 7130-7160 Unassigned +cabsm-comm 7161/tcp # CA BSM Comm [Chun_Ho_Chang] [Chun_Ho_Chang] 2004-11 +cabsm-comm 7161/udp # CA BSM Comm [Chun_Ho_Chang] [Chun_Ho_Chang] 2004-11 +caistoragemgr 7162/tcp # CA Storage Manager [Emre_Tunar] [Emre_Tunar] 2004-11 +caistoragemgr 7162/udp # CA Storage Manager [Emre_Tunar] [Emre_Tunar] 2004-11 +cacsambroker 7163/tcp # CA Connection Broker [David_Roberts] [David_Roberts] 2005-05 +cacsambroker 7163/udp # CA Connection Broker [David_Roberts] [David_Roberts] 2005-05 +fsr 7164/tcp # File System Repository Agent [Micha_Ben_Efraim] [Micha_Ben_Efraim] 2007-07-19 +fsr 7164/udp # File System Repository Agent [Micha_Ben_Efraim] [Micha_Ben_Efraim] 2007-07-19 +doc-server 7165/tcp # Document WCF Server [Micha_Ben_Efraim] [Micha_Ben_Efraim] 2008-01-07 +doc-server 7165/udp # Document WCF Server [Micha_Ben_Efraim] [Micha_Ben_Efraim] 2008-01-07 +aruba-server 7166/tcp # Aruba eDiscovery Server [Micha_Ben_Efraim] [Micha_Ben_Efraim] 2008-01-07 +aruba-server 7166/udp # Aruba eDiscovery Server [Micha_Ben_Efraim] [Micha_Ben_Efraim] 2008-01-07 +casrmagent 7167/tcp # CA SRM Agent [Venkata_Krishna] [Venkata_Krishna] 2010-02-24 +# 7167 udp Reserved +cnckadserver 7168/tcp # cncKadServer DB & Inventory [Micha_Ben_Efraim_2] [Micha_Ben_Efraim_2] 2011-01-31 +# 7168 udp Reserved +ccag-pib 7169/tcp # Consequor Consulting Process [Frank_Goenninger] [Frank_Goenninger] 2010-02-22 +# Integration Bridge +ccag-pib 7169/udp # Consequor Consulting Process [Frank_Goenninger] [Frank_Goenninger] 2010-02-22 +nsrp 7170/tcp # Adaptive Name/Service [Geoff_Back_2] [Geoff_Back_2] 2010-02-01 +nsrp 7170/udp # Adaptive Name/Service [Geoff_Back_2] [Geoff_Back_2] 2010-02-01 +drm-production 7171/tcp # Discovery and Retention Mgt [Micha_Ben_Efraim_3] [Micha_Ben_Efraim_3] 2010-02-18 +# Production +drm-production 7171/udp # Discovery and Retention Mgt [Micha_Ben_Efraim_3] [Micha_Ben_Efraim_3] 2010-02-18 +metalbend 7172/tcp # Port used for MetalBend [Micha_Ben_Efraim_4] [Micha_Ben_Efraim_4] 2012-11-27 +# programmable interface +# 7172 udp Reserved +zsecure 7173/tcp # zSecure Server [Hans_Schoone] [Hans_Schoone] 2010-10-01 +# 7173 udp Reserved +clutild 7174/tcp # Clutild [Cheryl_Stoutenburg] [Cheryl_Stoutenburg] +clutild 7174/udp # Clutild [Cheryl_Stoutenburg] [Cheryl_Stoutenburg] +# 7175-7199 Unassigned +fodms 7200/tcp # FODMS FLIP [David_Anthony] [David_Anthony] +fodms 7200/udp # FODMS FLIP [David_Anthony] [David_Anthony] +dlip 7201/tcp # DLIP [Albert_Manfredi] [Albert_Manfredi] +dlip 7201/udp # DLIP [Albert_Manfredi] [Albert_Manfredi] +# 7202-7226 Unassigned +ramp 7227/tcp # Registry A & M Protocol [John_Havard] [John_Havard] 2003-11 +ramp 7227/udp # Registry A $ M Protocol [John_Havard] [John_Havard] 2003-11 +citrixupp 7228/tcp # Citrix Universal Printing [Gary_Barton] [Gary_Barton] 2011-02-24 +# 7228 udp Reserved +citrixuppg 7229/tcp # Citrix UPP Gateway [Gary_Barton] [Gary_Barton] 2011-02-24 +# 7229 udp Reserved +# 7230-7235 Unassigned +display 7236/tcp # Wi-Fi Alliance Wi-Fi Display [Wi-Fi_Alliance] [Thomas_Sciorilli] 2012-04-09 Defined TXT keys: _display.tcp. Display Protocol +# 7236 udp Reserved +pads 7237/tcp # PADS (Public Area Display [Willie_Jan_Bons] [Willie_Jan_Bons] 2011-03-10 +# System) Server +# 7237 udp Reserved +# 7238-7261 Unassigned +cnap 7262/tcp # Calypso Network Access [Scott_Halberg] [Scott_Halberg] 2009-06-02 +cnap 7262/udp # Calypso Network Access [Scott_Halberg] [Scott_Halberg] 2009-06-02 +# 7263-7271 Unassigned +watchme-7272 7272/tcp # WatchMe Monitoring 7272 [Oliver_Heinz] [Oliver_Heinz] 2005-08 +watchme-7272 7272/udp # WatchMe Monitoring 7272 [Oliver_Heinz] [Oliver_Heinz] 2005-08 +oma-rlp 7273/tcp # OMA Roaming Location [Larry_A_Young] [Larry_A_Young] 2005-08 +oma-rlp 7273/udp # OMA Roaming Location [Larry_A_Young] [Larry_A_Young] 2005-08 +oma-rlp-s 7274/tcp # OMA Roaming Location SEC [Larry_A_Young] [Larry_A_Young] 2005-08 +oma-rlp-s 7274/udp # OMA Roaming Location SEC [Larry_A_Young] [Larry_A_Young] 2005-08 +oma-ulp 7275/tcp # OMA UserPlane Location [Larry_A_Young_2] [Larry_A_Young_2] 2006-02 +oma-ulp 7275/udp # OMA UserPlane Location [Larry_A_Young_2] [Larry_A_Young_2] 2006-02 +oma-ilp 7276/tcp # OMA Internal Location [Khiem_Tran] [Khiem_Tran] 2007-11-06 +oma-ilp 7276/udp # OMA Internal Location [Khiem_Tran] [Khiem_Tran] 2007-11-06 +oma-ilp-s 7277/tcp # OMA Internal Location Secure [Khiem_Tran] [Khiem_Tran] 2007-11-06 +oma-ilp-s 7277/udp # OMA Internal Location Secure [Khiem_Tran] [Khiem_Tran] 2007-11-06 +oma-dcdocbs 7278/tcp # OMA Dynamic Content Delivery [Avi_Primo] [Avi_Primo] 2008-01-29 +# over CBS +oma-dcdocbs 7278/udp # OMA Dynamic Content Delivery [Avi_Primo] [Avi_Primo] 2008-01-29 +ctxlic 7279/tcp # Citrix Licensing [Marc_Binstock] [Marc_Binstock] 2008-01-29 +ctxlic 7279/udp # Citrix Licensing [Marc_Binstock] [Marc_Binstock] 2008-01-29 +itactionserver1 7280/tcp # ITACTIONSERVER 1 [Brian_Taylor] [Brian_Taylor] +itactionserver1 7280/udp # ITACTIONSERVER 1 [Brian_Taylor] [Brian_Taylor] +itactionserver2 7281/tcp # ITACTIONSERVER 2 [Brian_Taylor] [Brian_Taylor] +itactionserver2 7281/udp # ITACTIONSERVER 2 [Brian_Taylor] [Brian_Taylor] +mzca-action 7282/tcp # eventACTION/ussACTION (MZCA) [Gord_Tomlin] [Gord_Tomlin] 2009-01-30 +mzca-alert 7282/udp # eventACTION/ussACTION (MZCA) [Gord_Tomlin] [Gord_Tomlin] 2010-01-21 +# alert +genstat 7283/tcp # General Statistics [VSN_International_Ltd] [Sean_D_Solle] 2011-09-28 +# Rendezvous Protocol +# 7283 udp Reserved +# 7284-7299 Unassigned +# swx 7300-7359 The Swiss Exchange [Edgar_Blum] [Edgar_Blum] +# 7360-7364 Unassigned 2006-02-06 +lcm-server 7365/tcp # LifeKeeper Communications [James_Bottomley] [James_Bottomley] 2006-02 +lcm-server 7365/udp # LifeKeeper Communications [James_Bottomley] [James_Bottomley] 2006-02 +# 7366-7390 Unassigned 2006-02-06 +mindfilesys 7391/tcp # mind-file system server [Dave_Porter] [Dave_Porter] +mindfilesys 7391/udp # mind-file system server [Dave_Porter] [Dave_Porter] +mrssrendezvous 7392/tcp # mrss-rendezvous server [Dave_Porter] [Dave_Porter] +mrssrendezvous 7392/udp # mrss-rendezvous server [Dave_Porter] [Dave_Porter] +nfoldman 7393/tcp # nFoldMan Remote Publish [Richard_McDonald] [Richard_McDonald] 2006-01 +nfoldman 7393/udp # nFoldMan Remote Publish [Richard_McDonald] [Richard_McDonald] 2006-01 +fse 7394/tcp # File system export of backup [Weibao_Wu] [Weibao_Wu] 2006-04 +# images +fse 7394/udp # File system export of backup [Weibao_Wu] [Weibao_Wu] 2006-04 +winqedit 7395/tcp # winqedit [David_Greer] [David_Greer] +winqedit 7395/udp # winqedit [David_Greer] [David_Greer] +# 7396 Unassigned +hexarc 7397/tcp # Hexarc Command Language [George_Moromisato] [George_Moromisato] 2004-11 +hexarc 7397/udp # Hexarc Command Language [George_Moromisato] [George_Moromisato] 2004-11 +# 7398-7399 Unassigned +rtps-discovery 7400/tcp # RTPS Discovery [Gerardo_Pardo_Castel] [Gerardo_Pardo_Castel] 2005-10 +rtps-discovery 7400/udp # RTPS Discovery [Gerardo_Pardo_Castel] [Gerardo_Pardo_Castel] 2005-10 +rtps-dd-ut 7401/tcp # RTPS Data-Distribution [Gerardo_Pardo_Castel] [Gerardo_Pardo_Castel] 2005-10 +# User-Traffic +rtps-dd-ut 7401/udp # RTPS Data-Distribution [Gerardo_Pardo_Castel] [Gerardo_Pardo_Castel] 2005-10 +rtps-dd-mt 7402/tcp # RTPS Data-Distribution [Gerardo_Pardo_Castel] [Gerardo_Pardo_Castel] 2005-10 +# Meta-Traffic +rtps-dd-mt 7402/udp # RTPS Data-Distribution [Gerardo_Pardo_Castel] [Gerardo_Pardo_Castel] 2005-10 +# 7403-7409 Unassigned +ionixnetmon 7410/tcp # Ionix Network Monitor [Maxime_Deputter] [Maxime_Deputter] 2006-04 +ionixnetmon 7410/udp # Ionix Network Monitor [Maxime_Deputter] [Maxime_Deputter] 2006-04 +# 7411-7420 Unassigned +mtportmon 7421/tcp # Matisse Port Monitor [Didier_Cabannes] [Didier_Cabannes] 2004-11 +mtportmon 7421/udp # Matisse Port Monitor [Didier_Cabannes] [Didier_Cabannes] 2004-11 +# 7422-7425 Unassigned +pmdmgr 7426/tcp # OpenView DM Postmaster [Dave_Lamb] [Dave_Lamb] +pmdmgr 7426/udp # OpenView DM Postmaster [Dave_Lamb] [Dave_Lamb] +oveadmgr 7427/tcp # OpenView DM Event Agent [Dave_Lamb] [Dave_Lamb] +oveadmgr 7427/udp # OpenView DM Event Agent [Dave_Lamb] [Dave_Lamb] +ovladmgr 7428/tcp # OpenView DM Log Agent [Dave_Lamb] [Dave_Lamb] +ovladmgr 7428/udp # OpenView DM Log Agent [Dave_Lamb] [Dave_Lamb] +opi-sock 7429/tcp # OpenView DM rqt [Dave_Lamb] [Dave_Lamb] +# communication +opi-sock 7429/udp # OpenView DM rqt [Dave_Lamb] [Dave_Lamb] +xmpv7 7430/tcp # OpenView DM xmpv7 api pipe [Dave_Lamb] [Dave_Lamb] +xmpv7 7430/udp # OpenView DM xmpv7 api pipe [Dave_Lamb] [Dave_Lamb] +pmd 7431/tcp # OpenView DM ovc/xmpv3 api [Dave_Lamb] [Dave_Lamb] +# pipe +pmd 7431/udp # OpenView DM ovc/xmpv3 api [Dave_Lamb] [Dave_Lamb] +# 7432-7436 Unassigned +faximum 7437/tcp # Faximum [George_Pajari] [George_Pajari] +faximum 7437/udp # Faximum [George_Pajari] [George_Pajari] +# 7438-7442 Unassigned +oracleas-https 7443/tcp # Oracle Application Server [David_McMarlin] [David_McMarlin] 2006-08 +# HTTPS +oracleas-https 7443/udp # Oracle Application Server [David_McMarlin] [David_McMarlin] 2006-08 +# 7444-7472 Unassigned +rise 7473/tcp # Rise: The Vieneo Province [Jason_Reskin] [Jason_Reskin] 2007-03 +rise 7473/udp # Rise: The Vieneo Province [Jason_Reskin] [Jason_Reskin] 2007-03 +neo4j 7474/tcp # Neo4j Graph Database [Neo_Technology_Inc] [Julian_Simpson] 2013-02-08 +# 7474 udp Reserved +# 7475-7490 Unassigned +telops-lmd 7491/tcp # telops-lmd [David_Spencer] [David_Spencer] +telops-lmd 7491/udp # telops-lmd [David_Spencer] [David_Spencer] +# 7492-7499 Unassigned +silhouette 7500/tcp # Silhouette User [Anthony_Payne] [Anthony_Payne] 2004-02 +silhouette 7500/udp # Silhouette User [Anthony_Payne] [Anthony_Payne] 2004-02 +ovbus 7501/tcp # HP OpenView Bus Daemon [David_M_Rhodes] [David_M_Rhodes] +ovbus 7501/udp # HP OpenView Bus Daemon [David_M_Rhodes] [David_M_Rhodes] +# 7502-7507 Unassigned +adcp 7508/tcp # Automation Device [Festo_AG] [Joerg_Ullmann] 2011-05-27 2012-07-26 +# Configuration Protocol +# 7508 udp Reserved +acplt 7509/tcp # ACPLT - process automation [Chair_for_Process_Control_Engineering] [Ulrich_Epple] 2010-12-07 2012-08-07 +# 7509 udp Reserved +ovhpas 7510/tcp # HP OpenView Application [Jeff_Conrad] [Jeff_Conrad] +ovhpas 7510/udp # HP OpenView Application [Jeff_Conrad] [Jeff_Conrad] +pafec-lm 7511/tcp # pafec-lm [Billy_Dhillon] [Billy_Dhillon] +pafec-lm 7511/udp # pafec-lm [Billy_Dhillon] [Billy_Dhillon] +# 7512-7541 Unassigned +saratoga 7542/tcp # Saratoga Transfer Protocol [Lloyd_Wood] [Lloyd_Wood] 2007-05 +saratoga 7542/udp # Saratoga Transfer Protocol [Lloyd_Wood] [Lloyd_Wood] 2007-05 +atul 7543/tcp # atul server [Mark_Stapp] [Mark_Stapp] 2006-01 +atul 7543/udp # atul server [Mark_Stapp] [Mark_Stapp] 2006-01 +nta-ds 7544/tcp # FlowAnalyzer DisplayServer [Fred_Messinger] [Fred_Messinger] +nta-ds 7544/udp # FlowAnalyzer DisplayServer [Fred_Messinger] [Fred_Messinger] +nta-us 7545/tcp # FlowAnalyzer UtilityServer [Fred_Messinger] [Fred_Messinger] +nta-us 7545/udp # FlowAnalyzer UtilityServer [Fred_Messinger] [Fred_Messinger] +cfs 7546/tcp # Cisco Fabric service [Rituparna_Agrawal] [Rituparna_Agrawal] 2005-09 +cfs 7546/udp # Cisco Fabric service [Rituparna_Agrawal] [Rituparna_Agrawal] 2005-09 +cwmp 7547/tcp # DSL Forum CWMP [Anton_Okmianski] [Anton_Okmianski] 2006-01 +cwmp 7547/udp # DSL Forum CWMP [Anton_Okmianski] [Anton_Okmianski] 2006-01 +tidp 7548/tcp # Threat Information [Chui_Tin_Yen] [Chui_Tin_Yen] 2006-02 +tidp 7548/udp # Threat Information [Chui_Tin_Yen] [Chui_Tin_Yen] 2006-02 +nls-tl 7549/tcp # Network Layer Signaling [Melinda_Shore] [Melinda_Shore] 2006-05 +# Transport Layer +nls-tl 7549/udp # Network Layer Signaling [Melinda_Shore] [Melinda_Shore] 2006-05 +# 7550 tcp Reserved +cloudsignaling 7550/udp # Cloud Signaling Service [Scott_Dawson] [Scott_Dawson] 2011-07-01 +# 7551-7559 Unassigned +sncp 7560/tcp # Sniffer Command Protocol [Dominick_Cafarelli] [Dominick_Cafarelli] 2005-08 +sncp 7560/udp # Sniffer Command Protocol [Dominick_Cafarelli] [Dominick_Cafarelli] 2005-08 +# 7561-7562 Unassigned +cfw 7563/tcp # Control Framework [RFC6230] +# 7563 udp Reserved +# 7564-7565 Unassigned +vsi-omega 7566/tcp # VSI Omega [Curtis_Smith] [Curtis_Smith] +vsi-omega 7566/udp # VSI Omega [Curtis_Smith] [Curtis_Smith] +# 7567-7568 Unassigned +dell-eql-asm 7569/tcp # Dell EqualLogic Host Group [James_E_King_III] [James_E_King_III] +# 7569 udp Reserved +aries-kfinder 7570/tcp # Aries Kfinder [James_King_III] [James_King_III] +aries-kfinder 7570/udp # Aries Kfinder [James_King_III] [James_King_III] +# 7571-7587 Unassigned +sun-lm 7588/tcp # Sun License Manager [Sophie_Deng] [Sophie_Deng] +sun-lm 7588/udp # Sun License Manager [Sophie_Deng] [Sophie_Deng] +# 7589-7623 Unassigned +indi 7624/tcp # Instrument Neutral [Elwood_Downey] [Elwood_Downey] 2002-04 +# Distributed Interface +indi 7624/udp # Instrument Neutral [Elwood_Downey] [Elwood_Downey] 2002-04 +# 7625 Unassigned +simco 7626/tcp # SImple Middlebox [RFC4540] +# COnfiguration (SIMCO) Server +# 7626 udp De-registered 2006-01-30 +simco 7626/sctp # SImple Middlebox [Sebastian_Kiesel] [Sebastian_Kiesel] 2006-01 +# COnfiguration (SIMCO) +soap-http 7627/tcp # SOAP Service Port [Donald_Dylla] [Donald_Dylla] 2004-12 +soap-http 7627/udp # SOAP Service Port [Donald_Dylla] [Donald_Dylla] 2004-12 +zen-pawn 7628/tcp # Primary Agent Work [Ty_Ellis] [Ty_Ellis] 2006-05 +zen-pawn 7628/udp # Primary Agent Work [Ty_Ellis] [Ty_Ellis] 2006-05 +xdas 7629/tcp # OpenXDAS Wire Protocol [John_Calcote_2] [John_Calcote_2] 2006-10 +xdas 7629/udp # OpenXDAS Wire Protocol [John_Calcote_2] [John_Calcote_2] 2006-10 +hawk 7630/tcp # HA Web Konsole [Tim_Serong] [Tim_Serong] 2010-03-31 +# 7630 udp Reserved +tesla-sys-msg 7631/tcp # TESLA System Messaging [Andy_Perreault] [Andy_Perreault] 2010-03-31 +# 7631 udp Reserved +# 7632 Unassigned +pmdfmgt 7633/tcp # PMDF Management [Hunter_Goatley] [Hunter_Goatley] +pmdfmgt 7633/udp # PMDF Management [Hunter_Goatley] [Hunter_Goatley] +# 7634-7647 Unassigned +cuseeme 7648/tcp # bonjour-cuseeme [Marc_Manthey] [Marc_Manthey] 2006-07 +cuseeme 7648/udp # bonjour-cuseeme [Marc_Manthey] [Marc_Manthey] 2006-07 +# 7649-7671 Unassigned +imqstomp 7672/tcp # iMQ STOMP Server [Amy_Kang] [Amy_Kang] 2009-03-10 +# 7672 udp Reserved +imqstomps 7673/tcp # iMQ STOMP Server over SSL [Amy_Kang] [Amy_Kang] 2009-03-10 +# 7673 udp Reserved +imqtunnels 7674/tcp # iMQ SSL tunnel [Shailesh_S_Bavadeka] [Shailesh_S_Bavadeka] 2002-04 +imqtunnels 7674/udp # iMQ SSL tunnel [Shailesh_S_Bavadeka] [Shailesh_S_Bavadeka] 2002-04 +imqtunnel 7675/tcp # iMQ Tunnel [Shailesh_S_Bavadeka] [Shailesh_S_Bavadeka] 2002-04 +imqtunnel 7675/udp # iMQ Tunnel [Shailesh_S_Bavadeka] [Shailesh_S_Bavadeka] 2002-04 +imqbrokerd 7676/tcp # iMQ Broker Rendezvous [Joseph_Di_Pol] [Joseph_Di_Pol] 2002-04 +imqbrokerd 7676/udp # iMQ Broker Rendezvous [Joseph_Di_Pol] [Joseph_Di_Pol] 2002-04 +sun-user-https 7677/tcp # Sun App Server - HTTPS [Abhijit_Kumar] [Abhijit_Kumar] 2005-11 +sun-user-https 7677/udp # Sun App Server - HTTPS [Abhijit_Kumar] [Abhijit_Kumar] 2005-11 +# 7678-7679 Unassigned +pando-pub 7680/tcp # Pando Media Public [Laird_Popkin] [Laird_Popkin] 2008-02-27 +pando-pub 7680/udp # Pando Media Public [Laird_Popkin] [Laird_Popkin] 2008-02-27 +# 7681-7688 Unassigned +collaber 7689/tcp # Collaber Network Service [Rajesh_Akkineni] [Rajesh_Akkineni] 2007-01 +collaber 7689/udp # Collaber Network Service [Rajesh_Akkineni] [Rajesh_Akkineni] 2007-01 +# 7690-7696 Unassigned +klio 7697/tcp # KLIO communications [Helmut_Giritzer_2] [Helmut_Giritzer_2] 2005-08 +klio 7697/udp # KLIO communications [Helmut_Giritzer_2] [Helmut_Giritzer_2] 2005-08 +# 7698-7699 Unassigned +em7-secom 7700/tcp # EM7 Secure Communications [Christopher_Cordray] [Christopher_Cordray] 2008-06-05 +# 7700 udp Reserved +# 7701-7706 Unassigned +sync-em7 7707/tcp # EM7 Dynamic Updates [Christopher_Cordray] [Christopher_Cordray] 2004-11 +sync-em7 7707/udp # EM7 Dynamic Updates [Christopher_Cordray] [Christopher_Cordray] 2004-11 +scinet 7708/tcp # scientia.net [Christoph_Anton_Mitt] [Christoph_Anton_Mitt] 2006-01 +scinet 7708/udp # scientia.net [Christoph_Anton_Mitt] [Christoph_Anton_Mitt] 2006-01 +# 7709-7719 Unassigned +medimageportal 7720/tcp # MedImage Portal [Robert_Helton] [Robert_Helton] 2003-10 +medimageportal 7720/udp # MedImage Portal [Robert_Helton] [Robert_Helton] 2003-10 +# 7721-7723 Unassigned +nsdeepfreezectl 7724/tcp # Novell Snap-in Deep Freeze [David_Crowe] [David_Crowe] 2008-01-07 +nsdeepfreezectl 7724/udp # Novell Snap-in Deep Freeze [David_Crowe] [David_Crowe] 2008-01-07 +nitrogen 7725/tcp # Nitrogen Service [Randy_Lomnes] [Randy_Lomnes] 2004-11 +nitrogen 7725/udp # Nitrogen Service [Randy_Lomnes] [Randy_Lomnes] 2004-11 +freezexservice 7726/tcp # FreezeX Console Service [David_Crowe] [David_Crowe] 2005-06 +freezexservice 7726/udp # FreezeX Console Service [David_Crowe] [David_Crowe] 2005-06 +trident-data 7727/tcp # Trident Systems Data [Jeremy_McClintock] [Jeremy_McClintock] 2005-08 +trident-data 7727/udp # Trident Systems Data [Jeremy_McClintock] [Jeremy_McClintock] 2005-08 +# 7728-7733 Unassigned +smip 7734/tcp # Smith Protocol over IP [Jim_Pettinato] [Jim_Pettinato] 2007-04 +smip 7734/udp # Smith Protocol over IP [Jim_Pettinato] [Jim_Pettinato] 2007-04 +# 7735-7737 Unassigned +aiagent 7738/tcp # HP Enterprise Discovery [Matthew_Darwin] [Matthew_Darwin] 2005-08 +aiagent 7738/udp # HP Enterprise Discovery [Matthew_Darwin] [Matthew_Darwin] 2005-08 +# 7739-7740 Unassigned +scriptview 7741/tcp # ScriptView Network [Reinhard_Wolf] [Reinhard_Wolf] 2010-08-19 +scriptview 7741/udp # ScriptView Network [Reinhard_Wolf] [Reinhard_Wolf] 2010-08-19 +msss 7742/tcp # Mugginsoft Script Server [Jonathan_Mitchell] [Jonathan_Mitchell] 2008-09-08 +# 7742 udp Reserved +sstp-1 7743/tcp # Sakura Script Transfer [Kouichi_Takeda] [Kouichi_Takeda] +sstp-1 7743/udp # Sakura Script Transfer [Kouichi_Takeda] [Kouichi_Takeda] +raqmon-pdu 7744/tcp # RAQMON PDU [RFC4712] +raqmon-pdu 7744/udp # RAQMON PDU [RFC4712] +# 7745-7746 Unassigned +prgp 7747/tcp # Put/Run/Get Protocol [Jayasooriah] [Jayasooriah] 2008-02-22 +prgp 7747/udp # Put/Run/Get Protocol [Jayasooriah] [Jayasooriah] 2008-02-22 +# 7748-7776 Unassigned +cbt 7777/tcp # cbt [Tony_Ballardie] [Tony_Ballardie] +cbt 7777/udp # cbt [Tony_Ballardie] [Tony_Ballardie] +interwise 7778/tcp # Interwise [Joseph_Gray] [Joseph_Gray] +interwise 7778/udp # Interwise [Joseph_Gray] [Joseph_Gray] +vstat 7779/tcp # VSTAT [Vinh_Nguyn] [Vinh_Nguyn] +vstat 7779/udp # VSTAT [Vinh_Nguyn] [Vinh_Nguyn] +# 7780 Unassigned +accu-lmgr 7781/tcp # accu-lmgr [Moises_E_Hernandez] [Moises_E_Hernandez] +accu-lmgr 7781/udp # accu-lmgr [Moises_E_Hernandez] [Moises_E_Hernandez] +# 7782-7785 Unassigned +minivend 7786/tcp # MINIVEND [Mike_Heins] [Mike_Heins] +minivend 7786/udp # MINIVEND [Mike_Heins] [Mike_Heins] +popup-reminders 7787/tcp # Popup Reminders Receive [Robert_Harvey] [Robert_Harvey] 2006-01 +popup-reminders 7787/udp # Popup Reminders Receive [Robert_Harvey] [Robert_Harvey] 2006-01 +# 7788 Unassigned +office-tools 7789/tcp # Office Tools Pro Receive [Robert_Harvey] [Robert_Harvey] 2006-01 +office-tools 7789/udp # Office Tools Pro Receive [Robert_Harvey] [Robert_Harvey] 2006-01 +# 7790-7793 Unassigned +q3ade 7794/tcp # Q3ADE Cluster Service [Uffe_Harksen] [Uffe_Harksen] 2005-08 +q3ade 7794/udp # Q3ADE Cluster Service [Uffe_Harksen] [Uffe_Harksen] 2005-08 +# 7795-7796 Unassigned +pnet-conn 7797/tcp # Propel Connector port +pnet-conn 7797/udp # Propel Connector port +pnet-enc 7798/tcp # Propel Encoder port [Leif_Hedstrom] [Leif_Hedstrom] 2002-04 +pnet-enc 7798/udp # Propel Encoder port [Leif_Hedstrom] [Leif_Hedstrom] 2002-04 +altbsdp 7799/tcp # Alternate BSDP Service [Dieter_Siegmund] [Dieter_Siegmund] 2007-10-22 +altbsdp 7799/udp # Alternate BSDP Service [Dieter_Siegmund] [Dieter_Siegmund] 2007-10-22 +asr 7800/tcp # Apple Software Restore [Jim_Kateley][Shantonu_Sen] [Jim_Kateley][Shantonu_Sen] 2006-01 Defined TXT keys: image= +asr 7800/udp # Apple Software Restore [Jim_Kateley][Shantonu_Sen] [Jim_Kateley][Shantonu_Sen] 2006-01 Defined TXT keys: image= +ssp-client 7801/tcp # Secure Server Protocol - [Rick_Macchio] [Rick_Macchio] 2006-11 +ssp-client 7801/udp # Secure Server Protocol - [Rick_Macchio] [Rick_Macchio] 2006-11 +vns-tp 7802/udp # Virtualized Network Services [Juniper_Networks] [Bruno_Rijsman] 2013-02-01 +# Tunnel Protocol +# 7802 tcp Reserved +# 7803-7809 Unassigned +rbt-wanopt 7810/tcp # Riverbed WAN Optimization [Vladimir_Legalov_2] [Vladimir_Legalov_2] 2007-09-04 +rbt-wanopt 7810/udp # Riverbed WAN Optimization [Vladimir_Legalov_2] [Vladimir_Legalov_2] 2007-09-04 +# 7811-7844 Unassigned +apc-7845 7845/tcp # APC 7845 [American_Power_Conve] [American_Power_Conve] +apc-7845 7845/udp # APC 7845 [American_Power_Conve] [American_Power_Conve] +apc-7846 7846/tcp # APC 7846 [American_Power_Conve] [American_Power_Conve] +apc-7846 7846/udp # APC 7846 [American_Power_Conve] [American_Power_Conve] +# 7847-7868 Unassigned +mobileanalyzer 7869/tcp # MobileAnalyzer& [Jonas_Gyllensvaan] [Jonas_Gyllensvaan] 2009-04-27 +# MobileMonitor +# 7869 udp Reserved +rbt-smc 7870/tcp # Riverbed Steelhead Mobile [Gabriel_Levy] [Gabriel_Levy] 2008-08-29 +# 7870 udp Reserved +mdm 7871/tcp # Mobile Device Management [Dan_Harkins] [Dan_Harkins] 2011-08-15 +# 7871 udp Reserved +# 7872 tcp Reserved +mipv6tls 7872/udp # TLS-based Mobile IPv6 [IESG] [IETF_Chair] 2012-04-12 [RFC6618] +# Security +# 7873-7879 Unassigned +pss 7880/tcp # Pearson [Pearson] [Pearson] 2008-01-17 +pss 7880/udp # Pearson [Pearson] [Pearson] 2008-01-17 +# 7881-7886 Unassigned +ubroker 7887/tcp # Universal Broker [Nathan_Hammond] [Nathan_Hammond] 2005-10 +ubroker 7887/udp # Universal Broker [Nathan_Hammond] [Nathan_Hammond] 2005-10 +# 7888-7899 Unassigned +mevent 7900/tcp # Multicast Event [YoonSoo_Kim] [YoonSoo_Kim] 2006-05 +mevent 7900/udp # Multicast Event [YoonSoo_Kim] [YoonSoo_Kim] 2006-05 +tnos-sp 7901/tcp # TNOS Service Protocol [Rene_Kurt] [Rene_Kurt] 2005-08 +tnos-sp 7901/udp # TNOS Service Protocol [Rene_Kurt] [Rene_Kurt] 2005-08 +tnos-dp 7902/tcp # TNOS shell Protocol [Rene_Kurt] [Rene_Kurt] 2005-08 +tnos-dp 7902/udp # TNOS shell Protocol [Rene_Kurt] [Rene_Kurt] 2005-08 +tnos-dps 7903/tcp # TNOS Secure DiaguardProtocol [Rene_Kurt] [Rene_Kurt] 2005-08 +tnos-dps 7903/udp # TNOS Secure DiaguardProtocol [Rene_Kurt] [Rene_Kurt] 2005-08 +# 7904-7912 Unassigned +qo-secure 7913/tcp # QuickObjects secure port [Jonas_Bovin] [Jonas_Bovin] +qo-secure 7913/udp # QuickObjects secure port [Jonas_Bovin] [Jonas_Bovin] +# 7914-7931 Unassigned +t2-drm 7932/tcp # Tier 2 Data Resource Manager [Peter_Carlson] [Peter_Carlson] +t2-drm 7932/udp # Tier 2 Data Resource Manager [Peter_Carlson] [Peter_Carlson] +t2-brm 7933/tcp # Tier 2 Business Rules [Peter_Carlson] [Peter_Carlson] +t2-brm 7933/udp # Tier 2 Business Rules [Peter_Carlson] [Peter_Carlson] +# 7934-7966 Unassigned +supercell 7967/tcp # Supercell [Kevin_Nakagawa] [Kevin_Nakagawa] +supercell 7967/udp # Supercell [Kevin_Nakagawa] [Kevin_Nakagawa] +# 7968-7978 Unassigned +micromuse-ncps 7979/tcp # Micromuse-ncps [Hing_Wing_To] [Hing_Wing_To] +micromuse-ncps 7979/udp # Micromuse-ncps [Hing_Wing_To] [Hing_Wing_To] +quest-vista 7980/tcp # Quest Vista [Preston_Bannister] [Preston_Bannister] +quest-vista 7980/udp # Quest Vista [Preston_Bannister] [Preston_Bannister] +sossd-collect 7981/tcp # Spotlight on SQL Server [Rob_Griffin_2] [Rob_Griffin_2] 2010-08-30 +# Desktop Collect +# 7981 udp Reserved +sossd-agent 7982/tcp # Spotlight on SQL Server [Rob_Griffin_2] [Rob_Griffin_2] 2010-09-13 +# Desktop Agent +sossd-disc 7982/udp # Spotlight on SQL Server [Rob_Griffin_2] [Rob_Griffin_2] 2010-09-13 +# Desktop Agent Discovery +# 7983-7997 Unassigned +pushns 7997/tcp # PUSH Notification Service [Tristan_Seifert] [Tristan_Seifert] 2011-01-31 +# 7997 udp Reserved +# 7998 tcp Reserved +usicontentpush 7998/udp # USI Content Push Service [Prakash_Iyer] [Prakash_Iyer] 2009-08-10 +irdmi2 7999/tcp # iRDMI2 +irdmi2 7999/udp # iRDMI2 +irdmi 8000/tcp # iRDMI [Gil_Shafriri] [Gil_Shafriri] +irdmi 8000/udp # iRDMI [Gil_Shafriri] [Gil_Shafriri] +vcom-tunnel 8001/tcp # VCOM Tunnel [Mark_Lewandowski] [Mark_Lewandowski] +vcom-tunnel 8001/udp # VCOM Tunnel [Mark_Lewandowski] [Mark_Lewandowski] +teradataordbms 8002/tcp # Teradata ORDBMS [Curt_Ellmann] [Curt_Ellmann] +teradataordbms 8002/udp # Teradata ORDBMS [Curt_Ellmann] [Curt_Ellmann] +mcreport 8003/tcp # Mulberry Connect Reporting [Dave_Stoneham] [Dave_Stoneham] 2008-03-10 +mcreport 8003/udp # Mulberry Connect Reporting [Dave_Stoneham] [Dave_Stoneham] 2008-03-10 +# 8004 Unassigned +mxi 8005/tcp # MXI Generation II for z/OS [Rob_Scott] [Rob_Scott] 2007-05 +mxi 8005/udp # MXI Generation II for z/OS [Rob_Scott] [Rob_Scott] 2007-05 +# 8006-8007 Unassigned +http-alt 8008/tcp # HTTP Alternate [James_Gettys] [James_Gettys] +http-alt 8008/udp # HTTP Alternate [James_Gettys] [James_Gettys] +# 8009-8018 Unassigned +qbdb 8019/tcp # QB DB Dynamic Port [Sridhar_Krishnamurth] [Sridhar_Krishnamurth] 2008-02-15 +qbdb 8019/udp # QB DB Dynamic Port [Sridhar_Krishnamurth] [Sridhar_Krishnamurth] 2008-02-15 +intu-ec-svcdisc 8020/tcp # Intuit Entitlement Service [Daniel_C_McGloin] [Daniel_C_McGloin] 2005-05 +# and Discovery +intu-ec-svcdisc 8020/udp # Intuit Entitlement Service [Daniel_C_McGloin] [Daniel_C_McGloin] 2005-05 +intu-ec-client 8021/tcp # Intuit Entitlement Client [Daniel_C_McGloin] [Daniel_C_McGloin] 2005-05 +intu-ec-client 8021/udp # Intuit Entitlement Client [Daniel_C_McGloin] [Daniel_C_McGloin] 2005-05 +oa-system 8022/tcp # oa-system [Marie_France_Dubreui] [Marie_France_Dubreui] +oa-system 8022/udp # oa-system [Marie_France_Dubreui] [Marie_France_Dubreui] +# 8023-8024 Unassigned +ca-audit-da 8025/tcp # CA Audit Distribution Agent [Henning_Smith] [Henning_Smith] 2006-07 +ca-audit-da 8025/udp # CA Audit Distribution Agent [Henning_Smith] [Henning_Smith] 2006-07 +ca-audit-ds 8026/tcp # CA Audit Distribution Server [Henning_Smith] [Henning_Smith] 2006-07 +ca-audit-ds 8026/udp # CA Audit Distribution Server [Henning_Smith] [Henning_Smith] 2006-07 +# 8027-8031 Unassigned +pro-ed 8032/tcp # ProEd +pro-ed 8032/udp # ProEd +mindprint 8033/tcp # MindPrint [Larry_Tusoni] [Larry_Tusoni] +mindprint 8033/udp # MindPrint [Larry_Tusoni] [Larry_Tusoni] +vantronix-mgmt 8034/tcp # .vantronix Management [Reyk_Floeter] [Reyk_Floeter] 2008-02-27 +vantronix-mgmt 8034/udp # .vantronix Management [Reyk_Floeter] [Reyk_Floeter] 2008-02-27 +# 8035-8039 Unassigned +ampify 8040/tcp # Ampify Messaging Protocol [Tav_Espian] [Tav_Espian] 2010-08-10 +ampify 8040/udp # Ampify Messaging Protocol [Tav_Espian] [Tav_Espian] 2010-08-10 +# 8041 Unassigned +fs-agent 8042/tcp # FireScope Agent [Matt_Rogers] [Matt_Rogers] 2008-10-16 +# 8042 udp Reserved +fs-server 8043/tcp # FireScope Server [Matt_Rogers] [Matt_Rogers] 2008-10-16 +# 8043 udp Reserved +fs-mgmt 8044/tcp # FireScope Management [Matt_Rogers] [Matt_Rogers] 2008-10-16 +# 8044 udp Reserved +# 8045-8050 Unassigned +rocrail 8051/tcp # Rocrail Client Service [Rob_Versluis] [Rob_Versluis] 2011-05-23 +# 8051 udp Reserved +senomix01 8052/tcp # Senomix Timesheets Server [Charles_O_Dale] [Charles_O_Dale] 2006-07 +senomix01 8052/udp # Senomix Timesheets Server [Charles_O_Dale] [Charles_O_Dale] 2006-07 +senomix02 8053/tcp # Senomix Timesheets Client [1 [Charles_O_Dale] [Charles_O_Dale] 2006-07 +# year assignment] +senomix02 8053/udp # Senomix Timesheets Client [1 [Charles_O_Dale] [Charles_O_Dale] 2006-07 +senomix03 8054/tcp # Senomix Timesheets Server [1 [Charles_O_Dale] [Charles_O_Dale] 2006-07 +senomix03 8054/udp # Senomix Timesheets Server [1 [Charles_O_Dale] [Charles_O_Dale] 2006-07 +senomix04 8055/tcp # Senomix Timesheets Server [1 [Charles_O_Dale] [Charles_O_Dale] 2006-07 +senomix04 8055/udp # Senomix Timesheets Server [1 [Charles_O_Dale] [Charles_O_Dale] 2006-07 +senomix05 8056/tcp # Senomix Timesheets Server [1 [Charles_O_Dale] [Charles_O_Dale] 2006-07 +senomix05 8056/udp # Senomix Timesheets Server [1 [Charles_O_Dale] [Charles_O_Dale] 2006-07 +senomix06 8057/tcp # Senomix Timesheets Client [1 [Charles_O_Dale] [Charles_O_Dale] 2006-07 +senomix06 8057/udp # Senomix Timesheets Client [1 [Charles_O_Dale] [Charles_O_Dale] 2006-07 +senomix07 8058/tcp # Senomix Timesheets Client [1 [Charles_O_Dale] [Charles_O_Dale] 2006-07 +senomix07 8058/udp # Senomix Timesheets Client [1 [Charles_O_Dale] [Charles_O_Dale] 2006-07 +senomix08 8059/tcp # Senomix Timesheets Client [1 [Charles_O_Dale] [Charles_O_Dale] 2006-07 +senomix08 8059/udp # Senomix Timesheets Client [1 [Charles_O_Dale] [Charles_O_Dale] 2006-07 +# 8060 tcp Reserved +aero 8060/udp # Asymmetric Extended Route [IESG] [IETF_Chair] [RFC6706] +# Optimization (AERO) +# 8061-8073 Unassigned +gadugadu 8074/tcp # Gadu-Gadu [Marcin_Gozdalik] [Marcin_Gozdalik] 2006-05 +gadugadu 8074/udp # Gadu-Gadu [Marcin_Gozdalik] [Marcin_Gozdalik] 2006-05 +# 8075-8079 Unassigned +http-alt 8080/tcp # HTTP Alternate (see port 80) [Stephen_Casner] [Stephen_Casner] +http-alt 8080/udp # HTTP Alternate (see port 80) [Stephen_Casner] [Stephen_Casner] +sunproxyadmin 8081/tcp # Sun Proxy Admin Service [Arvind_Srinivasan] [Arvind_Srinivasan] 2005-08 +sunproxyadmin 8081/udp # Sun Proxy Admin Service [Arvind_Srinivasan] [Arvind_Srinivasan] 2005-08 +us-cli 8082/tcp # Utilistor (Client) [Andy_Brewerton] [Andy_Brewerton] 2005-08 +us-cli 8082/udp # Utilistor (Client) [Andy_Brewerton] [Andy_Brewerton] 2005-08 +us-srv 8083/tcp # Utilistor (Server) [Andy_Brewerton] [Andy_Brewerton] 2005-08 +us-srv 8083/udp # Utilistor (Server) [Andy_Brewerton] [Andy_Brewerton] 2005-08 +# 8084-8085 Unassigned +d-s-n 8086/tcp # Distributed SCADA Networking [Gary_Hampton] [Gary_Hampton] 2008-02-27 +# Rendezvous Port +d-s-n 8086/udp # Distributed SCADA Networking [Gary_Hampton] [Gary_Hampton] 2008-02-27 +simplifymedia 8087/tcp # Simplify Media SPP Protocol [Emmanuel_Saint_Loube] [Emmanuel_Saint_Loube] 2008-08-08 +simplifymedia 8087/udp # Simplify Media SPP Protocol [Emmanuel_Saint_Loube] [Emmanuel_Saint_Loube] 2008-08-08 +radan-http 8088/tcp # Radan HTTP [Steve_Hay] [Steve_Hay] 2008-06-13 +radan-http 8088/udp # Radan HTTP [Steve_Hay] [Steve_Hay] 2008-06-13 +# 8089-8090 Unassigned +jamlink 8091/tcp # Jam Link Framework [Evgeniy_Filatov] [Evgeniy_Filatov] 2009-11-25 +# 8091 udp Reserved +# 8092-8096 Unassigned +sac 8097/tcp # SAC Port Id [Girish_Bhat] [Girish_Bhat] 2006-04 +sac 8097/udp # SAC Port Id [Girish_Bhat] [Girish_Bhat] 2006-04 +# 8098-8099 Unassigned +xprint-server 8100/tcp # Xprint Server [John_McKernan] [John_McKernan] +xprint-server 8100/udp # Xprint Server [John_McKernan] [John_McKernan] +ldoms-migr 8101/tcp # Logical Domains Migration [Liam_Merwick] [Liam_Merwick] 2009-01-16 +# 8101 udp Reserved +# 8102-8114 Unassigned +mtl8000-matrix 8115/tcp # MTL8000 Matrix [David_Pinch] [David_Pinch] 2002-04 +mtl8000-matrix 8115/udp # MTL8000 Matrix [David_Pinch] [David_Pinch] 2002-04 +cp-cluster 8116/tcp # Check Point Clustering [Roni_Moshitzky] [Roni_Moshitzky] +cp-cluster 8116/udp # Check Point Clustering [Roni_Moshitzky] [Roni_Moshitzky] +# 8117 Unassigned +privoxy 8118/tcp # Privoxy HTTP proxy [Andreas_Oesterhelt] [Andreas_Oesterhelt] 2002-06 +privoxy 8118/udp # Privoxy HTTP proxy [Andreas_Oesterhelt] [Andreas_Oesterhelt] 2002-06 +# 8119-8120 Unassigned +apollo-data 8121/tcp # Apollo Data Port [Anthony_Carrabino] [Anthony_Carrabino] 2003-08 +apollo-data 8121/udp # Apollo Data Port [Anthony_Carrabino] [Anthony_Carrabino] 2003-08 +apollo-admin 8122/tcp # Apollo Admin Port [Anthony_Carrabino] [Anthony_Carrabino] 2003-08 +apollo-admin 8122/udp # Apollo Admin Port [Anthony_Carrabino] [Anthony_Carrabino] 2003-08 +# 8123-8127 Unassigned +paycash-online 8128/tcp # PayCash Online Protocol [MegaZone] [MegaZone] 2005-08 +paycash-online 8128/udp # PayCash Online Protocol [MegaZone] [MegaZone] 2005-08 +paycash-wbp 8129/tcp # PayCash Wallet-Browser [MegaZone] [MegaZone] 2005-08 +paycash-wbp 8129/udp # PayCash Wallet-Browser [MegaZone] [MegaZone] 2005-08 +indigo-vrmi 8130/tcp # INDIGO-VRMI [Colin_Caughie] [Colin_Caughie] +indigo-vrmi 8130/udp # INDIGO-VRMI [Colin_Caughie] [Colin_Caughie] +indigo-vbcp 8131/tcp # INDIGO-VBCP [Colin_Caughie] [Colin_Caughie] +indigo-vbcp 8131/udp # INDIGO-VBCP [Colin_Caughie] [Colin_Caughie] +dbabble 8132/tcp # dbabble [Chris_Pugmire] [Chris_Pugmire] +dbabble 8132/udp # dbabble [Chris_Pugmire] [Chris_Pugmire] +# 8133-8147 Unassigned +isdd 8148/tcp # i-SDD file transfer [Frank_Waarsenburg] [Frank_Waarsenburg] 2004-11 +isdd 8148/udp # i-SDD file transfer [Frank_Waarsenburg] [Frank_Waarsenburg] 2004-11 +# 8149 tcp Reserved +eor-game 8149/udp # Edge of Reality game data [Sky_Schulz] [Sky_Schulz] 2011-05-09 +# 8150-8152 Unassigned +quantastor 8153/tcp # QuantaStor Management [OS_NEXUS] [Steven_Umbehocker] 2012-09-21 +# 8153 udp Reserved +# 8154-8159 Unassigned +patrol 8160/tcp # Patrol [Portnoy_Boxman] [Portnoy_Boxman] +patrol 8160/udp # Patrol [Portnoy_Boxman] [Portnoy_Boxman] +patrol-snmp 8161/tcp # Patrol SNMP [Portnoy_Boxman] [Portnoy_Boxman] +patrol-snmp 8161/udp # Patrol SNMP [Portnoy_Boxman] [Portnoy_Boxman] +# 8162-8180 Unassigned +intermapper 8181/tcp # Intermapper network [William_Fisher] [William_Fisher] 2011-05-09 +# management system +# 8181 udp Reserved +vmware-fdm 8182/tcp # VMware Fault Domain Manager [Ron_Passerini] [Ron_Passerini] 2010-04-27 +vmware-fdm 8182/udp # VMware Fault Domain Manager [Ron_Passerini] [Ron_Passerini] 2010-04-27 +proremote 8183/tcp # ProRemote [Alex_Lelievre] [Alex_Lelievre] 2009-08-18 +# 8183 udp Reserved +itach 8184/tcp # Remote iTach Connection [Barend_Jacobus_van_d] [Barend_Jacobus_van_d] 2010-04-27 +itach 8184/udp # Remote iTach Connection [Barend_Jacobus_van_d] [Barend_Jacobus_van_d] 2010-04-27 +# 8185-8191 Unassigned +spytechphone 8192/tcp # SpyTech Phone Service [Bill_Kay] [Bill_Kay] 2006-04 +spytechphone 8192/udp # SpyTech Phone Service [Bill_Kay] [Bill_Kay] 2006-04 +# 8193 Unassigned +blp1 8194/tcp # Bloomberg data API [Albert_Hou] [Albert_Hou] 2006-05 +blp1 8194/udp # Bloomberg data API [Albert_Hou] [Albert_Hou] 2006-05 +blp2 8195/tcp # Bloomberg feed [Albert_Hou] [Albert_Hou] 2006-05 +blp2 8195/udp # Bloomberg feed [Albert_Hou] [Albert_Hou] 2006-05 +# 8196-8198 Unassigned +vvr-data 8199/tcp # VVR DATA [Ming_Xu] [Ming_Xu] +vvr-data 8199/udp # VVR DATA [Ming_Xu] [Ming_Xu] +trivnet1 8200/tcp # TRIVNET [Saar_Wilf] [Saar_Wilf] +trivnet1 8200/udp # TRIVNET [Saar_Wilf] [Saar_Wilf] +trivnet2 8201/tcp # TRIVNET [Saar_Wilf] [Saar_Wilf] +trivnet2 8201/udp # TRIVNET [Saar_Wilf] [Saar_Wilf] +# 8202 tcp Reserved +aesop 8202/udp # Audio+Ethernet Standard Open [POWERSOFT_SRL] [Paolo_Desii][Claudio_Lastrucci] 2012-01-03 +# 8203-8203 Unassigned +lm-perfworks 8204/tcp # LM Perfworks [Chris_Flynn] [Chris_Flynn] +lm-perfworks 8204/udp # LM Perfworks [Chris_Flynn] [Chris_Flynn] +lm-instmgr 8205/tcp # LM Instmgr [Chris_Flynn] [Chris_Flynn] +lm-instmgr 8205/udp # LM Instmgr [Chris_Flynn] [Chris_Flynn] +lm-dta 8206/tcp # LM Dta [Chris_Flynn] [Chris_Flynn] +lm-dta 8206/udp # LM Dta [Chris_Flynn] [Chris_Flynn] +lm-sserver 8207/tcp # LM SServer [Chris_Flynn] [Chris_Flynn] +lm-sserver 8207/udp # LM SServer [Chris_Flynn] [Chris_Flynn] +lm-webwatcher 8208/tcp # LM Webwatcher [Chris_Flynn] [Chris_Flynn] +lm-webwatcher 8208/udp # LM Webwatcher [Chris_Flynn] [Chris_Flynn] +# 8209-8229 Unassigned +rexecj 8230/tcp # RexecJ Server [Curtiss_Howard] [Curtiss_Howard] 2004-11 +rexecj 8230/udp # RexecJ Server [Curtiss_Howard] [Curtiss_Howard] 2004-11 +# 8231-8242 Unassigned +synapse-nhttps 8243/tcp # Synapse Non Blocking HTTPS [Ruwan_Linton] [Ruwan_Linton] 2008-07-10 +synapse-nhttps 8243/udp # Synapse Non Blocking HTTPS [Ruwan_Linton] [Ruwan_Linton] 2008-07-10 +# 8244-8275 Unassigned +pando-sec 8276/tcp # Pando Media Controlled [Laird_Popkin] [Laird_Popkin] 2008-02-27 +pando-sec 8276/udp # Pando Media Controlled [Laird_Popkin] [Laird_Popkin] 2008-02-27 +# 8277-8279 Unassigned +synapse-nhttp 8280/tcp # Synapse Non Blocking HTTP [Ruwan_Linton] [Ruwan_Linton] 2008-06-05 +synapse-nhttp 8280/udp # Synapse Non Blocking HTTP [Ruwan_Linton] [Ruwan_Linton] 2008-06-05 +# 8281-8291 Unassigned +blp3 8292/tcp # Bloomberg professional [Albert_Hou] [Albert_Hou] 2006-05 +blp3 8292/udp # Bloomberg professional [Albert_Hou] [Albert_Hou] 2006-05 +hiperscan-id 8293/tcp # Hiperscan Identification [Thomas_Klose] [Thomas_Klose] 2009-12-15 +# 8293 udp Reserved +blp4 8294/tcp # Bloomberg intelligent client [Albert_Hou] [Albert_Hou] 2006-05 +blp4 8294/udp # Bloomberg intelligent client [Albert_Hou] [Albert_Hou] 2006-05 +# 8295-8299 Unassigned +tmi 8300/tcp # Transport Management [Steve_Kneizys] [Steve_Kneizys] 2006-11 +tmi 8300/udp # Transport Management [Steve_Kneizys] [Steve_Kneizys] 2006-11 +amberon 8301/tcp # Amberon PPC/PPS [Ronald_Snyder] [Ronald_Snyder] 2006-03 +amberon 8301/udp # Amberon PPC/PPS [Ronald_Snyder] [Ronald_Snyder] 2006-03 +# 8302-8312 Unassigned +hub-open-net 8313/tcp # Hub Open Network [Grexie] [Tim_Behrsin] 2012-06-13 Defined TXT keys: _hub._tcp.host.example.com +# 8313 udp Reserved +# 8314-8319 Unassigned +tnp-discover 8320/tcp # Thin(ium) Network Protocol [Aly_Orady] [Aly_Orady] 2007-08-07 +tnp-discover 8320/udp # Thin(ium) Network Protocol [Aly_Orady] [Aly_Orady] 2007-08-07 +tnp 8321/tcp # Thin(ium) Network Protocol [Aly_Orady] [Aly_Orady] 2007-08-07 +tnp 8321/udp # Thin(ium) Network Protocol [Aly_Orady] [Aly_Orady] 2007-08-07 +# 8322-8350 Unassigned +server-find 8351/tcp # Server Find [Chris_Brown] [Chris_Brown] +server-find 8351/udp # Server Find [Chris_Brown] [Chris_Brown] +# 8352-8375 Unassigned +cruise-enum 8376/tcp # Cruise ENUM [Steve_Husak] [Steve_Husak] +cruise-enum 8376/udp # Cruise ENUM [Steve_Husak] [Steve_Husak] +cruise-swroute 8377/tcp # Cruise SWROUTE [Steve_Husak] [Steve_Husak] +cruise-swroute 8377/udp # Cruise SWROUTE [Steve_Husak] [Steve_Husak] +cruise-config 8378/tcp # Cruise CONFIG [Steve_Husak] [Steve_Husak] +cruise-config 8378/udp # Cruise CONFIG [Steve_Husak] [Steve_Husak] +cruise-diags 8379/tcp # Cruise DIAGS [Steve_Husak] [Steve_Husak] +cruise-diags 8379/udp # Cruise DIAGS [Steve_Husak] [Steve_Husak] +cruise-update 8380/tcp # Cruise UPDATE [Steve_Husak] [Steve_Husak] +cruise-update 8380/udp # Cruise UPDATE [Steve_Husak] [Steve_Husak] +# 8381-8382 Unassigned +m2mservices 8383/tcp # M2m Services [Carlos_Arteaga_2] [Carlos_Arteaga_2] 2004-11 +m2mservices 8383/udp # M2m Services [Carlos_Arteaga_2] [Carlos_Arteaga_2] 2004-11 +# 8384-8399 Unassigned +cvd 8400/tcp # cvd [Aaron_Bilbrey] [Aaron_Bilbrey] +cvd 8400/udp # cvd [Aaron_Bilbrey] [Aaron_Bilbrey] +sabarsd 8401/tcp # sabarsd [Aaron_Bilbrey] [Aaron_Bilbrey] +sabarsd 8401/udp # sabarsd [Aaron_Bilbrey] [Aaron_Bilbrey] +abarsd 8402/tcp # abarsd [Aaron_Bilbrey] [Aaron_Bilbrey] +abarsd 8402/udp # abarsd [Aaron_Bilbrey] [Aaron_Bilbrey] +admind 8403/tcp # admind [Aaron_Bilbrey] [Aaron_Bilbrey] +admind 8403/udp # admind [Aaron_Bilbrey] [Aaron_Bilbrey] +svcloud 8404/tcp # SuperVault Cloud [Nine_Technology_LLC] [Alex_Stoev] 2009-09-14 2011-08-01 +# 8404 udp Reserved +svbackup 8405/tcp # SuperVault Backup [Nine_Technology_LLC] [Alex_Stoev] 2009-09-14 2011-08-01 +# 8405 udp Reserved +# 8406-8414 Unassigned +dlpx-sp 8415/tcp # Delphix Session Protocol [Delphix_Corp] [Peng_Dai] 2012-11-01 +# 8415 udp Reserved +espeech 8416/tcp # eSpeech Session Protocol [Scott_Tarone] [Scott_Tarone] 2002-11 +espeech 8416/udp # eSpeech Session Protocol [Scott_Tarone] [Scott_Tarone] 2002-11 +espeech-rtp 8417/tcp # eSpeech RTP Protocol [Scott_Tarone] [Scott_Tarone] 2003-04 +espeech-rtp 8417/udp # eSpeech RTP Protocol [Scott_Tarone] [Scott_Tarone] 2003-04 +# 8418-8441 Unassigned +cybro-a-bus 8442/tcp # CyBro A-bus Protocol [Damir_Skrjanec] [Damir_Skrjanec] 2007-05 +cybro-a-bus 8442/udp # CyBro A-bus Protocol [Damir_Skrjanec] [Damir_Skrjanec] 2007-05 +pcsync-https 8443/tcp # PCsync HTTPS +pcsync-https 8443/udp # PCsync HTTPS +pcsync-http 8444/tcp # PCsync HTTP [Katy_Lynn_McCullough] [Katy_Lynn_McCullough] +pcsync-http 8444/udp # PCsync HTTP [Katy_Lynn_McCullough] [Katy_Lynn_McCullough] +copy 8445/tcp # Port for copy peer sync [Copy] [Jason_Dictos] 2012-09-19 +# feature +copy-disc 8445/udp # Port for copy discovery [Copy] [Jason_Dictos] 2012-09-19 +# 8446-8449 Unassigned +npmp 8450/tcp # npmp [Ian_Chard] [Ian_Chard] +npmp 8450/udp # npmp [Ian_Chard] [Ian_Chard] +# 8451-8456 Unassigned +nexentamv 8457/tcp # Nexenta Management GUI [Nexenta] [Andrew_Galloway] 2012-12-07 +# 8457 udp Reserved +# 8458-8469 Unassigned +cisco-avp 8470/tcp # Cisco Address Validation [Cullen_Jennings] [Cullen_Jennings] 2009-02-13 +# 8470 udp Reserved +pim-port 8471/tcp # PIM over Reliable Transport [IESG] [IETF_Chair] 2008-08-21 [RFC6559] +pim-port 8471/sctp # PIM over Reliable Transport [IESG] [IETF_Chair] 2008-08-21 [RFC6559] +# 8471 udp Reserved +otv 8472/tcp # Overlay Transport [Dino_Farinacci] [Dino_Farinacci] 2008-01-07 +# Virtualization (OTV) +otv 8472/udp # Overlay Transport [Dino_Farinacci] [Dino_Farinacci] 2008-01-07 +vp2p 8473/tcp # Virtual Point to Point [Jerome_Grimbert] [Jerome_Grimbert] +vp2p 8473/udp # Virtual Point to Point [Jerome_Grimbert] [Jerome_Grimbert] +noteshare 8474/tcp # AquaMinds NoteShare [Michael_McNabb] [Michael_McNabb] 2005-10 +noteshare 8474/udp # AquaMinds NoteShare [Michael_McNabb] [Michael_McNabb] 2005-10 +# 8475-8499 Unassigned +fmtp 8500/tcp # Flight Message Transfer [Eivan_Cerasi] [Eivan_Cerasi] 2003-12 +fmtp 8500/udp # Flight Message Transfer [Eivan_Cerasi] [Eivan_Cerasi] 2003-12 +cmtp-mgt 8501/tcp # CYTEL Message Transfer +cmtp-av 8501/udp # CYTEL Message Transfer Audio [Frank_Jakel] [Frank_Jakel] 2011-04-29 +# and Video +# 8502-8553 Unassigned +rtsp-alt 8554/tcp # RTSP Alternate (see port [Stephen_Casner_2] [Stephen_Casner_2] +# 554) +rtsp-alt 8554/udp # RTSP Alternate (see port [Stephen_Casner_2] [Stephen_Casner_2] +d-fence 8555/tcp # SYMAX D-FENCE [Thomas_Geisel] [Thomas_Geisel] 2003-01 +d-fence 8555/udp # SYMAX D-FENCE [Thomas_Geisel] [Thomas_Geisel] 2003-01 +# 8556-8566 Unassigned +enc-tunnel 8567/tcp # EMIT tunneling protocol [Panasonic_Intranet_Panasonic_North_America_PEWLA] [Bryant_Eastham] 2005-08 2012-11-12 +enc-tunnel 8567/udp # EMIT tunneling protocol [Panasonic_Intranet_Panasonic_North_America_PEWLA] [Bryant_Eastham] 2005-08 2012-11-12 +# 8568-8599 Unassigned +asterix 8600/tcp # Surveillance Data [Eivan_Cerasi] [Eivan_Cerasi] 2005-11 +asterix 8600/udp # Surveillance Data [Eivan_Cerasi] [Eivan_Cerasi] 2005-11 +# 8601-8608 Unassigned +# 8609 tcp Reserved +canon-cpp-disc 8609/udp # Canon Compact Printer [Canon_Inc] [Ryusuke_Okuhara] 2012-06-08 2012-06-15 +# Protocol Discovery +canon-mfnp 8610/tcp # Canon MFNP Service [Ritsuto_Sako] [Ritsuto_Sako] 2009-05-04 +canon-mfnp 8610/udp # Canon MFNP Service [Ritsuto_Sako] [Ritsuto_Sako] 2009-05-04 +canon-bjnp1 8611/tcp # Canon BJNP Port 1 [Atsushi_Nakamura] [Atsushi_Nakamura] 2003-11 +canon-bjnp1 8611/udp # Canon BJNP Port 1 [Atsushi_Nakamura] [Atsushi_Nakamura] 2003-11 +canon-bjnp2 8612/tcp # Canon BJNP Port 2 [Atsushi_Nakamura] [Atsushi_Nakamura] 2003-11 +canon-bjnp2 8612/udp # Canon BJNP Port 2 [Atsushi_Nakamura] [Atsushi_Nakamura] 2003-11 +canon-bjnp3 8613/tcp # Canon BJNP Port 3 [Atsushi_Nakamura] [Atsushi_Nakamura] 2003-11 +canon-bjnp3 8613/udp # Canon BJNP Port 3 [Atsushi_Nakamura] [Atsushi_Nakamura] 2003-11 +canon-bjnp4 8614/tcp # Canon BJNP Port 4 [Atsushi_Nakamura] [Atsushi_Nakamura] 2003-11 +canon-bjnp4 8614/udp # Canon BJNP Port 4 [Atsushi_Nakamura] [Atsushi_Nakamura] 2003-11 +imink 8615/tcp # Imink Service Control [Canon_Inc] [KEN_ICHI_FUJII] 2011-10-10 +# 8615 udp Reserved +# 8616-8674 Unassigned Use Known on +# ports 8616 +# and 8617 +# Motorola Solutions Customer +msi-cps-rm 8675/tcp # Programming Software for [Motorola_Solutions_Inc] [Jenish_Amin] 2012-03-14 +# Radio Management +msi-cps-rm-disc 8675/udp # Programming Software for [Motorola_Solutions_Inc] [Jenish_Amin] 2012-03-14 +# Radio Management Discovery +# 8676-8685 Unassigned +sun-as-jmxrmi 8686/tcp # Sun App Server - JMX/RMI [Abhijit_Kumar] [Abhijit_Kumar] 2005-11 +sun-as-jmxrmi 8686/udp # Sun App Server - JMX/RMI [Abhijit_Kumar] [Abhijit_Kumar] 2005-11 +# 8687 Unassigned +openremote-ctrl 8688/tcp # OpenRemote Controller [OpenRemote_Inc] [Juha_Lindfors] 2012-12-18 +# HTTP/REST +# 8688 udp Reserved +# 8689-8698 Unassigned +vnyx 8699/tcp # VNYX Primary Port [Gregg_Green] [Gregg_Green] 2004-11 +vnyx 8699/udp # VNYX Primary Port [Gregg_Green] [Gregg_Green] 2004-11 +# 8700-8710 Unassigned +nvc 8711/tcp # Nuance Voice Control [Nuance_Communications_Inc2] [Diego_Negre] 2012-10-05 +# 8711 udp Reserved +# 8712-8731 Unassigned +# 8732 tcp Reserved +dtp-net 8732/udp # DASGIP Net Services [Dr_Matthias_Arnold] [Dr_Matthias_Arnold] 2009-03-23 +ibus 8733/tcp # iBus [Silvano_Maffeis] [Silvano_Maffeis] +ibus 8733/udp # iBus [Silvano_Maffeis] [Silvano_Maffeis] +# 8734-8762 Unassigned +mc-appserver 8763/tcp # MC-APPSERVER [Romeo_Kasanwidjojo] [Romeo_Kasanwidjojo] +mc-appserver 8763/udp # MC-APPSERVER [Romeo_Kasanwidjojo] [Romeo_Kasanwidjojo] +openqueue 8764/tcp # OPENQUEUE [Matt_Jensen] [Matt_Jensen] +openqueue 8764/udp # OPENQUEUE [Matt_Jensen] [Matt_Jensen] +ultraseek-http 8765/tcp # Ultraseek HTTP [Walter_Underwood] [Walter_Underwood] +ultraseek-http 8765/udp # Ultraseek HTTP [Walter_Underwood] [Walter_Underwood] +amcs 8766/tcp # Agilent Connectivity Service [Agilent_Technologies_Inc] [Tom_Fay] 2013-01-16 +amcs 8766/udp # Agilent Connectivity Service [Agilent_Technologies_Inc] [Tom_Fay] 2013-01-16 +# 8767-8769 Unassigned +dpap 8770/tcp # Digital Photo Access [Amandeep_Jawa_2] [Amandeep_Jawa_2] 2004-11 Defined TXT keys: txtvers, Version, iPSh Version, Machine ID, +# Protocol (iPhoto) Machine Name, Password +dpap 8770/udp # Digital Photo Access [Amandeep_Jawa_2] [Amandeep_Jawa_2] 2004-11 Defined TXT keys: txtvers, Version, iPSh Version, Machine ID, +# 8771-8785 Unassigned +msgclnt 8786/tcp # Message Client +msgclnt 8786/udp # Message Client +msgsrvr 8787/tcp # Message Server [Michael_O_Brien] [Michael_O_Brien] 2003-03 +msgsrvr 8787/udp # Message Server [Michael_O_Brien] [Michael_O_Brien] 2003-03 +# 8788-8792 Unassigned +acd-pm 8793/tcp # Accedian Performance [Marco_Mascitto] [Marco_Mascitto] +# Measurement +acd-pm 8793/udp # Accedian Performance [Marco_Mascitto] [Marco_Mascitto] +# 8794-8799 Unassigned +sunwebadmin 8800/tcp # Sun Web Server Admin Service [Jyri_J_Virkki] [Jyri_J_Virkki] 2005-12 +sunwebadmin 8800/udp # Sun Web Server Admin Service [Jyri_J_Virkki] [Jyri_J_Virkki] 2005-12 +# 8801-8803 Unassigned 8801 by IBM +# z/OS RMF +truecm 8804/tcp # truecm [Scott_Kramer] [Scott_Kramer] +truecm 8804/udp # truecm [Scott_Kramer] [Scott_Kramer] +# 8805-8872 Unassigned +dxspider 8873/tcp # dxspider linking protocol [Dirk_Koopman] [Dirk_Koopman] 2005-08 +dxspider 8873/udp # dxspider linking protocol [Dirk_Koopman] [Dirk_Koopman] 2005-08 +# 8874-8879 Unassigned +cddbp-alt 8880/tcp # CDDBP [Steve_Scherf] [Steve_Scherf] +cddbp-alt 8880/udp # CDDBP [Steve_Scherf] [Steve_Scherf] +galaxy4d 8881/tcp # Galaxy4D Online Game Engine [Galaxy4D] [Olivier_St-Laurent] 2012-06-18 +# 8881 udp Reserved +# 8882 Unassigned Use Known on +# port 8882 +secure-mqtt 8883/tcp # Secure MQTT [Arthur_Barr] [Arthur_Barr] 2008-02-27 +secure-mqtt 8883/udp # Secure MQTT [Arthur_Barr] [Arthur_Barr] 2008-02-27 +# 8884-8887 Unassigned +ddi-tcp-1 8888/tcp # NewsEDGE server TCP (TCP 1) [Fred_Yao] [Fred_Yao] +ddi-udp-1 8888/udp # NewsEDGE server UDP (UDP 1) [Fred_Yao] [Fred_Yao] +ddi-tcp-2 8889/tcp # Desktop Data TCP 1 [Fred_Yao] [Fred_Yao] +ddi-udp-2 8889/udp # NewsEDGE server broadcast [Fred_Yao] [Fred_Yao] +ddi-tcp-3 8890/tcp # Desktop Data TCP 2 [Fred_Yao] [Fred_Yao] +ddi-udp-3 8890/udp # NewsEDGE client broadcast [Fred_Yao] [Fred_Yao] +ddi-tcp-4 8891/tcp # Desktop Data TCP 3: NESS [Fred_Yao] [Fred_Yao] +# application +ddi-udp-4 8891/udp # Desktop Data UDP 3: NESS [Fred_Yao] [Fred_Yao] +ddi-tcp-5 8892/tcp # Desktop Data TCP 4: FARM [Fred_Yao] [Fred_Yao] +# product +ddi-udp-5 8892/udp # Desktop Data UDP 4: FARM [Fred_Yao] [Fred_Yao] +ddi-tcp-6 8893/tcp # Desktop Data TCP 5: [Fred_Yao] [Fred_Yao] +# NewsEDGE/Web application +ddi-udp-6 8893/udp # Desktop Data UDP 5: [Fred_Yao] [Fred_Yao] +ddi-tcp-7 8894/tcp # Desktop Data TCP 6: COAL [Fred_Yao] [Fred_Yao] +ddi-udp-7 8894/udp # Desktop Data UDP 6: COAL [Fred_Yao] [Fred_Yao] +# 8895-8898 Unassigned +ospf-lite 8899/tcp # ospf-lite [Matthew_Thomas] [Matthew_Thomas] 2008-01-07 +ospf-lite 8899/udp # ospf-lite [Matthew_Thomas] [Matthew_Thomas] 2008-01-07 +jmb-cds1 8900/tcp # JMB-CDS 1 [Curtis_Bray] [Curtis_Bray] +jmb-cds1 8900/udp # JMB-CDS 1 [Curtis_Bray] [Curtis_Bray] +jmb-cds2 8901/tcp # JMB-CDS 2 [Curtis_Bray] [Curtis_Bray] +jmb-cds2 8901/udp # JMB-CDS 2 [Curtis_Bray] [Curtis_Bray] +# 8902-8909 Unassigned +manyone-http 8910/tcp # manyone-http [Matt_King] [Matt_King] 2002-04 +manyone-http 8910/udp # manyone-http [Matt_King] [Matt_King] 2002-04 +manyone-xml 8911/tcp # manyone-xml [Matt_King] [Matt_King] 2002-04 +manyone-xml 8911/udp # manyone-xml [Matt_King] [Matt_King] 2002-04 +wcbackup 8912/tcp # Windows Client Backup [Jim_Lyon] [Jim_Lyon] 2005-11 +wcbackup 8912/udp # Windows Client Backup [Jim_Lyon] [Jim_Lyon] 2005-11 +dragonfly 8913/tcp # Dragonfly System Service [Paul_Hodara] [Paul_Hodara] 2005-11 +dragonfly 8913/udp # Dragonfly System Service [Paul_Hodara] [Paul_Hodara] 2005-11 +# 8914-8936 Unassigned +twds 8937/tcp # Transaction Warehouse Data [Lance_M_Steenson] [Lance_M_Steenson] 2009-09-18 +# 8937 udp Reserved +# 8938-8952 Unassigned +ub-dns-control 8953/tcp # unbound dns nameserver [NLnet_Labs_Support] [NLnet_Labs_Support] 2011-05-10 2011-07-11 +# 8953 udp Reserved +cumulus-admin 8954/tcp # Cumulus Admin Port [Thomas_Schleu] [Thomas_Schleu] +cumulus-admin 8954/udp # Cumulus Admin Port [Thomas_Schleu] [Thomas_Schleu] +# 8955-8988 Unassigned +sunwebadmins 8989/tcp # Sun Web Server SSL Admin [Jyri_J_Virkki] [Jyri_J_Virkki] 2005-12 +sunwebadmins 8989/udp # Sun Web Server SSL Admin [Jyri_J_Virkki] [Jyri_J_Virkki] 2005-12 +http-wmap 8990/tcp # webmail HTTP service [Fred_Batty] [Fred_Batty] 2007-12-03 +http-wmap 8990/udp # webmail HTTP service [Fred_Batty] [Fred_Batty] 2007-12-03 +https-wmap 8991/tcp # webmail HTTPS service [Fred_Batty] [Fred_Batty] 2007-12-03 +https-wmap 8991/udp # webmail HTTPS service [Fred_Batty] [Fred_Batty] 2007-12-03 +# 8992-8998 Unassigned +bctp 8999/tcp # Brodos Crypto Trade Protocol [Alexander_Sahler] [Alexander_Sahler] 2002-02 +bctp 8999/udp # Brodos Crypto Trade Protocol [Alexander_Sahler] [Alexander_Sahler] 2002-02 +cslistener 9000/tcp # CSlistener [David_Jones] [David_Jones] +cslistener 9000/udp # CSlistener [David_Jones] [David_Jones] +etlservicemgr 9001/tcp # ETL Service Manager [Stephen_McCrea] [Stephen_McCrea] 2002-03 +etlservicemgr 9001/udp # ETL Service Manager [Stephen_McCrea] [Stephen_McCrea] 2002-03 +dynamid 9002/tcp # DynamID authentication [Jerome_Dusautois] [Jerome_Dusautois] 2002-03 +dynamid 9002/udp # DynamID authentication [Jerome_Dusautois] [Jerome_Dusautois] 2002-03 +# 9003-9005 Unassigned +# 9006 De-Commissioned Port 2000-02-24 +# 9007 tcp Reserved +ogs-client 9007/udp # Open Grid Services Client [Gareth_Nelson_2] [Gareth_Nelson_2] 2008-08-22 +ogs-server 9008/tcp # Open Grid Services Server [Gareth_Nelson_2] [Gareth_Nelson_2] 2008-08-22 +# 9008 udp Reserved +pichat 9009/tcp # Pichat Server [Mark_Seuffert] [Mark_Seuffert] 2004-11 +pichat 9009/udp # Pichat Server [Mark_Seuffert] [Mark_Seuffert] 2004-11 +sdr 9010/tcp # Secure Data Replicator [Sufyan_Almajali] [Sufyan_Almajali] 2008-06-27 +# 9010 udp Reserved +# 9011-9019 Unassigned +tambora 9020/tcp # TAMBORA [Jason_van_Zyl] [Jason_van_Zyl] 2002-03 +tambora 9020/udp # TAMBORA [Jason_van_Zyl] [Jason_van_Zyl] 2002-03 +panagolin-ident 9021/tcp # Pangolin Identification [William_Benner_2] [William_Benner_2] 2002-03 +panagolin-ident 9021/udp # Pangolin Identification [William_Benner_2] [William_Benner_2] 2002-03 +paragent 9022/tcp # PrivateArk Remote Agent [Gal_Cucuy] [Gal_Cucuy] 2002-03 +paragent 9022/udp # PrivateArk Remote Agent [Gal_Cucuy] [Gal_Cucuy] 2002-03 +swa-1 9023/tcp # Secure Web Access - 1 [Tim_McGranaghan] [Tim_McGranaghan] +swa-1 9023/udp # Secure Web Access - 1 [Tim_McGranaghan] [Tim_McGranaghan] +swa-2 9024/tcp # Secure Web Access - 2 [Tim_McGranaghan] [Tim_McGranaghan] +swa-2 9024/udp # Secure Web Access - 2 [Tim_McGranaghan] [Tim_McGranaghan] +swa-3 9025/tcp # Secure Web Access - 3 [Tim_McGranaghan] [Tim_McGranaghan] +swa-3 9025/udp # Secure Web Access - 3 [Tim_McGranaghan] [Tim_McGranaghan] +swa-4 9026/tcp # Secure Web Access - 4 [Tim_McGranaghan] [Tim_McGranaghan] +swa-4 9026/udp # Secure Web Access - 4 [Tim_McGranaghan] [Tim_McGranaghan] +# 9027-9049 Unassigned +versiera 9050/tcp # Versiera Agent Listener [Frank_Pikelner] [Frank_Pikelner] 2010-01-15 +# 9050 udp Reserved +fio-cmgmt 9051/tcp # Fusion-io Central Manager [Jim_Sermersheim] [Jim_Sermersheim] 2010-01-15 +# 9051 udp Reserved +# 9052-9079 Unassigned +glrpc 9080/tcp # Groove GLRPC [Adrian_Popescu] [Adrian_Popescu] 2002-09 +glrpc 9080/udp # Groove GLRPC [Adrian_Popescu] [Adrian_Popescu] 2002-09 +# 9081 Unassigned +lcs-ap 9082/sctp # LCS Application Protocol [Kimmo_Kymalainen] [Kimmo_Kymalainen] 2010-06-04 +emc-pp-mgmtsvc 9083/tcp # EMC PowerPath Mgmt Service [Jim_Perreault] [Jim_Perreault] 2010-06-04 +# 9083 udp Reserved +aurora 9084/tcp # IBM AURORA Performance [Jeroen_Massar_2] [Jeroen_Massar_2] 2008-08-21 +# Visualizer +aurora 9084/udp # IBM AURORA Performance [Jeroen_Massar_2] [Jeroen_Massar_2] 2008-08-21 +aurora 9084/sctp # IBM AURORA Performance [Jeroen_Massar_2] [Jeroen_Massar_2] 2008-08-21 +ibm-rsyscon 9085/tcp # IBM Remote System Console [William_LePera] [William_LePera] 2008-06-18 +ibm-rsyscon 9085/udp # IBM Remote System Console [William_LePera] [William_LePera] 2008-06-18 +net2display 9086/tcp # Vesa Net2Display [Kenneth_B_Ocheltree] [Kenneth_B_Ocheltree] 2008-01-07 +net2display 9086/udp # Vesa Net2Display [Kenneth_B_Ocheltree] [Kenneth_B_Ocheltree] 2008-01-07 +classic 9087/tcp # Classic Data Server [Paul_Cadarette] [Paul_Cadarette] 2007-01 +classic 9087/udp # Classic Data Server [Paul_Cadarette] [Paul_Cadarette] 2007-01 +sqlexec 9088/tcp # IBM Informix SQL Interface [Jonathan_Leffler] [Jonathan_Leffler] 2005-12 +sqlexec 9088/udp # IBM Informix SQL Interface [Jonathan_Leffler] [Jonathan_Leffler] 2005-12 +sqlexec-ssl 9089/tcp # IBM Informix SQL Interface - [Jonathan_Leffler] [Jonathan_Leffler] 2005-12 +# Encrypted +sqlexec-ssl 9089/udp # IBM Informix SQL Interface - [Jonathan_Leffler] [Jonathan_Leffler] 2005-12 +websm 9090/tcp # WebSM [I_Hsing_Tsao] [I_Hsing_Tsao] +websm 9090/udp # WebSM [I_Hsing_Tsao] [I_Hsing_Tsao] +xmltec-xmlmail 9091/tcp # xmltec-xmlmail [Mitch_Kaufman] [Mitch_Kaufman] +xmltec-xmlmail 9091/udp # xmltec-xmlmail [Mitch_Kaufman] [Mitch_Kaufman] +XmlIpcRegSvc 9092/tcp # Xml-Ipc Server Reg [Casey_Harrington] [Casey_Harrington] 2006-01 +XmlIpcRegSvc 9092/udp # Xml-Ipc Server Reg [Casey_Harrington] [Casey_Harrington] 2006-01 +copycat 9093/tcp # Copycat database replication [Microtec_Informatique] [Raphael_Neve] 2012-03-15 +# 9093 udp Reserved +# 9094-9099 Unassigned +hp-pdl-datastr 9100/tcp # PDL Data Streaming Port [Shivaun_Albright] [Shivaun_Albright] 2002-04 +hp-pdl-datastr 9100/udp # PDL Data Streaming Port [Shivaun_Albright] [Shivaun_Albright] 2002-04 +# The protocol name "pdl-datastream" is primarily registered +pdl-datastream 9100/tcp # Printer PDL Data Stream [Stuart_Cheshire_4] [Stuart_Cheshire_4] 2002-09 for use in DNS SRV records (RFC 2782). DNS SRV records allow +# a protocol to run on any port number, but the default port +# for this protocol is 9100. +pdl-datastream 9100/udp # Printer PDL Data Stream [Stuart_Cheshire_4] [Stuart_Cheshire_4] 2002-09 for use in DNS SRV records (RFC 2782). DNS SRV records allow +bacula-dir 9101/tcp # Bacula Director [Kern_Sibbald] [Kern_Sibbald] 2002-01 +bacula-dir 9101/udp # Bacula Director [Kern_Sibbald] [Kern_Sibbald] 2002-01 +bacula-fd 9102/tcp # Bacula File Daemon [Kern_Sibbald] [Kern_Sibbald] 2002-01 +bacula-fd 9102/udp # Bacula File Daemon [Kern_Sibbald] [Kern_Sibbald] 2002-01 +bacula-sd 9103/tcp # Bacula Storage Daemon [Kern_Sibbald] [Kern_Sibbald] 2002-01 +bacula-sd 9103/udp # Bacula Storage Daemon [Kern_Sibbald] [Kern_Sibbald] 2002-01 +peerwire 9104/tcp # PeerWire [Steven_Gerhardt] [Steven_Gerhardt] 2004-02 +peerwire 9104/udp # PeerWire [Steven_Gerhardt] [Steven_Gerhardt] 2004-02 +# [Ari SQRT'n Huisken +xadmin 9105/tcp # Xadmin Control Service +# 15 June 2009] +xadmin 9105/udp # Xadmin Control Service +astergate 9106/tcp # Astergate Control Service [Ari_Huisken] [Ari_Huisken] 2010-01-04 +astergate-disc 9106/udp # Astergate Discovery Service [Ari_Huisken] [Ari_Huisken] 2010-01-04 +astergatefax 9107/tcp # AstergateFax Control Service [Gijs_Middelkamp] [Gijs_Middelkamp] 2010-02-03 +# 9107 udp Reserved +# 9108-9118 Unassigned +mxit 9119/tcp # MXit Instant Messaging [Marnus_Freeman] [Marnus_Freeman] 2006-02 +mxit 9119/udp # MXit Instant Messaging [Marnus_Freeman] [Marnus_Freeman] 2006-02 +# 9120-9121 Unassigned +# Global Relay compliant +grcmp 9122/tcp # mobile instant messaging [Global_Relay] [Mike_Sample] 2012-11-28 +# 9122 udp Reserved +grcp 9123/tcp # Global Relay compliant [Global_Relay] [Mike_Sample] 2012-11-28 +# instant messaging protocol +# 9123 udp Reserved +# 9124-9130 Unassigned +dddp 9131/tcp # Dynamic Device Discovery [Shane_Dick] [Shane_Dick] 2005-08 +dddp 9131/udp # Dynamic Device Discovery [Shane_Dick] [Shane_Dick] 2005-08 +# 9132-9159 Unassigned +apani1 9160/tcp # apani1 [Neal_Taylor] [Neal_Taylor] +apani1 9160/udp # apani1 [Neal_Taylor] [Neal_Taylor] +apani2 9161/tcp # apani2 [Neal_Taylor] [Neal_Taylor] +apani2 9161/udp # apani2 [Neal_Taylor] [Neal_Taylor] +apani3 9162/tcp # apani3 [Neal_Taylor] [Neal_Taylor] +apani3 9162/udp # apani3 [Neal_Taylor] [Neal_Taylor] +apani4 9163/tcp # apani4 [Neal_Taylor] [Neal_Taylor] +apani4 9163/udp # apani4 [Neal_Taylor] [Neal_Taylor] +apani5 9164/tcp # apani5 [Neal_Taylor] [Neal_Taylor] +apani5 9164/udp # apani5 [Neal_Taylor] [Neal_Taylor] +# 9165-9190 Unassigned +sun-as-jpda 9191/tcp # Sun AppSvr JPDA [Abhijit_Kumar] [Abhijit_Kumar] 2005-11 +sun-as-jpda 9191/udp # Sun AppSvr JPDA [Abhijit_Kumar] [Abhijit_Kumar] 2005-11 +# 9192-9199 Unassigned +wap-wsp 9200/tcp # WAP connectionless session [WAP_Forum] [WAP_Forum] +wap-wsp 9200/udp # WAP connectionless session [WAP_Forum] [WAP_Forum] +wap-wsp-wtp 9201/tcp # WAP session service [WAP_Forum] [WAP_Forum] +wap-wsp-wtp 9201/udp # WAP session service [WAP_Forum] [WAP_Forum] +wap-wsp-s 9202/tcp # WAP secure connectionless [WAP_Forum] [WAP_Forum] +# session service +wap-wsp-s 9202/udp # WAP secure connectionless [WAP_Forum] [WAP_Forum] +wap-wsp-wtp-s 9203/tcp # WAP secure session service [WAP_Forum] [WAP_Forum] +wap-wsp-wtp-s 9203/udp # WAP secure session service [WAP_Forum] [WAP_Forum] +wap-vcard 9204/tcp # WAP vCard [WAP_Forum] [WAP_Forum] +wap-vcard 9204/udp # WAP vCard [WAP_Forum] [WAP_Forum] +wap-vcal 9205/tcp # WAP vCal [WAP_Forum] [WAP_Forum] +wap-vcal 9205/udp # WAP vCal [WAP_Forum] [WAP_Forum] +wap-vcard-s 9206/tcp # WAP vCard Secure [WAP_Forum] [WAP_Forum] +wap-vcard-s 9206/udp # WAP vCard Secure [WAP_Forum] [WAP_Forum] +wap-vcal-s 9207/tcp # WAP vCal Secure [WAP_Forum] [WAP_Forum] +wap-vcal-s 9207/udp # WAP vCal Secure [WAP_Forum] [WAP_Forum] +rjcdb-vcards 9208/tcp # rjcdb vCard [Robert_John_Churchil] [Robert_John_Churchil] 2006-01 +rjcdb-vcards 9208/udp # rjcdb vCard [Robert_John_Churchil] [Robert_John_Churchil] 2006-01 +almobile-system 9209/tcp # ALMobile System Service [Rob_Graber] [Rob_Graber] 2006-01 +almobile-system 9209/udp # ALMobile System Service [Rob_Graber] [Rob_Graber] 2006-01 +oma-mlp 9210/tcp # OMA Mobile Location Protocol [Hans_Rohnert] [Hans_Rohnert] 2002-04 +oma-mlp 9210/udp # OMA Mobile Location Protocol [Hans_Rohnert] [Hans_Rohnert] 2002-04 +oma-mlp-s 9211/tcp # OMA Mobile Location Protocol [Hans_Rohnert] [Hans_Rohnert] 2002-04 +# Secure +oma-mlp-s 9211/udp # OMA Mobile Location Protocol [Hans_Rohnert] [Hans_Rohnert] 2002-04 +serverviewdbms 9212/tcp # Server View dbms access [Detlef_Rothe] [Detlef_Rothe] 2009-05-15 +serverviewdbms 9212/udp # Server View dbms access [Detlef_Rothe] [Detlef_Rothe] 2009-05-15 +serverstart 9213/tcp # ServerStart RemoteControl [Detlef_Rothe] [Detlef_Rothe] 2009-05-15 +serverstart 9213/udp # ServerStart RemoteControl [Detlef_Rothe] [Detlef_Rothe] 2009-05-15 +ipdcesgbs 9214/tcp # IPDC ESG BootstrapService [Joerg_Heuer] [Joerg_Heuer] 2006-02 +ipdcesgbs 9214/udp # IPDC ESG BootstrapService [Joerg_Heuer] [Joerg_Heuer] 2006-02 +insis 9215/tcp # Integrated Setup and Install [Markus_Treinen] [Markus_Treinen] 2006-02 +insis 9215/udp # Integrated Setup and Install [Markus_Treinen] [Markus_Treinen] 2006-02 +acme 9216/tcp # Aionex Communication [Mark_Sapp] [Mark_Sapp] 2006-04 +# Management Engine +acme 9216/udp # Aionex Communication [Mark_Sapp] [Mark_Sapp] 2006-04 +fsc-port 9217/tcp # FSC Communication Port [Teijo_Mustonen] [Teijo_Mustonen] 2002-03 +fsc-port 9217/udp # FSC Communication Port [Teijo_Mustonen] [Teijo_Mustonen] 2002-03 +# 9218-9221 Unassigned +teamcoherence 9222/tcp # QSC Team Coherence [Ewan_McNab] [Ewan_McNab] 2004-11 +teamcoherence 9222/udp # QSC Team Coherence [Ewan_McNab] [Ewan_McNab] 2004-11 +# 9223-9254 Unassigned +mon 9255/tcp # Manager On Network [David_Rouchet] [David_Rouchet] 2007-05 +mon 9255/udp # Manager On Network [David_Rouchet] [David_Rouchet] 2007-05 +# 9256-9276 Unassigned +traingpsdata 9277/udp # GPS Data transmitted from [Alstom_Transport_Preston] [Paul_Steane] 2012-12-14 +# train to ground network +# 9277 tcp Reserved +pegasus 9278/tcp # Pegasus GPS Platform [Nestor_A_Diaz] [Nestor_A_Diaz] 2009-05-12 +pegasus 9278/udp # Pegasus GPS Platform [Nestor_A_Diaz] [Nestor_A_Diaz] 2009-05-12 +pegasus-ctl 9279/tcp # Pegaus GPS System Control [Nestor_A_Diaz] [Nestor_A_Diaz] 2009-05-12 +pegasus-ctl 9279/udp # Pegaus GPS System Control [Nestor_A_Diaz] [Nestor_A_Diaz] 2009-05-12 +pgps 9280/tcp # Predicted GPS [Jeremy_Freeman] [Jeremy_Freeman] 2008-02-14 +pgps 9280/udp # Predicted GPS [Jeremy_Freeman] [Jeremy_Freeman] 2008-02-14 +swtp-port1 9281/tcp # SofaWare transport port 1 [Amir_Rapson] [Amir_Rapson] 2002-02 +swtp-port1 9281/udp # SofaWare transport port 1 [Amir_Rapson] [Amir_Rapson] 2002-02 +swtp-port2 9282/tcp # SofaWare transport port 2 [Amir_Rapson] [Amir_Rapson] 2002-02 +swtp-port2 9282/udp # SofaWare transport port 2 [Amir_Rapson] [Amir_Rapson] 2002-02 +callwaveiam 9283/tcp # CallWaveIAM [Colin_Kelley] [Colin_Kelley] +callwaveiam 9283/udp # CallWaveIAM [Colin_Kelley] [Colin_Kelley] +visd 9284/tcp # VERITAS Information Serve [Ravi_Tavakely] [Ravi_Tavakely] 2002-02 +visd 9284/udp # VERITAS Information Serve [Ravi_Tavakely] [Ravi_Tavakely] 2002-02 +n2h2server 9285/tcp # N2H2 Filter Service Port [Jim_Irwin] [Jim_Irwin] 2002-02 +n2h2server 9285/udp # N2H2 Filter Service Port [Jim_Irwin] [Jim_Irwin] 2002-02 +# 9286 tcp Reserved +n2receive 9286/udp # n2 monitoring receiver [Peter_van_Dijk] [Peter_van_Dijk] 2011-01-10 +cumulus 9287/tcp # Cumulus [Thomas_Schleu] [Thomas_Schleu] +cumulus 9287/udp # Cumulus [Thomas_Schleu] [Thomas_Schleu] +# 9288-9291 Unassigned +armtechdaemon 9292/tcp # ArmTech Daemon [Rohan_Story] [Rohan_Story] +armtechdaemon 9292/udp # ArmTech Daemon [Rohan_Story] [Rohan_Story] +storview 9293/tcp # StorView Client [Ryan_Smith] [Ryan_Smith] 2006-07 +storview 9293/udp # StorView Client [Ryan_Smith] [Ryan_Smith] 2006-07 +armcenterhttp 9294/tcp # ARMCenter http Service [Eric_Thiebaut_George] [Eric_Thiebaut_George] 2006-04 +armcenterhttp 9294/udp # ARMCenter http Service [Eric_Thiebaut_George] [Eric_Thiebaut_George] 2006-04 +armcenterhttps 9295/tcp # ARMCenter https Service [Eric_Thiebaut_George] [Eric_Thiebaut_George] 2006-04 +armcenterhttps 9295/udp # ARMCenter https Service [Eric_Thiebaut_George] [Eric_Thiebaut_George] 2006-04 +# 9296-9299 Unassigned +vrace 9300/tcp # Virtual Racing Service [Pete_Loeffen] [Pete_Loeffen] 2006-10 +vrace 9300/udp # Virtual Racing Service [Pete_Loeffen] [Pete_Loeffen] 2006-10 +# 9301-9305 Unassigned +sphinxql 9306/tcp # Sphinx search server (MySQL [Andrew_Aksyonoff] [Andrew_Aksyonoff] 2009-10-20 +# listener) +# 9306 udp Reserved +# 9307-9311 Unassigned +sphinxapi 9312/tcp # Sphinx search server [Andrew_Aksyonoff] [Andrew_Aksyonoff] 2009-10-20 +# 9312 udp Reserved +# 9313-9317 Unassigned +secure-ts 9318/tcp # PKIX TimeStamp over TLS [Niklas_Weiss] [Niklas_Weiss] 2004-11 +secure-ts 9318/udp # PKIX TimeStamp over TLS [Niklas_Weiss] [Niklas_Weiss] 2004-11 +# 9319-9320 Unassigned +guibase 9321/tcp # guibase [Yutaka_Ono] [Yutaka_Ono] +guibase 9321/udp # guibase [Yutaka_Ono] [Yutaka_Ono] +# 9322-9342 Unassigned +mpidcmgr 9343/tcp # MpIdcMgr [Yutaka_Ono] [Yutaka_Ono] +mpidcmgr 9343/udp # MpIdcMgr [Yutaka_Ono] [Yutaka_Ono] +mphlpdmc 9344/tcp # Mphlpdmc [Yutaka_Ono] [Yutaka_Ono] +mphlpdmc 9344/udp # Mphlpdmc [Yutaka_Ono] [Yutaka_Ono] +# 9345 Unassigned +ctechlicensing 9346/tcp # C Tech Licensing [Reed_Copsey_Jr] [Reed_Copsey_Jr] +ctechlicensing 9346/udp # C Tech Licensing [Reed_Copsey_Jr] [Reed_Copsey_Jr] +# 9347-9373 Unassigned +fjdmimgr 9374/tcp # fjdmimgr [Yutaka_Ono] [Yutaka_Ono] +fjdmimgr 9374/udp # fjdmimgr [Yutaka_Ono] [Yutaka_Ono] +# 9375-9379 Unassigned +boxp 9380/tcp # Brivs! Open Extensible [Danko_Alexeyev] [Danko_Alexeyev] 2007-08-08 +boxp 9380/udp # Brivs! Open Extensible [Danko_Alexeyev] [Danko_Alexeyev] 2007-08-08 +# 9381-9386 Unassigned +d2dconfig 9387/tcp # D2D Configuration Service [Pete_Camble] [Pete_Camble] 2008-12-24 +# 9387 udp Reserved +d2ddatatrans 9388/tcp # D2D Data Transfer Service [Pete_Camble] [Pete_Camble] 2008-12-24 +# 9388 udp Reserved +adws 9389/tcp # Active Directory Web [Nitin_Gupta] [Nitin_Gupta] 2008-12-24 +# 9389 udp Reserved +otp 9390/tcp # OpenVAS Transfer Protocol [Tim_Brown] [Tim_Brown] 2008-12-24 +# 9390 udp Reserved +# 9391-9395 Unassigned +fjinvmgr 9396/tcp # fjinvmgr [Yutaka_Ono] [Yutaka_Ono] +fjinvmgr 9396/udp # fjinvmgr [Yutaka_Ono] [Yutaka_Ono] +mpidcagt 9397/tcp # MpIdcAgt [Yutaka_Ono] [Yutaka_Ono] +mpidcagt 9397/udp # MpIdcAgt [Yutaka_Ono] [Yutaka_Ono] +# 9398-9399 Unassigned +sec-t4net-srv 9400/tcp # Samsung Twain for Network [Dongkeun_Kim] [Dongkeun_Kim] 2007-02 +sec-t4net-srv 9400/udp # Samsung Twain for Network [Dongkeun_Kim] [Dongkeun_Kim] 2007-02 +sec-t4net-clt 9401/tcp # Samsung Twain for Network [Dongkeun_Kim] [Dongkeun_Kim] 2007-02 +sec-t4net-clt 9401/udp # Samsung Twain for Network [Dongkeun_Kim] [Dongkeun_Kim] 2007-02 +sec-pc2fax-srv 9402/tcp # Samsung PC2FAX for Network [HyeongBae_Yu] [HyeongBae_Yu] 2008-07-31 +sec-pc2fax-srv 9402/udp # Samsung PC2FAX for Network [HyeongBae_Yu] [HyeongBae_Yu] 2008-07-31 +# 9403-9417 Unassigned +git 9418/tcp # git pack transfer service [Linus_Torvalds] [Linus_Torvalds] 2005-09 +git 9418/udp # git pack transfer service [Linus_Torvalds] [Linus_Torvalds] 2005-09 +# 9419-9442 Unassigned +tungsten-https 9443/tcp # WSO2 Tungsten HTTPS [Afkham_Azeez] [Afkham_Azeez] 2006-06 +tungsten-https 9443/udp # WSO2 Tungsten HTTPS [Afkham_Azeez] [Afkham_Azeez] 2006-06 +wso2esb-console 9444/tcp # WSO2 ESB Administration [Ruwan_Linton] [Ruwan_Linton] 2008-08-20 +# Console HTTPS +wso2esb-console 9444/udp # WSO2 ESB Administration [Ruwan_Linton] [Ruwan_Linton] 2008-08-20 +mindarray-ca 9445/tcp # MindArray Systems Console [MINDARRAY_SYSTEMS] [ALPESH_DHAMELIA] 2011-10-25 +# 9445 udp Reserved +# 9446-9449 Unassigned +sntlkeyssrvr 9450/tcp # Sentinel Keys Server [Martin_Ziskind] [Martin_Ziskind] 2008-08-21 +sntlkeyssrvr 9450/udp # Sentinel Keys Server [Martin_Ziskind] [Martin_Ziskind] 2008-08-21 +# 9451-9499 Unassigned +ismserver 9500/tcp # ismserver [Ian_Gordon_3] [Ian_Gordon_3] +ismserver 9500/udp # ismserver [Ian_Gordon_3] [Ian_Gordon_3] +# 9501-9521 Unassigned +# 9522 tcp Reserved +sma-spw 9522/udp # SMA Speedwire [SMA_Solar_Techology] [SMA_Solar_Techology] 2011-03-08 +# 9523-9534 Unassigned +mngsuite 9535/tcp # Management Suite Remote [Trevor_Perkes] [Trevor_Perkes] 2010-02-01 +mngsuite 9535/udp # Management Suite Remote [Trevor_Perkes] [Trevor_Perkes] 2010-02-01 +laes-bf 9536/tcp # Surveillance buffering [Glen_Myers] [Glen_Myers] 2007-05 +# function +laes-bf 9536/udp # Surveillance buffering [Glen_Myers] [Glen_Myers] 2007-05 +# 9537-9554 Unassigned +trispen-sra 9555/tcp # Trispen Secure Remote Access [Jaco_Botha] [Jaco_Botha] 2004-11 +trispen-sra 9555/udp # Trispen Secure Remote Access [Jaco_Botha] [Jaco_Botha] 2004-11 +# 9556-9591 Unassigned +ldgateway 9592/tcp # LANDesk Gateway [Alan_Butt] [Alan_Butt] 2006-03 +ldgateway 9592/udp # LANDesk Gateway [Alan_Butt] [Alan_Butt] 2006-03 +cba8 9593/tcp # LANDesk Management Agent [Trevor_Perkes] [Trevor_Perkes] 2010-02-01 +# (cba8) +cba8 9593/udp # LANDesk Management Agent [Trevor_Perkes] [Trevor_Perkes] 2010-02-01 +msgsys 9594/tcp # Message System [Alan_Butt] [Alan_Butt] +msgsys 9594/udp # Message System [Alan_Butt] [Alan_Butt] +pds 9595/tcp # Ping Discovery Service [Alan_Butt] [Alan_Butt] +pds 9595/udp # Ping Discovery Service [Alan_Butt] [Alan_Butt] +mercury-disc 9596/tcp # Mercury Discovery [Paul_Mclachlan] [Paul_Mclachlan] 2005-11 +mercury-disc 9596/udp # Mercury Discovery [Paul_Mclachlan] [Paul_Mclachlan] 2005-11 +pd-admin 9597/tcp # PD Administration [Duk_Loi] [Duk_Loi] 2005-11 +pd-admin 9597/udp # PD Administration [Duk_Loi] [Duk_Loi] 2005-11 +vscp 9598/tcp # Very Simple Ctrl Protocol [Ake_Hedman] [Ake_Hedman] 2005-11 +vscp 9598/udp # Very Simple Ctrl Protocol [Ake_Hedman] [Ake_Hedman] 2005-11 +robix 9599/tcp # Robix [Evan_Rosen] [Evan_Rosen] 2005-11 +robix 9599/udp # Robix [Evan_Rosen] [Evan_Rosen] 2005-11 +micromuse-ncpw 9600/tcp # MICROMUSE-NCPW [Hing_Wing_To_2] [Hing_Wing_To_2] +micromuse-ncpw 9600/udp # MICROMUSE-NCPW [Hing_Wing_To_2] [Hing_Wing_To_2] +# 9601-9611 Unassigned +streamcomm-ds 9612/tcp # StreamComm User Directory [Brian_C_Wiles] [Brian_C_Wiles] +streamcomm-ds 9612/udp # StreamComm User Directory [Brian_C_Wiles] [Brian_C_Wiles] +# 9613 Unassigned +iadt-tls 9614/tcp # iADT Protocol over TLS [Paul_A_Suhler] [Paul_A_Suhler] 2009-02-05 +# 9614 udp Reserved +# 9615 Unassigned +# eRunbook Agent +# +erunbook-agent 9616/tcp # IANA assigned this [Gerhard_Wagner] [Gerhard_Wagner] 2009-03-10 +# "erunbook_agent". +# This entry is an alias to "erunbook-agent". This entry is now +erunbook_agent 9616/tcp # eRunbook Agent [Gerhard_Wagner] [Gerhard_Wagner] 2009-03-10 historic, not usable for use with many common service +# 9616 udp Reserved +# eRunbook Server +# +erunbook-server 9617/tcp # IANA assigned this [Gerhard_Wagner] [Gerhard_Wagner] 2009-03-10 +# "erunbook_server". +# This entry is an alias to "erunbook-server". This entry is +erunbook_server 9617/tcp # eRunbook Server [Gerhard_Wagner] [Gerhard_Wagner] 2009-03-10 now historic, not usable for use with many common service +# 9617 udp Reserved +condor 9618/tcp # Condor Collector Service [Todd_Tannenbaum] [Todd_Tannenbaum] 2008-04-03 +condor 9618/udp # Condor Collector Service [Todd_Tannenbaum] [Todd_Tannenbaum] 2008-04-03 +# 9619-9627 Unassigned +odbcpathway 9628/tcp # ODBC Pathway Service [Adrian_Hungate] [Adrian_Hungate] 2007-05 +odbcpathway 9628/udp # ODBC Pathway Service [Adrian_Hungate] [Adrian_Hungate] 2007-05 +uniport 9629/tcp # UniPort SSO Controller [Adrian_Hungate] [Adrian_Hungate] 2007-09-05 +uniport 9629/udp # UniPort SSO Controller [Adrian_Hungate] [Adrian_Hungate] 2007-09-05 +peoctlr 9630/tcp # Peovica Controller [Adrian_Hungate] [Adrian_Hungate] 2009-09-14 +# 9630 udp Reserved +peocoll 9631/tcp # Peovica Collector [Adrian_Hungate] [Adrian_Hungate] 2009-09-14 +# 9631 udp Reserved +# 9632 tcp Reserved +mc-comm 9632/udp # Mobile-C Communications [David_Ko_2] [David_Ko_2] 2009-09-14 +# 9633-9639 Unassigned +pqsflows 9640/tcp # ProQueSys Flows Service [Sarene_Caiazza] [Sarene_Caiazza] 2010-04-27 +# 9640 udp Reserved +# 9641-9666 Unassigned +xmms2 9667/tcp # Cross-platform Music [Juho_Herttua] [Juho_Herttua] 2009-04-14 +# Multiplexing System +xmms2 9667/udp # Cross-platform Music [Juho_Herttua] [Juho_Herttua] +tec5-sdctp 9668/tcp # tec5 Spectral Device Control [Michael_Muth] [Michael_Muth] 2009-05-11 +tec5-sdctp 9668/udp # tec5 Spectral Device Control [Michael_Muth] [Michael_Muth] 2009-05-11 +# 9669-9693 Unassigned +client-wakeup 9694/tcp # T-Mobile Client Wakeup [Michael_Schonborn] [Michael_Schonborn] 2009-09-11 +# Message +client-wakeup 9694/udp # T-Mobile Client Wakeup [Michael_Schonborn] [Michael_Schonborn] 2009-09-11 +ccnx 9695/tcp # Content Centric Networking [Van_Jacobson_2][Simon_Barber] [Van_Jacobson_2][Simon_Barber] 2009-09-29 +ccnx 9695/udp # Content Centric Networking [Van_Jacobson_2][Simon_Barber] [Van_Jacobson_2][Simon_Barber] 2009-09-29 +# 9696-9699 Unassigned +board-roar 9700/tcp # Board M.I.T. Service [Francesco_Rosi] [Francesco_Rosi] 2006-01 +board-roar 9700/udp # Board M.I.T. Service [Francesco_Rosi] [Francesco_Rosi] 2006-01 +# 9701-9746 Unassigned +l5nas-parchan 9747/tcp # L5NAS Parallel Channel [Lawrence_J_Dickson] [Lawrence_J_Dickson] 2002-03 +l5nas-parchan 9747/udp # L5NAS Parallel Channel [Lawrence_J_Dickson] [Lawrence_J_Dickson] 2002-03 +# 9748-9749 Unassigned +board-voip 9750/tcp # Board M.I.T. Synchronous [Francesco_Rosi] [Francesco_Rosi] 2006-01 +# Collaboration +board-voip 9750/udp # Board M.I.T. Synchronous [Francesco_Rosi] [Francesco_Rosi] 2006-01 +# 9751-9752 Unassigned +rasadv 9753/tcp # rasadv [Dave_Thaler_2] [Dave_Thaler_2] +rasadv 9753/udp # rasadv [Dave_Thaler_2] [Dave_Thaler_2] +# 9754-9761 Unassigned +tungsten-http 9762/tcp # WSO2 Tungsten HTTP [Afkham_Azeez] [Afkham_Azeez] 2006-06 +tungsten-http 9762/udp # WSO2 Tungsten HTTP [Afkham_Azeez] [Afkham_Azeez] 2006-06 +# 9763-9799 Unassigned +davsrc 9800/tcp # WebDav Source Port [Ethan_Fremen] [Ethan_Fremen] +davsrc 9800/udp # WebDav Source Port [Ethan_Fremen] [Ethan_Fremen] +sstp-2 9801/tcp # Sakura Script Transfer [Kouichi_Takeda_2] [Kouichi_Takeda_2] +# Protocol-2 +sstp-2 9801/udp # Sakura Script Transfer [Kouichi_Takeda_2] [Kouichi_Takeda_2] +davsrcs 9802/tcp # WebDAV Source TLS/SSL [Rob_Isaac] [Rob_Isaac] 2003-07 +davsrcs 9802/udp # WebDAV Source TLS/SSL [Rob_Isaac] [Rob_Isaac] 2003-07 +# 9803-9874 Unassigned +sapv1 9875/tcp # Session Announcement v1 [RFC2974] +sapv1 9875/udp # Session Announcement v1 [RFC2974] +sd 9876/tcp # Session Director [Van_Jacobson] [Van_Jacobson] +# 9877 Unassigned +# The KX509 Kerberized Historically, this service has been referred to as +kca-service 9878/udp # Certificate Issuance [IESG] [IETF_Chair] 2012-07-12 [RFC6717] "kca_service", but this service name does not meet the +# Protocol in Use in 2012 registry requirements. +# 9878 tcp Reserved +# 9879-9887 Unassigned +cyborg-systems 9888/tcp # CYBORG Systems [Malcolm_Graham] [Malcolm_Graham] +cyborg-systems 9888/udp # CYBORG Systems [Malcolm_Graham] [Malcolm_Graham] +# Port for Cable network +gt-proxy 9889/tcp # related data proxy or [Dawei_Qi] [Dawei_Qi] 2010-07-07 +# repeater +gt-proxy 9889/udp # related data proxy or [Dawei_Qi] [Dawei_Qi] 2010-07-07 +# 9890-9897 Unassigned +monkeycom 9898/tcp # MonkeyCom [Yuji_Kuwabara] [Yuji_Kuwabara] +monkeycom 9898/udp # MonkeyCom [Yuji_Kuwabara] [Yuji_Kuwabara] +sctp-tunneling 9899/tcp # SCTP TUNNELING [Lyndon_Ong_2] [Lyndon_Ong_2] +sctp-tunneling 9899/udp # SCTP TUNNELING [Lyndon_Ong_2] [Lyndon_Ong_2] +iua 9900/tcp # IUA [Lyndon_Ong_2] [Lyndon_Ong_2] +iua 9900/udp # IUA [Lyndon_Ong_2] [Lyndon_Ong_2] +iua 9900/sctp # IUA [Lyndon_Ong_2] [Lyndon_Ong_2] +enrp 9901/udp # enrp server channel +enrp-sctp 9901/sctp # enrp server channel [RFC5353] +enrp-sctp-tls 9902/sctp # enrp/tls server channel [RFC5353] +# 9903 tcp Reserved +multicast-ping 9903/udp # Multicast Ping Protocol 2011-12-09 [RFC6450] +# 9904-9908 Unassigned +domaintime 9909/tcp # domaintime [Jeffry_Dwight] [Jeffry_Dwight] +domaintime 9909/udp # domaintime [Jeffry_Dwight] [Jeffry_Dwight] +# 9910 Unassigned +sype-transport 9911/tcp # SYPECom Transport Protocol [Sylvain_Pedneault] [Sylvain_Pedneault] 2003-03 +sype-transport 9911/udp # SYPECom Transport Protocol [Sylvain_Pedneault] [Sylvain_Pedneault] 2003-03 +# 9912-9949 Unassigned +apc-9950 9950/tcp # APC 9950 [American_Power_Conve] [American_Power_Conve] +apc-9950 9950/udp # APC 9950 [American_Power_Conve] [American_Power_Conve] +apc-9951 9951/tcp # APC 9951 [American_Power_Conve] [American_Power_Conve] +apc-9951 9951/udp # APC 9951 [American_Power_Conve] [American_Power_Conve] +apc-9952 9952/tcp # APC 9952 [American_Power_Conve] [American_Power_Conve] +apc-9952 9952/udp # APC 9952 [American_Power_Conve] [American_Power_Conve] +acis 9953/tcp # 9953 [Thomas_Guth] [Thomas_Guth] 2006-01 +acis 9953/udp # 9953 [Thomas_Guth] [Thomas_Guth] 2006-01 +hinp 9954/tcp # HaloteC Instrument Network [HaloteC_Instruments] [Michel_Stam] 2012-02-07 +# 9954 udp Reserved +alljoyn-stm 9955/tcp # Contact Port for AllJoyn [Qualcomm_Innovation_Center] [Craig_Dowell] 2012-03-14 +# standard messaging +# Contact Port for AllJoyn +alljoyn-mcm 9955/udp # multiplexed constrained [Qualcomm_Innovation_Center] [Craig_Dowell] 2012-03-14 +# messaging +# 9956 tcp Reserved +alljoyn 9956/udp # Alljoyn Name Service [Qualcomm_Innovation_Center] [Craig_Dowell] 2011-12-21 +# 9957-9965 Unassigned +odnsp 9966/tcp # OKI Data Network Setting [Masato_Sato] [Masato_Sato] 2006-05 +odnsp 9966/udp # OKI Data Network Setting [Masato_Sato] [Masato_Sato] 2006-05 +# 9967-9977 Unassigned +xybrid-rt 9978/tcp # XYBRID RT Server [Rx_Networks_Inc] [Drew_Davies] 2013-01-24 +# 9978 udp Reserved +# 9979-9986 Unassigned +dsm-scm-target 9987/tcp # DSM/SCM Target Interface [Mike_Dyslin] [Mike_Dyslin] 2006-08 +dsm-scm-target 9987/udp # DSM/SCM Target Interface [Mike_Dyslin] [Mike_Dyslin] 2006-08 +nsesrvr 9988/tcp # Software Essentials Secure [Narayanan_Raju] [Narayanan_Raju] 2009-02-05 +# HTTP server +# 9988 udp Reserved +# 9989-9989 Unassigned +osm-appsrvr 9990/tcp # OSM Applet Server [Vinay_Gupta] [Vinay_Gupta] 2003-08 +osm-appsrvr 9990/udp # OSM Applet Server [Vinay_Gupta] [Vinay_Gupta] 2003-08 +osm-oev 9991/tcp # OSM Event Server [Vinay_Gupta] [Vinay_Gupta] 2003-08 +osm-oev 9991/udp # OSM Event Server [Vinay_Gupta] [Vinay_Gupta] 2003-08 +palace-1 9992/tcp # OnLive-1 [Douglas_Crockford] [Douglas_Crockford] +palace-1 9992/udp # OnLive-1 [Douglas_Crockford] [Douglas_Crockford] +palace-2 9993/tcp # OnLive-2 [Douglas_Crockford] [Douglas_Crockford] +palace-2 9993/udp # OnLive-2 [Douglas_Crockford] [Douglas_Crockford] +palace-3 9994/tcp # OnLive-3 [Douglas_Crockford] [Douglas_Crockford] +palace-3 9994/udp # OnLive-3 [Douglas_Crockford] [Douglas_Crockford] +palace-4 9995/tcp # Palace-4 [Douglas_Crockford] [Douglas_Crockford] +palace-4 9995/udp # Palace-4 [Douglas_Crockford] [Douglas_Crockford] +palace-5 9996/tcp # Palace-5 [Douglas_Crockford] [Douglas_Crockford] +palace-5 9996/udp # Palace-5 [Douglas_Crockford] [Douglas_Crockford] +palace-6 9997/tcp # Palace-6 [Douglas_Crockford] [Douglas_Crockford] +palace-6 9997/udp # Palace-6 [Douglas_Crockford] [Douglas_Crockford] +distinct32 9998/tcp # Distinct32 [Anoop_Tewari] [Anoop_Tewari] +distinct32 9998/udp # Distinct32 [Anoop_Tewari] [Anoop_Tewari] +distinct 9999/tcp # distinct [Anoop_Tewari] [Anoop_Tewari] +distinct 9999/udp # distinct [Anoop_Tewari] [Anoop_Tewari] +ndmp 10000/tcp # Network Data Management [Brian_Ehrmantraut] [Brian_Ehrmantraut] +ndmp 10000/udp # Network Data Management [Brian_Ehrmantraut] [Brian_Ehrmantraut] +scp-config 10001/tcp # SCP Configuration [Michael_Benz] [Michael_Benz] 2010-08-06 +scp-config 10001/udp # SCP Configuration [Michael_Benz] [Michael_Benz] 2010-08-06 +documentum 10002/tcp # EMC-Documentum Content [Reza_Bagherian] [Reza_Bagherian] 2007-07-19 +# Server Product +documentum 10002/udp # EMC-Documentum Content [Reza_Bagherian] [Reza_Bagherian] 2007-07-19 +# EMC-Documentum Content +# +documentum-s 10003/tcp # IANA assigned this [Reza_Bagherian] [Reza_Bagherian] 2007-07-19 +# "documentum_s". +# EMC-Documentum Content This entry is an alias to "documentum-s". This entry is now +documentum_s 10003/tcp # Server Product [Reza_Bagherian] [Reza_Bagherian] 2007-07-19 historic, not usable for use with many common service +# +documentum-s 10003/udp # IANA assigned this [Reza_Bagherian] [Reza_Bagherian] 2007-07-19 +documentum_s 10003/udp # Server Product [Reza_Bagherian] [Reza_Bagherian] 2007-07-19 historic, not usable for use with many common service +emcrmirccd 10004/tcp # EMC Replication Manager [Robert_Boudrie] [Robert_Boudrie] 2008-06-09 +# 10004 udp Reserved +emcrmird 10005/tcp # EMC Replication Manager [Robert_Boudrie] [Robert_Boudrie] 2008-06-09 +# 10005 udp Reserved +# 10006 Unassigned +mvs-capacity 10007/tcp # MVS Capacity [Donna_Dillenberger] [Donna_Dillenberger] +mvs-capacity 10007/udp # MVS Capacity [Donna_Dillenberger] [Donna_Dillenberger] +octopus 10008/tcp # Octopus Multiplexer [Chris_Koeritz_2] [Chris_Koeritz_2] 2002-10 +octopus 10008/udp # Octopus Multiplexer [Chris_Koeritz_2] [Chris_Koeritz_2] 2002-10 +swdtp-sv 10009/tcp # Systemwalker Desktop Patrol [Akira_Ide] [Akira_Ide] 2006-03 +swdtp-sv 10009/udp # Systemwalker Desktop Patrol [Akira_Ide] [Akira_Ide] 2006-03 +rxapi 10010/tcp # ooRexx rxapi services [David_Ashley] [David_Ashley] 2009-07-24 +# 10010 udp Reserved +# 10011-10049 Unassigned +zabbix-agent 10050/tcp # Zabbix Agent [Alexei_Vladishev] [Alexei_Vladishev] 2006-02 +zabbix-agent 10050/udp # Zabbix Agent [Alexei_Vladishev] [Alexei_Vladishev] 2006-02 +zabbix-trapper 10051/tcp # Zabbix Trapper [Alexei_Vladishev] [Alexei_Vladishev] 2006-02 +zabbix-trapper 10051/udp # Zabbix Trapper [Alexei_Vladishev] [Alexei_Vladishev] 2006-02 +# 10052-10054 Unassigned +qptlmd 10055/tcp # Quantapoint FLEXlm Licensing [Justin_Vegso] [Justin_Vegso] 2010-07-01 +# 10055 udp Reserved +# 10056-10079 Unassigned +amanda 10080/tcp # Amanda [John_Jackson] [John_Jackson] +amanda 10080/udp # Amanda [John_Jackson] [John_Jackson] +famdc 10081/tcp # FAM Archive Server [Frode_Randers] [Frode_Randers] 2006-01 +famdc 10081/udp # FAM Archive Server [Frode_Randers] [Frode_Randers] 2006-01 +# 10082-10099 Unassigned +itap-ddtp 10100/tcp # VERITAS ITAP DDTP [Saugata_Guha] [Saugata_Guha] 2004-05 +itap-ddtp 10100/udp # VERITAS ITAP DDTP [Saugata_Guha] [Saugata_Guha] 2004-05 +ezmeeting-2 10101/tcp # eZmeeting [Albert_C_Yang] [Albert_C_Yang] 2002-03 +ezmeeting-2 10101/udp # eZmeeting [Albert_C_Yang] [Albert_C_Yang] 2002-03 +ezproxy-2 10102/tcp # eZproxy [Albert_C_Yang] [Albert_C_Yang] 2002-03 +ezproxy-2 10102/udp # eZproxy [Albert_C_Yang] [Albert_C_Yang] 2002-03 +ezrelay 10103/tcp # eZrelay [Albert_C_Yang] [Albert_C_Yang] 2002-03 +ezrelay 10103/udp # eZrelay [Albert_C_Yang] [Albert_C_Yang] 2002-03 +swdtp 10104/tcp # Systemwalker Desktop Patrol [Akira_Ide] [Akira_Ide] 2006-09 +swdtp 10104/udp # Systemwalker Desktop Patrol [Akira_Ide] [Akira_Ide] 2006-09 +# 10105-10106 Unassigned +bctp-server 10107/tcp # VERITAS BCTP, server [Saugata_Guha] [Saugata_Guha] 2004-05 +bctp-server 10107/udp # VERITAS BCTP, server [Saugata_Guha] [Saugata_Guha] 2004-05 +# 10108-10109 Unassigned +nmea-0183 10110/tcp # NMEA-0183 Navigational Data [Meindert_Sprang] [Meindert_Sprang] 2009-02-18 +nmea-0183 10110/udp # NMEA-0183 Navigational Data [Meindert_Sprang] [Meindert_Sprang] 2009-02-18 +# 10111 tcp Reserved +nmea-onenet 10111/udp # NMEA OneNet multicast [National_Marine_Electronics_Association] [Steve_Spitzer] 2011-09-15 +# 10112 Unassigned +netiq-endpoint 10113/tcp # NetIQ Endpoint [John_Wood] [John_Wood] +netiq-endpoint 10113/udp # NetIQ Endpoint [John_Wood] [John_Wood] +netiq-qcheck 10114/tcp # NetIQ Qcheck [Michael_Sharpe] [Michael_Sharpe] 2010-09-14 +netiq-qcheck 10114/udp # NetIQ Qcheck [Michael_Sharpe] [Michael_Sharpe] 2010-09-14 +netiq-endpt 10115/tcp # NetIQ Endpoint [Gary_Weichinger] [Gary_Weichinger] +netiq-endpt 10115/udp # NetIQ Endpoint [Gary_Weichinger] [Gary_Weichinger] +netiq-voipa 10116/tcp # NetIQ VoIP Assessor [Gary_Weichinger] [Gary_Weichinger] +netiq-voipa 10116/udp # NetIQ VoIP Assessor [Gary_Weichinger] [Gary_Weichinger] +iqrm 10117/tcp # NetIQ IQCResource Managament [Michael_Sharpe] [Michael_Sharpe] 2010-09-14 +# Svc +iqrm 10117/udp # NetIQ IQCResource Managament [Michael_Sharpe] [Michael_Sharpe] 2010-09-14 +# 10118-10127 Unassigned +bmc-perf-sd 10128/tcp # BMC-PERFORM-SERVICE DAEMON [Portnoy_Boxman] [Portnoy_Boxman] +bmc-perf-sd 10128/udp # BMC-PERFORM-SERVICE DAEMON [Portnoy_Boxman] [Portnoy_Boxman] +bmc-gms 10129/tcp # BMC General Manager Server [Dima_Seliverstov] [Dima_Seliverstov] 2009-07-28 +# 10129 udp Reserved +# 10130-10159 Unassigned +qb-db-server 10160/tcp # QB Database Server [Wei_Wang] [Wei_Wang] 2005-11 +qb-db-server 10160/udp # QB Database Server [Wei_Wang] [Wei_Wang] 2005-11 +snmptls 10161/tcp # SNMP-TLS [RFC6353] +snmpdtls 10161/udp # SNMP-DTLS [RFC6353] +snmptls-trap 10162/tcp # SNMP-Trap-TLS [RFC6353] +snmpdtls-trap 10162/udp # SNMP-Trap-DTLS [RFC6353] +# 10163-10199 Unassigned +trisoap 10200/tcp # Trigence AE Soap Service [Brigitte_Gagne] [Brigitte_Gagne] 2006-08 +trisoap 10200/udp # Trigence AE Soap Service [Brigitte_Gagne] [Brigitte_Gagne] 2006-08 +rsms 10201/tcp # Remote Server Management [Patrick_H_Piper] [Patrick_H_Piper] 2009-03-06 +rscs 10201/udp # Remote Server Control and [Patrick_H_Piper] [Patrick_H_Piper] 2009-03-06 +# Test Service +# 10202-10251 Unassigned +apollo-relay 10252/tcp # Apollo Relay Port [Anthony_Carrabino] [Anthony_Carrabino] 2003-08 +apollo-relay 10252/udp # Apollo Relay Port [Anthony_Carrabino] [Anthony_Carrabino] 2003-08 +# 10253-10259 Unassigned +axis-wimp-port 10260/tcp # Axis WIMP Port [Stefan_Eriksson] [Stefan_Eriksson] +axis-wimp-port 10260/udp # Axis WIMP Port [Stefan_Eriksson] [Stefan_Eriksson] +# 10261-10287 Unassigned +blocks 10288/tcp # Blocks [Carl_Malamud] [Carl_Malamud] +blocks 10288/udp # Blocks [Carl_Malamud] [Carl_Malamud] +# 10289-10320 Unassigned +cosir 10321/tcp # Computer Op System [Kevin_C_Barber] [Kevin_C_Barber] 2009-01-13 +# Information Report +# 10321 udp Reserved +# 10322-10499 Unassigned +# 10500 tcp Reserved +hip-nat-t 10500/udp # HIP NAT-Traversal [Ari_Keranen] [Ari_Keranen] [RFC5770] +# 10501-10539 Unassigned +MOS-lower 10540/tcp # MOS Media Object Metadata [Eric_Thorniley] [Eric_Thorniley] 2007-09-17 +MOS-lower 10540/udp # MOS Media Object Metadata [Eric_Thorniley] [Eric_Thorniley] 2007-09-17 +MOS-upper 10541/tcp # MOS Running Order Port [Eric_Thorniley] [Eric_Thorniley] 2007-09-17 +MOS-upper 10541/udp # MOS Running Order Port [Eric_Thorniley] [Eric_Thorniley] 2007-09-17 +MOS-aux 10542/tcp # MOS Low Priority Port [Eric_Thorniley] [Eric_Thorniley] 2007-09-17 +MOS-aux 10542/udp # MOS Low Priority Port [Eric_Thorniley] [Eric_Thorniley] 2007-09-17 +MOS-soap 10543/tcp # MOS SOAP Default Port [Eric_Thorniley] [Eric_Thorniley] 2007-09-17 +MOS-soap 10543/udp # MOS SOAP Default Port [Eric_Thorniley] [Eric_Thorniley] 2007-09-17 +MOS-soap-opt 10544/tcp # MOS SOAP Optional Port [Eric_Thorniley] [Eric_Thorniley] 2007-09-17 +MOS-soap-opt 10544/udp # MOS SOAP Optional Port [Eric_Thorniley] [Eric_Thorniley] 2007-09-17 +# 10545-10630 Unassigned +# Port to allow for +# administration and control +printopia 10631/tcp # of "Printopia" application [Ecamm_Network_LLC] [Chris_Kent] 2011-10-24 +# software, which provides +# printing services to mobile +# users +# 10631 udp Reserved +# 10632-10799 Unassigned +gap 10800/tcp # Gestor de Acaparamiento para [Juan_Carlos_Olivares] [Juan_Carlos_Olivares] 2006-03 +# Pocket PCs +gap 10800/udp # Gestor de Acaparamiento para [Juan_Carlos_Olivares] [Juan_Carlos_Olivares] 2006-03 +# 10801-10804 Unassigned +lpdg 10805/tcp # LUCIA Pareja Data Group [Alvaro_P_Dominguez] [Alvaro_P_Dominguez] 2006-02 +lpdg 10805/udp # LUCIA Pareja Data Group [Alvaro_P_Dominguez] [Alvaro_P_Dominguez] 2006-02 +# 10806-10808 Unassigned +nbd 10809/tcp # Linux Network Block Device [Wouter_Verhelst] [Wouter_Verhelst] 2010-08-02 +# 10809 udp Reserved +# 10810 tcp Reserved +nmc-disc 10810/udp # Nuance Mobile Care Discovery [Gordon_Waddell] [Gordon_Waddell] 2011-03-21 +# 10811-10859 Unassigned +helix 10860/tcp # Helix Client/Server [Matthew_Strange][Larry_Atkin_2] [Matthew_Strange][Larry_Atkin_2] 2009-03-06 +helix 10860/udp # Helix Client/Server [Matthew_Strange][Larry_Atkin_2] [Matthew_Strange][Larry_Atkin_2] 2009-03-06 +# 10861-10879 Unassigned +bveapi 10880/tcp # BVEssentials HTTP API [Tri_Tech_Computers_Ltd] [James_Emerton] 2012-11-19 +bveapi 10880/udp # BVEssentials HTTP API [Tri_Tech_Computers_Ltd] [James_Emerton] 2012-11-19 +# 10881-10989 Unassigned +rmiaux 10990/tcp # Auxiliary RMI Port [Eugen_Bacic_2] [Eugen_Bacic_2] +rmiaux 10990/udp # Auxiliary RMI Port [Eugen_Bacic_2] [Eugen_Bacic_2] +# 10991-10999 Unassigned +irisa 11000/tcp # IRISA [V_A_Brauner] [V_A_Brauner] +irisa 11000/udp # IRISA [V_A_Brauner] [V_A_Brauner] +metasys 11001/tcp # Metasys [Tobin_Schuster] [Tobin_Schuster] +metasys 11001/udp # Metasys [Tobin_Schuster] [Tobin_Schuster] +# 11002-11103 Unassigned +netapp-icmgmt 11104/tcp # NetApp Intercluster [Craig_Everhart] [Craig_Everhart] 2010-07-06 +# 11104 udp Reserved +netapp-icdata 11105/tcp # NetApp Intercluster Data [Craig_Everhart] [Craig_Everhart] 2010-07-06 +# 11105 udp Reserved +sgi-lk 11106/tcp # SGI LK Licensing service [Michel_Bourget] [Michel_Bourget] 2009-01-06 +sgi-lk 11106/udp # SGI LK Licensing service [Michel_Bourget] [Michel_Bourget] 2009-01-06 +# 11107-11108 Unassigned +# Data migration facility +sgi-dmfmgr 11109/tcp # Manager (DMF) is a browser [SGI] [John_Sygulla] 2013-01-07 +# based interface to DMF +# 11109 udp Reserved +sgi-soap 11110/tcp # (DMF) SOAP is a web server [SGI] [John_Sygulla] 2013-01-07 +# protocol to support remote +# access to DMF +# 11110 udp Reserved +vce 11111/tcp # Viral Computing Environment [Fred_Cohen] [Fred_Cohen] +# (VCE) +vce 11111/udp # Viral Computing Environment [Fred_Cohen] [Fred_Cohen] +dicom 11112/tcp # DICOM [David_Clunie] [David_Clunie] 2005-08 +dicom 11112/udp # DICOM [David_Clunie] [David_Clunie] 2005-08 +# 11113-11160 Unassigned +suncacao-snmp 11161/tcp # sun cacao snmp access point [Nick_Stephen] [Nick_Stephen] 2005-08 +suncacao-snmp 11161/udp # sun cacao snmp access point [Nick_Stephen] [Nick_Stephen] 2005-08 +suncacao-jmxmp 11162/tcp # sun cacao JMX-remoting [Nick_Stephen] [Nick_Stephen] 2005-08 +# access point +suncacao-jmxmp 11162/udp # sun cacao JMX-remoting [Nick_Stephen] [Nick_Stephen] 2005-08 +suncacao-rmi 11163/tcp # sun cacao rmi registry [Nick_Stephen] [Nick_Stephen] 2005-08 +suncacao-rmi 11163/udp # sun cacao rmi registry [Nick_Stephen] [Nick_Stephen] 2005-08 +suncacao-csa 11164/tcp # sun cacao command-streaming [Nick_Stephen] [Nick_Stephen] 2005-08 +suncacao-csa 11164/udp # sun cacao command-streaming [Nick_Stephen] [Nick_Stephen] 2005-08 +suncacao-websvc 11165/tcp # sun cacao web service access [Nick_Stephen] [Nick_Stephen] 2005-08 +# point +suncacao-websvc 11165/udp # sun cacao web service access [Nick_Stephen] [Nick_Stephen] 2005-08 +# 11166-11170 Unassigned +# 11171 tcp Reserved +snss 11171/udp # Surgical Notes Security [David_Lethe] [David_Lethe] 2010-12-24 +# Service Discovery (SNSS) +oemcacao-jmxmp 11172/tcp # OEM cacao JMX-remoting [David_Sechrest] [David_Sechrest] 2010-09-22 +# 11172 udp Reserved +t5-straton 11173/tcp # Straton Runtime Programing [COPALP] [Jerome_FOLLUT] 2012-03-01 +# 11173 udp Reserved +oemcacao-rmi 11174/tcp # OEM cacao rmi registry [David_Sechrest] [David_Sechrest] 2010-09-22 +# 11174 udp Reserved +oemcacao-websvc 11175/tcp # OEM cacao web service access [David_Sechrest] [David_Sechrest] 2010-09-22 +# 11175 udp Reserved +# 11176-11200 Unassigned +smsqp 11201/tcp # smsqp [Andres_Seco_Hernande] [Andres_Seco_Hernande] +smsqp 11201/udp # smsqp [Andres_Seco_Hernande] [Andres_Seco_Hernande] +dcsl-backup 11202/tcp # DCSL Network Backup Services [John_Reynolds] [John_Reynolds] 2012-04-17 Defined TXT keys: DCSL-Service +# 11202 udp Reserved +# 11203-11207 Unassigned +wifree 11208/tcp # WiFree Service [Jose_Luis_Martin_Pei] [Jose_Luis_Martin_Pei] 2006-03 +wifree 11208/udp # WiFree Service [Jose_Luis_Martin_Pei] [Jose_Luis_Martin_Pei] 2006-03 +# 11209-11210 Unassigned +memcache 11211/tcp # Memory cache service [Trond_Norbye] [Trond_Norbye] 2009-02-09 +memcache 11211/udp # Memory cache service [Trond_Norbye] [Trond_Norbye] 2009-02-09 +# 11212-11318 Unassigned +imip 11319/tcp # IMIP [Len_Zuvela] [Len_Zuvela] +imip 11319/udp # IMIP [Len_Zuvela] [Len_Zuvela] +imip-channels 11320/tcp # IMIP Channels Port [Len_Zuvela_2] [Len_Zuvela_2] +imip-channels 11320/udp # IMIP Channels Port [Len_Zuvela_2] [Len_Zuvela_2] +arena-server 11321/tcp # Arena Server Listen [Earl_Brannigan] [Earl_Brannigan] +arena-server 11321/udp # Arena Server Listen [Earl_Brannigan] [Earl_Brannigan] +# 11322-11366 Unassigned +atm-uhas 11367/tcp # ATM UHAS [Todd_Barker] [Todd_Barker] +atm-uhas 11367/udp # ATM UHAS [Todd_Barker] [Todd_Barker] +# 11368-11370 Unassigned +hkp 11371/tcp # OpenPGP HTTP Keyserver [David_Shaw] [David_Shaw] 2003-05 +hkp 11371/udp # OpenPGP HTTP Keyserver [David_Shaw] [David_Shaw] 2003-05 +# 11372-11488 Unassigned USE: port +# 11488 by ASG +# Cypress +asgcypresstcps 11489/tcp # ASG Cypress Secure Only [David_Luxford] [David_Luxford] 2010-07-01 +# 11489 udp Reserved +# 11490-11599 Unassigned +tempest-port 11600/tcp # Tempest Protocol Port [Francis_Cianfrocca] [Francis_Cianfrocca] +tempest-port 11600/udp # Tempest Protocol Port [Francis_Cianfrocca] [Francis_Cianfrocca] +# 11601-11719 Unassigned +h323callsigalt 11720/tcp # H.323 Call Control [ITU-T] [ITU-T_TSB] 2013-01-31 +# Signalling Alternate +h323callsigalt 11720/udp # H.323 Call Control [ITU-T] [ITU-T_TSB] 2013-01-31 +# 11721-11750 Unassigned +intrepid-ssl 11751/tcp # Intrepid SSL [Robert_Eden] [Robert_Eden] 2003-03 +intrepid-ssl 11751/udp # Intrepid SSL [Robert_Eden] [Robert_Eden] 2003-03 +# 11752-11795 Unassigned +lanschool 11796/tcp # LanSchool [Stoneware_Inc] [Dana_Doggett] 2012-05-18 +lanschool-mpt 11796/udp # Lanschool Multipoint [Stoneware_Inc] [Dana_Doggett] 2012-05-18 +# 11797-11875 Unassigned +xoraya 11876/tcp # X2E Xoraya Multichannel [Hannes_K] [Hannes_K] 2010-09-13 +xoraya 11876/udp # X2E Xoraya Multichannel [Hannes_K] [Hannes_K] 2010-09-13 +# 11877 tcp Reserved +x2e-disc 11877/udp # X2E service discovery [Hannes_K] [Hannes_K] 2010-09-13 +# 11878-11966 Unassigned +sysinfo-sp 11967/tcp # SysInfo Service Protocol [Mike_Cooper] [Mike_Cooper] 2003-03 +sysinfo-sp 11967/udp # SysInfo Sercice Protocol [Mike_Cooper] [Mike_Cooper] 2003-03 +# 11968-11996 Unassigned +wmereceiving 11997/sctp # WorldMailExpress [Greg_Foutz] [Greg_Foutz] 2006-03 +wmedistribution 11998/sctp # WorldMailExpress [Greg_Foutz] [Greg_Foutz] 2006-03 +wmereporting 11999/sctp # WorldMailExpress [Greg_Foutz] [Greg_Foutz] 2006-03 +entextxid 12000/tcp # IBM Enterprise Extender SNA [Eugene_Cox] [Eugene_Cox] +# XID Exchange +entextxid 12000/udp # IBM Enterprise Extender SNA [Eugene_Cox] [Eugene_Cox] +entextnetwk 12001/tcp # IBM Enterprise Extender SNA [Eugene_Cox] [Eugene_Cox] +# COS Network Priority +entextnetwk 12001/udp # IBM Enterprise Extender SNA [Eugene_Cox] [Eugene_Cox] +entexthigh 12002/tcp # IBM Enterprise Extender SNA [Eugene_Cox] [Eugene_Cox] +# COS High Priority +entexthigh 12002/udp # IBM Enterprise Extender SNA [Eugene_Cox] [Eugene_Cox] +entextmed 12003/tcp # IBM Enterprise Extender SNA [Eugene_Cox] [Eugene_Cox] +# COS Medium Priority +entextmed 12003/udp # IBM Enterprise Extender SNA [Eugene_Cox] [Eugene_Cox] +entextlow 12004/tcp # IBM Enterprise Extender SNA [Eugene_Cox] [Eugene_Cox] +# COS Low Priority +entextlow 12004/udp # IBM Enterprise Extender SNA [Eugene_Cox] [Eugene_Cox] +dbisamserver1 12005/tcp # DBISAM Database Server - [Tim_Young] [Tim_Young] 2002-05 +# Regular +dbisamserver1 12005/udp # DBISAM Database Server - [Tim_Young] [Tim_Young] 2002-05 +dbisamserver2 12006/tcp # DBISAM Database Server - [Tim_Young] [Tim_Young] 2002-05 +# Admin +dbisamserver2 12006/udp # DBISAM Database Server - [Tim_Young] [Tim_Young] 2002-05 +accuracer 12007/tcp # Accuracer Database System [Alexander_V_Ivanov] [Alexander_V_Ivanov] 2004-12 +accuracer 12007/udp # Accuracer Database System [Alexander_V_Ivanov] [Alexander_V_Ivanov] 2004-12 +accuracer-dbms 12008/tcp # Accuracer Database System [Alexander_V_Ivanov] [Alexander_V_Ivanov] 2004-12 +accuracer-dbms 12008/udp # Accuracer Database System [Alexander_V_Ivanov] [Alexander_V_Ivanov] 2004-12 +# 12009 tcp Reserved +ghvpn 12009/udp # Green Hills VPN [Green_Hills_Software] [Tom_R_Zavisca] 2012-02-07 +edbsrvr 12010/tcp # ElevateDB Server [Tim_Young] [Tim_Young] 2009-05-06 +# 12010 udp Reserved +# 12011 Unassigned +vipera 12012/tcp # Vipera Messaging Service [Silvano_Maffeis_2] [Silvano_Maffeis_2] 2005-08 +vipera 12012/udp # Vipera Messaging Service [Silvano_Maffeis_2] [Silvano_Maffeis_2] 2005-08 +vipera-ssl 12013/tcp # Vipera Messaging Service [Silvano_Maffeis_2] [Silvano_Maffeis_2] 2008-01-16 +# over SSL Communication +vipera-ssl 12013/udp # Vipera Messaging Service [Silvano_Maffeis_2] [Silvano_Maffeis_2] 2008-01-16 +# 12014-12108 Unassigned +rets-ssl 12109/tcp # RETS over SSL [Bruce_Toback] [Bruce_Toback] 2003-02 +rets-ssl 12109/udp # RETS over SSL [Bruce_Toback] [Bruce_Toback] 2003-02 +# 12110-12120 Unassigned +nupaper-ss 12121/tcp # NuPaper Session Service [David_Warden_2] [David_Warden_2] 2005-11 +nupaper-ss 12121/udp # NuPaper Session Service [David_Warden_2] [David_Warden_2] 2005-11 +# 12122-12167 Unassigned +cawas 12168/tcp # CA Web Access Service [Jon_Press] [Jon_Press] 2005-08 +cawas 12168/udp # CA Web Access Service [Jon_Press] [Jon_Press] 2005-08 +# 12169-12171 Unassigned +hivep 12172/tcp # HiveP [Dick_Augustsson] [Dick_Augustsson] +hivep 12172/udp # HiveP [Dick_Augustsson] [Dick_Augustsson] +# 12173-12299 Unassigned +linogridengine 12300/tcp # LinoGrid Engine [Frans_Lundberg] [Frans_Lundberg] 2004-11 +linogridengine 12300/udp # LinoGrid Engine [Frans_Lundberg] [Frans_Lundberg] 2004-11 +# 12301 Unassigned +# Remote Administration Daemon +# (RAD) is a system service +rads 12302/tcp # that offers secure, remote, [Oracle] [Devjani_Ray] 2012-04-20 +# programmatic access to +# Solaris system configuration +# and run-time state +# 12302 udp Reserved +# 12303-12320 Unassigned +warehouse-sss 12321/tcp # Warehouse Monitoring Syst [Craig_Steffen] [Craig_Steffen] 2005-08 +# SSS +warehouse-sss 12321/udp # Warehouse Monitoring Syst [Craig_Steffen] [Craig_Steffen] 2005-08 +warehouse 12322/tcp # Warehouse Monitoring Syst [Craig_Steffen] [Craig_Steffen] 2005-08 +warehouse 12322/udp # Warehouse Monitoring Syst [Craig_Steffen] [Craig_Steffen] 2005-08 +# 12323-12344 Unassigned +italk 12345/tcp # Italk Chat System [Takayuki_Ito] [Takayuki_Ito] +italk 12345/udp # Italk Chat System [Takayuki_Ito] [Takayuki_Ito] +# 12346-12752 Unassigned +tsaf 12753/tcp # tsaf port [Andreas_Fehr] [Andreas_Fehr] +tsaf 12753/udp # tsaf port [Andreas_Fehr] [Andreas_Fehr] +# 12754-13159 Unassigned +i-zipqd 13160/tcp # I-ZIPQD [Chuck_Runquist] [Chuck_Runquist] +i-zipqd 13160/udp # I-ZIPQD [Chuck_Runquist] [Chuck_Runquist] +# 13161-13215 Unassigned +bcslogc 13216/tcp # Black Crow Software [Ramindur_Singh] [Ramindur_Singh] 2008-12-04 +# application logging +bcslogc 13216/udp # Black Crow Software [Ramindur_Singh] [Ramindur_Singh] 2008-12-04 +rs-pias 13217/tcp # R&S Proxy Installation [Guido_Kiener] [Guido_Kiener] 2008-12-04 +# Assistant Service +rs-pias 13217/udp # R&S Proxy Installation [Guido_Kiener] [Guido_Kiener] 2008-12-04 +emc-vcas-tcp 13218/tcp # EMC Virtual CAS Service +emc-vcas-udp 13218/udp # EMV Virtual CAS Service [Mark_O_Connell] [Mark_O_Connell] 2008-12-04 +# 13219-13222 Unassigned +powwow-client 13223/tcp # PowWow Client [Paul_K_Peterson] [Paul_K_Peterson] +powwow-client 13223/udp # PowWow Client [Paul_K_Peterson] [Paul_K_Peterson] +powwow-server 13224/tcp # PowWow Server [Paul_K_Peterson] [Paul_K_Peterson] +powwow-server 13224/udp # PowWow Server [Paul_K_Peterson] [Paul_K_Peterson] +# 13225-13399 Unassigned +doip-data 13400/tcp # DoIP Data [Joerg_Schneider] [Joerg_Schneider] 2011-01-26 +doip-disc 13400/udp # DoIP Discovery [Joerg_Schneider] [Joerg_Schneider] 2011-01-26 +# 13401-13719 Unassigned +bprd 13720/tcp # BPRD Protocol (VERITAS [Jeff_Holmbeck] [Jeff_Holmbeck] +# NetBackup) +bprd 13720/udp # BPRD Protocol (VERITAS [Jeff_Holmbeck] [Jeff_Holmbeck] +bpdbm 13721/tcp # BPDBM Protocol (VERITAS [Jeff_Holmbeck] [Jeff_Holmbeck] +bpdbm 13721/udp # BPDBM Protocol (VERITAS [Jeff_Holmbeck] [Jeff_Holmbeck] +bpjava-msvc 13722/tcp # BP Java MSVC Protocol [Tim_Schmidt] [Tim_Schmidt] +bpjava-msvc 13722/udp # BP Java MSVC Protocol [Tim_Schmidt] [Tim_Schmidt] +# 13723 Unassigned +vnetd 13724/tcp # Veritas Network Utility [Jeff_Holmbeck] [Jeff_Holmbeck] +vnetd 13724/udp # Veritas Network Utility [Jeff_Holmbeck] [Jeff_Holmbeck] +# 13725-13781 Unassigned +bpcd 13782/tcp # VERITAS NetBackup [Jeff_Holmbeck] [Jeff_Holmbeck] +bpcd 13782/udp # VERITAS NetBackup [Jeff_Holmbeck] [Jeff_Holmbeck] +vopied 13783/tcp # VOPIED Protocol [Jeff_Holmbeck] [Jeff_Holmbeck] +vopied 13783/udp # VOPIED Protocol [Jeff_Holmbeck] [Jeff_Holmbeck] +# 13784 Unassigned +nbdb 13785/tcp # NetBackup Database [Pat_Tovo] [Pat_Tovo] 2004-12 +nbdb 13785/udp # NetBackup Database [Pat_Tovo] [Pat_Tovo] 2004-12 +nomdb 13786/tcp # Veritas-nomdb [Clayton_Haapala] [Clayton_Haapala] 2005-08 +nomdb 13786/udp # Veritas-nomdb [Clayton_Haapala] [Clayton_Haapala] 2005-08 +# 13787-13817 Unassigned +dsmcc-config 13818/tcp # DSMCC Config [Tim_Addington] [Tim_Addington] [ISO/IEC 13818-6 MPEG-2 +# DSM-CC] +dsmcc-config 13818/udp # DSMCC Config [Tim_Addington] [Tim_Addington] [ISO/IEC 13818-6 MPEG-2 +dsmcc-session 13819/tcp # DSMCC Session Messages [Tim_Addington] [Tim_Addington] [ISO/IEC 13818-6 MPEG-2 +dsmcc-session 13819/udp # DSMCC Session Messages [Tim_Addington] [Tim_Addington] [ISO/IEC 13818-6 MPEG-2 +dsmcc-passthru 13820/tcp # DSMCC Pass-Thru Messages [Tim_Addington] [Tim_Addington] [ISO/IEC 13818-6 MPEG-2 +dsmcc-passthru 13820/udp # DSMCC Pass-Thru Messages [Tim_Addington] [Tim_Addington] [ISO/IEC 13818-6 MPEG-2 +dsmcc-download 13821/tcp # DSMCC Download Protocol [Tim_Addington] [Tim_Addington] [ISO/IEC 13818-6 MPEG-2 +dsmcc-download 13821/udp # DSMCC Download Protocol [Tim_Addington] [Tim_Addington] [ISO/IEC 13818-6 MPEG-2 +dsmcc-ccp 13822/tcp # DSMCC Channel Change [Tim_Addington] [Tim_Addington] [ISO/IEC 13818-6 MPEG-2 +# Protocol DSM-CC] +dsmcc-ccp 13822/udp # DSMCC Channel Change [Tim_Addington] [Tim_Addington] [ISO/IEC 13818-6 MPEG-2 +bmdss 13823/tcp # Blackmagic Design Streaming [Sam_Vaughan] [Sam_Vaughan] 2011-03-01 +# 13823 udp Reserved +# 13824-13893 Unassigned +ucontrol 13894/tcp # Ultimate Control [NEGU_Soft] [borja_lopez_urkidi] 2012-09-10 +# communication protocol +ucontrol 13894/udp # Ultimate Control [NEGU_Soft] [borja_lopez_urkidi] 2012-09-10 +# 13895-13928 Unassigned +dta-systems 13929/tcp # D-TA SYSTEMS [Alexis_Bose] [Alexis_Bose] 2008-12-08 +dta-systems 13929/udp # D-TA SYSTEMS [Alexis_Bose] [Alexis_Bose] 2008-12-08 +medevolve 13930/tcp # MedEvolve Port Requester [Jon_Robertson] [Jon_Robertson] 2008-10-24 +# 13930 udp Reserved +# 13931-13999 Unassigned +scotty-ft 14000/tcp # SCOTTY High-Speed [Patrick_Verbeek] [Patrick_Verbeek] 2007-05 +# Filetransfer +scotty-ft 14000/udp # SCOTTY High-Speed [Patrick_Verbeek] [Patrick_Verbeek] 2007-05 +sua 14001/tcp # SUA [Miguel_Angel_Garcia] [Miguel_Angel_Garcia] +sua 14001/udp # De-Registered [Miguel_Angel_Garcia] [Miguel_Angel_Garcia] 2001-06-06 +sua 14001/sctp # SUA [Miguel_Angel_Garcia] [Miguel_Angel_Garcia] +scotty-disc 14002/udp # Discovery of a SCOTTY [SCOTTY_Group_SE] [Patrick_Verbeek_2] 2013-01-14 +# hardware codec board +# 14002 tcp Reserved +# 14003-14032 Unassigned +sage-best-com1 14033/tcp # sage Best! Config Server 1 [Christian_Rubach] [Christian_Rubach] +sage-best-com1 14033/udp # sage Best! Config Server 1 [Christian_Rubach] [Christian_Rubach] +sage-best-com2 14034/tcp # sage Best! Config Server 2 [Christian_Rubach] [Christian_Rubach] +sage-best-com2 14034/udp # sage Best! Config Server 2 [Christian_Rubach] [Christian_Rubach] +# 14035-14140 Unassigned +vcs-app 14141/tcp # VCS Application [Ming_Xu] [Ming_Xu] +vcs-app 14141/udp # VCS Application [Ming_Xu] [Ming_Xu] +icpp 14142/tcp # IceWall Cert Protocol [Tsutomu_Fujinami] [Tsutomu_Fujinami] 2005-08 +icpp 14142/udp # IceWall Cert Protocol [Tsutomu_Fujinami] [Tsutomu_Fujinami] 2005-08 +# 14143-14144 Unassigned +gcm-app 14145/tcp # GCM Application [Ming_Xu] [Ming_Xu] +gcm-app 14145/udp # GCM Application [Ming_Xu] [Ming_Xu] +# 14146-14148 Unassigned +vrts-tdd 14149/tcp # Veritas Traffic Director [Sameer_Deokule] [Sameer_Deokule] 2002-03 +vrts-tdd 14149/udp # Veritas Traffic Director [Sameer_Deokule] [Sameer_Deokule] 2002-03 +vcscmd 14150/tcp # Veritas Cluster Server [Anand_Bhalerao] [Anand_Bhalerao] 2008-10-02 +# Command Server +# 14150 udp Reserved +# 14151-14153 Unassigned +vad 14154/tcp # Veritas Application Director [Rajeev_Verma] [Rajeev_Verma] 2006-02 +vad 14154/udp # Veritas Application Director [Rajeev_Verma] [Rajeev_Verma] 2006-02 +# 14155-14249 Unassigned +cps 14250/tcp # Fencing Server [Mayank_Vasa] [Mayank_Vasa] 2008-04-03 +cps 14250/udp # Fencing Server [Mayank_Vasa] [Mayank_Vasa] 2008-04-03 +# 14251-14413 Unassigned +ca-web-update 14414/tcp # CA eTrust Web Update Service [Robert_Ciochon] [Robert_Ciochon] 2006-08 +ca-web-update 14414/udp # CA eTrust Web Update Service [Robert_Ciochon] [Robert_Ciochon] 2006-08 +# 14415-14935 Unassigned +hde-lcesrvr-1 14936/tcp # hde-lcesrvr-1 [Horizon_Digital_Ente] [Horizon_Digital_Ente] +hde-lcesrvr-1 14936/udp # hde-lcesrvr-1 [Horizon_Digital_Ente] [Horizon_Digital_Ente] +hde-lcesrvr-2 14937/tcp # hde-lcesrvr-2 [Horizon_Digital_Ente] [Horizon_Digital_Ente] +hde-lcesrvr-2 14937/udp # hde-lcesrvr-2 [Horizon_Digital_Ente] [Horizon_Digital_Ente] +# 14938-14999 Unassigned +hydap 15000/tcp # Hypack Data Aquisition [HYPACK_Inc] [Mircea_Neacsu] 2011-10-27 +hydap 15000/udp # Hypack Data Aquisition [HYPACK_Inc] [Mircea_Neacsu] 2011-10-27 +# 15001-15117 Unassigned +# 15118 tcp Reserved +# v2g Supply Equipment +v2g-secc 15118/udp # Communication Controller [Holger_Lochner] [Holger_Lochner] 2011-04-06 +# 15119-15344 Unassigned +xpilot 15345/tcp # XPilot Contact Port [Bert_Gijsbers] [Bert_Gijsbers] +xpilot 15345/udp # XPilot Contact Port [Bert_Gijsbers] [Bert_Gijsbers] +# 15346-15362 Unassigned +3link 15363/tcp # 3Link Negotiation [Brant_Thomsen] [Brant_Thomsen] 2003-01 +3link 15363/udp # 3Link Negotiation [Brant_Thomsen] [Brant_Thomsen] 2003-01 +# 15364-15554 Unassigned +cisco-snat 15555/tcp # Cisco Stateful NAT [Kaushik_Biswas] [Kaushik_Biswas] 2006-03 +cisco-snat 15555/udp # Cisco Stateful NAT [Kaushik_Biswas] [Kaushik_Biswas] 2006-03 +# 15556-15659 Unassigned +bex-xr 15660/tcp # Backup Express Restore [Chi_Shih_Chang] [Chi_Shih_Chang] 2008-03-19 +bex-xr 15660/udp # Backup Express Restore [Chi_Shih_Chang] [Chi_Shih_Chang] 2008-03-19 +# 15661-15739 Unassigned +ptp 15740/tcp # Picture Transfer Protocol [Petronel_Bigioi] [Petronel_Bigioi] 2004-11 Defined TXT keys: guid= +ptp 15740/udp # Picture Transfer Protocol [Petronel_Bigioi] [Petronel_Bigioi] 2004-11 Defined TXT keys: guid= +# 15741-15997 Unassigned +# 15998 tcp Reserved +2ping 15998/udp # 2ping Bi-Directional Ping [Ryan_Finnie] [Ryan_Finnie] 2010-10-06 +programmar 15999/tcp # ProGrammar Enterprise [Norman_Wilson] [Norman_Wilson] 2010-10-06 +# 15999 udp Reserved +fmsas 16000/tcp # Administration Server Access [Mark_Davidson] [Mark_Davidson] 2010-10-06 +# 16000 udp Reserved +fmsascon 16001/tcp # Administration Server [Mark_Davidson] [Mark_Davidson] 2010-10-06 +# Connector +# 16001 udp Reserved +gsms 16002/tcp # GoodSync Mediation Service [Vadim_Maslov] [Vadim_Maslov] 2010-10-06 +# 16002 udp Reserved +# 16003 tcp Reserved +alfin 16003/udp # Automation and Control by [Ing_Tomas_Halabala] [Ing_Tomas_Halabala] 2010-10-06 +# REGULACE.ORG +# 16004-16019 Unassigned +jwpc 16020/tcp # Filemaker Java Web [Robert_Parks] [Robert_Parks] 2010-05-12 +# Publishing Core +# 16020 udp Reserved +jwpc-bin 16021/tcp # Filemaker Java Web [Robert_Parks] [Robert_Parks] 2010-05-12 +# Publishing Core Binary +# 16021 udp Reserved +# 16022-16160 Unassigned +sun-sea-port 16161/tcp # Solaris SEA Port [Dana_Porter] [Dana_Porter] 2003-10 +sun-sea-port 16161/udp # Solaris SEA Port [Dana_Porter] [Dana_Porter] 2003-10 +solaris-audit 16162/tcp # Solaris Audit - secure [Jan_Friedel] [Jan_Friedel] 2009-05-07 +# remote audit log +# 16162 udp Reserved +# 16163-16308 Unassigned +etb4j 16309/tcp # etb4j [Christopher_R_Smith] [Christopher_R_Smith] 2004-11 +etb4j 16309/udp # etb4j [Christopher_R_Smith] [Christopher_R_Smith] 2004-11 +pduncs 16310/tcp # Policy Distribute, Update [Diane_I_Shannon] [Diane_I_Shannon] 2006-08 +pduncs 16310/udp # Policy Distribute, Update [Diane_I_Shannon] [Diane_I_Shannon] 2006-08 +pdefmns 16311/tcp # Policy definition and update [Diane_I_Shannon] [Diane_I_Shannon] 2007-04 +# management +pdefmns 16311/udp # Policy definition and update [Diane_I_Shannon] [Diane_I_Shannon] 2007-04 +# 16312-16359 Unassigned +netserialext1 16360/tcp # Network Serial Extension [Michael_J_Hoy] [Michael_J_Hoy] +# Ports One +netserialext1 16360/udp # Network Serial Extension [Michael_J_Hoy] [Michael_J_Hoy] +netserialext2 16361/tcp # Network Serial Extension [Michael_J_Hoy] [Michael_J_Hoy] +# Ports Two +netserialext2 16361/udp # Network Serial Extension [Michael_J_Hoy] [Michael_J_Hoy] +# 16362-16366 Unassigned +netserialext3 16367/tcp # Network Serial Extension [Michael_J_Hoy] [Michael_J_Hoy] +# Ports Three +netserialext3 16367/udp # Network Serial Extension [Michael_J_Hoy] [Michael_J_Hoy] +netserialext4 16368/tcp # Network Serial Extension [Michael_J_Hoy] [Michael_J_Hoy] +# Ports Four +netserialext4 16368/udp # Network Serial Extension [Michael_J_Hoy] [Michael_J_Hoy] +# 16369-16383 Unassigned +connected 16384/tcp # Connected Corp [Nicole_C_Ouellette] [Nicole_C_Ouellette] 2004-02 +connected 16384/udp # Connected Corp [Nicole_C_Ouellette] [Nicole_C_Ouellette] 2004-02 +# 16385-16618 Unassigned +xoms 16619/tcp # X509 Objects Management [Francis_GASCHET] [Francis_GASCHET] 2008-09-08 +# 16619 udp Reserved +# 16620-16665 Unassigned +# 16666 tcp Reserved +vtp 16666/udp # Vidder Tunnel Protocol [Vidder_Inc] [Ted_Schroeder_2] 2011-10-24 +# 16667-16899 Unassigned +newbay-snc-mc 16900/tcp # Newbay Mobile Client Update [Srinivasa_Nayudu] [Srinivasa_Nayudu] 2009-07-06 +newbay-snc-mc 16900/udp # Newbay Mobile Client Update [Srinivasa_Nayudu] [Srinivasa_Nayudu] 2009-07-06 +# 16901-16949 Unassigned +sgcip 16950/tcp # Simple Generic Client [John_Aquilino] [John_Aquilino] +# Interface Protocol +sgcip 16950/udp # Simple Generic Client [John_Aquilino] [John_Aquilino] +# 16951-16990 Unassigned +intel-rci-mp 16991/tcp # INTEL-RCI-MP [Jane_Dashevsky] [Jane_Dashevsky] +intel-rci-mp 16991/udp # INTEL-RCI-MP [Jane_Dashevsky] [Jane_Dashevsky] +amt-soap-http 16992/tcp # Intel(R) AMT SOAP/HTTP [David_T_Hines] [David_T_Hines] 2005-02 +amt-soap-http 16992/udp # Intel(R) AMT SOAP/HTTP [David_T_Hines] [David_T_Hines] 2005-02 +amt-soap-https 16993/tcp # Intel(R) AMT SOAP/HTTPS [David_T_Hines] [David_T_Hines] 2005-02 +amt-soap-https 16993/udp # Intel(R) AMT SOAP/HTTPS [David_T_Hines] [David_T_Hines] 2005-02 +amt-redir-tcp 16994/tcp # Intel(R) AMT Redirection/TCP [Nimrod_Diamant] [Nimrod_Diamant] 2005-02 +amt-redir-tcp 16994/udp # Intel(R) AMT Redirection/TCP [Nimrod_Diamant] [Nimrod_Diamant] 2005-02 +amt-redir-tls 16995/tcp # Intel(R) AMT Redirection/TLS [Nimrod_Diamant] [Nimrod_Diamant] 2005-02 +amt-redir-tls 16995/udp # Intel(R) AMT Redirection/TLS [Nimrod_Diamant] [Nimrod_Diamant] 2005-02 +# 16996-17006 Unassigned +isode-dua 17007/tcp +isode-dua 17007/udp +# 17008-17184 Unassigned +soundsvirtual 17185/tcp # Sounds Virtual [Richard_Snider] [Richard_Snider] +soundsvirtual 17185/udp # Sounds Virtual [Richard_Snider] [Richard_Snider] +# 17186-17218 Unassigned +chipper 17219/tcp # Chipper [Ronald_Jimmink] [Ronald_Jimmink] +chipper 17219/udp # Chipper [Ronald_Jimmink] [Ronald_Jimmink] +# 17220 Unassigned +# IEEE 1722.1 AVB Discovery, +avdecc 17221/tcp # Enumeration, Connection [IEEE_1722_1] [Jeffrey_Daniel_Koftinoff] 2011-11-01 +# management, and Control +avdecc 17221/udp # Enumeration, Connection [IEEE_1722_1] [Jeffrey_Daniel_Koftinoff] 2011-11-01 +# 17222 tcp Reserved +# Control Plane +cpsp 17222/udp # Synchronization Protocol [Randall_Stewart_2] [Randall_Stewart_2] 2011-11-10 +# (SPSP) +# 17223-17233 Unassigned +integrius-stp 17234/tcp # Integrius Secure Tunnel [Christian_Klemetsson] [Christian_Klemetsson] 2010-03-04 +integrius-stp 17234/udp # Integrius Secure Tunnel [Christian_Klemetsson] [Christian_Klemetsson] 2010-03-04 +ssh-mgmt 17235/tcp # SSH Tectia Manager [Ville_Laurikari] [Ville_Laurikari] 2005-08 +ssh-mgmt 17235/udp # SSH Tectia Manager [Ville_Laurikari] [Ville_Laurikari] 2005-08 +# 17236-17499 Unassigned +db-lsp 17500/tcp # Dropbox LanSync Protocol [Paul_Bohm] [Paul_Bohm] 2010-01-21 +db-lsp-disc 17500/udp # Dropbox LanSync Discovery [Paul_Bohm] [Paul_Bohm] 2010-01-21 +# 17501-17728 Unassigned +ea 17729/tcp # Eclipse Aviation [William_Schmidt] [William_Schmidt] 2006-03 +ea 17729/udp # Eclipse Aviation [William_Schmidt] [William_Schmidt] 2006-03 +# 17730-17753 Unassigned +zep 17754/tcp # Encap. ZigBee Packets [Fred_Fierling] [Fred_Fierling] 2006-02 +zep 17754/udp # Encap. ZigBee Packets [Fred_Fierling] [Fred_Fierling] 2006-02 +zigbee-ip 17755/tcp # ZigBee IP Transport Service [Chris_Herzog] [Chris_Herzog] 2006-05 +zigbee-ip 17755/udp # ZigBee IP Transport Service [Chris_Herzog] [Chris_Herzog] 2006-05 +zigbee-ips 17756/tcp # ZigBee IP Transport Secure [Chris_Herzog] [Chris_Herzog] 2006-05 +zigbee-ips 17756/udp # ZigBee IP Transport Secure [Chris_Herzog] [Chris_Herzog] 2006-05 +# 17757-17776 Unassigned +sw-orion 17777/tcp # SolarWinds Orion [Joel_Dolisy] [Joel_Dolisy] 2008-09-10 +# 17777 udp Reserved +# 17778-17999 Unassigned +biimenu 18000/tcp # Beckman Instruments, Inc. [R_L_Meyering] [R_L_Meyering] +biimenu 18000/udp # Beckman Instruments, Inc. [R_L_Meyering] [R_L_Meyering] +# 18001-18103 Unassigned +radpdf 18104/tcp # RAD PDF Service [Christopher_Truxaw] [Christopher_Truxaw] 2010-10-15 +# 18104 udp Reserved +# 18105-18135 Unassigned +racf 18136/tcp # z/OS Resource Access Control [Bruce_Wells] [Bruce_Wells] 2010-10-04 +# 18136 udp Reserved +# 18137-18180 Unassigned +opsec-cvp 18181/tcp # OPSEC CVP [Alon_Kantor] [Alon_Kantor] +opsec-cvp 18181/udp # OPSEC CVP [Alon_Kantor] [Alon_Kantor] +opsec-ufp 18182/tcp # OPSEC UFP [Alon_Kantor] [Alon_Kantor] +opsec-ufp 18182/udp # OPSEC UFP [Alon_Kantor] [Alon_Kantor] +opsec-sam 18183/tcp # OPSEC SAM [Alon_Kantor] [Alon_Kantor] +opsec-sam 18183/udp # OPSEC SAM [Alon_Kantor] [Alon_Kantor] +opsec-lea 18184/tcp # OPSEC LEA [Alon_Kantor] [Alon_Kantor] +opsec-lea 18184/udp # OPSEC LEA [Alon_Kantor] [Alon_Kantor] +opsec-omi 18185/tcp # OPSEC OMI [Alon_Kantor] [Alon_Kantor] +opsec-omi 18185/udp # OPSEC OMI [Alon_Kantor] [Alon_Kantor] +ohsc 18186/tcp # Occupational Health SC [David_Fudge] [David_Fudge] 2003-08 +ohsc 18186/udp # Occupational Health Sc [David_Fudge] [David_Fudge] 2003-08 +opsec-ela 18187/tcp # OPSEC ELA [Alon_Kantor] [Alon_Kantor] +opsec-ela 18187/udp # OPSEC ELA [Alon_Kantor] [Alon_Kantor] +# 18188-18240 Unassigned +checkpoint-rtm 18241/tcp # Check Point RTM [Dudi_Hazan] [Dudi_Hazan] +checkpoint-rtm 18241/udp # Check Point RTM [Dudi_Hazan] [Dudi_Hazan] +iclid 18242/tcp # Checkpoint router monitoring [Check_Point_Software] [Rahul_Bahadur] 2012-06-28 +# 18242 udp Reserved +clusterxl 18243/tcp # Checkpoint router state [Check_Point_Software] [Rahul_Bahadur] 2012-06-28 +# backup +# 18243 udp Reserved +# 18244-18261 Unassigned +gv-pf 18262/tcp # GV NetConfig Service [Scott_Libert] [Scott_Libert] 2008-01-29 +gv-pf 18262/udp # GV NetConfig Service [Scott_Libert] [Scott_Libert] 2008-01-29 +# 18263-18462 Unassigned +ac-cluster 18463/tcp # AC Cluster [Lisa_Zhong] [Lisa_Zhong] +ac-cluster 18463/udp # AC Cluster [Lisa_Zhong] [Lisa_Zhong] +# 18464-18633 Unassigned +rds-ib 18634/tcp # Reliable Datagram Service [Andy_Grover] [Andy_Grover] 2009-02-27 +rds-ib 18634/udp # Reliable Datagram Service [Andy_Grover] [Andy_Grover] 2009-02-27 +rds-ip 18635/tcp # Reliable Datagram Service [Andy_Grover] [Andy_Grover] 2009-05-20 +# over IP +rds-ip 18635/udp # Reliable Datagram Service [Andy_Grover] [Andy_Grover] 2009-05-20 +# 18636-18768 Unassigned +ique 18769/tcp # IQue Protocol [Avi_Drissman] [Avi_Drissman] 2002-07 +ique 18769/udp # IQue Protocol [Avi_Drissman] [Avi_Drissman] 2002-07 +# 18770-18880 Unassigned +infotos 18881/tcp # Infotos [Marcel_Dube] [Marcel_Dube] 2004-11 +infotos 18881/udp # Infotos [Marcel_Dube] [Marcel_Dube] 2004-11 +# 18882-18887 Unassigned +apc-necmp 18888/tcp # APCNECMP [Michael_Yip] [Michael_Yip] +apc-necmp 18888/udp # APCNECMP [Michael_Yip] [Michael_Yip] +# 18889-18999 Unassigned +igrid 19000/tcp # iGrid Server [Massimo_Cafaro] [Massimo_Cafaro] 2004-11 +igrid 19000/udp # iGrid Server [Massimo_Cafaro] [Massimo_Cafaro] 2004-11 +# 19001-19019 Unassigned +j-link 19020/tcp # J-Link TCP/IP Protocol [SEGGER] [SEGGER] +# 19020 udp Reserved +# 19021-19190 Unassigned +opsec-uaa 19191/tcp # OPSEC UAA [Reuven_Harrison] [Reuven_Harrison] +opsec-uaa 19191/udp # OPSEC UAA [Reuven_Harrison] [Reuven_Harrison] +# 19192-19193 Unassigned +ua-secureagent 19194/tcp # UserAuthority SecureAgent [Reuven_Harrison_2] [Reuven_Harrison_2] 2003-01 +ua-secureagent 19194/udp # UserAuthority SecureAgent [Reuven_Harrison_2] [Reuven_Harrison_2] 2003-01 +# 19195-19282 Unassigned +keysrvr 19283/tcp # Key Server for SASSAFRAS [Mark_Valence] [Mark_Valence] +keysrvr 19283/udp # Key Server for SASSAFRAS [Mark_Valence] [Mark_Valence] +# 19284-19314 Unassigned +keyshadow 19315/tcp # Key Shadow for SASSAFRAS [Mark_Valence] [Mark_Valence] +keyshadow 19315/udp # Key Shadow for SASSAFRAS [Mark_Valence] [Mark_Valence] +# 19316-19397 Unassigned +mtrgtrans 19398/tcp # mtrgtrans [Katsuhito_Muroi] [Katsuhito_Muroi] +mtrgtrans 19398/udp # mtrgtrans [Katsuhito_Muroi] [Katsuhito_Muroi] +# 19399-19409 Unassigned +hp-sco 19410/tcp # hp-sco [Larry_Schwartz] [Larry_Schwartz] +hp-sco 19410/udp # hp-sco [Larry_Schwartz] [Larry_Schwartz] +hp-sca 19411/tcp # hp-sca [Larry_Schwartz] [Larry_Schwartz] +hp-sca 19411/udp # hp-sca [Larry_Schwartz] [Larry_Schwartz] +hp-sessmon 19412/tcp # HP-SESSMON [Gita_Murthy] [Gita_Murthy] +hp-sessmon 19412/udp # HP-SESSMON [Gita_Murthy] [Gita_Murthy] +# 19413-19538 Unassigned +fxuptp 19539/tcp # FXUPTP [Keiji_Okuma] [Keiji_Okuma] 2005-08 +fxuptp 19539/udp # FXUPTP [Keiji_Okuma] [Keiji_Okuma] 2005-08 +sxuptp 19540/tcp # SXUPTP [Keiji_Okuma] [Keiji_Okuma] 2002-08 +sxuptp 19540/udp # SXUPTP [Keiji_Okuma] [Keiji_Okuma] 2002-08 +jcp 19541/tcp # JCP Client [Yuji_Sasaki] [Yuji_Sasaki] +jcp 19541/udp # JCP Client [Yuji_Sasaki] [Yuji_Sasaki] +# 19542-19787 Unassigned +mle 19788/udp # Mesh Link Establishment [IESG] [IETF_Chair] 2012-12-18 +# 19788 tcp Reserved +# 19789-19997 Unassigned +iec-104-sec 19998/tcp # IEC 60870-5-104 process [Grant_Gilchrist] [Grant_Gilchrist] 2010-10-18 +# control - secure +# 19998 udp Reserved +dnp-sec 19999/tcp # Distributed Network Protocol [Grant_Gilchrist] [Grant_Gilchrist] 2008-08-04 +# - Secure +dnp-sec 19999/udp # Distributed Network Protocol [Grant_Gilchrist] [Grant_Gilchrist] 2008-08-04 +dnp 20000/tcp # DNP [Michael_Thesing] [Michael_Thesing] +dnp 20000/udp # DNP [Michael_Thesing] [Michael_Thesing] +microsan 20001/tcp # MicroSAN [Thomas_E_Ludwig] [Thomas_E_Ludwig] 2004-02 +microsan 20001/udp # MicroSAN [Thomas_E_Ludwig] [Thomas_E_Ludwig] 2004-02 +commtact-http 20002/tcp # Commtact HTTP [Tomas_Svoboda] [Tomas_Svoboda] 2004-12 +commtact-http 20002/udp # Commtact HTTP [Tomas_Svoboda] [Tomas_Svoboda] 2004-12 +commtact-https 20003/tcp # Commtact HTTPS [Tomas_Svoboda] [Tomas_Svoboda] 2004-12 +commtact-https 20003/udp # Commtact HTTPS [Tomas_Svoboda] [Tomas_Svoboda] 2004-12 +# 20004 Unassigned +openwebnet 20005/tcp # OpenWebNet protocol for [BTicino_S_p_A] [BTicino_S_p_A] 2008-04-09 +# electric network +openwebnet 20005/udp # OpenWebNet protocol for [BTicino_S_p_A] [BTicino_S_p_A] 2008-04-09 +# 20006-20011 Unassigned +# 20012 tcp Reserved +ss-idi-disc 20012/udp # Samsung Interdevice [Hong_Jungkih] [Hong_Jungkih] +# Interaction discovery +ss-idi 20013/tcp # Samsung Interdevice [Hong_Jungkih] [Hong_Jungkih] +# Interaction +# 20013 udp Reserved +opendeploy 20014/tcp # OpenDeploy Listener [Todd_Scallan] [Todd_Scallan] 2005-08 +opendeploy 20014/udp # OpenDeploy Listener [Todd_Scallan] [Todd_Scallan] 2005-08 +# 20015-20033 Unassigned +# NetBurner ID Port +# +nburn-id 20034/tcp # IANA assigned this [Paul_Breed] [Paul_Breed] 2003-11 +# "nburn_id". +# This entry is an alias to "nburn-id". This entry is now +nburn_id 20034/tcp # NetBurner ID Port [Paul_Breed] [Paul_Breed] 2003-11 historic, not usable for use with many common service +# +nburn-id 20034/udp # IANA assigned this [Paul_Breed] [Paul_Breed] 2003-11 +nburn_id 20034/udp # NetBurner ID Port [Paul_Breed] [Paul_Breed] 2003-11 historic, not usable for use with many common service +# 20035-20045 Unassigned +tmophl7mts 20046/tcp # TMOP HL7 Message Transfer [Tim_Riley] [Tim_Riley] 2009-07-31 +tmophl7mts 20046/udp # TMOP HL7 Message Transfer [Tim_Riley] [Tim_Riley] 2009-07-31 +# 20047-20047 Unassigned +mountd 20048/tcp # NFS mount protocol [Nicolas_Williams] [Nicolas_Williams] 2010-08-09 +mountd 20048/udp # NFS mount protocol [Nicolas_Williams] [Nicolas_Williams] 2010-08-09 +nfsrdma 20049/tcp # Network File System (NFS) [RFC5666] +# over RDMA +nfsrdma 20049/udp # Network File System (NFS) [RFC5666] +nfsrdma 20049/sctp # Network File System (NFS) [RFC5666] +# 20050-20166 Unassigned +tolfab 20167/tcp # TOLfab Data Change [Pierre_Couderc] [Pierre_Couderc] 2006-03 +tolfab 20167/udp # TOLfab Data Change [Pierre_Couderc] [Pierre_Couderc] 2006-03 +# 20168-20201 Unassigned +ipdtp-port 20202/tcp # IPD Tunneling Port [Vikki_Yin_Wei] [Vikki_Yin_Wei] 2003-01 +ipdtp-port 20202/udp # IPD Tunneling Port [Vikki_Yin_Wei] [Vikki_Yin_Wei] 2003-01 +# 20203-20221 Unassigned +ipulse-ics 20222/tcp # iPulse-ICS [Meggie_Garica_Woodru] [Meggie_Garica_Woodru] +ipulse-ics 20222/udp # iPulse-ICS [Meggie_Garica_Woodru] [Meggie_Garica_Woodru] +# 20223-20479 Unassigned +emwavemsg 20480/tcp # emWave Message Service [Harald_Striepe] [Harald_Striepe] 2008-02-14 +emwavemsg 20480/udp # emWave Message Service [Harald_Striepe] [Harald_Striepe] 2008-02-14 +# 20481-20669 Unassigned +track 20670/tcp # Track [Michael_Sweet] [Michael_Sweet] +track 20670/udp # Track [Michael_Sweet] [Michael_Sweet] +# 20671-20998 Unassigned +athand-mmp 20999/tcp # At Hand MMP [Stepan_Riha] [Stepan_Riha] +athand-mmp 20999/udp # AT Hand MMP [Stepan_Riha] [Stepan_Riha] +irtrans 21000/tcp # IRTrans Control [Marcus_Mueller] [Marcus_Mueller] 2004-11 +irtrans 21000/udp # IRTrans Control [Marcus_Mueller] [Marcus_Mueller] 2004-11 +# 21001-21552 Unassigned +rdm-tfs 21553/tcp # Raima RDM TFS [Paul_Johnson] [Paul_Johnson] 2011-05-02 +# 21553 udp Reserved +dfserver 21554/tcp # MineScape Design File Server [Michael_Purser] [Michael_Purser] 2006-06 +dfserver 21554/udp # MineScape Design File Server [Michael_Purser] [Michael_Purser] 2006-06 +# 21555-21589 Unassigned +vofr-gateway 21590/tcp # VoFR Gateway [Marty_Borden] [Marty_Borden] +vofr-gateway 21590/udp # VoFR Gateway [Marty_Borden] [Marty_Borden] +# 21591-21799 Unassigned +tvpm 21800/tcp # TVNC Pro Multiplexing [Brian_Blevins] [Brian_Blevins] +tvpm 21800/udp # TVNC Pro Multiplexing [Brian_Blevins] [Brian_Blevins] +# 21801-21844 Unassigned +webphone 21845/tcp # webphone [Toby_Hosterman] [Toby_Hosterman] +webphone 21845/udp # webphone [Toby_Hosterman] [Toby_Hosterman] +netspeak-is 21846/tcp # NetSpeak Corp. Directory [Toby_Hosterman] [Toby_Hosterman] +netspeak-is 21846/udp # NetSpeak Corp. Directory [Toby_Hosterman] [Toby_Hosterman] +netspeak-cs 21847/tcp # NetSpeak Corp. Connection [Toby_Hosterman] [Toby_Hosterman] +netspeak-cs 21847/udp # NetSpeak Corp. Connection [Toby_Hosterman] [Toby_Hosterman] +netspeak-acd 21848/tcp # NetSpeak Corp. Automatic [Toby_Hosterman] [Toby_Hosterman] +# Call Distribution +netspeak-acd 21848/udp # NetSpeak Corp. Automatic [Toby_Hosterman] [Toby_Hosterman] +netspeak-cps 21849/tcp # NetSpeak Corp. Credit [Toby_Hosterman] [Toby_Hosterman] +# Processing System +netspeak-cps 21849/udp # NetSpeak Corp. Credit [Toby_Hosterman] [Toby_Hosterman] +# 21850-21999 Unassigned +snapenetio 22000/tcp # SNAPenetIO [Kevin_Kuhns] [Kevin_Kuhns] +snapenetio 22000/udp # SNAPenetIO [Kevin_Kuhns] [Kevin_Kuhns] +optocontrol 22001/tcp # OptoControl [Kevin_Kuhns] [Kevin_Kuhns] +optocontrol 22001/udp # OptoControl [Kevin_Kuhns] [Kevin_Kuhns] +optohost002 22002/tcp # Opto Host Port 2 [Doug_Leany] [Doug_Leany] 2006-09 +optohost002 22002/udp # Opto Host Port 2 [Doug_Leany] [Doug_Leany] 2006-09 +optohost003 22003/tcp # Opto Host Port 3 [Doug_Leany] [Doug_Leany] 2006-09 +optohost003 22003/udp # Opto Host Port 3 [Doug_Leany] [Doug_Leany] 2006-09 +optohost004 22004/tcp # Opto Host Port 4 [Doug_Leany] [Doug_Leany] 2006-09 +optohost004 22004/udp # Opto Host Port 4 [Doug_Leany] [Doug_Leany] 2006-09 +optohost004 22005/tcp # Opto Host Port 5 [Doug_Leany] [Doug_Leany] 2006-09 +optohost004 22005/udp # Opto Host Port 5 [Doug_Leany] [Doug_Leany] 2006-09 +# 22006-22124 Unassigned +dcap 22125/tcp # dCache Access Protocol [Christoph_Anton_Mitt] [Christoph_Anton_Mitt] 2009-03-10 +# 22125 udp Reserved +# 22126-22127 Unassigned +gsidcap 22128/tcp # GSI dCache Access Protocol [Christoph_Anton_Mitt] [Christoph_Anton_Mitt] 2009-03-10 +# 22128 udp Reserved +# 22129-22272 Unassigned +wnn6 22273/tcp # wnn6 [Yasunari_Gon_Yamasit] [Yasunari_Gon_Yamasit] +wnn6 22273/udp # wnn6 [Yasunari_Gon_Yamasit] [Yasunari_Gon_Yamasit] +# 22274-22304 Unassigned +cis 22305/tcp # CompactIS Tunnel [Justin_Paupore] [Justin_Paupore] 2007-08-16 +cis 22305/udp # CompactIS Tunnel [Justin_Paupore] [Justin_Paupore] 2007-08-16 +# 22306-22342 Unassigned +cis-secure 22343/tcp # CompactIS Secure Tunnel [Justin_Paupore] [Justin_Paupore] 2007-08-16 +cis-secure 22343/udp # CompactIS Secure Tunnel [Justin_Paupore] [Justin_Paupore] 2007-08-16 +# 22344-22346 Unassigned +WibuKey 22347/tcp # WibuKey Standard WkLan [Wolfgang_Voelker] [Wolfgang_Voelker] 2007-06 +WibuKey 22347/udp # WibuKey Standard WkLan [Wolfgang_Voelker] [Wolfgang_Voelker] 2007-06 +# 22348-22349 Unassigned +CodeMeter 22350/tcp # CodeMeter Standard [Wolfgang_Voelker] [Wolfgang_Voelker] 2007-06 +CodeMeter 22350/udp # CodeMeter Standard [Wolfgang_Voelker] [Wolfgang_Voelker] 2007-06 +# 22351-22536 Unassigned +caldsoft-backup 22537/tcp # CaldSoft Backup server file [CaldSoft] [Mark_Caldwell] 2011-08-12 +# transfer +# 22537 udp Reserved +# 22538-22554 Unassigned +vocaltec-wconf 22555/tcp # Vocaltec Web Conference [Scott_Petrack] [Scott_Petrack] +vocaltec-phone 22555/udp # Vocaltec Internet Phone [Scott_Petrack] [Scott_Petrack] +# 22556-22762 Unassigned +talikaserver 22763/tcp # Talika Main Server [Laxman_C_Marathe] [Laxman_C_Marathe] 2006-12 +talikaserver 22763/udp # Talika Main Server [Laxman_C_Marathe] [Laxman_C_Marathe] 2006-12 +# 22764-22799 Unassigned +aws-brf 22800/tcp # Telerate Information [Timo_Sivonen] [Timo_Sivonen] +# Platform LAN +aws-brf 22800/udp # Telerate Information [Timo_Sivonen] [Timo_Sivonen] +# 22801-22950 Unassigned +brf-gw 22951/tcp # Telerate Information [Timo_Sivonen] [Timo_Sivonen] +# Platform WAN +brf-gw 22951/udp # Telerate Information [Timo_Sivonen] [Timo_Sivonen] +# 22952-22999 Unassigned +inovaport1 23000/tcp # Inova LightLink Server Type [Chris_Koeritz_3] [Chris_Koeritz_3] 2006-10 +# 1 +inovaport1 23000/udp # Inova LightLink Server Type [Chris_Koeritz_3] [Chris_Koeritz_3] 2006-10 +inovaport2 23001/tcp # Inova LightLink Server Type [Chris_Koeritz_3] [Chris_Koeritz_3] 2006-10 +# 2 +inovaport2 23001/udp # Inova LightLink Server Type [Chris_Koeritz_3] [Chris_Koeritz_3] 2006-10 +inovaport3 23002/tcp # Inova LightLink Server Type [Chris_Koeritz_3] [Chris_Koeritz_3] 2006-10 +# 3 +inovaport3 23002/udp # Inova LightLink Server Type [Chris_Koeritz_3] [Chris_Koeritz_3] 2006-10 +inovaport4 23003/tcp # Inova LightLink Server Type [Chris_Koeritz_3] [Chris_Koeritz_3] 2006-10 +# 4 +inovaport4 23003/udp # Inova LightLink Server Type [Chris_Koeritz_3] [Chris_Koeritz_3] 2006-10 +inovaport5 23004/tcp # Inova LightLink Server Type [Chris_Koeritz_3] [Chris_Koeritz_3] 2006-10 +# 5 +inovaport5 23004/udp # Inova LightLink Server Type [Chris_Koeritz_3] [Chris_Koeritz_3] 2006-10 +inovaport6 23005/tcp # Inova LightLink Server Type [Chris_Koeritz_3] [Chris_Koeritz_3] 2006-10 +# 6 +inovaport6 23005/udp # Inova LightLink Server Type [Chris_Koeritz_3] [Chris_Koeritz_3] 2006-10 +# 23006-23052 Unassigned +gntp 23053/tcp # Generic Notification [Growl_Project] [Chris_Forsythe] 2012-02-07 +# Transport Protocol +# 23053 udp Reserved +# 23054-23271 Unassigned +# 23272 tcp Reserved +s102 23272/udp # S102 application [Kimmo_Kymalainen] [Kimmo_Kymalainen] 2009-08-26 +# 23273-23332 Unassigned +elxmgmt 23333/tcp # Emulex HBAnyware Remote [Maziar_Tamadon] [Maziar_Tamadon] 2007-11-06 +elxmgmt 23333/udp # Emulex HBAnyware Remote [Maziar_Tamadon] [Maziar_Tamadon] 2007-11-06 +# 23334-23399 Unassigned +novar-dbase 23400/tcp # Novar Data [Keith_Kilroy] [Keith_Kilroy] 2006-02 +novar-dbase 23400/udp # Novar Data [Keith_Kilroy] [Keith_Kilroy] 2006-02 +novar-alarm 23401/tcp # Novar Alarm [Keith_Kilroy] [Keith_Kilroy] 2006-02 +novar-alarm 23401/udp # Novar Alarm [Keith_Kilroy] [Keith_Kilroy] 2006-02 +novar-global 23402/tcp # Novar Global [Keith_Kilroy] [Keith_Kilroy] 2006-02 +novar-global 23402/udp # Novar Global [Keith_Kilroy] [Keith_Kilroy] 2006-02 +# 23403-23455 Unassigned +aequus 23456/tcp # Aequus Service [James_Anson] [James_Anson] 2009-02-12 +# 23456 udp Reserved +aequus-alt 23457/tcp # Aequus Service Mgmt [James_Anson] [James_Anson] 2009-02-12 +# 23457 udp Reserved +# 23458-23545 Unassigned +areaguard-neo 23546/tcp # AreaGuard Neo - WebServer [SODATSW_spol] [Roman_Stepanek] 2012-05-31 +# 23546 udp Reserved +# 23547-23999 Unassigned +med-ltp 24000/tcp # med-ltp [Juergen_Fischbach] [Juergen_Fischbach] +med-ltp 24000/udp # med-ltp [Juergen_Fischbach] [Juergen_Fischbach] +med-fsp-rx 24001/tcp # med-fsp-rx [Juergen_Fischbach] [Juergen_Fischbach] +med-fsp-rx 24001/udp # med-fsp-rx [Juergen_Fischbach] [Juergen_Fischbach] +med-fsp-tx 24002/tcp # med-fsp-tx [Juergen_Fischbach] [Juergen_Fischbach] +med-fsp-tx 24002/udp # med-fsp-tx [Juergen_Fischbach] [Juergen_Fischbach] +med-supp 24003/tcp # med-supp [Juergen_Fischbach] [Juergen_Fischbach] +med-supp 24003/udp # med-supp [Juergen_Fischbach] [Juergen_Fischbach] +med-ovw 24004/tcp # med-ovw [Juergen_Fischbach] [Juergen_Fischbach] +med-ovw 24004/udp # med-ovw [Juergen_Fischbach] [Juergen_Fischbach] +med-ci 24005/tcp # med-ci [Juergen_Fischbach] [Juergen_Fischbach] +med-ci 24005/udp # med-ci [Juergen_Fischbach] [Juergen_Fischbach] +med-net-svc 24006/tcp # med-net-svc [Juergen_Fischbach] [Juergen_Fischbach] +med-net-svc 24006/udp # med-net-svc [Juergen_Fischbach] [Juergen_Fischbach] +# 24007-24241 Unassigned +filesphere 24242/tcp # fileSphere [Carl_Cedergren] [Carl_Cedergren] +filesphere 24242/udp # fileSphere [Carl_Cedergren] [Carl_Cedergren] +# 24243-24248 Unassigned +vista-4gl 24249/tcp # Vista 4GL [Mark_Itzcovitz] [Mark_Itzcovitz] +vista-4gl 24249/udp # Vista 4GL [Mark_Itzcovitz] [Mark_Itzcovitz] +# 24250-24320 Unassigned +ild 24321/tcp # Isolv Local Directory [Mitchell_Bass] [Mitchell_Bass] 2005-08 +ild 24321/udp # Isolv Local Directory [Mitchell_Bass] [Mitchell_Bass] 2005-08 +hid 24322/udp # Transport of Human Interface [Freebox_SAS] [Nicolas_Pouillon] 2012-12-14 +# Device data streams +# 24322 tcp Reserved +# 24323-24385 Unassigned +# Intel RCI +# +intel-rci 24386/tcp # IANA assigned this [Mark_Lewis_2] [Mark_Lewis_2] +# "intel_rci". +# This entry is an alias to "intel-rci". This entry is now +intel_rci 24386/tcp # Intel RCI [Mark_Lewis_2] [Mark_Lewis_2] historic, not usable for use with many common service +# +intel-rci 24386/udp # IANA assigned this [Mark_Lewis_2] [Mark_Lewis_2] +intel_rci 24386/udp # Intel RCI [Mark_Lewis_2] [Mark_Lewis_2] historic, not usable for use with many common service +# 24387-24464 Unassigned +tonidods 24465/tcp # Tonido Domain Server [Madhan_Kanagavel] [Madhan_Kanagavel] 2008-07-18 +tonidods 24465/udp # Tonido Domain Server [Madhan_Kanagavel] [Madhan_Kanagavel] 2008-07-18 +# 24466-24553 Unassigned +binkp 24554/tcp # BINKP [Max_Masyutin] [Max_Masyutin] +binkp 24554/udp # BINKP [Max_Masyutin] [Max_Masyutin] +# 24555-24675 Unassigned +canditv 24676/tcp # Canditv Message Service [Gary_Aston] [Gary_Aston] 2009-03-10 +canditv 24676/udp # Canditv Message Service [Gary_Aston] [Gary_Aston] 2009-03-10 +flashfiler 24677/tcp # FlashFiler [Ben_Oram] [Ben_Oram] +flashfiler 24677/udp # FlashFiler [Ben_Oram] [Ben_Oram] +proactivate 24678/tcp # Turbopower Proactivate [Ben_Oram] [Ben_Oram] +proactivate 24678/udp # Turbopower Proactivate [Ben_Oram] [Ben_Oram] +# 24679 Unassigned +tcc-http 24680/tcp # TCC User HTTP Service [Brian_Kennedy] [Brian_Kennedy] 2006-08 +tcc-http 24680/udp # TCC User HTTP Service [Brian_Kennedy] [Brian_Kennedy] 2006-08 +# 24681-24753 Unassigned +cslg 24754/tcp # Citrix StorageLink Gateway [Mark_Nijmeijer] [Mark_Nijmeijer] 2009-04-17 +# 24754 udp Reserved +# 24755-24849 Unassigned +# 24850 tcp Reserved +assoc-disc 24850/udp # Device Association Discovery [Microsoft_Corporation_3] [Sachin_Sheth] 2012-06-27 +# 24851-24921 Unassigned +find 24922/tcp # Find Identification of [Jean_Paul_Moreaux] [Jean_Paul_Moreaux] +# Network Devices +find 24922/udp # Find Identification of [Jean_Paul_Moreaux] [Jean_Paul_Moreaux] +# 24923-24999 Unassigned +icl-twobase1 25000/tcp # icl-twobase1 [J_A_Sever] [J_A_Sever] +icl-twobase1 25000/udp # icl-twobase1 [J_A_Sever] [J_A_Sever] +icl-twobase2 25001/tcp # icl-twobase2 [J_A_Sever] [J_A_Sever] +icl-twobase2 25001/udp # icl-twobase2 [J_A_Sever] [J_A_Sever] +icl-twobase3 25002/tcp # icl-twobase3 [J_A_Sever] [J_A_Sever] +icl-twobase3 25002/udp # icl-twobase3 [J_A_Sever] [J_A_Sever] +icl-twobase4 25003/tcp # icl-twobase4 [J_A_Sever] [J_A_Sever] +icl-twobase4 25003/udp # icl-twobase4 [J_A_Sever] [J_A_Sever] +icl-twobase5 25004/tcp # icl-twobase5 [J_A_Sever] [J_A_Sever] +icl-twobase5 25004/udp # icl-twobase5 [J_A_Sever] [J_A_Sever] +icl-twobase6 25005/tcp # icl-twobase6 [J_A_Sever] [J_A_Sever] +icl-twobase6 25005/udp # icl-twobase6 [J_A_Sever] [J_A_Sever] +icl-twobase7 25006/tcp # icl-twobase7 [J_A_Sever] [J_A_Sever] +icl-twobase7 25006/udp # icl-twobase7 [J_A_Sever] [J_A_Sever] +icl-twobase8 25007/tcp # icl-twobase8 [J_A_Sever] [J_A_Sever] +icl-twobase8 25007/udp # icl-twobase8 [J_A_Sever] [J_A_Sever] +icl-twobase9 25008/tcp # icl-twobase9 [J_A_Sever] [J_A_Sever] +icl-twobase9 25008/udp # icl-twobase9 [J_A_Sever] [J_A_Sever] +icl-twobase10 25009/tcp # icl-twobase10 [J_A_Sever] [J_A_Sever] +icl-twobase10 25009/udp # icl-twobase10 [J_A_Sever] [J_A_Sever] +# 25010-25470 Unassigned +rna 25471/sctp # RNSAP User Adaptation for [Dario_S_Tonesi] [Dario_S_Tonesi] 2011-02-07 +# Iurh +# 25472-25575 Unassigned +sauterdongle 25576/tcp # Sauter Dongle [Christian_Brecht] [Christian_Brecht] 2010-12-15 +# 25576 udp Reserved +# 25577-25603 Unassigned +idtp 25604/tcp # Identifier Tracing Protocol [Huang_Neng-geng] [Huang_Neng-geng] 2011-08-09 +# 25604 udp Reserved +# 25605-25792 Unassigned +vocaltec-hos 25793/tcp # Vocaltec Address Server [Scott_Petrack] [Scott_Petrack] +vocaltec-hos 25793/udp # Vocaltec Address Server [Scott_Petrack] [Scott_Petrack] +# 25794-25899 Unassigned +tasp-net 25900/tcp # TASP Network Comm [Martin_Ellis] [Martin_Ellis] 2004-11 +tasp-net 25900/udp # TASP Network Comm [Martin_Ellis] [Martin_Ellis] 2004-11 +niobserver 25901/tcp # NIObserver [Roman_Oliynyk] [Roman_Oliynyk] +niobserver 25901/udp # NIObserver [Roman_Oliynyk] [Roman_Oliynyk] +nilinkanalyst 25902/tcp # NILinkAnalyst [Roman_Oliynyk_2] [Roman_Oliynyk_2] 2007-08-30 +nilinkanalyst 25902/udp # NILinkAnalyst [Roman_Oliynyk_2] [Roman_Oliynyk_2] 2007-08-30 +niprobe 25903/tcp # NIProbe [Roman_Oliynyk] [Roman_Oliynyk] +niprobe 25903/udp # NIProbe [Roman_Oliynyk] [Roman_Oliynyk] +# 25904-25953 Unassigned +bf-game 25954/udp # Bitfighter game server [Christopher_Eykamp] [Christopher_Eykamp] 2012-08-16 +# 25954 tcp Reserved +bf-master 25955/udp # Bitfighter master server [Christopher_Eykamp] [Christopher_Eykamp] 2012-08-16 +# 25955 tcp Reserved +# 25956-25999 Unassigned +quake 26000/tcp # quake [Yasunari_Gon_Yamasit] [Yasunari_Gon_Yamasit] +quake 26000/udp # quake [Yasunari_Gon_Yamasit] [Yasunari_Gon_Yamasit] +# 26001-26132 Unassigned +# Symbolic Computation +scscp 26133/tcp # Software Composability [Alexander_Konovalov] [Alexander_Konovalov] 2007-11-27 +scscp 26133/udp # Software Composability [Alexander_Konovalov] [Alexander_Konovalov] 2007-11-27 +# 26134-26207 Unassigned +wnn6-ds 26208/tcp # wnn6-ds [Yasunari_Gon_Yamasit] [Yasunari_Gon_Yamasit] +wnn6-ds 26208/udp # wnn6-ds [Yasunari_Gon_Yamasit] [Yasunari_Gon_Yamasit] +# 26209-26259 Unassigned +ezproxy 26260/tcp # eZproxy [Albert_C_Yang] [Albert_C_Yang] +ezproxy 26260/udp # eZproxy [Albert_C_Yang] [Albert_C_Yang] +ezmeeting 26261/tcp # eZmeeting [Albert_C_Yang] [Albert_C_Yang] +ezmeeting 26261/udp # eZmeeting [Albert_C_Yang] [Albert_C_Yang] +k3software-svr 26262/tcp # K3 Software-Server [Jim_Baldridge] [Jim_Baldridge] +k3software-svr 26262/udp # K3 Software-Server [Jim_Baldridge] [Jim_Baldridge] +k3software-cli 26263/tcp # K3 Software-Client [Jim_Baldridge] [Jim_Baldridge] +k3software-cli 26263/udp # K3 Software-Client [Jim_Baldridge] [Jim_Baldridge] +# 26264 De-registered 2006-04-06 +# 26265-26485 Unassigned +exoline-tcp 26486/tcp # EXOline-TCP [Lars_Mattsson] [Lars_Mattsson] 2008-12-24 +exoline-udp 26486/udp # EXOline-UDP [Lars_Mattsson] [Lars_Mattsson] 2008-12-24 +exoconfig 26487/tcp # EXOconfig [Urban_Fosseus] [Urban_Fosseus] 2008-12-24 +exoconfig 26487/udp # EXOconfig [Urban_Fosseus] [Urban_Fosseus] 2008-12-24 +# 26488 Unassigned +exonet 26489/tcp # EXOnet [Urban_Fosseus] [Urban_Fosseus] 2008-12-24 +exonet 26489/udp # EXOnet [Urban_Fosseus] [Urban_Fosseus] 2008-12-24 +# 26490-26999 Unassigned +# flex-lm 27000-27009 FLEX LM (1-10) [Daniel_Birns] [Daniel_Birns] +# Use Known on +# 27010-27344 Unassigned ports 27017, +# 27018 and +# 27019 +imagepump 27345/tcp # ImagePump [Richard_Minner] [Richard_Minner] +imagepump 27345/udp # ImagePump [Richard_Minner] [Richard_Minner] +# 27346-27441 Unassigned +jesmsjc 27442/tcp # Job controller service [Chris_Newman] [Chris_Newman] 2010-10-15 +jesmsjc 27442/udp # Job controller service [Chris_Newman] [Chris_Newman] 2010-10-15 +# 27443-27503 Unassigned +kopek-httphead 27504/tcp # Kopek HTTP Head Port [Sten_H_Danielsen] [Sten_H_Danielsen] 2002-07 +kopek-httphead 27504/udp # Kopek HTTP Head Port [Sten_H_Danielsen] [Sten_H_Danielsen] 2002-07 +# 27505-27781 Unassigned +ars-vista 27782/tcp # ARS VISTA Application [Spencer_Teran_2] [Spencer_Teran_2] 2004-11 +ars-vista 27782/udp # ARS VISTA Application [Spencer_Teran_2] [Spencer_Teran_2] 2004-11 +# 27783-27875 Unassigned +astrolink 27876/tcp # Astrolink Protocol [Alanax_Technologies_Inc] [Wesley_Eddy] 2013-01-14 +# 27876 udp Reserved +# 27877-27998 Unassigned +tw-auth-key 27999/tcp # TW Authentication/Key [Alex_Duncan_2] [Alex_Duncan_2] +# Distribution and +tw-auth-key 27999/udp # Attribute Certificate [Alex_Duncan_2] [Alex_Duncan_2] +nxlmd 28000/tcp # NX License Manager [Anthony_Greatorex] [Anthony_Greatorex] 2004-11 Use Known on +# port 28000 +nxlmd 28000/udp # NX License Manager [Anthony_Greatorex] [Anthony_Greatorex] 2004-11 +pqsp 28001/tcp # PQ Service [Peter_Laschtowitz] [Peter_Laschtowitz] 2009-09-15 +# 28001 udp Reserved +# 28002-28199 Unassigned ports 28017, +# 28018 and +# 28019 +voxelstorm 28200/tcp # VoxelStorm game server [VoxelStorm] [Eugene_Hopkinson] 2012-11-08 +voxelstorm 28200/udp # VoxelStorm game server [VoxelStorm] [Eugene_Hopkinson] 2012-11-08 +# 28201-28239 Unassigned +siemensgsm 28240/tcp # Siemens GSM [David_Anuszewski] [David_Anuszewski] 2004-11 +siemensgsm 28240/udp # Siemens GSM [David_Anuszewski] [David_Anuszewski] 2004-11 +# 28241-29117 Unassigned +# 29118 tcp Reserved +# 29118 udp Reserved +sgsap 29118/sctp # SGsAP in 3GPP [GPP_Specifications] [GPP_Specifications] 2009-06-11 +# 28119 tcp Reserved +a27-ran-ran 28119/udp # A27 cdma2000 RAN Management [ThreeGPP2] [Zhiming_Li] 2012-04-13 +# 28120-29166 Unassigned +otmp 29167/tcp # ObTools Message Protocol [Paul_Clark] [Paul_Clark] 2006-02 +otmp 29167/udp # ObTools Message Protocol [Paul_Clark] [Paul_Clark] 2006-02 +# 29168 tcp Reserved +# 29168 udp Reserved +sbcap 29168/sctp # SBcAP in 3GPP [GPP_Specifications] [GPP_Specifications] 2009-06-11 +iuhsctpassoc 29169/sctp # HNBAP and RUA Common [John_Meredith] [John_Meredith] 2009-09-08 +# Association +# 29170-29998 Unassigned +# data exchange protocol for +bingbang 29999/tcp # IEC61850 in wind power [DEIF_AS] [Armin_Solies] 2012-10-15 +# plants +# 29999 udp Reserved +ndmps 30000/tcp # Secure Network Data [Alioune_Thiam] [Alioune_Thiam] 2013-02-05 +# 30000 udp Reserved +pago-services1 30001/tcp # Pago Services 1 [Balduin_Mueller_Plat] [Balduin_Mueller_Plat] 2002-03 +pago-services1 30001/udp # Pago Services 1 [Balduin_Mueller_Plat] [Balduin_Mueller_Plat] 2002-03 +pago-services2 30002/tcp # Pago Services 2 [Balduin_Mueller_Plat] [Balduin_Mueller_Plat] 2002-03 +pago-services2 30002/udp # Pago Services 2 [Balduin_Mueller_Plat] [Balduin_Mueller_Plat] 2002-03 +# 30003-30259 Unassigned +kingdomsonline 30260/tcp # Kingdoms Online [Drake_Bankston] [Drake_Bankston] 2009-08-18 +# (CraigAvenue) +kingdomsonline 30260/udp # Kingdoms Online [Drake_Bankston] [Drake_Bankston] 2009-08-18 +# 30261-30998 Unassigned +ovobs 30999/tcp # OpenView Service Desk Client [Service_Desk_Product] [Service_Desk_Product] 2006-05 +ovobs 30999/udp # OpenView Service Desk Client [Service_Desk_Product] [Service_Desk_Product] 2006-05 +# 31000-31019 Unassigned +autotrac-acp 31020/tcp # Autotrac ACP 245 [Roberto_Jorge_Dino] [Roberto_Jorge_Dino] +# 31020 udp Reserved +# 31021-31028 Unassigned +# 31029 tcp Reserved +yawn 31029/udp # YaWN - Yet Another Windows [David_Spivey] [David_Spivey] 2010-08-30 +# 31030-31415 Unassigned +xqosd 31416/tcp # XQoS network monitor [Joe_Elliott] [Joe_Elliott] 2002-06 +xqosd 31416/udp # XQoS network monitor [Joe_Elliott] [Joe_Elliott] 2002-06 +# 31417-31456 Unassigned +tetrinet 31457/tcp # TetriNET Protocol [Emmanuel_Bourg] [Emmanuel_Bourg] 2004-11 +tetrinet 31457/udp # TetriNET Protocol [Emmanuel_Bourg] [Emmanuel_Bourg] 2004-11 +# 31458-31619 Unassigned +lm-mon 31620/tcp # lm mon [System_Administrator] [System_Administrator] 2003-06 +lm-mon 31620/udp # lm mon [System_Administrator] [System_Administrator] 2003-06 +# 31621-31684 Unassigned +# DS Expert Monitor +# +dsx-monitor 31685/tcp # IANA assigned this [John_Lowery] [John_Lowery] 2008-08-21 +# "dsx_monitor". +# This entry is an alias to "dsx-monitor". This entry is now +dsx_monitor 31685/tcp # DS Expert Monitor [John_Lowery] [John_Lowery] 2008-08-21 historic, not usable for use with many common service +# 31685 udp Reserved +# 31686-31764 Unassigned +gamesmith-port 31765/tcp # GameSmith Port [Randy_Thompson] [Randy_Thompson] 2002-08 +gamesmith-port 31765/udp # GameSmith Port [Randy_Thompson] [Randy_Thompson] 2002-08 +# 31766-31947 Unassigned +# Embedded Device +# Configuration Protocol TX +# +iceedcp-tx 31948/tcp # IANA assigned this [Oliver_Lewis] [Oliver_Lewis] 2006-08 +# "iceedcp_tx". +# Embedded Device This entry is an alias to "iceedcp-tx". This entry is now +iceedcp_tx 31948/tcp # Configuration Protocol TX [Oliver_Lewis] [Oliver_Lewis] 2006-08 historic, not usable for use with many common service +# +iceedcp-tx 31948/udp # IANA assigned this [Oliver_Lewis] [Oliver_Lewis] 2006-08 +iceedcp_tx 31948/udp # Configuration Protocol TX [Oliver_Lewis] [Oliver_Lewis] 2006-08 historic, not usable for use with many common service +# Configuration Protocol RX +# +iceedcp-rx 31949/tcp # IANA assigned this [Oliver_Lewis] [Oliver_Lewis] 2006-08 +# "iceedcp_rx". +# Embedded Device This entry is an alias to "iceedcp-rx". This entry is now +iceedcp_rx 31949/tcp # Configuration Protocol RX [Oliver_Lewis] [Oliver_Lewis] 2006-08 historic, not usable for use with many common service +# +iceedcp-rx 31949/udp # IANA assigned this [Oliver_Lewis] [Oliver_Lewis] 2006-08 +iceedcp_rx 31949/udp # Configuration Protocol RX [Oliver_Lewis] [Oliver_Lewis] 2006-08 historic, not usable for use with many common service +# 31950-32248 Unassigned +iracinghelper 32034/tcp # iRacing helper service [Randy_Cassidy] [Randy_Cassidy] 2007-08-30 +iracinghelper 32034/udp # iRacing helper service [Randy_Cassidy] [Randy_Cassidy] 2007-08-30 +t1distproc60 32249/tcp # T1 Distributed Processor [Peter_Beahan] [Peter_Beahan] 2004-11 +t1distproc60 32249/udp # T1 Distributed Processor [Peter_Beahan] [Peter_Beahan] 2004-11 +# 32250-32482 Unassigned +apm-link 32483/tcp # Access Point Manager Link [Tony_Diodato] [Tony_Diodato] 2005-08 +apm-link 32483/udp # Access Point Manager Link [Tony_Diodato] [Tony_Diodato] 2005-08 +# 32484-32634 Unassigned +sec-ntb-clnt 32635/tcp # SecureNotebook-CLNT [Eric_Cantineau] [Eric_Cantineau] 2004-11 +sec-ntb-clnt 32635/udp # SecureNotebook-CLNT [Eric_Cantineau] [Eric_Cantineau] 2004-11 +DMExpress 32636/tcp # DMExpress [Arnie_Farrelly] [Arnie_Farrelly] +DMExpress 32636/udp # DMExpress [Arnie_Farrelly] [Arnie_Farrelly] +# 32637-32766 Unassigned +filenet-powsrm 32767/tcp # FileNet BPM [Chris_Adkins] [Chris_Adkins] 2006-08 +# WS-ReliableMessaging Client +filenet-powsrm 32767/udp # FileNet BPM [Chris_Adkins] [Chris_Adkins] 2006-08 +filenet-tms 32768/tcp # Filenet TMS [Daniel_Whelan] [Daniel_Whelan] +filenet-tms 32768/udp # Filenet TMS [Daniel_Whelan] [Daniel_Whelan] +filenet-rpc 32769/tcp # Filenet RPC [Daniel_Whelan] [Daniel_Whelan] +filenet-rpc 32769/udp # Filenet RPC [Daniel_Whelan] [Daniel_Whelan] +filenet-nch 32770/tcp # Filenet NCH [Daniel_Whelan] [Daniel_Whelan] +filenet-nch 32770/udp # Filenet NCH [Daniel_Whelan] [Daniel_Whelan] +filenet-rmi 32771/tcp # FileNET RMI [Chris_Adkins] [Chris_Adkins] +filenet-rmi 32771/udp # FileNet RMI [Chris_Adkins] [Chris_Adkins] +filenet-pa 32772/tcp # FileNET Process Analyzer [Chris_Adkins] [Chris_Adkins] 2003-01 +filenet-pa 32772/udp # FileNET Process Analyzer [Chris_Adkins] [Chris_Adkins] 2003-01 +filenet-cm 32773/tcp # FileNET Component Manager [Chris_Adkins] [Chris_Adkins] 2003-08 +filenet-cm 32773/udp # FileNET Component Manager [Chris_Adkins] [Chris_Adkins] 2003-08 +filenet-re 32774/tcp # FileNET Rules Engine [Chris_Adkins] [Chris_Adkins] 2003-08 +filenet-re 32774/udp # FileNET Rules Engine [Chris_Adkins] [Chris_Adkins] 2003-08 +filenet-pch 32775/tcp # Performance Clearinghouse [Tim_Morgan_2] [Tim_Morgan_2] 2005-11 +filenet-pch 32775/udp # Performance Clearinghouse [Tim_Morgan_2] [Tim_Morgan_2] 2005-11 +filenet-peior 32776/tcp # FileNET BPM IOR [Chris_Adkins] [Chris_Adkins] 2006-05 +filenet-peior 32776/udp # FileNET BPM IOR [Chris_Adkins] [Chris_Adkins] 2006-05 +filenet-obrok 32777/tcp # FileNet BPM CORBA [Chris_Adkins] [Chris_Adkins] 2006-10 +filenet-obrok 32777/udp # FileNet BPM CORBA [Chris_Adkins] [Chris_Adkins] 2006-10 +# 32778-32800 Unassigned +mlsn 32801/tcp # Multiple Listing Service [Corey_Leong] [Corey_Leong] 2010-10-11 +mlsn 32801/udp # Multiple Listing Service [Corey_Leong] [Corey_Leong] 2010-10-11 +# 32802-32810 Unassigned +retp 32811/tcp # Real Estate Transport [Corey_Leong] [Corey_Leong] 2010-10-11 +# 32811 udp Reserved +# 32812-32895 Unassigned +idmgratm 32896/tcp # Attachmate ID Manager [George_Gianelos_2] [George_Gianelos_2] 2003-03 +idmgratm 32896/udp # Attachmate ID Manager [George_Gianelos_2] [George_Gianelos_2] 2003-03 +# 32897-33122 Unassigned +aurora-balaena 33123/tcp # Aurora (Balaena Ltd) [Andrew_Mather] [Andrew_Mather] 2008-02-14 +aurora-balaena 33123/udp # Aurora (Balaena Ltd) [Andrew_Mather] [Andrew_Mather] 2008-02-14 +# 33124-33330 Unassigned +diamondport 33331/tcp # DiamondCentral Interface [Edward_Browdy] [Edward_Browdy] 2002-07 +diamondport 33331/udp # DiamondCentral Interface [Edward_Browdy] [Edward_Browdy] 2002-07 +# 33332 Unassigned +dgi-serv 33333/tcp # Digital Gaslight Service [George_Flanagin] [George_Flanagin] 2010-03-02 +# 33333 udp Reserved +speedtrace 33334/tcp # SpeedTrace TraceAgent [Holger_Heinrich] [Holger_Heinrich] 2012-02-01 +speedtrace-disc 33334/udp # SpeedTrace TraceAgent [Holger_Heinrich] [Holger_Heinrich] 2012-02-01 +# 33335-33433 Unassigned +traceroute 33434/tcp # traceroute use [IANA] [IANA] +traceroute 33434/udp # traceroute use [IANA] [IANA] +# 33435-33655 Unassigned +snip-slave 33656/tcp # SNIP Slave [Dr_Chris_Tucker] [Dr_Chris_Tucker] 2005-08 +snip-slave 33656/udp # SNIP Slave [Dr_Chris_Tucker] [Dr_Chris_Tucker] 2005-08 +# 33657-34248 Unassigned +turbonote-2 34249/tcp # TurboNote Relay Server [Peter_Hyde] [Peter_Hyde] +# Default Port +turbonote-2 34249/udp # TurboNote Relay Server [Peter_Hyde] [Peter_Hyde] +# 34250-34377 Unassigned +p-net-local 34378/tcp # P-Net on IP local [Kurt_Nissen] [Kurt_Nissen] 2004-02 +p-net-local 34378/udp # P-Net on IP local [Kurt_Nissen] [Kurt_Nissen] 2004-02 +p-net-remote 34379/tcp # P-Net on IP remote [Kurt_Nissen] [Kurt_Nissen] 2004-02 +p-net-remote 34379/udp # P-Net on IP remote [Kurt_Nissen] [Kurt_Nissen] 2004-02 +# 34380-34566 Unassigned +dhanalakshmi 34567/tcp # dhanalakshmi.org EDI Service [Girish_Gopalakrishna] [Girish_Gopalakrishna] 2010-04-20 +# 34567 udp Reserved +# 34568-34961 Unassigned +profinet-rt 34962/tcp # PROFInet RT Unicast [Peter_Wenzel] [Peter_Wenzel] 2004-11 +profinet-rt 34962/udp # PROFInet RT Unicast [Peter_Wenzel] [Peter_Wenzel] 2004-11 +profinet-rtm 34963/tcp # PROFInet RT Multicast [Peter_Wenzel] [Peter_Wenzel] 2004-11 +profinet-rtm 34963/udp # PROFInet RT Multicast [Peter_Wenzel] [Peter_Wenzel] 2004-11 +profinet-cm 34964/tcp # PROFInet Context Manager [Peter_Wenzel] [Peter_Wenzel] 2004-11 +profinet-cm 34964/udp # PROFInet Context Manager [Peter_Wenzel] [Peter_Wenzel] 2004-11 +# 34965-34979 Unassigned +ethercat 34980/tcp # EtherCAT Port [Martin_Rostan] [Martin_Rostan] 2003-11 +ethercat 34980/udp # EhterCAT Port [Martin_Rostan] [Martin_Rostan] 2003-11 +# 34981-35353 Unassigned +kitim 35354/tcp # KIT Messenger [Rudi_Visser] [Rudi_Visser] 2011-07-07 +# 35354 udp Reserved +altova-lm 35355/tcp # Altova License Management [Alexander_Falk_2] [Alexander_Falk_2] 2011-07-07 +altova-lm-disc 35355/udp # Altova License Management [Alexander_Falk_2] [Alexander_Falk_2] 2011-07-07 +guttersnex 35356/tcp # Gutters Note Exchange [Squee_Application_Development] [Tristan_Seifert_2] 2011-07-19 +# 35356 udp Reserved +openstack-id 35357/tcp # OpenStack ID Service [Rackspace_Hosting] [Ziad_Sawalha] 2011-08-15 +# 35357 udp Reserved +# 35358-36000 Unassigned +allpeers 36001/tcp # AllPeers Network [Cedric_Maloux] [Cedric_Maloux] 2007-04 +allpeers 36001/udp # AllPeers Network [Cedric_Maloux] [Cedric_Maloux] 2007-04 +# 36002-36411 Unassigned +# 36412 tcp Reserved +# 36412 udp Reserved +s1-control 36412/sctp # S1-Control Plane (3GPP) [Kimmo_Kymalainen] [Kimmo_Kymalainen] 2009-09-01 +# 36413-36421 Unassigned +# 36422 tcp Reserved +# 36422 udp Reserved +x2-control 36422/sctp # X2-Control Plane (3GPP) [Kimmo_Kymalainen] [Kimmo_Kymalainen] 2009-09-01 +# 36423-36442 Unassigned +m2ap 36443/sctp # M2 Application Part [Dario_S_Tonesi] [Dario_S_Tonesi] 2011-02-07 +m3ap 36444/sctp # M3 Application Part [Dario_S_Tonesi] [Dario_S_Tonesi] 2011-02-07 +# 36445-36523 Unassigned +febooti-aw 36524/tcp # Febooti Automation Workshop [Maris_Bormanis] [Maris_Bormanis] 2011-06-10 +# 36524 udp Reserved +# 36525-36864 Unassigned +kastenxpipe 36865/tcp # KastenX Pipe [Guy_Cheng] [Guy_Cheng] +kastenxpipe 36865/udp # KastenX Pipe [Guy_Cheng] [Guy_Cheng] +# 36866-37474 Unassigned +neckar 37475/tcp # science + computing's Venus [Ralf_Allrutz] [Ralf_Allrutz] 2002-02 +# Administration Port +neckar 37475/udp # science + computing's Venus [Ralf_Allrutz] [Ralf_Allrutz] 2002-02 +# 37476-37482 Unassigned +gdrive-sync 37483/tcp # Google Drive Sync [Google] [Fil_Zembowicz] 2013-02-01 +# 37483 udp Reserved +# 37484-37653 Unassigned +unisys-eportal 37654/tcp # Unisys ClearPath ePortal [Sung_U_Ro] [Sung_U_Ro] 2006-01 +unisys-eportal 37654/udp # Unisys ClearPath ePortal [Sung_U_Ro] [Sung_U_Ro] 2006-01 +# 37655-38200 Unassigned +galaxy7-data 38201/tcp # Galaxy7 Data Tunnel [Tatham_Oddie] [Tatham_Oddie] 2002-09 +galaxy7-data 38201/udp # Galaxy7 Data Tunnel [Tatham_Oddie] [Tatham_Oddie] 2002-09 +fairview 38202/tcp # Fairview Message Service [Jim_Lyle] [Jim_Lyle] 2005-11 Defined TXT keys: DevID=, DevType=, +# DevStat= +fairview 38202/udp # Fairview Message Service [Jim_Lyle] [Jim_Lyle] 2005-11 Defined TXT keys: DevID=, DevType=, +agpolicy 38203/tcp # AppGate Policy Server [Martin_Forssen] [Martin_Forssen] 2004-11 +agpolicy 38203/udp # AppGate Policy Server [Martin_Forssen] [Martin_Forssen] 2004-11 +# 38204-38799 Unassigned +# Sruth is a service for the +# distribution of routinely- +# generated but arbitrary +# files based on a +sruth 38800/tcp # publish/subscribe [University_Corporation_for_Atmospheric_Research] [Steven_Emmerson] 2012-05-07 +# distribution model and +# implemented using a +# peer-to-peer transport +# mechanism +# 38800 udp Reserved +# 38801-38864 Unassigned +# Security approval process +secrmmsafecopya 38865/tcp # for use of the secRMM [Squadra_Technologies] [Anthony_LaMark] 2012-03-14 +# SafeCopy program +# 38865 udp Reserved +# 38866-39680 Unassigned +turbonote-1 39681/tcp # TurboNote Default Port [Peter_Hyde] [Peter_Hyde] +turbonote-1 39681/udp # TurboNote Default Port [Peter_Hyde] [Peter_Hyde] +# 39682-39999 Unassigned +safetynetp 40000/tcp # SafetyNET p [Roland_Rupp] [Roland_Rupp] 2006-11 +safetynetp 40000/udp # SafetyNET p [Roland_Rupp] [Roland_Rupp] 2006-11 +# 40001-40840 Unassigned +cscp 40841/tcp # CSCP [Michael_Dodge] [Michael_Dodge] +cscp 40841/udp # CSCP [Michael_Dodge] [Michael_Dodge] +csccredir 40842/tcp # CSCCREDIR [Sudhir_Menon] [Sudhir_Menon] +csccredir 40842/udp # CSCCREDIR [Sudhir_Menon] [Sudhir_Menon] +csccfirewall 40843/tcp # CSCCFIREWALL [Sudhir_Menon] [Sudhir_Menon] +csccfirewall 40843/udp # CSCCFIREWALL [Sudhir_Menon] [Sudhir_Menon] +# 40844-40852 Unassigned +# 40853 tcp Reserved +ortec-disc 40853/udp # ORTEC Service Discovery [Jesse_Ursery] [Jesse_Ursery] 2010-11-22 +# 40854-41110 Unassigned +fs-qos 41111/tcp # Foursticks QoS Protocol [Chee_Kent_Lam] [Chee_Kent_Lam] 2002-04 +fs-qos 41111/udp # Foursticks QoS Protocol [Chee_Kent_Lam] [Chee_Kent_Lam] 2002-04 +# 41112-41120 Unassigned +tentacle 41121/tcp # Tentacle Server [Sancho_Lerena] [Sancho_Lerena] 2009-06-02 +# 41121 udp Reserved +# 41122-41793 Unassigned +crestron-cip 41794/tcp # Crestron Control Port [Ed_Ranney] [Ed_Ranney] 2003-01 +crestron-cip 41794/udp # Crestron Control Port [Ed_Ranney] [Ed_Ranney] 2003-01 +crestron-ctp 41795/tcp # Crestron Terminal Port [Ed_Ranney] [Ed_Ranney] 2003-01 +crestron-ctp 41795/udp # Crestron Terminal Port [Ed_Ranney] [Ed_Ranney] 2003-01 +crestron-cips 41796/tcp # Crestron Secure Control Port [Crestron_Electronics] [Manish_Talreja] 2012-06-27 +# 41796 udp Reserved +crestron-ctps 41797/tcp # Crestron Secure Terminal [Crestron_Electronics] [Manish_Talreja] 2012-06-27 +# 41797 udp Reserved +# 41798-42507 Unassigned Use Known on +# port 42000 +candp 42508/tcp # Computer Associates network [Jon_Press] [Jon_Press] 2005-09 +# discovery protocol +candp 42508/udp # Computer Associates network [Jon_Press] [Jon_Press] 2005-09 +candrp 42509/tcp # CA discovery response [Jon_Press] [Jon_Press] 2005-08 +candrp 42509/udp # CA discovery response [Jon_Press] [Jon_Press] 2005-08 +caerpc 42510/tcp # CA eTrust RPC [Jon_Press] [Jon_Press] 2005-08 +caerpc 42510/udp # CA eTrust RPC [Jon_Press] [Jon_Press] 2005-08 +# 42511-42999 Unassigned +recvr-rc 43000/tcp # Receiver Remote Control [Research_Electronics_International] [Ross_Binkley] 2012-12-20 +recvr-rc-disc 43000/udp # Receiver Remote Control [Research_Electronics_International] [Ross_Binkley] 2012-12-20 +# 43001-43187 Unassigned +reachout 43188/tcp # REACHOUT [Roman_Kriis] [Roman_Kriis] +reachout 43188/udp # REACHOUT [Roman_Kriis] [Roman_Kriis] +ndm-agent-port 43189/tcp # NDM-AGENT-PORT [Roman_Kriis] [Roman_Kriis] +ndm-agent-port 43189/udp # NDM-AGENT-PORT [Roman_Kriis] [Roman_Kriis] +ip-provision 43190/tcp # IP-PROVISION [Roman_Kriis] [Roman_Kriis] +ip-provision 43190/udp # IP-PROVISION [Roman_Kriis] [Roman_Kriis] +noit-transport 43191/tcp # Reconnoiter Agent Data [Theo_Schlossnagle] [Theo_Schlossnagle] 2009-05-19 +# 43191 udp Reserved +# 43192-43209 Unassigned +shaperai 43210/tcp # Shaper Automation Server [Shaper_Automation] [Yohann_Sulaiman] 2012-06-22 +shaperai-disc 43210/udp # Shaper Automation Server [Shaper_Automation] [Yohann_Sulaiman] 2012-06-22 +# Management Discovery +# 43211-43438 Unassigned +eq3-update 43439/tcp # EQ3 firmware update [eQ-3_AG] [Falk_Werner] 2012-02-10 +eq3-config 43439/udp # EQ3 discovery and [eQ-3_AG] [Falk_Werner] 2012-02-10 +# configuration +ew-mgmt 43440/tcp # Cisco EnergyWise Management +ew-disc-cmd 43440/udp # Cisco EnergyWise Discovery [John_Parello] [John_Parello] 2009-05-19 +# and Command Flooding +ciscocsdb 43441/tcp # Cisco NetMgmt DB Ports [Cisco_Systems] [Cisco_Systems] 2005-11 +ciscocsdb 43441/udp # Cisco NetMgmt DB Ports [Cisco_Systems] [Cisco_Systems] 2005-11 +# 43442-44122 Unassigned +z-wave-s 44123/tcp # Z-Wave Secure Tunnel [Sigma_Designs_Inc] [Anders_Brandt_3] 2012-10-12 +# 44123 udp Reserved +# 43124-44320 Unassigned +pmcd 44321/tcp # PCP server (pmcd) [Ken_McDonell] [Ken_McDonell] 2010-12-20 +pmcd 44321/udp # PCP server (pmcd) [Ken_McDonell] [Ken_McDonell] 2010-12-20 +pmcdproxy 44322/tcp # PCP server (pmcd) proxy [Ken_McDonell] [Ken_McDonell] 2003-07 2010-12-20 +pmcdproxy 44322/udp # PCP server (pmcd) proxy [Ken_McDonell] [Ken_McDonell] 2003-07 2010-12-20 +# 44323 tcp Unassigned +# 44323 udp Unassigned "pcp" assignment withdrawn, moved to port 5351 per +# RFC-ietf-pcp-base-29 +# USE: Ports +# 44324-44443 Unassigned 44515 & 44516 +# used by NI +# Device +cognex-dataman 44444/tcp # Cognex DataMan Management [Cognex] [Mario_Joussen] 2012-08-28 +# 44444 udp Reserved +# 44445-44543 Unassigned 44515 & 44516 +# 44544 tcp Reserved +domiq 44544/udp # DOMIQ Building Automation [DOMIQ_Sp_zoo] [Filip_Zawadiak] 2011-08-29 +# 44545-44552 Unassigned +rbr-debug 44553/tcp # REALbasic Remote Debug [Aaron_Ballman] [Aaron_Ballman] 2004-11 +rbr-debug 44553/udp # REALbasic Remote Debug [Aaron_Ballman] [Aaron_Ballman] 2004-11 +# 44554-44599 Unassigned +# 44600 tcp Reserved +asihpi 44600/udp # AudioScience HPI [Eliot_Blennerhassett] [Eliot_Blennerhassett] 2011-07-07 +# 44601-44817 Unassigned +# EtherNet/IP messaging +# +EtherNet-IP-2 44818/tcp # IANA assigned this [Brian_Batke_2] [Brian_Batke_2] New contact added for port 44818 on 2008-02-01 +# "EtherNet/IP-2". +# New contact added for port 44818 on 2008-02-01 This entry is +EtherNet/IP-2 44818/tcp # EtherNet/IP messaging [Brian_Batke_2] [Brian_Batke_2] an alias to "EtherNet-IP-2". This entry is now historic, not +# +EtherNet-IP-2 44818/udp # IANA assigned this [Brian_Batke_2] [Brian_Batke_2] New contact added for port 44818 on 2008-02-01 +EtherNet/IP-2 44818/udp # EtherNet/IP messaging [Brian_Batke_2] [Brian_Batke_2] an alias to "EtherNet-IP-2". This entry is now historic, not +# 44819-44999 Unassigned +# NSi AutoStore Status +asmp 45000/tcp # Monitoring Protocol data [Notable_Solutions_Inc] [Andrew_Andrews] 2011-09-01 +asmp-mon 45000/udp # Monitoring Protocol device [Notable_Solutions_Inc] [Andrew_Andrews] 2011-09-01 +# monitoring +asmps 45001/tcp # Monitoring Protocol secure [Notable_Solutions_Inc] [Andrew_Andrews] 2011-09-01 +# data transfer +# 45001 udp Reserved +# 45002-45053 Unassigned +invision-ag 45054/tcp # InVision AG [Matthias_Schroer] [Matthias_Schroer] +invision-ag 45054/udp # InVision AG [Matthias_Schroer] [Matthias_Schroer] +# 45055-45677 Unassigned +eba 45678/tcp # EBA PRISE [Patrick_Kara] [Patrick_Kara] +eba 45678/udp # EBA PRISE [Patrick_Kara] [Patrick_Kara] +# 45679-45823 Unassigned +dai-shell 45824/tcp # Server for the DAI family of [Data_Access_Inc] [Adam_Robinson] 2012-04-30 +# client-server products +# 45824 udp Reserved +qdb2service 45825/tcp # Qpuncture Data Access [Michael_Yun] [Michael_Yun] 2007-10-24 +qdb2service 45825/udp # Qpuncture Data Access [Michael_Yun] [Michael_Yun] 2007-10-24 +# 45826-45965 Unassigned +ssr-servermgr 45966/tcp # SSRServerMgr [Jeremy_Gilliat] [Jeremy_Gilliat] +ssr-servermgr 45966/udp # SSRServerMgr [Jeremy_Gilliat] [Jeremy_Gilliat] +# 45967-46997 Unassigned +# Connection between a desktop +sp-remotetablet 46998/tcp # computer or server and a [SOFTPRO_GmbH] [Nils_Durner] 2012-07-19 +# signature tablet to capture +# handwritten signatures +# 46998 udp Reserved +mediabox 46999/tcp # MediaBox Server [Alexander_Graef] [Alexander_Graef] 2004-11 +mediabox 46999/udp # MediaBox Server [Alexander_Graef] [Alexander_Graef] 2004-11 +mbus 47000/tcp # Message Bus [Dirk_Kutscher] [Dirk_Kutscher] +mbus 47000/udp # Message Bus [Dirk_Kutscher] [Dirk_Kutscher] +winrm 47001/tcp # Windows Remote Management [Ryan_Mack] [Ryan_Mack] 2009-04-29 +# 47001 udp Reserved +# 47002-47099 Unassigned +# Configuration of motors +jvl-mactalk 47100/udp # connected to Industrial [JVL_Industri_Elektronik] [Kim_Berthelsen] 2012-12-21 +# Ethernet +# 47100 tcp Reserved +# 47101-47556 Unassigned +dbbrowse 47557/tcp # Databeam Corporation [Cindy_Martin] [Cindy_Martin] +dbbrowse 47557/udp # Databeam Corporation [Cindy_Martin] [Cindy_Martin] +# 47558-47623 Unassigned +directplaysrvr 47624/tcp # Direct Play Server [Ajay_Jindal] [Ajay_Jindal] +directplaysrvr 47624/udp # Direct Play Server [Ajay_Jindal] [Ajay_Jindal] +# 47625-47805 Unassigned +ap 47806/tcp # ALC Protocol [Dave_Robin] [Dave_Robin] +ap 47806/udp # ALC Protocol [Dave_Robin] [Dave_Robin] +# 47807 Unassigned +bacnet 47808/tcp # Building Automation and [Coleman_Brumley] [Coleman_Brumley] 2011-02-10 +# Control Networks +bacnet 47808/udp # Building Automation and [Coleman_Brumley] [Coleman_Brumley] 2011-02-10 +# 47809-47999 Unassigned +nimcontroller 48000/tcp # Nimbus Controller [Carstein_Seeberg_2] [Carstein_Seeberg_2] +nimcontroller 48000/udp # Nimbus Controller [Carstein_Seeberg_2] [Carstein_Seeberg_2] +nimspooler 48001/tcp # Nimbus Spooler [Carstein_Seeberg_2] [Carstein_Seeberg_2] +nimspooler 48001/udp # Nimbus Spooler [Carstein_Seeberg_2] [Carstein_Seeberg_2] +nimhub 48002/tcp # Nimbus Hub [Carstein_Seeberg_2] [Carstein_Seeberg_2] +nimhub 48002/udp # Nimbus Hub [Carstein_Seeberg_2] [Carstein_Seeberg_2] +nimgtw 48003/tcp # Nimbus Gateway [Carstein_Seeberg_2] [Carstein_Seeberg_2] +nimgtw 48003/udp # Nimbus Gateway [Carstein_Seeberg_2] [Carstein_Seeberg_2] +nimbusdb 48004/tcp # NimbusDB Connector [Stephen_Harrison] [Stephen_Harrison] 2011-01-24 +# 48004 udp Reserved +nimbusdbctrl 48005/tcp # NimbusDB Control [Stephen_Harrison] [Stephen_Harrison] 2011-01-24 +# 48005 udp Reserved +# 48006-48048 Unassigned +3gpp-cbsp 48049/tcp # 3GPP Cell Broadcast Service [Gert_Thomasen] [Gert_Thomasen] 2009-12-07 +# 48049 udp Reserved +# 48050-48127 Unassigned +isnetserv 48128/tcp # Image Systems Network [Bengt_Gustafsson] [Bengt_Gustafsson] 2006-05 +isnetserv 48128/udp # Image Systems Network [Bengt_Gustafsson] [Bengt_Gustafsson] 2006-05 +blp5 48129/tcp # Bloomberg locator [Albert_Hou] [Albert_Hou] 2006-05 +blp5 48129/udp # Bloomberg locator [Albert_Hou] [Albert_Hou] 2006-05 +# 48130-48555 Unassigned +com-bardac-dw 48556/tcp # com-bardac-dw [Nicholas_J_Howes] [Nicholas_J_Howes] +com-bardac-dw 48556/udp # com-bardac-dw [Nicholas_J_Howes] [Nicholas_J_Howes] +# 48557-48618 Unassigned +iqobject 48619/tcp # iqobject [Bjorn_de_Bonnenfant] [Bjorn_de_Bonnenfant] 2003-11 +iqobject 48619/udp # iqobject [Bjorn_de_Bonnenfant] [Bjorn_de_Bonnenfant] 2003-11 +# 48620-48999 Unassigned +matahari 49000/tcp # Matahari Broker [Matahari_Project] [Zane_Bitter] 2011-08-31 +# 49000 udp Reserved +# 49001-49150 Unassigned +# 49151 IANA Reserved +# argus ARGUS Protocol +# arp Address Resolution Protocol +# bbn-rcc-mon BBN RCC Monitoring +# bootp Bootstrap Protocol +# br-sat-mon Backroom SATNET Monitoring +# cftp CFTP +# chaos CHAOS Protocol +# clock DCNET Time Server Protocol +# cmot Common Mgmnt Info Ser and +# Prot over TCP/IP +# cookie-jar Authentication Scheme +# dcn-meas DCN Measurement Subsystems +# dgp Dissimilar Gateway Protocol +# dmf-mail Digest Message Format for +# Mail +# egp Exterior Gateway Protocol +# ehf-mail Encoding Header Field for +# emcon Emission Control Protocol +# fconfig Fujitsu Config Protocol +# ggp Gateway Gateway Protocol +# hmp Host Monitoring Protocol +# host2-ns Host2 Name Server +# icmp Internet Control Message +# igmp Internet Group Management +# igp Interior Gateway Protocol +# imap2 Interim Mail Access Protocol +# version 2 +# ip Internet Protocol +# ipcu Internet Packet Core Utility +# ippc Internet Pluribus Packet +# Core +# ip-arc Internet Protocol on ARCNET +# ip-arpa Internet Protocol on ARPANET +# ip-cmprs Compressing TCP/IP Headers +# ip-dc Internet Protocol on DC +# Networks +# ip-dvmrp Distance Vector Multicast +# Routing Protocol +# ip-e Internet Protocol on +# Ethernet Networks +# ip-ee Internet Protocol on Exp. +# Ethernet Nets +# ip-fddi Transmission of IP over FDDI +# ip-hc Internet Protocol on +# Hyperchannnel +# ip-ieee Internet Protocol on IEEE +# 802 +# ip-ipx Transmission of 802.2 over +# IPX Networks +# ip-mtu IP MTU Discovery Options +# ip-netbios Internet Protocol over +# NetBIOS Networks +# ip-slip Transmission of IP over +# Serial Lines +# ip-wb Internet Protocol on +# Wideband Network +# ip-x25 Internet Protocol on X.25 +# irtp Internet Reliable +# iso-tp4 ISO Transport Protocol Class +# larp Locus Address Resoultion +# leaf-1 Leaf-1 Protocol +# leaf-2 Leaf-2 Protocol +# loc-srv Location Service +# mail Format of Electronic Mail +# merit-inp MERIT Internodal Protocol +# mib Management Information Base +# mihcs MIH Command Services [RFC5679] +# mihes MIH Event Services [RFC5679] +# mihis MIH Information Services [RFC5679] +# mfe-nsp MFE Network Services +# mit-subnet MIT Subnet Support +# mux Multiplexing Protocol +# netblt Bulk Data Transfer Protocol +# neted Network Standard Text Editor +# netrjs Remote Job Service +# nfile A File Access Protocol +# nvp-ii Network Voice Protocol +# ospf Open Shortest Path First +# Interior GW Protocol +# pcmail Pcmail Transport Protocol +# ppp Point-to-Point Protocol +# prm Packet Radio Measurement +# pup PUP Protocol +# quote Quote of the Day Protocol +# rarp A Reverse Address Resolution +# ratp Reliable Asynchronous +# rdp Reliable Data Protocol +# rip Routing Information Protocol +# rvd Remote Virtual Disk Protocol +# sat-expak Satnet and Backroom EXPAK +# sat-mon SATNET Monitoring +# smi Structure of Management +# Information +# stp Stream Protocol +# sun-rpc SUN Remote Procedure Call +# tcp Transmission Control +# tcp-aco TCP Alternate Checksum +# Option +# thinwire Thinwire Protocol +# tp-tcp ISO Transport Service on top +# of the TCP +# trunk-1 Trunk-1 Protocol +# trunk-2 Trunk-2 Protocol +# ucl University College London +# udp User Datagram Protocol +# users Active Users Protocol +# via-ftp VIA Systems-File Transfer +# visa VISA Protocol +# vmtp Versatile Message +# wb-expak Wideband EXPAK +# wb-mon Wideband Monitoring +# xnet Cross Net Debugger +# xns-idp Xerox NS IDP +# 1Password Password Manager +# 1password data sharing and [Roustem_Karimov] [Roustem_Karimov] Defined TXT keys: None +# synchronization protocol +# a-d-sync Altos Design Synchronization [David_Lasker] [David_Lasker] Defined TXT keys: None +# Applied Biosystems Universal Defined TXT keys: product= +# abi-instrument Instrument Framework [Tor_Slettnes] [Tor_Slettnes] description= version= +# accessdata-f2d FTK2 Database Discovery [Rick_Russell] [Rick_Russell] Defined TXT keys: Proprietary +# accessdata-f2w FTK2 Backend Processing [Rick_Russell] [Rick_Russell] Defined TXT keys: Proprietary +# Agent Service +# accessone Strix Systems 5S/AccessOne [Scott_Herscher_2] [Scott_Herscher_2] Defined TXT keys: None +# accountedge MYOB AccountEdge Defined TXT keys: None +# acrobatsrv Adobe Acrobat Defined TXT keys: type, path, FeedType +# acs-ctl-ds tcp Access Control Device [Honwywell_Security_Group] [John_Dziadosz] 2012-04-09 Defined TXT keys: MAC=, GW-MAC +# acs-ctl-ds udp Access Control Device [Honwywell_Security_Group] [John_Dziadosz] 2012-04-09 Defined TXT keys: MAC=, GW-MAC +# acs-ctl-gw tcp Access Control Gateway [Honwywell_Security_Group] [John_Dziadosz] 2012-04-09 Defined TXT keys: MAC=, GW-MAC +# acs-ctl-gw udp Access Control Gateway [Honwywell_Security_Group] [John_Dziadosz] 2012-04-09 Defined TXT keys: MAC=, GW-MAC +# actionitems ActionItems [Sailalong_Software] [Sailalong_Software] Defined TXT keys: None +# activeraid Active Storage Proprietary [Skip_Levens] [Skip_Levens] Defined TXT keys: None +# Device Management Protocol +# Encrypted transport of +# activeraid-ssl Active Storage Proprietary [Skip_Levens] [Skip_Levens] Defined TXT keys: None +# addressbook Address-O-Matic [Massimiliano_Ribuoli] [Massimiliano_Ribuoli] Defined TXT keys: None +# Address Book Server used for +# addressbooksrv tcp contacts and calendar [AddressBookServer] [Alexander_Hartner] 2011-10-14 Defined TXT keys: _suffix, _prefix +# synchronisation +# difusi Cloud based plug & +# play network synchronization +# adnodes protocol, content pool [DIFUSI_Inc] [Mike_Wright] 2011-11-07 Defined TXT keys: Proprietary +# database discovery, and +# cloudOS SAaS discovery +# protocol. +# adobe-shadow tcp Adobe Shadow Server [Adobe_Systems] [Mike_Harris] 2012-04-17 Defined TXT keys: id +# adobe-vc Adobe Version Cue Defined TXT keys: txtvers=1, name, version, build +# adisk Automatic Disk Discovery [Bob_Bradley_2] [Bob_Bradley_2] Defined TXT keys: sys, dkX +# adpro-setup ADPRO Security Device Setup [Patrick_Noffke] [Patrick_Noffke] Defined TXT keys: txtvers, type +# aecoretech Apple Application [Hani_Abdelazim] [Hani_Abdelazim] Defined TXT keys: None +# Engineering Services +# Defined TXT keys: orb_server= (optional) CORBA ORB +# Aeroflex instrumentation and server used for resource discovery product_id= +# aeroflex software [David_Hagood] [David_Hagood] (optional) ID of licensed product +# txtvers="*IDN?=" (optional) as per LXI +# specification (for not yet LXI compatible instruments) +# aerohive-proxy tcp Aerohive Proxy Configuration [Aerohive_Networks] [Matthew_Gast] 2012-05-31 Defined TXT keys: name, port, username +# airdrop tcp Airdrop [Apple_Inc] [Marc_Krochmal_2] 2012-03-02 Defined TXT keys: flags, phash, ehash, cname +# airplay tcp Protocol for streaming of [Apple_Inc_2] [Bob_Bradley_3] 2012-09-19 Defined TXT keys: am, cn, et, ft, fv, md, pk, pw, sf, tp, vn, +# audio/video content vs +# airplay udp Protocol for streaming of [Apple_Inc_2] [Bob_Bradley_3] 2012-09-19 Defined TXT keys: am, cn, et, ft, fv, md, pk, pw, sf, tp, vn, +# airport AirPort Base Station [Bob_Bradley_2] [Bob_Bradley_2] Defined TXT keys: waMA; +# airpreview tcp Coda AirPreview [Panic_Inc] [Cabel_Sasser] 2012-07-19 Defined TXT keys: hasCamera, name, UUID +# Defined TXT keys: mac= ip= +# airprojector AirProjector [Yoshinori_Nakayama] [Yoshinori_Nakayama] note= use= mainprog=
+# bootprog= +# airsharing Air Sharing [Erik_Rogers][Dave_Howell] [Erik_Rogers][Dave_Howell] Defined TXT keys: None +# airsharingpro Air Sharing Pro [Erik_Rogers][Dave_Howell] [Erik_Rogers][Dave_Howell] Defined TXT keys: None +# aloe-gwp tcp Aloe Gateway Protocol [Layered_Logic] [Brooks_Bell] 2012-01-04 Defined TXT keys: Version +# aloe-pp tcp Aloe Pairing Protocol [Layered_Logic] [Brooks_Bell] 2012-01-04 Defined TXT keys: Version, DeviceName, DeviceModel, +# DeviceSystem, DeviceSystemVersion, AppName, AppVersion +# amba-cam udp Ambarella Cameras [Louis_Sun] [Louis_Sun] Defined TXT keys: product= +# description= version= +# P2PTapWar Sample Application +# amiphd-p2p from "iPhone SDK [Chris_Adamson] [Chris_Adamson] Defined TXT keys: None +# Development" Book +# ams-htm Proprietary protocol for [AccuMed_Services] [Sam_Carleton_2] 2011-10-20 Defined TXT keys: None +# Accu-Med HTM +# animolmd Animo License Manager [Phil_Barrett] [Phil_Barrett] Defined TXT keys: None +# animobserver Animo Batch Server [Phil_Barrett] [Phil_Barrett] Defined TXT keys: None +# Anquet map synchronization +# anquetsync between desktop and handheld [Paul_Lesurf] [Paul_Lesurf] Defined TXT keys: Proprietary +# devices +# antrmai tcp ANT Galio web services [ANT_Software] [Simon_Middleton] 2012-12-06 Defined TXT keys: txtvers, man +# appelezvous Appelezvous [Marco_Piovanelli] [Marco_Piovanelli] Defined TXT keys: None +# apple-ausend Apple Audio Units [James_McCartney] [James_McCartney] Defined TXT keys: None +# apple-mobdev tcp Apple Mobile Device Protocol [Apple_2] [Paul_Chinn][Justin_Ko] 2011-10-20 Defined TXT keys: None +# apple-midi udp Apple MIDI [Doug_Wyatt] [Doug_Wyatt] Defined TXT keys: None +# applerdbg Apple Remote Debug Services [Dave_Springer] [Dave_Springer] Defined TXT keys: None +# (OpenGL Profiler) +# appletv Apple TV [Amandeep_Jawa_3] [Amandeep_Jawa_3] Defined TXT keys: txtvers, PrVs, OSsi, MniT +# appletv-itunes Apple TV discovery of iTunes [Amandeep_Jawa_3] [Amandeep_Jawa_3] Defined TXT keys: txtvers +# appletv-pair Apple TV Pairing [Amandeep_Jawa_3] [Amandeep_Jawa_3] Defined TXT keys: txtvers +# aquamon AquaMon Defined TXT keys: None +# arcnet udp Arcturus Networks Inc. [Arcturus_Networks_Inc] [Michael_Durrant] 2011-10-20 Defined TXT keys: None +# Hardware Services +# aroundsound AroundSound's information [Winzig_LLC] [Around_Sound] 2011-10-20 Defined TXT keys: Proprietary +# sharing protocol +# astnotify udp Asterisk Caller-ID [Sven_Slezak] [Sven_Slezak] Defined TXT keys: prefix= (numeric, +# Notification Service additionally '+') +# astralite Astralite [Tongji_University] [Tongji_University] Defined TXT keys: None +# async address-o-sync [Markus_Brand] [Markus_Brand] Defined TXT keys: None +# Atlassian Application (JIRA, +# atlassianapp Confluence, Fisheye, [Denise_Fernandez] [Denise_Fernandez] Defined TXT keys: app.url +# Crucible, Crowd, Bamboo) +# discovery service +# av Allen Vanguard Hardware [Mike_Bush] [Mike_Bush] Defined TXT keys: Proprietary +# avatars tcp Libravatar federated avatar [libravatar_org] [Francois_Marier] 2011-10-11 Defined TXT keys: none +# hosting service. +# avatars-sec tcp Libravatar federated avatar [libravatar_org] [Francois_Marier] 2011-10-11 Defined TXT keys: none +# axis-video Axis Video Cameras [Kristina_Sten] [Kristina_Sten] Defined TXT keys: None +# b3d-convince 3M Unitek Digital [Rajiv_Aaron_Manglani] [Rajiv_Aaron_Manglani] Defined TXT keys: txtvers=1, protovers=, +# Orthodontic System guid=<32 hex digits> +# babyphone BabyPhone [Johan_Kool] [Johan_Kool] Defined TXT keys: None +# bdsk BibDesk Sharing [Adam_Maxwell] [Adam_Maxwell] Defined TXT keys: txtvers, authenticate +# beacon Beacon Remote Service [Jeffrey_Sadeli] [Jeffrey_Sadeli] Defined TXT keys: version=, company= +# beamer Beamer Data Sharing Protocol [Frank_Szczerba] [Frank_Szczerba] Defined TXT keys: None +# beatpack BeatPack Synchronization [Mathieu_Garcia] [Mathieu_Garcia] Defined TXT keys: None +# Server for BeatMaker +# beep Xgrid Technology Preview [David_Kramer_2] [David_Kramer_2] Defined TXT keys: None +# bfagent BuildForge Agent [Joe_Senner_2] [Joe_Senner_2] Defined TXT keys: None +# bigbangchess Big Bang Chess [Freeverse_Software] [Freeverse_Software] Defined TXT keys: None +# bigbangmancala Big Bang Mancala [Freeverse_Software] [Freeverse_Software] Defined TXT keys: None +# bitflit tcp Data transfer service [Ramesh_Gupta] [Ramesh_Gupta] 2012-02-21 Defined TXT keys: provider, vendor, user, host, deploy, +# prototype, schedule +# bittorrent BitTorrent Zeroconf Peer [Robin_Perkins] [Robin_Perkins] Defined TXT keys: None +# Little Black Book Defined TXT keys: product= +# blackbook Information Exchange [David_HM_Spector][Paul_M_Franceus] [David_HM_Spector][Paul_M_Franceus] description= +# Protocol version= protovers= +# bluevertise udp BlueVertise Network Protocol [Fabrizio_Guglielmino] [Fabrizio_Guglielmino] Defined TXT keys: role= +# (BNP) +# boardplus tcp board plus application [CX5_SOFTWARE] [Yohei_Yoshihara] 2013-02-04 Defined TXT keys: None +# transfer protocol +# Booked communication Defined TXT keys: Edition, Version, Public Shares, Machine +# booked-sync tcp protocol - Sharing And Sync [Soeren_Havemester] [Soeren_Havemester] 2013-02-18 ID, Machine Name +# bookworm Bookworm Client Discovery [Arne_Dirks] [Arne_Dirks] Defined TXT keys: flavors +# boundaryscan udp Proprietary [Uwe_Ziegler] [Uwe_Ziegler] Defined TXT keys: blocked=, +# version= +# bousg Bag Of Unusual Strategy Defined TXT keys: None +# Games +# boxraysrvr tcp Boxray Devices Host Server [Caprice_Productions] [Lance_Drake] 2012-07-05 Defined TXT keys: none +# bri RFID Reader Basic Reader [Thaddeus_Ternes] [Thaddeus_Ternes] Defined TXT keys: None +# bridgeprotocol tcp JSON RPC Bridge Protocol [Michel_Stam_2] [Michel_Stam_2] 2012-11-20 Defined TXT keys: path, version +# bsqdea Backup Simplicity [Qdea] [Qdea] Defined TXT keys: None +# caldav tcp Calendaring Extensions to [IESG] [IETF_Chair] 2012-02-17 [RFC6764] This is an extension of the http service. Defined TXT keys: +# WebDAV (CalDAV) - non-TLS path= +# caldavs tcp Calendaring Extensions to [IESG] [IETF_Chair] 2012-02-17 [RFC6764] This is an extension of the https service. Defined TXT keys: +# WebDAV (CalDAV) - over TLS path= +# caltalk CalTalk [Joe_Groff] [Joe_Groff] Defined TXT keys: None +# carddav tcp vCard Extensions to WebDAV [IESG] [IETF_Chair] 2012-02-17 [RFC6352] This is an extension of the http service. Defined TXT keys: +# (CardDAV) - non-TLS path= +# carddavs tcp vCard Extensions to WebDAV [IESG] [IETF_Chair] 2012-02-17 [RFC6352] This is an extension of the https service. Defined TXT keys: +# (CardDAV) - over TLS path= +# cardsend Card Send Protocol [Jeff_Grossman] [Jeff_Grossman] Defined TXT keys: Proprietary +# carousel tcp Carousel Player Protocol [Tightrope_Media_Systems] [Scott_Jann] 2011-10-17 Defined TXT keys: None +# IP and Closed-Circuit Defined TXT keys: u=, p=, path= +# applications +# cheat The Cheat [Chaz_McGarvey] [Chaz_McGarvey] Defined TXT keys: None +# chess Project Gridlock Defined TXT keys: None +# chfts Fluid Theme Server Defined TXT keys: None +# chili The CHILI Radiology System [Andre_Schroter] [Andre_Schroter] Defined TXT keys: None +# ciao tcp Ciao Arduino Protocol [Mike_Colagrosso] [Mike_Colagrosso] 2011-10-24 Defined TXT keys: see www.ciaoapp.com +# Discovery of JDF (CIP4 Job +# cip4discovery Definition Format) enabled [Stefan_Daun] [Stefan_Daun] Defined TXT keys: None +# clipboard Clipboard Sharing Defined TXT keys: None +# clique udp Clique Link-Local Multicast [Telepathy_project] [Telepathy_project] Defined TXT keys: see +# Chat Room http://telepathy.freedesktop.org/xmpp/clique +# clscts Oracle CLS Cluster Topology [David_Brower] [David_Brower] Defined TXT keys: None +# collection Published Collection Object [Brady_Anderson] [Brady_Anderson] Defined TXT keys: version=? +# com-ocs-es-mcc ElectraStar media centre [OC] [OC] Defined TXT keys: None +# control protocol +# contactserver Now Contact Defined TXT keys: None +# corroboree Corroboree Server [Heath_Raftery] [Heath_Raftery] Defined TXT keys: None +# cpnotebook2 NoteBook 2 [Circus_Ponies_Suppor] [Circus_Ponies_Suppor] Defined TXT keys: None +# cw-codetap CodeWarrior HTI Xscale [Ted_Woodward] [Ted_Woodward] Defined TXT keys: None +# PowerTAP +# cw-dpitap CodeWarrior HTI DPI PowerTAP [Ted_Woodward] [Ted_Woodward] Defined TXT keys: None +# cw-oncetap CodeWarrior HTI OnCE [Ted_Woodward] [Ted_Woodward] Defined TXT keys: None +# cw-powertap CodeWarrior HTI COP PowerTAP [Ted_Woodward] [Ted_Woodward] Defined TXT keys: None +# cytv CyTV - Network streaming for [Andreas_Junghans] [Andreas_Junghans] Defined TXT keys: None +# Elgato EyeTV +# dacp Digital Audio Control [Amandeep_Jawa_3] [Amandeep_Jawa_3] Defined TXT keys: txtvers, Ver, DbId +# Protocol (iTunes) +# dancepartner Dance partner application [Rory_McClure] [Rory_McClure] Defined TXT keys: None +# for iPhone +# dataturbine Open Source DataTurbine [Tony_Fountain] [Tony_Fountain] Defined TXT keys: None +# Streaming Data Middleware +# Defined TXT keys:txtvers= +# dbaudio tcp d&b audiotechnik remote [d_b_audiotechnik] [Christian_Laendner] 2011-10-06 protovers= guid= +# network name= sn= device= +# fwver= +# dbaudio udp d&b audiotechnik remote [d_b_audiotechnik] [Christian_Laendner] 2011-10-06 protovers= guid= +# dccp-ping dccp ping/traceroute using DCCP [Samuel_Jero] [Samuel_Jero] 2012-11-14 1885957735 Defined TXT keys: None +# device-info Device Info [Stuart_Cheshire_5][Marc_Krochmal] [Stuart_Cheshire_5][Marc_Krochmal] Not a service type. Special name reserved for DNS-SD device +# info. +# devonsync tcp DEVONthink synchronization [DEVONtechnologies_LLC] [Rob_Rix][Eric_Boehnisch-Volkmann] 2011-10-18 Defined TXT keys: None at present +# dictation Use of a dictation service [Nuance_Communications_Inc] [Mark_Jackson] 2011-10-27 Defined TXT keys: ver, name +# by a hand-held device +# difi EyeHome [Elgato] [Elgato] Defined TXT keys: None +# disconnect DisConnect Peer to Peer Game [Michael_S_Bogovich] [Michael_S_Bogovich] Defined TXT keys: None +# dist-opencl Distributed OpenCL discovery [William_Dillon] [William_Dillon] Defined TXT keys: None +# ditrios Ditrios SOA Framework [Mark_Schmatz] [Mark_Schmatz] Defined TXT keys: +# Protocol http://www.ditrios.org/index.php?link=tutorial/index#zeroconf +# divelogsync Dive Log Data Sharing and [Greg_McLaughlin] [Greg_McLaughlin] Defined TXT keys: None +# dlpx-sp tcp Delphix Session Protocol [Delphix_Corp] [Peng_Dai] 2012-10-02 Defined TXT keys: None +# dltimesync udp Local Area Dynamic Time [Geoff_Back_3] [Geoff_Back_3] Defined TXT keys: None +# Synchronisation Protocol +# dns-sd DNS Service Discovery [Stuart_Cheshire_5][Marc_Krochmal] [Stuart_Cheshire_5][Marc_Krochmal] Not a service type. Special name reserved for DNS-SD meta +# queries. +# DNS Dynamic Update Service for a given domain may not +# necessarily be provided by the principal name servers as +# advertised by the domain's "NS" records, and may not +# dns-update udp DNS Dynamic Update Service [Kiren_Sekar_2] [Kiren_Sekar_2] necessarily always be provided on port 53. The +# "_dns-update._udp.." SRV record gives the target host +# and port where DNS Dynamic Update Service is provided for the +# named domain. +# dop Roar (Death of Productivity) [Massive_Flow_Product] [Massive_Flow_Product] Defined TXT keys: name= +# dropcopy DropCopy [base_t_Interactive] [base_t_Interactive] Defined TXT keys: None +# dsgsync Datacolor SpyderGallery [Datacolor] [Heath_Barber] 2011-10-14 Defined TXT keys: Proprietary +# Desktop Sync Protocol +# Data Synchronization +# dsl-sync Protocol for Discovery [John_Hogg] [John_Hogg] Defined TXT keys: Proprietary +# Software products +# dtrmtdesktop Desktop Transporter Remote [Daniel_Stodle] [Daniel_Stodle] Defined TXT keys: None +# Desktop Protocol +# dxtgsync Documents To Go Desktop Sync [Tim_Boyle] [Tim_Boyle] Defined TXT keys: Proprietary +# ea-dttx-poker Protocol for EA Downtown [Ben_Lewis] [Ben_Lewis] Defined TXT keys: None +# Texas Hold 'em +# earphoria Earphoria [Rogue_Amoeba] [Rogue_Amoeba] Defined TXT keys: None +# easyspndlg-sync tcp Sync service for the Easy [Aaron_L_Bratcher] [Aaron_L_Bratcher] 2011-10-17 Defined TXT keys: None +# Spend Log app +# eb-amuzi Amuzi peer-to-peer session [Zachary_Gramana] [Zachary_Gramana] Defined TXT keys: Proprietary +# ebms ebXML Messaging [Matthew_MacKenzie] [Matthew_MacKenzie] Defined TXT keys: Endpoint= +# Northrup Grumman/Mission +# ecms Systems/ESL Data Flow [Dan_Goff] [Dan_Goff] Defined TXT keys: None +# ebreg ebXML Registry [Matthew_MacKenzie] [Matthew_MacKenzie] Defined TXT keys: +# HttpBinding= +# ecbyesfsgksc Net Monitor Anti-Piracy [Guy_Meyer] [Guy_Meyer] Defined TXT keys: None +# edcp udp LaCie Ethernet Disk [Nicolas_Bouilleaud] [Nicolas_Bouilleaud] Defined TXT keys: ip, mac, dhcp, mask, gtwy, wins, name, +# Configuration Protocol version +# eeg tcp EEG System Discovery across [Shifted_Current] [Joel_Aaron_Clipperton] 2012-09-11 Defined TXT keys: Type +# local and wide area networks +# efkon-elite tcp EFKON Lightweight Interface [EFKON_AG] [Thomas_Kemmer] 2011-10-20 Defined TXT keys: txtvers, protovers, model, serial, scheme, +# to Traffic Events path +# egistix Egistix Auto-Discovery [Dave_Lindquist_2] [Dave_Lindquist_2] Defined TXT keys: None +# Interactive Room Software +# eheap Infrastructure (Event Defined TXT keys: None +# Sharing) +# embrace DataEnvoy [Rob_MacGregor] [Rob_MacGregor] Defined TXT keys: None +# enphase-envoy tcp Enphase Energy Envoy [Enphase_Energy_Inc] [Chris_Eich] 2011-11-08 Defined TXT keys: - txtvers - protovers - serialnum +# Endpoint Protocol (EP) for +# ep use in Home Automation [Tommy_van_der_Vorst] [Tommy_van_der_Vorst] Defined TXT keys: dns-sd_mdns +# systems +# esp tcp Extensis Server Protocol [Loren_Barr] [Loren_Barr] 2006-12 Defined TXT keys: none +# eucalyptus Eucalyptus Discovery [Support_Team] [Support_Team] Defined TXT keys: Eucalyptus-DNS-SD +# eventserver Now Up-to-Date Defined TXT keys: None +# evs-notif EVS Notification Center [Eric_Gillet] [Eric_Gillet] Defined TXT keys: ID, Address +# ewalletsync Synchronization Protocol for [Dan_Amstutz] [Dan_Amstutz] Defined TXT keys: name= +# Ilium Software's eWallet +# Not a real service type. Special 'pretend' service types +# example Example Service Type ("_example._udp" and "_example._tcp") reserved for use in +# illustrative examples in books and other documentation. +# exb Exbiblio Cascading Service [Claes_Fredrik_Mannby] [Claes_Fredrik_Mannby] Defined TXT keys: Will be described at www.exbiblio.com +# extensissn Extensis Serial Number [Extensis] [Extensis] Defined TXT keys: None +# eyetvsn EyeTV Sharing [Elgato] [Elgato] Defined TXT keys: txtvers=1, keyhash=<4 bytes> +# facespan FaceSpan [Kerry_Hazelgren] [Kerry_Hazelgren] Defined TXT keys: None +# faxstfx FAXstf [Smith_Micro] [Smith_Micro] Defined TXT keys: None +# feed-sharing NetNewsWire 2.0 [Ranchero_Software] [Ranchero_Software] Defined TXT keys: None +# firetask Firetask task sharing and [Gerald_Aquila] [Gerald_Aquila] Defined TXT keys: None +# fish Fish [Oriol_Ferrer_Mesia] [Oriol_Ferrer_Mesia] Defined TXT keys: None +# Defined TXT keys: Currently valid enumerated values: FIX +# Session Protocol Versions (SESSIONVERSION): 1.1 FIX +# Application Protocol Versions (APPLICATIONVERSION): 2.7, 3.0, +# fix Financial Information [Joakim_Johansson] [Joakim_Johansson] 4.0, 4.1, 4.2, 4.3, 4.4, 5.0 Possible TXT records defined and +# Exchange (FIX) Protocol their values (replace uppercase text with enumerations from +# the list above): txtvers=1 fix=APPLICATIONVERSION fix +# supported=APPLICATIONVERSION[,APPLICATIONVERSION, ... +# ,APPLICATIONVERSION] fixt=SESSIONVERSION +# fjork Fjork [John_Schilling] [John_Schilling] Defined TXT keys: None +# fl-purr udp FilmLight Cluster Power [Darrin_Smart] [Darrin_Smart] Defined TXT keys: Proprietary +# Control Service +# flightdmp tcp Flight Data Monitoring [Brad_Head] [Brad_Head] 2013-02-07 Defined TXT keys: None +# flightdmp udp Flight Data Monitoring [Brad_Head] [Brad_Head] 2013-02-07 Defined TXT keys: None +# flir-ircam tcp FLIR Infrared Camera [FLIR_Systems_AB] [Bjorn_Roth][Klas_Malmborg] 2011-10-20 Defined TXT keys: Proprietary +# FileMaker Server +# fmserver-admin Administration Communication [Eric_Jacobson] [Eric_Jacobson] Defined TXT keys: None +# fontagentnode FontAgent Pro [Insider_Software] [Insider_Software] Defined TXT keys: None +# foxtrot-serv FoxTrot Search Server [Jerome_Seydoux] [Jerome_Seydoux] Defined TXT keys: None +# Discovery Service +# foxtrot-start FoxTrot Professional Search [Jerome_Seydoux] [Jerome_Seydoux] Defined TXT keys: None +# frameforge-lic FrameForge License [James_W_Walker] [James_W_Walker] Defined TXT keys: Proprietary +# freehand FreeHand MusicPad Pro [Ted_Schroeder] [Ted_Schroeder] Defined TXT keys: None +# frog Frog Navigation Systems [Rene_Jager] [Rene_Jager] Defined TXT keys: type, name, id +# ftpcroco Crocodile FTP Server [Xnet_Communications] [Xnet_Communications] Defined TXT keys: None +# fv-cert udp Fairview Certificate [Jim_Lyle_2] [Jim_Lyle_2] Defined TXT keys: DevID=, DevPK= +# fv-key udp Fairview Key [Jim_Lyle_2] [Jim_Lyle_2] Defined TXT keys: KeyID= +# fv-time udp Fairview Time/Date [Jim_Lyle_2] [Jim_Lyle_2] Defined TXT keys: None +# garagepad Entrackment Client Service [Talkative_AB] [Talkative_AB] Defined TXT keys: None +# G-Force Control via +# gforce-ssmp SoundSpectrum's SSMP TCP [Andy_O_Meara] [Andy_O_Meara] Defined TXT keys: None +# glasspad GlassPad Data Exchange [Emmanuel_Merali] [Emmanuel_Merali] Defined TXT keys: guid +# glasspadserver GlassPadServer Data Exchange [Emmanuel_Merali] [Emmanuel_Merali] Defined TXT keys: guid +# glrdrvmon OpenGL Driver Monitor [Dave_Springer] [Dave_Springer] Defined TXT keys: None +# goorstop tcp For iOS Application named [Charlie_Kim] [Charlie_Kim] 2012-08-28 Defined TXT keys: None +# GoOrStop +# gpnp Grid Plug and Play [David_Brower] [David_Brower] Defined TXT keys: None +# grillezvous Roxio ToastAnywhere(tm) Defined TXT keys: AppID= KeyHash= +# groovesquid tcp Groovesquid Democratic Music [www_nsovocal_com] [Ruben_Beltran] 2011-10-18 Defined TXT keys: None +# growl Growl Defined TXT keys: None +# Defined TXT keys: Varies; Depends on type of service being +# offered/resolved Although DNS-SD does not recommend or +# advocate using GUIDs as the primary name of an offered +# service why not?, it does support use of GUIDs as service +# names where developers want to use them that way. Typically +# users do not browse for GUIDs. They are not user-friendly and +# not very informative. Typically, the service is advertised as +# usual, using a user-friendly name. One of the TXT record +# attributes is a GUID for the service instance. Once the user +# Special service type for has browsed and chosen the desired service instance via its +# guid resolving by GUID (Globally user-friendly name, the service is resolved, the TXT record +# Unique Identifier) is retrieved, and the GUID is stored. A given network service +# instance is therefore being advertised two ways, for example: +# ._ptp._tcp.local ._guid._tcp.local +# On subsequent accesses to the service, the GUID-based name is +# resolved, and that particular service instance is discovered, +# even if the user has subsequently changed the user-friendly +# name to something else. Note: Although each different logical +# service type needs to have its own different DNS-SD service +# type, all GUID-based names use the same pseudo-type: +# "_guid._tcp". There is no possibility of name conflict +# because (by definition) GUIDs are globally unique. +# H.323 Real-time audio, video +# h323 and data communication call [Will_MacDonald] [Will_MacDonald] Defined TXT keys: None +# setup protocol +# help HELP command [RFC1078] TCP Port Service Multiplexer (TCPMUX) +# hg Mercurial web-based Defined TXT keys: None path= description= +# hinz HINZMobil Synchronization [Jorg_Laschke] [Jorg_Laschke] Defined TXT keys: None +# hmcp Home Media Control Protocol [Will_Lahr] [Will_Lahr] Defined TXT keys: None +# home-sharing iTunes Home Sharing [Amandeep_Jawa_3] [Amandeep_Jawa_3] Defined TXT keys: txtvers, hQ, iTSh Version, MID, Database +# ID, dmb, Version, OSsi, hG, hC, Machine ID +# homeauto iDo Technology Home [Tony_de_Rijk] [Tony_de_Rijk] Defined TXT keys: None +# Automation Protocol +# honeywell-vid udp Honeywell Video Systems [Shankar_Prasad] [Shankar_Prasad] Defined TXT keys: None +# hotwayd Hotwayd Defined TXT keys: None +# howdy Howdy messaging and [Ozate_Inc] [Joseph_Sickel] 2011-10-12 Defined TXT keys: None +# notification protocol +# hpr-bldlnx HP Remote Build System for [Jeffrey_J_Walls] [Jeffrey_J_Walls] Defined TXT keys: rh73, rhel3, rhel4, deb31, suse102 +# Linux-based Systems +# hpr-bldwin HP Remote Build System for [Jeffrey_J_Walls] [Jeffrey_J_Walls] Defined TXT keys: xp, vista +# Microsoft Windows Systems +# Identifies systems that +# hpr-db house databases for the [Jeffrey_J_Walls] [Jeffrey_J_Walls] Defined TXT keys: bld, tst, mstr +# Remote Build System and +# Remote Test System +# hpr-rep HP Remote Repository for [Jeffrey_J_Walls] [Jeffrey_J_Walls] Defined TXT keys: bld, tst, official +# Build and Test Results +# HP Remote System that houses +# hpr-toollnx compilers and tools for [Jeffrey_J_Walls] [Jeffrey_J_Walls] Defined TXT keys: rh73, rhel3, rhel4, deb31, suse102 +# hpr-toolwin compilers and tools for [Jeffrey_J_Walls] [Jeffrey_J_Walls] Defined TXT keys: xp, vista +# hpr-tstlnx HP Remote Test System for [Jeffrey_J_Walls] [Jeffrey_J_Walls] Defined TXT keys: rh73, rhel3, rhel4, deb31, suse102 +# hpr-tstwin HP Remote Test System for [Jeffrey_J_Walls] [Jeffrey_J_Walls] Defined TXT keys: xp, vista +# hs-off Hobbyist Software Off [Rob_Jonson] [Rob_Jonson] Defined TXT keys: None +# htsp Home Tv Streaming Protocol [Andreas_Oman] [Andreas_Oman] Defined TXT keys: None +# Web browsers like Safari and Internet Explorer (with the +# Bonjour for Windows plugin) DO NOT browse for DNS-SD service +# type "_https._tcp" in addition to browsing for "_http._tcp". +# This is a conscious decision to reduce proliferation of +# service types, to help keep DNS-SD efficient on the network. +# Today, if a user types http://www.mybank.com/ into their web +# browser, the web server automatically redirects the user to +# https://www.mybank.com/. Rather than having an entirely +# different DNS-SD service type for https, we recommend using +# https tcp HTTP over SSL/TLS [Tim_Berners_Lee] [Tim_Berners_Lee] the same redirection mechanism: advertise a plain "http" +# service, which consists of nothing except an HTTP redirection +# to the desired "https" URL. Work is currently being done on +# adding mechanisms to HTTP and TLS to allow the server to tell +# the client that it needs to activate TLS on the current +# connection before proceeding. If this becomes widely adopted, +# it further justifies the decision to not create a separate +# DNS-SD service type "_https._tcp", because security becomes +# just another one of the things that is negotiated on a +# per-connection basis (like content-type negotiation today) +# rather than being an entirely separate thing. +# htvncconf udp HomeTouch Vnc Configuration [Yuval_Rakavy] [Yuval_Rakavy] 2012-07-10 Defined TXT keys: None +# hyperstream Atempo HyperStream [Laurent_Charmet] [Laurent_Charmet] Defined TXT keys: version=x.y.z.w uuid=<36 bytes UUID string> +# deduplication server host= +# ibiz iBiz Server [IGG_Software] [IGG_Software] Defined TXT keys: None +# ica-networking Image Capture Networking [Baskaran_Subramaniam] [Baskaran_Subramaniam] Defined TXT keys: None +# ican Northrup Grumman/TASC/ICAN [Laurent_Mihalkovic] [Laurent_Mihalkovic] Defined TXT keys: None +# ichalkboard iChalk [Math_Game_House_Soft] [Math_Game_House_Soft] Defined TXT keys: None +# ichat iChat 1.0 [Jens_Alfke] [Jens_Alfke] Defined TXT keys: Proprietary +# iconquer iConquer [Andrew_Zamler_Carhar] [Andrew_Zamler_Carhar] Defined TXT keys: None +# idata Generic Data Acquisition and [Carson_Fenimore] [Carson_Fenimore] Defined TXT keys: None +# idsync SplashID Synchronization [Justin_Cepelak] [Justin_Cepelak] Defined TXT keys: Proprietary +# ifolder Published iFolder [Brady_Anderson] [Brady_Anderson] Defined TXT keys: version=? +# ihouse Idle Hands iHouse Protocol [Toby_Smith] [Toby_Smith] Defined TXT keys: None +# ii-drills Instant Interactive Drills [Ricky_Sharp] [Ricky_Sharp] Defined TXT keys: None +# ii-konane Instant Interactive Konane [Ricky_Sharp] [Ricky_Sharp] Defined TXT keys: None +# ilynx iLynX [iOS_Software] [iOS_Software] Defined TXT keys: None +# imidi iMidi [Robert_Grant] [Robert_Grant] Defined TXT keys: None +# ims-ni tcp Noise Inspector [IMS_merilni_sistemi] [Metod_Celestina] 2012-08-24 Defined TXT keys: SN (serial number), SVER (software +# version), HVER (hardware version), PVER (protocol version)) +# indigo-dvr Indigo Security Digital [Haram_Lee] [Haram_Lee] Defined TXT keys: Proprietary +# Video Recorders +# infboard tcp InfBoard interactive [Eric_Sean_Conner] [Eric_Sean_Conner] 2011-10-17 Defined TXT keys: Proprietary +# whiteboard protocol +# inova-ontrack Inova Solutions OnTrack Defined TXT keys: None +# Display Protocol +# idcws Intermec Device [Thaddeus_Ternes] [Thaddeus_Ternes] Defined TXT keys: version= +# Configuration Web Services +# iota tcp iotaMed medical records [MITM] [Martin_Wehlou] 2011-10-18 Defined TXT keys: none +# ipbroadcaster IP Broadcaster [base_t_Interactive] [base_t_Interactive] Defined TXT keys: None +# ipspeaker IP Speaker Control Protocol [Dan_Mahn] [Dan_Mahn] Defined TXT keys: None +# ir-hvac-000 tcp HVAC SMIL Server [Ingersoll_Rand_Inc] [John_Taylor] 2011-09-28 Defined TXT keys: None +# irelay iRelay application discovery [Marc_Diamante] [Marc_Diamante] Defined TXT keys: Proprietary +# irmc Intego Remote Management [Olivier_Delecluse] [Olivier_Delecluse] Defined TXT keys: RMC Client Version=, MAC +# Console Address=
+# irradiatd-iclip tcp iClip clipboard transfer [Irradiated_Software] [Thomas_Tempelmann] 2012-06-19 Defined TXT keys: none +# isparx iSparx [Philipp_Dreiss] [Philipp_Dreiss] Defined TXT keys: None +# ispq-vc iSpQ VideoChat [Chris_Silverberg] [Chris_Silverberg] Defined TXT keys: None +# ishare iShare [Steve_Dekorte] [Steve_Dekorte] Defined TXT keys: None +# isticky iSticky [Insist] [Insist] Defined TXT keys: None +# istorm iStorm [Math_Game_House_Soft] [Math_Game_House_Soft] Defined TXT keys: None +# isynchronize tcp iSynchronize data [Smart_Apps_LTD] [Sergey_Bolshedvorsky] 2011-10-11 Defined TXT keys: none +# itap-publish tcp iTap Publishing Service [HLW_Software_Development_GmbH] [Michael_Lacher] 2011-10-11 Defined TXT keys: uuid= +# IT-IS International Ltd. Defined TXT keys: type= configuration= description= +# version= +# itsrc iTunes Socket Remote Control [Kevin_Leacock] [Kevin_Leacock] Defined TXT keys: None +# ivef Inter VTS Exchange Format [Harry_ten_Berge] [Harry_ten_Berge] Defined TXT keys: None +# iwork iWork Server [IGG_Software] [IGG_Software] Defined TXT keys: None +# jcan Northrup Grumman/TASC/JCAN [Laurent_Mihalkovic] [Laurent_Mihalkovic] Defined TXT keys: None +# jeditx Jedit X [Satoshi_Matsumoto] [Satoshi_Matsumoto] Defined TXT keys: None +# jini Jini Service Discovery [Daniel_Steinberg] [Daniel_Steinberg] Defined TXT keys: None +# Defined TXT keys: hash=<40hex characters> salt=<40hex +# jollys keychain cloud sync characters> uuid=<40hex characters> Example: +# jnx-kcsync tcp protocol [Patrick_Stein] [Patrick_Stein] 2011-10-24 hash=5e7580598c0d7064d4fc79faaeb42585e1a675f8 +# salt=f0164cb3a0c3d7efe75abea8fda86d2d56c8dda9 +# uuid=db61dc092922252e45bbb264f59147138c7fd5fa +# jtag Proprietary [Uwe_Ziegler] [Uwe_Ziegler] Defined TXT keys: blocked=, +# jukebox tcp Jukebox Request Service [Gary_Giebler_2] [Gary_Giebler_2] 2011-10-18 Defined TXT keys: None +# KeynoteAccess is used for +# sending remote +# keynoteaccess tcp requests/responses when [Apple] [Brad_Vaughan] 2011-10-12 Defined TXT keys: None +# controlling a slideshow with +# Keynote Remote +# KeynotePairing is used to +# keynotepairing tcp pair Keynote Remote with [Apple] [Brad_Vaughan] 2011-10-12 Defined TXT keys: None +# Keynote +# ktp Kabira Transaction Platform [Ramiro_Sarmiento] [Ramiro_Sarmiento] Defined TXT keys: None +# labyrinth udp Labyrinth local multiplayer [Andreas_Alptun] [Andreas_Alptun] Defined TXT keys: None +# lan2p Lan2P Peer-to-Peer Network [Ben_Guild] [Ben_Guild] Defined TXT keys: None +# lapse Gawker [Phil_Piwonka] [Phil_Piwonka] Defined TXT keys: None +# leaf Lua Embedded Application [Ico_Doornekamp] [Ico_Doornekamp] Defined TXT keys: name= product= version= +# lexicon Lexicon Vocabulary Sharing [Jacob_Godwin_Jones] [Jacob_Godwin_Jones] Defined TXT keys: None +# liaison Liaison [Brian_Cully] [Brian_Cully] Defined TXT keys: None +# Delicious Library 2 +# library Collection Data Sharing [William_Shipley] [William_Shipley] Defined TXT keys: None +# Protocol for setup and +# libratone control of Libratone [Libratone_AS] [Claus_Jensen] 2011-10-27 Defined TXT keys: None +# products +# licor LI-COR Biosciences [Software_LI-COR_Biosciences] [Kevin_Ediger] 2011-10-18 Defined TXT keys: None +# instrument discovery +# llrp-secure RFID reader Low Level Reader [Jason_Schoon_2] [Jason_Schoon_2] Defined TXT keys: None +# Protocol over SSL/TLS +# lobby Gobby [Gobby_0x539] [Gobby_0x539] Defined TXT keys: None +# logicnode udp Logic Pro Distributed Audio [Nikolaus_Gerteis] [Nikolaus_Gerteis] Defined TXT keys: None +# lonbridge Echelon LonBridge Server [Rich_Blomseth] [Rich_Blomseth] Defined TXT keys: None +# lontalk LonTalk over IP (ANSI 852) [Michael_Tennefoss] [Michael_Tennefoss] Defined TXT keys: None +# lonworks Echelon LNS Remote Client [Michael_Tennefoss] [Michael_Tennefoss] Defined TXT keys: None +# lsys-appserver Linksys One Application [Frank_Zerangue] [Frank_Zerangue] Defined TXT keys: path=value (relative URL) engname=value +# Server API (string) +# lsys-camera Linksys One Camera API [Frank_Zerangue] [Frank_Zerangue] Defined TXT keys: brand=value (string) model=value (string) +# version=value (string) +# Defined TXT keys: model=value (string) serial=value (sring) +# lsys-ezcfg LinkSys EZ Configuration [Frank_Zerangue] [Frank_Zerangue] hwversion=value (string) swversion=value (string) +# ifversion=value (string) type=value (string) mac=value (12 +# hex digits) +# LinkSys Operations, Defined TXT keys: model=value (string) serial=value (sring) +# lsys-oamp Administration, Management, [Frank_Zerangue] [Frank_Zerangue] hwversion=value (string) swversion=value (string) +# and Provisioning ifversion=value (string) type=value (string) mac=value (12 +# A protocol to remotely +# lumiere tcp control DMX512 devices over [Gangsta_Ltd] [Jean-Charles_Boude] 2011-10-13 Defined TXT keys: None +# the network +# lumis-lca tcp Lumis Cache Appliance [Lumis] [Rodrigo_Terra] 2011-10-24 Defined TXT keys: none +# lux-dtp Lux Solis Data Transport [Laurence_Flath] [Laurence_Flath] Defined TXT keys: None +# lxi LXI [Nick_Barendt_2] [Nick_Barendt_2] Defined TXT keys: txtvers, *IDN?= +# lyrics iPod Lyrics Service [Gary_Giebler] [Gary_Giebler] Defined TXT keys: Proprietary +# macfoh MacFOH [Shaun_Wexler] [Shaun_Wexler] Defined TXT keys: None +# macfoh-admin MacFOH admin services [Shaun_Wexler] [Shaun_Wexler] Defined TXT keys: None +# macfoh-audio udp MacFOH audio stream [Shaun_Wexler] [Shaun_Wexler] Defined TXT keys: None +# macfoh-events udp MacFOH show control events [Shaun_Wexler] [Shaun_Wexler] Defined TXT keys: None +# macfoh-data udp MacFOH realtime data [Shaun_Wexler] [Shaun_Wexler] Defined TXT keys: None +# macfoh-db MacFOH database [Shaun_Wexler] [Shaun_Wexler] Defined TXT keys: None +# macfoh-remote MacFOH Remote [Shaun_Wexler] [Shaun_Wexler] Defined TXT keys: None +# macminder Mac Minder [Luma_Code] [Luma_Code] Defined TXT keys: None +# maestro Maestro Music Sharing [Luke_Steffen] [Luke_Steffen] Defined TXT keys: None +# magicdice Magic Dice Game Protocol [Mike_Yenco] [Mike_Yenco] Defined TXT keys: None +# mandos Mandos Password Server [Mandos_Maintainers] [Mandos_Maintainers] Defined TXT keys: None +# matrix MATRIX Remote AV Switching [Ken_Jibiki] [Ken_Jibiki] Defined TXT keys: None +# mavlink tcp MAVLink Micro Air Vehicle [Roderick_Mann] [Roderick_Mann] 2011-10-20 Defined TXT keys: 0 +# mbconsumer MediaBroker++ Consumer [Nate_Rivard] [Nate_Rivard] Defined TXT keys: None +# mbproducer MediaBroker++ Producer [Nate_Rivard] [Nate_Rivard] Defined TXT keys: None +# mbserver MediaBroker++ Server [Nate_Rivard] [Nate_Rivard] Defined TXT keys: None +# mconnect ClairMail Connect [Sachin_Desai] [Sachin_Desai] Defined TXT keys: None +# mcrcp MediaCentral [equinux] [equinux] Defined TXT keys: None +# MediaBoardONE Asset and +# mediaboard1 Information Manager data [Thomas_K_Fischer] [Thomas_K_Fischer] Defined TXT keys: None +# sharing and synchronization +# mediatap tcp Mediatap streaming protocol [Mediatap_GbR] [Mario_Poerner] 2011-10-11 Defined TXT keys: Proprietary +# mesamis Mes Amis [David_Priest] [David_Priest] Defined TXT keys: None +# mi-raysat Mental Ray for Maya [Autodesk] [Autodesk] Defined TXT keys: None +# modolansrv modo LAN Services [Matt_Craig] [Matt_Craig] Defined TXT keys: None +# Authentication service for +# mogeneti-auth tcp Mogeneti Software [Mogeneti] [Bart_Rijpers] 2012-09-26 Defined TXT keys: none +# moneysync SplashMoney Synchronization [Justin_Cepelak] [Justin_Cepelak] Defined TXT keys: Proprietary +# MoneyWorks Gold and +# moneyworks MoneyWorks Datacentre [Rowan_Daniell] [Rowan_Daniell] Defined TXT keys: None +# network service +# moodring Bonjour Mood Ring tutorial [Daniel_Steinberg] [Daniel_Steinberg] Defined TXT keys: txtvers=1 mood= +# program +# mother Mother script server [Jonathan] [Jonathan] Defined TXT keys: user, ssl +# movieslate MovieSlate digital [Cliff_Joyce] [Cliff_Joyce] Defined TXT keys: Proprietary +# clapperboard +# mp3sushi MP3 Sushi [Alexandre_Carlhian] [Alexandre_Carlhian] Defined TXT keys: None +# mqtt IBM MQ Telemetry Transport [AndySC] [AndySC] Defined TXT keys: topics=, eg topic=/info +# mslingshot Martian SlingShot [Martin_Technology] [Martin_Technology] Defined TXT keys: displayName, passwordRequired, +# acceptsUpdates +# mumble Mumble VoIP communication [Thorvald_Natvig] [Thorvald_Natvig] Defined TXT keys: None +# musicmachine Protocol for a distributed [Johan_Mjones] [Johan_Mjones] Defined TXT keys: apiversion, passreq +# music playing service +# mysync MySync Protocol [Martin_Redington] [Martin_Redington] Defined TXT keys: None +# mttp MenuTunes Sharing [iThink_Software] [iThink_Software] Defined TXT keys: None +# mxim-art2 Maxim Integrated Products [Zach_Metzinger] [Zach_Metzinger] Defined TXT keys: Proprietary +# Automated Roadtest Mk II +# mxim-ice Maxim Integrated Products [Zach_Metzinger] [Zach_Metzinger] Defined TXT keys: Proprietary +# In-circuit Emulator +# Defined TXT keys: None mxs.system.id= +# mxs MatrixStore [Object_Matrix] [Object_Matrix] mxs.system.version= +# mxs.cluster.id= +# nasmon tcp Proprietary communication [Infinite_Loop] [Claus_Broch2] 2012-10-09 Defined TXT keys: Proprietary +# protocol for NAS Monitor +# nasmon udp Proprietary communication [Infinite_Loop] [Claus_Broch2] 2012-10-09 Defined TXT keys: Proprietary +# ncbroadcast Network Clipboard Broadcasts [Thom_McGrath] [Thom_McGrath] Defined TXT keys: Contact The ZAZ Software +# ncdirect Network Clipboard Direct [Thom_McGrath] [Thom_McGrath] Defined TXT keys: Contact The ZAZ Software +# The issuer service in the +# ncount-issuer tcp n-Count electronic value [n-Count_Technology_BV] [Eduard_de_Jong] 2013-01-22 Defined TXT keys: None +# transfer system +# ncsyncserver Network Clipboard Sync [Thom_McGrath] [Thom_McGrath] Defined TXT keys: Contact The ZAZ Software +# Lightweight event based +# nodel tcp control protocol utilising [Lumicom] [Michael_Cartmel] 2013-02-07 Defined TXT keys: None +# JavaScript Object Notation +# neoriders udp NeoRiders Client Discovery [Jesse_W_Towner] [Jesse_W_Towner] Defined TXT keys: None +# netrestore NetRestore [Mike_Bombich] [Mike_Bombich] Defined TXT keys: message, status, progress +# netvu-video tcp AD Group NetVu Connected [AD_Holdings] [Kelvin_Lawson] 2011-10-11 Defined TXT keys: none +# Video +# Proprietary communication +# nextcap tcp protocol for NextCap capture [NextDay_Aps] [Claus_Broch] 2012-04-24 Defined TXT keys: Proprietary +# solution +# nextcap udp protocol for NextCap capture [NextDay_Aps] [Claus_Broch] 2012-04-24 Defined TXT keys: Proprietary +# ni tcp National Instruments Network [National_Instruments] [Joshua_Prewitt] 2011-10-24 Defined TXT keys: MAC, DevClass, ProdId, ProdName, SerialNo, +# Device Status, ImgPath, Comment +# ni-rt tcp National Instruments [National_Instruments] [Joshua_Prewitt] 2011-10-24 Defined TXT keys: MAC, OS, OSVer, ProcArch +# Real-Time Target +# ni-sysapi tcp National Instruments System [National_Instruments] [Joshua_Prewitt] 2011-10-24 Defined TXT keys: MAC, Experts, Version +# API Service +# ntlx-arch American Dynamics Intellex [Gary_Sands] [Gary_Sands] Defined TXT keys: txtvers, macaddress, protovers, model, +# Archive Management Service serial +# American Dynamics Intellex Defined TXT keys: txtvers, macaddress, protovers, model, +# ntlx-ent Enterprise Management [Gary_Sands] [Gary_Sands] serial +# ntlx-video American Dynamics Intellex [Gary_Sands] [Gary_Sands] Defined TXT keys: txtvers, macaddress, protovers, model, +# Video Service serial, control, event +# ntx udp Tenasys [Carl_Ellis] [Carl_Ellis] Defined TXT keys: None +# obf Observations Framework [Matthew_Baker] [Matthew_Baker] Defined TXT keys: version= +# Means for clients to locate Defined TXT keys: txtvers='1' +# objective servers in an Objective [Marc_Bailey] [Marc_Bailey] type={'production'|'standby'|'test'|'demo'} +# (http://www.objective.com) protocol={['SOAP'],['CORBA']} transport=['iiop']|['http'] +# instance. +# Insecure OCP.1 protocol, +# oca tcp which is the insecure TCP/IP [OCA_Alliance] [Stephan_van_Tienen] 2012-10-11 Defined TXT keys: txtvers=1 protovers=x +# implementation of the Object +# Control Architecture +# oca udp which is the insecure TCP/IP [OCA_Alliance] [Stephan_van_Tienen] 2012-10-11 Defined TXT keys: txtvers=1 protovers=x +# Secure OCP.1 protocol, which +# ocasec tcp is the secure TCP/IP [OCA_Alliance] [Stephan_van_Tienen] 2012-10-11 Defined TXT keys: txtvers=1 protovers=x +# ocasec udp is the secure TCP/IP [OCA_Alliance] [Stephan_van_Tienen] 2012-10-11 Defined TXT keys: txtvers=1 protovers=x +# oce Oce Common Exchange Protocol [Dion_Slijp] [Dion_Slijp] Defined TXT keys: type, version +# od-master OpenDirectory Master [Jason_Thorpe] [Jason_Thorpe] Defined TXT keys: None +# odabsharing OD4Contact [Objective_Decision] [Objective_Decision] Defined TXT keys: None +# odisk Optical Disk Sharing [Bob_Bradley_2] [Bob_Bradley_2] Defined TXT keys: sys, dkX +# officetime-sync OfficeTime Synchronization [Support] [Support] Defined TXT keys: None +# ofocus-conf OmniFocus setting [Timothy_J_Wood] [Timothy_J_Wood] Defined TXT keys: None +# ofocus-sync OmniFocus document [Timothy_J_Wood] [Timothy_J_Wood] Defined TXT keys: Proprietary +# olpc-activity1 udp One Laptop per Child [One_Laptop_per_Child] [One_Laptop_per_Child] Defined TXT keys: Shared_Activity_Protocol_1.0 +# activity +# oma-bcast-sg OMA BCAST Service Guide [Stefan_Ekenberg] [Stefan_Ekenberg] Defined TXT keys: None +# Open Mobile Alliance (OMA) +# omadm-bootstrap tcp Device Management (DM) [Open_Mobile_Alliance] [Open_Mobile_Alliance_Device_Management_DM_Working_Group] 2011-08-19 Defined TXT keys: None +# Bootstrap Server Discovery +# omni-bookmark OmniWeb [The_Omni_Group] [The_Omni_Group] Defined TXT keys: None +# Service for remote control +# omni-live of Omnisphere virtual [Glenn_Olander_2] [Glenn_Olander_2] Defined TXT keys: omni-livetxt.html +# instrument +# openbase OpenBase SQL Defined TXT keys: None +# opencu udp Conferencing Protocol [Marc_Manthey_2] [Marc_Manthey_2] Defined TXT keys: None +# oprofile oprofile server protocol [Rob_Bradford] [Rob_Bradford] Defined TXT keys: None +# oscit udp Open Sound Control Interface [Gaspard_Bucher] [Gaspard_Bucher] Defined TXT keys: None +# ovready ObjectVideo OV Ready [Gary_Myers] [Gary_Myers] Defined TXT keys: txtvers, protovers +# owhttpd OWFS (1-wire file system) [Paul_H_Alfille] [Paul_H_Alfille] Defined TXT keys: txtvers +# web server +# parentcontrol Remote Parental Controls [John_Scalo] [John_Scalo] Defined TXT keys: None +# passwordwallet PasswordWallet Data [Sanford_Selznick] [Sanford_Selznick] Defined TXT keys: None +# pcast Mac OS X Podcast Producer [Nick_Brosnahan] [Nick_Brosnahan] Defined TXT keys: None +# p2pchat udp Peer-to-Peer Chat (Sample [Roger_Pantos] [Roger_Pantos] Defined TXT keys: None +# Java Bonjour application) +# p2pstorage-sec tcp DataBOND p2p storage [Dell] [Jessica_Zhang] 2012-11-19 Defined TXT keys: txtvers, machineid, status +# pairandshare tcp Pair & Share data protocol [Intel] [Joshua_Boelter] 2011-10-18 Defined TXT keys: Proprietary +# panoply tcp Panoply multimedia composite [Natarajan_Balasundar] [Natarajan_Balasundar] Defined TXT keys: None +# parabay-p2p tcp Parabay P2P protocol [Vishnu_Varadaraj] [Vishnu_Varadaraj] Defined TXT keys: None +# parity tcp PA-R-I-Ty (Public Address - [ims_Info] [Oskar_Persano] 2011-10-20 Defined TXT keys: Proprietary +# Radio - Intercom - Telefony) +# parity udp PA-R-I-Ty (Public Address - [ims_Info] [Oskar_Persano] 2011-10-20 Defined TXT keys: Proprietary +# pgpkey-hkp Horowitz Key Protocol (HKP) [Marc_Horowitz] [Marc_Horowitz] Defined TXT keys: None +# pgpkey-http PGP Keyserver using HTTP/1.1 [Jeroen_Massar_3] [Jeroen_Massar_3] Defined TXT keys: path= normally: "path=/pks/" +# pgpkey-https PGP Keyserver using HTTPS [Jeroen_Massar_3] [Jeroen_Massar_3] Defined TXT keys: path= +# SMTP +# photoparata Photo Parata Event [Sam_Carleton] [Sam_Carleton] Defined TXT keys: None +# Photography Software +# photosmithsync tcp Photosmith's iPad to [Photosmith] [Chris_Horne] 2011-10-27 Defined TXT keys: None +# Lightroom sync protocol +# pictua Pictua Intercommunication [Isaack_Rasmussen] [Isaack_Rasmussen] Defined TXT keys: None +# piesync pieSync Computer to Computer [Timothy_Wayper] [Timothy_Wayper] Defined TXT keys: None +# piu Pedestal Interface Unit by [James_Nikolai] [James_Nikolai] Defined TXT keys: None +# RPM-PSI +# poch Parallel OperatiOn and [Dean_Dauger] [Dean_Dauger] Defined TXT keys: None +# Control Heuristic (Pooch) +# podcastproxy tcp Protocol for communication [Moritz_Schmale] [Moritz_Schmale] 2011-10-07 Defined TXT keys: None +# between Podcast +# Communication channel for +# pokeeye "Poke Eye" Elgato EyeTV [Kristoffer_Lawson] [Kristoffer_Lawson] Defined TXT keys: None +# remote controller +# powereasy-erp PowerEasy ERP [Ulaganathan_Sriramul] [Ulaganathan_Sriramul] Defined TXT keys: ip, port, name, instance, cgi-alias, +# major-version, minor-version, custom +# powereasy-pos PowerEasy Point of Sale [Murthy_Parthasarathi] [Murthy_Parthasarathi] Defined TXT keys: ip, port, type, device-id, major-version, +# minor-version, custom +# pplayer-ctrl Piano Player Remote Control [Juraj_Zopp] [Juraj_Zopp] Defined TXT keys: Proprietary +# Defined TXT keys: See +# http://www.xmpp.org/registrar/linklocal.html Note: +# Registration updated May 2007. Was formerly listed as "iChat +# AV" (Apple's IM client for Mac OS X) with TXT keys: txtvers, +# port.p2pj, phsh, vc, 1st, AIM, msg, status, last When first +# shipped in Mac OS X 10.2, iChat's peer-to-peer messaging +# presence Peer-to-peer messaging / [XMPP_Registrar] [XMPP_Registrar] protocol was created to solve the problem of serverless +# Link-Local Messaging messaging between peers on the same link. However, there is +# nothing inherent in the protocol that limits it to being only +# link-local; it was simply an artifact of iChat in Mac OS X +# 10.2 using link-local Multicast DNS to discover peers. With +# the advent of Wide-Area DNS-SD, it is also possible to use +# iChat's peer-to-peer messaging between machines on different +# links. +# print-caps Retrieve a description of a [Troy_Bergstrand] [Troy_Bergstrand] Defined TXT keys: None +# device's print capabilities +# printopia tcp of "Printopia" application [Ecamm_Network_LLC] [Chris_Kent] 2011-10-24 Defined TXT keys: uuid = 55A346CB-C87C-4569-A4B0-248E6388893B +# software, which provides vers = 1.0 +# profilemac Profile for Mac medical [David_Sinclair_2] [David_Sinclair_2] Defined TXT keys: None +# practice management software +# prolog Prolog [Mike_Brady] [Mike_Brady] Defined TXT keys: version= +# protonet Protonet node and service [Ali_Jelveh] [Ali_Jelveh] Defined TXT keys: version, notes +# psap udp Progal Service Advertising [Soren_Weber] [Soren_Weber] Defined TXT keys: c0, c1, ..., cn +# Physical Security +# psia Interoperability Alliance [Frank_Yeh] [Frank_Yeh] Defined TXT keys: txtvers, protovers +# pstmailsync tcp File synchronization [Arrow_Bit_SL] [Javier_Nigro] 2012-04-26 Defined TXT keys: uuid= +# protocol for Pst Mail Sync +# pstmailsync-ssl tcp Secured file synchronization [Arrow_Bit_SL] [Javier_Nigro] 2012-04-26 Defined TXT keys: uuid= +# ptnetprosrv2 PTNetPro Service [Apple_Computer] [Apple_Computer] Defined TXT keys: None Profiling and performance analysis +# protocol for Shark 4.0 and BigTop. +# ptp-init tcp Picture Transfer [Canon_Inc] [Tatsuhiko_Sakai] 2011-10-03 Defined TXT keys: srvver, mn, mf, md, srv, tid +# Protocol(PTP) Initiator +# ptp-req PTP Initiation Request [Mark_Wood] [Mark_Wood] Defined TXT keys: txtvers, guid, c0, c1, c2, ..., where the +# Protocol number of c_n attributes is variable +# puzzle Protocol used for puzzle [Michael_Thomason] [Michael_Thomason] Defined TXT keys: None +# games +# pvaccess tcp Experimental Physics and [Matej_Sekoranja] [Matej_Sekoranja] 2012-03-23 Defined TXT keys: None +# qbox QBox Appliance Locator [Geoff_Back_4] [Geoff_Back_4] Defined TXT keys: None +# qttp QuickTime Transfer Protocol [Stuart_Cheshire_5] [Stuart_Cheshire_5] Defined TXT keys: u= p= path= (Same as for _http._tcp) +# quad tcp Distributed Game Data [Niall_Hogg] [Niall_Hogg] 2011-10-25 Defined TXT keys: Proprietary +# quinn Quinn Game Server [Simon_Haertel] [Simon_Haertel] Defined TXT keys: None +# rakket Rakket Client Protocol [Orion_Reblitz_Richar] [Orion_Reblitz_Richar] Defined TXT keys: None +# radiotag RadioTAG: Event tagging for [Andy_Buckingham] [Andy_Buckingham] Defined TXT keys: None +# radio services +# radiovis RadioVIS: Visualisation for [Andy_Buckingham] [Andy_Buckingham] Defined TXT keys: None +# RadioEPG: Electronic +# radioepg Programme Guide for radio [Andy_Buckingham] [Andy_Buckingham] Defined TXT keys: None +# services +# radioport tcp RadioPort Message Service [Bob_Iannucci] [Bob_Iannucci] 2011-11-23 Defined TXT keys: NONE +# radioport udp RadioPort Message Service [Bob_Iannucci] [Bob_Iannucci] 2011-11-23 Defined TXT keys: NONE +# raop Remote Audio Output Protocol [BonjourDev] [BonjourDev] 2011-10-14 Defined TXT keys: None +# (AirTunes) +# rbr RBR Instrument Communication [Greg_Johnson] [Greg_Johnson] Defined TXT keys: None +# rce PowerCard [DeVoeSquared] [DeVoeSquared] Defined TXT keys: None +# rdp Windows Remote Desktop [Jugaari] [Jugaari] Defined TXT keys: None +# realplayfavs RealPlayer Shared Favorites [RealNetworks] [RealNetworks] Defined TXT keys: None +# recipe-box tcp The Recipe Box Exchange [Corpus_Collusion] [Kathy_Tafel] 2011-08-23 Defined TXT keys: txtvers +# recipe-sharing tcp Recipe Sharing Protocol [Daniel_G_Taylor] [Daniel_G_Taylor] 2007-11 Defined TXT keys: +# [http://www.recipemanager.org/rsp/rsp10draft.html#dnssd] +# recolive-cc tcp Remote Camera Control [RecoLive_S`arl] [Gabriele_Mondada] 2012-08-29 Defined TXT keys: txtvers, cid, nbd, cap +# recolive-cc udp Remote Camera Control [RecoLive_S`arl] [Gabriele_Mondada] 2012-08-29 Defined TXT keys: txtvers, cid, nbd, cap +# Remote Device Control Defined TXT keys: txtvers= +# remote Protocol [Gregory_Dudek] [Gregory_Dudek] protovers= forground= version= +# remoteburn LaCie Remote Burn [Serge_DE_LUCA] [Serge_DE_LUCA] Defined TXT keys: server_version, min_client_version +# renderpipe ARTvps RenderDrive/PURE [Andrew_Hoddinott] [Andrew_Hoddinott] Defined TXT keys: None +# Renderer Protocol +# rendezvouspong RendezvousPong [Math_Game_House_Soft] [Math_Game_House_Soft] Defined TXT keys: None +# renkara-sync Renkara synchronization [Michael_J_Primeaux] [Michael_J_Primeaux] Defined TXT keys: None +# resol-vbus RESOL VBus [Daniel_Wippermann] [Daniel_Wippermann] Defined TXT keys: None +# retrospect Retrospect backup and [Michael_Marks] [Michael_Marks] Defined TXT keys: None +# Remote Frame Buffer Client Defined TXT keys: server=dns-name/ip-address:port of +# rfbc (Used by VNC viewers in [Ole_Morten_Duesund] [Ole_Morten_Duesund] currently displayed VNC server. Empty if not showing +# listen-mode) anything/available. +# rfid RFID Reader Mach1(tm) [Paul_Dietrich] [Paul_Dietrich] Defined TXT keys: None +# rgb tcp RGB Spectrum Device [RGB_Spectrum] [Steve_Hershey] 2011-10-10 Defined TXT keys: Keyboard, Mouse, Option1, Option2, Option3, +# Discovery Option4, ModelName +# riousbprint Remote I/O USB Printer [Rob_Newberry] [Rob_Newberry] Defined TXT keys: See BonjourPrinting.pdf. +# roku-rcp Roku Control Protocol [Don_Woodward] [Don_Woodward] Defined TXT keys: txtvers=1 +# rql RemoteQuickLaunch [Daniel_Heffernan] [Daniel_Heffernan] Defined TXT keys: None +# rsmp-server Remote System Management [Geoff_Back_3] [Geoff_Back_3] Defined TXT keys: apiver= +# Protocol (Server Instance) +# rubygems RubyGems GemServer [Rich_Kilmer] [Rich_Kilmer] Defined TXT keys: None +# rym-rrc tcp Raymarine remote control [Raymarine_UK_Limited] [Geoffrey_Beer] 2012-05-24 2012-06-04 Defined TXT keys: raymarine-mfd-rrc-version, +# protocol raymarine-mfd-model, raymarine-mfd-serial +# safarimenu Safari Menu [Jesus_De_Meyer] [Jesus_De_Meyer] Defined TXT keys: None +# sallingbridge Salling Clicker Sharing [Jonas_Salling] [Jonas_Salling] Defined TXT keys: None +# sallingclicker Salling Clicker Service [Jonas_Salling] [Jonas_Salling] Defined TXT keys: None +# Salutafugi Peer-To-Peer Java +# salutafugijms Message Service [David_Walend] [David_Walend] Defined TXT keys: SalutaProperties +# Implementation +# sandvox Sandvox [Karelia_Software] [Karelia_Software] Defined TXT keys: None +# savagesoft tcp Proprietary Client Server [Andy_Savage] [Andy_Savage] 2012-07-13 Defined TXT keys: None +# sc-golf StrawberryCat Golf Protocol [Phil_Willoughby] [Phil_Willoughby] Defined TXT keys: None +# scanner Bonjour Scanning [Baskaran_Subramaniam] [Baskaran_Subramaniam] Defined TXT keys: None +# schick Schick [Heiko_Kretschmer] [Heiko_Kretschmer] Defined TXT keys: None +# scone Scone [James_Moore] [James_Moore] Defined TXT keys: None +# scpi-raw IEEE 488.2 (SCPI) Socket [Nick_Barendt_3] [Nick_Barendt_3] Defined TXT keys: None +# scpi-telnet IEEE 488.2 (SCPI) Telnet [Nick_Barendt_3] [Nick_Barendt_3] Defined TXT keys: None +# sdsharing Speed Download [Yazsoft] [Yazsoft] Defined TXT keys: None +# see SubEthaEdit 2 [TheCodingMonkeys] [TheCodingMonkeys] Defined TXT keys: txtvers=1, name=, userid=, version=2 +# seeCard seeCard [Stefan_Pantke] [Stefan_Pantke] Defined TXT keys: None +# senteo-http Senteo Assessment Software [Michael_Boyle] [Michael_Boyle] Defined TXT keys: None +# sentillion-vlc Sentillion Vault System [George_Hartz] [George_Hartz] Defined TXT keys: None +# sentillion-vlt Sentillion Vault Systems [George_Hartz] [George_Hartz] Defined TXT keys: None +# Cluster +# sepvsync SEPV Application Data [Kazuya_Ogata] [Kazuya_Ogata] Defined TXT keys: Proprietary +# serendipd serendiPd Shared Patches for [Hans_Christoph_Stein] [Hans_Christoph_Stein] Defined TXT keys: None +# Pure Data +# servereye ServerEye AgentContainer [Andreas_Behr] [Andreas_Behr] Defined TXT keys: None +# servermgr Mac OS X Server Admin [Jeff_Albouze] [Jeff_Albouze] Defined TXT keys: None +# services DNS Service Discovery [Stuart_Cheshire_5][Marc_Krochmal] [Stuart_Cheshire_5][Marc_Krochmal] Not a service type. Special name reserved for DNS-SD meta +# sessionfs Session File Sharing [Anthony_Williams] [Anthony_Williams] Defined TXT keys: Text keys are the file extensions of any +# file the user plans to share, i.e. pdf, doc, mp3. +# sftp-ssh Secure File Transfer [Bryan_Cole] [Bryan_Cole] Defined TXT keys: u= p= path= +# Protocol over SSH +# Defined TXT keys: username The login username to use +# Window Shifter server (optional) ssh_tunnel Whether an SSH tunnel must be used +# shifter protocol [Antoine_Martin] [Antoine_Martin] (required) iface The network interface the server is on +# (required - may be empty) version Software version (required) +# ID Server Identifier (requried) +# shipsgm Swift Office Ships [Verek] [Verek] Defined TXT keys: None +# shipsinvit Swift Office Ships [Verek] [Verek] Defined TXT keys: None +# shoppersync SplashShopper [Justin_Cepelak] [Justin_Cepelak] Defined TXT keys: Proprietary +# Synchronization Service +# shoutcast Nicecast [Rogue_Amoeba_2] [Rogue_Amoeba_2] Defined TXT keys: None +# Medical simulation patient +# simmon monitor syncronisation [Niels_Castle] [Niels_Castle] Defined TXT keys: None +# simusoftpong simusoftpong iPhone game [Anders_Svensson] [Anders_Svensson] Defined TXT keys: Proprietary +# sipver SIP version +# sipstd RFC number of SIP standard to comply with +# realm SIP realm (see RFC3261) +# fromuser username for SIP "from" header (see RFC3261) +# fromdomain domain for SIP "from" header (see RFC3261) +# registrar SIP registrar (see RFC3261) +# sip udp Session Initiation Protocol, [Benjamin_Kowarsch] [Benjamin_Kowarsch] proxy SIP proxy (see RFC3261) +# signalling protocol for VoIP natproxy SIP proxy for NATed clients +# outproxy outbound SIP proxy (see RFC3261) +# stunserver STUN server DNS name or IP address +# contact SIP URI (see RFC3261) +# dtmfmode inband | rfc2833 | sipinfo +# welcome SIP URI (see RFC3261) +# voicemail SIP URI (see RFC3261) +# reception SIP URI (see RFC3261) +# echotest SIP URI (see RFC3261) +# ivrtest SIP URI (see RFC3261) +# Further TXT record keys may be added in the future. +# sipuri Session Initiation Protocol [Jae_Woo_Lee] [Jae_Woo_Lee] Defined TXT keys: Defined in URL specification +# Uniform Resource Identifier +# sironaxray Sirona Xray Protocol [Michael_Dalpiaz] [Michael_Dalpiaz] Defined TXT keys: Manufacturer=Sirona +# skype Skype Defined TXT keys: platform, status, auth, rversion, version +# sleep-proxy udp Sleep Proxy Server [Stuart_Cheshire_5][Marc_Krochmal] [Stuart_Cheshire_5][Marc_Krochmal] Defined TXT keys: None +# slimcli SliMP3 Server Command-Line [Dean_Blackketter_2] [Dean_Blackketter_2] Defined TXT keys: None +# slimhttp SliMP3 Server Web Interface [Dean_Blackketter_2] [Dean_Blackketter_2] Defined TXT keys: None +# smartenergy Smart Energy Profile [Robby_Simpson] [Robby_Simpson] Defined TXT keys: See http://www.zigbee.org/SmartEnergy +# smartsocket tcp home control [Robert_Diamond] [Robert_Diamond] 2012-07-06 Defined TXT keys: None +# smb Server Message Block over Defined TXT keys: u= p= path= +# TCP/IP +# sms Short Text Message Sending [Christian_Flintrup] [Christian_Flintrup] Defined TXT keys: Proprietary +# and Delivery Status Service +# Syncellence file Defined TXT keys: device= protocol= os= osver= +# soap Simple Object Access [Andrew_Donoho] [Andrew_Donoho] Defined TXT keys: None +# socketcloud Socketcloud distributed [Robert_Goodyear] [Robert_Goodyear] Defined TXT keys: system, service, process, context, +# application framework direction, status, progress, health, directive, flags +# sox Simple Object eXchange [Igor_Mozolevsky] [Igor_Mozolevsky] Defined TXT keys: Proprietary +# sparechange SpareChange data sharing [Dave_Carrigan] [Dave_Carrigan] Defined TXT keys: None +# spearcat sPearCat Host Discovery [Pierre_Frisch_2] [Pierre_Frisch_2] Defined TXT keys: applicationname=, +# osname=, sslsupport= +# spidap tcp Sierra Photonics Inc. data [Sierra_Photonics_Inc] [Support_Staff] 2011-10-20 Defined TXT keys: None +# spincrisis Spin Crisis [Sphera_Software] [Sphera_Software] Defined TXT keys: None +# spl-itunes launchTunes [David_Nanian_2] [David_Nanian_2] Defined TXT keys: None +# spr-itunes netTunes [David_Nanian_2] [David_Nanian_2] Defined TXT keys: None +# splashsync SplashData Synchronization [Justin_Cepelak] [Justin_Cepelak] Defined TXT keys: Proprietary +# spres tcp SongPresenter [Tobias_Hoffmann] [Tobias_Hoffmann] 2012-10-09 Defined TXT keys: version, name +# ss-sign tcp Samsung Smart Interaction [Samsung] [Lee_HoJun] 2013-01-03 Defined TXT keys: None +# for Group Network +# ss-sign-disc udp Samsung Smart Interaction [Samsung] [Lee_HoJun] 2013-01-03 Defined TXT keys: None +# for Group Network Discovery +# Defined TXT keys: txtvers=1 cport= the port for the content +# HTTP server (secondary HTTP server used for content +# publishing) mode= the mode in which the HMP device is +# spx-hmp tcp SpinetiX HMP [SpinetiX_S_A] [Diego_Santa_Cruz] 2011-10-18 currently operating, one of "normal", "safe" or "recovery" +# serial= serial number of the HMP device firmware= firmware +# version string (e.g., 2.1.0-0.1.7844) model= model string +# (e.g., HMP100) +# ssh tcp SSH Remote Login Protocol [Tatu_Ylonen] [Tatu_Ylonen] Defined TXT keys: u= p= +# ssscreenshare Screen Sharing Defined TXT keys: None +# strateges Strateges [Jean_Olivier_Lanctot] [Jean_Olivier_Lanctot] Defined TXT keys: None +# sge-exec Sun Grid Engine (Execution [Bill_Van_Etten] [Bill_Van_Etten] Defined TXT keys: None +# Host) +# sge-qmaster Sun Grid Engine (Master) [Bill_Van_Etten] [Bill_Van_Etten] Defined TXT keys: None +# soda tcp Secure On Device API [Smith_Micro_Software_Inc] [David_Sperling_2] 2011-10-10 Defined TXT keys: a. ssid= b. +# bssid= +# souschef SousChef Recipe Sharing [Ben] [Ben] Defined TXT keys: None +# Defined TXT keys: txtvers=1 path= protovers= [if not specified then default +# SPARQL Protocol and RDF is 1.0, corresponding to SPARQL version] binding= [if not specified then default is HTTP] vocabs= [RDF vocabularies or OWL ontologies +# used by the endpoint] metadata= [to fetch RDF/XML +# description of SPARQL service] +# sqp tcp Square Connect Control [Square_Connect_Inc] [Mat_Henshall] 2011-10-07 Defined TXT keys: Proprietary +# stanza Lexcycle Stanza service for [Marc_Prud_hommeaux] [Marc_Prud_hommeaux] Defined TXT keys: None +# discovering shared books +# stickynotes Sticky Notes [Johnnie_Walker] [Johnnie_Walker] Defined TXT keys: None +# stotp tcp One Time Pad Synchronisation [softthere_com] [James_Crosby] 2011-10-17 Defined TXT keys: None +# supple Supple Service protocol [Dave_Christianson] [Dave_Christianson] Defined TXT keys: type url +# surveillus Surveillus Networks [Mark_Lewis_3] [Mark_Lewis_3] Defined TXT keys: None +# svn Subversion [CollabNet] [CollabNet] Defined TXT keys: None +# swcards Signwave Card Sharing [Signwave_Networking] [Signwave_Networking] Defined TXT keys: None +# switcher Wireless home control remote [Steve_Splonskowski] [Steve_Splonskowski] Defined TXT keys: None +# swordfish Swordfish Protocol for [Jim_Wallace] [Jim_Wallace] Defined TXT keys: None +# Input/Output +# Framework for transferring +# swyp any file from any app, to [ExoMachina] [Alexander_List] 2011-12-06 Defined TXT keys: NONE +# any app on any device: +# simply with a swyp. +# sxqdea Synchronize! Pro X [Qdea] [Qdea] Defined TXT keys: None +# sybase-tds Sybase Server Defined TXT keys: None +# syncopation Syncopation Synchronization [Sonzea] [Sonzea] Defined TXT keys: None +# Protocol by Sonzea +# syncqdea Synchronize! X Plus 2.0 [Qdea] [Qdea] Defined TXT keys: None +# synergy Synergy Peer Discovery [Karl_Timmermann] [Karl_Timmermann] Defined TXT keys: None +# synksharing SynkSharing synchronization [Benjamin_Rister] [Benjamin_Rister] Defined TXT keys: None +# taccounting Data Transmission and [John_MacMullin] [John_MacMullin] Defined TXT keys: None +# tango Tango Remote Control [Tony_Amundson] [Tony_Amundson] Defined TXT keys: None +# tapinoma-ecs Tapinoma Easycontact [Bonjour] [Bonjour] Defined TXT keys: None +# receiver +# Task Coach Two-way +# taskcoachsync Synchronization Protocol for [Jerome_Laheurte] [Jerome_Laheurte] Defined TXT keys: None +# iPhone +# Defined TXT keys: txtvers=1, sesna, seid, setype, cosna, +# tbricks tbricks internal protocol [Joakim_Johansson] [Joakim_Johansson] coid, cotype, sysna, syna, syid, subsyid, venid, protocols, +# pid +# tcode Time Code [Marshall_Anschutz] [Marshall_Anschutz] Defined TXT keys: None +# tcu Tracking Control Unit by [James_Nikolai] [James_Nikolai] Defined TXT keys: None +# te-faxserver TE-SYSTEMS GmbH Fax Server [Tobias_Erichsen] [Tobias_Erichsen] Defined TXT keys: Proprietary +# teamlist ARTIS Team Task [ARTIS_Software] [ARTIS_Software] Defined TXT keys: None +# teleport udp teleport [Julien_Robert] [Julien_Robert] Defined TXT keys: None +# tenir-rc tcp Proprietary [Tenir_Software] [Steve_Gums] 2011-10-27 Defined TXT keys: Proprietary +# tera-fsmgr Terascala Filesystem Manager [Mike_Nuss] [Mike_Nuss] Defined TXT keys: Proprietary +# tera-mp Terascala Maintenance [Mike_Nuss] [Mike_Nuss] Defined TXT keys: Proprietary +# test-ok tcp Test Controller Card [TEST-OK_BV] [Jeroen_Ommering] 2012-09-05 Defined TXT keys: TEST-OK Test Controller Card TCCxxxx +# tf-redeye ThinkFlood RedEye IR bridge [Matt_Eagar] [Matt_Eagar] Defined TXT keys: None +# thumbwrestling tinkerbuilt Thumb Wrestling [Jamie_Halmick] [Jamie_Halmick] Defined TXT keys: None +# game +# ticonnectmgr TI Connect Manager Discovery [Stephen_Reid] [Stephen_Reid] Defined TXT keys: None +# tinavigator TI Navigator Hub 1.0 [Stephen_Reid] [Stephen_Reid] Defined TXT keys: None +# tivo-device tcp TiVo Device Protocol [TiVo_Inc] [Developer_Support_2] 2011-10-18 Defined TXT keys: None +# tivo-hme TiVo Home Media Engine [Developer_Support] [Developer_Support] Defined TXT keys: None +# tivo-mindrpc tcp TiVo RPC Protocol [TiVo_Inc] [Developer_Support_2] 2011-10-18 Defined TXT keys: None +# tivo-music TiVo Music Protocol [Developer_Support] [Developer_Support] Defined TXT keys: None +# tivo-photos TiVo Photos Protocol [Developer_Support] [Developer_Support] Defined TXT keys: None +# tivo-remote TiVo Remote Protocol [Developer_Support] [Developer_Support] Defined TXT keys: protocol, path, swversion, platform, TSN +# tivo-videos TiVo Videos Protocol [Developer_Support] [Developer_Support] Defined TXT keys: protocol, path, swversion, platform, TSN +# todogwa 2Do Sync Helper Tool for Mac [Fahad_Gilani] [Fahad_Gilani] Defined TXT keys: None +# OS X and PCs +# tomboy Tomboy [Alex_Graveley] [Alex_Graveley] Defined TXT keys: None +# toothpicserver ToothPics Dental Office [Milton_Pulis] [Milton_Pulis] Defined TXT keys: None +# Support Server +# touch-able iPhone and iPod touch Remote [Amandeep_Jawa_3] [Amandeep_Jawa_3] Defined TXT keys: txtvers, CtlN, DbId, Ver, DvTy, OSsi, DvSv +# Controllable +# touch-remote iPhone and iPod touch Remote [Amandeep_Jawa_3] [Amandeep_Jawa_3] Defined TXT keys: txtvers, DvNm, Pair, RemV, RemN, DvTy +# Pairing +# tri-vis-client triCerat Simplify Visibility [Christopher_Karper] [Christopher_Karper] Defined TXT keys: None +# tri-vis-server triCerat Simplify Visibility [Christopher_Karper] [Christopher_Karper] Defined TXT keys: None +# tryst Tryst [Francisco_Ryan_Tolma] [Francisco_Ryan_Tolma] Defined TXT keys: None +# The Social Broadband Defined TXT keys: there is no TXT keys defined for this +# tsbiis tcp Interference Information [Sergio_Luis] [Sergio_Luis] 2012-02-27 protocol +# Sharing +# tt4inarow Trivial Technology's 4 in a [Nicolas_Payette] [Nicolas_Payette] Defined TXT keys: None +# Row +# ttcheckers Trivial Technology's [Nicolas_Payette] [Nicolas_Payette] Defined TXT keys: None +# Checkers +# ttp4daemon TechTool Pro 4 Anti-Piracy [Micromat] [Micromat] Defined TXT keys: None +# tunage Tunage Media Control Service [Matt_Patenaude] [Matt_Patenaude] Defined TXT keys: None +# tuneranger TuneRanger [Acertant] [Acertant] Defined TXT keys: None +# twinlevel tcp detect sanitary product [Oblamatik_AG] [Simon_Ensslen] 2012-09-05 Defined TXT keys: None +# TZ-Software remote procedure +# tzrpc tcp call based synchronization [Thomas_Zwick] [Thomas_Zwick] 2011-10-12 Defined TXT keys: Proprietary +# ubertragen Ubertragen [Widgetschmie_de] [Widgetschmie_de] Defined TXT keys: None +# uddi Universal Description, [Paul_Denning] [Paul_Denning] Defined TXT keys: TBD +# Discovery and Integration +# Universal Description, +# uddi-inq Discovery and Integration [Paul_Denning] [Paul_Denning] Defined TXT keys: TBD +# Inquiry +# uddi-pub Discovery and Integration [Paul_Denning] [Paul_Denning] Defined TXT keys: TBD +# Publishing +# uddi-sub Discovery and Integration [Paul_Denning] [Paul_Denning] Defined TXT keys: TBD +# Subscription +# uddi-sec Discovery and Integration [Paul_Denning] [Paul_Denning] Defined TXT keys: TBD +# upnp Universal Plug and Play [Andrew_Donoho] [Andrew_Donoho] Defined TXT keys: None +# urlbookmark URL Advertising [Sven_S_Porst] [Sven_S_Porst] Defined TXT keys: URL=, name= +# uswi Universal Switching [Roger_Lemberg] [Roger_Lemberg] Defined TXT keys: None +# Corporation products +# utest uTest [Gregory_Power] [Gregory_Power] Defined TXT keys: None +# uwsgi Unbit Web Server Gateway [Roberto_De_Ioris] [Roberto_De_Ioris] Defined TXT keys: None +# ve-decoder American Dynamics VideoEdge [Gary_Sands] [Gary_Sands] Defined TXT keys: txtvers, macaddress, protovers, model, +# Decoder Control Service serial, path, idp +# ve-encoder American Dynamics VideoEdge [Gary_Sands] [Gary_Sands] Defined TXT keys: txtvers, macaddress, protovers, model, +# Encoder Control Service serial, path, idp +# ve-recorder American Dynamics VideoEdge [Gary_Sands] [Gary_Sands] Defined TXT keys: txtvers, macaddress, protovers, model, +# Recorder Control Service serial, path, idp +# virtualdj VirtualDJ Remote Control [Atomix_Productions] [Stephane_Clavel] 2011-10-12 Defined TXT keys: None +# Defined TXT keys: Version= Type= Name= Zone= ID= +# SString= SString1= +# Virtual Object System (using Defined TXT keys: url= +# vos VOP/TCP) [Reed_Hedges][Peter_Amstutz] [Reed_Hedges][Peter_Amstutz] type= title= descr= +# vue4rendercow VueProRenderCow Defined TXT keys: None +# vxi-11 VXI-11 TCP/IP Instrument [Nick_Barendt_2] [Nick_Barendt_2] Defined TXT keys: None +# wakeywakey tcp Proprietary [gerry_Brown_associates] [Gerry_Brown] 2012-11-29 Defined TXT keys: None +# walkietalkie Walkie Talkie [Johan_Kool] [Johan_Kool] Defined TXT keys: None +# wd-2go tcp NAS Service Protocol [Western_Digital] [Rajesh_Batra] 2012-07-11 Defined TXT keys: None +# we-jell Proprietary collaborative [Vaughn_Amann] [Vaughn_Amann] Defined TXT keys: user= stat= agent= +# World Wide Web Distributed +# webdav Authoring and Versioning [Y_Y_Goland] [Y_Y_Goland] Defined TXT keys: u= p= path= +# (WebDAV) +# webdavs WebDAV over SSL/TLS [Y_Y_Goland] [Y_Y_Goland] Defined TXT keys: u= p= path= +# webissync WebIS Sync Protocol [Alex_Kac] [Alex_Kac] Defined TXT keys: None +# wedraw weDraw document sharing [Oleksandr_Zakharchuk] [Oleksandr_Zakharchuk] Defined TXT keys: None +# whamb Whamb [Whamb] [Whamb] Defined TXT keys: None +# whistler Honeywell Video Systems [Shankar_Prasad_2] [Shankar_Prasad_2] Defined TXT keys: None +# wicop udp WiFi Control Platform [Santorini_LLC] [Cameron_Colpitts] 2011-10-25 Defined TXT keys: state= loc= +# witap WiTap Sample Game Protocol [Rory_McGuire_2] [Rory_McGuire_2] Defined TXT keys: None +# witapvoice witapvoice [Roberto_Garcia] [Roberto_Garcia] Defined TXT keys: None +# wkgrpsvr Workgroup Server Discovery [Forest_Hill] [Forest_Hill] Defined TXT keys: None +# workstation Workgroup Manager [Kevin_Arnold] [Kevin_Arnold] Defined TXT keys: None +# wormhole Roku Cascade Wormhole [Don_Woodward] [Don_Woodward] Defined TXT keys: txtvers=1 +# workgroup Novell collaboration [Brady_Anderson] [Brady_Anderson] Defined TXT keys: version=? description=? +# workgroup +# writietalkie Writie Talkie Data Sharing [Yin_Ki_Lau] [Yin_Ki_Lau] Defined TXT keys: None +# ws Web Services [Andrew_Donoho] [Andrew_Donoho] Defined TXT keys: None +# wtc-heleos Wyatt Technology Corporation [Brent_Fulgham] [Brent_Fulgham] Defined TXT keys: None +# HELEOS +# wtc-qels Wyatt Technology Corporation [Brent_Fulgham] [Brent_Fulgham] Defined TXT keys: None +# QELS +# wtc-rex Wyatt Technology Corporation [Roy_Reapor] [Roy_Reapor] Defined TXT keys: None +# Optilab rEX +# wtc-viscostar Wyatt Technology Corporation [Roy_Reapor] [Roy_Reapor] Defined TXT keys: None +# ViscoStar +# wtc-wpr Wyatt Technology Corporation [Brent_Fulgham] [Brent_Fulgham] Defined TXT keys: None +# DynaPro Plate Reader +# wwdcpic PictureSharing sample code [Marc_Krochmal] [Marc_Krochmal] Defined TXT keys: None +# x-on x-on services [Matthias_Burghardt] [Matthias_Burghardt] Defined TXT keys: Proprietary +# synchronisation protocol +# x-plane9 udp x-plane9 [Austin_Meyer] [Austin_Meyer] Defined TXT keys: None +# xcodedistcc Xcode Distributed Compiler [Scott_Tooker] [Scott_Tooker] Defined TXT keys: None +# xgate-rmi xGate Remote Management [Tim_Jobling] [Tim_Jobling] Defined TXT keys: tech=value (string) model=value (string) +# Interface version=value (string) +# xmiserver tcp XMI Systems home terminal [XMI_Systems_SA] [CLAUDE_MALLY] 2013-01-18 Defined TXT keys: coucou +# local connection +# xmp Xperientia Mobile Protocol [Henric_Bergh] [Henric_Bergh] 2007-01 Defined TXT keys: txtvers, user, system, nodeid, desc +# xsanclient Xsan Client [Jeff_Albouze] [Jeff_Albouze] Defined TXT keys: None +# xsanserver Xsan Server [Jeff_Albouze] [Jeff_Albouze] Defined TXT keys: None +# xsansystem Xsan System [Jeff_Albouze] [Jeff_Albouze] Defined TXT keys: None +# xtimelicence xTime License [AppMac_Software] [AppMac_Software] Defined TXT keys: None +# xtshapro xTime Project [AppMac_Software] [AppMac_Software] Defined TXT keys: None +# XUL (XML User Interface Defined TXT keys: u= p= path= (Same as for _http._tcp) +# HTTP +# yakumo udp Yakumo iPhone OS Device [Daniel_Heffernan] [Daniel_Heffernan] Defined TXT keys: None +# z-wave tcp Z-Wave Service Discovery [Sigma_Designs_Inc] [Anders_Brandt_2] 2011-10-03 Defined TXT keys: NIF, EP, LM +# z-wave udp Z-Wave Service Discovery [Sigma_Designs_Inc] [Anders_Brandt_2] 2011-10-03 Defined TXT keys: NIF, EP, LM +# zeromq tcp High performance brokerless [Daniel_Holth] [Daniel_Holth] 2012-04-24 Defined TXT keys: type, app, label, note +# zeromq udp High performance brokerless [Daniel_Holth] [Daniel_Holth] 2012-04-24 Defined TXT keys: type, app, label, note +# +# People +# +# ID Name Organization Contact URI Last +# Updated +# [AMTEC_S_p_A] AMTEC S.p.A mailto:sp.amtec&interbusiness.it +# [APCO_Project] Steve Glass APCO Project 25 mailto:admin&sedition.org.au 2011-05-13 +# [ARTIS_Software] ARTIS Software mailto:contact&artissoftware.com +# [ASDIS_Support] ASDIS Support mailto:support&asdis.de 2005-08 +# [A_Blake_Cooper] A. Blake Cooper mailto:blake&cluebie.net 2003-06 +# [A_Boninn] A. Boninn mailto:aboninn&hotmail.com +# [A_P_Hobson] A.P. Hobson mailto:A.P.Hobson&bra0112.wins.icl.co.uk +# [Aaron_Ballman] Aaron Ballman mailto:aaron&realsoftware.com 2004-11 +# [Aaron_Bilbrey] Aaron Bilbrey mailto:abilbrey&commvault.com +# [Aaron_Brick] Aaron Brick mailto:aa&lithic.org +# [Aaron_Fracht_Monroe] Aaron Fracht-Monroe mailto:afracht-monroe&amcomsoft.com 2010-06-03 +# [Aaron_L_Bratcher] Aaron L. Bratcher mailto:aaronlbratcher&yahoo.com 2011-10-17 +# [Aaron_Lav] Aaron Lav mailto:aaron&taltrade.com +# [Aaron_Myer] Aaron Myer mailto:aaron.myer&in2nets.com 2004-06 +# [Aaron_S_Kurland] Aaron S. Kurland mailto:akurland&netsilicon.com +# [Aaron_Stein] Aaron Stein mailto:aaron.stein&ca.com +# [Abdullah_Obeid] Abdullah Obeid mailto:a.obeid&contamac.nl 2008-03-20 +# [Abel_Chou] Abel Chou mailto:abel&willy.esl.com +# [Abhay_Rajaram] Abhay Rajaram mailto:Abhay_Rajaram&3com.com 2003-03 +# [Abhijit_Kumar] Abhijit Kumar mailto:as-iana-ports&sun.com 2005-11 +# [AccuMed_Services] AccuMed Services mailto:scarleton&accu-med.com 2011-10-20 +# [Acertant] Acertant +# Technologies, Inc. +# [AD_Holdings] AD Holdings mailto:klawson&ad-holdings.co.uk 2011-10-11 +# [Adam_Berk] Adam Berk mailto:aberk&empirix.com +# [Adam_Curtin] Adam Curtin mailto:adam.curtin&isysg.com +# [Adam_Ernst] Adam Ernst mailto:cosmicsoft&cosmicsoft.net 2004-12 +# [Adam_Ernst_2] Adam Ernst mailto:contact&cosmicsoft.net 2002-06 +# [Adam_Gawne_Cain] Adam Gawne-Cain mailto:adam&gawncainresearch.co.uk 2003-11 +# [Adam_Golovenko] Adam Golovenko mailto:golovenko&gmail.com 2006-10 +# [Adam_Kerrison] Adam Kerrison mailto:adamµmuse.co.uk +# [Adam_Maxwell] Adam Maxwell mailto:amaxwell&mac.com +# [Adam_Robinson] Adam Robinson Data Access, Inc. mailto:adam&dataaccessinc.com 2012-04-30 +# [AddressBookServer] AddressBookServer.com mailto:iana&addressbookserver.com 2011-10-18 +# [Adi_Ruppin] Adi Ruppin mailto:adi.ruppin&data-pod.com 2005-08 +# [Administrator] Administrator mailto:admin&ipcore.co.za 2005-12 +# [Adobe_Systems] Adobe Systems Inc. mailto:mikeharr&adobe.com 2012-04-17 +# [Adrian_Hornby] Adrian Hornby mailto:Adrian.Hornby&aran.co.uk +# [Adrian_Hungate] Adrian Hungate mailto:adrian&haqa.co.uk 2009-09-14 +# [Adrian_Mancini] Adrian Mancini mailto:adrian.mancini&entrust.com +# [Adrian_Pell] Adrian Pell mailto:PELL_ADRIAN/HP-UnitedKingdom_om6@hplb.hpl.hp.com +# [Adrian_Popescu] Adrian Popescu mailto:Adrian_Popescu&groove.net 2002-09 +# [Adrien_de_Croy] Adrien de Croy mailto:adrien&qbik.com +# [Adwait_Sathe] Adwait Sathe mailto:asathe&sonusnet.com 2005-08 +# [Aerohive_Networks] Aerohive Networks mailto:iana&aerohive.com 2012-06-04 +# [Afkham_Azeez] Afkham Azeez mailto:azeez&wso2.com 2006-06 +# [Afshin_Jafari] Afshin Jafari iConstruct (Aus) Pty mailto:jafari&pdcwa.com.au 2012-12-21 +# Ltd +# [Agilent_Technologies_Inc] Agilent Technologies, mailto:tom_fay&agilent.com 2013-01-16 +# Inc. +# [Agri_Datalog] Agri Datalog mailto:contact&agri-datalog.com +# [Ahmad_Tajuddin_Samsu] Ahmad Tajuddin Samsudin mailto:tajuddin&tmrnd.com.my 2007-02 +# [Ahti_Heinla] Ahti Heinla mailto:ahti&ahti.bluemoon.ee 2002-06 +# [Aivi_Lie] Aivi Lie mailto:LIEA&netsoft.com +# [Ajay_Jindal] Ajay Jindal mailto:ajayjµsoft.com +# [Ake_Hedman] Ake Hedman mailto:akhe&eurosource.se 2005-11 +# [Akira_Ide] Akira Ide mailto:ide.akira&jp.fujitsu.com 2006-09 +# [Akira_Saito] Akira Saito mailto:admin&kobu.com 2003-04 +# [Akiyoshi_Ochi] Akiyoshi Ochi mailto:akiyoshi&net.paso.fujitsu.co.jp +# [Al_Amet] Al Amet mailto:aamet&point-inc.com +# [Al_Guetzlaff] Al Guetzlaff mailto:aeg&teamquest.com +# [Alain_Durand] Alain Durand mailto:Alain.Durand&imag.fr +# [Alain_Robert] Alain Robert mailto:arobert&par.sita.int +# [Alain_Robert_2] Alain Robert mailto:Alain.Robert&hmrinc.com +# [Alan_Akahoshi] Alan Akahoshi mailto:alan-akahoshi&vertel.com +# [Alan_Bivens] Alan Bivens mailto:jbivens&us.ibm.com 2003-08 +# [Alan_Butt] Alan Butt mailto:alan.butt&landesk.com 2006-03 +# [Alan_Clifford] Alan Clifford mailto:alan&clifford.ac +# [Alan_Dano] Alan Dano mailto:wiseobject&yahoo.com +# [Alan_Francis] Alan Francis mailto:AlanF&zonal.co.uk 2002-05 +# [Alan_King] Alan King Enabling Technology mailto:aking&etdesigners.com 2009-08-13 +# Pty. Ltd. +# [Alan_Malik] Alan Malik mailto:alan&exasoft.co.uk 2003-11 +# [Alan_Minchew] Alan Minchew mailto:alan.minchew&hp.com 2011-05-23 +# [Alan_Noble] Alan Noble mailto:noble&netmind.com +# [Alan_Pickrell] Alan Pickrell mailto:alanp&goahead.com +# [Alan_Potter] Alan Potter mailto:potter&movies.enet.dec.com +# [Alan_Robertson] Alan Robertson mailto:alanr&unix.sh +# [Alan_Sandell] Alan Sandell mailto:alan.sandell&ist.co.uk 2008-05-01 +# [Alan_Ungar] Alan Ungar mailto:aungar&farradyne.com +# [Alan_Yates] Alan Yates mailto:alany&ay.com.au +# [Alanax_Technologies_Inc] Alanax Technologies, mailto:brian.barritt&alanax.com 2013-01-14 +# Inc +# [Albert_Berlovitch] Albert Berlovitch mailto:albertb&voltaire.com 2009-12-17 +# [Albert_C_Yang] Albert C. Yang mailto:albert.yang&ezmeeting.com 2002-03 +# [Albert_Cester] Albert Cester mailto:albert.cester&assyst-intl.com 2008-08-26 +# [Albert_G_Broscius] Albert G. Broscius mailto:broscius&dsl.cis.upenn.edu +# [Albert_Holt] Albert Holt mailto:alberth&triosoftware.com +# [Albert_Holt_2] Albert Holt mailto:alberth&fiorano.com +# [Albert_Hou] Albert Hou mailto:ahou1&bloomberg.com 2006-05 +# [Albert_Leung] Albert Leung mailto:aleung&biscom.com 2006-04 +# [Albert_Manfredi] Albert Manfredi mailto:manfredi&engr05.comsys.rockwell.com +# [Alberto_Berlen] Alberto Berlen mailto:aberlen&vnet.ibm.com +# [Alberto_Cerpa] Alberto Cerpa mailto:cerpa&isi.edu +# [Alberto_Fernandez] Alberto Fernandez mailto:af&xtec.com 2006-01 +# [Alberto_Ortega_Llama] Alberto Ortega Llamas mailto:alberto.kun666&gmail.com 2009-11-04 +# [Alberto_Raydan] Alberto Raydan mailto:alberto&altasol.com +# [Alberto_Raydan_2] Alberto Raydan mailto:raydan_a&socalia.com 2005-08 +# [Albrecht_Mayer] Albrecht Mayer mailto:albrecht.mayer&infineon.com 2002-05 +# [Alcorn_McBride_Inc] Alcorn McBride Inc. mailto:jeff&alcorn.com +# [Alec_Carlson] Alec Carlson mailto:acarlson&smithmicro.com 2003-01 +# [Alec_Muffett] Alec Muffett mailto:alecm&sun.com +# [Alejandro_Bonet] Alejandro Bonet mailto:babel&ctv.es +# [Alessandro_Bassi] Alessandro Bassi mailto:abassi&cs.utk.edu +# [Alessio_Casati] Alessio Casati mailto:a.casati&computer.org +# [Alex_Chen] Alex Chen mailto:alex_chen&filemaker.com 2009-11-25 +# [Alex_Duncan] Alex Duncan mailto:alex.duncan&sse.ie +# [Alex_Duncan_2] Alex Duncan mailto:Alex.Duncan&sse.ie +# [Alex_Graveley] Alex Graveley mailto:alex&beatniksoftware.com +# [Alex_Kac] Alex Kac mailto:webis_sync_protocol&webis.net +# [Alex_Lelievre] Alex Lelievre mailto:alex&folabs.com 2009-08-18 +# [Alex_McDonald] Alex McDonald mailto:alexm&an.hp.com +# [Alex_Nicu] Alex Nicu mailto:alex.nicu&philips.com 2003-10 +# [Alex_Oberlander] Alex Oberlander mailto:alexo&netmount.com +# [Alex_Stoev] Alex Stoev Nine Technology, LLC mailto:astoev&ninetechnology.com 2011-08-01 +# [Alex_Tucker] Alex Tucker mailto:alex&floop.org.uk +# [Alex_Vasilevsky] Alex Vasilevsky mailto:alexv&204.165.216.115 +# [Alex_White] Alex White mailto:alex&intralan.co.uk 2007-09-12 +# [Alexander_Bogdanov] Alexander Bogdanov mailto:alexandr_bgd&softhome.net +# [Alexander_Bogdanov_2] Alexander Bogdanov mailto:alexander_bgd&softhome.net +# [Alexander_Christian] Alexander Christian mailto:alexander.christian&root1.de 2012-04-19 +# [Alexander_Dubrovsky] Alexander Dubrovsky mailto:dubrovsky_alex&emc.com +# [Alexander_Falk] Alexander Falk mailto:falk&icon.at +# [Alexander_Falk_2] Alexander Falk Altova, Inc. mailto:al&altova.com 2011-07-07 +# [Alexander_Graef] Alexander Graef mailto:alex&graef.cc 2004-11 +# [Alexander_Griekspoor] Alexander Griekspoor mailto:a.griekspoor&nki.nl 2003-07 +# [Alexander_Hartner] Alexander Hartner AddressBookServer.com mailto:dev&addressbookserver.com 2011-10-14 +# [Alexander_Konovalov] Alexander Konovalov mailto:konovalov&member.ams.org 2007-11-27 +# [Alexander_List] Alexander List mailto:alist&exomachina.com 2011-12-06 +# [Alexander_Medvinsky] Alexander Medvinsky mailto:smedvinsky&gi.com +# [Alexander_Philippou] Alexander Philippou mailto:alex&noemax.com 2003-10 +# [Alexander_Raji] Alexander Raji mailto:araji&lucent.com +# [Alexander_Sahler] Alexander Sahler mailto:alexander.sahler&brodos.de 2002-02 +# [Alexander_V_Ivanov] Alexander V. Ivanov mailto:support&aidaim.com 2004-12 +# [Alexandre_Carlhian] Alexandre Carlhian mailto:alex&appeule.com +# [Alexandre_Lechenne] Alexandre Lechenne mailto:alexandre.lechenne&selectron.ch 2008-12-10 +# [Alexei_V_Soloviev] Alexei V. Soloviev mailto:avsolov&lab127.karelia.ru 2002-05 +# [Alexei_Vladishev] Alexei Vladishev mailto:alexei.vladishev&zabbix.com 2006-02 +# [Alexey_Vlaskin] Alexey Vlaskin mailto:avlaskin&visicron.com 2007-10-22 +# [Alexis_Bose] Alexis Bose mailto:abose&d-ta.com 2008-12-08 +# [Alfred_Schmidt] Alfred Schmidt mailto:a.schmidt&aft-werdohl.de 2003-11 +# [Ali_Fracyon] Ali Fracyon mailto:sxdev&modulardreams.com +# [Ali_Jelveh] Ali Jelveh mailto:ali&protonet.info +# [Ali_Saleh] Ali Saleh mailto:scomm&cerf.net +# [Alioune_Thiam] Alioune Thiam mailto:alioune_thiam&symantec.com 2013-02-05 +# [Allan_Miller] Allan Miller mailto:amiller&handsfreenetworks.com +# [Allan_Panitch] Allan Panitch mailto:allanp&tcosoft.com +# [Allan_Stanley] Allan Stanley mailto:allan&hummingbird.com +# [Allen_Baker] Allen Baker mailto:abaker&boi.hp.com +# [Allen_Briggs] Allen Briggs mailto:briggs&access.rrinc.com +# [Allen_Samuels] Allen Samuels mailto:allen.samuels&citrix.com 2006-11 +# [Allen_Wei] Allen Wei mailto:Allen_Wei&arborsoft.com +# [Allison_Carleton] Allison Carleton mailto:acarleto&naper1.napervilleil.ncr.com +# [Almira] Almira mailto:almira_niciu&intuit.com 2003-07 +# [Alon_Kantor] Alon Kantor mailto:alonk&checkpoint.com +# [Alon_Tamir] Alon Tamir mailto:alon_tamir&symantec.com 2006-04 +# [ALPESH_DHAMELIA] ALPESH DHAMELIA MINDARRAY SYSTEMS (P) mailto:alpesh&mindarraysystems.com 2011-10-25 +# LTD. +# [Alstom_Transport_Preston] Alstom Transport, mailto:paul.steane&transport.alstom.com 2012-12-14 +# Preston +# [Altova] Altova mailto:has&altova.com 2005-08 +# [Alvaro_P_Dominguez] Alvaro P. Dominguez mailto:alpado&gmail.com 2006-02 +# [Alwin_Egger] Alwin Egger mailto:alwin.egger&tegonal.com 2003-11 +# [Aly_Orady] Aly Orady Atto Devices Inc. mailto:aly.orady&attodevices.com 2007-08-07 +# [Amanda] mailto:amanda-core&amanda.org +# [Amandeep_Jawa] Amandeep Jawa mailto:daap&apple.com 2003-01 +# [Amandeep_Jawa_2] Amandeep Jawa mailto:dpap&apple.com 2004-11 +# [Amandeep_Jawa_3] Amandeep Jawa mailto:daap&apple.com +# [Amatzia_Ben_Artzi] Amatzia Ben-Artzi +# [American_Power_Conve] American Power mailto:ports&apcc.com 2002-02 +# Conversion +# [Amir_Blich] Amir Blich mailto:amir&netmanage.co.il +# [Amir_Herzberg] Amir Herzberg mailto:amirh&vnet.ibm.com +# [Amir_Peless] Amir Peless mailto:amirp&radware.co.il +# [Amir_Rapson] Amir Rapson mailto:rapson&sofaware.com 2002-02 +# [Amit_Nigam] Amit Nigam mailto:amnigam&cisco.com 2009-08-24 +# [Amitava_Dutta] Amitava Dutta mailto:Amitava.Dutta&woodbridgenj.ncr.com +# [Amnon_Horowitz] Amnon Horowitz mailto:amnonhµsoft.com +# [Amol_P_Tambe] Amol P Tambe mailto:amol_tambe&symantec.com 2011-02-02 +# [AMPL_Optimization] AMPL Optimization, mailto:dmg&l.com 2012-05-25 +# [Amy_Kang] Amy Kang mailto:amy.kang&sun.com 2009-03-10 +# [Amy_Weaver] Amy Weaver mailto:aweaver&vpnet.com +# [Amy_Weaver_2] Amy Weaver mailto:amy_weaver&nai.com +# [Amy_Weaver_3] Amy Weaver mailto:Amy_Weaver&nai.com +# [Anand_Bhalerao] Anand Bhalerao mailto:anand_bhalerao&symantec.com 2008-10-02 +# [Anand_Gangadharan] Anand Gangadharan mailto:anand&goa.mainsoft.com +# [Anastasios_Kotsikona] Anastasios Kotsikonas mailto:tasos&cs.bu.edu +# [Anders_Borg] Anders Borg mailto:anders.borg&solid.se 2004-11 +# [Anders_Brandt] Anders Brandt Sigma Designs, Inc. mailto:Anders_Brandt&sigmadesigns.com 2012-11-08 +# [Anders_Brandt_2] Anders Brandt Sigma Designs, Inc. mailto:anders_brandt&sigmadesigns.com 2011-10-03 +# [Anders_Brandt_3] Anders Brandt Sigma Designs mailto:anders_brandt&sigmadesigns.com 2012-10-12 +# [Anders_Hjelm] Anders Hjelm mailto:anders.hjelm&ec.se 2006-03 +# [Anders_Klemets] Anders Klemets mailto:andersklµsoft.com +# [Anders_Svensson] Anders Svensson mailto:pong&simusoft.dk +# [Andre_Cato] Andre Cato mailto:andre.cato&datacore.com 2003-07 +# [Andre_Kramer] Andre Kramer mailto:Andre.Kramer&ansa.co.uk +# [Andre_Petras] Andre Petras mailto:a.petras&arcor.de 2003-01 +# [Andre_Schroter] Andre Schroter mailto:A.Schroeter&chili-radiology.com +# [Andrea_Gazzaniga] Andrea Gazzaniga mailto:gazzaniga&funambol.com 2007-01 +# [Andrea_Lanza] Andrea Lanza mailto:andrea.lanza&frameweb.it +# [Andrea_Premoli] Andrea Premoli mailto:Andrea_maria.Premoli&icn.siemens.it 2003-01 +# [Andreas_Alptun] Andreas Alptun mailto:info&illusionlabs.se +# [Andreas_Bauer] Andreas Bauer mailto:bauer_andreas&emc.com +# [Andreas_Behr] Andreas Behr mailto:andreas.behr&kraemer-it.de +# [Andreas_Fehr] Andreas Fehr mailto:andreas&mrs.ch +# [Andreas_Foedrowitz] Andreas Foedrowitz mailto:andreas.foedrowitz&thomson.net 2008-06-18 +# [Andreas_Glocker] Andreas Glocker mailto:glocker&sirius.com +# [Andreas_Haas] Andreas Haas mailto:andreas.haas&sun.com 2006-08 +# [Andreas_Heidemann] Andreas Heidemann mailto:a.heidemann&ais-gmbh.de +# [Andreas_Junghans] Andreas Junghans mailto:cytv&lucid-cake.net +# [Andreas_Oesterhelt] Andreas Oesterhelt mailto:oes&privoxy.org 2002-06 +# [Andreas_Oman] Andreas Oeman mailto:andreas&lonelycoder.com +# [Andreas_Roene] Andreas Roene mailto:support&home-online.de +# [Andreas_Schwarz] Andreas Schwarz mailto:andi&trancefield.de 2002-03 +# [Andreas_Schwarz_2] Andreas Schwarz mailto:andreas.schwarz&securepoint.de 2003-06 +# [Andreas_Spalenski] Andreas Spalenski mailto:andreas.spalenski&trsystems.de 2008-11-24 +# [Andreas_Terzis] Andreas Terzis mailto:terzis&cs.ucla.edu +# [Andreas_Varga] Andreas Varga mailto:sid&parsec.org +# [Andreas_Wetzel] Andreas Wetzel mailto:mickey&enforcer.cc 2002-09 +# [Andreas_Wurf] Andreas Wurf mailto:a.wurf&mediatools.de +# [Andrei_Litvinn] Andrei Litvinn mailto:support&asigra.com 2005-01 +# [Andrei_Vilkotski] Andrei Vilkotski mailto:andreiv&sgi.com 2003-06 +# [Andres_Seco_Hernande] Andres Seco Hernandez mailto:AndresSH&alamin.org +# [Andrew_Aksyonoff] Andrew Aksyonoff mailto:shodan&sphinxsearch.com 2009-10-20 +# [Andrew_Andrews] Andrew Andrews mailto:Andrew.Andrews&nsius.com 2011-09-01 +# [Andrew_Borisov] Andrew Borisov mailto:hdr&chat.ru +# [Andrew_Chernow] Andrew Chernow mailto:andrew&esilo.com 2007-01 +# [Andrew_Crockford] Andrew Crockford mailto:andrew.crockford&modus-interactive.co.uk +# [Andrew_Donoho] Andrew Donoho mailto:awd&us.ibm.com +# [Andrew_Draper] Andrew Draper mailto:adraper&altera.com +# [Andrew_Galloway] Andrew Galloway Nexenta mailto:andrew.galloway&nexenta.com 2012-12-07 +# [Andrew_H_Derbyshire] Andrew H Derbyshire mailto:ahd&meetingmaker.plus.kew.com 2004-12 +# [Andrew_Hoddinott] Andrew Hoddinott mailto:support&artvps.com +# [Andrew_Jay_Schneider] Andrew Jay Schneider mailto:ajs&relsoft.com +# [Andrew_Johnson] Andrew Johnson mailto:andrew.johnson&bliss-support.demon.co.uk +# [Andrew_Mather] Andrew Mather mailto:info&balaena.com 2008-02-14 +# [Andrew_Morgan] Andrew Morgan mailto:andrew.morgan&sun.com 2009-12-08 +# [Andrew_Mossberg] Andrew Mossberg mailto:amossberg&asoki.net +# [Andrew_Schultz] Andrew Schultz mailto:aschultz&strykercom.com 2003-08 +# [Andrew_Sharpe] Andrew Sharpe mailto:help&smartsims.com +# [Andrew_Shire] Andrew Shire mailto:sndrewsh&sco.com +# [Andrew_Sinclair] Andrew Sinclair mailto:andrsinµsoft.com +# [Andrew_Stone] Andrew Stone mailto:andrew&stone.com +# [Andrew_Tridgell] Andrew Tridgell mailto:tridge&samba.anu.edu.au +# [Andrew_Tune] Andrew Tune mailto:Andrew.Tune&splitlock.com 2003-01 +# [Andrew_Watson] Andrew Watson mailto:andrew&omg.org +# [Andrew_Zamler_Carhar] Andrew Zamler-Carhart mailto:andrew&zamler-carhart.com +# [Andrew_Zimmerman] Andrew Zimmerman mailto:andrew&zimmerman.net 2004-06 +# [Andrey_Mohov] Andrey Mohov mailto:mohov_andrey&mail.ru 2010-08-17 +# [AndySC] AndySC mailto:AndySC&uk.ibm.com +# [Andy_Belk] Andy Belk mailto:abelk&apple.com +# [Andy_Belk_2] Andy Belk mailto:register1&azulsystems.com 2005-02 +# [Andy_Brewerton] Andy Brewerton mailto:andy.brewerton&otium.co.uk 2005-08 +# [Andy_Bruce] Andy Bruce mailto:franklin_yah&yahoo.com +# [Andy_Buckingham] Andy Buckingham mailto:feedback&radiodns.org +# [Andy_Burgess] Andy Burgess mailto:aab&cichlid.com +# [Andy_Crick] Andy Crick mailto:acrick&haascnc.com 2007-11-13 +# [Andy_Georgiou] Andy Georgiou mailto:ageorgiou&crypto-solutions.co.uk +# [Andy_Grover] Andy Grover mailto:andy.grover&oracle.com 2009-05-20 +# [Andy_Heron] Andy Heron mailto:btexact.ports&bt.com +# [Andy_Krouwel] Andy Krouwel mailto:andy&kar2ouche.com +# [Andy_Malis] Andy Malis mailto:malis_a&timeplex.com +# [Andy_McKeen] Andy McKeen mailto:mckeen&osf.org +# [Andy_O_Meara] Andy O'Meara mailto:andy&soundspectrum.com +# [Andy_Perreault] Andy Perreault mailto:aperreault&erlphase.com 2010-03-31 +# [Andy_Savage] Andy Savage mailto:andy.savage1&gmail.com 2012-07-13 +# [Andy_Shellam] Andy Shellam mailto:andy&networkmail.eu 2008-02-19 +# [Andy_Stanford_Clark] Andy Stanford-Clark mailto:andysc&uk.ibm.com +# [Andy_Valencia] Andy Valencia mailto:vandys&vandys-lap.cisco.com +# [Andy_Warner] Andy Warner mailto:andyw&knoware.nl +# [Angelique_Dokos] Angelique Dokos mailto:angelique.dokos&hp.com 2003-11 +# [Angelo_Masci] Angelo Masci mailto:angelomasci&yahoo.co.uk 2007-01 +# [Angie_S_Morner] Angie S. Morner mailto:webmaster&dsbcpas.com +# [Anil_Lakhwara] Anil Lakhwara mailto:anil_lakhwara&kentrox.com +# [Anil_Sharma] Anil Sharma mailto:anil.sharma&scentric.com 2006-04 +# [Anil_Tyagi] Anil Tyagi mailto:tanil&novell.com 2010-06-11 +# [Anirban_Majumder] Anirban Majumder mailto:majumderanirban&lycos.com 2002-03 +# [Anjana_Iyer] Anjana Iyer mailto:anjana&dyna.com +# [Ann_Huang] Ann Huang mailto:annhuang&apple.com +# [Annette_DeSchon] Annette DeSchon mailto:DESCHON&isi.edu +# [Annette_Klecha] Annette Klecha mailto:annette_klecha&bbn.hp.com +# [Anoop_Tewari] Anoop Tewari mailto:anoop&next.distinct.com +# [Ansgar_Bergmann] Ansgar Bergmann mailto:Ansgar.Bergmann&etsi.fr +# [ANT_Software] ANT Software Limited mailto:simon.middleton&antplc.com 2012-12-06 +# [Anthon_van_der_Neut] Anthon van der Neut mailto:anthon&mnt.org +# [Anthony_Cake] Anthony Cake mailto:anthonyrc&lecroy.com +# [Anthony_Carrabino] Anthony Carrabino mailto:anthonyc&vistasoftware.com 2003-08 +# [Anthony_Gonzalez] Anthony Gonzalez mailto:agonzal1&telcordia.com +# [Anthony_Greatorex] Anthony Greatorex mailto:greatore&ugs.com 2004-11 +# [Anthony_Johnson] Anthony Johnson mailto:stxadmin&storix.com 2005-08 +# [Anthony_LaMark] Anthony LaMark Squadra Technologies mailto:anthony&squadratechnologies.com 2012-03-14 +# [Anthony_Payne] Anthony Payne mailto:opayne&pacbell.net 2004-02 +# [Anthony_Stahler] Anthony Stahler mailto:imunfair&yahoo.com 2004-11 +# [Anthony_Walker] Anthony Walker mailto:anthony_walker&hp.com 2002-03 +# [Anthony_Williams] Anthony Williams mailto:tonydubs&gmail.com +# [Antoine_Martin] Antoine Martin mailto:antoine&nagafix.co.uk +# [Anton_Kucer] Anton Kucer mailto:akucerµsoft.com +# [Anton_Okmianski] Anton Okmianski mailto:aokmians&cisco.com 2006-01 +# [Antoni_Wolski] Antoni Wolski mailto:antoni.wolski&vtt.fi +# [Antonio_Querubin] Antonio Querubin mailto:tony&lava.net 2008-03-10 +# [Anupam_Bharali] Anupam Bharali mailto:ianaports&juniper.net 2002-08 +# [Anush_Kumar] Anush Kumar mailto:anushkµsoft.com +# [Apple] Apple mailto:vaughan&apple.com 2011-10-12 +# [Apple_2] Apple mailto:justin.ko&apple.com 2011-10-20 +# [Apple_Inc] Apple Inc. mailto:marc&apple.com 2012-03-02 +# [Apple_Inc_2] Apple Inc. mailto:bradley&apple.com 2012-09-19 +# [AppMac_Software] AppMac Software mailto:appmac&appmac.com +# [Apple_Computer] Apple Computer mailto:perftools-feedback&group.apple.com +# [Archishmat_Gore] Archishmat Gore mailto:archisgore&yahoo.com 2004-11 +# [Arcturus_Networks_Inc] Arcturus Networks mailto:mdurrant&arcturusnetworks.com 2011-10-20 +# [Around_Sound] Around Sound Winzig LLC mailto:aroundsound&winzig.com 2011-10-20 +# [Ari_Huisken] Ari SQRT'n Huisken mailto:astergate&huisken-systems.nl 2010-01-04 +# [Ari_Keranen] Ari Keraenen mailto:ari.keranen&ericsson.com 2009-12-17 +# [Ari_Valtanen] Ari Valtanen mailto:ari.valtanen&solidtech.com +# [Arjen_Lentz] Arjen Lentz mailto:arjen&mysql.com 2004-11 +# [Arman_Bedonian] Arman Bedonian mailto:Arman.Bedonian&asg.com 2009-07-15 +# [Armin_Liebchen] Armin Liebchen mailto:armin&anteradesign.com 2007-06 +# [Armin_Sawusch] Armin Sawusch mailto:armin&esd1.esd.de +# [Armin_Solies] Armin Solies DEIF A/S mailto:aes&deif.com 2012-10-15 +# [Arnaud_Clermonte] Arnaud Clermonte mailto:clermonte&4xtechnologies.com +# [Arne_Dirks] Arne Dirks mailto:ad&bnc.net +# [Arne_Haugland] Arne Haugland mailto:Arne.Haugland¶soldev.com +# [Arne_Norefors] Arne Norefors mailto:Arne.Norefors&ericsson.com +# [Arnie_Farrelly] Arnie Farrelly mailto:afarrelly&syncsort.com +# [Arnie_Koster] Arnie Koster mailto:akoster&teltone.com 2002-04 +# [Arno_Hollosi] Arno Hollosi mailto:arno.hollosi&cio.gv.at 2002-03 +# [Arno_Kirmeir] Arno Kirmeir mailto:Arno.kirmeir&sage.de 2007-01 +# [Arno_Klaassen] Arno Klaassen mailto:arno&ccr.jussieu.fr 2003-11 +# [Arnold_Dittmann] Arnold Dittmann mailto:dittmann&isbcad.de +# [Arnold_E_Mauer] Arnold E. Mauer mailto:amauer&vrms.com 2003-04 +# [Arrow_Bit_SL] Arrow Bit SL mailto:info&arrowbit.com 2012-04-26 +# [Art_Cancro] Art Cancro mailto:ajc&uncensored.citadel.org +# [Art_Pope] Art Pope mailto:apope&sarnoff.com 2002-10 +# [Arthur_Barr] Arthur Barr mailto:arthur.barr&uk.ibm.com 2008-02-27 +# [Arthur_Castonguay] Arthur Castonguay mailto:arthurc&doe.carleton.ca +# [Arthur_Hillenaar] Arthur Hillenaar mailto:arthur.hillenaar&consul.com 2006-01 +# [Arthur_Wilton] Arthur Wilton mailto:art&awilton.com 2006-03 +# [Arvel_Hathcock] Arvel Hathcock mailto:arvel&altn.com 2007-03 +# [Arvin_Schnell] Arvin Schnell mailto:arvin&suse.de +# [Arvind_Srinivasan] Arvind Srinivasan mailto:arvind.srinivasan&sun.com 2005-08 +# [Asaf_Kashi] Asaf Kashi mailto:asafkµsoft.com +# [Ascom_Austria_GmbH] Ascom Austria GmbH mailto:info&ascom.at 2008-05-01 +# [Asher_Altman] Asher Altman mailto:Asher.Altman&gsc.gte.com +# [Ashish_Chatterjee] Ashish Chatterjee mailto:achatterjee&freeway.proxy.lucent.com +# [Ashit_Patel] Ashit Patel mailto:Ashit.Patel&eng.sun.com +# [Ashley_Clarke] Ashley Clarke mailto:Ashley.clarke&vishaypg.com 2010-06-17 +# [Ashok_Marwaha] Ashok Marwaha +# [Ashraf_Tahir] Ashraf Tahir Morega Systems Inc. mailto:atahir&morega.com 2012-08-20 +# [Ashvin_Sanghvi] Ashvin Sanghvi mailto:AshvinSµsoft.com +# [Ashwani_Singhal] Ashwani Singhal mailto:Ashwani.Singhal&netscout.com 2010-04-07 +# [Atomix_Productions] Atomix Productions mailto:corporate&atomixproductions.com 2011-10-12 +# [Atsushi_Nakamura] Atsushi Nakamura mailto:nakamura.atsushi318&canon.co.jp 2003-11 +# [Aubrey_Turner] Aubrey Turner mailto:S95525ta%25etsuacad.bitnet@ETSUADMN.ETSU.EDU +# [Austin_Meyer] Austin Meyer mailto:austin&x-plane.com +# [Autodesk] Autodesk mailto:me.licensing&autodesk.com +# [Avi_Drissman] Avi Drissman mailto:ique-protocol&harrisbaseview.com 2002-07 +# [Avi_Lior] Avi Lior mailto:avi&bridgewatersystems.com 2009-02-27 +# [Avi_Nathan] Avi Nathan mailto:avinµsoft.com +# [Avi_Primo] Avi Primo mailto:aprimo&celltick.com 2008-01-29 +# [Avi_Software] Avi Software mailto:srobert&logava.com +# [Avri_Doria] Avri Doria mailto:avri.doria&nokia.com +# [Avshalom_Houri] Avshalom Houri mailto:Avshalom&ubique.com +# [Axel_Andersson] Axel Andersson mailto:axel&zankasoftware.com 2006-02 +# [Axel_Kern] Axel Kern mailto:axel.kern&betasystems.com +# [BTicino_S_p_A] BTicino S.p.A. mailto:admin-myopen&myopen-bticino.it 2008-04-09 +# [B_Clifford_Neuman] B. Clifford Neuman mailto:bcn&isi.edu +# [B_G_Mahesh] B.G. Mahesh mailto:mahesh&sett.com +# [B_J_Kortekaas] B. J. Kortekaas mailto:b.j.kortekaas&kpn.com 2003-02 +# [B_van_Klinken] B. van Klinken mailto:b.vklinken&rohill.nl 2003-12 +# [Baba_Hidekazu] Baba Hidekazu mailto:baba&flare.nd.net.fujitsu.co.jp +# [Baiju_V_Patel] Baiju V. Patel mailto:Baiju.v.patel&intel.com +# [Balduin_Mueller_Plat] Balduin Mueller-Platz mailto:balduin.mueller-platz&pago.de 2002-03 +# [Barbara_Foss] Barbara Foss mailto:BGFOSS&rchvmv.vnet.ibm.com +# [Barend_Jacobus_van_d] Barend Jacobus van der mailto:berneau.v&gmail.com 2010-04-27 +# Merwe +# [Barney_Wolff] Barney Wolff mailto:barney&databus.com +# [Barrie_Cooper] Barrie Cooper mailto:barrie&sco.com +# [Barry_Greenberg] Barry Greenberg mailto:barry.greenberg&sun.com 2004-04 +# [Barry_H_Feild] Barry H. Feild mailto:barry&intersan.net +# [Barry_McDarby] Barry McDarby mailto:realspace&starwolf.biz 2003-04 +# [Barry_Shelton] Barry Shelton mailto:bshelton&wirelessknowledge.com +# [Barry_Whyte] Barry Whyte mailto:barry_whyte&uk.ibm.com +# [Bart_Rijpers] Bart Rijpers Mogeneti mailto:bart&mogeneti.com 2012-09-26 +# [Bart_Schaefer] Bart Schaefer mailto:bart&suburbansoftware.com 2005-08 +# [Basil_Lee] Basil Lee mailto:basil.lee&gnnettest.com +# [Baskaran_Subramaniam] Baskaran Subramaniam mailto:baskaran&apple.com +# [Ben] Ben mailto:ben&acaciatreesoftware.com +# [Ben_Guild] Ben Guild mailto:smash&smashsworld.com +# [Ben_Higgins] Ben Higgins mailto:bhiggins&netcom.ca +# [Ben_Lewis] Ben Lewis mailto:apple&method-solutions.com +# [Ben_McNeill] Ben McNeill mailto:ben.mcneill&cinexec.com 2007-05 +# [Ben_Oram] Ben Oram mailto:beno&turbopower.com +# [Ben_Pracht] Ben Pracht mailto:ben.pracht&tivoli.com +# [Ben_Rosenberg] Ben Rosenberg mailto:brosenberg&advsyscon.com 2003-01 +# [Ben_Schluricke] Ben Schluricke mailto:support&pftp.de +# [Ben_Webster] Ben Webster mailto:b.webster&itisint.com +# [Bengt_Gustafsson] Bengt Gustafsson mailto:bengt.gustafsson&imagesystems.se 2006-05 +# [Benjamin_Green] Benjamin Green mailto:ben&lh.co.nz +# [Benjamin_Grimm] Benjamin Grimm mailto:bg&webnetix.de +# [Benjamin_Kowarsch] Benjamin Kowarsch mailto:benjamin&sunrise-tel.com 2004-11 +# [Benjamin_Rister] Benjamin Rister mailto:support&decimus.net +# [Benjamin_Rosenberg] Benjamin Rosenberg mailto:brosenberg&advsyscon.com +# [Bernard_Aboba] Bernard Aboba mailto:bernardaµsoft.com 2004-06 +# [Bernard_Desruisseaux] Bernard Desruisseaux mailto:bernard&steltor.com +# [Bernard_Normier] Bernard Normier mailto:bernard&zeroc.com 2006-12 +# [Bernard_Volz] Bernard Volz mailto:volz&cisco.com +# [Bernd_Paradies] Bernd Paradies mailto:bparadie&adobe.com 2008-01-14 +# [Bernie_Malkowski] Bernie Malkowski mailto:bmalkowski&integratedsecuritycorp.com 2007-08-20 +# [Bernie_Volz] Bernie Volz mailto:volz&cisco.com +# [Bert_Bouwers] Bert Bouwers mailto:e.bouwers&rohill.nl 2007-05 +# [Bert_Gijsbers] Bert Gijsbers mailto:bert&xpilot.org +# [Bert_Paul] Bert Paul mailto:bert.paul&apertio.com 2008-07-03 +# [Bert_Van_der_Linden] Bert Van der Linden mailto:bert&propel.com +# [Bert_van_Willigen] Bert van Willigen mailto:bert.vanwilligen&philips.com 2003-11 +# [Bertus_Jacobs] Bertus Jacobs mailto:bertus&ccs-software.co.za +# [Beth_Crespo] Beth Crespo mailto:beth.crespo&hp.com +# [Betsy_Alexander] Betsy Alexander tel:+1-604-681-4549 +# [Beverly_Moody] Beverly Moody mailto:Beverly_Moody&stercomm.com +# [Bianling_Zhang] Bianling Zhang mailto:blzhang&iwncomm.com 2004-02 +# [Bie_Tie] Bie Tie mailto:stie&interbase.com +# [Bill_Andrews] Bill Andrews mailto:billa&vnd.tek.com +# [Bill_Bishop] Bill Bishop mailto:bil&rfx.rfx.com +# [Bill_Carroll] Bill Carroll mailto:billc&xactlabs.com +# [Bill_Crawford] Bill Crawford mailto:Bill.Crawford&securicor.co.uk +# [Bill_Croft] Bill Croft mailto:Croft&sumex-aim.stanford.edu +# [Bill_Davidson] Bill Davidson mailto:billd&equalizer.cray.com +# [Bill_Edwards] Bill Edwards mailto:bill.edwards&sun.com 2005-08 +# [Bill_Fenner] Bill Fenner mailto:fenner&parc.xerox.com +# [Bill_Gross] Bill Gross mailto:william.gross&kohler.com 2010-11-01 +# [Bill_Harrell] Bill Harrell +# [Bill_Homan] Bill Homan mailto:bhoman&spanworks.com 2003-01 +# [Bill_Kay] Bill Kay mailto:bkay&spy-tec.com 2006-04 +# [Bill_Marbaker] Bill Marbaker mailto:wrm&fortenet.com +# [Bill_McIntosh] Bill McIntosh mailto:bmcintosh&fortresstech.com +# [Bill_Reding] Bill Reding mailto:redingb&nwdt.natwest.co.uk +# [Bill_Rettig] Bill Rettig mailto:WRettig&efji.com 2010-05-19 +# [Bill_Reveile] Bill Reveile mailto:breveile&allentek.com +# [Bill_Schiefelbein] Bill Schiefelbein mailto:schief&aspen.cray.com +# [Bill_Simpson] Bill Simpson mailto:wsimpson&greendragon.com +# [Bill_Simpson_2] Bill Simpson mailto:Bill.Simpson&um.cc.umich.edu +# [Bill_Somerville] Bill Somerville mailto:Bill.Somerville&scalable.com 2008-08-13 +# [Bill_Taylor] Bill Taylor mailto:sais&ssec.wisc.edu +# [Bill_Tschumy] Bill Tschumy mailto:other!bill&uunet.uu.net +# [Bill_Van_Etten] Bill Van Etten mailto:Bill&bioteam.net +# [Bill_Weinman] Bill Weinman mailto:wew&bearnet.com +# [Bill_Wingate] Bill Wingate mailto:bill.wingate&arcanadev.com 2003-05 +# [Billy_Dhillon] Billy Dhillon mailto:bdsos&pafec.co.uk +# [BioLink_Support] BioLink Support mailto:reginfo&biolinkusa.com 2002-02 +# [Bizhan_Ghavami] Bizhan Ghavami mailto:ghavami&telcores.com +# [Bjorn_Chambless] Bjorn Chambless mailto:bjorn&cs.pdx.edu +# [Bjorn_Dittmer_Roche] Bjorn Dittmer-Roche mailto:bjorn&xowave.com 2003-06 +# [Bjorn_Jarle_Kvande] Bjorn Jarle Kvande mailto:bjorn&objectplanet.com 2002-04 +# [Bjorn_Lantz] Bjorn Lantz mailto:bjorn.lantz&encode.se 2004-11 +# [Bjorn_Roth] Bjorn Roth FLIR Systems AB mailto:bjorn.roth&flir.se 2011-10-20 +# [Bjorn_de_Bonnenfant] Bjorn de Bonnenfant mailto:bdeb&iqobject.com 2003-11 +# [Blakely_Snyder] Blakely Snyder Ventureforth Inc. mailto:bsnyder&ventureforth.com 2011-11-03 +# [Blockade] VP - Research & mailto:development&blockade.com +# Development +# [Bob_Beard] Bob Beard mailto:bobb&lachman.com +# [Bob_Braden] Bob Braden mailto:Braden&isi.edu +# [Bob_Braden_2] Bob Braden mailto:braden&isi.edu +# [Bob_Bradley] Bob Bradley mailto:bradley&apple.com 2003-03 +# [Bob_Bradley_2] Bob Bradley mailto:bradley&apple.com +# [Bob_Bradley_3] Bob Bradley Apple Inc. mailto:bradley&apple.com 2012-09-19 +# [Bob_Deblier] Bob Deblier mailto:bob&virtualunlimited.com +# [Bob_Dedrick] Bob Dedrick mailto:bob&staff.prodigy.com +# [Bob_Dolin] Bob Dolin mailto:bdolin&echelon.com 2008-04-10 +# [Bob_Gaddie] Bob Gaddie mailto:bobg&dtn.com +# [Bob_Iannucci] Bob Iannucci mailto:bob&rail.com 2011-11-23 +# [Bob_Janssen] Bob Janssen mailto:bob&res.nl +# [Bob_Janssen_2] Bob Janssen mailto:b.janssen&ressoftware.com 2009-11-18 +# [Bob_Kaiser] Bob Kaiser mailto:BKaiser&palindrome.com +# [Bob_Kummerfeld] Bob Kummerfeld mailto:bob&sarad.cs.su.oz.au +# [Bob_Lauria] Bob Lauria mailto:bob.lauria&asg.com 2005-08 +# [Bob_Lyon] Bob Lyon mailto:bl&oasis.icl.co.uk +# [Bob_Natale] Bob Natale mailto:bob.natale&appliedsnmp.com +# [Bob_Nattenberg] Bob Nattenberg mailto:bnattenberg&arborsoft.com +# [Bob_Purvy] Bob Purvy mailto:bpurvy&us.oracle.com +# [Bob_Rennie] Bob Rennie mailto:rjrennie&wizvax.net +# [Bob_Rundle] Bob Rundle mailto:rundle&rundle.com 2005-11 +# [Bob_Sledge] Bob Sledge mailto:bob&pqsystems.com +# [Bob_Stewart] Bob Stewart mailto:STEWART&xyplex.com +# [Bob_Thomas] Bob Thomas mailto:rhthomas&cisco.com +# [Bob_Tournoux] Bob Tournoux mailto:bob.tournoux&usiny.mail.abb.com +# [Bobby_Krupczak] Bobby Krupczak mailto:rdk&empiretech.com +# [Bobby_Krupczak_2] Bobby Krupczak mailto:rdk&krupczak.org 2008-04-03 +# [Bobby_Martin] Bobby Martin mailto:bobbymartin&hotmail.com +# [Bodo_Rueskamp] Bodo Rueskamp mailto:br&itchigo.com 2002-08 +# [Bonjour] Bonjour mailto:bonjour&tapinoma.com +# [BonjourDev] BonjourDev mailto:bonjourdev&apple.com 2011-10-14 +# [Boris_B_Maiden] Boris B. Maiden mailto:Boris_Maiden&smtp.microcom.com +# [Boris_Magnusson] Boris Magnusson mailto:boris&cs.lth.se 2010-12-06 +# [Boris_Panteleev] Boris Panteleev mailto:bpanteleev&himel.com +# [Boris_Polevoy] Boris Polevoy mailto:vapcom&mail.ru 2003-01 +# [Boris_Star] Boris Star mailto:boris.star&veritas.com 2003-01 +# [Boris_Svetlitsky] Boris Svetlitsky mailto:boris&press-sense.com +# [borja_lopez_urkidi] borja lopez urkidi NEGU Soft mailto:lopezurkidi&gmail.com 2012-09-10 +# [Brad_Hamilton] Brad Hamilton mailto:bh&picksys.com +# [Brad_Hamilton_2] Brad Hamilton mailto:brad_hamilton&kofax.com 2002-08 +# [Brad_Head] Brad Head mailto:brad.head&latitudetech.com 2013-02-07 +# [Brad_Johanson] Brad Johanson mailto:bradj&tidebreak.com 2005-08 +# [Brad_Parker] Brad Parker mailto:brad&american.com +# [Brad_Pedersen] Brad Pedersen mailto:bradp&citrix.com +# [Brad_Pepers] Brad Pepers mailto:brad&linuxcanada.com 2002-09 +# [Brad_Spear] Brad Spear mailto:spear&platinum.com +# [Brad_Vaughan] Brad Vaughan Apple mailto:vaughan&apple.com 2011-10-12 +# [Brad_Wright] Brad Wright mailto:bradwrµsoft.com +# [Bradley_Birnbaum] Bradley Birnbaum mailto:bradley.birnbaum&eshare.com +# [Bradley_Bransom] Bradley Bransom mailto:bradley_bransom&dell.com 2003-01 +# [Brady_Anderson] Brady Anderson mailto:banderso&novell.com +# [Brand_Communications] Brand Communications mailto:donovan&brandcomms.com +# [Brandon_Potter] Brandon Potter mailto:iana&brandonpotter.com 2006-01 +# [Brant_Thomsen] Brant Thomsen mailto:brant_thomsen&3com.com 2003-01 +# [Breck_Auten] Breck Auten mailto:bauten&dst-inc.com +# [Bremen] University of Bremen, mailto:udrawgraph&informatik.uni-bremen.de +# FB3 +# [Brendan_Fay] Brendan Fay mailto:brendan.fay&x509solutions.com 2006-02 +# [Brendan_McWilliams] Brendan McWilliams mailto:brendan.mcwilliams&vf.vodafone.co.uk 2002-04 +# [Brent_Bradshaw] Brent Bradshaw mailto:bbradshaw&novell.com +# [Brent_Callaghan] Brent Callaghan mailto:brent&terra.eng.sun.com +# [Brent_Foster] Brent Foster mailto:brent.foster&onstreamsystems.com 2006-04 +# [Brent_Fulgham] Brent Fulgham mailto:bfulgham&wyatt.com +# [Brent_Gulanowski] Brent Gulanowski mailto:bgulanowski&marketcircle.com 2009-08-26 +# [Brent_Hines] Brent Hines mailto:brent.hines&unisys.com +# [Brent_Irwin] Brent Irwin mailto:birwin&standard.com +# [Brent_McCullough] Brent McCullough mailto:bmccullough&timemgmt.com 2003-11 +# [Brent_Welch] Brent Welch mailto:welch&scriptics.com +# [Bret_O_Rourke] Bret O'Rourke mailto:bretorµsoft.com +# [Brett_Dolecheck] Brett Dolecheck mailto:Dolecheck&ipmetrics.com +# [Brett_Goldstein] Brett Goldstein mailto:bgoldstein&opentable.com +# [Brett_Green] Brett Green mailto:brett_green&hp.com 2003-11 +# [Brett_Green_2] Brett Green mailto:Brett_Green&hp.com +# [Brett_Sorenson] Brett Sorenson mailto:bcs&atex.com +# [Brian_Abramson] Brian Abramson mailto:brianab&soul.tv.tek.com +# [Brian_Abramson_2] Brian Abramson mailto:brianab&vnd.tek.com +# [Brian_Batke] Brian Batke mailto:csp.protocol&gmail.com +# [Brian_Batke_2] Brian Batke mailto:eip.jsig&gmail.com +# [Brian_Becker] Brian Becker mailto:bbecker&tgc-usa.com 2006-10 +# [Brian_Blevins] Brian Blevins mailto:brian.blevins&tridia.com +# [Brian_C_Wiles] Brian C. Wiles mailto:brian&streamcomm.com +# [Brian_Carnell] Brian Carnell mailto:brian&e3consultants.com +# [Brian_Cully] Brian Cully mailto:shmit&kublai.com +# [Brian_Dickman] Brian Dickman mailto:brian&novastor.com +# [Brian_Ehrmantraut] Brian Ehrmantraut mailto:bae&netapp.com +# [Brian_Griswold] Brian Griswold mailto:brian&dancingbear.com +# [Brian_Henry] Brian Henry mailto:brian.henryµsoft.com 2007-03 +# [Brian_Kennedy] Brian Kennedy mailto:BrianK&targetedconvergence.com 2006-08 +# [Brian_Klassen] Brian Klassen mailto:Brian.Klassen&unisys.com +# [Brian_Lloyd] Brian Lloyd mailto:brian&lloyd.com +# [Brian_Martinicky] Brian Martinicky mailto:Brian_Martinicky&automationintelligence.com +# [Brian_Matthews] Brian Matthews mailto:bmatthews&mosaicsystems.com +# [Brian_Matthews_2] Brian Matthews mailto:brian_matthews&ibist.ibis.com +# [Brian_McKinnon] Brian McKinnon mailto:bmk&lvision.com +# [Brian_Nickles] Brian Nickles mailto:RogueSpear91&hotmail.com 2002-05 +# [Brian_O_Keefe] Brian O'Keefe mailto:bokeefe&cnd.hp.com +# [Brian_Olson] Brian Olson mailto:briolson&pacbell.net +# [Brian_Reid] Brian Reid mailto:reid&decwrl.dec.com +# [Brian_S_Locke] Brian S. Locke mailto:blocke&zortlabs.com 2008-07-10 +# [Brian_S_Stewart] Brian S. Stewart mailto:Brian.Stewart&avocent.com +# [Brian_S_Stewart_2] Brian S. Stewart mailto:Brian.Stewart&avovent.com +# [Brian_Schenkenberger] Brian Schenkenberger mailto:VAXman&tmesis.com +# [Brian_Spears] Brian Spears mailto:bspears&salix.com +# [Brian_Tackett] Brian Tackett mailto:cym&acrux.net +# [Brian_Taylor] Brian Taylor mailto:btaylor&imagetag.com +# [Brian_Toothill] Brian Toothill mailto:brian.toothill&touchstar.co.uk 2010-10-15 +# [Brian_Trammell] Brian Trammell mailto:btrammell&iventurelab.com +# [Brian_Trevor] Brian Trevor mailto:btrevor&bmc.com 2008-10-24 +# [Brian_Tung] Brian Tung mailto:brian&isi.edu +# [Brian_W_Beach] Brian W. Beach mailto:brian&tivo.com 2003-01 +# [Bridget_Navoda] Bridget Navoda mailto:Bridget_Navoda&dell.com +# [Bridget_Walsh] Bridget Walsh mailto:bwalsh&iona.ie +# [Bridgette_Landers] Bridgette Landers mailto:blanders&boi.hp.com +# [Brigitte_Gagne] Brigitte Gagne mailto:bgagne&trigence.com 2006-08 +# [Brooks_Bell] Brooks Bell Layered Logic, Inc. mailto:brooks&layeredlogic.com 2012-01-04 +# [Bruce_Carlson] Bruce Carlson mailto:bruce.carlson&iprintl.com 2003-01 +# [Bruce_Casey] Bruce Casey mailto:bcasey&responselogic.com +# [Bruce_Davie] Bruce Davie mailto:bsd&cisco.com +# [Bruce_Ferjulian] Bruce Ferjulian mailto:ferjulian_bruce&emc.com +# [Bruce_Greenblatt] Bruce Greenblatt mailto:bruce&arkivio.com 2002-02 +# [Bruce_Hestand] Bruce Hestand mailto:Bruce.Hestand&veritas.com +# [Bruce_Kosbab] Bruce Kosbab mailto:bruce.kosbab&indurasoft.com +# [Bruce_Lieberman] Bruce Lieberman mailto:brucel&iserver.starlight.com +# [Bruce_Lueckenhoff] Bruce Lueckenhoff mailto:brucelu&cisco.com +# [Bruce_Lueckenhoff_2] Bruce Lueckenhoff mailto:bruce&scalabledesign.com 2006-02 +# [Bruce_Mackey] Bruce Mackey mailto:BAMackey&aol.com +# [Bruce_McKinnon] Bruce McKinnon mailto:brucemck&bears.aust.com +# [Bruce_McKinnon_2] Bruce McKinnon mailto:brucemck&bearsolutions.com.au +# [Bruce_Thompson] Bruce Thompson mailto:brucet&actioninformationsystems.com 2006-02 +# [Bruce_Toback] Bruce Toback mailto:btoback&optc.com 2003-02 +# [Bruce_Vander_Werf] Bruce Vander Werf mailto:bvanderwerf&crownintl.com 2004-02 +# [Bruce_Wells] Bruce Wells mailto:brwells&us.ibm.com 2010-10-04 +# [Bruce_Wilson] Bruce Wilson tel:+1-905-771-6161 +# [Bruno_Rijsman] Bruno Rijsman Juniper Networks mailto:brijsman&juniper.net 2013-02-01 +# [Bryan_Alvord] Bryan Alvord mailto:bryan&vaticor.com 2003-04 +# [Bryan_Cole] Bryan Cole mailto:bryan.cole&teraview.com +# [Bryan_Otey] Bryan Otey mailto:bwo&softdesk.com +# [Bryan_Vergato] Bryan Vergato mailto:iana&ivocalize.com 2006-05 +# [Bryan_Wilcutt] Bryan Wilcutt mailto:bwilcutt&comtechefdata.com 2005-06 +# Panasonic Intranet, +# [Bryant_Eastham] Bryant Eastham Panasonic North mailto:bryant.eastham&us.panasonic.com 2012-11-12 +# America (PEWLA) +# [Bryce_Beeston] Bryce Beeston mailto:bryce.beeston&emerson.com 2011-06-23 +# [Bryce_Bhatnagar] Bryce Bhatnagar mailto:BRYCEBH&attachmate.com +# [Buck_Caldwell] Buck Caldwell mailto:buck_c&polygon.com +# [Bulent_Kasman] Bulent Kasman mailto:BKasman&symantec.com +# [Byron_Jones] Byron Jones mailto:byronj&bellsouth.net +# [C_Enrique_Ortiz] C. Enrique Ortiz mailto:eortiz&j2medeveloper.com 2003-01 +# [C_Philip_Wood] C. Philip Wood mailto:cpw&lanl.gov +# [Cabel_Sasser] Cabel Sasser Panic Inc. mailto:cabel&panic.com 2012-07-19 +# [CaldSoft] CaldSoft mailto:development&caldsoft.co.uk 2011-08-12 +# [Cameo_Systems_Inc] Cameo Systems Inc. mailto:craig&reversion.ca 2011-09-26 +# [Cameron_Colpitts] Cameron Colpitts Santorini, LLC mailto:cameron&santorinillc.com 2011-10-25 +# [Cameron_Young] Cameron Young mailto:Cameron_Young&inetco.com +# [Candace_Niccolson] Candace Niccolson mailto:cniccolson&genisar.com 2002-04 +# [Canon_Inc] Canon Inc. mailto:fujii.ken-ichi149&canon.co.jp 2011-10-10 +# [Caprice_Productions] Caprice Productions mailto:ldrake&caprice.com 2012-07-05 +# [Carl_Banzhof] Carl Banzhof mailto:cbanzhof&citadel.com 2003-06 +# [Carl_Blundell] Carl Blundell mailto:cblundell&celador.co.uk 2002-05 +# [Carl_Cedergren] Carl Cedergren mailto:asperon&home.se +# [Carl_Ellis] Carl Ellis mailto:carl.ellis&tenasys.com +# [Carl_First] Carl First mailto:Carl.L.First&intel.com +# [Carl_Johan_Wik] Carl-Johan Wik mailto:cjw&hudsmoar.com +# [Carl_Malamud] Carl Malamud +# [Carl_Obsorn] Carl Obsorn mailto:carl_osborn&sabre.com +# [Carl_Uno_Manros] Carl-Uno Manros mailto:manros&cp10.es.xerox.com +# [Carla_Caputo] Carla Caputo mailto:caputo&emc.com +# [Carleton_Watkins] Carleton Watkins mailto:carleton&soronti.com 2003-11 +# [Carlisle_Adams] Carlisle Adams mailto:Cadams&entrust.com +# [Carlos_Arteaga] Carlos Arteaga mailto:carteaga&abacoinc.com +# [Carlos_Arteaga_2] Carlos Arteaga mailto:carteaga&adelphia.net 2004-11 +# [Carlos_Gonzalez_Roma] Carlos Gonzalez-Roman mailto:iana&abcdatos.com 2003-06 +# Ferrer +# [Carlos_Hung] Carlos Hung mailto:chung&digisle.net +# [Carlos_Portela] Carlos Portela mailto:cportela&simple-sw.com 2003-02 +# [Carol_Ann_Krug] Carol Ann Krug mailto:carolann&hpmfas3.cup.hp.com +# [Carson_Fenimore] Carson Fenimore mailto:carson.fenimore&inl.gov +# [Carstein_Seeberg] Carstein Seeberg mailto:case&boole.no +# [Carstein_Seeberg_2] Carstein Seeberg mailto:case&nimsoft.no +# [Carsten_Falticska] Carsten Falticska mailto:falticska&freenet.de 2003-11 +# [Carsten_Strotmann] Carsten Strotmann mailto:carsten.strotmann&menandmice.com 2009-05-20 +# [Casey_Harrington] Casey Harrington mailto:charrington&isxinc.com 2006-01 +# [Casper_Stoel] Casper Stoel mailto:cbs&ascinc.com +# [Cat_Zimmermann] Cat Zimmermann Teledyne BlueView, mailto:czimmermann&teledyne.com 2012-09-19 +# [Cedric_Maloux] Cedric Maloux mailto:cedric&allpeers.com 2007-04 +# [Chad_Williams] Chad Williams mailto:chad&apple.com +# [Chair_for_Process_Control_Engineering] The Chair for Process mailto:ks&plt.rwth-aachen.de 2012-08-07 +# Control Engineering +# [Chandar_Venkataraman] Chandar Venkataraman mailto:CVENKATA&us.oracle.com +# [Chaoyi_Lang] Chaoyi Lang mailto:chao-yi_lang&maxtor.com 2006-01 +# [Chap_Tippin] Chap Tippin mailto:chad.tippin&jibeinc.com 2003-06 +# [Charles_A_Higgins] Charles A. Higgins mailto:75730.2257&compuserve.com +# [Charles_Bennett] Charles Bennett mailto:bennettc&ohio.edu 2008-08-29 +# [Charles_C_L_Chou] Charles C.L. Chou mailto:cchou&zoom.com +# [Charles_F_Steele] Charles F Steele mailto:charles_steele&agilent.com 2011-02-15 +# [Charles_Gordon] Charles Gordon mailto:cgordon&digprod.com +# [Charles_Honton] Charles Honton mailto:chas&honton.org +# [Charles_Jacobs] Charles Jacobs mailto:cjacobs&numinous.com +# [Charles_Lynn] Charles Lynn mailto:clynn&bbn.com +# [Charles_O_Dale] Charles O'Dale mailto:codale&hfx.andara.com 2006-07 +# [Charles_Oram] Charles Oram mailto:charleso&cardax.com +# [Charles_Perkins] Charles Perkins mailto:cperkins&eng.sun.com +# [Charles_Scott_Robers] Charles Scott Roberson mailto:chip&cerent.com +# [Charles_Watt] Charles Watt mailto:watt&sware.com +# [Charles_Wright] Charles Wright mailto:cpwright&villagenet.com +# [Charlie_Hava] Charlie Hava mailto:charlieh&aks.com +# [Charlie_Hundre] Charlie Hundre mailto:charlie&rdsrv.reco.com.tw +# [Charlie_Kim] Charlie Kim mailto:charlie.bea.utiful&gmail.com 2012-08-28 +# [Charlie_Limoges] Charlie Limoges mailto:Charlie.Limoges&gdc4s.com +# [Chatziandreoglou_Chr] Chatziandreoglou Christos mailto:chatzi&xan.forthnet.gr 2003-10 +# [Chaz_McGarvey] Chaz McGarvey mailto:chaz&brokenzipper.com +# [Check_Point_Software] Check Point Software mailto:rbahadur&checkpoint.com 2012-06-28 +# Technologies Ltd. +# [Chee_Kent_Lam] Chee Kent Lam mailto:cklam&foursticks.com 2002-04 +# [Cheryl_Stoutenburg] Cheryl Stoutenburg mailto:cstoutenburg&vnet.ibm.com +# [Chi_Chen] Chi Chen mailto:chichen&us.ibm.com 2002-04 +# [Chi_Shih_Chang] Chi Shih Chang mailto:cchang&syncsort.com 2008-03-19 +# [Chiew_Farn_Chung] Chiew Farn Chung mailto:cfchung&asprova.com +# [Chiming_Huang] Chiming Huang mailto:chuang&ac-tech.com +# [Chirag_Desai] Chirag Desai mailto:Chirag_Desai&symantec.com 2006-02 +# [Chris_Adamson] Chris Adamson mailto:invalidname&gmail.com +# [Chris_Adkins] Chris Adkins mailto:cadkins&filenet.com 2006-10 +# [Chris_Anderson] Chris Anderson Daegis, Inc. mailto:ianaportmaster&daegis.com 2012-07-31 +# [Chris_Bertin] Chris Bertin mailto:chris.bertin&hp.com 2009-05-19 +# [Chris_Brown] Chris Brown mailto:chrisb&chancery.com +# [Chris_Chiotasso] Chris Chiotasso mailto:cchiotasso&infolibria.com +# [Chris_Cuilla] Chris Cuilla mailto:balr!vpnet!cuilla!chris&clout.chi.il.us +# [Chris_Das] Chris Das mailto:cdas&cnd.hp.com +# [Chris_Dern] Chris Dern mailto:cdern&nospam.alarismed.com 2004-06 +# [Chris_Duncombe] Chris Duncombe mailto:cdunc&atpeng.com +# [Chris_Eich] Chris Eich Enphase Energy, Inc. mailto:ceich&enphaseenergy.com 2011-11-08 +# [Chris_Farey] Chris Farey StorMagic Ltd mailto:chris_farey&stormagic.com 2011-12-16 +# [Chris_Flynn] Chris Flynn mailto:cflynn&landmark.com +# [Chris_Forsythe] Chris Forsythe The Growl Project mailto:chris&growl.info 2012-02-07 +# [Chris_Greene] Chris Greene mailto:cgreeneOA&avidsports.com +# [Chris_Griffin] Chris Griffin mailto:cgriffin&dka.com +# [Chris_Griffiths] Chris Griffiths mailto:chris_griffiths&cable.comcast.com 2008-07-28 +# [Chris_Hahn] Chris Hahn mailto:chrish&sierra.net +# [Chris_Hawk] Chris Hawk mailto:chris&corriente.net 2005-08 +# [Chris_Hawkinson] Chris Hawkinson mailto:chawkinson&coalsere.com 2002-08 +# [Chris_Herzog] Chris Herzog mailto:zog&stg.com 2006-05 +# [Chris_Horne] Chris Horne Photosmith mailto:ckhorne&photosmithapp.com 2011-10-27 +# [Chris_Irie] Chris Irie mailto:irie&sybase.com 2008-03-26 +# [Chris_J_Wren] Chris J. Wren mailto:C.Wren&lucent.com +# [Chris_Kent] Chris Kent Ecamm Network, LLC mailto:chris&ecamm.com 2011-10-24 +# [Chris_Kerrigan] Chris Kerrigan mailto:ckerrigan&hns.com +# [Chris_Koeritz] Chris Koeritz mailto:ckoeritz&inovacorp.com +# [Chris_Koeritz_2] Chris Koeritz mailto:fred&gruntose.com 2002-10 +# [Chris_Koeritz_3] Chris Koeritz mailto:portmanager&inovasolutions.com 2006-10 +# [Chris_Kramer] Chris Kramer mailto:CKramer&gis.shl.com +# [Chris_Larsson] Chris Larsson mailto:clarsson&vnet.ibm.com +# [Chris_LeCroy] Chris LeCroy mailto:lecroy&apple.com +# [Chris_MacDonald] Chris MacDonald mailto:chris&viscount.com 2011-03-16 +# [Chris_Megede] Chris Megede mailto:chris.megede&tac.com +# [Chris_Michaelson] Chris Michaelson mailto:chris&codegreennetworks.com 2005-08 +# [Chris_Newman] Chris Newman mailto:chris.newman&oracle.com 2010-10-15 +# [Chris_Peel] Chris Peel mailto:chrispeel.gsi&googlemail.com 2011-03-09 +# [Chris_Pugmire] Chris Pugmire mailto:chrisp&netwinsite.com +# [Chris_Ranch] Chris Ranch mailto:cranch&novell.com +# [Chris_Rominski] Chris Rominski mailto:ChrisRom&attachmate.com +# [Chris_Ryland] Chris Ryland mailto:cpr&emsoftware.com 2004-11 +# [Chris_Sanders] Chris Sanders mailto:csanders&navini.com 2003-08 +# [Chris_Schlaeger] Chris Schlaeger mailto:cs&kde.org +# [Chris_Silverberg] Chris Silverberg mailto:csilverberg&nanocom.com +# [Chris_Stanaway] Chris Stanaway mailto:stanaway&comm.mot.com +# [Chris_Tate] Chris Tate mailto:ctate&astromed.com +# [Chris_Thornhill] Chris Thornhill mailto:port_contact&cjt.ca +# [Chris_Vertonghen] Chris Vertonghen mailto:chrisv&pearldoc.com +# [Chris_Wells] Chris Wells mailto:chris_wells&lansource.com +# [Chris_Wilcox] Chris Wilcox mailto:cwilcox&cd3o.com 2002-10 +# [Chris_Wilson] Chris Wilson mailto:chris+iana&qwirx.com 2008-09-11 +# [Christer_Gunnarsson] Christer Gunnarsson mailto:christer.gunnarsson&ascom.se 2009-03-26 +# [Christer_Nygren] Christer Nygren mailto:christer.nygren&fro.se 2007-08-07 +# [Christiaan_Simons] Christiaan Simons mailto:christiaan.simons&axon.nl +# [Christian_Beaumont] Christian Beaumont mailto:chrisb&lantronix.com 2003-11 +# [Christian_Brecht] Christian Brecht mailto:Christian.Brecht&sauter-gmbh.de 2010-12-15 +# [Christian_Callsen] Christian Callsen mailto:Christian.Callsen&eng.sun.com +# [Christian_Catchpole] Christian Catchpole mailto:christian&catchpole.net 2002-03 +# [Christian_Caudrelier] Christian Caudrelier mailto:Christian.Caudrelier&bull.net 2006-02 +# [Christian_Flintrup] Christian Flintrup mailto:chr&gigahost.dk +# [Christian_Grothoff] Christian Grothoff mailto:grothoff&cs.purdue.edu 2002-10 +# [Christian_Huitema] Christian Huitema mailto:huitema&research.telcordia.com +# [Christian_Huitema_2] Christian Huitema mailto:huitemaµsoft.com 2003-02 +# [Christian_Klemetsson] Christian Klemetsson Integrius AB mailto:christian.klemetsson&integrius.se 2010-03-04 +# [Christian_Laendner] Christian Laendner d&b audiotechnik mailto:software.support&dbaudio.com 2011-10-06 +# [Christian_Rubach] Christian Rubach mailto:Christian_Rubach&bestsoftware.com +# [Christian_Saether] Christian Saether mailto:ChristianS&asymetrix.com +# [Christian_Saether_2] Christian Saether mailto:c.saether&f5.com +# [Christian_Schormann] Christian Schormann mailto:100410.3063&compuserve.com +# [Christian_Stredicke] Christian Stredicke mailto:stredicke&snom.de +# [Christian_Treczoks] Christian Treczoks mailto:ct&braehler.com +# [Christian_Westbrook] Christian Westbrook mailto:cw&wellohorld.com 2007-11-15 +# [Christian_Wolff] Christian Wolff mailto:stvp&smash.tv +# [Christian_Zietz] Christian Zietz mailto:czietz&gmx.net +# [Christina_Mercier] Christina Mercier mailto:christina.mercier&finisar.com 2005-08 +# [Christof_Drescher] Christof Drescher mailto:drescher&mailprox.net 2003-11 +# [Christof_J_Reetz] Christof J. Reetz mailto:cjr&netplan.de 2011-03-09 +# [Christoph_Anton_Mitt] Christoph Anton Mitterer mailto:calestyo&scientia.net 2009-03-10 +# [Christoph_Kukulies] Christoph Kukulies mailto:info&exapt.de 2003-04 +# [Christophe_Allie] Christophe Allie mailto:callie&apple.com 2006-08 +# [Christophe_Besant] Christophe Besant +# [Christophe_Chevalier] Christophe Chevalier mailto:chevalier&archimed.fr 2005-08 +# [Christophe_Cleraux] Christophe Cleraux mailto:chrisc&wrs.com +# [Christophe_Gisquet] Christophe Gisquet mailto:christophe.gisquet&gmail.com 2011-05-26 +# [Christopher_Allen] Christopher Allen mailto:ChristopherA&consensus.com +# [Christopher_Bidwell] Christopher Bidwell mailto:cbidwell&silvercreeksystems.com 2006-02 +# [Christopher_Carlson] Christopher Carlson mailto:cjc&dobbz.com 2003-10 +# [Christopher_Cordray] Christopher Cordray mailto:ccordray&sciencelogic.com 2008-06-05 +# [Christopher_Davey] Christopher Davey mailto:niallocl&quay.ie +# [Christopher_Durham] Christopher Durham mailto:chrisdu&sco.com +# [Christopher_Eykamp] Christopher Eykamp mailto:chris&eykamp.com 2012-08-16 +# [Christopher_Karper] Christopher Karper mailto:ckarper&dev.tricerat.com +# [Christopher_LILJENST] Christopher LILJENSTOLPE mailto:cdl&asgaard.org 2008-04-14 +# [Christopher_Leong] Christopher Leong mailto:leong&kolmod.mlo.dec.com +# [Christopher_McLendon] Christopher McLendon mailto:cem&hyper.com +# [Christopher_Miller] Christopher Miller mailto:Chris.Miller&versatrans.com 2006-02 +# [Christopher_Miller_2] Christopher Miller mailto:chris.miller&versatrans.com 2008-01-14 +# [Christopher_R_Smith] Christopher R. Smith mailto:csmith4&us.ibm.com 2004-11 +# [Christophe_Pignon] Christophe Pignon L-ACOUSTICS mailto:christophe.pignon&l-acoustics.com 2012-08-13 +# [Christopher_Tengi] Christopher Tengi mailto:tengi&princeton.edu +# [Christopher_Truxaw] Christopher Truxaw mailto:ctruxaw&redsoftware.com 2010-10-15 +# [Christopher_Wells] Christopher Wells mailto:Christopher_Wells&3com.com +# [Christopher_Wells_2] Christopher Wells mailto:christopher_wells&3com.com 2002-04 +# [Chuck_McManis] Chuck McManis mailto:cmcmanis&freegate.net +# [Chuck_Neal] Chuck Neal mailto:chuck&phase3.com +# [Chuck_Runquist] Chuck Runquist mailto:crunquist&quarterdeck.com +# [Chuck_Spitz] Chuck Spitz mailto:spich04&cai.com +# [Chuck_Talk] Chuck Talk mailto:ctalk&pervasive.com +# [Chui_Tin_Yen] Chui-Tin Yen mailto:tin&cisco.com 2006-02 +# [Chul_Yoon] Chul Yoon mailto:cyoon&responsenetworks.com +# [Chun_Ho_Chang] Chun-Ho Chang mailto:chun-ho.chang&ca.com 2004-11 +# [Cimarron_Boozer] Cimarron Boozer mailto:cboozer&funk.com +# [Cindy_Martin] Cindy Martin mailto:cmartin&databeam.com +# [CipherPoint] CipherPoint Software, mailto:wshea&cipherpointsoftware.com 2010-03-03 +# inc. +# [Circus_Ponies_Suppor] Circus Ponies Support mailto:support&circusponies.com +# [Cisco] Cisco mailto:glenn.matthews&cisco.com 2011-10-25 +# [Cisco2] Cisco mailto:smkumar&cisco.com 2012-06-11 +# [Cisco_Systems] Cisco Systems mailto:nmtg-port-numbers&cisco.com 2005-11 +# [CityDisc] CityDisc mailto:citydisc&euronet.nl +# [Claes_Fredrik_Mannby] Claes-Fredrik Mannby mailto:cf&mannby.com +# [Clark_Williams] Clark Williams mailto:clark&wirespeed.com +# [CLAUDE_MALLY] CLAUDE MALLY XMI Systems SA mailto:cma&xmisystems.com 2013-01-18 +# [Claudio_Lastrucci] Claudio Lastrucci POWERSOFT S.R.L. mailto:claudio.lastrucci&powersoft.it 2012-01-03 +# [Claudio_Procida] Claudio Procida mailto:claudio&emeraldion.it 2007-05 +# [Claus_Broch] Claus Broch NextDay Aps mailto:nextday&infinite-loop.dk 2012-04-24 +# [Claus_Broch2] Claus Broch Infinite Loop mailto:nasmon&infinite-loop.dk 2012-10-09 +# [Claus_Jensen] Claus Jensen Libratone A/S mailto:cjn&libratone.com 2011-10-27 +# [Claus_Thor_Barth] Claus Thor Barth mailto:iana&barth.dk +# [Clay_Maeckal] Clay Maeckal mailto:clay_maeckel&filemaker.com +# [Clay_Maeckel] Clay Maeckel mailto:clay_maeckel&filemaker.com +# [Clayton_Haapala] Clayton Haapala mailto:clay.haapala&veritas.com 2005-08 +# [Clayton_Wilkinson] Clayton Wilkinson mailto:cwilkinson&carreker.com +# [Cliff_Batson] Cliff Batson mailto:cliff&perrla.com 2010-01-21 +# [Cliff_Diamond] Cliff Diamond mailto:cdiamond&crypto-solutions.co.uk +# [Cliff_Joyce] Cliff Joyce mailto:cliffjoyce&pureblend.com +# [Clifford_Heath] Clifford Heath mailto:cjh&managesoft.com 2006-05 +# [Clifton_Nock] Clifton Nock mailto:cnock&us.ibm.com +# [Clint_Eskew] Clint Eskew Control Technology mailto:ceskew&controltechnology.com 2011-10-28 +# [CloudFlare] CloudFlare, Inc. mailto:help&cloudflare.com 2012-03-09 +# [Cnaan_Aviv] Cnaan Aviv mailto:cnaan&gammasite.com +# [Cognex] Cognex Corporation mailto:contactus&cognex.com 2012-08-28 +# [Coleman_Brumley] Coleman Brumley mailto:cbrumley&polarsoft.biz 2011-02-10 +# [Colin_Barry] Colin Barry mailto:cbarry&gbahn.com +# [Colin_Caughie] Colin Caughie mailto:cfc&indigo-avs.com +# [Colin_Goldstein] Colin Goldstein mailto:Colin&kana.com +# [Colin_Griffiths] Colin Griffiths mailto:colin.griffiths&interlinksoftware.com 2002-02 +# [Colin_Henein] Colin Henein mailto:iana&cmh.parliant.com 2005-08 +# [Colin_Hughes] Colin Hughes mailto:chughes&agentsease.net 2006-02 +# [Colin_Kelley] Colin Kelley mailto:cdk&callwave.com +# [Colin_Reid] Colin Reid mailto:creid&projux.com 2002-11 +# [CollabNet] CollabNet mailto:info&collab.net +# [Colm_MacCarthaigh] Colm MacCarthaigh mailto:colm.maccarthaigh&joost.com 2007-04 +# [Complan_Network_AS] Complan Network AS mailto:knut&winpcs.com 2006-02 +# [Computer_Software_Gm] Computer Software mailto:BrunoRistok&cs-ag.de 2002-10 +# GmbH +# [Connie_Qiu] Connie Qiu mailto:connie&scdb.com +# [Conny_Larsson] Conny Larsson mailto:cocke&vnet.ibm.com +# [Control_Technology_Inc] Control Technology mailto:ceskew&controltechnology.com 2011-10-28 +# [COPALP] COPALP mailto:jf&copalp.com 2012-03-01 +# [Copy] Copy mailto:team©.com 2012-09-19 +# [Corey_Burnett] Corey Burnett mailto:corey.burnett&biopop.com +# [Corey_Clinton] Corey Clinton mailto:ccclinton&travisassoc.com 2011-02-02 +# [Corey_Corrick] Corey Corrick mailto:corey.corrick&flamenconetworks.com +# [Corey_Leong] Corey Leong mailto:cleong&gr8c.org 2010-10-11 +# [Cormac_Long] Cormac Long mailto:webmaster&smsforum.net 2002-07 +# [Corpus_Collusion] Corpus Collusion mailto:developer&corpuscollusion.com 2011-08-23 +# [Craig_Calef] Craig Calef mailto:craig&katmango.com +# [Craig_Ching] Craig Ching mailto:cching&mqsoftware.com +# [Craig_Dowell] Craig Dowell Qualcomm Innovation mailto:cdowell&quicinc.com 2011-12-21 +# Center, Inc. +# [Craig_Everhart] Craig Everhart mailto:Craig.Everhart&netapp.com 2010-07-06 +# [Craig_Fowler] Craig Fowler mailto:cfowler&us.oracle.com +# [Craig_Langfahl] Craig Langfahl mailto:Craig_J_Langfahl&ccm.ch.intel.com +# [Craig_N_Bissell] Craig N. Bissell mailto:craig&quailnetworks.com 2006-04 +# [Craig_Nelson] Craig Nelson Cameo Systems Inc. mailto:craig&reversion.ca 2011-09-26 +# [Craig_Rogers] Craig Rogers mailto:Rogers&isi.edu +# [Craig_Steffen] Craig Steffen mailto:csteffen&ncsa.uiuc.edu 2005-08 +# [Craig_Weeks] Craig Weeks mailto:cweeks&syspace.co.uk +# [Crestron_Electronics] Crestron Electronics, mailto:mtalreja&crestron.com 2012-06-27 +# [Cristian_Petculescu] Cristian Petculescu mailto:cristpµsoft.com +# [Cristian_Petculescu_2] Cristian Petculescu mailto:cristp&hotmail.com 2003-04 +# [Cristian_Petculescu_3] Cristian Petculescu mailto:petcu40&gmail.com 2005-08 +# [Cryo_Networks] Cryo-Networks mailto:p.favre&cryo-networks.fr +# [Csaba_Mate] Csaba Mate mailto:mc36&freemail.c3.hu +# [Cullen_Jennings] Cullen Jennings mailto:fluffy&cisco.com 2010-02-03 +# [Curt_Ellmann] Curt Ellmann mailto:curt.ellmann&ncr.com +# [Curt_Mayer] Curt Mayer mailto:curt&emergent.com +# [Curt_Schimmel] Curt Schimmel mailto:curt&small-tree.com 2005-11 +# [Curtis_Anderson] Curtis Anderson mailto:canderson&turbolinux.com +# [Curtis_Anderson_2] Curtis Anderson mailto:ecanderson&turbolinux.com +# [Curtis_Bray] Curtis Bray mailto:CurtisB&creativedesign.com +# [Curtis_Smith] Curtis Smith mailto:curtis.smith&vsin.com +# [Curtiss_Howard] Curtiss Howard mailto:cjhoward&unity.ncsu.edu 2004-11 +# [CX5_SOFTWARE] CX5 SOFTWARE mailto:contact&cx5software.com 2013-02-04 +# [DARcorp] mailto:DARcorp&aol.com +# [d_b_audiotechnik] d&b audiotechnik mailto:software.support&dbaudio.com 2011-10-06 +# [D_J_Bernstein] D. J. Bernstein mailto:djb&silverton.berkeley.edu +# [D_J_Bernstein_2] D. J. Bernstein mailto:djb&koobera.math.uic.edu +# [Daegis_Inc] Daegis, Inc. mailto:ianaportmaster&daegis.com 2012-07-31 +# [Dagfinn_Saether] Dagfinn Saether mailto:Dagfinn&admins.com +# [Daisuke_Shinomiya] Daisuke Shinomiya mailto:shinomiya.daisu&jp.fujitsu.com 2005-08 +# [Daivd_P_Chassin] Daivd P. Chassin mailto:david.chassin&pnl.gov 2002-06 +# [Dale_Bethers] Dale Bethers mailto:dbethers&novell.com +# [Dale_Norman] Dale Norman mailto:dnorman&informatica.com +# [Dalit_Naor] Dalit Naor mailto:dalit&il.ibm.com +# [Dameon_Wagner] Dameon Wagner mailto:d.wagner&freemail.absa.co.za 2002-02 +# [Damian_Tarnawsky] Damian Tarnawsky mailto:support&nexusconcepts.com +# [Damien_Miller] Damien Miller mailto:damien&ibs.com.au +# [Damir_Skrjanec] Damir Skrjanec mailto:damir.skrjanec&cybrotech.co.uk 2007-05 +# [Damon_Danieli] Damon Danieli mailto:damondµsoft.com +# [Damon_Ennis] Damon Ennis mailto:damon&silver-peak.com 2007-03 +# [Dan_Amstutz] Dan Amstutz mailto:dan&iliumsoft.com +# [Dan_Bernstein] Dan Bernstein mailto:djb&silverton.berkeley.edu +# [Dan_Bernstein_2] Dan Bernstein mailto:djb&cr.yp.to +# [Dan_Bernstein_3] Dan Bernstein mailto:djb&koobera.math.uic.edu +# [Dan_Burrows] Dan Burrows mailto:dburrows&overlandstorage.com 2009-09-25 +# [Dan_Cummings] Dan Cummings mailto:doc&cnr.com +# [Dan_Davis] Dan Davis mailto:Dan.A.Davis&hp.com 2003-04 +# [Dan_Flowers] Dan Flowers mailto:flowers&smaug.lkg.dec.com +# [Dan_Goff] Dan Goff mailto:Dan.Goff&ngc.com +# [Dan_Harkins] Dan Harkins mailto:dharkins&lounge.org 2011-08-15 +# [Dan_Harrington] Dan Harrington mailto:dth&lucent.com +# [Dan_Klein] Dan Klein mailto:dvk&lonewolf.com +# [Dan_Leising] Dan Leising mailto:dleisingµsoft.com 2005-01 +# [Dan_Mahn] Dan Mahn mailto:dan.mahn&digidescorp.com +# [Dan_Polivy] Dan Polivy mailto:dpolivyµsoft.com 2008-03-12 +# [Dan_Razzell] Dan Razzell mailto:dan&starfishsystems.ca 2006-06 +# [Dan_Shia] Dan Shia mailto:dset!shia&uunet.uu.net +# [Dan_Smith] Dan Smith mailto:dan.smith&den.galileo.com +# [Dan_Wing] Dan Wing mailto:dwing&cisco.com 2011-01-11 +# [Dana_Blair] Dana Blair mailto:dblair&cisco.com 2004-06 +# [Dana_Doggett] Dana Doggett Stoneware Inc. mailto:dana.doggett&stone-ware.com 2012-05-18 +# [Dana_Porter] Dana Porter mailto:dana.porter&sun.com 2003-10 +# [Daniel_Becker] Daniel Becker mailto:becker2d&ttc.com +# [Daniel_Becker_2] Daniel Becker mailto:beckerd&ttc.com +# [Daniel_Becker_3] Daniel Becker mailto:dbecker&v-one.com +# [Daniel_Becker_4] Daniel Becker mailto:Dan.Becker&fortisphere.com 2008-06-03 +# [Daniel_Birns] Daniel Birns mailto:daniel&globes.com +# [Daniel_C_McGloin] Daniel C. McGloin mailto:daniel_mcgloin&intuit.com 2005-05 +# [Daniel_Friedman] Daniel Friedman mailto:dfriedman&hns.com 2003-08 +# [Daniel_G_Taylor] Daniel G. Taylor mailto:dan&programmer-art.org 2007-11 +# [Daniel_Grazioli] Daniel Grazioli mailto:dgrazioli&pgaero.co.uk +# [Daniel_Heffernan] Daniel Heffernan mailto:me&daniel.ie +# [Daniel_Holth] Daniel Holth mailto:dholth&fastmail.fm 2012-04-24 +# [Daniel_J_Walsh] Daniel J Walsh mailto:dwalsh&bindview.com +# [Daniel_Julio_Reyes] Daniel Julio Reyes mailto:danieljreyes&yahoo.com 2003-08 +# [Daniel_Kilsdonk] Daniel Kilsdonk mailto:dan&prospeed.net 2006-08 +# [Daniel_Mavrakis] Daniel Mavrakis mailto:system&venus.mctel.fr +# [Daniel_Mavrakis_2] Daniel Mavrakis mailto:mavrakis&mctel.fr +# [Daniel_R_Somerfield] Daniel R Somerfield mailto:dsomerfi&harris.com 2011-08-05 +# [Daniel_Ruppert] Daniel Ruppert mailto:daniel&kaffi.lu 2010-09-16 +# [Daniel_Simms] Daniel Simms mailto:dsimms&acm.uiuc.edu +# [Daniel_Sisk] Daniel Sisk mailto:daniel.sisk&pnl.gov +# [Daniel_Sorlov] Daniel Sorlov mailto:Daniel&sorlov.com +# [Daniel_Sorlov_2] Daniel Sorlov mailto:daniel&sorlov.com 2002-06 +# [Daniel_Steinberg] Daniel Steinberg mailto:daniel&oreilly.com +# [Daniel_Stodle] Daniel Stodle mailto:daniels&cs.uit.no +# [Daniel_Story] Daniel Story mailto:dan&guy-tek.com 2008-01-25 +# [Daniel_Tappan] Daniel Tappan mailto:Tappan&bbn.com +# [Daniel_W_Antonuk] Daniel W. Antonuk mailto:dantonuk&etcconnect.com 2006-05 +# [Daniel_Whelan] Daniel Whelan mailto:dwhelan&filenet.com +# [Daniel_Wippermann] Daniel Wippermann mailto:Daniel.Wippermann&resol.de +# [Danko_Alexeyev] Danko Alexeyev mailto:virtuall&virtuall.info 2007-08-08 +# [Dany_Ayotte] Dany Ayotte mailto:ayotte&teamsoft.com 2002-07 +# [Danzhou_Liu] Danzhou Liu Symantec mailto:Danzhou_Liu&symantec.com 2012-05-07 +# [Dario_S_Tonesi] Dario S. Tonesi mailto:dario.tonesi&nsn.com 2011-02-07 +# [Darrell_Schiebel] Darrell Schiebel mailto:dschieb&cv.nrao.edu +# [Darrin_Smart] Darrin Smart mailto:dns-sd&filmlight.ltd.uk +# [Darshan_Shah] Darshan Shah mailto:darshan.shah&ni.com +# [Darwin_Ammala] Darwin Ammala mailto:dammala&harris.com 2007-03 +# [Daryle_DeBalski] Daryle DeBalski mailto:ddebalski&optika.com +# [Data_Access_Inc] Data Access, Inc. mailto:development&dataaccessinc.com 2012-04-30 +# Data Storage +# [Data_Storage_Institu] Institute of mailto:Patrick&dsi.nus.edu.sg 2002-02 +# Singapore +# [Datacolor] Datacolor mailto:hbarber&datacolor.com 2011-10-14 +# [Dave_Bellivea] Dave Bellivea mailto:DaveBelliveau&corsof.com +# [Dave_Belliveau] Dave Belliveau mailto:DaveBelliveau&cornerstonesoftware.com +# [Dave_Benton] Dave Benton mailto:dave.benton&eaglepoint.com +# [Dave_Buehmann] Dave Buehmann mailto:ingr!daveb&uunet.uu.net +# [Dave_Carrigan] Dave Carrigan mailto:dave&openshut.net +# [Dave_Chapman] Dave Chapman mailto:dave.chapman&buildings.schneider-electric.com 2011-06-06 +# [Dave_Christianson] Dave Christianson mailto:dbc1&cs.washington.edu +# [Dave_Clark] Dave Clark mailto:ddc&lcs.mit.edu +# [Dave_Craft] Dave Craft mailto:gpfs&ibm.com 2004-11 +# [Dave_DesRoches] Dave DesRoches mailto:ddesroches&clariion.com +# [Dave_Feinleib] Dave Feinleib mailto:davefeµsoft.com +# [Dave_Gimpl] Dave Gimpl mailto:gimpl&us.ibm.com 2003-01 +# [Dave_Hines] Dave Hines mailto:d.hines&high-availability.com 2004-11 +# [Dave_Howell] Dave Howell mailto:dave&avatron.com +# [Dave_Hubbard] Dave Hubbard mailto:dave&icc.net +# [Dave_Inman] Dave Inman mailto:davei&mxim.com +# [Dave_Jagoda] Dave Jagoda mailto:dj&opsware.com 2006-06 +# [Dave_Katz] Dave Katz mailto:dkatz&juniper.net 2006-02 +# [Dave_Lamb] Dave Lamb mailto:rdl&rdl.cnd.hp.com +# [Dave_LeBlang] Dave LeBlang mailto:leglang&atria.com +# [Dave_Lindquist] Dave Lindquist mailto:dlindquist&egistix.com 2010-05-27 +# [Dave_Lindquist_2] Dave Lindquist mailto:dlindquist&egistix.com +# [Dave_Lyons] Dave Lyons mailto:dlyons&dnpg.com +# [Dave_Maxwell] Dave Maxwell mailto:d.maxwell&cablelabs.com +# [Dave_Mills] Dave Mills mailto:mills&udel.edu +# [Dave_Mills_2] Dave Mills mailto:Mills&huey.udel.edu +# [Dave_Nesbitt] Dave Nesbitt mailto:nesbitt&cp10.es.xerox.com +# [Dave_Neudoerffer] Dave Neudoerffer mailto:Dave.Neudoerffer&ianywhere.com +# [Dave_Neudoerffer_2] Dave Neudoerffer mailto:dave.neudoerffer&sybase.com 2009-11-18 +# [Dave_Porter] Dave Porter mailto:porter&mango.com +# [Dave_Reiland] Dave Reiland mailto:dave.reiland&netex.com 2003-11 +# [Dave_Robin] Dave Robin mailto:iana_ports&daverobin.com +# [Dave_Ross] Dave Ross mailto:david.ross&ca.com +# [Dave_Ruedger] Dave Ruedger mailto:daver&datalode.com 2003-11 +# [Dave_Sewell] Dave Sewell mailto:dave&sewelldev.com +# [Dave_Simmons] Dave Simmons mailto:dsimmons¯omedia.com +# [Dave_Spencer] Dave Spencer mailto:dspencer&xingtech.com +# [Dave_Springer] Dave Springer mailto:daves&apple.com +# [Dave_Stampe] Dave Stampe mailto:dstampe&psych.toronto.edu +# [Dave_Stone] Dave Stone mailto:dstone01&harris.com 2002-09 +# [Dave_Stoneham] Dave Stoneham mailto:dave&mulberry-consultants.co.uk 2008-03-10 +# [Dave_Thaler] Dave Thaler mailto:thalerd&eecs.umich.edu +# [Dave_Thaler_2] Dave Thaler mailto:dthalerµsoft.com +# [Dave_Ward] Dave Ward mailto:dward&cisco.com 2006-02 +# [Dave_Watkins] Dave Watkins mailto:davew&boi.hp.com +# [Dave_Wierbowski] Dave Wierbowski mailto:wierbows&us.ibm.com 2006-08 +# [Davey_Taylor] Davey Taylor mailto:davey.taylor&brimstone.net 2003-02 +# [David_A_Gayler] David A. Gayler mailto:David.Gayler&bindview.com 2005-08 +# [David_A_Gayler_2] David A. Gayler mailto:dgayler&eminentware.com 2006-07 +# [David_A_Gomberg] David A. Gomberg mailto:gomberg&gateway.mitre.org +# [David_A_Lethe] David A. Lethe mailto:david_lethe&us.xyratex.com 2003-04 +# [David_A_Lethe_2] David A Lethe mailto:david&santools.com 2008-05-01 +# [David_Anderson] David Anderson mailto:davea&ssl.berkeley.edu 2004-11 +# [David_Anthony] David Anthony mailto:anthony&power.amasd.anatcp.rockwell.com +# [David_Anuszewski] David Anuszewski mailto:david.anuszewski&siemens.com 2004-11 +# [David_Arko] David Arko mailto:darko&hpfcrn.fc.hp.com +# [David_Arnold] David Arnold mailto:davida&pobox.com +# [David_Ashkenazi] David Ashkenazi mailto:david&synel.co.il 2010-03-23 +# [David_Ashley] David Ashley mailto:david.ashley.ibm&gmail.com 2009-07-24 +# [David_Aspinwall] David Aspinwall mailto:aspinwall×ten.com 2003-04 +# [David_B_Hon] David B. Hon mailto:hon&astro.ufl.edu 2003-03 +# [David_Barrass] David Barrass mailto:dbarrass&bartecautoid.com 2006-01 +# [David_Barrass_2] David Barrass mailto:david.barrass&minorplante.com 2003-11 +# [David_Berk] David Berk mailto:dberk&ping-0.com 2007-08-30 +# [David_Bisset] David Bisset mailto:dbisset&mvel.demon.co.uk +# [David_Borman] David Borman mailto:dab&windriver.com 2003-03 +# [David_Bourland] David Bourland mailto:DBourland&smausa.com +# [David_Brandon] David Brandon mailto:dade&smoolabs.net 2006-08 +# [David_Brower] David Brower mailto:david.brower&oracle.com +# [David_Catmull] David Catmull mailto:uncommon&uncommonplace.com 2006-01 +# [David_Chassin] David Chassin mailto:david.chassin&pnl.gov 2010-12-10 +# [David_Chell] David Chell mailto:david&softlife.co.nz +# [David_Cheng] David Cheng mailto:davec&aesclever.com 2010-02-01 +# [David_Clark] David Clark mailto:ddc&lcs.mit.edu +# [David_Clunie] David Clunie mailto:dclunie&dclunie.com 2005-08 +# [David_Cooper] David Cooper mailto:david.cooper&oracle.com +# [David_Crewson] David Crewson mailto:davidc&eydeas.net 2004-09 +# [David_Crowe] David Crowe mailto:dcrowe&faronics.com 2008-01-07 +# [David_Dion] David Dion mailto:David.Dionµsoft.com 2009-02-12 +# [David_Duncan] David Duncan mailto:dduncan&es.com +# [David_Dunetz] David Dunetz mailto:david&sweetware.com +# [David_Ely] David Ely mailto:dely&cnri.reston.va.us +# [David_F_Skoll] David F. Skoll mailto:dfs&roaringpenguin.com 2010-02-05 +# [David_Farajun] David Farajun mailto:dfarajun&asigra.com 2004-11 +# [David_Ferguson] David Ferguson mailto:dferguson&xtralot.com 2002-02 +# [David_Ferrero] David Ferrero mailto:david&zion.com +# [David_Fudge] David Fudge mailto:david.fudge&tssi.co.uk 2003-08 +# [David_Goldberg] David Goldberg mailto:dgoldberg&callisto.com +# [David_Goodall] David Goodall mailto:david.goodall&g2microsystems.com 2007-02 +# [David_Greer] David Greer mailto:david_greer&robelle.com +# [David_HM_Spector] David HM Spector mailto:spector&zeitgeist.com +# [David_Hagood] David Hagood mailto:david.hagood&aeroflex.com +# [David_Hampson] David Hampson mailto:davidha&codemasters.com +# [David_Holden] David Holden mailto:mdh&rentek.net +# [David_Hornsby] David Hornsby mailto:djh&munnari.oz.au +# [David_Hua] David Hua mailto:davhuaµsoft.com +# [David_Hughes] David Hughes mailto:bambi&hughes.com.au +# [David_Ison] David Ison mailto:here&dialup.oar.net +# [David_J_Wilson] David J. Wilson mailto:djw&arbortext.com +# [David_Jones] David Jones mailto:djones&cincom.com +# [David_Ko] David Ko mailto:dko&autodesk.com +# [David_Ko_2] David Ko mailto:david.dk.ko&gmail.com 2009-09-14 +# [David_Kramer] David Kramer mailto:dkramer&apple.com 2004-11 +# [David_Kramer_2] David Kramer mailto:dkramer&apple.com +# [David_Lasker] David Lasker mailto:dave&altosdesign.com +# [David_Leinbach] David Leinbach mailto:dleinbach&jti.bc.ca +# [David_Lemson] David Lemson mailto:dlemsonµsoft.com +# [David_Lethe] David Lethe mailto:david&santools.com 2010-12-24 +# [David_Luxford] David Luxford mailto:david.luxford&asg.com 2010-07-01 +# [David_M_Gay] David M. Gay AMPL Optimization, mailto:dmg&l.com 2012-05-25 +# [David_M_O_Rourke] David M. O'Rourke mailto:daveo&apple.com 2003-01 +# [David_M_Rhodes] David M. Rhodes mailto:davidrho&cnd.hp.com +# [David_Manns] David Manns mailto:davidm&pulsonix.com 2008-02-28 +# [David_McLaughlin] David McLaughlin mailto:davidmclaughlin&accessdata.com 2004-11 +# [David_McMarlin] David McMarlin mailto:david.mcmarlin&oracle.com 2006-08 +# [David_Meermans] David Meermans mailto:david.meermans&aastra.com +# [David_Merchant] David Merchant mailto:d.f.merchant&livjm.ac.uk +# [David_Miller] David Miller mailto:dave.dsm&gmail.com 2007-02 +# [David_Misunas] David Misunas mailto:DMisunas&micom.com +# [David_Mojdehi] David Mojdehi mailto:david.mojdehi&autodesk.com 2002-04 +# [David_Moore] David Moore mailto:dmoore&uttc-uts.com +# [David_Nanian] David Nanian mailto:dnanian&shirt-pocket.com 2007-09-28 +# [David_Nanian_2] David Nanian mailto:dnanian&shirt-pocket.com +# [David_Nash] David Nash mailto:dnash&ford.com +# [David_Ott] David Ott mailto:dott&qualcomm.com 2010-10-15 +# [David_Page] David Page mailto:david.page&sun.com 2005-08 +# [David_Pinch] David Pinch mailto:dpinch&mtl-inst.com 2002-04 +# [David_Priest] David Priest mailto:priest&sfu.ca +# [David_Reed] David Reed +# [David_Riggle] David Riggle mailto:dave&busymac.com 2008-01-07 +# [David_Roberts] David Roberts mailto:David.Roberts&ca.com 2005-05 +# [David_Rouchet] David Rouchet mailto:david.rouchet&medialon.com 2007-05 +# [David_Schwartz] David Schwartz mailto:davids&webmaster.com +# [David_Schwartz_2] David Schwartz mailto:david.schwartz&marathontechnologies.com 2009-06-18 +# [David_Sechrest] David Sechrest mailto:david.sechrest&oracle.com 2010-09-22 +# [David_Shaw] David Shaw mailto:dshaw&jabberwocky.com 2003-05 +# [David_Sinclair] David Sinclair mailto:dev&profilemac.com 2006-05 +# [David_Sinclair_2] David Sinclair mailto:bonjour&profilemac.com +# [David_Snocken] David Snocken tel:+44-71-437-7009 +# [David_Spencer] David Spencer mailto:dspencer&telops.com +# [David_Sperling] David Sperling mailto:dsperling&smithmicro.com 2006-06 +# [David_Sperling_2] David Sperling Smith Micro Software, mailto:dsperling&smithmicro.com 2011-10-10 +# [David_Spivey] David Spivey mailto:DavidTSpivey&gmail.com 2010-08-30 +# [David_Stephenson] David Stephenson mailto:david_stephenson&hp.com +# [David_Straw] David Straw mailto:david.straw&hp.com 2005-11 +# [David_Suffield] David Suffield mailto:david.suffield&hp.com 2006-05 +# [David_T_Hines] David T. Hines mailto:david.hines&intel.com 2005-02 +# [David_Thielen] David Thielen mailto:support&windward.net +# [David_Thompson] David Thompson mailto:theta&theta-ent.com +# [David_Tong] David Tong mailto:David_Tong&integrated.mb.ca +# [David_Troeger] David Troeger mailto:David_Troeger&dell.com +# [David_Turner] David Turner mailto:digital&quetico.tbaytel.net +# [David_V_Raskin] David V. Raskin mailto:draskin&rimage.com 2006-02 +# [David_Vest] David Vest mailto:dave&mythicsoft.com 2008-11-19 +# [David_W_Radcliffe] David W. Radcliffe mailto:info&radsolution.co.uk +# [David_Walend] David Walend mailto:david&walend.net +# mailto:dev&salutafugijms.dev.java.net +# [David_Walling] David Walling mailto:sylvanhollow&yahoo.com 2006-03 +# [David_Walling_2] David Walling mailto:dwalling&isoft.com +# [David_Warden] David Warden mailto:david_warden&symantec.com 2008-11-17 +# [David_Warden_2] David Warden mailto:warden&nupaper.com 2005-11 +# [David_Weinstein] David Weinstein mailto:david.weinstein&redstorm.com +# [David_Weisgerber] David Weisgerber mailto:david.weisgerber&printsoft.de 2007-09-27 +# [David_Wilson] David Wilson mailto:dwilson&integral-ie.com +# [David_Wiltz] David Wiltz mailto:dwiltz&hf.intel.com +# [David_Wooden] David Wooden mailto:dwooden&wizdom.com +# [David_Yon] David Yon mailto:yon&tactical-sw.com +# [David_Yon_2] David Yon mailto:dyon&dialout.net 2002-05 +# [David_Young] David Young mailto:david.young&ccsseurope.co.uk 2006-01 +# [David_Zimmerman] David Zimmerman mailto:dpz&rutgers.edu +# [Davoud_Maha] Davoud Maha mailto:dmaha&saba.com +# [Dawei_Qi] Dawei Qi mailto:dqi&galaxytelecomms.com 2010-07-07 +# [DeVoeSquared] DeVoeSquared mailto:support&devoesquared.com +# [De_Chih_Chien] De-Chih Chien mailto:de-chih_chien&symantec.com 2008-10-06 +# [Dean_Blackketter] Dean Blackketter mailto:dean&corp.webtv.net +# [Dean_Blackketter_2] Dean Blackketter mailto:dean&slimdevices.com +# [Dean_Dauger] Dean Dauger mailto:D&daugerresearch.com +# [Dean_Robson] Dean Robson mailto:dean.robson&fujitsu.com.au +# [Dean_Skelton] Dean Skelton mailto:mdskel&ftw.rsc.raytheon.com +# [Dean_Webb] Dean Webb mailto:dean.webb&ascend.com +# [DEIF_AS] DEIF A/S mailto:aes&deif.com 2012-10-15 +# [Delcio_Prizon] Delcio Prizon mailto:dprizon&smar.com.br +# [Dell] Dell mailto:jessica_z&dell.com 2012-11-19 +# [Delphix_Corp] Delphix Corp mailto:peng.dai&delphix.com 2012-11-01 +# [Denis_Ducharme] Denis Ducharme mailto:dducharme&softek.com +# [Denis_Leclerc] Denis Leclerc mailto:DLeclerc&banyan.com +# [Denise_Eckstein] Denise Eckstein mailto:denise.eckstein&hp.com 2004-11 +# [Denise_Fernandez] Denise Fernandez mailto:dcbfernandez&gmail.com +# [Dennis_Batchelder] Dennis Batchelder mailto:dennis&capres.com +# [Dennis_Dube] Dennis Dube mailto:ddube&modicon.com +# [Dennis_Mastin] Dennis Mastin mailto:dennis&tasmania.platte.com +# [Dennis_Parker] Dennis Parker mailto:dparker&broadcloud.com 2002-02 +# [Dennis_Reinhardt] Dennis Reinhardt mailto:DennisR&dair.com +# [Derick_Snyder] Derick Snyder mailto:dsnyder&rainbow.com +# [Dermot_Tynand] Dermot Tynand mailto:dtynan&claddagh.ie +# [Derrick_Hisatake] Derrick Hisatake mailto:derrick.i.hisatake&intel.com +# [Desmond_Chan] Desmond Chan mailto:deschan&prismedia.com +# [Detlef_Rothe] Detlef Rothe mailto:detlef.rothe&ts.fujitsu.com 2009-05-15 +# [Detlef_Stoever] Detlef Stoever mailto:mail&ivotec.com 2003-03 +# Deutschland Informations +# [Deutschland_Informat] und mailto:beratung&dirg.de +# Reservierungsgesellschaft +# mbH +# [Developer_Support] Developer Support mailto:devsupport&tivo.com +# [Developer_Support_2] Developer Support TiVo Inc. mailto:devsupport&tivo.com 2011-10-18 +# [Devjani_Ray] Devjani Ray Oracle Corporation mailto:Devjani.Ray&oracle.com 2012-04-20 +# [Devon_Dawson] Devon Dawson mailto:devon.dawson&hp.com 2003-11 +# [Devon_Taylor] Devon Taylor mailto:dtaylor&novell.com +# [DEVONtechnologies_LLC] DEVONtechnologies, mailto:info&devontechnologies.com 2011-10-18 +# LLC +# [Dialectro_Software] Dialectro Software mailto:g&dialectro.com 2011-10-20 +# [Diane_Downie] Diane Downie mailto:downie&jibe.mv.com +# [Diane_I_Shannon] Diane I. Shannon mailto:shannond&us.ibm.com 2007-04 +# [Dick_Augustsson] Dick Augustsson mailto:dick&skenbe.net +# [Dick_Georges] Dick Georges mailto:georges&monaco.net 2002-02 +# [Dick_van_der_Sijs] Dick van der Sijs mailto:dick&and.nl +# [Didier_Cabannes] Didier Cabannes mailto:Didier&matisse.com 2004-11 +# [Diego_Friedel] Diego Friedel mailto:d.friedel&avm.de 2006-03 +# [Diego_Negre] Diego Negre Nuance Communications mailto:Diego.Negre&nuance.com 2012-10-05 +# [Diego_Santa_Cruz] Diego Santa Cruz SpinetiX S.A. mailto:Diego.SantaCruz&spinetix.com 2011-10-18 +# [Diego_Saravia] Diego Saravia mailto:dsa&unsa.edu.ar +# [Dieter_Siegmund] Dieter Siegmund mailto:dieter&apple.com 2007-10-22 +# [Dietmar_Finkler] Dietmar Finkler mailto:d.finkler&hermstedt.de +# [DIFUSI_Inc] DIFUSI, Inc. mailto:mike&difusi.com 2011-11-07 +# [Dima_Seliverstov] Dima Seliverstov mailto:Dima_Seliverstov&bmc.com 2009-07-28 +# [Dimitrios_Souflis] Dimitrios Souflis mailto:dsouflis&altera.gr +# [Dimitris_Michelinaki] Dimitris Michelinakis mailto:dimitris&michelinakis.gr 2002-05 +# [Dinkar_Chivaluri] Dinkar Chivaluri mailto:dinkar&veritas.com +# [Dinkar_Chivaluri_2] Dinkar Chivaluri mailto:dchivaluri&imperfectnetworks.com 2006-02 +# [Dino_Ciano] Dino Ciano mailto:DCiano&tickets.com 2011-03-02 +# [Dino_Farinacci] Dino Farinacci mailto:dino&cisco.com 2008-08-21 +# [Dion_Slijp] Dion Slijp mailto:dion.slijp&oce.com +# [Dirk_Hillbrecht] Dirk Hillbrecht mailto:dirk&hillbrecht.de +# [Dirk_Koopman] Dirk Koopman mailto:djk&tobit.co.uk 2005-08 +# [Dirk_Kutscher] Dirk Kutscher mailto:dku&informatik.uni-bremen.de +# [Dirk_Materlik] Dirk Materlik mailto:materlik&blubbsoft.de 2005-11 +# [Dirk_Stoop] Dirk Stoop mailto:dirk&madebysofa.com 2007-04 +# [Dmitri_Znosko] Dmitri Znosko mailto:support&radmin.com 2003-03 +# [Dmitry_Brant] Dmitry Brant mailto:dmitry_brant&lincolnelectric.com 2007-03 +# [Dmitry_Isakbayev] Dmitry Isakbayev mailto:dmitry&transnexus.com 2010-03-05 +# [Dmitry_Krasnonosenki] Dmitry Krasnonosenkikh mailto:Dmitry_Krasnonosenkih&nmss.com +# [Dmitry_Obuvalin] Dmitry Obuvalin mailto:pulse.cc&mail.ru 2006-02 +# [Dolores_Scott] Dolores Scott mailto:Dolores.Scott&l-3security.com +# [Dolores_Scott_2] Dolores Scott mailto:dolores.scott&l-3security.com +# [Domain_Tech] Domain Tech mailto:Domainnametech&blizzard.com 2005-04 +# [Dominick_Cafarelli] Dominick Cafarelli mailto:dominick.cafarelli&networkgeneral.com 2005-08 +# [Dominique_Lelievre] Dominique Lelievre mailto:dominique.lelievre&fr.ibm.com 2003-01 +# [DOMIQ_Sp_zoo] DOMIQ Sp. z o.o. mailto:registries&domiq.pl 2011-08-29 +# [Don_Bowman] Don Bowman mailto:don&pixstream.com +# [Don_Gibson] Don Gibson mailto:sequent!aero!twinsun!ashtate.A-T.COM!dong&uunet.UU.NET +# [Don_Gilbreath] Don Gilbreath mailto:don&comcam.net 2002-09 +# [Don_Hejna] Don Hejna mailto:djhejna&ambit.com +# [Don_Loughry] Don Loughry mailto:DON_LOUGHRY&hp-cupertino-om4.om.hp.com +# [Don_Marselle] Don Marselle mailto:don.marselle&3par.com 2008-04-09 +# [Don_Merrell] Don Merrell mailto:donmer&axent.com +# [Don_Oliver] Don Oliver mailto:don&donnyworld.com +# [Don_Payette] Don Payette mailto:Don.Payette&unisys.com +# [Don_Provan] Don Provan mailto:donp&xlnvax.novell.com +# [Don_Provan_2] Don Provan mailto:donp&sjf.novell.com +# [Don_Stedman] Don Stedman mailto:dones&stisystems.com +# [Don_Sullivan] Don Sullivan mailto:donald.v.sullivan&nasa.gov 2010-02-16 +# [Don_Traub] Don Traub mailto:don.traub&sun.com +# [Don_Tyson] Don Tyson +# [Don_Tyson_2] Don Tyson mailto:don.tyson&cor.dowjones.com +# [Don_W_Fitzpatrick] Don W. Fitzpatrick mailto:dwf&internetworxsystems.com 2005-08 +# [Don_Woodward] Don Woodward mailto:dwoodward&rokulabs.com +# [Donald_Cornwell] Donald Cornwell mailto:don.cornwell&objective.com +# [Donald_Cornwell_2] Donald Cornwell +# [Donald_D_Woelz] Donald D. Woelz mailto:don&genroco.com +# [Donald_Dylla] Donald Dylla mailto:donald.dylla&hp.com 2004-12 +# [Donald_E_Eastlake] Donald E. Eastlake 3rd mailto:d3e3e3&gmail.com +# [Donald_Eastlake] Donald Eastlake mailto:d3e3e3&gmail.com +# [Donald_G_Kallgren] Donald G. Kallgren mailto:Donald.Kallgren&nc3a.nato.int +# [Donald_Welch] Donald Welch mailto:donald.welch&hp.com 2006-05 +# [Donghwan_Lim] Donghwan Lim mailto:donghwan.lim&t-mobile.com 2008-01-22 +# [Dongkeun_Kim] Dongkeun Kim mailto:dongkeun70.kim&samsung.com 2007-02 +# [Dongling_Wang] Dongling Wang mailto:dongling&finle.com +# [Donna_Dillenberger] Donna Dillenberger mailto:engd&us.ibm.com +# [Donny_Gilor] Donny Gilor mailto:dgilor&pop01.ny.us.ibm.net +# [Doriano_Blengino] Doriano Blengino mailto:tecnico_remove_&_remove_xonelectronics.it +# [Dotan_Ofek] Dotan Ofek mailto:dotan.ofek&prizmasoft.com 2005-12 +# [Doug_Boone] Doug Boone mailto:dboone&atg.clr.com +# [Doug_Dillon] Doug Dillon mailto:dillon&hns.com +# [Doug_Grover] Doug Grover mailto:dgrover&phonex.com +# [Doug_Karl] Doug Karl mailto:KARL-D&osu-20.ircc.ohio-state.edu +# [Doug_Kent] Doug Kent mailto:mouthers@slugg&nwnexus.wa.com +# [Doug_Leany] Doug Leany mailto:DLEANY&opto22.com 2006-09 +# [Doug_Rosenthal] Doug Rosenthal mailto:rosenthl&krypton.einet.net +# [Doug_Royer] Doug Royer mailto:DouglasRoyer&gmail.com 2010-12-09 +# [Doug_Wyatt] Doug Wyatt mailto:dwyatt&apple.com +# [Douglas_Crockford] Douglas Crockford mailto:douglas&crockford.com +# [Douglas_Davidson] Douglas Davidson mailto:drd&apple.com 2002-06 +# [Douglas_Goodall] Douglas Goodall mailto:douglas_goodall&mac.com 2009-08-05 +# [Douglas_Kadlecek] Douglas Kadlecek mailto:doug&dkware.com 2004-11 +# [Douglas_Knisely] Douglas Knisely mailto:dnk&lucent.com +# [Douglas_M_Gaer] Douglas M. Gaer mailto:doug&datareel.com +# [Douglas_McLaggan] Douglas McLaggan mailto:glbp-info&cisco.com +# [Dr_Anupam_Bharali] Dr. Anupam Bharali mailto:paniana&gmail.com 2006-06 +# [Dr_Charles_E_Campb] Dr. Charles E. Campbell mailto:cec&gryphon.gsfc.nasa.gov +# Jr. +# [Dr_Chris_Tucker] Dr. Chris Tucker mailto:chris.tucker&ioltd.co.uk 2005-08 +# [Dr_Horst_Herb] Dr Horst Herb mailto:horst&dorrigomedical.com 2005-12 +# [Dr_Kingsley_C_Nwos] Dr. Kingsley C. Nwosu mailto:knwosu&aglowmail.com 2003-04 +# [Dr_Matthias_Arnold] Dr. Matthias Arnold mailto:m.arnold&dasgip.de 2009-03-23 +# [Dr_Michael_Erdmann] Dr. Michael Erdmann mailto:erdmann&ontoprise.de 2004-12 +# [Dr_R_P_Alston] Dr. R.P. Alston mailto:robin&gradient.com +# [Dr_Yair_Shapira] Dr. Yair Shapira mailto:yair&flashnetworks.com +# [Dragos_Pop] Dragos Pop mailto:dragos&cs.ubbcluj.ro +# [Drake_Bankston] Drake Bankston mailto:IANA.KingdomsOnline&gmail.com 2009-08-18 +# [Drew_Davies] Drew Davies Rx Networks Inc. mailto:ddavies&rxnetworks.com 2013-01-24 +# [Drew_Wolff] Drew Wolff mailto:dwolff¢ra.net +# [Dror_Gill] Dror Gill mailto:drorgi&vnet.ibm.com +# [Dror_Harari] Dror Harari mailto:Dror.Harari&isgsoft.com +# [Duane_Gibson] Duane Gibson mailto:ianaportmaster&unify.com +# [Duane_Kiser] Duane Kiser mailto:dkiser&jsexpress.com +# [Duane_Wessels] Duane Wessels mailto:wessels&nlanr.net +# [Dudi_Hazan] Dudi Hazan mailto:dudi&checkpoint.com +# [Duk_Loi] Duk Loi mailto:dloi&peerdirect.com 2005-11 +# [Duncan_Hare] Duncan Hare mailto:Duncan.Hare&synoia.com +# [Dustin_Brand] Dustin Brand mailto:amo&amo.net +# [Dustin_Zack] Dustin Zack mailto:dustin.e.zack&gmail.com 2006-06 +# [E_Wald] E. Wald mailto:ewald&via.enet.dec.com +# [Ean_Black] Ean Black mailto:eanb&bladesoftware.co.uk 2009-04-08 +# [Earl_Brannigan] Earl Brannigan mailto:earl.brannigan&lindenhous.co.uk +# [Earl_Wallace] Earl Wallace mailto:earlw&apple.com +# [Ecamm_Network_LLC] Ecamm Network, LLC mailto:chris&ecamm.com 2011-10-24 +# [Eckhard_Grieger] Eckhard Grieger mailto:e.grieger&com-on.de +# [Ed_Barron] Ed Barron +# [Ed_Cain] Ed Cain mailto:cain&edn-unix.dca.mil +# [Ed_Fair] Ed Fair mailto:ed_fair&yahoo.com 2002-11 +# [Ed_Green] Ed Green mailto:egreen&pmeasuring.com +# [Ed_Kress] Ed Kress mailto:eskress&thinknet.com +# [Ed_Metcalf] Ed Metcalf mailto:emetcalf&tripwiresecurity.com +# [Ed_Odjaghian] Ed Odjaghian mailto:edo&datacap.com +# [Ed_Ranney] Ed Ranney mailto:eranney&crestron.com 2003-01 +# [Ed_Vincent] Ed Vincent mailto:edv&concomp.com +# [Eddie_Kohler] Eddie Kohler IETF dccp WG mailto:kohler&cs.ucla.edu +# [Eden_Sherry] Eden Sherry mailto:eden&pair.com +# [Edgar_Alan_Tu] Edgar Alan Tu mailto:Edgar_Tu&playstation.sony.com 2003-01 +# [Edgar_Blum] Edgar Blum mailto:edgar.blum&swx.ch +# [Edgar_Circenis] Edgar Circenis mailto:ec&fc.hp.com +# [Edo_Yahav] Edo Yahav mailto:standards&expand.com +# [Eduard_de_Jong] Eduard de Jong n-Count Technology mailto:domains&dejongfrz.nl 2013-01-22 +# B.V. +# [Eduardo_Fernandez] Eduardo Fernandez mailto:eduardo.fernandez&avocent.com 2003-08 +# [Eduardo_Rosenberg_de] Eduardo Rosenberg de mailto:eduardor&spacenet.com.br +# Moura +# [Edward_Browdy] Edward Browdy mailto:ebrowdy&cryptek.com 2002-07 +# [Edward_Macomber] Edward Macomber OPNET Technologies mailto:tmacomber&opnet.com 2011-09-21 +# [Edward_R_Boedecker] Edward R. Boedecker mailto:boedeck1&flash.net 2003-11 +# [Edward_Reus] Edward Reus mailto:edwardrµsoft.com +# [Edward_T_O_Shea] Edward T. O'Shea mailto:oshea&bellsouth.net +# [Edward_Yim] Edward Yim mailto:eyim&hpmfas4.cup.hp.com +# [EFKON_AG] EFKON AG mailto:t.kemmer&efkon.com 2011-10-20 +# [Eggert_Thorlacius] Eggert Thorlacius mailto:eggert&menandmice.com 2007-08-30 +# [Eggert_Thorlacius_2] Eggert Thorlacius mailto:eggi&menandmice.com 2010-01-27 +# [Egon_Meier_Engelen] Egon Meier-Engelen mailto:egon.meier-engelen&dlr.de +# [Eiki_Iwata] Eiki Iwata mailto:eiki&nd.net.fujitsu.co.jp +# [Eivan_Cerasi] Eivan Cerasi mailto:eivan.cerasi&eurocontrol.int 2008-10-10 +# [Ekkehard_Morgenstern] Ekkehard Morgenstern mailto:ekkehard&ekkehardmorgenstern.de 2003-03 +# [Elgato] Elgato mailto:support&elgato.com +# [Elgato_Systems] Elgato Systems mailto:portinfo&elgato.com 2004-11 +# [Eli_Sternheim] Eli Sternheim mailto:eli&interhdl.com +# [Elias_Sabbagh] Elias Sabbagh mailto:ehs&sabbagh.com +# [Eliot_Blennerhassett] Eliot Blennerhassett mailto:eblennerhassett&audioscience.com 2011-07-07 +# [Eliot_Moss] Eliot Moss mailto:EBM&xx.lcs.mit.edu +# [Elizabeth_Zilen] Elizabeth Zilen mailto:ezilen&newboundary.com 2004-11 +# [Elliot_Murphy] Elliot Murphy mailto:elliot.murphy&gmail.com 2008-07-09 +# [Elliot_Schwartz] Elliot Schwartz mailto:elliot&mit.edu +# [Elwood_Downey] Elwood Downey mailto:ecdowney&clearskyinstitute.com 2002-04 +# [Emidio_Cunha] Emidio Cunha mailto:emidio&janeladigital.com 2003-11 +# [Emily_Harris] Emily Harris mailto:eharris&newboundary.com 2004-11 +# [Emin_BORU] Emin BORU mailto:emin&danismanlik.net 2004-11 +# [Emmanuel_Bourg] Emmanuel Bourg mailto:smanux&lfjr.net 2004-11 +# [Emmanuel_Merali] Emmanuel Merali mailto:emumerali&gmail.com +# [Emmanuel_Saint_Loube] Emmanuel Saint-Loubert mailto:emmanuel&simplifymedia.com 2008-08-08 +# [Emmanuel_Tychon] Emmanuel Tychon mailto:etychon&cisco.com 2006-03 +# [Emre_Tunar] Emre Tunar mailto:emre.tunar&ca.com 2004-11 +# [Engineering_Dept] Engineering Dept. mailto:domains&badgernt.com +# [Enphase_Energy_Inc] Enphase Energy, Inc. mailto:ceich&enphaseenergy.com 2011-11-08 +# [Enrique_Corujo] Enrique Corujo mailto:enrique&caclearing.com 2006-02 +# [Environics_Oy] Environics Oy mailto:pasi.nuutinmaki&environics.fi +# [eQ-3_AG] eQ-3 AG mailto:andreas.hueschemenger&eq-3.de 2012-02-10 +# [Eran_Gampel] Eran Gampel mailto:eran&aoe6.net +# [Erhan_Soyer_Osman] Erhan Soyer-Osman mailto:erhansoµsoft.com 2008-03-26 +# [Eric_Anderson] Eric Anderson mailto:eanderson&netvision.com 2003-06 +# [Eric_Boehnisch-Volkmann] Eric Boehnisch-Volkmann DEVONtechnologies, mailto:eboehnisch&devo-technologies.com 2011-10-18 +# [Eric_Brown] Eric Brown mailto:sst!emerald!eric&uunet.uu.net +# [Eric_Bruno] Eric Bruno mailto:ebruno&solution-soft.com +# [Eric_Cantineau] Eric Cantineau mailto:eric&securenotebook.com 2004-11 +# [Eric_Carey] Eric Carey mailto:ecarey&corecoimaging.com 2005-08 +# [Eric_Day] Eric Day mailto:eday&oddments.org 2009-01-16 +# [Eric_Dittert] Eric Dittert mailto:Eric_Dittert&ccm.jf.intel.com +# [Eric_Gillet] Eric Gillet mailto:e.gillet&evs.tv +# [Eric_Grange] Eric Grange mailto:egrange&creative-it.net 2002-08 +# [Eric_Hackman] Eric Hackman mailto:ehackman&millapps.com +# [Eric_Harris_Braun] Eric Harris-Braun mailto:eric&glassbead.com 2003-06 +# [Eric_Isom] Eric Isom mailto:eisom&metastorm.com +# [Eric_Jacksch] Eric Jacksch mailto:jacksch&tenebris.ca +# [Eric_Jacobson] Eric Jacobson mailto:eric_jacobson&filemaker.com +# [Eric_Johnson] Eric Johnson mailto:eric&gruver.net +# [Eric_Lan] Eric Lan mailto:elan&d2k.com +# [Eric_Leblond] Eric Leblond mailto:eric&inl.fr 2007-06 +# [Eric_Ledoux] Eric Ledoux mailto:ericleµsoft.com +# [Eric_McMurry] Eric McMurry mailto:emcmurry&crinisnetworks.com 2004-04 +# [Eric_Newcomer] Eric Newcomer mailto:eric.newcomer&iona.com +# [Eric_Peterson] Eric Peterson mailto:lcc.eric&seas.ucla.edu +# [Eric_Pulsipher] Eric Pulsipher mailto:eric_pulsipher&hp.com +# [Eric_Pulsipher_2] Eric Pulsipher mailto:eric_pulsipher&fc.hp.com +# [Eric_Rosenfeld] Eric Rosenfeld mailto:e.rosenfeld&cablelabs.com 2003-11 +# [Eric_S_Raymond] Eric S. Raymond mailto:esr&thyrsus.com 2010-04-19 +# [Eric_Sean_Conner] Eric Sean Conner mailto:esconner&me.com 2011-10-17 +# [Eric_Sharakan] Eric Sharakan mailto:ldoms-iana-ports&sun.com 2008-02-14 +# [Eric_Soderberg] Eric Soderberg mailto:seric&cup.hp.com +# [Eric_Soderberg_2] Eric Soderberg mailto:seric&hposl102.cup.hp +# [Eric_St_Onge] Eric St. Onge mailto:stonge&apple.com 2008-01-14 +# [Eric_Thiebaut_George] Eric Thiebaut-George mailto:erict&aurema.com 2006-04 +# [Eric_Thorniley] Eric Thorniley mailto:eric&etcomms.co.uk 2007-09-17 +# [Eric_Welch] Eric Welch +# [Eric_Welch_2] Eric Welch mailto:eric&innosys.com 2003-11 +# [Eric_Whitehill] Eric Whitehill mailto:Eric.Whitehill&itt.com +# [Eric_Wilde] Eric Wilde mailto:eric&funk.com +# [Erica_Liu] Erica Liu mailto:liue&isolation.com +# [Ericko_Shimada] Ericko Shimada mailto:eriko&kel.fujitsu.co.jp +# [Ericsson] Ericsson mailto:erik.hugne&ericsson.com 2012-09-05 +# [Erik_Blume] Erik Blume mailto:erikb&caciasl.com +# [Erik_Hugne] Erik Hugne Ericsson mailto:erik.hugne&ericsson.com 2012-09-05 +# [Erik_Kragh_Jensen] Erik Kragh Jensen mailto:kragh&inet.uni2.dk +# [Erik_Mueller] Erik Mueller mailto:erik&signiform.com +# [Erik_Rogers] Erik Rogers mailto:erik&avatron.com +# [Erik_Sea] Erik Sea mailto:sea&apple.com +# [Erik_Skyten] Erik Skyten mailto:eki&silknet.com +# [Eriko_Shimada] Eriko Shimada mailto:eriko&kel.fujitsu.co.jp +# [Erlang] Erlang/OTP support mailto:epmd&erix.ericsson.se 2004-12 +# [Erwin_Hogeweg] Erwin Hogeweg mailto:erwin&airtech.demon.nl +# [Eugene_Hopkinson] Eugene Hopkinson VoxelStorm mailto:slowriot&voxelstorm.com 2012-11-08 +# [Etai_Lev_Ran] Etai Lev-Ran mailto:elevran&cisco.com 2005-02 +# [Ethan_Fremen] Ethan Fremen mailto:mindlace&digicool.com +# [Eugen_Bacic] Eugen Bacic mailto:ebacic&texar.com +# [Eugen_Bacic_2] Eugen Bacic mailto:eugen&texar.com +# [Eugene_Cox] Eugene Cox mailto:genecox&raleigh.ibm.com +# [Eugene_Frenkel] Eugene Frenkel mailto:eugene&ada-usa.com 2005-11 +# [Eugene_Osovetsky] Eugene Osovetsky mailto:eugeneo&geocities.com +# [Eugene_Zhiganov] Eugene Zhiganov mailto:zed&dfe3300.karelia.ru 2002-07 +# [Eugeny_Gladkih] Eugeny Gladkih mailto:john&drweb.com 2008-01-31 +# [Evan_Caves] Evan Caves mailto:evan&acc.com +# [Evan_Rosen] Evan Rosen mailto:evan&robix.com 2005-11 +# [Evgeniy_Filatov] Evgeniy Filatov mailto:evgeniyfilatov&yandex.ru 2009-11-25 +# [Ewan_McNab] Ewan McNab mailto:ewan&qsc.co.uk 2004-11 +# [ExoMachina] ExoMachina mailto:hello&exomachina.com 2011-12-06 +# [Extensis] Extensis mailto:webmaster&extensis.com +# [Eyal_Yardeni] Eyal Yardeni mailto:eyal.yardeni&smarts.com 2003-11 +# [Ezinne_Oji] Ezinne Oji mailto:ezinne.oji&t-mobile.com 2006-06 +# [F_Englert] Fl SQRTDEGvio Englert mailto:flavio&elipse.com.br 2007-09-17 +# [Fabrice_Paget] Fabrice Paget mailto:onefrench&me.com 2012-10-23 +# [Fabrizio_Guglielmino] Fabrizio Guglielmino mailto:guglielmino&infitsrl.com +# [Fabrizio_Massimo_Fer] Fabrizio Massimo Ferrara mailto:fmf&gesi.it 2002-02 +# [Fahad_Gilani] Fahad Gilani mailto:fahad&guidedways.com +# [Faith_Zack] Faith Zack mailto:faithz&sco.com +# [Falk_Werner] Falk Werner eQ-3 AG mailto:falk.werner&entwicklung.eq-3.de 2012-02-10 +# [Farid_Faez] Farid Faez mailto:farid_faez&hp.com +# [FAUCONNET_Ingenierie] FAUCONNET Ingenierie mailto:dev&fisa.fr 2011-05-19 +# SA +# [Federico_Heinz] Federico Heinz mailto:federico&heinz.com +# [Federico_Lucifredi] Federico Lucifredi mailto:flucifredi&novell.com 2009-09-25 +# [Feitian_Technologies] Feitian Technologies mailto:product&ftsafe.com 2010-09-15 +# [Felisa_Ares] Felisa Ares mailto:faa06&tid.es 2003-04 +# [Ferdi_Ladeira] Ferdi Ladeira Fraxion Software mailto:f.lad.mail&gmail.com 2012-03-21 +# [Ferruccio_Barletta] Ferruccio Barletta mailto:ferruccio.barletta&compaq.com +# [Festo_AG] Festo AG & Co. KG mailto:Software-Support&de.festo.com 2012-07-26 +# [Fieldbus_Foundation] Fieldbus Foundation mailto:dave.glanzer&fieldbus.org 2002-10 +# [Fil_Zembowicz] Fil Zembowicz Google, Inc mailto:fil&google.com 2013-02-01 +# [Filip_Zawadiak] Filip Zawadiak DOMIQ Sp. z o.o. mailto:fzawadiak&domiq.pl 2011-08-29 +# [Filippo_Fadda] Filippo Fadda mailto:fadda&osway.com 2003-08 +# [FLIR_Systems_AB] FLIR Systems AB mailto:bjorn.roth&flir.se 2011-10-20 +# [Florence_Wyman] Florence Wyman mailto:wyman&peabody.plk.af.mil +# [Fons_Rademakers] Fons Rademakers mailto:Fons.Rademakers&cern.ch +# [Forest_Hill] Forest Hill mailto:forest&apple.com +# [Found_Software] Found Software, Inc. mailto:john&foundapp.com 2012-04-11 +# [Francesco_Rosi] Francesco Rosi mailto:frosi&orenburg.com 2006-01 +# [Francis_Cianfrocca] Francis Cianfrocca mailto:francis&tempest.com +# [Francis_GASCHET] Francis GASCHET NUMLOG mailto:fg&numlog.fr 2008-09-08 +# [Francisco_Reverbel] Francisco Reverbel mailto:reverbel&ime.usp.br 2002-06 +# [Francisco_Ryan_Tolma] Francisco Ryan Tolmasky mailto:ftolmasky&adelphia.net +# [Francisco_Saez_Aranc] Francisco Saez Arance mailto:fsaez&tid.es +# [Franck_Ladurelle] Franck Ladurelle mailto:ladurelf&partimage.org +# [Franck_Lefevre] Franck Lefevre mailto:franck.lefevre&digitalairways.com 2009-11-18 +# [Franco_Milan] Franco Milan mailto:franco&eladit.com +# [Francois_Granade] Francois Granade mailto:francois&netobjects.com +# [Francois_Harvey] Francois Harvey mailto:securiweb&pandore.qc.ca +# [Francois_Marchand] Francois Marchand mailto:francois.marchand&electromed.com 2002-08 +# [Francois_Marier] Francois Marier libravatar.org mailto:francois&libravatar.org 2011-10-11 +# [Francois_Painchaud] Francois Painchaud mailto:fpainchaud&konshus.com +# [Francois_Peloffy] Francois Peloffy mailto:fpeloffy&4tier.com +# [Frank_B] Frank Bredenbr mailto:fbredenbroecker&psi.de 2008-07-17 +# SQRT\\partialcker +# [Frank_Blakely] Frank Blakely mailto:frankb&hpptc16.rose.hp.com +# [Frank_Goenninger] Frank Goenninger mailto:frank.goenninger&consequor.de 2010-02-22 +# [Frank_Hartung] Frank Hartung mailto:Frank.Hartung&ericsson.com 2007-09-07 +# [Frank_J_Wacho] Frank J. Wacho mailto:WANCHO&wsmr-simtel20.army.mil +# [Frank_Jakel] Frank Jaekel mailto:Frank.Jaekel&cytel.de 2011-04-29 +# [Frank_Kappe] Frank Kappe mailto:fkappe&iicm.tu-graz.ac.at +# [Frank_Liberato] Frank Liberato mailto:frankµlite.com 2004-06 +# [Frank_Neulichedl] Frank Neulichedl mailto:frank&websmile.com +# [Frank_O_Neill] Frank O'Neill mailto:frank&morse.ilo.dec.com +# [Frank_Pikelner] Frank Pikelner mailto:frank.pikelner&netcraftcommunications.com 2010-01-15 +# [Frank_Quick] Frank Quick mailto:fquick&qualcomm.com +# [Frank_Rottmann] Frank Rottmann mailto:Frank.Rottmann&web.de +# [Frank_Soetebeer] Frank Soetebeer mailto:frsoeteb&adobe.com 2003-01 +# [Frank_Szczerba] Frank Szczerba mailto:frank&appmobi.com +# [Frank_Waarsenburg] Frank Waarsenburg mailto:frank&eye-display.nl 2004-11 +# [Frank_Yeh] Frank Yeh mailto:fyeh&us.ibm.com +# [Frank_Zerangue] Frank Zerangue mailto:fzerang&cisco.com +# [Frank_da_Cruz] Frank da Cruz mailto:fdc&watsun.cc.columbia.edu +# [Frans_Lundberg] Frans Lundberg mailto:frans&linova.com 2004-11 +# [Frans_S_C_Witte] Frans S.C. Witte mailto:fscwitte&dicgroep.nl +# [Franz_Josef_Leuders] Franz-Josef Leuders mailto:development&tobit.com +# [Fraxion_Software] Fraxion Software mailto:info&fraxion.biz 2012-03-21 +# [Fred_Batty] Fred Batty mailto:fredb&sun.com 2007-12-03 +# [Fred_Cohen] Fred Cohen mailto:fc&all.net +# [Fred_Fierling] Fred Fierling mailto:fff&exegin.com 2006-02 +# [Fred_Klassen] Fred Klassen mailto:fklassen&jaalam.com 2002-02 +# [Fred_McLain] Fred McLain mailto:fmclain&appworx.com +# [Fred_Messinger] Fred Messinger mailto:fredm&cisco.com +# [Fred_Surr] Fred Surr mailto:quest_iana&oz.quest.com +# [Fred_Yao] Fred Yao mailto:Fred_Yao&ddigate2.desktopdata.com +# [Freddy_A_Ayuso_Hens] Freddy A. Ayuso-Henson mailto:fayusohenson&hillr.com 2008-05-22 +# [Frederic_Hemmer] Frederic Hemmer mailto:Frederic.Hemmer&cern.ch +# [Frederic_Weymann] Frederic Weymann mailto:contact&fizzban.net +# [Frederick_Parent] Frederick Parent mailto:fparent&elfiq.com 2005-11 +# [Fredrik_Haglund] Fredrik Haglund mailto:fredik.haglund&boldsoft.com +# [Freebox_SAS] Freebox SAS mailto:npouillon&freebox.fr 2012-12-14 +# [Freeverse_Software] Freeverse Software mailto:info&freeverse.com +# [Friedman_Wagner_Dobl] Friedman Wagner-Dobler mailto:Friedman.Wagner-Dobler&gdc4s.com 2005-09 +# [Frode_Randers] Frode Randers mailto:Frode.Randers&tietoenator.com 2006-01 +# [GPP_Specifications] John M Meredith 3GPP Specifications mailto:john.meredith&etsi.org 2009-06-11 +# [G_E_Ozz_Nixon_Jr] G.E. Ozz Nixon Jr. mailto:ozznixon&gmail.com 2009-01-13 +# [G_Runfeldt] G SQRT\\partialran mailto:goran&netadmin.se 2007-07-10 +# Runfeldt +# [Gabe_Frost] Gabe Frost mailto:gfrostµsoft.com 2005-08 +# [Gabi_Kalmar] Gabi Kalmar mailto:kalga01&cai.com +# [Gabriel_Kalmar] Gabriel Kalmar mailto:kalga01&ca.com 2008-03-06 +# [Gabriel_Levy] Gabriel Levy mailto:glevy&riverbed.com 2008-08-29 +# [Gabriele_Mondada] Gabriele Mondada RecoLive S`arl mailto:gmondada&recolive.com 2012-08-29 +# [Gal_Cucuy] Gal Cucuy mailto:galc&cyber-ark.com 2002-03 +# [Galaxy4D] Galaxy4D Online Game mailto:admin&galaxy4d.com 2012-06-18 +# [Gang_Gong_Moy] Gang Gong Moy +# [Gangsta_Ltd] Gangsta Ltd. mailto:jc&gangstamedia.com 2011-10-13 +# [Gareth_Nelson] Gareth Nelson mailto:gareth&garethnelson.com 2007-06 +# [Gareth_Nelson_2] Gareth Nelson mailto:gareth&litesim.com 2008-08-22 +# [Garret_Tollkuhn] Garret Tollkuhn mailto:garret&multiviewgroup.com +# [Garrett_Herschleb] Garrett Herschleb mailto:garrett&netrix.com +# [Garrett_Padera] Garrett Padera mailto:garrett&garrettsites.net 2008-02-01 +# [Garry_Moore] Garry Moore mailto:garry.moore&cgi.com 2003-10 +# [Garth_Mayville] Garth Mayville mailto:mayville&maplesoft.on.ca +# [Gary_ANDREWS] Gary ANDREWS mailto:gan&orsyp.com 2008-01-07 +# [Gary_A_James] Gary A. James mailto:gary.james&criticallink.com +# [Gary_Aston] Gary Aston mailto:Gary.Aston&datadrivenlogistics.com 2009-03-10 +# [Gary_Bartlett] Gary Bartlett mailto:garyb&echelon.com +# [Gary_Barton] Gary Barton mailto:gary.barton&citrix.com 2011-02-24 +# [Gary_Giebler] Gary Giebler mailto:gary&giebler.com +# [Gary_Giebler_2] Gary Giebler mailto:gary&giebler.com 2011-10-18 +# [Gary_Glover] Gary Glover mailto:gglover&novell.com +# [Gary_Hampton] Gary Hampton mailto:GH&2hti.com 2008-02-27 +# [Gary_Howland] Gary Howland mailto:gary&systemics.com +# [Gary_Lewis] Gary Lewis mailto:GaryL&hq.mylex.com +# [Gary_M_Allen] Gary M. Allen mailto:gallen&symantec.com +# [Gary_Malkin] Gary Malkin mailto:gmalkin&xylogics.com +# [Gary_Morton] Gary Morton mailto:mortong&pacdata.com +# [Gary_Myers] Gary Myers mailto:gmyers&objectvideo.com +# [Gary_S_Malkin] Gary S. Malkin mailto:GMALKIN&xylogics.com +# [Gary_Sands] Gary Sands mailto:gsands&tycoint.com +# [Gary_T_Ciampa] Gary T. Ciampa mailto:Gary.Ciampa&sas.com 2003-04 +# [Gary_Weichinger] Gary Weichinger mailto:gary.weichinger&netiq.com +# [Gary_Whelan] Gary Whelan mailto:gwhelan&sybonic.com 2005-08 +# [Gaspard_Bucher] Gaspard Bucher mailto:gaspard&teti.ch +# [Gavin_Hutchinson] Gavin Hutchinson mailto:gavinh&visionlogistics.com +# [Gavin_Hutchinson_2] Gavin Hutchinson mailto:gavinh&tesl.com +# [Gene_McCulley] Gene McCulley mailto:mcculley&cuspy.com 2002-02 +# [Gene_Tyacke] Gene Tyacke mailto:gene&apple.com +# [Geoff_Back] Geoff Back mailto:geoff&autocue.co.uk 2002-03 +# [Geoff_Back_2] Geoff Back mailto:geoff&demonlair.co.uk 2010-02-01 +# [Geoff_Back_3] Geoff Back mailto:geoff&demonlair.co.uk +# [Geoff_Back_4] Geoff Back mailto:geoff.back&autocue.co.uk +# [Geoff_Collyer] Geoff Collyer mailto:geoff&research.bell-labs.com +# [Geoff_Goodfellow] Geoff Goodfellow mailto:Geoff&fernwood.mpk.ca.us +# [Geoff_Higgins] Geoff Higgins mailto:geoff.higgins&sun.com 2006-03 +# [Geoff_Meacock] Geoff Meacock mailto:gbibmswl&ibmmail.com +# [Geoff_Mendal] Geoff Mendal mailto:mendal&talarian.com +# [Geoffrey_Beer] Geoffrey Beer Raymarine UK Limited mailto:Geoff.Beer&raymarine.com 2012-05-24 +# [Geoffrey_Wossum] Geoffrey Wossum mailto:geoffrey&pager.net 2003-02 +# [Geoffry_Meek] Geoffry Meek mailto:geoff&meek.com +# [George_Balesta] George Balesta mailto:George.Baletsa&tfn.com +# [George_Dzieciol] George Dzieciol mailto:gdzieciol&symantec.com 2002-07 +# [George_Flanagin] George Flanagin mailto:george&digitalgaslight.com 2010-03-02 +# [George_Gianelos] George Gianelos mailto:Georgegi&attachmate.com +# [George_Gianelos_2] George Gianelos mailto:GeorgeGi&attachmate.com 2003-03 +# [George_Hartz] George Hartz mailto:george.hartz&sentillion.com +# [George_Hwa] George Hwa mailto:ghwa&luminescent.com 2007-03 +# [George_Kajos] George Kajos mailto:gkajos&mail1.videoserver.com +# [George_Moromisato] George Moromisato mailto:gpm&neurohack.com 2004-11 +# [George_Nachman] George Nachman +# [George_Pajari] George Pajari mailto:George.Pajari&faximum.com +# [George_Rudy] George Rudy mailto:george&entsoft.com +# [George_Walter] George Walter mailto:george.walter&ascentialsoftware.com +# [Gerald_Aquila] Gerald Aquila mailto:gerald.aquila&gmail.com +# [Gerald_McBrearty] Gerald McBrearty +# [Gerald_Mesaric] Gerald Mesaric mailto:gmesaric&hyperwave.com +# [Gerald_R_Jensen] Gerald R. Jensen mailto:tech&autodatasys.com 2008-06-05 +# [Gerard_Cannie] Gerard Cannie mailto:jcannie&opticaltech.com +# [Gerard_Cerchio] Gerard Cerchio mailto:gjpc&circlesoft.com 2003-11 +# [Gerardo_Dilillo] Gerardo Dilillo mailto:MOMIANAµsoft.com 2006-08 +# [Gerardo_Pardo_Castel] Gerardo Pardo-Castellote mailto:gerardo.pardo&rti.com 2005-10 +# [Gerben_Wierda] Gerben Wierda mailto:Gerben_Wierda&rna.nl +# [Gerd_Beling] Gerd Beling mailto:GBELING&isi.edu +# [Gerg_Cole] Gerg Cole mailto:gcole&corp.borland.com +# [Gerhard_Wagner] Gerhard Wagner mailto:gw&nova-ratio.de 2009-03-10 +# [Gerry_Brown] Gerry Brown gerry Brown mailto:gerry&gbrown.com 2012-11-29 +# associates +# [gerry_Brown_associates] gerry Brown mailto:gerry&gbrown.com 2012-11-29 +# [Gerry_Dubois] Gerry Dubois mailto:gdubois&carriustech.com 2005-08 +# [Gerry_Gorman] Gerry Gorman mailto:gerry.gorman&emclock.com 2010-12-06 +# [Gert_Thomasen] Gert Thomasen mailto:gert.thomasen&etsi.org 2009-12-07 +# [Ghanshyam_Patel] Ghanshyam Patel mailto:gpatel&natinc.com 2003-11 +# [Gijs_Middelkamp] Gijs Middelkamp mailto:astergate-fax&huisken-systems.nl 2010-02-03 +# [Gil_Greenbaum] Gil Greenbaum mailto:gcole&nisd.cam.unisys.com +# [Gil_Hecht] Gil Hecht mailto:GilH&aks.com +# [Gil_Shafriri] Gil Shafriri mailto:shafriri&ilccm1.iil.intel.com +# [Gilbert_Moineau] Gilbert Moineau mailto:gilbert.moineau&colubris.com 2002-05 +# [Gilbert_Yeung] Gilbert Yeung mailto:gyeung&nvidia.com 2002-04 +# [Gilberto_Arnaiz] Gilberto Arnaiz mailto:garnaiz&siebel.com +# [Gilles_Bourquard] Gilles Bourquard mailto:gbo&wag.ch +# [Gilles_Gameiro] Gilles Gameiro mailto:ggameiro&birdland.com +# [Girish_Bhat] Girish Bhat mailto:gbhat&cranite.com 2006-04 +# [Girish_Gopalakrishna] Girish Gopalakrishnan mailto:girish&shankar-software.org 2010-04-20 +# [Gita_Murthy] Gita Murthy mailto:gita&cup.hp.com +# [Gjermund_Wallenius] Gjermund Wallenius mailto:gwallenius&ndlocis.mil.no 2009-09-30 +# [Glen_Myers] Glen Myers mailto:glen.myers&ipfabrics.com 2007-05 +# [Glen_Pearson] Glen Pearson mailto:GlenP&multigen.com +# [Glen_Sansoucie] Glen Sansoucie mailto:gsansoucie&loftware.com +# [Glen_Sansoucie_2] Glen Sansoucie mailto:glen&llmwin.com +# [Glenn_Allen] Glenn Allen mailto:gallen&goorooinc.com 2009-08-05 +# [Glenn_Anderson] Glenn Anderson mailto:glenn&qualcomm.co.nz +# [Glenn_Davis] Glenn Davis mailto:support&unidata.ucar.edu +# [Glenn_Levitt] Glenn Levitt mailto:streetd1&ix.netcom.com +# [Glenn_Matthews] Glenn Matthews mailto:glenn.matthews&cisco.com 2011-05-23 +# [Glenn_Olander] Glenn Olander mailto:gjo&msi.com +# [Glenn_Olander_2] Glenn Olander mailto:glenn&greenoak.com +# [Glenn_Peterson] Glenn Peterson mailto:glennpµsoft.com +# [Glenn_Reid] Glenn Reid mailto:port-reg&fiveacross.com 2004-11 +# [Glenn_Russell] Glenn Russell mailto:grussell&cablelabs.com +# [Global_Relay] Global Relay mailto:Michael.Sample&GlobalRelay.net 2012-11-28 +# Communications Inc +# [Gobby_0x539] 0x539 dev group http://darcs.0x539.de/trac/obby/cgi-bin/trac.cgi +# [Google] Google, Inc mailto:fil&google.com 2013-02-01 +# [Gopikrishna_Sandra] Gopikrishna Sandra mailto:v-gosandµsoft.com 2005-02 +# [Goran_Runfeldt] Goeran Runfeldt mailto:goran&netadmin.se 2006-12 +# [Gord_Peters] Gord Peters Dialectro Software mailto:g&dialectro.com 2011-10-20 +# [Gord_Tomlin] Gord Tomlin mailto:gord.tomlin&actionsoftware.com 2010-01-21 +# [Gordan_Vosicki] Gordan Vosicki mailto:admin&icsa.ch 2009-09-23 +# [Gordon_C_Galligher] Gordon C. Galligher mailto:gorpong&ping.chi.il.us +# [Gordon_Mangione] Gordon Mangione mailto:gordmµsoft.com +# [Gordon_Mohr] Gordon Mohr mailto:gojomo&usa.net +# [Gordon_Mohr_2] Gordon Mohr mailto:gmohr&cmgisolutions.com +# [Gordon_Waddell] Gordon Waddell mailto:gordon.waddell&nuance.com 2011-03-21 +# [Graeme_Perrow] Graeme Perrow mailto:gperrow&ianywhere.com 2005-08 +# [Graham_Bloice] Graham Bloice mailto:graham.bloice&trihedral.com 2009-09-17 +# [Graham_Jones] Graham Jones mailto:gjones&nab.org 2004-11 +# [Graham_Klyne] Graham Klyne mailto:GK&acm.org +# [Graham_Parsons] Graham Parsons mailto:graham.parsons&reflective.com 2005-08 +# [Graham_Wooden] Graham Wooden mailto:graham&g-rock.net +# [Grant_Gilchrist] Grant Gilchrist mailto:grant&enernex.com 2010-10-18 +# [Grant_Kirby] Grant Kirby mailto:grant_kirby&ccm.al.intel.com +# [Green_Hills_Software] Green Hills Software mailto:iana-contact&ghs.com 2012-02-07 +# [Greg_Bailey] Greg Bailey mailto:gbailey&lxpro.com 2003-04 +# [Greg_Banks] Greg Banks mailto:gnb&sgi.com 2004-11 +# [Greg_Bodine] Greg Bodine mailto:gregory.bodine&ca.com 2002-02 +# [Greg_Broiles] Greg Broiles mailto:greg&sac.net +# [Greg_Cottman] Greg Cottman mailto:greg.cottman&quest.com 2008-10-23 +# [Greg_Cottman_2] Greg Cottman mailto:Greg.Cottman&quest.com 2010-10-18 +# [Greg_Ercolano] Greg Ercolano mailto:erco&netcom.com +# [Greg_Ercolano_2] Greg Ercolano mailto:erco&cinegrfx.com +# [Greg_Foutz] Greg Foutz mailto:gregf&adminovation.com 2006-03 +# [Greg_Goodson] Greg Goodson mailto:ggoodson&group1software.co.uk +# [Greg_Hudson] Greg Hudson mailto:zephyr-bugs&mit.edu +# [Greg_Hudson_2] Greg Hudson mailto:ghudson&mit.edu 2003-01 +# [Greg_Johnson] Greg Johnson mailto:greg.johnson&ieee.org +# [Greg_McLaughlin] Greg McLaughlin mailto:ggregm&moremobilesoftware.com +# [Greg_Pflaum] Greg Pflaum mailto:iris.com!Greg_Pflaum&uunet.uu.net 1992-07 +# [Greg_Porter] Greg Porter mailto:gporter&powerschool.com +# [Greg_Pringle] Greg Pringle mailto:admin&corvedia.com +# [Greg_Robson_Garth] Greg Robson-Garth mailto:gregr&alphalink.com.au +# [Greg_Rose] Greg Rose mailto:Greg_Rose&sydney.sterling.com +# [Greg_Rose_2] Greg Rose mailto:ggr&qualcomm.com 2002-02 +# [Greg_Sidebottom] Greg Sidebottom mailto:gregside&home.com +# [Greg_Stine] Greg Stine mailto:greg.stine&siemens.com 2007-07-05 +# [Greg_Suppes] Greg Suppes mailto:greg.suppes&autodesk.com +# [Greg_Troxel] Greg Troxel mailto:gdt&ir.bbn.com +# [Gregg_Green] Gregg Green mailto:legal&vnyx.net 2004-11 +# [Gregg_Townsend] Gregg Townsend mailto:gmt&cs.arizona.edu 2003-11 +# [Gregg_Welker] Gregg Welker mailto:greggw&zmi.com +# [Gregor_Schmid] Gregor Schmid mailto:gs&qfs.de 2002-07 +# [Gregory_Dudek] Gregory Dudek mailto:dudek&y1d.com +# [Gregory_Hostettler] Gregory Hostettler mailto:ghostettler&caracal.ch 2004-11 +# [Gregory_Power] Gregory Power mailto:gpower&apple.com +# [Gregory_Richards] Gregory Richards mailto:Richards&codu.org 2002-04 +# [Growl_Project] The Growl Project mailto:support&growl.info 2012-02-07 +# [Guhan_Suriyanarayana] Guhan Suriyanarayanan mailto:guhansµsoft.com 2006-03 +# [Guido_Kiener] Guido Kiener mailto:Guido.Kiener&rohde-schwarz.com 2008-12-04 +# [Gur_Kimchi] Gur Kimchi mailto:gkimchiµsoft.com 2008-05-20 +# [Gus_McNaughton] Gus McNaughton mailto:gus&chevin.com +# [Gustavo_Rodriguez_Ri] Gustavo Rodriguez-Rivera mailto:grr&geodesic.com +# [Guus_Sliepen] Guus Sliepen mailto:guus&warande3094.warande.uu.nl +# [Guy_Avery] Guy Avery Navtech Radar mailto:guy.avery&navtechradar.com 2013-02-20 +# [Guy_Cheng] Guy Cheng mailto:GCHE&kastenchase.com +# [Guy_Keren] Guy Keren mailto:Guy_Keren&mail.stil.scitex.com +# [Guy_Meyer] Guy Meyer mailto:rominar&mac.com +# [Gyozo_Kmethy] Gyozo Kmethy mailto:gyozo.kmethy&gnarus.hu 2006-11 +# [Hai_Ou_Yang] Hai Ou-Yang mailto:hai.ou-yang&sun.com 2003-04 +# [Haim_Gelfenbeyn] Haim Gelfenbeyn mailto:haim&hageltech.com +# [Hal_Henderson] Hal Henderson mailto:hhenders&novell.com +# [Hali_Lindbloom] Hali Lindbloom mailto:halil&docent.com +# [Hall_Research] Hall Research mailto:vishal&hallresearch.com 2011-11-29 +# [HaloteC_Instruments] HaloteC Instruments mailto:michel.stam&halotec.com 2012-02-07 +# [Hani_Abdelazim] Hani Abdelazim mailto:hani&apple.com +# [Hannes_K] Hannes K SQRTSlber mailto:hannes.kaelber&x2e.de 2010-09-13 +# [Hans_Christoph_Stein] Hans-Christoph Steiner mailto:hans&eds.org +# [Hans_Peter_Heffels] Hans-Peter Heffels mailto:hostmaster&csb-system.com +# [Hans_Rohnert] Hans Rohnert mailto:hans.rohnert&siemens.com 2002-04 +# [Hans_Schoone] Hans Schoone mailto:Hans.Schoone&nl.ibm.com 2010-10-01 +# [Hans_U_Schmidt] Hans U Schmidt mailto:schmidth&de.ibm.com +# [Hans_Weibel] Hans Weibel mailto:hans.weibel&zhwin.ch 2004-10 +# [Hanz_Hager] Hanz Hager mailto:Hanz.Hager&comhem.se 2008-12-04 +# [Harald_Schlangmann] Harald Schlangmann mailto:schlangm&informatik.uni-muenchen.de +# [Harald_Striepe] Harald Striepe mailto:harald&quantumintech.com 2008-02-14 +# [Harald_Welte] Harald Welte mailto:laforge&gnumonks.org 2009-01-16 +# [Haram_Lee] Haram Lee mailto:layne&indigo-security.com +# [Hardy_Doelfel] Hardy Doelfel mailto:hardy_doelfel&adaptec.com 2002-05 +# [Harinder_Bhasin] Harinder Bhasin mailto:Harinder.Bhasin&sun.com +# [Harish_Kuttan] Harish Kuttan mailto:harish.k&hp.com 2010-03-22 +# [Harold_Froehling] Harold Froehling mailto:hrf&cup.hp.com +# [Harris_Corporation] Harris, Corporation mailto:dsomerfi&harris.com 2011-08-05 +# [Harry_Courtice] Harry Courtice mailto:harry.courtice&elprotech.com 2008-04-14 +# [Harry_Goldschmitt] Harry Goldschmitt mailto:hgoldschmitt&hgac.com 2003-11 +# [Harry_Goldschmitt_2] Harry Goldschmitt mailto:harry&hgac.com 2007-06 +# [Harry_Lewis] Harry Lewis mailto:harryl&us.ibm.com 2003-05 +# [Harry_T_Vennik] Harry T. Vennik mailto:htvennik&zonnet.nl 2002-11 +# [Harry_ten_Berge] Harry ten Berge mailto:berge&hitt.nl +# [Harvey_S_Schultz] Harvey S. Schultz mailto:harvey&acm.org +# [Heath_Barber] Heath Barber Datacolor mailto:hbarber&datacolor.com 2011-10-14 +# [Heath_Raftery] Heath Raftery mailto:heath&hrsoftworks.net +# [Heikki_E] Heikki Ellil SQRTS mailto:heikki.ellila&western.fi 2009-06-18 +# [Heiko_Kretschmer] Heiko Kretschmer mailto:info&wurst-wasser.net +# [Heiko_Rupp] Heiko Rupp mailto:hwr&pilhuhn.de +# [Heiko_Schlichting] Heiko Schlichting mailto:heiko&fu-berlin.de +# [Heiner_Erne] Heiner Erne Hirschmann Automation mailto:heiner.erne&hirschmann.de 2008-06-06 +# and Control GmbH +# [Heinz_Wrobel] Heinz Wrobel mailto:hwrobel&gmx.de +# [Helga_Wolin] Helga Wolin mailto:hwolin&us.ibm.com +# [Helge_Frank_Zimpel] Helge-Frank Zimpel mailto:helge.zimpel&baeurer.de 2006-01 +# [Helmut_Giritzer] Helmut Giritzer mailto:helmut.giritzer&epluse.at 2005-11 +# [Helmut_Giritzer_2] Helmut Giritzer mailto:helmut.giritzer&o.roteskreuz.at 2005-08 +# [Helmuth_Breitenfelln] Helmuth Breitenfellner mailto:hbreitenf&vnet.imb.com +# [Honwywell_Security_Group] Honwywell Security mailto:john.dziadosz&honeywell.com 2012-04-09 +# Group +# [Hennie_van_der_Merwe] Hennie van der Merwe mailto:hvandermerwe&tellumat.com 2002-07 +# [Henning_Meier_Geinit] Henning Meier-Geinitz mailto:henning&meier-geinitz.de 2002-10 +# [Henning_Mersch] Henning Mersch mailto:h.mersch&plt.rwth-aachen.de 2010-12-07 +# [Henning_Schulzrinne] Henning Schulzrinne mailto:hgs&cs.columbia.edu +# [Henning_Smith] Henning Smith mailto:henning.smith&ca.com 2006-07 +# [Henri_Moelard] Henri Moelard mailto:moelard&lucent.com +# [Henric_Bergh] Henric Bergh mailto:henric&bergh.nu 2007-01 +# [Henrik_Goldman] Henrik Goldman mailto:hg&x-formation.com 2006-10 +# [Henrik_Holst] Henrik Holst mailto:henrik.holst&ecovision.se +# [Henrik_Johnson] Henrik Johnson Quest Software mailto:henrik.johnson&quest.com 2012-04-09 +# [Henrik_Woffinden] Henrik Woffinden mailto:hw&nitramlexa.com 2008-09-22 +# [Henry_Haverinen] Henry Haverinen mailto:henry.haverinen&nokia.com +# [Henry_Houh] Henry Houh mailto:hhouh&nbxcorp.com +# [Henry_Rawas] Henry Rawas mailto:henryrµsoft.com 2005-08 +# [Henry_Strickland] Henry Strickland mailto:strick&yak.net +# [Herb_Jensen] Herb Jensen mailto:HWJensen&nfsrv.avionics.itt.com +# [Herb_Sutter] Herb Sutter mailto:HerbS&cntc.com +# [Herbert_Falk] Herbert Falk mailto:herb&sisconet.com 2003-06 +# [Hesham_Soliman] Hesham Soliman mailto:H.Soliman&flarion.com 2005-11 +# [Hewlett_Packard] Hewlett Packard +# [Hewlett_Packard_2] Hewlett Packard mailto:oliver.breyel&hp.com 2013-02-07 +# [Hideki_Hatta] Hideki Hatta mailto:ponum&canon-is.co.jp 2007-09-27 +# [Hideki_Kiriyama] Hideki Kiriyama mailto:kiriyama&cp10.es.xerox.com +# [Hideo_Wakabayashi] Hideo Wakabayashi mailto:hiwaka&alles.or.jp +# [Hindin_Joseph] Hindin Joseph mailto:hindin%25robcad@uunet.uu.net +# [Hing_Wing_To] Hing Wing To mailto:wing.to&mircromuse.com +# [Hing_Wing_To_2] Hing Wing To mailto:wing.toµmuse.com +# [Hirokazu_Fujisawa] Hirokazu Fujisawa mailto:fujisawa&pfu.fujitsu.com +# [Hiroki_Kawano] Hiroki Kawano mailto:kawano&saint.nm.fujitsu.co.jp +# [Hiromi_Ohara] Hiromi Ohara mailto:Hiromi.Ohara&fujixerox.co.jp 2008-06-18 +# [Hiromi_Taki] Hiromi Taki mailto:stg-togo&saint.nm.fujitsu.co.jp +# [Hiroyasu_Ogata] Hiroyasu Ogata mailto:Ogata.Hiroyasu&exc.epson.co.jp +# [Hiroyuki_Hashimoto] Hiroyuki Hashimoto mailto:easymp&exc.epson.co.jp 2002-10 +# [Hiroyuki_Kawabuchi] Hiroyuki Kawabuchi mailto:buchi&ael.fujitsu.co.jp +# [Hiroyuki_Takahashi] Hiroyuki Takahashi mailto:hiro.takahashi&eng.sun.com +# [Hitoshi_Ishida] Hitoshi Ishida mailto:ishida.hitoshi&exc.epson.co.jp +# [HLW_Software_Development_GmbH] HLW Software mailto:office&hlw-software.com 2011-10-11 +# Development GmbH +# [Hoa_Nguyen] Hoa Nguyen mailto:hoan&cup.hp.com +# [Hokey_Stenn] Hokey Stenn mailto:hokey&plus5.com +# [Holger_Heinrich] Holger Heinrich mailto:holger2222&googlemail.com 2012-02-01 +# [Holger_Kruse] Holger Kruse mailto:holger&rebol.net +# [Holger_Lochner] Holger Lochner mailto:holger.lochner&daimler.com 2011-04-06 +# [Holger_Reif] Holger Reif mailto:Holger.Reif&prakinf.tu-ilmenau.de +# [Hong_Jungkih] Hong, Jungkih mailto:jungkih.hong&samsung.com 2010-09-20 +# [Horizon_Digital_Ente] Horizon Digital mailto:info&hde.co.jp +# Enterprise Inc. +# [Howard_Amos] Howard Amos mailto:amos&ccww.co.uk 2006-04 +# [Howard_Cole] Howard Cole mailto:hcole&tumbleweed.nrcabq.com +# [Howard_Gordon] Howard Gordon mailto:hgordon&system.xingtech.com +# [Howard_Hart] Howard Hart mailto:hch&hybrid.com +# [Howard_Yin] Howard Yin mailto:howard.yin&ericsson.com +# [Huang_Jingnan] Huang Jingnan mailto:huangjnb&lenovo.com 2003-10 +# [Huang_Neng-geng] Huang Neng-geng mailto:huangng&ngweb.org 2011-08-09 +# mailto:nghuang&ieee.org +# [Huang_Yu] Huang Yu mailto:llw&ftsafe.com +# [Hugh_Thomas] Hugh Thomas mailto:thomas&oils.enet.dec.com +# [Hugo_Charbonneau] Hugo Charbonneau +# [Hugo_Parra] Hugo Parra mailto:hparra&novell.com +# [Humberto_Sanchez] Humberto Sanchez mailto:Humberto_Sanchez&hp.com +# [Hunter_Goatley] Hunter Goatley mailto:goathunter&goatley.com +# [Hussein_F_Salama] Hussein F. Salama mailto:hsalama&cisco.com +# [Huw_Thomas] Huw Thomas mailto:huw.thomas&bt.com +# [HyeongBae_Yu] HyeongBae Yu mailto:hyeongbae.yu&samsung.com 2008-07-31 +# [HYPACK_Inc] HYPACK Inc. mailto:mircea&hypack.com 2011-10-27 +# [Hywel_Morgan] Hywel Morgan mailto:hywelm&surfcontrol.com 2003-11 +# [IANA] IANA mailto:iana&iana.org +# [IEEE_1722_1] IEEE-1722.1 mailto:jeff.koftinoff&ieee.com 2011-11-01 +# [IESG] IESG mailto:iesg&ietf.org +# [IETF_Chair] IETF Chair IETF mailto:chair&ietf.org +# [IFSF_Secretary] IFSF Secretary mailto:secretary&ifsf.org 2002-05 +# [IGG_Software] IGG Software mailto:ian&iggsoftware.com +# [IRdg] IRdg, Inc. mailto:jtaylor&irdg.com +# [ISHII_AKIO] ISHII AKIO mailto:ishii.akio&jp.fujitsu.com 2006-01 +# [ITGroup] ITGroup mailto:itgroup&stillsecure.com 2008-06-30 +# [ITU-T] ITU-T mailto:tsbsg16&itu.int 2013-01-31 +# [ITU-T_TSB] ITU-T TSB ITU-T mailto:tsbsg16&itu.int 2013-01-31 +# ITU TSB, Place des +# [ITU_TSB] Nations, CH-1211 mailto:tsbmail&itu.int 2006-06 +# Geneva 20 +# [I_Hsing_Tsao] I-Hsing Tsao mailto:itsao&austin.ibm.com +# [Ian_A_Young] Ian A. Young mailto:iay&threel.co.uk +# [Ian_Anderson] Ian Anderson mailto:ian_anderson&phoenix.com +# [Ian_Bell] Ian Bell mailto:ianb&arca-technologies.com +# [Ian_Bradley] Ian Bradley mailto:ian.bradley&pocketprograms.com 2009-10-14 +# mailto:development&pocketprograms.com +# [Ian_Cargill] Ian Cargill mailto:ian.cargill&e-dendrite.com 2005-08 +# [Ian_Chard] Ian Chard mailto:ian&tanagra.demon.co.uk +# [Ian_Daniels] Ian Daniels mailto:btexact.ports&bt.com +# [Ian_Gordon] Ian Gordon mailto:ian.s.gordon&btopenworld.com 2002-08 +# [Ian_Gordon_2] Ian Gordon mailto:ian&n-genltd.co.uk 2003-03 +# [Ian_Gordon_3] Ian Gordon mailto:iangµmuse.co.uk +# [Ian_Higginbottom] Ian Higginbottom mailto:sonardata&sonardata.com +# [Ian_Jackson] Ian Jackson mailto:iwj&cam-orl.co.uk +# [Ian_Lowe] Ian Lowe mailto:ian&xplproject.org.uk 2003-08 +# [Ian_Manning] Ian Manning mailto:imanning&dtsuk.com 2002-05 +# [Ian_Manning_2] Ian Manning mailto:ian&baycastle.co.uk 2009-12-16 +# [Ian_McDowall] Ian McDowall mailto:ian.mcdowall&symbian.com 2003-11 +# [Ian_Miller] Ian Miller mailto:IANA-reg&adder.com 2006-03 +# [Ian_Wilson] Ian Wilson mailto:hsrp-info&cisco.com 2004-11 +# [Ibtsam_Mahfouz] Ibtsam Mahfouz mailto:imahfouz&cisco.com +# [Ico_Doornekamp] Ico Doornekamp mailto:ico&saedra.nl +# [iConstruct_Aus_Pty_Ltd] iConstruct (Aus) Pty mailto:jafari&pdcwa.com.au 2012-12-21 +# [Ido_Ben_David] Ido Ben-David mailto:dgntcom&netvision.net.il +# [Ieuan_Friend] Ieuan Friend mailto:ieuan.friend&dip.co.uk 2006-03 +# [Igor_Kostic] Igor Kostic mailto:igorkoµsoft.com 2002-08 +# [Igor_Mozolevsky] Igor Mozolevsky mailto:igor&itaufait.com +# [Igor_Plotnikov] Igor Plotnikov mailto:igor&uroam.com +# [Igor_Zaoutine] Igor Zaoutine mailto:igor&global-tech.com +# [Ilan_Mahalal] Ilan Mahalal mailto:imahalal&axalto.com 2006-04 +# [Ilan_Shlosberg] Ilan Shlosberg mailto:ilan&mentasoftware.com +# [Ilan_Zisser] Ilan Zisser mailto:ilan&newgenpay.com +# [Illan_Raab] Illan Raab mailto:iraab&synoptics.com +# [Ilya_Melamed] Ilya Melamed mailto:ilya77&gmail.com 2006-06 +# [ims_Info] ims Info Management mailto:ope&ims-info.ch 2011-10-20 +# Systems AG +# [IMS_merilni_sistemi] IMS merilni sistemi mailto:info&ims.si 2012-08-24 +# d.o.o. +# [In_sik_Choi] In-sik Choi mailto:iscard&virusdesk.com 2002-02 +# [Inderpreet_Singh] Inderpreet Singh mailto:isingh&chantrynetworks.com 2003-06 +# [Ines_Homem_de_Melo] Ines Homem de Melo mailto:sidinf&brfapesp.bitnet +# [Ing_Markus_Huemer] Ing. Markus Huemer mailto:markus.huemer&hsd.at +# [Ing_Tomas_Halabala] Ing. Tomas Halabala mailto:tomas.halabala®ulace.org 2010-10-06 +# [Ingersoll_Rand_Inc] Ingersoll Rand, Inc. mailto:john.taylor&irco.com 2011-09-28 +# [Ingo_Franzki] Ingo Franzki mailto:ifranzki&de.ibm.com +# [Infinite_Loop] Infinite Loop mailto:nasmon&infinite-loop.dk 2012-10-09 +# [Insider_Software] Insider Software http://www.insidersoftware.com +# [Insist] Insist mailto:support&isticky.net +# [Intel] Intel mailto:joshua.boelter&intel.com 2011-10-18 +# [Ira_McDonald] Ira McDonald mailto:imcdonald&sharplabs.com 2005-12 +# [Irradiated_Software] Irradiated Software mailto:info&irradiatedsoftware.com 2012-06-19 +# [Isaack_Rasmussen] Isaack Rasmussen mailto:isaack&pictua.com +# [Israel_Beniaminy] Israel Beniaminy mailto:israel.beniaminy&clickservice.com +# [Israel_Shainert] Israel Shainert mailto:israels&209.88.177.2 +# [Itai_Greenberg] Itai Greenberg mailto:itaigµsoft.com 2004-11 +# [Itaru_Kimura] Itaru Kimura mailto:kimura&kel.fujitsu.co.jp +# [Ivan_Berardinelli] Ivan Berardinelli mailto:ivan&gestweb.com +# [Ivana_Cuozzo] Ivana Cuozzo mailto:Ivana.Cuozzo&tivoli.com +# [Ivo_Timmermans] Ivo Timmermans mailto:itimmermans&bigfoot.com +# [JF_Huard] JF Huard mailto:jfhuard&netuitive.com +# [J_A_Sever] J. A. (Tony) Sever mailto:J.A.Sever&bra0119.wins.icl.co.uk +# [J_C_Canessa] J. C. Canessa mailto:jccanessa&mmm.com +# [J_Gabriel_Foster] J. Gabriel Foster mailto:fop&gwha.com +# [J_H_Hermans] J.H. Hermans mailto:j.h.hermans&hiscom.nl +# [J_J_Ekstrom] J.J. Ekstrom +# [J_S_Greenfield] J. S. Greenfield mailto:greeny&raleigh.ibm.com +# [J_S_Greenfield_2] J.S. Greenfield mailto:greeny&us.ibm.com +# [Jack_Baker] Jack Baker mailto:Jack.Baker&l-3com.com 2006-02 +# [Jack_Haverty] Jack Haverty mailto:jhaverty&oracle.com +# [Jack_ONeil] Jack O'Neil +# [Jack_Waller_III] Jack Waller III mailto:jack&tomatosprings.com +# [Jack_Wilson] Jack Wilson mailto:JackW&travsoft.com +# [Jackie_Lau] Jackie Lau mailto:jackie.lau&compaq.com +# [Jackie_Wu] Jackie Wu mailto:jackiew&infoseek.com +# [Jaco_Botha] Jaco Botha mailto:jaco.botha&trispen.com 2004-11 +# [Jacob_Feisley] Jacob Feisley mailto:jacob&hydralabs.com 2009-01-21 +# [Jacob_Godwin_Jones] Jacob Godwin-Jones mailto:jacob&likethought.com +# [Jacob_Gsoedl] Jacob Gsoedl mailto:jgsoedl&pinnaclesys.com +# [Jacob_Ulmert] Jacob Ulmert mailto:Jacob.Ulmert&se.abb.com +# [Jae_Woo_Lee] Jae Woo Lee mailto:jae&cs.columbia.edu +# [Jaime_Antolin] Jaime Antolin mailto:jaime.antolin&ie.abb.com 2008-09-25 +# [Jakob_Kaivo] Jakob Kaivo mailto:jkaivo&nodomainname.net +# [Jakob_Oestergaard] Jakob Oestergaard mailto:joe&sysorb.com 2002-02 +# [Jakob_Spies] Jakob Spies mailto:Jakob.Spies&genius.de +# [Jakob_Steen_Hansen] Jakob Steen Hansen mailto:jsh&dk.damgaard.com +# [James_A_Brewster] James A. Brewster mailto:jimbrew&answersoft.com +# [James_Anson] James Anson mailto:janson&bigpond.com 2009-02-12 +# [James_Bottomley] James Bottomley mailto:James.Bottomley&steeleye.com 2006-02 +# [James_Brown] James Brown mailto:ender&admdev.com +# [James_Caza] James Caza mailto:jcaza&e-builder.net 2006-12 +# [James_Cox] James Cox mailto:jocox&view.com 2002-02 +# [James_Crosby] James Crosby softthere.com mailto:james&softthere.com 2011-10-17 +# [James_Dabbs] James Dabbs mailto:jdabbs&tga.com +# [James_Darnall] James Darnall mailto:james_r_darnall&sbcglobal.net +# [James_David_Fisher] James David Fisher mailto:jfisher1&avaya.com +# [James_E_Housley] James E. Housley mailto:jim&thehousleys.net +# [James_E_King_III] James E. King, III mailto:James_E_K&dell.com 2010-06-24 +# [James_Emerton] James Emerton Tri Tech Computers mailto:james&tri-tech.com 2012-11-19 +# Ltd. +# [James_Falkner] James Falkner mailto:james.falkner&sun.com +# [James_Figgins] James Figgins mailto:james.figgins&durodata.co.uk 2006-07 +# [James_Gettys] James Gettys mailto:jg&w3.org +# [James_Goddard] James Goddard mailto:jamesg&taglim.com 2005-08 +# [James_Greenfiel] James Greenfiel mailto:jim&pa.confluent.com +# [James_Irwin] James Irwin mailto:jimi&travsoft.com +# [James_J_Diaz] James J. Diaz mailto:JDiaz&emprisecorporation.com 2002-08 +# [James_Juhasz] James Juhasz mailto:james.juhasz&ni.com +# [James_Kennedy] James Kennedy mailto:james&tritium.com.au 2011-02-15 +# [James_King_III] James King III mailto:jking&ariessys.com +# [James_Kirkwood] James Kirkwood mailto:james.kirkwood&controltechniques.com 2005-06 +# [James_Kou] James Kou mailto:Jamesk&versatek.com +# [James_Kunz] James Kunz mailto:jkunz&earlhaig.com +# [James_Marsh] James Marsh mailto:James_T_Marsh&hotmail.com +# [James_McCartney] James McCartney mailto:jmccartney&apple.com +# [James_Mealey] James Mealey mailto:jymealey&yahoo.com 2002-10 +# [James_Moore] James Moore mailto:jam&wirerimmed.com +# [James_Nikolai] James Nikolai mailto:jamesnikolai&rpm-psi.com +# [James_Overby] James Overby +# [James_Paul_Duncan] James Paul Duncan mailto:pduncan&beaconcrm.com +# [James_Pinkerton] James Pinkerton mailto:jpinkµsoft.com 2003-11 +# [James_Powell] James Powell mailto:james&mailhost.unidata.com +# [James_Powell_2] James Powell mailto:james&enghp.unidata.comp +# [James_Rice] James Rice mailto:RICE&sumex-aim.stanford.edu +# [James_Tavares] James Tavares Log On America mailto:krontor&loa.com +# [James_W_Walker] James W. Walker mailto:jamesw&frameforge3d.com +# [James_Wilkinson] James Wilkinson mailto:jwilkinson&doubletake.com 2006-04 +# [James_Wilkinson2] James Wilkinson Vision Solutions, mailto:james.wilkinson&visionsolutions.com 2012-06-06 +# [James_Yonan] James Yonan mailto:jim&yonan.net 2004-11 +# [Jamie_Halmick] Jamie Halmick mailto:jamie&tinkerbuilt.com +# [Jamie_Lokier] Jamie Lokier mailto:jamie&jlokier.co.uk 2006-05 +# [Jan_Dirven] Jan Dirven mailto:jan.dirven&agfa.com 2007-12-13 +# [Jan_Friedel] Jan Friedel mailto:Jan.Friedel&sun.com 2009-05-07 +# [Jan_Rutger_Voorhorst] Jan Rutger Voorhorst mailto:janrutger&roadware.nl 2006-10 +# [Jan_Vrsinsky] Jan Vrsinsky mailto:jan.vrsinsky&illusionsoftworks.com 2002-09 +# [Jane_Dashevsky] Jane Dashevsky mailto:jane.dashevsky&intel.com +# [Jane_Porter] Jane Porter mailto:janeporter&uk.ibm.com +# [Janna_Chang] Janna Chang mailto:janna&pmc.philips.com +# [Janos_Lerch] Janos Lerch mailto:lerch&softic.hu 2006-02 +# [Jarkko_Oikarinen] Jarkko Oikarinen mailto:jto&tolsun.oulu.fi +# [Jarrod_Sayers] Jarrod Sayers mailto:jarrod&downtools.com.au 2009-04-07 +# [Jason_Aiken] Jason Aiken mailto:jasona&corelcomputer.com +# [Jason_Aubain] Jason Aubain mailto:jaubain&kjt.com +# [Jason_Case] Jason Case mailto:jason.case&ni.com 2002-08 +# [Jason_Cater] Jason Cater mailto:jason&ncsmags.com +# [Jason_Dictos] Jason Dictos mailto:jdictos&barracuda.com 2012-09-19 +# [Jason_Dzubak] Jason Dzubak mailto:dzubak&byu.edu 2008-03-17 +# [Jason_Hamilton] Jason Hamilton mailto:JHamilton&griddatasecurity.com 2006-06 +# [Jason_Howard] Jason Howard mailto:jason&spectsoft.com 2006-01 +# [Jason_Hunter] Jason Hunter mailto:jthunter&invino.com +# [Jason_Ko] Jason Ko mailto:jason_ko&hp.com 2002-07 +# [Jason_Leupen] Jason Leupen mailto:Jleupen&aol.com +# [Jason_Lockett] Jason Lockett mailto:Jay.Lockett&quest.com 2008-12-16 +# [Jason_McManus] Jason McManus mailto:jasonm&neoinformatics.com +# [Jason_McManus_2] Jason McManus mailto:jasonm&sleepdep.net +# [Jason_Reskin] Jason Reskin mailto:iana&unistellar.com 2007-03 +# [Jason_Rohrer] Jason Rohrer mailto:rohrer&cse.ucsc.edu 2002-10 +# [Jason_Santos] Jason Santos mailto:jason.santos&megaslow.net 2002-04 +# [Jason_Schoon] Jason Schoon mailto:jason.schoon&intermec.com 2002-10 +# [Jason_Schoon_2] Jason Schoon mailto:jason.schoon&intermec.com +# [Jason_Spence] Jason Spence mailto:jspence&lightconsulting.com 2008-01-22 +# [Jason_Szabo] Jason Szabo mailto:jason.szabo&vexcel.com 2003-10 +# [Jason_Thorpe] Jason Thorpe mailto:thorpej&apple.com +# [Jason_Volk] Jason Volk mailto:jason&teknidude.com +# [Jason_van_Zyl] Jason van Zyl mailto:jvanzyl&zenplex.com 2002-03 +# [Jauvane_C_de_Olivei] Jauvane C. de Oliveira mailto:jauvane&acm.org +# [Javier_Jimenez] Javier Jimenez +# [Javier_Jiminez] Javier Jiminez mailto:javier_l_jimenez&dell.com +# [Javier_Nigro] Javier Nigro Arrow Bit SL mailto:support&arrowbit.com 2012-04-26 +# [Jay_Beavers] Jay Beavers mailto:Jay.Beaversµsoft.com 2006-02 +# [Jay_Cotton] Jay Cotton mailto:JAY&calc.vet.uga.edu +# [Jay_Eckles] Jay Eckles mailto:ecklesweb&yahoo.com 2002-02 +# [Jay_Farhat] Jay Farhat mailto:jfarhat&ipass.com +# [Jay_Slupesky] Jay Slupesky mailto:js&vina-tech.com +# [Jay_Weber] Jay Weber mailto:weber&vfi.com +# [Jay_Whitney] Jay Whitney mailto:jw&powercenter.com +# [Jayakumar_Ramalingam] Jayakumar Ramalingam mailto:jayakumar&novell.com +# [Jayasooriah] Jayasooriah mailto:jayasooriah&cast.com.au 2008-02-22 +# [Jean_A_Ames] Jean A. Ames mailto:engr-admin&flipside.com +# [Jean-Charles_Boude] Jean-Charles Boude Gangsta Ltd. mailto:jc&gangstamedia.com 2011-10-17 +# [Jean_Christophe_Desi] Jean-Christophe Desire mailto:Jean-Christophe_Desire&nms-europe.com +# [Jean_Francois_Rabass] Jean-Francois Rabasse mailto:jfr&idps.org 2003-07 +# [Jean_Louis_Barbut] Jean-Louis Barbut mailto:etebac5&gsit.fr +# [Jean_Marc_Frailong] Jean-Marc Frailong mailto:jmf&freegate.net +# [Jean_Michel_URSCH] Jean-Michel URSCH mailto:ursch&taec.enet.dec.com +# [Jean_Olivier_Lanctot] Jean-Olivier Lanctot-D. mailto:jolivierld&clichesw.com +# [Jean_Paul_Lemaire] Jean-Paul Lemaire mailto:jean-paul.lemaire&univ-paris-diderot.fr 2007-07-05 +# [Jean_Paul_Moreaux] Jean-Paul Moreaux mailto:jean-paul.moreaux&airbus.com +# [Jean_Pierre_Garcia] Jean-Pierre Garcia mailto:jp.garcia&netia.net 2003-04 +# [Jean_Pierre_Garcia_2] Jean-Pierre Garcia mailto:jp.garcia&netia.com 2009-10-28 +# [Jean_Serge_Gagnon] Jean-Serge Gagnon mailto:jean-serge.gagnon&newlix.com +# [Jean_Serge_Gagnon_2] Jean-Serge Gagnon mailto:jsg&newlix.com +# [Jeannie_Burleson] Jeannie Burleson mailto:jeannie&cambertx.com +# [Jeff_Albouze] Jeff Albouze mailto:foup&apple.com +# [Jeff_Burch] Jeff Burch mailto:jeff.burch&amx.com +# [Jeff_Burdette] Jeff Burdette mailto:support&digitalenvoy.net +# [Jeff_Busma] Jeff Busma mailto:busma&echogent.com +# [Jeff_Conrad] Jeff Conrad mailto:jeff_conrad&hp.com +# [Jeff_Dillabough] Jeff Dillabough Teradici mailto:jdillabough&teradici.com 2012-03-06 +# [Jeff_Douglass] Jeff Douglass mailto:ist&att.net 2002-09 +# [Jeff_Eaton] Jeff Eaton mailto:jeaton&intermec.com +# [Jeff_Garbers] Jeff Garbers mailto:FJG030&email.mot.com +# [Jeff_Garbers_2] Jeff Garbers mailto:jgarbers&netcom.com +# [Jeff_Grossman] Jeff Grossman mailto:jagrossm&andrew.cmu.edu +# [Jeff_Haynes] Jeff Haynes mailto:haynes&chistech.com +# [Jeff_Heisz] Jeff Heisz mailto:jeff.heisz&xkoto.com 2006-02 +# [Jeff_Hoffman] Jeff Hoffman mailto:jeffh&facsys.com +# [Jeff_Holmbeck] Jeff Holmbeck mailto:Jeff.Holmbeck&veritas.com +# [Jeff_Hughes] Jeff Hughes mailto:Jeff.Hughes&columbiasc.ncr.com +# [Jeff_Jones] Jeff Jones mailto:Jeff.Jones&routematch.com 2005-11 +# [Jeff_King] Jeff King mailto:jking&wave3software.com 2002-09 +# [Jeff_Looman] Jeff Looman mailto:jeff&looman.org +# [Jeff_M_Michaud] Jeff M.Michaud mailto:michaud&zk3.dec.com +# [Jeff_Mangasarian] Jeff Mangasarian mailto:jeffrey_mangasarian&nai.com +# [Jeff_Moffatt] Jeff Moffatt mailto:jeff&taurus.com +# [Jeff_Roberts] Jeff Roberts mailto:jrobertsµsoft.com 2005-11 +# [Jeff_Rosenthal] Jeff Rosenthal mailto:jrosenthal&quad-sys.com +# [Jeff_Skaistis] Jeff Skaistis mailto:jskaistis&connectship.com 2005-08 +# [Jeff_Stewart] Jeff Stewart mailto:jstewart&netscape.com +# [Jeff_Wood] Jeff Wood mailto:jw&cqg.com +# [Jeffery_Chiao] Jeffery Chiao tel:+714-768-401 +# [Jeffrey_C_Byrd] Jeffrey C. Byrd mailto:admin&vspacegroup.com +# [Jeffrey_Chiao] Jeffrey Chiao mailto:chiaoj&netsoft.com +# [Jeffrey_Daniel_Koftinoff] Jeffrey Daniel Koftinoff IEEE-1722.1 mailto:jeff.koftinoff&ieee.com 2011-11-01 +# [Jeffrey_Hill] Jeffrey Hill mailto:johill&lanl.gov 2002-08 +# [Jeffrey_J_Peters] Jeffrey J. Peters mailto:jpeters&tivo.com 2002-08 +# [Jeffrey_J_Walls] Jeffrey J. Walls mailto:jeff.walls&hp.com +# [Jeffrey_Millman] Jeffrey Millman mailto:jcm&dbstar.com +# [Jeffrey_Pilch] Jeffrey Pilch mailto:jpilch&us.ibm.com +# [Jeffrey_Sadeli] Jeffrey Sadeli mailto:jeffrey&sadeli.com +# [Jeffrey_Szczepanski] Jeffrey Szczepanski mailto:jrs&inscitek.com 2005-02 +# [Jeffrey_Zinkerman] Jeffrey Zinkerman mailto:jeff&zinknet.com +# [Jeffry_Dwight] Jeffry Dwight mailto:jeffryd&greyware.com +# [Jem_Treadwell] Jem Treadwell mailto:Jem.Treadwell&compaq.com +# [Jenish_Amin] Jenish Amin Motorola Solutions, mailto:jenish&motorolasolutions.com 2012-03-14 +# [Jennifer_Grace] Jennifer Grace mailto:Jennifer_Grace&3com.com +# [Jens_Alfke] Jens Alfke mailto:jens&apple.com +# [Jens_Edlund] Jens Edlund mailto:edlund&speech.kth.se 2005-08 +# [Jens_Kilian] Jens Kilian mailto:jensk&hpbeo82.bbn.hp.com +# [Jens_Klose] Jens Klose mailto:jklose&intercope.com +# [Jens_Nilsson] Jens Nilsson mailto:jens&rockstorm.se +# [Jered_Floyd] Jered Floyd mailto:jered&permabit.com 2004-06 +# [Jeremy_Elson] Jeremy Elson mailto:jelson&isi.edu +# [Jeremy_Freeman] Jeremy Freeman mailto:jeremy&rxnetworks.ca 2008-02-14 +# [Jeremy_Gilbert] Jeremy Gilbert mailto:J.Gilbert&ma30.bull.com +# [Jeremy_Gilliat] Jeremy Gilliat mailto:jeremy.gilliat&geac.com +# [Jeremy_Maiden] Jeremy Maiden mailto:jeremy&komarr.demon.co.uk +# [Jeremy_McClintock] Jeremy McClintock mailto:jeremy&tridsys.com 2005-08 +# [Jeremy_Siegel] Jeremy Siegel mailto:jzs&nsd.3com.com +# [Jeroen_Ommering] Jeroen Ommering TEST-OK B.V. mailto:jeroen.ommering&test-ok.nl 2012-09-05 +# [Jeroen_Massar] Jeroen Massar mailto:jeroen&unfix.org 2005-08 +# [Jeroen_Massar_2] Jeroen Massar mailto:jma&zurich.ibm.com 2008-08-21 +# [Jeroen_Massar_3] Jeroen Massar mailto:jeroen&unfix.org +# [Jerome_AERTS] Jerome AERTS mailto:info&pcsoft.fr 2010-11-30 +# [Jerome_Albin] Jerome Albin mailto:albin&taec.enet.dec.com +# [Jerome_Dusautois] Jerome Dusautois mailto:jdusautois&scrypto.fr 2002-03 +# [Jerome_FOLLUT] Jerome FOLLUT COPALP mailto:jf&copalp.com 2012-03-01 +# [Jerome_Forissier] Jerome Forissier mailto:Jerome.Forissier&hp.com 2005-12 +# [Jerome_Grimbert] Jerome Grimbert mailto:jerome.grimbert&atosorigin.com +# [Jerome_Laheurte] Jerome Laheurte mailto:fraca7&users.sourceforge.net +# [Jerome_Seydoux] Jerome Seydoux mailto:jerome&ctmdev.com +# [Jerrilynn_Okamura] Jerrilynn Okamura +# [Jerry_Whitaker] Jerry Whitaker mailto:jwhitaker&atsc.org 2008-10-27 +# [Jesse_McKay] Jesse McKay mailto:jesse&spandata.com +# [Jesse_Ursery] Jesse Ursery mailto:jesse.ursery&ametek.com 2010-11-22 +# [Jesse_W_Towner] Jesse W. Towner mailto:jwtowner&dsmedialabs.com +# [Jessica_Yan] Jessica Yan mailto:jessica.yan2&t-mobile.com 2008-02-19 +# [Jessica_Zhang] Jessica Zhang Dell mailto:jessica_z&dell.com 2012-11-19 +# [Jesus_David_Rodrigue] Jesus David Rodriguez mailto:jesusdavid&magaya.com 2003-02 +# [Jesus_De_Meyer] Jesus De Meyer mailto:jesus&edot-studios.com +# [Jesus_Ortiz] Jesus Ortiz mailto:jesus_ortiz&emotion.com +# [Jesus_Ortiz_2] Jesus Ortiz mailto:Jesus_A._Ortiz¬es.emotion.com +# [Jeurgen_Broesamle] Jeurgen Broesamle mailto:juergb&bbn.hp.com +# [JG_Heithcock] JG Heithcock Retrospect, Inc. mailto:JG.Heithcock&retrospect.com 2012-02-02 +# [Jian_Fan] Jian Fan mailto:fjian&dmfsys.com 2002-02 +# [Jilles_Oldenbeuving] Jilles Oldenbeuving mailto:ojilles&hotmail.com 2002-06 +# [Jim_Baldridge] Jim Baldridge mailto:jimb&rpower.com +# [Jim_Battin] Jim Battin mailto:battin&tro.com +# [Jim_Binkley] Jim Binkley mailto:jrb&cs.pdx.edu 2002-06 +# [Jim_Bound] Jim Bound mailto:bound&zk3.dec.com +# [Jim_Cleppe] Jim Cleppe mailto:clep13&hotmail.com +# [Jim_Davis] Jim Davis mailto:jim.davis&wbemsolutions.com 2007-06 +# [Jim_DeLisle] Jim DeLisle mailto:jdelisle&swellsoftware.com 2002-08 +# [Jim_Dillon] Jim Dillon mailto:jed&apri.com +# [Jim_Dixon] Jim Dixon mailto:jim&lambda.com +# [Jim_Flaherty] Jim Flaherty mailto:jim.flaherty&seagatesoftware.com +# [Jim_Flaherty_2] Jim Flaherty mailto:jim_e_flaherty¬es.seagate.com +# [Jim_Gettys] Jim Gettys mailto:jg&crl.dec.com +# [Jim_Harlan] Jim Harlan mailto:jimh&infowest.com +# [Jim_Herman] Jim Herman mailto:jherman&homelogic.com 2005-08 +# [Jim_Hill] Jim Hill mailto:jhill&symantec.com +# [Jim_Humphreys] Jim Humphreys mailto:jhumphre&ciena.com 2008-01-29 +# [Jim_Irwin] Jim Irwin mailto:jirwin&n2h2.com 2002-02 +# [Jim_Jennings] Jim Jennings tel:+1-708-538-7241 +# [Jim_Johnston] Jim Johnston mailto:jjohnston&databeam.com +# [Jim_Kanzler] Jim Kanzler mailto:jim.kanzler&meta5.com +# [Jim_Kateley] Jim Kateley mailto:asr-dev&group.apple.com 2006-01 +# [Jim_Kingdon] Jim Kingdon mailto:kingdon&harvey.cyclic.com +# [Jim_Lyle] Jim Lyle mailto:jim.lyle&siliconimage.com 2005-11 +# [Jim_Lyle_2] Jim Lyle mailto:jim.lyle&siliconimage.com +# [Jim_Lyon] Jim Lyon mailto:JimLyonµsoft.com 2005-11 +# [Jim_McDonald] Jim McDonald mailto:Jim.McDonald&sysdm.com 2003-04 +# [Jim_McDonald_2] Jim McDonald mailto:jim.mcdonald&sysdm.com 2003-11 +# [Jim_Mertz] Jim Mertz mailto:JMertz+RV09&rvdc.unisys.com +# [Jim_Musgrave] Jim Musgrave mailto:jimm&tarantella.com 2002-08 +# [Jim_Perreault] Jim Perreault mailto:jim.perreault&emc.com 2010-06-04 +# [Jim_Pettinato] Jim Pettinato mailto:jim_pettinato&fmcti.com 2007-04 +# [Jim_Philippou] Jim Philippou mailto:jphilippou&newoak.com +# [Jim_Robanske] Jim Robanske mailto:jimr&cray.com 2006-05 +# [Jim_Rogers] Jim Rogers mailto:trane!jimbo&pacbell.com +# [Jim_Sermersheim] Jim Sermersheim mailto:jims&fusionio.com 2010-01-15 +# [Jim_Stabile] Jim Stabile mailto:jstabile&talarian.com +# [Jim_Susoy] Jim Susoy mailto:jim.susoy&p6r.com 2010-01-21 +# [Jim_Taylor] Jim Taylor mailto:taylor&heart.epps.kodak.com +# [Jim_Teague] Jim Teague mailto:teague&zso.dec.com +# [Jim_Thompson] Jim Thompson mailto:jim.thompson&powerware.com +# [Jim_Trek] Jim Trek mailto:jtrek&rochester.rr.com +# [Jim_Trocki] Jim Trocki mailto:trockij&transmeta.com +# [Jim_Turner] Jim Turner mailto:Jim.Turner&asg.com +# [Jim_Vlcek] Jim Vlcek mailto:jvlcek&veeco.com +# [Jim_Wallace] Jim Wallace mailto:jim&cs.dal.ca +# [Jim_White] Jim White mailto:Jim_White&spiderisland.com +# [Jim_Youll] Jim Youll mailto:jim&media.mit.edu +# [Jimmy_Olsen] Jimmy Olsen mailto:jo&redpill-linpro.com 2010-12-24 +# [Jimmy_Talbot] Jimmy Talbot mailto:jtalbot&vizible.com +# [Jindra_Ryvola] Jindra Ryvola mailto:jryvola&ledalite.com +# [Joachim_Kluemper] Joachim Kluemper mailto:ports&raikosoft.com 2008-03-19 +# [Joakim_Johansson] Joakim Johansson mailto:joakim.johansson&tbricks.com +# [Joan_Linck] Joan Linck mailto:jlinck&lanovation.com +# [Jochen_Hansmeyer] Jochen Hansmeyer mailto:cjh&krypton.de +# [Joe_Devlin] Joe Devlin mailto:Joe.Devlin&rocketsoftware.com 2002-03 +# [Joe_Elliott] Joe Elliott mailto:joe&inetd.com 2002-06 +# [Joe_Graham] Joe Graham mailto:joe&edaconsulting.com +# [Joe_Groff] Joe Groff mailto:arcata&gmail.com +# [Joe_Haver] Joe Haver mailto:joe.haver&jdsu.com 2010-05-28 +# [Joe_McCollough] Joe McCollough mailto:joe&cadkey.com +# [Joe_Mueller] Joe Mueller mailto:joe_mueller&agilent.com 2010-01-11 +# [Joe_Pato] Joe Pato mailto:pato&apollo.hp.com +# [Joe_Purcell] Joe Purcell mailto:jpurcell&ensuretech.com 2003-01 +# [Joe_Senner] Joe Senner mailto:jsenner&buildforge.com 2005-08 +# [Joe_Senner_2] Joe Senner mailto:support&buildforge.com +# [Joe_Touch] Joe Touch mailto:touch&isi.edu +# [Joe_Wesley] Joe Wesley mailto:joe.wesley&east.sun.com +# [Joel_Aaron_Clipperton] Joel Aaron Clipperton Shifted Current LLC mailto:joel&shiftedcurrent.com 2012-09-11 +# [Joel_Dolisy] Joel Dolisy mailto:joel.dolisy&solarwinds.com 2008-09-10 +# [Joel_E_Steiger] Joel E. Steiger mailto:jsteiger&eic-us.com 2004-02 +# [Joel_Karafin] Joel Karafin mailto:jkarafin&infotrieve.com +# [Joel_Palsson] Joel Palsson HMS Industrial mailto:ianacontact&hms.se 2002-02 +# Networks AB +# [Joerg_Heuer] Joerg Heuer mailto:Joerg.Heuer&siemens.com 2006-02 +# [Joerg_Niehoff] Joerg Niehoff mailto:joerg.niehoff&alcatel-ke.de +# [Joerg_Paulus] Joerg Paulus mailto:tech&nicetec.de +# [Joerg_Schneider] Joerg Schneider mailto:joerg.s.schneider&daimler.com 2011-01-26 +# [Joerg_Ullmann] Joerg Ullmann Festo AG & Co. KG mailto:jgu&de.festo.com 2012-07-26 +# [Johan_Deleu] Johan Deleu mailto:johan.deleu&alcatel.be 2002-02 +# [Johan_Eriksson] Johan Eriksson mailto:johan&marimba.com 2002-04 +# [Johan_Kool] Johan Kool mailto:johan&koolistov.net +# [Johan_Mjones] Johan Mjones mailto:johan&nollbit.com +# [Johann_Arnold] Johann Arnold mailto:johann.arnold&siemens.com 2004-10 +# [Johann_Deutinger] Johann Deutinger mailto:deutinger&ferrari-electronic.de +# [Johannes_Skov_Frands] Johannes Skov Frandsen mailto:joe&42tools.com 2008-02-28 +# [John_Aquilino] John Aquilino mailto:john.aquilino&maryville.com +# [John_Barnes] John Barnes mailto:jbarnes&crl.com +# [John_Birrell] John Birrell mailto:birjo99&cai.com +# [John_Border] John Border mailto:border&hns.com 2003-01 +# [John_Britton] John Britton mailto:johnb&peakaudio.com +# [John_C_Horton] John C. Horton mailto:jch&unirsvl.rsvl.unisys.com +# [John_C_Klensin] John C. Klensin mailto:klensin&jck.com 2004-07 +# [John_Calcote] John Calcote mailto:jcalcote&users.sourceforge.net 2007-11-06 +# [John_Calcote_2] John Calcote mailto:jcalcote&novell.com 2006-10 +# [John_Catherino] John Catherino mailto:cajo&dev.java.net 2005-08 +# [John_Chiong] John Chiong mailto:jchiong&a10networks.com 2007-07-02 +# [John_Clifford] John Clifford mailto:John.Clifford&veritas.com +# [John_Coll] John Coll mailto:john&csoft.co.uk +# [John_Croft] John Croft mailto:john.croft&calista.demon.co.uk +# [John_Daniel_Bonamico] John Daniel Bonamico mailto:jbonamico&symantec.com +# [John_Dziadosz] John Dziadosz Honwywell Security mailto:john.dziadosz&honeywell.com 2012-04-09 +# [John_E_Dickey] John E. Dickey mailto:jdickey&talarinetworks.com 2007-09-27 +# [John_Fake] John Fake mailto:fake&us.ibm.com +# [John_Fayos] John Fayos mailto:john.fayos&criticallink.com 2002-03 +# [John_Feiler] John Feiler mailto:relief!jjfeiler&uu2.psi.com +# [John_Flowers] John Flowers mailto:jf&gigamediaaccess.com +# [John_Fox] John Fox +# [John_Graham_Cumming] John Graham-Cumming CloudFlare, Inc. mailto:jgc&cloudflare.com 2012-03-09 +# [John_Hadjioannou] John Hadjioannou mailto:john&minster.co.uk +# [John_Harvey] John Harvey mailto:johnbob&austin.ibm.com +# [John_Hasselkus] John Hasselkus mailto:Jhasselkus&visualnetworks.com +# [John_Havard] John Havard mailto:jh&hxe.us 2003-11 +# [John_Hinsdale] John Hinsdale mailto:hin&alma.com +# [John_Hogg] John Hogg mailto:it&discoverysoftware.com +# [John_Ioannidis] John Ioannidis mailto:ji&close.cs.columbia.ed +# [John_Jackson] John Jackson mailto:jrj&gandalf.cc.purdue.edu +# [John_Jobe] John Jobe mailto:jjobe&cylink.com +# [John_Kane] John Kane mailto:johnkanµsoft.com +# [John_Keaveney] John Keaveney mailto:johnkeaveney&targusinfo.com +# [John_Kelly] John Kelly mailto:johnk&bellhow.com +# [John_Kozlowski] John Kozlowski ShofarNexus.com mailto:John.Kozlowski&ShofarNexus.com 2012-02-20 +# [John_Legh_Page] John Legh-Page mailto:john.legh-page&argis.com +# [John_Light] John Light mailto:johnl&gssc.gss.com +# [John_Linn] John Linn mailto:jlinn&securitydynamics.com +# [John_Lisek] John Lisek mailto:jl&gotodevice.com 2006-01 +# [John_Lombardo] John Lombardo mailto:johnl&picksys.com +# [John_Lowery] John Lowery NetPro Computing mailto:jlowery&netpro.com 2008-08-21 +# [John_M_Baird] John M. Baird mailto:jbaird&e-watch.com 2003-07 +# [John_MacMullin] John MacMullin mailto:john.macmullin&cox.net +# [John_Marland] John Marland mailto:jmarland&dean.openport.com +# [John_McCann] John McCann mailto:jmccann&visualclick.com 2006-12 +# [John_McCormack] John McCormack mailto:jmac&cisco.com +# [John_McKernan] John McKernan mailto:John.McKernan&sun.com +# [John_Meredith] John Meredith mailto:John.Meredith&etsi.org 2009-09-08 +# [John_Mertus] John Mertus mailto:mertus&mathtech.com +# [John_Mitchell] John Mitchell Found Software, Inc. mailto:john&foundapp.com 2012-04-11 +# [John_Morton] John Morton mailto:j.morton&hp.com 2004-11 +# [John_Murphy] John Murphy mailto:john.m.murphy&mci.com +# [John_Muth] John Muth mailto:muth¶scale.com 2010-01-21 +# [John_Myers] John Myers mailto:jgm+&cmu.edu +# [John_Parello] John Parello mailto:jparello&cisco.com 2009-05-19 +# [John_Payne] John Payne mailto:jpayne&lotus.com +# [John_Payson] John Payson mailto:john&circad.com 2007-10-22 +# [John_R_Chawner] John R. Chawner tel:+1-817-354-1004 +# [John_R_Deuel] John R. Deuel mailto:kink&netops.com +# [John_Rainford] John Rainford mailto:jrainford&passgo.com +# [John_Rainford_2] John Rainford mailto:john.rainford&passgo.com +# [John_Reynolds] John Reynolds mailto:John.Reynolds&datacoresl.com 2012-04-17 +# [John_Richardson] John Richardson Citrix Systems +# [John_Richmond] John Richmond mailto:developers&securitydesigners.com 2002-03 +# [John_Richmond_2] John Richmond mailto:john&ndl.co.uk +# [John_Ryan] John Ryan mailto:john&cybertrace.com +# [John_Scalo] John Scalo mailto:scalo&apple.com +# [John_Schilling] John Schilling mailto:john&jschilling.net +# [John_Skidmore] John Skidmore mailto:JSkidmore&vicon-cctv.com 2002-07 +# [John_Stephen] John Stephen mailto:iana&mundocani.com 2002-07 +# [John_Sygulla] John Sygulla SGI mailto:jsygulla&sgi.com 2013-01-07 +# [John_T_McCann] John T. McCann mailto:jmccann&softwaremetering.com 2003-10 +# [John_Tafoya] John Tafoya mailto:johntµsoft.com +# [John_Taylor] John Taylor Ingersoll Rand, Inc. mailto:john.taylor&irco.com 2011-09-28 +# [John_Tintor] John Tintor mailto:jt&yo.net +# [John_Tokash] John Tokash mailto:jtokash&homestead.com +# [John_Trudeau] John Trudeau mailto:jtrudeau&cup.hp.com +# [John_Wallace] John Wallace mailto:john&nowsoftware.com +# [John_Wendt] John Wendt tel:+1-614-261-2000 +# [John_Williams] John Williams mailto:John.H.Williams&hp.com 2007-06 +# [John_Willis] John Willis mailto:jwillis&arielusa.com 2002-09 +# [John_Wood] John Wood mailto:John.Wood&netiq.com +# [John_Yeager] John Yeager mailto:johnyeager&avaya.com +# [Johnnie_Walker] Johnnie Walker mailto:mrwalker&randomsequence.com +# [Johnny_C_Norris_II] Johnny C. Norris II mailto:jnorris&uiuc.edu +# [Johnny_Zweig] Johnny Zweig mailto:zweig&netwave-wireless.com +# [Johnson_Davis] Johnson Davis mailto:johnsond&opteamasoft.com +# [Johnson_Luo] Johnson Luo mailto:johnson_luo&mail.sercomm.com.tw +# [Jon_A_Christopher] Jon A. Christopher mailto:jac8792&tamu.edu +# [Jon_Bolen] Jon Bolen mailto:jon.bolen&westec.net 2009-03-18 +# [Jon_Ingi_Ingimundars] Jon Ingi Ingimundarson mailto:jii&oz.com 2003-03 +# [Jon_March] Jon March mailto:jon.march&paget-analyst-services.co.uk 2006-09 +# [Jon_Postel] Jon Postel mailto:postel&isi.edu +# [Jon_Press] Jon Press mailto:IANA.Registions&ca.com 2005-09 +# [Jon_Robertson] Jon Robertson mailto:jmrobertson&medevolve.com 2008-10-24 +# [Jon_Rosarky] Jon Rosarky mailto:JRosarky&symantec.com +# [Jon_S_Kyle] Jon S. Kyle mailto:JKyle&speedwaysoftware.com +# [Jon_Saperia] Jon Saperia mailto:saperia&bgs.com +# [Jon_Walker] Jon Walker mailto:jwalker&miramarsys.com +# [Jon_Xu] Jon Xu mailto:jonxuµsoft.com 2005-08 +# [Jonas_Ahlqvist] Jonas Ahlqvist mailto:jonas.a&informationssystem.se 2005-08 +# [Jonas_Bovin] Jonas Bovin mailto:jonas.bovin&quickobjects.com +# [Jonas_Gyllensvaan] Jonas Gyllensvaan mailto:jonas&conceivium.com 2009-04-27 +# [Jonas_Krogell] Jonas Krogell mailto:jonas.krogell&netadmin.se 2007-07-10 +# [Jonas_Oberg] Jonas Oberg mailto:jonas&coyote.org +# [Jonas_Salling] Jonas Salling mailto:jonas&salling.com +# [Jonathan] Jonathan mailto:jonathan&mugginsoft.com +# [Jonathan_A_Zdziaras] Jonathan A. Zdziaraski mailto:jonathan&nuclearelephant.com 2004-11 +# [Jonathan_A_Zdziarsk] Jonathan A. Zdziarski mailto:johathan&networkdweebs.com 2002-11 +# [Jonathan_Bastnagel] Jonathan Bastnagel mailto:jonthebagel&gmail.com 2007-09-17 +# [Jonathan_Custance] Jonathan Custance mailto:jevc&camrivox.com 2006-07 +# [Jonathan_Downes] Jonathan Downes mailto:jonno&activ.net.au +# [Jonathan_Leffler] Jonathan Leffler mailto:jleffler&us.ibm.com 2005-12 +# [Jonathan_Mergy] Jonathan Mergy mailto:mergy&natus.com +# [Jonathan_Mitchell] Jonathan Mitchell mailto:jonathan&mugginsoft.com 2008-09-08 +# [Jonathan_S_Shapiro] Jonathan S. Shapiro mailto:registrar&eros-os.org 2002-03 +# [Jonathan_Schaaf] Jonathan Schaaf mailto:j.schaaf&astronautics.com 2010-02-10 +# [Jonathan_Wenocur] Jonathan Wenocur mailto:jhw&shiva.com +# [Joon_Radley] Joon Radley mailto:jradley&csir.co.za +# [Joon_Radley_2] Joon Radley mailto:joon&toltec.co.za 2008-10-21 +# mailto:support&toltec.co.za +# [Jordan_Hrycaj] Jordan Hrycaj mailto:jordan&mjh.teddy-net.com +# [Jordi_Lisbona] Jordi Lisbona mailto:jlisbona&tango04.net +# [Jorg_Hoffmann] Joerg Hoffmann mailto:electronicc_rd&wago.com +# [Jorg_Laschke] Jorg Laschke mailto:laschke&hinz.de +# [Jorge_Aldana] Jorge Aldana mailto:operator&foresyte.com +# [Jorgen_Loland] Jorgen Loland mailto:jorgen.loland&sun.com 2008-02-27 +# [Jorn_Sierwald] Jorn Sierwald mailto:joern.sierwald&datafellows.com +# [Jose_A_Sesin] Jose A. Sesin mailto:sesin&vaultbase.com +# [Jose_Luis] Jose Luis mailto:73374.313&compuserve.com +# [Jose_Luis_Martin_Pei] Jose Luis Martin Peinado mailto:jooe&wifree-project.net 2006-03 +# [Josef_Spillner] Josef Spillner mailto:admin&ggzgamingzone.org 2003-01 +# [Joseph_Di_Pol] Joseph Di Pol mailto:joe.dipol&sun.com 2002-04 +# [Joseph_Dziedzic] Joseph Dziedzic mailto:tony.dziedzic&oracle.com 2008-06-06 +# [Joseph_Geer] Joseph Geer mailto:jgeer&peapod.com +# [Joseph_Gray] Joseph Gray mailto:gray&interwise.co.il +# [Joseph_Hauk] Joseph Hauk mailto:joseph.hauk&alphatech.com +# [Joseph_Hines] Joseph Hines mailto:jhines&webmethods.com +# [Joseph_Krebs] Joseph Krebs mailto:joek&caps.com +# [Joseph_LoPilato] Joseph LoPilato mailto:Joseph_M_LoPilato¬es.seagate.com +# [Joseph_M_Newcomer] Joseph M. Newcomer mailto:newcomer&flounder.com +# [Joseph_Mathew] Joseph Mathew mailto:mjoseph&dosa.cisco.com +# [Joseph_Sickel] Joseph Sickel mailto:joe&ozate.com 2011-10-12 +# [Joseph_Swaminathan] Joseph Swaminathan mailto:jswamina&cisco.com 2009-04-01 +# [Joseph_T_Savarese] Joseph T Savarese mailto:joesa&nmwco.com 2007-06 +# [Joseph_Weihs] Joseph Weihs mailto:yossi&bandwiz.com +# [Joshua_Boelter] Joshua Boelter Intel mailto:joshua.boelter&intel.com 2011-10-18 +# [Joshua_Graessley] Joshua Graessley mailto:jgraessley&apple.com 2004-12 +# [Joshua_Hawkins] Joshua Hawkins mailto:joshua.hawkins&hp.com 2003-11 +# [Joshua_Prewitt] Joshua Prewitt National Instruments mailto:joshua.prewitt&ni.com 2011-10-24 +# [Josip_Medved] Josip Medved mailto:jmedved&jmedved.com 2010-10-20 +# [Josse_van_Dobben_de] Josse van Dobben de Bruyn mailto:jossedobben&hotmail.com 2009-07-01 +# [Jost_Faganel] Jost Faganel mailto:jost.faganel&hermes.si +# [Josyula_R_Rao] Josyula R. Rao mailto:jrrao&watson.ibm.com +# [Joyce_K_Reynolds] Joyce K. Reynolds mailto:jkrey&isi.edu +# [Juan_Carlos_Luciani] Juan Carlos Luciani mailto:jluciani&novell.com +# [Juan_Carlos_Olivares] Juan Carlos Olivares mailto:jcolivares04c&cenidet.edu.mx 2006-03 +# Rojas +# [Juha_Lindfors] Juha Lindfors OpenRemote, Inc. mailto:juha&openremote.org 2012-12-18 +# [Jude_George] Jude George mailto:jude&nas.nasa.gov +# [Juergen_Edelhaeuser] Juergen Edelhaeuser mailto:Juergen.Edelhaeuser&locanis.com 2002-08 +# [Juergen_Fischbach] Juergen Fischbach mailto:juergen.fischbach&philips.com +# [Jugaari] Jugaari mailto:support&jugaari.com +# [Juho_Herttua] Juho Vaehae-Herttua mailto:juhovh&iki.fi 2009-04-14 +# [Julian_Biddle] Julian Biddle mailto:julian_biddle&technologyonecorp.com +# [Julian_Mehnle] Julian Mehnle mailto:julian&mehnle.net +# [Julian_Satran] Julian Satran mailto:Julian_Satran&il.ibm.com +# [Julian_Simpson] Julian Simpson Neo Technology, Inc mailto:julian.simpson&neotechnology.com 2013-02-08 +# [Julian_Smith] Julian Smith mailto:jsmith&undo-software.com 2010-04-19 +# [Juliana_Hsu] Juliana Hsu mailto:jhsu&ca.ibm.com +# [Julien_Danjou] Julien Danjou mailto:acid&debian.org 2006-07 +# [Julien_Robert] Julien Robert mailto:jul&abyssoft.com +# [Julien_VALIENTE] Julien VALIENTE mailto:j.valiente&objectif-software.com 2006-05 +# [Jun_Nakamura] Jun Nakamura mailto:jnakamur&cp10.es.xerox.com +# [Jun_Yoshii] Jun Yoshii mailto:yoshii&ael.fujitsu.co.jp +# [Juniper_Networks] Juniper Networks mailto:brijsman&juniper.net 2013-02-01 +# [Juraj_Zopp] Juraj Zopp mailto:juraj.zopp&pianoforce.com +# [Justin_Cepelak] Justin Cepelak mailto:jcepelak&splashdata.com +# [Justin_Ko] Justin Ko Apple mailto:justin.ko&apple.com 2011-10-20 +# [Justin_Paupore] Justin Paupore mailto:jpaupore&blueshiftlabs.net 2007-08-16 +# [Justin_R_Bendich] Justin R. Bendich mailto:jbendich&us.ibm.com +# [Justin_Vegso] Justin Vegso mailto:jvegso&quantapoint.com 2010-07-01 +# [Justin_Yu] Justin Yu mailto:yyu&mitre.org 2011-05-25 +# [Justine_Higgins] Justine Higgins mailto:iana&corsof.com +# [JVL_Industri_Elektronik] JVL Industri mailto:jvl&jvl.dk 2012-12-21 +# Elektronik +# [Jyri_J_Virkki] Jyri J. Virkki mailto:jyri.virkki&sun.com 2005-12 +# [K_Arvind] K. Arvind mailto:arvind&tenornetworks.com +# [K_K_Ho] K. K Ho mailto:kk.ho&afe-solutions.com 2004-04 +# [Kade_Hansson] Kade Hansson mailto:kade_fh&postoffice.utas.edu.au +# [Kai_Kretschmann] Kai Kretschmann mailto:K.Kretschmann&security-gui.de 2002-03 +# [Kang_Lee] Kang Lee I&M Society TC-9 mailto:kang.lee&nist.gov 2010-07-27 +# [Kannan_Alagappan] Kannan Alagappan mailto:kannan&sejour.enet.dec.com +# [Kannan_Alagappan_2] Kannan Alagappan mailto:kannan&sejour.lkg.dec.com +# [Karelia_Software] Karelia Software +# [Karen_Burns] Karen Burns +# [Karl_Edwall] Karl Edwall mailto:karl&magicnotes.com +# [Karl_Feind] Karl Feind mailto:kaf&sgi.com 2005-10 +# [Karl_Forster] Karl Forster mailto:kforster&lockstep.com +# [Karl_Norrman] Karl Norrman mailto:karl.norrman&ericsson.com 2004-12 +# [Karl_Olafsson] Karl Olafsson mailto:Karl.Olafsson&covariant-systems.com 2008-10-24 +# [Karl_Palsson] Karl Palsson mailto:karl_p&danfoss.com 2004-11 +# [Karl_Rousseau] Karl Rousseau mailto:kr&netfusion.co.uk +# [Karl_Schendel_Jr] Karl Schendel, Jr. mailto:wiz&telesis.com +# [Karl_Timmermann] Karl Timmermann mailto:timmerk&gmail.com +# [Katherine_Wattwood] Katherine Wattwood mailto:katherine.wattwood&veritas.com 2002-06 +# [Kathy_Huber] Kathy Huber mailto:khuber&bbn.com +# [Kathy_Tafel] Kathy Tafel Corpus Collusion mailto:kt&corpuscollusion.com 2011-08-23 +# [Katsuaki_Naoi] Katsuaki Naoi mailto:naoi&pfu.co.jp +# [Katsuhiko_Abe] Katsuhiko Abe mailto:kabe&hst.fujitsu.co.jp +# [Katsuhito_Muroi] Katsuhito Muroi mailto:muroi&pfu.co.jp +# [Katsumi_Oomuro] Katsumi Oomuro mailto:NAE01421&niftyserve.or.jp +# [Katy_Lynn_McCullough] Katy Lynn McCullough mailto:KatyM&laplink.com +# [Kaushik_Biswas] Kaushik Biswas mailto:kbiswas&cisco.com 2006-03 +# [Kay_Roepke] Kay Roepke mailto:Kay.Roepke&sun.com 2009-04-22 +# [Kay_T_Labinsky] Kay T. Labinsky mailto:Kay.Labinsky&sandlab.de 2010-05-03 +# [Kaynam_Hedayat] Kaynam Hedayat mailto:khedayat&roadrunner.pictel.com +# [Kaz_Kylheku] Kaz Kylheku mailto:kkylheku&infowave.com +# [Kaz_Ozawa] Kaz Ozawa mailto:k.ozawa&cablelabs.com +# [Kazuhiro_Koide] Kazuhiro Koide mailto:kaz&pfu.co.jp +# [Kazuhito_Gassho] Kazuhito Gassho mailto:Gassho.Kasuhito&exc.epson.co.jp +# [Kazuya_Ogata] Kazuya Ogata mailto:info&sepv.jp +# [Kedar_Mhaswade] Kedar Mhaswade mailto:kedar.Mhaswade&sun.com 2004-11 +# [Keiji_Michine] Keiji Michine mailto:michine&net.paso.fujitsu.co.jp +# [Keiji_Okuma] Keiji Okuma mailto:okuma&silex.jp 2005-08 +# [Keisokugiken_Corp] Keisokugiken Corp. mailto:adda&kgc.co.jp +# [Keith_Ansell] Keith Ansell mailto:KeithA&fastfreenet.com +# [Keith_Ashman] Keith Ashman mailto:sciana&sculptor.co.uk 2005-12 +# [Keith_Boyce] Keith Boyce +# [Keith_Evans] Keith Evans mailto:keith&loc252.tandem.com +# [Keith_Fligg] Keith Fligg mailto:keith&projtech.com 2002-09 +# [Keith_J_Alphonso] Keith J. Alphonso mailto:alphonso&ncs-ssc.com +# [Keith_Kilroy] Keith Kilroy mailto:Keith.Kilroy&novarcontrols.com 2006-02 +# [Keith_McCloghrie] Keith McCloghrie mailto:kzm&cisco.com +# [Keith_Moore] Keith Moore mailto:moore&cs.utk.edu +# [Keith_Morley] Keith Morley mailto:keith&ndl.co.uk +# [Keith_Paulsen] Keith Paulsen mailto:kpaulsen&phobos.com +# [Keith_Petley] Keith Petley mailto:keithp&sco.com +# [Keith_Rhodes] Keith Rhodes tel:+1-810-559-5955 +# [Keith_Ryden] Keith Ryden mailto:kryden&esri.com 2006-07 +# [Keith_Thompson] Keith Thompson mailto:keith.thompson&sun.com +# [Keith_Trummel] Keith Trummel mailto:ktrummel&autodesk.com +# [Keith_Wood] Keith Wood mailto:keith.wood&epid.eurotherm.co.uk +# [Keith_Wright] Keith Wright mailto:kwright&sensatronics.com 2003-08 +# [Keith_Yarbrough] Keith Yarbrough mailto:kyarbro&windtraveller.com +# [Kelli_Watson] Kelli Watson mailto:kwatson&ci3software.com +# [Kelly_Green] Kelly Green mailto:green&compaq.com +# [Kelly_Sims] Kelly Sims mailto:kellys&garnet.wv.tek.com +# [Kelvin_Lawson] Kelvin Lawson AD Holdings mailto:klawson&ad-holdings.co.uk 2011-10-11 +# [Ken_Anderson] Ken Anderson mailto:kanderso&kleber.ics.uci.edu +# [Ken_Bailey] Ken Bailey mailto:kbailey&rockettalk.com +# [Ken_Blackwell] Ken Blackwell mailto:kenb&bristol.com +# [Ken_Chapman] Ken Chapman mailto:kchapman&isis.com +# [Ken_Crocker] Ken Crocker mailto:kcrockerµsoft.com +# [Ken_Greer] Ken Greer mailto:kg&elan.com +# [Ken_Hearn] Ken Hearn mailto:hearn&hpindacx.cup.hp.com +# [KEN_ICHI_FUJII] Ken'ichi FUJII Canon Inc. mailto:fujii.ken-ichi149&canon.co.jp 2011-10-10 +# [Ken_Jibiki] Ken Jibiki mailto:ken&kenjij.com +# [Ken_Ksiazek] Ken Ksiazek mailto:kksiazek&maytag.com +# [Ken_Lagarec] Ken Lagarec mailto:klagarec&fibics.com 2009-04-17 +# [Ken_Lin] Ken Lin mailto:klin&us.ibm.com +# [Ken_McDonell] Ken McDonell mailto:kenj&internode.on.net 2010-12-20 +# [Ken_Moore] Ken Moore mailto:kmoore&groove.net +# [Ken_Nelson] Ken Nelson mailto:nelson&toplayer.com +# [Ken_Oliver] Ken Oliver mailto:koliver02&yahoo.com +# [Ken_Richard] Ken Richard mailto:kenr&aeseducation.com +# [Ken_Sarno] Ken Sarno mailto:kensarno&insightbb.com 2005-08 +# [Ken_Wittmer] Ken Wittmer mailto:kenneth.m.wittmer&accenture.com +# [Kenji_Tetsuyama] Kenji Tetsuyama mailto:kenji&onkyo.co.jp 2002-11 +# [Kenneth_B_Ocheltree] Kenneth B. Ocheltree mailto:kennetho&us.ibm.com 2008-01-07 +# [Kenneth_Flynn] Kenneth Flynn mailto:flynnk&darkcornersoftware.com 2009-10-14 +# [Kenneth_Vaughn] Kenneth Vaughn mailto:kvaughn&mail.viggen.com +# [Kern_Sibbald] Kern Sibbald mailto:kern&sibbald.com 2002-01 +# [Kerry_Hazelgren] Kerry Hazelgren mailto:hazelgren&facespan.com +# [Ketul_Patel] Ketul Patel mailto:ketulp76&yahoo.com 2006-10 +# [Kev_George] Kev George mailto:Kev.George&smiths-aerospace.com 2006-09 +# [Kevin_Arnold] Kevin Arnold mailto:imlucid&apple.com +# [Kevin_Bentley] Kevin Bentley mailto:Kevin&outrage.com +# [Kevin_Birch] Kevin Birch mailto:kbirch&pobox.com +# [Kevin_Bond] Kevin Bond mailto:kevin.bond&ca.com 2004-11 +# [Kevin_Bruckert] Kevin Bruckert mailto:kbruckert&idpco.com +# [Kevin_Brunner] Kevin Brunner mailto:brunner&tivo.com 2003-07 +# [Kevin_C_Barber] Kevin C. Barber mailto:kevin.c.barber&saic.com 2009-01-13 +# [Kevin_Calman] Kevin Calman mailto:postmaster&journee.com +# [Kevin_Collins] Kevin Collins mailto:kevinc@.cnd.hp.com +# [Kevin_Collins_2] Kevin Collins mailto:kevinc&cnd.hp.com +# [Kevin_Copas] Kevin Copas mailto:Kevin.Copas&lsi.com 2008-02-07 +# [Kevin_DeVault] Kevin DeVault +# [Kevin_Ediger] Kevin Ediger Software LI-COR mailto:kevin.ediger&licor.com 2011-10-18 +# Biosciences +# [Kevin_Frender] Kevin Frender mailto:kbf&ngdc.noaa.gov +# [Kevin_Green] Kevin Green mailto:Kevin_Green&tds.com +# [Kevin_Kuhns] Kevin Kuhns mailto:kkuhns&opto22.com +# [Kevin_Leacock] Kevin Leacock mailto:kevin&itchycode.com +# [Kevin_Lu] Kevin Lu mailto:kevinluµmethod.com 2005-08 +# [Kevin_Madden] Kevin Madden mailto:Kevin&emailxtras.com +# [Kevin_Massey] Kevin Massey mailto:massey&aspentec.com +# [Kevin_Mooney] Kevin Mooney mailto:kevinm&bfs.unibol.com +# [Kevin_Murphy] Kevin Murphy mailto:murphy&sevens.lkg.dec.com +# [Kevin_Murphy_2] Kevin Murphy mailto:kevin.murphy&networkengines.com 2003-10 +# [Kevin_Nakagawa] Kevin Nakagawa mailto:nakagawa&sigsci.com +# [Kevin_Osborn] Kevin Osborn mailto:kosborn&snapappliance.com +# [Kevin_Rushforth] Kevin Rushforth mailto:kevin.rushforth&sun.com 2003-08 +# [Kevin_Teiskoetter] Kevin Teiskoetter mailto:kevint&metacreations.com +# [Kevin_Wellwood] Kevin Wellwood mailto:wellwood&jeol.com 2008-04-17 +# [Kevin_Welton] Kevin Welton mailto:Kevin.Welton&armltd.co.uk +# [Khelben_Blackstaff] Khelben Blackstaff mailto:khelben&gmx.at +# [Khiem_Tran] Khiem Tran mailto:Khiem.Tran&andrew.com 2007-11-06 +# [Kim_Alan_Waggoner] Kim Alan Waggoner mailto:kimw&weatherbank.com 2006-11 +# [Kim_Berthelsen] Kim Berthelsen JVL Industri mailto:kb&jvl.dk 2012-12-21 +# [Kim_Hancock] Kim Hancock mailto:registry&dragondex.com 2007-10-24 +# [Kim_Moraros] Kim Moraros mailto:moraros&via.enet.dec.com +# [Kim_Scott] Kim Scott mailto:kims&cup.hp.com +# [Kimberly_Gibbs] Kimberly Gibbs mailto:kimgib&ccgate-ut.axent.com +# [Kimmo_Kymalainen] Kimmo Kymalainen mailto:kimmo.kymalainen&etsi.org 2010-06-04 +# [Kin_Chan] Kin Chan mailto:kchan&shiva.com +# [Kin_Chan_2] Kin Chan mailto:kchan&net2net.com +# [Kipp_E_B_Hickman] Kipp E.B. Hickman mailto:kipp&mcom.com +# [Kipp_E_B_Hickman_2] Kipp E.B. Hickman mailto:kipp&netscape.com +# [Kiren_Sekar] Kiren Sekar mailto:kiren&apple.com 2005-08 +# [Kiren_Sekar_2] Kiren Sekar mailto:kiren&apple.com +# [Kirk_Lougheed] Kirk Lougheed mailto:LOUGHEED&mathom.cisco.com +# [Kirk_MacLean] Kirk MacLean mailto:kmaclean&ea.com +# [Kit_Haskins] Kit Haskins mailto:kit&ka0wuc.org +# [Kit_Smithers] Kit Smithers mailto:ksmithers&argogroup.com +# [Kit_Sturgeon] Kit Sturgeon mailto:Kit&remotecontrolsextoys.com +# [Klas_Malmborg] Klas Malmborg FLIR Systems AB mailto:Klas.Malmborg&flir.se 2011-10-20 +# [Klaus_Fellner] Klaus Fellner mailto:webmaster&segue.com +# mailto:kfellner&segue.com +# [Klaus_Schmidinger] Klaus Schmidinger mailto:Klaus.Schmidinger&tvdr.de 2010-03-31 +# [Klaus_Warth] Klaus Warth Robert Bosch GmbH mailto:Klaus.Warth&bosch.com 2012-07-17 +# [Klaus_Wolf] Klaus Wolf mailto:wolf&cobrow.com +# [Koen_Schoofs] Koen Schoofs mailto:schoofs_koen&emc.com 2003-01 +# [Koich_Nakamura] Koich Nakamura mailto:naka&case.nm.fujitsu.co.jp +# [Konstantin_Iavid] Konstantin Iavid mailto:kiavid&highcriteria.com +# [Konstantin_Schauweck] Konstantin Schauwecker mailto:hi&konstantin-schauwecker.de 2007-02 +# [Konstantin_V_Vyazni] Konstantin V. Vyaznikov mailto:kv&ssm6000.samsung.ru +# [Konstantinos_Kostis] Konstantinos Kostis mailto:netdb&kostis.net +# [Kord_Campbell] Kord Campbell mailto:kord&grub.org +# [Kory_Hamzeh] Kory Hamzeh mailto:kory&ascend.com +# [Kouichi_Takeda] Kouichi Takeda mailto:KHBO5271&nifty.com +# [Kouichi_Takeda_2] Kouichi Takeda mailto:KHB05271&nifty.com +# [Kouji_Sugisawa] Kouji Sugisawa mailto:sugisawa.kouji&soft.fujitsu.com 2003-01 +# [Kristean_Heisler] Kristean Heisler mailto:kh&rib.de +# [Kristean_Heisler_2] Kristean Heisler mailto:Kristean.Heisler&rib-software.com 2009-12-16 +# [Kristian_A_Bognaes] Kristian A. Bognaes mailto:kbo&norman.no 2007-11-06 +# [Kristina_Sten] Kristina Sten mailto:kristina.sten&axis.com +# [Kristoffer_Lawson] Kristoffer Lawson mailto:setok&scred.com +# [Kristoffer_Nilsson] Kristoffer Nilsson mailto:kristoffer.nilsson&hutchison3g.com 2002-02 +# [Kunihiko_Morota] Kunihiko Morota mailto:morota.kunihiko&jp.panasonic.com 2005-08 +# [Kurt_Haubner] Kurt Haubner mailto:haubner&ibm.net +# [Kurt_Nissen] Kurt Nissen mailto:kn&proces-data.com 2004-02 +# [Kyle_Lussier] Kyle Lussier mailto:klussier&autonoc.com 2005-12 +# [Kyle_Unice] Kyle Unice mailto:kyle&midnighttech.com +# [L-ACOUSTICS] L-ACOUSTICS mailto:christophe.pignon&l-acoustics.com 2012-08-13 +# LJK Software, +# [LJK] Cambridge, mailto:support&ljk.com +# Massachusetts +# [Ladislav_Baranyay] Ladislav Baranyay mailto:identcod&identcode.sk +# [Lai_Zit_Seng] Lai Zit Seng mailto:lzs&pobox.com +# [Laird_Popkin] Laird Popkin mailto:laird&pando.com 2008-02-27 +# [Lal_Samuel_Varghese] Lal Samuel Varghese mailto:lalsam&hp.com 2005-08 +# [Lance_Drake] Lance Drake Caprice Productions mailto:bonjour&caprice.com 2012-07-05 +# [Lance_Kind] Lance Kind mailto:lance_kind&hp.com +# [Lance_M_Steenson] Lance M. Steenson mailto:lance&transactionwarehouse.net 2009-09-18 +# [Larry_A_Young] Larry A. Young mailto:Larry.A.Young&mail.sprint.com 2005-08 +# [Larry_A_Young_2] Larry A. Young mailto:Larry.A.Young&sprint.com 2006-02 +# [Larry_Atkin] Larry Atkin mailto:latkin&commongrnd.com +# [Larry_Atkin_2] Larry Atkin mailto:shasta&qsatoolworks.com +# [Larry_Barnes] Larry Barnes mailto:barnes&broke.enet.dec.com +# [Larry_Emlich] Larry Emlich mailto:larry.emlich&compaq.com +# [Larry_Gerhardstein] Larry Gerhardstein mailto:lh_gerhardstein&pnl.gov +# [Larry_Lipstone] Larry Lipstone mailto:lrl&interdyn.com +# [Larry_Peterson] Larry Peterson mailto:llp&arizona.edu +# [Larry_Schwartz] Larry Schwartz mailto:lrs&cup.hp.com +# [Larry_Scott] Larry Scott mailto:scott&zk3.dec.com +# [Larry_Stone] Larry Stone mailto:lcs&icad.com +# [Larry_Traylor] Larry Traylor mailto:larry&arium.com +# [Larry_Tusoni] Larry Tusoni mailto:larry&goldrush.com +# [Larry_Zarou] Larry Zarou mailto:zarla01&cbsits.com 2006-10 +# [Lars_Bohn] Lars Bohn mailto:Lars.Bohn&nokia.com +# [Lars_Eilebrecht] Lars Eilebrecht mailto:le+iana&leogic.com 2003-10 +# [Lars_Goran_Magnusson] Lars-Goran Magnusson mailto:lars-goran.magnusson&seisy.mail.abb.com +# [Lars_Mattsson] Lars Mattsson mailto:lars.mattsson®in.se 2008-12-24 +# [Lars_Struwe_Christen] Lars Struwe Christensen mailto:lsc&giritech.com 2004-01 +# [Laurence_Flath] Laurence Flath mailto:lflath&luxsolis.com +# [Laurent_Charmet] Laurent Charmet mailto:laurent.charmet&atempo.com +# [Laurent_Domenech] Laurent Domenech Opalis mailto:ldomenech&opalis.com +# [Laurent_Mihalkovic] Laurent Mihalkovic mailto:ljp_m&mac.com +# [Laurie_Charlwood] Laurie Charlwood mailto:laurie.charlwood&printsoft.com 2007-08-22 +# [Laurie_Lindsey] Laurie Lindsey mailto:llindsey&novell.com +# [Lawrence_J_Dickson] Lawrence J. Dickson Land-5 Corporation mailto:ldickson&land-5.com 2002-03 +# [Lawrence_Lebahn] Lawrence Lebahn mailto:DIA3&paxrv-nes.navy.mil +# [Lawrence_Tarbox] Lawrence Tarbox mailto:ltarbox&scr.siemens.com +# [Lawrence_W_Dunn] Lawrence W. Dunn mailto:larrydunn&aptcomp.com 2003-04 +# [Laxman_C_Marathe] Laxman C. Marathe mailto:lcmarathe&thomsonpress.com 2006-12 +# [Layered_Logic] Layered Logic, Inc. mailto:brooks&layeredlogic.com 2012-01-04 +# [Lech_Lakomy] Lech Lakomy mailto:llakomy&apwi.com 2009-02-12 +# [Lech_Laskowski] Lech Laskowski mailto:lech_laskowski&moldflow.com +# [Lecuivre_J] Lecuivre J mailto:software.team&mgeups.com 2005-08 +# [Lee_Barton] Lee Barton mailto:barton&star.enet.dec.com +# [Lee_Breisacher] Lee Breisacher mailto:lbreisacher&seagullsw.com +# [Lee_Dolson] Lee Dolson mailto:dolson&f-net.co.kr 2006-01 +# [Lee_Griffiths] Lee Griffiths mailto:lg&dataconnection.com 2004-11 +# [Lee_HoJun] Lee HoJun Samsung mailto:rcn95&samsung.com 2013-01-03 +# [Lee_Howard] Lee Howard mailto:iana&hylafax.org 2002-03 +# [Lee_VanTine] Lee VanTine mailto:lvantine&infiniswitc.com 2002-09 +# [Lee_Wheat] Lee Wheat mailto:wheat&wg.com +# [Lefteris_Kalamaras] Lefteris Kalamaras mailto:lefteris&ebi.com +# [Lehpaner_Sasa] Lehpaner Sasa mailto:lsasa&visel.it +# [Leif_Ekblad] Leif Ekblad mailto:leif&rdos.net +# [Leif_Hedstrom] Leif Hedstrom mailto:leif&propel.com 2002-04 +# [Leif_Jakob] Leif Jakob mailto:leif+iana&cube.ch 2006-01 +# [Leland_Wallace] Leland Wallace mailto:randall&apple.com +# [Len_Wanger] Len Wanger mailto:lrw&sdsc.edu +# [Len_Zuvela] Len Zuvela IM Unified Coalition mailto:imu-comments&egroups.com +# [Len_Zuvela_2] Len Zuvela mailto:lenzµsoft.com +# [Leo_Hourvitz] Leo Hourvitz mailto:leo&next.com +# [Leo_Lesage] Leo Lesage mailto:leo.lesage&adp.nl 2006-04 +# [Leo_Martins] Leo Martins mailto:leo&talarian.com +# [Leo_Moesgaard] Leo Moesgaard mailto:leo_moesgaard&dk.ibm.com +# [Leo_Rathnayake] Leo Rathnayake mailto:leo&perlnet.com +# [Leonhard_Diekmann] Leonhard Diekmann mailto:diekmann&04.mstr02.telekom400.dbp.de +# [Les_Enstone] Les Enstone mailto:lenstone&lanner.co.uk +# [Les_Klein] Les Klein mailto:sgy&cix.compulink.co.uk +# [Les_Mather] Les Mather mailto:lm&remsdaq.com 2005-12 +# [Leslie_Lincoln] Leslie Lincoln mailto:leslie_lincoln&valisys.com +# [Lewis_Donzis] Lewis Donzis mailto:ldonzis&nortelnetworks.com +# [Lewis_Wolfgang] Lewis Wolfgang mailto:wolfgang&kencast.com 2006-05 +# [Liam_Merwick] Liam Merwick mailto:ldoms-iana-ports&sun.com 2009-01-16 +# [Libor_Sykora] Libor Sykora mailto:libor.sykora&st.com 2002-05 +# [Libratone_AS] Libratone A/S mailto:info&libratone.com 2011-10-27 +# [libravatar_org] libravatar.org mailto:francois&libravatar.org 2011-10-11 +# [Lilian_Rudenco] Lilian Rudenco mailto:info&xpanel.com 2009-03-04 +# [Liming_Wei] Liming Wei mailto:lwei&cisco.com +# [Linda_Lin] Linda Lin mailto:llin&sonusnet.com 2006-08 +# [Lindsay_Morris] Lindsay Morris mailto:lmorris&servergraph.com +# [Linus_Torvalds] Linus Torvalds mailto:torvalds&osdl.org 2005-09 +# [Lisa_Tomita] Lisa Tomita +# [Lisa_Zhong] Lisa Zhong mailto:lzhong&cup.hp.com +# [Lisp_Support] Lisp Support mailto:lisp-support&xanalys.com +# [Liu_Changchun] Liu Changchun mailto:blzhang&infospark.cn 2008-11-05 +# [Lloyd_Wood] Lloyd Wood mailto:lwood&cisco.com 2007-05 +# [Logan_Bruns] Logan Bruns mailto:logan&andromedia.com +# [Loren_Barr] Loren Barr mailto:lbarr&extensis.com 2006-12 +# [Lori_Tassin] Lori Tassin mailto:Ramsey&network-1.com +# [Lou_Berger] Lou Berger mailto:lberger&movaz.com 2004-11 +# [Lou_Harris] Lou Harris mailto:lharris&outlx.bandl.com +# [Lou_Seitchik] Lou Seitchik mailto:lou&alliedelectronics.com 2005-08 +# [Louis_E_Simard] Louis E. Simard mailto:76400.3371&compuserve.com +# [Louis_Lu] Louis Lu mailto:LouisL&bristol.com +# [Louis_Mamakos] Louis Mamakos mailto:louie&sayshell.umd.edu +# [Louis_Mamakos_2] Louis Mamakos mailto:louie&uu.net +# [Louis_Olszyk] Louis Olszyk mailto:lolszyk&10fold.com +# [Louis_Slothouber] Louis Slothouber mailto:lpslot&biap.com 2005-08 +# [Louis_Sun] Louis Sun mailto:lysun&ambarella.com +# [Lucas_Alonso] Lucas Alonso mailto:luke&demiurgestudios.com 2002-02 +# [Luis_Zugasti] Luis Zugasti mailto:lzugasti&fagorautomation.es 2003-11 +# [Luke_Bowen] Luke Bowen mailto:leb&tfn.com +# [Luke_Dion] Luke Dion mailto:ldion&tapeware.com 2004-04 +# [Luke_Steffen] Luke Steffen mailto:lukesteffen&deusty.com +# [Luma_Code] Luma Code mailto:support&lumacode.com +# [Lumicom] Lumicom mailto:support&lumicom.com.au 2013-02-07 +# [Lumis] Lumis mailto:rterra&lumis.com.br 2011-10-24 +# [Lutz_Karras] Lutz Karras mailto:karras&zeiss.de +# [Lyndon_Nerenberg] Lyndon Nerenberg mailto:lyndon&execmail.ca +# [Lyndon_Ong] Lyndon Ong mailto:LyOng&ciena.com +# [Lyndon_Ong_2] Lyndon Ong mailto:Lyong&ciena.com +# [Lynn_Carter] Lynn Carter mailto:carterl&execpc.com +# [MPITech_Support] MPITech Support mailto:morten.christensen&i-data.com +# [M_Flemming] M Flemming mailto:mflemming&aol.com +# [Madhan_Kanagavel] Madhan Kanagavel mailto:madhan&codelathe.com 2008-07-18 +# [Madhav_Karhade] Madhav Karhade mailto:madhav.karhade&wibhu.com 2003-08 +# [Madhukar_N_Thakur] Madhukar N. Thakur mailto:mthakur&interbase.com +# [Mads_Peter_Back] Mads Peter Back mailto:iana-contact&webhouse.dk 2002-06 +# [Maggie_Brinsford] Maggie Brinsford mailto:mjb&concurrent.co.uk +# [Magnus_Nystrom] Magnus Nystrom mailto:magnus&dynas.se +# [Makoto_Ikeyama] Makoto Ikeyama mailto:ikeyama&ael.fujitsu.co.jp +# [Makoto_Mita] Makoto Mita mailto:mita&ssdev.ksp.fujixerox.co.jp +# [Makoto_Watanabe] Makoto Watanabe mailto:makoto&saint.nm.fujitsu.co.jp +# [Makoto_Zukawa] Makoto Zukawa mailto:zukawa&jp.fujitsu.com 2010-10-15 +# [Mala_Bhat] Mala Bhat mailto:bmala&ssdi.sharp.co.in 2005-08 +# [Malcolm_Crowe] Malcolm Crowe mailto:malcolm.crowe&paisley.ac.uk 2005-11 +# [Malcolm_Graham] Malcolm Graham mailto:Malcolm_Graham&cyborg.com +# [Malcolm_McLean] Malcolm McLean mailto:malcolmm&zieto.co.za 2007-07-19 +# [Mamoru_Ito] Mamoru Ito mailto:Ito&pcnet.ks.pfu.co.jp +# [Man_Shuen_Cheung] Man Shuen Cheung mailto:man_shuen_cheung&wamnet.co.uk +# [Manabu_Makino] Manabu Makino mailto:m-makino&ael.fujitsu.co.jp +# [Mandar_Joshi] Mandar Joshi mailto:mandar.joshi&lsi.com 2009-02-09 +# [Mandos_Maintainers] Mandos Maintainers mailto:mandos&fukt.bsnet.se +# [Manfred_Randelzofer] Manfred Randelzofer mailto:manfred.randelzofer&fujitsu-siemens.com +# [Manickam_R_Sridhar] Manickam R.Sridhar mailto:msridhar&sitaranetworks.com +# [Manish_Talreja] Manish Talreja Crestron Electronics, mailto:mtalreja@crestron.com> 2012-06-27 +# [Manuel_Moos] Manuel Moos mailto:z-man&users.sf.net 2012-11-02 +# [Marazzi] Marazzi mailto:fmarazzi&ideetique.com +# [Marc_Andre_Lemburg] Marc-Andre Lemburg mailto:mal&egenix.com 2009-11-13 +# [Marc_Bailey] Marc Bailey mailto:marc&objective.com +# [Marc_Baudoin] Marc Baudoin mailto:babafou&babafou.eu.org +# [Marc_Binstock] Marc Binstock mailto:marc.binstock&citrix.com 2008-01-29 +# [Marc_Blanchet] Marc Blanchet mailto:marc.blanchet&viagenie.ca 2003-01 +# [Marc_Castelluccio] Marc Castelluccio mailto:mcastell&areanetworks.net 2005-08 +# [Marc_Diamante] Marc Diamante mailto:pgmp&pgmpsolutions.com +# [Marc_Donner] Marc Donner mailto:mail&poweraudio.de 2009-01-16 +# [Marc_Epard] Marc Epard mailto:marc&netopia.com +# [Marc_Gauthier] Marc Gauthier mailto:mgau&kastenchase.com +# [Marc_Goossens] Marc Goossens mailto:mgoossens&eiba.com 2003-01 +# [Marc_Horowitz] Marc Horowitz mailto:marc&mit.edu +# [Marc_Krochmal] Marc Krochmal mailto:marc&apple.com +# [Marc_Krochmal_2] Marc Krochmal Apple Inc. mailto:marc&apple.com 2012-03-02 +# [Marc_Majka] Marc Majka mailto:majka&apple.com 2002-08 +# [Marc_Manthey] Marc Manthey mailto:codewarrior&cuseeme.de 2006-07 +# [Marc_Manthey_2] Marc Manthey mailto:marc&let.de +# [Marc_McClure] Marc McClure mailto:marcmccµsoft.com 2007-08-07 +# [Marc_Morin] Marc Morin mailto:mmorin&sdlintl.com 2002-04 +# [Marc_Prud_hommeaux] Marc Prud'hommeaux mailto:support&lexcycle.com +# [Marcel_Dube] Marcel Dube mailto:marceldube&videotron.ca 2004-11 +# [Marcel_Hofstetter] Marcel Hofstetter mailto:marcel.hofstetter&jomasoft.ch 2003-01 +# [Marcel_Ruff] Marcel Ruff mailto:mr&marcelruff.info 2002-02 +# [Marcelo_Einhorn] Marcelo Einhorn mailto:KGUNE%25HUJIVM1.bitnet@taunivm.tau.ac.il +# [Marcelo_Einhorn_2] Marcelo Einhorn mailto:marcelo&eshbel.com +# [Marcin_Gozdalik] Marcin Gozdalik mailto:gozdal&gadu-gadu.pl 2006-05 +# [Marco_Bambini] Marco Bambini mailto:marco&realsoftware.com 2008-08-28 +# [Marco_Casole] Marco Casole mailto:marco.casole&ericsson.com 2003-04 +# [Marco_Marcucci] Marco Marcucci mailto:mmarcucci.amtec&interbusiness.it +# [Marco_Mascitto] Marco Mascitto mailto:mmascitto&accedian.com 2011-06-28 +# [Marco_Piovanelli] Marco Piovanelli mailto:support&ovolab.com +# [Marcos_Della] Marcos Della mailto:mdella&peerme.com 2005-08 +# [Marcus_Leufgen] Marcus Leufgen mailto:leufgen&ipcas.de 2002-05 +# [Marcus_Mueller] Marcus Mueller mailto:marcus&irtrans.de 2004-11 +# [Marek_Buchler] Marek Buchler mailto:Marek.Buchler&entrust.com +# [Margaret_Wasserman] Margaret Wasserman mailto:margaret&thingmagic.com 2006-11 +# [Marie_France_Dubreui] Marie-France Dubreuil mailto:Marie-France.Dubreuil&evidian.com 2002-11 +# [Marie_Pierre_Belange] Marie-Pierre Belanger mailto:belanger_marie&emc.com +# [Mario_Bonin] Mario Bonin mailto:boninmµtempus.com +# [Mario_Joussen] Mario Joussen Cognex Corporation mailto:mario.joussen&cognex.com 2012-08-28 +# [Mario_Leboute] Mario Leboute mailto:leboute&pro.via-rs.com.br +# [Mario_Poerner] Mario Poerner Mediatap GbR mailto:mario.poerner&googlemail.com 2011-10-11 +# [Maris_Bormanis] Maris Bormanis mailto:info&febooti.com 2011-06-10 +# [Marius_Matioc] Marius Matioc mailto:marius&lavenir.com +# [Mark_Ainsley] Mark Ainsley mailto:ianaportmaster&unify.com +# [Mark_Armstrong] Mark Armstrong mailto:Mark.Armstrong&soleratec.com 2005-12 +# [Mark_B_Hurst] Mark B. Hurst mailto:mhurst&aspenres.com +# [Mark_Bailon] Mark Bailon mailto:mark.bailon&ericsson.com +# [Mark_Beyer] Mark Beyer mailto:mbeyer&freegate.com +# [Mark_Bocko] Mark Bocko mailto:bocko&ece.rochester.edu +# [Mark_Boler] Mark Boler mailto:markb&ttgsoftware.com +# [Mark_Burgess] Mark Burgess mailto:mark.burgess&iu.hioslo.no +# [Mark_Caldwell] Mark Caldwell mailto:development&caldsoft.co.uk 2011-08-12 +# [Mark_Cavage] Mark Cavage mailto:mcavage&us.ibm.com 2002-07 +# [Mark_Ciskey] Mark Ciskey mailto:mlciskey&plato.com +# [Mark_Crispin] Mark Crispin mailto:MRC&panda.com +# [Mark_Crispin_2] Mark Crispin mailto:MRC&cac.washington.edu +# [Mark_Crother] Mark Crother mailto:mark&eis.calstate.edu +# [Mark_Davidson] Mark Davidson mailto:mark_davidson&filemaker.com 2010-10-06 +# [Mark_Doyle] Mark Doyle mailto:mark&engagecom.com +# [Mark_E_Fogle] Mark E. Fogle mailto:mefogle&xantel.com +# [Mark_Ericksen] Mark Ericksen mailto:mark&jiiva.com +# [Mark_Ethan_Trostler] Mark Ethan Trostler mailto:mark&zzo.com 2011-11-23 +# [Mark_Farlin] Mark Farlin mailto:mfarlin&peerlogic.com +# [Mark_Fox] Mark Fox mailto:markf&uplanet.com +# [Mark_Gamble] Mark Gamble mailto:mark.gamble&sage.com 2003-02 +# [Mark_Garti] Mark Garti mailto:mgarti&sonusnet.com +# [Mark_H_David] Mark H. David mailto:mhd&gensym.com +# [Mark_H_Needleman] Mark H. Needleman mailto:markn&sirsi.com +# [Mark_Hankin] Mark Hankin +# [Mark_Hanson] Mark Hanson mailto:markh&intersys.com +# [Mark_Harrison] Mark Harrison mailto:Mark&xapautomation.org 2002-11 +# [Mark_Hendricks] Mark Hendricks mailto:markah&copper.net 2003-03 +# [Mark_Hodapp] Mark Hodapp mailto:mark.hodapp&sun.com +# [Mark_Hurst] Mark Hurst mailto:mhurst&inconnect.com +# [Mark_Itzcovitz] Mark Itzcovitz mailto:mji&vistacomp.com +# [Mark_Jackson] Mark Jackson Nuance mailto:Mark.Jackson&nuance.com 2011-10-27 +# Communications, Inc. +# [Mark_Killgore] Mark Killgore mailto:MKillgore&novell.com +# [Mark_Kosters] Mark Kosters mailto:markk&internic.net +# [Mark_L_Lambert] Mark L. Lambert mailto:markl&ptt.lcs.mit.edu +# [Mark_Lewandowski] Mark Lewandowski mailto:mlewan0&us.ibm.com +# [Mark_Lewis] Mark Lewis mailto:Mark_Lewis&ccm.jf.intel.com +# [Mark_Lewis_2] Mark Lewis mailto:mark.h.lewis&intel.com +# [Mark_Lewis_3] Mark Lewis mailto:mark&surveillus.com +# [Mark_Lipford] Mark Lipford mailto:mark.a.lipford&sprint.com 2006-07 +# [Mark_Lottor] Mark Lottor mailto:MKL&nisc.sri.com +# [Mark_Lyall] Mark Lyall mailto:mark.lyall&madge.com +# [Mark_McCahill] Mark McCahill mailto:mpm&boombox.micro.umn.edu +# [Mark_McNamara] Mark McNamara mailto:markm&research.canon.com.au +# [Mark_Miller] Mark Miller mailto:markm&caplet.com +# [Mark_Miller_2] Mark Miller mailto:mmillerµsoft.com +# [Mark_Morris] Mark Morris mailto:mim&ermuk.com +# [Mark_Morwood] Mark Morwood mailto:markm&sentillion.com +# [Mark_Nijmeijer] Mark Nijmeijer mailto:Mark.Nijmeijer&citrix.com 2009-04-17 +# [Mark_O_Connell] Mark O'Connell mailto:oconnell_marka&emc.com 2008-12-04 +# [Mark_Parenti] Mark Parenti mailto:map&ntc.adaptec.com +# [Mark_Pearce] Mark Pearce mailto:Mark_A.._Pearce/AXON_Networks_Inc..@notes.axon.com +# [Mark_R_Ludwig] Mark R. Ludwig mailto:Mark-Ludwig&uai.com +# [Mark_S_Edwards] Mark S. Edwards mailto:marke&firefox.co.uk +# [Mark_Sapp] Mark Sapp mailto:mark.sapp&aionex.com 2006-04 +# [Mark_Sapsford] Mark Sapsford mailto:Mark_Sapsford&taligent.com +# [Mark_Schertler] Mark Schertler mailto:mjs&tycho.ncsc.mil +# [Mark_Schmatz] Mark Schmatz mailto:ditrios&markschmatz.de +# [Mark_Seuffert] Mark Seuffert mailto:captain2004&pirate.de 2004-11 +# [Mark_Simpson] Mark Simpson mailto:simpson¢erline.com +# [Mark_Stapp] Mark Stapp mailto:mjs&cisco.com 2006-01 +# [Mark_Stevens] Mark Stevens mailto:mstevens&ellacoya.com +# [Mark_Tim_Junghanns] Mark-Tim Junghanns mailto:mjunghanns&vangerow.de 2003-07 +# [Mark_Tirschwell] Mark Tirschwell mailto:mark.tirschwell&wallstreetsystems.com 2006-01 +# [Mark_Trostler] Mark Trostler mailto:trostler&juniper.net +# [Mark_Valence] Mark Valence mailto:kurash&sassafras.com +# [Mark_Wahl] Mark Wahl mailto:mark.wahl&informed-control.com 2005-11 +# [Mark_Windrim] Mark Windrim mailto:mark.windrim&infobright.com 2009-07-23 +# [Mark_Wood] Mark Wood mailto:mark.d.wood&kodak.com +# [Mark_Wooding] Mark Wooding mailto:mdw&distorted.org.uk 2007-07-10 +# [Mark_Zang] Mark Zang mailto:mark&zang.com +# [Mark_de_Rooi] Mark de Rooi mailto:derooi&xs4all.nl 2004-12 +# [Mark_mayernick] Mark mayernick mailto:Mark.Mayernick&thomson.net 2003-03 +# [Markku_Viima] Markku Viima mailto:markku.viima&team.icl.se +# [Marko_Bjelac] Marko Bjelac mailto:marko.bjelac&elma.hr 2010-06-10 +# [Marko_Kreen] Marko Kreen mailto:markokr&gmail.com 2009-02-13 +# [Markus_Brand] Markus Brand mailto:address-o-sync&slamslash.com +# [Markus_Loeffler] Markus Loeffler mailto:markus.loeffler&thomson.net 2009-02-17 +# [Markus_Michels] Markus Michels mailto:mmi&pmsmicado.com +# [Markus_Michels_2] Markus Michels mailto:mmi&cedros.com +# [Markus_Michels_3] Markus Michels mailto:markus.michels&cedros.com 2006-10 +# [Markus_Nix] Markus Nix mailto:mnix&docuverse.de 2005-08 +# [Markus_Sabadello] Markus Sabadello mailto:sabadello&startron.org +# [Markus_Sabadello_2] Markus Sabadello mailto:sabadello&starbot.org +# [Markus_Treinen] Markus Treinen mailto:markus.treinen&siemens.com 2006-02 +# [Marnus_Freeman] Marnus Freeman mailto:marnus&swistgroup.com 2006-02 +# [Marshall_Anschutz] Marshall Anschutz mailto:dnssd.tcode&icehousepro.us +# [Marshall_Rose] Marshall Rose mailto:mrose&dbc.mtview.ca.us +# [Martha_Crisson] Martha Crisson mailto:CRISSON&ralvm12.vnet.ibm.com +# [Martin_Bestmann] Martin Bestmann mailto:martin&datawatch.de +# [Martin_Bestmann_2] Martin Bestmann mailto:martin&no.netopia.com 2004-03 +# [Martin_Bestmann_3] Martin Bestmann mailto:martin&poleposition-sw.com 2005-08 +# [Martin_Burnicki] Martin Burnicki mailto:martin.burnicki&meinberg.de 2002-08 +# [Martin_Daly] Martin Daly mailto:martin.daly&cadcorp.com 2006-11 +# [Martin_Ellis] Martin Ellis mailto:martin&clanleagues.net 2004-11 +# [Martin_Forssen] Martin Forssen mailto:maf&appgate.com 2004-11 +# [Martin_Freiss] Martin Freiss mailto:freiss.pad&sni.de +# [Martin_Freiss_2] Martin Freiss mailto:freiss.pad@sni. +# [Martin_Hamilton] Martin Hamilton mailto:martin&mrrl.lut.as.uk +# [Martin_Kirk] Martin Kirk mailto:m.kirk&opengroup.org +# [Martin_Kochanski] Martin Kochanski mailto:martin&cardbox.co.uk +# [Martin_Leitner] Martin Leitner mailto:info&anton-paar.com 2004-06 +# [Martin_Lichtin] Martin Lichtin mailto:lichtin&oanda.com +# [Martin_Norman] Martin Norman mailto:martin&ndl.co.uk +# [Martin_Picard] Martin Picard +# [Martin_Pool] Martin Pool mailto:mbp&samba.org 2002-11 +# [Martin_Pool_2] Martin Pool mailto:mbp&canonical.com 2007-02 +# [Martin_Redington] Martin Redington mailto:mildm8nnered&gmail.com +# [Martin_Rostan] Martin Rostan mailto:m.rostan&beckhoff.com 2003-11 +# [Martin_Shoemaker] Martin Shoemaker mailto:shoemakerml&rapistan.com +# [Martin_Sustrik] Martin Sustrik mailto:sustrik&imatix.com 2007-03 +# [Martin_Technology] Martin Technology mailto:support&martian.com +# [Martin_Wehlou] J. Martin Wehlou Man In The Middle AB mailto:martin&mitm.se 2011-10-18 +# [Martin_West] Martin West mailto:Martin.West&spirit-soft.com +# [Martin_Ziskind] Martin Ziskind mailto:ziskind&us.ibm.com 2008-08-21 +# [Martine_Marchand] Martine Marchand tel:+16-1-46-59-24-84 +# [Marty_Batchelder] Marty Batchelder mailto:marty&capres.com +# [Marty_Borden] Marty Borden mailto:mborden&tollbridgetech.com +# [Marty_Campbell] Marty Campbell mailto:martycðosinfo.com 2011-06-10 +# [Marty_Lyons] Marty Lyons mailto:marty&aol.com +# [Marty_Schoffstahl] Marty Schoffstahl mailto:schoff&nisc.nyser.net +# [Martyn_Thomas] Martyn Thomas +# [Marvin_Shin] Marvin Shin mailto:president&medialingo.com +# [Marvin_Sirbu] Marvin Sirbu mailto:sirbu+&andrew.cmu.edu +# [Marvin_Solomon] Marvin Solomon mailto:solomon&cs.wisc.edu +# [Marvin_Toungate] Marvin Toungate mailto:toungate&austin.ibm.com +# [Mary_Ann_Burt] Mary Ann Burt mailto:bytex!ws054!maryann&uunet.uu.net +# [Mary_Holstage] Mary Holstage mailto:holstege&firstfloor.com +# [Mary_Holstege] Mary Holstege mailto:holstege&firstfloor.com +# [Mary_Miller] Mary Miller Sigma Designs, Inc. mailto:Mary_Miller&sigmadesigns.com 2012-11-08 +# [Masahiro_Koiwai] Masahiro Koiwai mailto:Koiwai.Masahiro&exc.epson.co.jp 2006-10 +# [Masakatsu_Matsuo] Masakatsu Matsuo mailto:masa&sdsft.kme.mei.co.jp +# [Masakuni_Okada] Masakuni Okada mailto:masakuni&jp.ibm.com +# [Masao_Iwai] Masao Iwai mailto:iwai&kel.fujitsu.co.jp +# [Masashi_Suzaki] Masashi Suzaki mailto:susakim&noa.nttdata.jp +# [Masato_Sato] Masato Sato mailto:satou203&oki.com 2006-05 +# [Massimiliano_Ribuoli] Massimiliano Ribuoli and mailto:support&address-o-matic.com +# Marco Stefani +# [Massimo_Cafaro] Massimo Cafaro mailto:massimo.cafaro&unile.it 2004-11 +# [Massive_Flow_Product] Massive Flow Productions mailto:info&massiveflow.de +# [Matahari_Project] Matahari Project mailto:matahari&lists.fedorahosted.org 2011-08-31 +# [Matej_Sekoranja] Matej Sekoranja mailto:matej.sekoranja&cosylab.com 2012-03-23 +# [Math_Game_House_Soft] Math Game House Software mailto:mathgamehouse&mac.com +# [Mathew_Pitchforth] Mathew Pitchforth mailto:mathew&adinstruments.co.nz 2005-08 +# [Mathieu_Garcia] Mathieu Garcia mailto:mathieu.garcia&intua.net +# [Mat_Henshall] Mat Henshall Square Connect, Inc. mailto:mat&squareconnect.com 2011-10-07 +# [Mats_Nilsson] Mats Nilsson mailto:mats.nilsson&xware.se 2002-02 +# [Matt_Bendiksen] Matt Bendiksen mailto:matt&perceptiveautomation.com 2004-11 +# [Matt_Cecile] Matt Cecile mailto:mattc&metrics.com +# [Matt_Christiano] Matt Christiano mailto:globes@matt&oliveb.atc.olivetti.com +# [Matt_Christiano_2] Matt Christiano mailto:matt&reprisesoftware.com 2008-07-28 +# [Matt_Christiano_3] Matt Christiano Reprise Software, mailto:matt&reprisesoftware.com 2012-11-06 +# [Matt_Craig] Matt Craig mailto:matt&luxology.com +# [Matt_Craighead] Matt Craighead mailto:matt.craighead&conifersystems.com 2008-09-11 +# [Matt_Eagar] Matt Eagar mailto:matt.eagar&thinkflood.com +# [Matt_Ferrari] Matt Ferrari XXT LLC mailto:xxt.matt&sbcglobal.net 2012-07-12 +# [Matt_Hammond] Matt Hammond mailto:matt_hammond&four-sight.co.uk +# [Matt_Jensen] Matt Jensen mailto:mattj&newsblip.com +# [Matt_King] Matt King mailto:m&manyone.net 2002-04 +# [Matt_Lachance] Matt Lachance mailto:matt&cs-live.com +# [Matt_Nowicki] Matt Nowicki mailto:nowickim&iasdirect.com 2003-10 +# [Matt_Patenaude] Matt Patenaude mailto:MattPat&mattpat.net +# [Matt_Rogers] Matt Rogers mailto:mrogers&firescope.com 2008-10-16 +# [Matt_Rollins] Matt Rollins mailto:matt&anybusiness.com +# [Matt_Timmermans] Matt Timmermans +# [Matthew_Asham] Matthew Asham mailto:matthewa&bcwireless.net +# [Matthew_Baker] Matthew Baker mailto:matt.baker&intermec.com +# [Matthew_Darwin] Matthew Darwin mailto:matthew.darwin&hp.com 2005-08 +# [Matthew_Ford] Matthew Ford mailto:Matthew.Ford&forward.com.au 2003-03 +# [Matthew_Gast] Matthew Gast Aerohive Networks mailto:mgast&aerohive.com 2012-05-31 +# [Matthew_Horoschun] Matthew Horoschun mailto:mhoroschun&canprint.com.au +# [Matthew_Lloyd] Matthew Lloyd mailto:mlloyd&google.com 2010-04-26 +# [Matthew_MacKenzie] Matthew MacKenzie mailto:mattm&adobe.com +# [Matthew_Orzen] Matthew Orzen mailto:standards&starquest.com +# [Matthew_Strange] Matthew Strange mailto:matt&qsatoolworks.com 2009-03-06 +# [Matthew_Thomas] Matthew Thomas mailto:mrthom&essex.ac.uk 2008-01-07 +# [Matthew_Whited] Matthew Whited mailto:matt&thedotnetfactory.com 2008-01-16 +# [Matthew_Williams] Matthew Williams mailto:SPCsd_MWDD&hotmail.com +# [Matthias_Burghardt] Matthias Burghardt mailto:m.burghardt&x-on.de +# [Matthias_Riese] Matthias Riese mailto:Matthias.Riese&b-novative.de +# [Matthias_Schroer] Matthias Schroer mailto:matthias.schroer&invision.de +# [Matthias_Trute] Matthias Trute mailto:mtrute&web.de 2007-01 +# [Matthieu_Lachance] Matthieu Lachance mailto:matthieu.lachance&openwave.com +# [Matti_Salmi] Matti Salmi mailto:matti.salmi&nokia.com 2002-08 +# [Maurice_R_Turcotte] Maurice R. Turcotte mailto:mailrus!uflorida!rm1!dnmrt%25rmatl@uunet.uu.net +# [Max_Fudim] Max Fudim mailto:fudim&virtue3d.com +# [Max_Magliaro] Max Magliaro mailto:mmagliaro&bnisolutions.com 2004-11 +# [Max_Masyutin] Max Masyutin mailto:max&ritlabs.com +# [Max_Morris] Max Morris mailto:maxmµsoft.com +# [Maxim_Tseitlin] Maxim Tseitlin mailto:mtseitlin&iname.com +# [Maxime_Belanger] Maxime Belanger mailto:R173&hec.ca +# [Maxime_Deputter] Maxime Deputter mailto:m.deputter&ionixhosting.com 2006-04 +# [Maxine_Yuen] Maxine Yuen mailto:maxine&hq.ncube.com +# [Maya_Zimerman] Maya Zimerman mailto:mayaz&radware.co.il +# [Mayank_Vasa] Mayank Vasa mailto:mayank_vasa&symantec.com 2008-04-03 +# [Maziar_Tamadon] Maziar Tamadon mailto:maziar.tamadon&emulex.com 2007-11-06 +# [Mediatap_GbR] Mediatap GbR mailto:info&audiotapapp.com 2011-10-11 +# [MegaZone] MegaZone mailto:megazone&paycash.us 2005-08 +# [Megan_Woods] Megan Woods mailto:meganwoods&datafast.net.au +# [Meggie_Garica_Woodru] Meggie Garica-Woodruff mailto:ipulse&ericsson.com +# [Mehrdad_Ashtiani] Mehrdad Ashtiani mailto:mashtiani&ieeinc.com 2009-10-19 +# [Meindert_Sprang] Meindert Sprang mailto:ms&customware.nl 2009-02-18 +# [Mel_Oyler] Mel Oyler mailto:mel&novell.com +# [Melanie_Kacerek] Melanie Kacerek mailto:melanie.kacerek&quest.com 2008-12-16 +# [Melinda_Shore] Melinda Shore mailto:mshore&cisco.com 2006-05 +# [Melinda_Tsao] Melinda Tsao mailto:melinda&tpe1.sercomm.com.tw +# [Melinda_Tsao_2] Melinda Tsao mailto:melinda_tsao&mail.sercomm.com.tw +# [Menno_Zweistra] Menno Zweistra mailto:m.zweistra&metatude.com +# [Metod_Celestina] Metod Celestina IMS merilni sistemi mailto:metod.celestina&ims.si 2012-08-24 +# [Micha_Ben_Efraim] Micha Ben-Efraim mailto:benmi07&ca.com 2008-01-07 +# [Micha_Ben_Efraim_2] Micha Ben-Efraim mailto:micha&metalix.net 2011-01-31 +# [Micha_Ben_Efraim_3] Micha Ben-Efraim mailto:micha.ben-efraim&ca.com 2010-02-18 +# [Micha_Ben_Efraim_4] Micha Ben-Efraim mailto:micha&metalix.net 2012-11-27 +# [Michael_Agishtein] Michael Agishtein mailto:misha&unx.dec.com +# [Michael_Alyn_Miller] Michael Alyn Miller mailto:iana&aeolon.com +# [Michael_Andre] Michael Andre mailto:mandre>s-tkts.com +# [Michael_Andre_2] Michael Andre mailto:mandre&gatewayticketing.com 2007-10-04 +# [Michael_Battilana] Michael Battilana mailto:mcb-iana&cloanto.net 2010-04-30 +# [Michael_Benz] Michael Benz mailto:michael.benz&lsi.com 2010-08-06 +# [Michael_Berg] Michael Berg mailto:mike&dataapples.com 2005-08 +# [Michael_Bishop] Michael Bishop mailto:mbishop&fishnetsecurity.com +# [Michael_Boyle] Michael Boyle mailto:michaelboyle&smarttech.com +# [Michael_Cahill] Michael Cahill mailto:Michael.Cahill&bullant.net +# [Michael_Cartmel] Michael Cartmel Lumicom mailto:michael.cartmel&lumicom.com.au 2013-02-07 +# [Michael_Chapman] Michael Chapman mailto:mchapman&fortresstech.com 2004-11 +# [Michael_Chirila] Michael Chirila mailto:Michael.Chirila&softwareag.com 2006-01 +# [Michael_Collins] Michael Collins mailto:UBMCollins&aol.com +# [Michael_Coon] Michael Coon mailto:michael&thecube.com +# [Michael_Crawford] Michael Crawford mailto:MichaelC&dev.travsoft.com +# [Michael_Crawford_2] Michael Crawford mailto:michaelc&travsoft.com +# [Michael_Dalpiaz] Michael Dalpiaz mailto:Michael.Dalpiaz&sirona.com +# [Michael_Daniele] Michael Daniele mailto:michael.daniele&syamsoftware.com 2003-11 +# [Michael_Dasenbrock] Michael Dasenbrock mailto:dasenbro&apple.com +# [Michael_DeMoney] Michael DeMoney mailto:demoney&eng.sun.com +# [Michael_Demmer] Michael Demmer mailto:demmer&cs.berkeley.edu 2006-11 +# [Michael_Dodge] Michael Dodge mailto:sarge¢erspan.com +# [Michael_Douglass] Michael Douglass mailto:mikedoug&datafoundry.net +# [Michael_Durrant] Michael Durrant Arcturus Networks mailto:mdurrant&arcturusnetworks.com 2011-10-20 +# [Michael_Elizarov] Michael Elizarov mailto:Michael.Elizarovµsoft.com 2007-01 +# [Michael_Fischer] Michael Fischer mailto:otterley&pass.com +# [Michael_Fischer_2] Michael Fischer tel:+49-531-21-13-0 +# [Michael_Fread] Michael Fread Nexum, Inc. mailto:mfread&nexuminc.com 2012-09-21 +# [Michael_Friedman] Michael Friedman mailto:mfr1&worldnet.att.net +# [Michael_Ginn] Michael Ginn mailto:ginn&tyxar.com +# [Michael_Gleicher] Michael Gleicher mailto:mgleicher&comcast.net +# [Michael_Haeuptle] Michael Haeuptle mailto:Michael_Haeuptle&hp.com +# [Michael_Hunter] Michael Hunter mailto:mphunter&qnx.com +# [Michael_J_Hoy] Michael J Hoy mailto:mhoy&canberra-abq.com +# [Michael_J_Primeaux] Michael J Primeaux mailto:michael.primeaux&renkara.com +# [Michael_Karagosian] Michael Karagosian mailto:michael.karagosian&mkpe.com 2008-09-04 +# [Michael_Khalandovsky] Michael Khalandovsky mailto:mlk&epicon.com +# [Michael_King] Michael King mailto:mike.king&pvxplus.com 2006-07 +# [Michael_Lacher] Michael Lacher HLW Software mailto:michael.lacher&hlw.co.at 2011-10-11 +# [Michael_Landwehr] Michael Landwehr mailto:mikel&precisesoft.co.il +# [Michael_Lanzetta] Michael Lanzetta mailto:hagbard&ultimatech.com +# [Michael_Lekias] Michael Lekias mailto:admin&psdesign.com.au +# [Michael_Levy] Michael Levy mailto:ml&nh.ca +# [Michael_Lyle] Michael Lyle mailto:protocols&translattice.com 2009-11-03 +# [Michael_Marking] Michael Marking mailto:marking&tatanka.com +# [Michael_Marks] Michael Marks mailto:marks_michael&emc.com +# [Michael_McDaniels] Michael McDaniels Extreme Networks Inc mailto:mmcdaniels&extremenetworks.com 2008-05-01 +# [Michael_McNabb] Michael McNabb mailto:michael&aquaminds.com 2005-10 +# [Michael_Mealling] Michael Mealling mailto:michaelm&netsol.com +# [Michael_Mealling_2] Michael Mealling mailto:michael&refactored-networks.com 2005-08 +# [Michael_Melio] Michael Melio mailto:meliomd&comcast.net 2003-10 +# [Michael_Mester] Michael Mester mailto:mmester&cymtec.com +# [Michael_Monasterio] Michael Monasterio mailto:michael&wmsoftware.com +# [Michael_Muth] Michael Muth mailto:m.muth&tec5.com 2009-05-11 +# [Michael_O_Brien] Michael O'Brien mailto:mobrien02&comcast.net 2003-03 +# [Michael_O_Connor] Michael O'Connor mailto:moconnor&adobe.com +# [Michael_Paddon] Michael Paddon mailto:michael.paddon&activesky.com 2002-07 +# [Michael_Padrezas] Michael Padrezas mailto:mpaderzas&bluelance.com +# [Michael_Purser] Michael Purser mailto:mrp&mincom.com 2006-06 +# [Michael_R_Pizolato] Michael R. Pizolato mailto:michael&afs.com +# [Michael_R_Young] Michael R. Young mailto:michael.young&tor.sunpub.com +# [Michael_Rathmann] Michael Rathmann mailto:rathmann_ia&milesinfo.com +# [Michael_Richardson] Michael Richardson mailto:mcr&sandelman.ca 2011-02-08 +# [Michael_S_Amirault] Michael S Amirault mailto:ambi&world.std.com +# [Michael_S_Bogovich] Michael S. Bogovich mailto:info&burnthebox.us +# [Michael_S_Greenberg] Michael S. Greenberg mailto:arnoff&ftp.com +# [Michael_Scarito] Michael Scarito mailto:ms&mit.edu 2007-02 +# [Michael_Schmidt] Michael Schmidt mailto:mmaass&us.ibm.com +# [Michael_Schonborn] Michael Schoenborn T-Mobile mailto:michael.schoenborn&t-mobile.net 2009-09-11 +# International AG +# [Michael_Settles] Michael Settles mailto:michael.settles&verizon.net 2002-03 +# [Michael_Sharpe] Michael Sharpe mailto:iana-ports&netiq.com 2010-09-14 +# [Michael_Shearson] Michael Shearson mailto:mshearson&peerglobal.com +# [Michael_Shearson_2] Michael Shearson mailto:mikes&softsys-inc.com +# [Michael_Sparks] Michael Sparks mailto:msparks&telequiplabs.com 2002-06 +# [Michael_Spratte] Michael Spratte mailto:michael.spratte&compaq.com +# [Michael_Stein] Michael Stein mailto:mvs&apple.com +# [Michael_Swan] Michael Swan mailto:swan&neon.com 2004-04 +# [Michael_Sweet] Michael Sweet mailto:msweet&ctr.nawcad.navy.mil +# [Michael_Tennefoss] Michael Tennefoss mailto:mtennefoss&echelon.com +# [Michael_Thesing] Michael Thesing mailto:michael.thesing&acsatlanta.com +# [Michael_Thomason] Michael Thomason mailto:mthomason&gmail.com +# [Michael_Toth] Michael Toth mailto:iana&spiralcraft.com 2002-03 +# [Michael_Ubell] Michael Ubell mailto:michael&montage.com +# [Michael_Walsh] Michael Walsh mailto:mww&warwick.net +# [Michael_Werski] Michael Werski mailto:michael.werski&azeti.net 2010-02-18 +# [Michael_Whiteley] Michael Whiteley mailto:michael&whiteley.com 2003-04 +# [Michael_Wood] Michael Wood mailto:wood&althea.hks.com +# [Michael_Yip] Michael Yip mailto:Michael.Yip&alcatel.com +# [Michael_Yun] Michael Yun mailto:cinnanda&gmail.com 2007-10-24 +# [Michael_Zirpel] Michael Zirpel mailto:mbz&rvscom.com +# [Michael_Zunke] Michael Zunke mailto:michael.zunke&ealaddin.com 2010-07-23 +# [Michael_Zunke_2] Michael Zunke mailto:Michael.Zunke&ealaddin.com 2010-07-23 +# [Michaela_Vanderveen] Michaela Vanderveen mailto:mvandervn&yahoo.com 2007-02 +# [Michel_Bourget] Michel Bourget mailto:michel&sgi.com 2009-01-06 +# [Michel_Stam] Michel Stam HaloteC Instruments mailto:michel.stam&halotec.com 2012-02-07 +# [Michel_Stam_2] Michel Stam mailto:michel.iana&reverze.net 2012-11-20 +# [Micromat] Micromat mailto:supportµmat.com +# [Microsoft_Corporation] Microsoft Corporation mailto:pratsharµsoft.com 2011-08-04 +# [Microsoft_Corporation_2] Microsoft Corporation mailto:stdsreqµsoft.com 2012-03-15 +# [Microsoft_Corporation_3] Microsoft Corporation mailto:sachinsµsoft.com 2012-06-27 +# [Microtec_Informatique] Microtec Informatique mailto:raphµtec.fr 2012-03-15 +# [MIDI_Manufacturers_Assoc_Inc] MIDI Manufacturers mailto:info&midi.org 2011-11-14 +# Assoc Inc +# [Miguel_Angel_Fernand] Miguel Angel Fernandez mailto:mafg&tid.es +# [Miguel_Angel_Garcia] Miguel Angel Garcia mailto:Miguel.A.Garcia&ericsson.com +# [Mike_Accetta] Mike Accetta mailto:MIKE.ACCETTA&cmu-cs-a.edu +# [Mike_Alexander] Mike Alexander mailto:mta&um.cc.umich.edu +# [Mike_Balch] Mike Balch mailto:mbalch&teltone.com +# [Mike_Barthelemy] Mike Barthelemy mailto:msb&chromagrafx.com +# [Mike_Bello] Mike Bello mailto:mbello&zarak.com +# [Mike_Bernadett] Mike Bernadett mailto:mjbernadett&sbcglobal.net 2010-06-03 +# [Mike_Berrow] Mike Berrow +# [Mike_Bert] Mike Bert mailto:BERG_MIKE&tandem.com +# [Mike_Bombich] Mike Bombich mailto:bombich&apple.com +# [Mike_Brady] Mike Brady mailto:brady&cs.tcd.ie +# [Mike_Bush] Mike Bush mailto:mike.bush&allenvanguard.com +# [Mike_Clise] Mike Clise mailto:mikec&instantservice.com +# [Mike_Colagrosso] Mike Colagrosso mailto:ciao&ciaoapp.com 2011-10-24 +# [Mike_Cooper] Mike Cooper mailto:mcooper&magnicomp.com 2003-03 +# [Mike_Courterier] Mike Courterier mailto:mikec&deerfield.com +# [Mike_Craft] Mike Craft mailto:mcraft&cerner.com 2008-01-29 +# [Mike_Delgrosso] Mike Delgrosso mailto:mdelgros&tripplite.com 2003-01 +# [Mike_Delgrosso_2] Mike Delgrosso mailto:Mike_Delgrosso&tripplite.com 2007-07-02 +# [Mike_Dolan] Mike Dolan mailto:MDolan&ihcmail.ih.lucent.com +# [Mike_Dyslin] Mike Dyslin mailto:mike.dyslin&hp.com 2006-08 +# [Mike_Flemming] Mike Flemming mailto:mf&xnet.com +# [Mike_Gagle] Mike Gagle mailto:MikeG&inter-intelli.com +# [Mike_Gagle_2] Mike Gagle mailto:mikeg&inin.com 2006-05 +# [Mike_Goddard] Mike Goddard mailto:mike.goddard&ardent.com.au +# [Mike_Gossett] Mike Gossett mailto:mike&omnibond.com 2002-04 +# [Mike_Gregory] Mike Gregory mailto:Gregory_Mike&msmail.iipo.gtegsc.com +# [Mike_Harris] Mike Harris Adobe Systems Inc. mailto:mikeharr&adobe.com 2012-04-17 +# [Mike_Heins] Mike Heins mailto:mike&minivend.com +# [Mike_Horowitz] Mike Horowitz mailto:mah&shiva.com +# [Mike_Hudack] Mike Hudack mailto:mike&mhudack.com +# [Mike_Irani] Mike Irani mailto:irani_mike&bah.com 2002-10 +# [Mike_Irani_2] Mike Irani mailto:irani&spawar.navy.mil 2003-06 +# [Mike_Jackson] Mike Jackson mailto:mhjack&tscnet.com +# [Mike_King] Mike King mailto:mike.king&pvxplus.com 2009-11-09 +# [Mike_Klein] Mike Klein mailto:m.klein&motorla.com 2002-02 +# [Mike_Little] Mike Little mailto:mike.little&gdc4s.com +# [Mike_Marshburn] Mike Marshburn mailto:paul&softarc.com +# [Mike_McCauley] Mike McCauley mailto:mikem&open.com.au 2005-05 +# [Mike_Morgan] Mike Morgan mailto:mmorgan&lucent.com +# [Mike_Morris] Mike Morris mailto:mike.morris&amx.com +# [Mike_Nuss] Mike Nuss mailto:mike&terascala.com +# [Mike_O_Brien] Mike O'Brien mailto:mike&mobrien.com 2004-11 +# [Mike_Pontillo] Mike Pontillo mailto:pontillo&hp.com 2003-08 +# [Mike_Rieker] Mike Rieker mailto:mikea&sp32.com +# [Mike_Rodbell] Mike Rodbell mailto:mrodbell&ciena.com +# [Mike_Sample] Mike Sample Global Relay mailto:Michael.Sample&GlobalRelay.net 2012-11-28 +# [Mike_Sherrill] Mike Sherrill mailto:sherrill&commvault.com +# [Mike_Spitzer] Mike Spitzer mailto:mjs&polyserve.com 2005-08 +# [Mike_St_Johns] Mike St. Johns mailto:stjohns&arpa.mil +# [Mike_Turley] Mike Turley mailto:turley&symplex.com +# [Mike_Velten] Mike Velten mailto:Mike_Velten&liebert.com +# [Mike_Velten_2] Mike Velten mailto:mike.Velten&liebert.com 2002-03 +# [Mike_Wray] Mike Wray mailto:mjw&hplb.hpl.hp.com +# [Mike_Wright] Mike Wright DIFUSI, Inc. mailto:mike&adnodes.co 2011-11-07 +# [Mike_Yenco] Mike Yenco mailto:mike¥co.com +# [Mike_Young] Mike Young mailto:myong&netattach.com +# [Mikhail_Belov] Mikhail Belov mailto:mikhail&imrgold.com 2002-02 +# [Mikhail_Kruk] Mikhail Kruk mailto:mkruk&biscom.com +# [Milton_E_Sagen] Milton E. Sagen mailto:msagen&extensis.com +# [Milton_Pulis] Milton Pulis mailto:toothpic&fastq.com +# [Milton_Sagen] Milton Sagen mailto:msagen&extensis.com +# [MINDARRAY_SYSTEMS] MINDARRAY SYSTEMS (P) mailto:info&mindarraysystems.com 2011-10-25 +# [Ming_Jen_Chen] Ming-Jen Chen mailto:mjchen&trendchip.com.tw 2002-09 +# [Ming_Poon] Ming Poon mailto:mingp&corel.ca +# [Ming_Xu] Ming Xu mailto:ming&veritas.com +# [Ming_Zhang] Ming Zhang mailto:mzhang&cisco.com 2010-02-04 +# [Minoru_Ozaki] Minoru Ozaki mailto:Minoru.Ozaki&rdmg.mgcs.mei.co.jp +# [Mircea_Neacsu] Mircea Neacsu mailto:mircea&hypack.com 2011-10-27 +# [Miriam_Wohlgelernter] Miriam Wohlgelernter mailto:miriamw&adirtech.com +# [Mitch_Kaufman] Mitch Kaufman mailto:mk&weconnectyou.com +# [Mitchell_Bass] Mitchell Bass mailto:mitch&integrasolv.com 2005-08 +# [MITM] Man In The Middle AB mailto:martin&mitm.se 2011-10-18 +# [Mitra] Mitra mailto:mitra&earth.path.net +# [Mitsuji_Toda] Mitsuji Toda mailto:toda&mmedia.mci.mei.co.jp +# [Mitsuo_Kodama] Mitsuo Kodama mailto:kodama&jbmia.or.jp 2005-06 +# [Miva_Corporation] Miva Corporation mailto:jwoods&miva.com.au +# [Mogeneti] Mogeneti mailto:serveradmin&mogeneti.com 2012-09-26 +# [Mohsen_Banan] Mohsen Banan mailto:mohsen&rostam.neda.com +# [Mohsen_Banan_2] Mohsen Banan mailto:mohsen&neda.com +# [Moises_E_Hernandez] Moises E. Hernandez mailto:moises&accugraph.com +# [Montgomery_Zukowski] Montgomery Zukowski mailto:monty&nextnorth.acs.ohio-state.edu +# [Monty] Monty mailto:monty&analytikerna.se +# [Moon_Ho_Chung] Moon Ho Chung mailto:mchung&esps.com +# [Morega_System] Morega Systems Inc. mailto:atahir&morega.com 2012-08-20 +# [Morgan_Doyle] Morgan Doyle mailto:morgan&mpt.ie +# [Morgan_Jones] Morgan Jones mailto:mwj&cyasolutions.com +# [Moritz_Schmale] Moritz Schmale mailto:narrow.m&gmail.com 2011-10-07 +# [Morten_Christensen] Morten Christensen mailto:mjc&exbit.dk +# [Morten_Mertner] Morten Mertner mailto:mm&audiojuggler.com 2002-11 +# [Morteza_Kalhour] Morteza Kalhour mailto:Morteza.Kalhour&nokia.com 2002-02 +# [Mosha_Pasumansky] Mosha Pasumansky mailto:moshapµsoft.com +# [Moshe_Beeri] Moshe Beeri mailto:moshe&whale-com.com +# [Moshe_Leibovitch] Moshe Leibovitch mailto:moshe&softlinkusa.com +# [Moshe_Livne] Moshe Livne mailto:moshe&softlinkusa.com +# [Motorola_Solutions_Inc] Motorola Solutions, mailto:jenish&motorolasolutions.com 2012-03-14 +# [Murali_Ranganathan] Murali Ranganathan mailto:murali_ranganathan&quickmail.apple.com +# [Murray_Freeman] Murray Freeman mailto:murray&officedomain.com +# [Murthy_Parthasarathi] Murthy Parthasarathi mailto:pvmurthy&effigent.com +# [Murthy_Srinivas] Murthy Srinivas mailto:murthy&novell.com +# [Muscarella_Fabrizio] Muscarella Fabrizio mailto:fabrizio.muscarella&sap.com 2006-04 +# [Muse_Communications] Muse Communications mailto:howard&muse3d.com +# Corporation +# [Myk_Willis] Myk Willis mailto:myk.willis&citrix.com +# [Myron_Hattig] Myron Hattig mailto:Myron_Hattig&ccm.jf.intel.com +# [NLnet_Labs_Support] NLnet Labs Support NLnet Labs mailto:support&nlnetlabs.nl 2011-07-11 +# [n-Count_Technology_BV] n-Count Technology mailto:ncount&dejongfrz.nl 2013-01-22 +# [Nancy_Davoust] Nancy Davoust mailto:n.davoust&cablelabs.com +# [Nand_Kumar] Nand Kumar mailto:nkumar&triquest-da.com +# [Naoki_Hayashi] Naoki Hayashi mailto:ha&fjh.se.fujitsu.co.jp +# [Narain_Jagathesan] Narain Jagathesan mailto:narain.jagathesan&oracle.com 2003-11 +# [Narasimha_Rao_N] Narasimha Rao N. mailto:nnarasimharao&novell.com +# [Narayanan_Raju] Narayanan Raju mailto:narayanan.raju&hp.com 2009-02-05 +# [Natarajan_Balasundar] Natarajan Balasundara mailto:rajan&ipanoramii.com +# [Nate_Rivard] Nate Rivard mailto:nrivard&cc.gatech.edu +# [Nathan_Hammond] Nathan Hammond mailto:nathan.hammond&stonebranch.com 2005-10 +# [Nathan_Sadia] Nathan Sadia mailto:sadia&maincontrol.com +# [National_Instruments] National Instruments mailto:joshua.prewitt&ni.com 2011-10-24 +# National Marine +# [National_Marine_Electronics_Association] Electronics mailto:sspitzer&nmea.org 2011-09-15 +# [Navtech_Radar_Ltd] Navtech Radar mailto:network.admin&navtechradar.com 2013-02-20 +# [Neal_Taylor] Neal Taylor mailto:ianareg&apani.com +# [Nedelcho_Stanev] Nedelcho Stanev mailto:nstanev&csoft.bg +# [Nedelcho_Stanev_2] Nedelcho Stanev mailto:decho&csoft.bg +# [Nedelcho_Stanev_3] Nedelcho Stanev mailto:decho&iname.com +# [Neel_A_Bhatt] Neel A. Bhatt Symantec Corp mailto:neel_bhatt&symantec.com 2012-01-03 +# [Neer_Kleinman] Neer Kleinman mailto:neer&qsr.co.il +# [NEGU_Soft] NEGU Soft mailto:info&negusoft.com 2012-09-10 +# [Neil_Coggins] Neil Coggins mailto:neil.coggins&6thsight.com 2006-07 +# [Neil_Salter] Neil Salter mailto:neil&indigo2.mvel.demon.co.uk +# [Neo_Technology_Inc] Neo Technology, Inc mailto:admins&neotechnology.com 2013-02-08 +# [Nestor_A_Diaz] Nestor A. Diaz mailto:nestor&tiendalinux.com 2009-05-12 +# [NetOp_Technical_Supp] NetOp Technical Support mailto:support&danware.dk +# [Nevil_Brownlee] Nevil Brownlee mailto:n.brownlee&auckland.ac.nz 2006-10 +# [Nexenta] John S. Howard Nexenta mailto:jsh&nexenta.com 2012-12-07 +# [NexStor_India_Limite] NexStor India Limited mailto:next&nda.vsnl.net.in +# [NextDay_Aps] NextDay Aps mailto:nextday&infinite-loop.dk 2012-04-24 +# [Nexum] Nexum, Inc. mailto:mfread&nexuminc.com 2012-09-21 +# [Niall_Hogg] Niall Hogg mailto:niall.hogg&interamics.com 2011-10-25 +# [Niall_Murphy] Niall Murphy mailto:niallm&orca.ucd.ie +# [Nic_Catrambone] Nic Catrambone mailto:ncatramb&us.ibm.com 2003-01 +# [Nicholas_Chua] Nicholas Chua mailto:nick&sendit.se +# [Nicholas_Davies] Nicholas Davies mailto:N.Davies&globalcomm.co.uk +# [Nicholas_J_Howes] Nicholas J Howes mailto:nick&ghostwood.org +# [Nicholas_Stowfis] Nicholas Stowfis mailto:nstowfis&esps.com +# [Nicholas_Young] Nicholas Young mailto:ntchkd&gmail.com 2008-07-10 +# [Nick_Austin] Nick Austin mailto:ogmion&ogmium.com +# [Nick_Barendt] Nick Barendt mailto:nbarendt&vxitech.com 2005-08 +# [Nick_Barendt_2] Nick Barendt mailto:nbarendt&vxitech.com +# [Nick_Barendt_3] Nick Barendt mailto:nbarendt&vxitech.com +# [Nick_Brosnahan] Nick Brosnahan mailto:nbrosnahan&apple.com +# [Nick_Connor] Nick Connor mailto:nickc&assuria.com 2010-06-30 +# [Nick_Emery] Nick Emery mailto:Nick.Emery&altavista.digital.com +# [Nick_Holt] Nick Holt mailto:nickh&purenetworks.com 2005-08 +# [Nick_Plante] Nick Plante mailto:nplante&dmod.com +# [Nick_Shipman] Nick Shipman mailto:Nick.Shipman&mrmog.reo.dec.com +# [Nick_Stephen] Nick Stephen mailto:nick.stephen&sun.com 2005-08 +# [Nick_Straguzzi] Nick Straguzzi mailto:Nick_Straguzzi&akbs.com +# [Nick_Warrington] Nick Warrington mailto:nick.warrington&paconsulting.com 2006-03 +# [Nick_Woronuk] Nick Woronuk mailto:nick.woronuk&megasys.com +# [Nick_de_Smith] Nick de Smith mailto:nick&desmith.net +# [Nicola_J_Howarth] Nicola J. Howarth mailto:njh&ansa.co.uk +# [Nicolas_Bouilleaud] Nicolas Bouilleaud mailto:nbouilleaud&lacie.com +# [Nicolas_Payette] Nicolas Payette mailto:payetten&trivialtechnology.com +# [Nicolas_Pouillon] Nicolas Pouillon Freebox SAS mailto:npouillon&freebox.fr 2012-12-14 +# [Nicolas_Williams] Nicolas Williams mailto:Nicolas.Williams&oracle.com 2010-08-09 +# [Nicole_C_Ouellette] Nicole C. Ouellette mailto:nouellette&connected.com 2004-02 +# [Niels_Castle] Niels Castle mailto:castle&castleandersen.dk +# [Niels_Christiansen] Niels Christiansen mailto:nchris&austin.ibm.com +# [Nigel_Groves] Nigel Groves mailto:nigel.groves&ca.com 2006-06 +# [Nigel_Stephens] Nigel Stephens mailto:nigel&algor.co.uk +# [Nigel_Warren] Nigel Warren mailto:info&flyobjectspace.com 2009-02-12 +# [Niklas_Weiss] Niklas Weiss mailto:n.weiss&d-trust.net 2004-11 +# [Nikolaus_Gerteis] Nikolaus Gerteis mailto:ngerteis&apple.com +# [Nils_Durner] Nils Durner SOFTPRO GmbH mailto:Nils.Durner&softpro.de 2012-07-19 +# [Nimrod_Diamant] Nimrod Diamant mailto:nimrod.diamant&intel.com 2005-02 +# [Nine_Technology_LLC] Nine Technology, LLC mailto:astoev&ninetechnology.com 2011-08-01 +# [Nir_Baroz] Nir Baroz mailto:nbaroz&encore.com +# [Nitin_Gupta] Nitin Gupta mailto:nguptµsoft.com 2008-12-24 +# [Nitza_Steinberg] Nitza Steinberg mailto:nitza&isd.3com.com +# [Nitzan_Daube] Nitzan Daube mailto:nitzan&brm.com +# [Noah_Paul] Noah Paul mailto:noahp&altavista.net +# [Noah_Paul_2] Noah Paul mailto:noahp&ultranet.com +# [Noah_Slater] Noah Slater mailto:nslater&bytesexual.org 2007-11-27 +# [Noam_Rimon] Noam Rimon mailto:noam.rimon&playstation.sony.com 2004-12 +# [Noor_Chowdhury] Noor Chowdhury mailto:noor&hypercom.com +# [Norbert_Kintzler] Norbert Kintzler mailto:NKintzler&easy-soft-dresden.de 2004-11 +# [Norbert_Sendetzky] Norbert Sendetzky mailto:norbert&linuxnetworks.de +# [Norival_Figueira] Norival Figueira mailto:nfigueir&brocade.com 2010-04-07 +# [Norm_Freedman] Norm Freedman mailto:normfree&san.rr.com 2003-08 +# [Norm_Freedman_2] Norm Freedman mailto:normfree&worldnet.att.net +# [Norm_Lunde] Norm Lunde mailto:norm&commvault.com 2004-11 +# [Norman_Brie] Norman Brie mailto:norm_brie&sns.ca +# [Norman_Wilson] Norman Wilson mailto:nwilson&programmar.com 2010-10-06 +# [Northon_Rodrigues] Northon Rodrigues mailto:northon.rodrigues&thomson.net 2004-02 +# [Notable_Solutions_Inc] Notable Solutions, mailto:dev&nsius.com 2011-09-01 +# [NovaWiz_LTD] NovaWiz LTD mailto:Moshe&novawiz.com +# [Nuance_Communications_Inc] Nuance mailto:Mark.Jackson&nuance.com 2011-10-27 +# [Nuance_Communications_Inc2] Nuance Communications mailto:NOD_SolutionsArchitecture&nuance.com 2012-10-05 +# [OASIS_KMIP_Technical_Committee] OASIS KMIP Technical mailto:robin&oasis-open.org 2011-07-25 +# Committee +# [OC] OC mailto:ocs&ocs.cz +# [Object_Matrix] Object Matrix mailto:support&object-matrix.com +# [Objective_Decision] Objective Decision mailto:od4contact&objective-decision.com +# [Oblamatik_AG] Oblamatik AG mailto:info&oblamatik.ch 2012-09-05 +# [OCA_Alliance] OCA Alliance mailto:tina.lipscomb&oca-alliance.com 2012-10-11 +# [Odo_Maletzki] Odo Maletzki mailto:Odo.Maletzki&ioag.de +# [Oishi_Toshiaki] Oishi Toshiaki SEIKO EPSON mailto:Oishi.Toshiaki&exc.epson.co.jp 2002-02 +# [Ola_Sandstrom] Ola Sandstrom mailto:ola.sandstrom&anoto.com 2003-03 +# [Ola_Strandberg] Ola Strandberg mailto:Ola.Strandberg&pharmasoft.se +# [Ole_Hellevik] Ole Hellevik mailto:oleh&interlinq.com +# [Ole_Morten_Duesund] Ole-Morten Duesund mailto:ole-morten.duesund&bbvisuals.no +# [Oleg_Noskov] Oleg Noskov mailto:olegn&corelcomputer.com +# [Oleksandr_Zakharchuk] Oleksandr Zakharchuk mailto:zakharchuk&dialogtech.com +# [Oliver_Anan] Oliver Anan mailto:oliver&ananit.de 2010-09-02 +# [Oliver_Bailey] Oliver Bailey mailto:zzf66jjlm&time-lines.com 2003-01 +# [Oliver_Heinz] Oliver Heinz mailto:heinz&arago.de 2005-08 +# [Oliver_Korfmacher] Oliver Korfmacher mailto:okorf&netcs.com +# [Oliver_Lewis] Oliver Lewis mailto:o.lewis&icerobotics.co.uk 2006-08 +# [Oliver_Thulke] Oliver Thulke mailto:oth&ratio.de +# [Olivier_Delecluse] Olivier Delecluse mailto:odelecluse&intego.com +# [Olivier_Guezenec] Olivier Guezenec mailto:olivier.guezenec&cogilab.com 2006-12 +# [Olivier_Mascia] Olivier Mascia mailto:om&tipgroup.com +# [Olivier_St-Laurent] Olivier St-Laurent Galaxy4D Online Game mailto:admin&galaxy4d.com 2012-06-18 +# [One_Laptop_per_Child] One Laptop per mailto:devel&lists.laptop.org +# Child/Collabora Ltd. +# [Open_Mobile_Alliance] Open Mobile Alliance mailto:Technical-Comments&mail.openmobilealliance.org 2011-08-19 +# Open Mobile Alliance +# [Open_Mobile_Alliance_Device_Management_DM_Working_Group] Device Management (DM) mailto:Technical-Comments&mail.openmobilealliance.org 2011-08-19 +# Working Group +# [OpenMail_Encyclopedi] OpenMail Encyclopedia mailto:opencyc&hpopd.pwd.hp.com +# [OpenRemote_Inc] OpenRemote, Inc. mailto:juha&openremote.org 2012-12-18 +# [OPNET_Technologies_Inc] OPNET Technologies mailto:tmacomber&opnet.com 2011-09-21 +# [Oracle] Oracle Corporation mailto:Devjani.Ray&oracle.com 2012-04-20 +# [Oran_Davis] Oran Davis mailto:oran&8x8.com +# [Orazio_Granato] Orazio Granato mailto:og&wsbgrd01.italy.hp.com +# [Oren_Hurvitz] Oren Hurvitz mailto:oren&omnisky.com +# [Oren_Trutner] Oren Trutner mailto:orentrutµsoft.com 2003-08 +# [Ori_Yosefi] Ori Yosefi mailto:Ori.Yosefiµsoft.com 2009-05-04 +# [Oriol_Ferrer_Mesia] Oriol Ferrer Mesia mailto:tm05788&salleurl.edu +# [Orion_Reblitz_Richar] Orion Reblitz-Richardson mailto:orionr&rakket.com +# [OS_NEXUS] OS NEXUS, Inc. mailto:info&osnexus.com 2012-09-21 +# [Osamu_Masuda] Osamu Masuda +# [Oskar_Persano] Oskar Persano ims Info Management mailto:ope&ims-info.ch 2011-10-20 +# [Owen_Sullivan] Owen Sullivan mailto:owen.sullivan&aldiscon.ie +# [Ozate_Inc] Ozate Inc. mailto:joe&ozate.com 2011-10-12 +# [POV_Team_Co_ordinato] POV-Team Co-ordinator mailto:iana-port.remove-spamguard&povray.org +# [PV_Shivkumar] PV Shivkumar mailto:p.shivkumar&oracle.com 2003-10 +# [P_T_K_Farrar] P.T.K. Farrar mailto:farrarp&teccon.co.uk +# [P_V_Shivkumar] P.V.Shivkumar mailto:PSHIVKUM&us.oracle.com +# [Panasonic_Intranet_Panasonic_North_America_PEWLA] Panasonic North mailto:protocols&pewla.us.pewg.panasonic.com 2012-11-12 +# [Panic_Inc] Panic Inc. mailto:cabel&panic.com 2012-07-19 +# [Panic_Ride] Panic Ride mailto:panicride&hao.org +# [Paolo_Desii] Paolo Desii POWERSOFT S.R.L. mailto:paolo.desii&powersoft.it 2012-01-03 +# [Pat_Calhoun] Pat Calhoun mailto:CALHOUN&admin.eicon.qc.ca +# [Pat_Galvin] Pat Galvin mailto:pgalvin&databeam.com +# [Pat_Mcgowan] Pat Mcgowan mailto:pmcgowan&folio.com +# [Pat_Richard] Pat Richard mailto:patr&xcert.com +# [Pat_Tovo] Pat Tovo mailto:pat.tovo&veritas.com 2004-12 +# [Patrick_Chipman] Patrick Chipman mailto:pchipman&memphis.edu +# [Patrick_Cipiere] Patrick Cipiere mailto:Patrick.Cipiere&udcast.com +# [Patrick_Ferriter] Patrick Ferriter mailto:Patrick.Ferriter&zultys.com 2003-06 +# [Patrick_Fisher] Patrick Fisher mailto:pfisher&hns.com 2004-12 +# [Patrick_Furlong] Patrick Furlong mailto:pfurlong&darkknight.ca 2003-01 +# [Patrick_H_Piper] Patrick H. Piper mailto:ppiper&netlinxinc.com 2009-03-06 +# [Patrick_Kara] Patrick Kara mailto:Patrick&eba.net +# [Patrick_Lee] Patrick Lee mailto:leecotechnologies&comcast.net 2008-03-10 +# [Patrick_M_McNeal] Patrick M McNeal mailto:mcneal&umich.edu 2006-03 +# [Patrick_McNamee] Patrick McNamee +# [Patrick_Moore] Patrick Moore mailto:pcmoore&sandia.gov +# [Patrick_Noffke] Patrick Noffke mailto:patrick.noffke&adpro.com.au +# [Patrick_Robinson] Patrick Robinson mailto:probinson&plosive.com +# [Patrick_Stein] Patrick Stein mailto:Patrick.Stein&jinx.eu 2011-10-24 +# [Patrick_Verbeek] Patrick Verbeek mailto:p.verbeek&scottygroup.com 2007-05 +# [Patrick_Verbeek_2] Patrick Verbeek SCOTTY Group SE mailto:p.verbeek&scottygroup.com 2013-01-14 +# [Patti_Jo_Newsom] Patti Jo Newsom mailto:pjn&mcsdallas.com +# [Patty_Ho] Patty Ho mailto:rimf&core.rose.hp.com 2007-05 +# [Paul_A_Suhler] Paul A. Suhler mailto:paul.suhler&quantum.com 2009-02-06 +# [Paul_Alfille] Paul Alfille mailto:paul.alfille&gmail.com 2007-01 +# [Paul_Amsden] Paul Amsden mailto:amsden@.ctron.com +# [Paul_Anderson] Paul Anderson mailto:paul.anderson&ip-cs.com 2003-04 +# [Paul_Annala] Paul Annala mailto:paa&bull.se +# [Paul_Applegate] Paul Applegate mailto:p.applegate2&genie.geis.com +# [Paul_Austin] Paul Austin mailto:paul.austin&natinst.com +# [Paul_B_Finley] Paul B. Finley mailto:pfinley&us.ibm.com 2003-10 +# [Paul_Ballew] Paul Ballew mailto:ballew&projtech.com +# [Paul_Blacknell] Paul Blacknell mailto:paul&insitu.com +# [Paul_Bohm] Paul Bohm mailto:paul&dropbox.com 2010-01-21 +# [Paul_Breed] Paul Breed mailto:paul&netburner.com 2003-11 +# [Paul_Breslin] Paul Breslin mailto:phb&sidefx.com +# [Paul_Brown] Paul Brown mailto:pbrown&spcontrols.com 2011-04-27 +# [Paul_Bunn] Paul Bunn mailto:iana&ultrabac.com +# [Paul_Cadarette] Paul Cadarette mailto:pcadaret&us.ibm.com 2007-01 +# [Paul_Carmichael] Paul Carmichael mailto:paulcarmichael&indx.net +# [Paul_Chinn] Paul Chinn Apple mailto:pchinn&apple.com 2011-10-20 +# [Paul_Clark] Paul Clark mailto:paul&xmill.com 2006-02 +# [Paul_Cope] Paul Cope mailto:prc&auto-graphics.com 2003-11 +# [Paul_Denning] Paul Denning mailto:pauld&mitre.org +# [Paul_Dietrich] Paul Dietrich mailto:registrar&impinj.com +# [Paul_Dollemore] Paul Dollemore mailto:pauld&anthonydata.com +# [Paul_Fonte] Paul Fonte mailto:paul_fonte&mediastation.com +# [Paul_Ford_Hutchinson] Paul Ford-Hutchinson mailto:paulfordh&uk.ibm.com 2003-01 +# [Paul_Funk] Paul Funk mailto:paul&funk.com +# [Paul_Glaubitz] Paul Glaubitz mailto:Paul.Glaubitz&mt.com +# [Paul_Greenfield] Paul Greenfield mailto:paul.greenfield&unisys.com +# [Paul_Groarke] Paul Groarke mailto:paulg&quay.ie +# [Paul_Guyot] Paul Guyot mailto:pguyot&kallisys.net 2003-01 +# [Paul_H_Alfille] Paul H Alfille mailto:paul.alfille&gmail.com +# [Paul_Harrison] Paul Harrison mailto:paulh&idonix.co.uk +# [Paul_Hodara] Paul Hodara mailto:phodara&netwave.com 2005-11 +# [Paul_Hoffman] Paul Hoffman mailto:phoffman&imc.org +# [Paul_Ignatius] Paul Ignatius mailto:paul.ignatius&scentric.com 2006-03 +# [Paul_Johnson] Paul Johnson mailto:paul.johnson&raima.com 2011-05-02 +# [Paul_K_Peterson] Paul K. Peterson mailto:paul&tribal.com +# [Paul_Kraus] Paul Kraus mailto:paul.kraus&veritas.com 2002-06 +# [Paul_Leach] Paul Leach mailto:paulleµsoft.com +# [Paul_Lesurf] Paul Lesurf mailto:paul.lesurf&vpltd.com +# [Paul_M_Franceus] Paul M Franceus mailto:paul&blueiris.us +# [Paul_McEntire] Paul McEntire mailto:paul.mcentire&columbiasc.ncr.com +# [Paul_McGinnis] Paul McGinnis mailto:pmcginnis&server.stmi.com +# [Paul_McGough] Paul McGough mailto:pmcgough&2factor.com 2007-02 +# [Paul_Mclachlan] Paul Mclachlan mailto:pmclachlan&mercury.com 2005-11 +# [Paul_Mockapetris] Paul Mockapetris mailto:PVM&isi.edu +# [Paul_Moore] Paul Moore mailto:paul.moore¢rify.com 2009-10-28 +# [Paul_Nelson] Paul Nelson mailto:paul&ioc-sea.com +# [Paul_Pyck] Paul Pyck mailto:papy&telindus.be +# [Paul_Reddy] Paul Reddy mailto:preddy&pharos.com +# [Paul_Reddy_2] Paul Reddy mailto:support&igo-incognito.com 2002-02 +# [Paul_Roberts] Paul Roberts mailto:PaulRoberts&engineer.com +# [Paul_Sanders] Paul Sanders mailto:p.sanders&dial.pipex.com +# [Paul_Sanders_2] Paul Sanders mailto:pe77&dial.pipex.com +# [Paul_Santinelli_Jr] Paul Santinelli Jr. mailto:psantinelli&narrative.com +# [Paul_Schilling] Paul Schilling mailto:PaulS&synapsis.com +# [Paul_Snook] Paul Snook mailto:paul.snook&itheon.com +# [Paul_Steane] Paul Steane Alstom Transport, mailto:paul.steane&transport.alstom.com 2012-12-14 +# [Paul_Stephen_Borlie] Paul Stephen Borlie mailto:paul&icona.it +# [Paul_Sterk] Paul Sterk mailto:paul.sterk&sun.com 2006-03 +# [Paul_Streatch] Paul Streatch mailto:pstreatch&marchnetworks.com 2004-06 +# [Paul_Suhler] Paul Suhler mailto:paul.suhler&quantum.com 2008-02-15 +# [Paul_Tam] Paul Tam mailto:ianaportmaster&onbase.com 2004-12 +# [Paul_Tokarchuk] Paul Tokarchuk mailto:ptokarch&alias.com 2004-11 +# [Paul_Vixie] Paul Vixie mailto:paul&vix.com +# [Paul_W_Nelson] Paul W. Nelson mailto:nelson&thursby.com +# [Paul_Whittemore] Paul Whittemore mailto:paul&softarc.com +# [Paul_Wissenbach] Paul Wissenbach mailto:paulwi&vnd.tek.com +# [Paul_Wissmiller] Paul Wissmiller mailto:Paul.Wissmiller&ca.com +# [Paul_Wren] Paul Wren mailto:Paul.Wren¯o4.com +# [Paul_Zander] Paul Zander Philips CFT mailto:p.j.zander&philips.com 2004-03 +# [Pavel_Mendl] Pavel Mendl mailto:pavel_mendl¢rum.cz 2007-03 +# [Pavlin_Ivanov_Radosl] Pavlin Ivanov Radoslavov mailto:pavlin&catarina.usc.edu +# [Pearson] Pearson mailto:chad.smith&pearson.com 2008-01-17 +# [Pedro_A_Rodriguez] Pedro A Rodriguez mailto:pedro.rdz&eaxtechnologies.com.mx 2008-08-06 +# [Pedro_Alpedrinha] Pedro Alpedrinha mailto:pedro.alpedrinha&redevirtual.com 2006-02 +# [Pekka_Riikonen] Pekka Riikonen mailto:priikone&poseidon.pspt.fi +# [Pekka_Takaranta] Pekka Takaranta mailto:pekka.takaranta&tellabs.fi +# [Peng_Dai] Peng Dai Delphix Corp mailto:peng.dai&delphix.com 2012-11-01 +# [Per_Cederqvist] Per Cederqvist mailto:ceder&lysator.liu.se +# [Per_Fahlberg] Per Fahlberg mailto:support&remograph.com 2009-01-21 +# [Per_Hellberg] Per Hellberg mailto:phellberg&isogon.com 2002-02 +# [Per_Sahlqvist] Per Sahlqvist mailto:psahlqvi&sw.seisy.abb.se +# [Per_Schroeder] Per Schroeder mailto:Per.Schroder&mimer.se +# [Pete_Camble] Pete Camble mailto:pete.camble&hp.com 2008-12-24 +# [Pete_Loeffen] Pete Loeffen President at Digital mailto:peterl&digitalrowing.com 2006-10 +# Rowing Inc. +# [Pete_Moscatelli] Pete Moscatelli mailto:moscat&hprdstl0.rose.hp.com +# [Pete_Wong] Pete Wong mailto:petewongµsoft.com +# [Peter_Amstutz] Peter Amstutz mailto:tetron&interreality.org +# [Peter_Anvelt] Peter Anvelt mailto:panvelt&xnai.com +# [Peter_Aronson] Peter Aronson mailto:paronson&esri.com +# [Peter_Beahan] Peter Beahan mailto:peter_beahan&technologyonecorp.com 2004-11 +# [Peter_Berger] Peter Berger mailto:peterb&panasas.com +# [Peter_Boers] Peter Boers mailto:boers&isisglobal.nl 2002-05 +# [Peter_Boucher] Peter Boucher mailto:pboucher&senforce.com +# [Peter_Carlson] Peter Carlson mailto:pcarlson&tier2.com +# [Peter_Caswell] Peter Caswell mailto:pfc&pacvax.pacersoft.com +# [Peter_Ciuffetti] Peter Ciuffetti mailto:petec&silverplatter.com +# [Peter_Dennis_Bartok] Peter Dennis Bartok mailto:peter&novonyx.com +# [Peter_E_Williams] Peter E Williams mailto:peter.williams&smallworld-us.com +# [Peter_Egli] Peter Egli mailto:peter.egli&inalp.com +# [Peter_Egli_2] Peter Egli mailto:peter.egli&mail.inalp.com +# [Peter_Eriksson] Peter Eriksson mailto:pen&lysator.liu.se +# [Peter_Fernandez] Peter Fernandez mailto:fernandez&omnisec.ch 2002-03 +# [Peter_Frankenberg] Peter Frankenberg mailto:pcfberg&ibm.net +# [Peter_G_L_Potgiese] Peter G. L. Potgieser mailto:p.g.l.potgieser&interpay.nl 2003-07 +# [Peter_Gabriel] Peter Gabriel mailto:peter.gabriel&ims.fraunhofer.de 2006-01 +# [Peter_Gad] Peter Gad mailto:peter&bmc.uu.se +# [Peter_Hallenbeck] Peter Hallenbeck mailto:pete&consumertechnologiesgroup.com 2005-08 +# [Peter_Higginson] Peter Higginson mailto:higginson&mail.dec.com +# [Peter_Hombach] Peter Hombach mailto:p.hombach&osorno.ca 2011-03-16 +# [Peter_Hussey] Peter Hussey mailto:peterhusµsoft.com +# [Peter_Hyde] Peter Hyde mailto:peter&spis.co.nz +# [Peter_Ijkhout] Peter Ijkhout mailto:peter&deltasolutions.nl +# [Peter_Jacobs] Peter Jacobs mailto:pjacobs&tullib.com +# [Peter_Johnson] Peter Johnson mailto:peter&commlinx.com.au 2004-11 +# [Peter_Kaever] Peter Kaever mailto:kaever.peter&westfalia.com 2005-08 +# [Peter_King] Peter King mailto:king&uplanet.com +# [Peter_Kollath] Peter Kollath mailto:peter.kollath&canex.sk 2002-08 +# [Peter_Krueger] Peter Krueger mailto:krueger&appss.de 2003-10 +# [Peter_Laschtowitz] Peter Laschtowitz mailto:pl&pq-computers.de 2009-09-15 +# [Peter_Lepeska] Peter Lepeska mailto:peter.lepeska&viasat.com 2010-09-10 +# [Peter_Lipp] Peter Lipp mailto:Peter.Lipp&iaik.at +# [Peter_Liu] Peter Liu +# [Peter_Loveday] Peter Loveday mailto:peter&eyeonline.com 2006-01 +# [Peter_MacAvock] Peter MacAvock mailto:macavock&dvb.org +# [Peter_Maher] Peter Maher mailto:quest_iana&oz.quest.com 2003-11 +# [Peter_Morrison] Peter Morrison mailto:peter_morrison&sydney.sterling.com +# [Peter_Moylan] Peter Moylan mailto:peter&ee.newcastle.edu.au 2002-08 +# [Peter_Phaal] Peter Phaal mailto:peter.phaal&inmon.com 2003-06 +# [Peter_Povinec] Peter Povinec mailto:peter.povinec&oracle.com 2010-04-13 +# [Peter_Pramberger] Peter Pramberger mailto:peter.pramberger&telering.co.at 2004-11 +# [Peter_Rocca] Peter Rocca mailto:rocca&multiboard.com 2002-10 +# [Peter_Saint_Andre] Peter Saint-Andre mailto:stpeter&stpeter.im 2009-11-25 +# [Peter_Sandstrom] Peter Sandstrom mailto:peter.sandstrom&tassen.fi +# [Peter_Santoro] Peter Santoro mailto:peter&pscomp.com +# [Peter_Schafer] Peter Schaefer mailto:p.schaefer&nospam.atc-systeme.de 2004-02 +# [Peter_Schoenberger] Peter Schoenberger mailto:ps&teles.de +# [Peter_Schow] Peter Schow mailto:Peter.Schow&sun.com 2007-01 +# [Peter_Steiner] Peter Steiner mailto:steiner&telecomsoftware.com 2011-02-22 +# [Peter_Teeuwen] Peter Teeuwen mailto:ptee&oce.nl +# [Peter_Verdon] Peter Verdon mailto:bess&dcs.warwick.ac.uk 2005-08 +# [Peter_Viscarola] Peter Viscarola mailto:PeterGV&osr.com +# [Peter_Wenzel] Peter Wenzel mailto:Peter.Wenzel&profibus.com 2004-11 +# [Peter_Weyman] Peter Weyman mailto:pjweyman&noblenet.com +# [Peter_White] Peter White mailto:peter_white&3com.com 2004-11 +# [Peter_Whittaker] Peter Whittaker mailto:pww&entrust.com +# [Peter_Zurich] Peter Zurich mailto:pbz&lowpft.com +# [Peter_de_Laval] Peter de Laval mailto:pdl§ra.se +# [Peter_van_Dijk] Peter van Dijk mailto:peter&xlshosting.nl 2011-01-10 +# [Petr_Chardin] Petr Chardin mailto:petr&mysql.com 2004-12 +# [Petri_Rauhala] Petri Rauhala mailto:petri.rauhala&nokia.com 2005-08 +# [Petronel_Bigioi] Petronel Bigioi mailto:petronel&fotonation.com 2004-11 +# [Phil_Abercrombie] Phil Abercrombie mailto:phil.abercrombie&appiq.com 2005-08 +# [Phil_Barrett] Phil Barrett mailto:support&cambridgeanimation.com +# [Phil_Braham] Phil Braham mailto:phil&braham.net +# [Phil_Davidson] Phil Davidson mailto:p.davidson&reftek.com +# [Phil_Frisbie] Phil Frisbie mailto:phil&hawksoft.com +# [Phil_Kerr] Phil Kerr mailto:phil&plus24.com 2002-02 +# [Phil_Lapsley] Phil Lapsley mailto:phil&ucbarpa.berkeley.edu +# [Phil_Maker] Phil Maker mailto:pjm&gnu.org 2008-06-18 +# [Phil_May] Phil May mailto:pm&datcon.co.uk +# [Phil_Piwonka] Phil Piwonka mailto:wnka&users.sourceforge.net +# [Phil_Servita] Phil Servita mailto:meister&ftp.com +# [Phil_Tolson] Phil Tolson mailto:philtolson&eaton.com 2010-01-21 +# [Phil_Willis] Phil Willis mailto:phil.willis&prism-uk.com 2003-08 +# [Phil_Willoughby] Phil Willoughby mailto:phil.willoughby&strawberrycat.com +# [Philip_Budne] Philip Budne mailto:budne&auroratech.com +# [Philip_N_Bergstress] Philip N. Bergstresser mailto:phil&bergstresser.org +# [Philip_Stephenson] Philip Stephenson mailto:Philip.stephenson&oracle.com 2005-08 +# [Philipp_Dreiss] Philipp Dreiss mailto:dreiss&isparx.de +# [Philipp_Marcel_Albre] Philipp Marcel Albrecht mailto:phipi&gmx.ch 2009-07-06 +# [Philippe_Binet] Philippe Binet mailto:phbinet&vnet.ibm.com +# [Philippe_Detournay] Philippe Detournay mailto:philippe.detournay&acrosoft.be 2007-11-12 +# [Philippe_Gilbert] Philippe Gilbert mailto:pgilbert&cal.fr +# [Phill_Goeckler] Phill Goeckler mailto:pgoeckler&cequint.com 2007-08-20 +# [Phillip_Dillinger] Phillip Dillinger mailto:Phillip.Dillinger&sealabs.com +# [Phillip_Heil] Phillip Heil mailto:phil.heil&dvtsensors.com 2002-02 +# [Phillip_Magson] Phillip Magson mailto:philm&extro.ucc.su.oz.au +# [Phivos_Aristides] Phivos Aristides mailto:phivos&opendesign.com +# [Photosmith] Photosmith mailto:ckhorne&photosmithapp.com 2011-10-27 +# [Pierre_Arnaud] Pierre Arnaud mailto:pierre.arnaud&iname.com +# [Pierre_Couderc] Pierre Couderc mailto:pcouderc&tol.fr 2006-03 +# [Pierre_Frisch] Pierre Frisch mailto:Pierre.Frisch&spearway.com +# [Pierre_Frisch_2] Pierre Frisch mailto:pierre.frisch&spearway.com +# [Piers_Scannell] Piers Scannell mailto:iana-form&lot105.com +# [Piers_Scannell_2] Piers Scannell mailto:piers&globecastne.com +# [Pieter_Ditmars] Pieter Ditmars mailto:pditmars&bbn.com +# [Pieter_Hintjens] Pieter Hintjens mailto:ph&imatix.com 2006-01 +# [Pieter_Hintjens2] Pieter Hintjens mailto:ph&imatix.com 2012-11-01 +# [Pieter_Hintjens_3] Pieter Hintjens mailto:ph&imatix.com 2012-12-17 +# [Pim_van_Riezen] Pim van Riezen mailto:registries&panelsix.com 2006-07 +# [Piotr_Parlewicz] Piotr Parlewicz mailto:pparlewicz&queryobject.com +# [Pisharath_Krishnan] Pisharath Krishnan mailto:krishnan&axis-inc.com +# [Pit_Vetterick] Pit Vetterick mailto:pit&3dgo.com 2002-05 +# [PLASA] PLASA mailto:standards.na&plasa.org 2012-06-01 +# [Portnoy_Boxman] Portnoy Boxman mailto:portnoy_boxman&bmc.com 2005-01 +# [Portnoy_Boxman_2] Portnoy Boxman mailto:Portnoy_Boxman&bmc.com 2006-09 +# [POWERSOFT_SRL] POWERSOFT S.R.L. mailto:claudio.lastrucci&powersoft.it 2012-01-03 +# [Prabu_Ambravaneswara] Prabu Ambravaneswaran mailto:prambravµsoft.com 2009-10-29 +# [Pradeep_Bahl] Pradeep Bahl mailto:pradeepbµsoft.com +# [Prakash_Banthia] Prakash Banthia mailto:prakash_banthia&3com.com +# [Prakash_Iyer] Prakash Iyer mailto:prakash.iyer&intel.com 2009-08-10 +# [Pranay_Varma] Pranay Varma mailto:pran&veritas.com +# [Prashant_Dholakia] Prashant Dholakia mailto:prashant&semaphorecom.com +# [Prateek_Sharma] Prateek Sharma mailto:pratsharµsoft.com 2011-08-04 +# [Prathibha_Nagvar] Prathibha Nagvar +# [Pratik_Wadher] Pratik Wadher mailto:pratik&datadomain.com 2007-05 +# [Predrag_Filipovic] Predrag Filipovic mailto:pfilipovic&digital5.com 2002-11 +# [Prem_Tirilok] Prem Tirilok mailto:Prem.Tirilok&tellabs.com +# [Preston_Bannister] Preston Bannister mailto:pbannister&quests.com +# [Prima_Designs_System] Prima Designs Systems mailto:info&prima.com.hk +# [Primark_Corporation] Primark Corporation mailto:joe.boone&primark.com +# [Pritham_Shetty] Pritham Shetty mailto:pritham¯omedia.com +# [Pritham_Shetty_2] Pritham Shetty mailto:pritham&andromedia.com +# [ProControl_Technolog] ProControl Technology AB mailto:info&pctworld.com 2004-12 +# [Professor_Paul_S_Wa] Professor Paul S. Wang mailto:pwang&cs.kent.edu 2002-07 +# [Qdea] Qdea mailto:support&qdea.com +# [Qentin_Neill] Qentin Neill mailto:quentin&columbiasc.ncr.com +# [Qiang_Zhang] Qiang Zhang mailto:qzhang&iwncomm.com 2006-10 +# [Qiang_Zhang_2] Qiang Zhang mailto:iad&iwncomm.com 2006-10 +# [Qualcomm_Innovation_Center] Qualcomm Innovation mailto:cdowell&quicinc.com 2011-12-21 +# [Quang_Thoi] Quang Thoi mailto:quang_thoi&symantec.com 2006-11 +# [Quentin_Brown] Quentin Brown mailto:ndldev&ndl.co.uk 2002-03 +# [Quest_Software] Quest Software mailto:iana.quest-disc&quest.com 2012-04-09 +# [Quinton_Tormanen] Quinton Tormanen mailto:quinton&deltacompsys.com +# [R_L_Meyering] R. L. Meyering mailto:RLMEYERING&biivax.dp.beckman.com +# [R_Thirumurthy] R. Thirumurthy mailto:rtm&banyannetworks.com +# [Rackspace_Hosting] Rackspace Hosting mailto:ziad.sawalha&rackspace.com 2011-08-15 +# [Radware_LTD] Radware LTD. mailto:samuelb&radware.com 2011-08-05 +# [Rafael_Zimberoff] Rafael Zimberoff mailto:rafael&zfirmllc.com 2003-11 +# [Raghurama_Bhat] Raghurama Bhat mailto:raghu&quintus.com +# [Rahul_Bahadur] Rahul Bahadur Check Point Software mailto:rbahadur&checkpoint.com 2012-06-28 +# [Raimond_Diederik] Raimond Diederik mailto:rdiederik&descartes.com +# [Rajeev_Verma] Rajeev Verma mailto:rajeev_verma&symantec.com 2006-02 +# [Rajesh_Akkineni] Rajesh Akkineni mailto:rajesh&vimukti.com 2007-01 +# [Rajesh_Batra] Rajesh Batra Western Digital Inc. mailto:rajesh.batra&wdc.com 2012-07-11 +# [Rajesh_D] Rajesh Dav SQRT(c) mailto:rajdaveµsoft.com 2009-02-03 +# [Rajesh_Nandyalam] Rajesh Nandyalam mailto:rnandyal&emc.com +# [Rajesh_Srinivasaragh] Rajesh Srinivasaraghavan mailto:srajesh&cup.hp.com +# [Rajiv_Aaron_Manglani] Rajiv Aaron Manglani mailto:rajivmanglani&mmm.com +# [Rakesh_Mahajan] Rakesh Mahajan mailto:rmahajan&netaphor-software.com +# [Ralf_Allrutz] Ralf Allrutz mailto:R.Allrutz&science-computing.de 2002-02 +# [Ralf_Bensmann] Ralf Bensmann mailto:iana&1ci.de +# [Ralf_Doewich] Ralf Doewich mailto:ralf.doewich&optimatele.com +# [Ralf_Muckenhirn] Ralf Muckenhirn tel:+49-7622-3980 +# tel:+49-7622-398200 +# [Ralph_Campbell] Ralph Campbell mailto:ralph.campbell&xasystems.com 2002-11 +# [Ralph_Droms] Ralph Droms mailto:rdroms&nri.reston.va.us +# [Ralph_Kammerlander] Ralph Kammerlander mailto:ralph.kammerlander&khe.siemens.de +# [Ram_Golla] Ram Golla mailto:rgolla&cisco.com +# [Ram_Iyer] Ram Iyer mailto:ram&aaccorp.com +# [Ram_Sudama] Ram Sudama mailto:rsudama&on.com +# [Ramakrishna_Nadendla] Ramakrishna Nadendla mailto:rama_nadendla&agilent.com 2002-08 +# [Ramana_Kovi] Ramana Kovi mailto:ramana&kovi.com +# [Ramesh_Gupta] Ramesh Gupta mailto:ramesh&guptas.net 2012-02-21 +# [Rami_Rubin] Rami Rubin mailto:rami&hybrid.com +# [Ramindur_Singh] Ramindur Singh mailto:Ramindur.Singh&blackcrowsoftware.com 2008-12-04 +# [Ramiro_Sarmiento] Ramiro Sarmiento mailto:ramiro&kabira.com +# [Ramy_Zaarour] Ramy Zaarour mailto:ramy&lumos.com +# [Ranchero_Software] Ranchero Software mailto:info&ranchero.com +# [Randall_Atkinson] Randall Atkinson mailto:rja&home.net +# [Randall_Atkinson_2] Randall Atkinson mailto:rja&inet.org +# [Randall_Dow] Randall Dow mailto:rand&randix.net +# [Randall_Gellens] Randall Gellens mailto:randy&qualcomm.com +# [Randall_Stewart] Randall Stewart IETF TSVWG mailto:rrs&lakerest.net +# [Randall_Stewart_2] Randall Stewart mailto:rrs&lakerest.net 2011-10-24 +# [Randy_Armstrong] Randy Armstrong mailto:randy.armstrong&opcfoundation.org 2006-09 +# [Randy_Cassidy] Randy Cassidy mailto:randy.cassidy&iracing.com 2007-08-30 +# [Randy_Epstein] Randy Epstein mailto:repstein&hostleasing.net +# [Randy_Hudgens] Randy Hudgens mailto:rhh&nmail.holditch.com +# [Randy_Leonard] Randy Leonard mailto:randy&oceansoft.com +# [Randy_Lomnes] Randy Lomnes mailto:rlomnes&faronics.com 2004-11 +# [Randy_Maas] Randy Maas mailto:randym&xiotech.com +# [Randy_Martin] Randy Martin mailto:exlmoc&clemson.edu +# [Randy_Thompson] Randy Thompson mailto:thompr&earthlink.net 2002-08 +# [Raphael_Neve] Raphael Neve Microtec Informatique mailto:raphµtec.fr 2012-03-15 +# [Ralph_Greenwell] Ralph Greenwell mailto:iana&cognima.com 2012-03-15 +# [Ratnadeep_Bhattachar] Ratnadeep Bhattacharjee mailto:ratnadeep.bhattacharjee&sun.com 2002-11 +# [Ravi_Gokhale] Ravi Gokhale mailto:rgokhale&bindview.com 2002-10 +# [Ravi_Kollipara] Ravi Kollipara mailto:ravi.kollipara&actifio.com 2010-06-18 +# [Ravi_Tavakely] Ravi Tavakely mailto:ravi.tavakley&veritas.com 2002-02 +# [Ray_Caruso] Ray Caruso mailto:ray.caruso&netvion.com 2002-06 +# [Ray_Gwinn] Ray Gwinn mailto:p00321&psilink.com +# [Ray_Jantz] Ray Jantz mailto:ray.jantz&lsil.com +# [Ray_Ozzie] Ray Ozzie mailto:ray&rocks.net +# [Rayan_Zachariassen] Rayan Zachariassen mailto:rayan&ai.toronto.edu +# [Raymarine_UK_Limited] Raymarine UK Limited mailto:Geoff.Beer&raymarine.com 2012-05-24 +# [Raymond_A_Diedrichs] Raymond A. Diedrichs mailto:rayd&slu.tr.unisys.com +# [Raymond_Chaw] Raymond Chaw mailto:Raymond&esecutech.com 2007-05 +# [Raymond_J_Young] Raymond J. Young mailto:Raymond.Young&ca.com 2002-04 +# [Razmik_Abnous] Razmik Abnous mailto:abnous&documentum.com +# [RealNetworks] RealNetworks mailto:macplayer&real.com +# [RecoLive_S`arl] RecoLive S`arl mailto:recoinfo&recolive.com 2012-09-07 +# [Reed_Copsey_Jr] Reed Copsey Jr. mailto:reedc&ctech.com +# [Reed_Hedges] Reed Hedges mailto:reed&interreality.org +# [Rehan_Mahmood] Rehan Mahmood mailto:rehan&matrixmultimedia.co.uk 2009-03-18 +# [Reid_B_Ligon] Reid B. Ligon mailto:reid.ligon&pscnet.com +# [Reid_Ligon] Reid Ligon mailto:reid&connectrf.com +# [Reinhard_Doelz] Reinhard Doelz mailto:doelz&comp.bioz.unibas.ch +# [Reinhard_Wolf] Reinhard Wolf Adsoft AG mailto:adsoft&vtxmail.ch 2010-08-19 +# [Reinier_Post_and_Pau] Reinier Post and Paul mailto:freeciv&freeciv.org 2006-01 +# Zastoupil +# [Remi_Lefebvre] Remi Lefebvre mailto:remi&debian.org +# [Rene_Fontaine] Rene Fontaine mailto:fontaine_rene&emc.com +# [Rene_Jager] Rene Jager mailto:renej&frog.nl +# [Rene_Kurt] Rene Kurt mailto:rene.kurt&adasoft.ch 2005-08 +# [Reprise_Software_Inc] Reprise Software, mailto:matt&reprisesoftware.com 2012-11-06 +# [Research_Electronics_International] Research Electronics mailto:software&reiusa.net 2012-12-20 +# International +# [Resource_Allocation] Resource Allocation Team mailto:resources&littlehall.com 2010-09-27 +# [Retrospect_Inc] Retrospect, Inc. mailto:JG.Heithcock&retrospect.com 2012-02-02 +# [Reuven_Harrison] Reuven Harrison mailto:rnd_ana&checkpoint.com +# [Reuven_Harrison_2] Reuven Harrison mailto:rharrison&checkpoint.com 2003-01 +# [Reyk_Floeter] Reyk Floeter mailto:reyk&vantronix.net 2008-02-27 +# [Reza_Bagherian] Reza Bagherian mailto:bagherian_reza&emc.com 2007-07-19 +# [RGB_Spectrum] RGB Spectrum mailto:shershey&rgb.com 2011-10-10 +# [Riaz_Zolfonoon] Riaz Zolfonoon mailto:rzolfonoon&securitydynamics.com +# [Riccardo_Facchetti] Riccardo Facchetti mailto:riccardo&inetcosmos.org 2002-07 +# [Rich_Blomseth] Rich Blomseth mailto:rich&echelon.com +# [Rich_Kilmer] Rich Kilmer mailto:rich&infoether.com +# [Rich_Neswold] Rich Neswold mailto:neswold&fnal.gov 2007-02 +# [Rich_Thompson] Rich Thompson mailto:richt&watson.ibm.com +# [Richard_Alan_Johnson] Richard Alan Johnson mailto:raj&cisco.com +# [Richard_Bassous] Richard Bassous mailto:rbassous&yahoo.com +# [Richard_Corn] Richard Corn mailto:rac&racc.com +# [Richard_Dickins] Richard Dickins mailto:rad&specview.com 2002-02 +# [Richard_Farnham] Richard Farnham mailto:rfarnham&salient.com +# [Richard_Fife] Richard Fife mailto:richardf&lucasarts.com +# [Richard_Fleming] Richard Fleming mailto:richard&apoapsis.com 2002-08 +# [Richard_Foss] Richard Foss mailto:r.foss&ru.ac.za 2011-02-10 +# [Richard_Frith_Macdon] Richard Frith-Macdonald mailto:richard&brainstorm.co.uk +# [Richard_Harriss] Richard Harriss mailto:richard.harriss&halcyonsoftware.com 2005-05 +# [Richard_Harwell] Richard Harwell mailto:richardcharwell&eaton.com 2006-02 +# [Richard_Hodges] Richard Hodges mailto:rh&matriplex.com +# [Richard_Hodges_2] Richard Hodges mailto:rh&source.net +# [Richard_Hodges_3] Richard Hodges mailto:rhodges&prismiq.com 2003-01 +# [Richard_J_Williams] Richard J. Williams mailto:RJW1&trpo4.tr.unisys.com +# [Richard_Jones] Richard Jones +# [Richard_Jones_2] Richard Jones mailto:richard_jones1&symantec.com 2009-05-26 +# [Richard_Lamb] Richard Lamb mailto:rlambµsoft.com +# [Richard_McDonald] Richard McDonald mailto:ve3nvm&spamcop.net 2006-01 +# [Richard_Mills] Richard Mills mailto:ramills&us.ibm.com 2002-02 +# [Richard_Minner] Richard Minner http://xippix.com +# [Richard_Nabavi] Richard Nabavi mailto:nabaviµapl.co.uk 2006-02 +# [Richard_Olsen] Richard Olsen mailto:olsen.richard&yahoo.com +# [Richard_S_Conto] Richard S. Conto mailto:rsc&merit.edu +# [Richard_Snider] Richard Snider mailto:rsnider&sounds.com +# [Richard_Spartz] Richard Spartz mailto:rspartz&alliancetechnical.com +# [Richard_Steiger] Richard Steiger mailto:steiger&ensemblesoft.com +# [Richard_Thurman] Richard Thurman mailto:richt&fireking.com 2003-04 +# [Richard_Walters] Richard Walters mailto:walters&cs.ucdavis.edu +# [Richard_Warren] Richard Warren mailto:richard&cambridgepixel.com 2008-09-17 +# [Richard_de_Mornay] Richard de Mornay mailto:rdemornay&norton-lambert.com +# [Rick_Adams] Rick Adams mailto:rick&uunet.uu.net +# [Rick_Carlos] Rick Carlos mailto:rick&ticipa.csc.ti.com +# [Rick_LaBanca] Rick LaBanca mailto:rel&mesasys.com +# [Rick_Macchio] Rick Macchio mailto:rmacchio&juniper.net 2006-11 +# [Rick_Pugh] Rick Pugh mailto:rick&bilmillennium.com +# [Rick_Russell] Rick Russell mailto:rrussell&accessdata.com +# [Rick_Stefanik] Rick Stefanik mailto:r.stefanik&gatelinx.com 2002-05 +# [Rick_Troth] Rick Troth mailto:troth&rice.edu +# [Rick_Yazwinski] Rick Yazwinski mailto:ricky&solect.com +# [Rickard_Schoultz] Rickard Schoultz mailto:schoultz&sunet.se +# [Ricky_Sharp] Ricky Sharp mailto:rsharp&instantinteractive.com +# [Rieko_Asai] Rieko Asai mailto:asai&isl.mei.co.jp +# [Rik_Ditter] Rik Ditter mailto:managers&generationtechnologies.com 2006-02 +# [Rik_Faith] Rik Faith mailto:faith&cs.unc.edu +# [Rina_Nethaniel] Rina Nethaniel +# [Ritsuto_Sako] Ritsuto Sako mailto:sakou.ritsuto&canon.co.jp 2009-05-04 +# [Ritu_Bahl] Ritu Bahl mailto:ritubµsoft.com +# [Rituparna_Agrawal] Rituparna Agrawal mailto:riagrawa&cisco.com 2005-09 +# [Rob_Bradford] Rob Bradford mailto:rob&o-hand.com +# [Rob_Chandhok] Rob Chandhok mailto:chandhok&gnome.cs.cmu.edu +# [Rob_Chandhok_2] Rob Chandhok mailto:chandhok&within.com +# [Rob_Cosgrove] Rob Cosgrove mailto:rob&alice.net +# [Rob_Graber] Rob Graber mailto:r.graber&austinlane.com 2006-01 +# [Rob_Griffin] Rob Griffin mailto:quest_iana&oz.quest.com 2002-07 +# [Rob_Griffin_2] Rob Griffin mailto:rob.gri55in&gmail.com 2010-09-13 +# [Rob_Isaac] Rob Isaac mailto:rob&automagic.org 2003-07 +# [Rob_Janssen] Rob Janssen mailto:rob&sys3.pe1chl.ampr.org +# [Rob_Jonson] Rob Jonson mailto:rob&hobbyistsoftware.com +# [Rob_Juergens] Rob Juergens mailto:robj&vsi.com +# [Rob_Lanphier] Rob Lanphier mailto:robla&prognet.com +# [Rob_Lehew] Rob Lehew mailto:rlehewµsoft.com 2003-06 +# [Rob_Lockhart] Rob Lockhart mailto:rob.lockhart&mot.com +# [Rob_MacGregor] Rob MacGregor mailto:rob.macgregor&sympatico.ca +# [Rob_Minerick] Rob Minerick mailto:rob&vortimac.com 2004-11 +# [Rob_Newberry] Rob Newberry mailto:rnewberry&apple.com +# [Rob_Rix] Rob Rix DEVONtechnologies, mailto:rrix&devontechnologies.com 2011-10-18 +# [Rob_Robertson] Rob Robertson mailto:rob&gangrene.berkeley.edu +# [Rob_Scott] Rob Scott mailto:rscott&rs.com 2007-05 +# [Rob_Tao] Rob Tao SafeNet mailto:rtao&safenet-inc.com 2012-07-26 +# [Rob_Versluis] Rob Versluis mailto:r.j.versluis&rocrail.net 2011-05-23 +# [Rob_Ward] Rob Ward mailto:RobWardµsoft.com 2008-05-02 +# [Rob_Williams] Rob Williams mailto:rob.williamsµsoft.com 2009-02-17 +# [Robby_Simpson] Robby Simpson, PhD mailto:rsimpson&gmail.com +# [Robby_Walker] Robby Walker mailto:webmaster&cd-lab.com +# [Robert_A_Kukura] Robert A. Kukura mailto:kukura&apollo.hp.com +# [Robert_Armes] Robert Armes mailto:rarmes&axarte.com +# [Robert_Armington] Robert Armington mailto:rarmington&lipsinc.com +# [Robert_Baldwin] Robert Baldwin mailto:baldwin&plusfive.com 2004-11 +# [Robert_Ball] Robert Ball mailto:rob.ball&ge.com 2008-03-26 +# [Robert_Banfill] Robert Banfill mailto:robert&banfill.net 2003-04 +# [Robert_Bosch_GmbH] Robert Bosch GmbH mailto:Klaus.Warth&bosch.com 2012-07-17 +# [Robert_Boudrie] Robert Boudrie mailto:boudrie_rob&emc.com 2008-06-09 +# [Robert_Byrne] Robert Byrne mailto:robert.byrne&ie.abb.com 2006-09 +# [Robert_C_Henningsga] Robert C. Henningsgard mailto:rhenn_iana&laptwo.com +# [Robert_Ciochon] Robert Ciochon mailto:robert.ciochon&ca.com 2006-08 +# [Robert_D_Vincent] Robert D. Vincent mailto:bert&willowpond.com +# [Robert_Diamond] Robert Diamond mailto:rmd6502&gmail.com 2012-07-06 +# [Robert_Dye] Robert Dye mailto:rob&natinst.com +# [Robert_E_Johnson_II] Robert E. Johnson III mailto:johnson.robert&cimcor.com 2003-04 +# [Robert_E_Minnear] Robert E. Minnear mailto:minnear&ipsilon.com +# [Robert_Eden] Robert Eden mailto:reden&sieglertech.com 2003-03 +# [Robert_Ellman] Robert Ellman mailto:rellman&calicotech.com +# [Robert_Erl] Robert Erl mailto:roerl&web.de 2003-04 +# [Robert_Ford] Robert Ford mailto:robert&intrinsa.com +# [Robert_Frazier] Robert Frazier mailto:BobF&mrp3.com +# [Robert_Goodyear] Robert Goodyear mailto:robg&brand-up.com +# [Robert_Gordon] Robert Gordon mailto:rbg&austin.ibm.com +# [Robert_Grant] Robert Grant mailto:rob&grantedsw.com +# [Robert_Harvey] Robert Harvey mailto:robert&officetoolspro.com 2006-01 +# [Robert_Helton] Robert Helton mailto:bob_helton&medimage.com 2003-10 +# [Robert_Hodgson] Robert Hodgson mailto:rrh&gxt.com +# [Robert_Hodgson_2] Robert Hodgson mailto:robert¶tek.co.uk +# [Robert_Hufsky] Robert Hufsky mailto:rhufsky&csesys.co.at +# [Robert_J_Chansler] Robert J. Chansler mailto:robert.chansler&mcdata.com +# [Robert_J_Scott] Robert J. Scott mailto:rob&hpcmo.hpc.mil 2005-08 +# [Robert_John_Churchil] Robert John Churchill mailto:rjc&rjcdb.com 2006-01 +# [Robert_Kevin_Breton] Robert Kevin Breton mailto:BOBBRETON&hotmail.com +# [Robert_M_Mackowiak] Robert M. Mackowiak mailto:rmackowiak&quest.com 2002-02 +# [Robert_M_Moore] Robert M. Moore mailto:robert.moore&tunstall.co.uk +# [Robert_Marinelli] Robert Marinelli mailto:bob&sychron.com 2003-03 +# [Robert_Monat] Robert Monat mailto:jerand&jerand.com +# [Robert_Orr] Robert Orr mailto:rorr&teltone.com +# [Robert_Parks] Robert Parks mailto:robert_parks&filemaker.com 2010-05-12 +# [Robert_Porter] Robert Porter mailto:rob&gradecam.com 2009-09-24 +# [Robert_Reimiller] Robert Reimiller mailto:bob&certsoft.com +# [Robert_Ripberger] Robert Ripberger mailto:rip&lan-aces.com +# [Robert_Shaffer] Robert Shaffer mailto:bob.shaffer&micmod.com 2006-02 +# [Robert_Stabl] Robert Stabl mailto:stabl&informatik.uni-muenchen.de +# [Robert_Thomas] Robert Thomas mailto:BThomas&f.bbn.com +# [Robert_Ullmann] Robert Ullmann mailto:ariel&world.std.com +# [Robert_Ullmann_2] Robert Ullmann mailto:Robert_Ullmann/CAM/Lotus.LOTUS@crd.lotus.com +# [Robert_Vincent] Robert Vincent mailto:bert&mck.com +# [Robert_W_Hodges] Robert W Hodges mailto:iana&precdata.com 2005-01 +# [Robert_W_Scheifler] Robert W. Scheifler mailto:RWS&xx.lcs.mit.edu +# [Robert_Waters] Robert Waters mailto:bobtek&hotmail.com +# [Robert_Watson] Robert Watson mailto:robert&cyrus.watson.org +# [Robert_Wetzold] Robert Wetzold mailto:robert.wetzold&fibotrader.com 2006-01 +# [Robert_Wiebe] Robert Wiebe mailto:crw010&email.mot.com +# [Robert_Wright] Robert Wright, Founder Audio Precision Inc. mailto:ianaports&ap.com 2006-05 +# and Principal Engineer +# [Robert_Zuccherato] Robert Zuccherato mailto:robert.zuccherato&entrust.com +# [Roberto_De_Ioris] Roberto De Ioris mailto:info&unbit.it +# [Roberto_Garcia] Roberto Garcia mailto:garcia&apple.com +# [Roberto_Jorge_Dino] Roberto Jorge Dino mailto:roberto.dino&autotrac.com.br +# [Robin_Cover] Robin Cover OASIS KMIP Technical mailto:robin&oasis-open.org 2011-07-25 +# [Robin_Felix] Robin Felix mailto:zarkov_port&zarkov.com +# [Robin_Findley] Robin Findley mailto:rfindley&usa.net 2007-05 +# [Robin_Giese] Robin Giese mailto:rgiese&peddie.org +# [Robin_Johnston] Robin Johnston mailto:robinj&learningtree.com +# [Robin_Kar] Robin Kar mailto:Robin_Kar&ccm.hf.intel.com +# [Robin_Lewis] Robin Lewis mailto:robin.lewis&lanyon.com +# [Robin_Perkins] Robin Perkins mailto:robin.perkins&internode.on.net +# [Robin_Uyeshiro] Robin Uyeshiro mailto:robin_u&adtech-inc.com +# [Rod_Waltermann] Rod Waltermann mailto:walterma&us.lenovo.com 2006-02 +# [Rod_Ward] Rod Ward mailto:RWard&vaccmel1.telstra.com.au +# [Roderick_Mann] Roderick Mann mailto:rmann&latencyzero.com 2011-10-20 +# [Rodney_Iwashina] Rodney Iwashina mailto:rodney&cyclone.rfx.com +# [Rodrigo_Ormonde] Rodrigo Ormonde mailto:ormonde&aker.com.br +# [Rodrigo_Terra] Rodrigo Terra Lumis mailto:rterra&lumis.com.br 2011-10-24 +# [Roel_Harbers] Roel Harbers mailto:r.harbers&ict-control.com 2005-08 +# [Roger_Binns] Roger Binns mailto:rogerb&sco.com +# [Roger_Huebner] Roger Huebner mailto:iana-ports&netiq.com 2010-08-25 +# [Roger_Kay] Roger Kay mailto:r.kay&nz.dialogic.com +# [Roger_Klorese] Roger Klorese mailto:roger&xensource.com 2006-06 +# [Roger_Knobbe] Roger Knobbe mailto:RogerK&wonderware.com +# [Roger_Kumpf] Roger Kumpf mailto:kumpf&cup.hp.com +# [Roger_Lemberg] Roger Lemberg mailto:rlemberg&uswi.com +# [Roger_Matthias] Roger Matthias mailto:rogermatthias&yahoo.co.uk 2009-08-24 +# [Roger_Meli] Roger Meli mailto:rmmeli%25winvmd@vnet.ibm.com +# [Roger_Pantos] Roger Pantos mailto:rpantos&apple.com +# [Roger_Pao] Roger Pao mailto:rpao&corder-eng.com +# [Roger_Ward] Roger Ward mailto:roger.ward&ger911.com 2009-09-25 +# [Rogue_Amoeba] Rogue Amoeba mailto:earphoria&rogueamoeba.com +# [Rogue_Amoeba_2] Rogue Amoeba mailto:nicecast&rogueamoeba.com +# [Rohan_Story] Rohan Story mailto:rohan&aurema.com +# [Rohit_Garg] Rohit Garg mailto:rohit.garg&eng.sun.com +# [Rohit_Garg_2] Rohit Garg mailto:rohit&objectscape.com +# [Roland_Hedberg] Roland Hedberg mailto:Roland.Hedberg&umdac.umu.se +# [Roland_Hedberg_2] Roland Hedberg mailto:roland&catalogix.se 2005-08 +# [Roland_Rupp] Roland Rupp mailto:r.rupp&pilz.de 2006-11 +# [Roland_Schneider] Roland Schneider mailto:rsch&nicherms.com 2003-10 +# [Roland_van_der_Veen] Roland van der Veen mailto:rvdveen&aqualectra.nl 2010-06-17 +# [Roman_Kriis] Roman Kriis mailto:roman&previo.ee +# [Roman_Oliynyk] Roman Oliynyk mailto:romano&netinst.com +# [Roman_Oliynyk_2] Roman Oliynyk mailto:roman&netinst.com 2007-08-30 +# [Roman_Stepanek] Roman Stepanek SODATSW spol. s r.o. mailto:roman.stepanek&sodatsw.cz 2012-05-31 +# [Romeo_Kasanwidjojo] Romeo Kasanwidjojo mailto:romeoµcomgroup.com +# [Ron_Achin] Ron Achin mailto:RAchin&genscan.com +# [Ron_Barber] Ron Barber mailto:ron.barber&amx.com 2003-11 +# [Ron_Capwell] Ron Capwell mailto:ron&artifactsoftware.com 2002-06 +# [Ron_Ehli] Ron Ehli mailto:ron&itinternet.net +# [Ron_Folk] Ron Folk mailto:rfolkes&avl.com +# [Ron_Frederick] Ron Frederick mailto:frederick&parc.xerox.com +# [Ron_Herardian] Ron Herardian mailto:rherardi&gssnet.com 2002-03 +# [Ron_Kuris] Ron Kuris mailto:rk&unify.com 2006-05 +# [Ron_Lawson] Ron Lawson mailto:ronaldl&hpindacx.cup.hp.com +# [Ron_Lussier] Ron Lussier mailto:coyote&likeminds.com +# [Ron_Minnich] Ron Minnich mailto:rminnich&acl.lanl.gov +# [Ron_Minnich_2] Ron Minnich mailto:rminnich&sarnoff.com +# [Ron_Muellerschoen] Ron Muellerschoen mailto:rjm&cobra.jpl.nasa.gov +# [Ron_Passerini] Ron Passerini mailto:rpasserini&vmware.com 2010-04-27 +# [Ron_Steed] Ron Steed mailto:rsteed&cemaphore.com 2003-11 +# [Ron_Thornton] Ron Thornton mailto:thornton&qm7501.genrad.com +# [Ron_Vaughn] Ron Vaughn mailto:rv&intellistor.com +# [Ron_Zalkind] Ron Zalkind mailto:ron&aprigo.com 2010-05-28 +# [Ron_Zuckerman] Ron Zuckerman mailto:ron.zuckerman&lsi.com 2007-08-30 +# [Ronald_Jimmink] Ronald Jimmink mailto:Ronald.Jimmink&chipper.nl +# [Ronald_R_Ohmer] Ronald R. Ohmer mailto:rohmer&aisconsulting.net 2004-02 +# [Ronald_Snyder] Ronald Snyder mailto:pugaroni&sssnet.com 2006-03 +# [Ronen_Shaul] Ronen Shaul mailto:ronen&arnetsystems.com 2003-10 +# [Ronen_Vainish] Ronen Vainish mailto:ronen&digitalfountain.com +# [Ronen_Zoran] Ronen Zoran mailto:ronenz&cyber-ark.com +# [Rong_Yu] Rong Yu mailto:rongyuµsoft.com 2010-08-10 +# [Roni_Even] Roni Even mailto:roni_e&accord.co.il +# [Roni_Moshitzky] Roni Moshitzky mailto:rmosh&checkpoint.com +# [Ronnie_De_Giorgio] Ronnie De Giorgio Silverstring Ltd. mailto:rdegiorgio&silverstring.com 2011-09-15 +# [Ronnie_Sahlberg] Ronnie Sahlberg mailto:ronniesahlberg&gmail.com 2007-07-05 +# [Ronny_Bremer] Ronny Bremer mailto:rbremer&almanid.com +# [Rory_McClure] Rory McClure mailto:mcclurert&hotmail.com +# [Rory_McGuire] Rory McGuire mailto:rlpm&apple.com 2010-09-24 +# [Rory_McGuire_2] Rory McGuire mailto:rlpm&apple.com +# [Ross_Binkley] Ross Binkley Research Electronics mailto:software&reiusa.net 2012-12-20 +# [Ross_E_Greinke] Ross E. Greinke mailto:greinker&execpc.com +# [Ross_Swithenbank] Ross Swithenbank mailto:iana&ncode.co.uk 2006-09 +# [Ross_Williams] Ross Williams mailto:ross&rocksoft.com +# [Roustem_Karimov] Roustem Karimov mailto:roustem&agilewebsolutions.com +# [Rowan_Daniell] Rowan Daniell mailto:rowan&cognito.co.nz +# [Roy_Chastain] Roy Chastain mailto:roy&kmsys.com +# [Roy_Davies] Roy Davies mailto:rdavies&daq.net 2005-08 +# [Roy_Reapor] Roy Reapor mailto:rreapor&wyatt.com +# [Royal_King] Royal King mailto:royal.king&compaq.com 2002-02 +# [Ruben_Beltran] Ruben Beltran del Rio www.nsovocal.com mailto:ben&nsovocal.com 2011-10-18 +# [Rudi_Chiarito] Rudi Chiarito mailto:nutello&sweetness.com +# [Rudi_Martin] Rudi Martin mailto:movies::martin%22@movies.enet.dec.com +# [Rudi_Martin_2] Rudi Martin mailto:Rudi.Martin&edo.mts.dec.com +# [Rudi_Visser] Rudi Visser mailto:rudi.visser&ljund.eu 2011-07-07 +# [Rudolf_Cardinal] Rudolf Cardinal mailto:rudolf&pobox.com 2002-02 +# [Rudolph_Balaz] Rudolph Balaz mailto:rudolphbµsoft.com +# [Ruediger_Wald] Ruediger Wald mailto:wald&ez-darmstadt.telekom.de +# [Rumiko_Kikuta] Rumiko Kikuta mailto:kiku&nd.net.fujitsu.co.jp +# [Russ_Allbery] Russ Allbery mailto:rra&stanford.edu 2007-08-30 +# [Russ_Ferriday] Russ Ferriday mailto:russf&topia.com +# [Russ_Olivant] Russ Olivant mailto:russ.olivant&metrica.co.uk +# [Russ_Thrasher] Russ Thrasher mailto:Russell.Thrasher&veritas.com +# [Russell_Crook] Russell Crook mailto:rmc&sni.ca +# [Russell_Kroll] Russell Kroll mailto:nut-iana&exploits.org 2002-05 +# [Russell_M_Taylor_II] Russell M. Taylor II mailto:taylor&cs.unc.edu 2003-10 +# [Russell_P_Holsclaw] Russell P. Holsclaw Fast Data Technology mailto:rholsclaw&fastdatatech.com 2006-03 +# [Russell_Thrasher] Russell Thrasher mailto:rthrashe&veritas.com +# [Ruth_Slater] Ruth Slater mailto:ruth.slater&ideagen.co.uk +# [Ruwan_Linton] Ruwan Linton mailto:ruwan&wso2.com 2008-08-20 +# [Rx_Networks_Inc] Rx Networks Inc. mailto:ddavies&rxnetworks.com 2013-01-24 +# [Ryan_Bolz] Ryan Bolz mailto:ryanboµsoft.com +# [Ryan_Columbus] Ryan Columbus mailto:IANA_Contact&agilent.com 2002-10 +# [Ryan_Finnie] Ryan Finnie mailto:ryan&finnie.org 2010-10-06 +# [Ryan_Mack] Ryan Mack mailto:rmackµsoft.com 2009-04-29 +# [Ryan_Melville] Ryan Melville mailto:ryan_melville&soniqcast.com 2004-01 +# [Ryan_Rubley] Ryan Rubley mailto:root&ark.dyn.ml.org +# [Ryan_Smith] Ryan Smith mailto:ryans&nstor.com 2006-07 +# [Ryan_Werber] Ryan Werber mailto:ryan&ncxti.com 2006-06 +# [Ryoichi_Shinohara] Ryoichi Shinohara mailto:shinohara&vnet.ibm.com +# [Ryozo_Furutani] Ryozo Furutani mailto:furutani&np.lps.cs.fujitsu.co.jp +# [Ryuichi_Horie] Ryuichi Horie mailto:horie&spad.sysrap.cs.fujitsu.co.jp +# [Ryuichi_Suzuki] Ryuichi Suzuki mailto:SCI00376&niftyserve.or.jp +# [Ryusuke_Okuhara] Ryusuke Okuhara Canon Inc. mailto:okuhara.ryuusuke&canon.co.jp 2012-06-08 +# [Samsung] Samsung mailto:rcn95&samsung.com 2013-01-03 +# SEGGER +# [SEGGER] Microcontroller GmbH mailto:info&segger.com 2009-01-16 +# & Co. KG +# [SEIKO_EPSON] SEIKO EPSON mailto:APD.admin&exc.epson.co.jp 2006-06 +# [SEIKO_EPSON_2] SEIKO EPSON mailto:Ishida.Hitoshi&exc.epson.co.jp +# [SEIKO_EPSON_3] SEIKO EPSON mailto:Sato.Minoru3&exc.epson.co.jp 2002-10 +# [SEIKO_EPSON_4] SEIKO EPSON mailto:ProjectorSoft&exc.epson.co.jp 2008-11-17 +# [SGI] SGI mailto:jsygulla&sgi.com 2013-01-07 +# [SMA_Solar_Techology] SMA Solar Techology AG mailto:thomas.weber&sma.de 2011-03-08 +# [SONET_Internetworkin] SONET Internetworking mailto:bwarijsman&lucent.com +# Forum (SIF) +# [SYSTEMS_MANAGER] SYSTEMS MANAGER mailto:systems-manager&scientia.com +# [Saar_Wilf] Saar Wilf mailto:saar&trivnet.com +# [Sabri_Berisha] Sabri Berisha mailto:sabri&cluecentral.net 2003-06 +# [Sabu_Das] Sabu Das mailto:sabud&zicomsecure.com 2003-06 +# [Sachin_Desai] Sachin Desai mailto:sachin&clairmail.com +# [Sachin_Sheth] Sachin Sheth Microsoft Corporation mailto:sachinsµsoft.com 2012-06-27 +# [SafeNet] SafeNet mailto:rtao&safenet-inc.com 2012-07-26 +# [Sailalong_Software] Sailalong Software mailto:CustomerService&sailalong.com +# [Salvo_Nassisi] Salvo Nassisi mailto:sdtech&tin.it +# [Sam_Borman] Sam Borman mailto:sam_borman&uk.ibm.com +# [Sam_Bretheim] Sam Bretheim mailto:info&opensigint.org 2009-01-08 +# [Sam_Carleton] Sam Carleton mailto:scarleton&miltonstreet.com +# [Sam_Carleton_2] Sam Carleton AccuMed Services mailto:scarleton&accu-med.com 2011-10-20 +# [Sam_Osa] Sam Osa mailto:pristine&mailcity.com +# [Sam_Vaughan] Sam Vaughan mailto:samv&blackmagic-design.com 2011-03-01 +# [Sameer_Deokule] Sameer Deokule mailto:sameer.deokule&veritas.com 2002-03 +# [Samppa_Lahtinen] Samppa Lahtinen mailto:samppa.lahtinen&motivesys.com 2004-06 +# [Samuel_Bercovici] Samuel Bercovici mailto:samuelb&radware.com 2011-08-05 +# [Samuel_Jero] Samuel Jero mailto:sj323707&ohio.edu 2012-11-14 +# [Samuele_Sequi] Samuele Sequi mailto:samuelesequi&defcom.it 2004-02 +# [Sanchaita_Datta] Sanchaita Datta mailto:sdatta&ragula.com +# [Sancho_Lerena] Sancho Lerena mailto:slerena&artica.es 2009-06-02 +# [Sandeep_K_Singhal] Sandeep K. Singhal mailto:singhal&cs.stanford.edu +# [Sandeep_Singhal] Sandeep Singhal mailto:sandeep&reefedge.com +# [Sandra_Frulloni] Sandra Frulloni mailto:frulloni.amtec&interbusiness.it +# [Sandra_Vargas] Sandra Vargas mailto:Sandramaµsoft.com 2003-03 +# [Sandy_Kronenberg] Sandy Kronenberg mailto:sandy&netarx.com 2008-04-03 +# [Sanford_Selznick] Sanford Selznick mailto:sanford-srvtype&selznick.com +# [Sanjay_Parekh] Sanjay Parekh mailto:spot&digitalenvoy.net +# [Sanjay_Radia] Sanjay Radia mailto:srradia&kasumbi.eng.sun.com +# [Santa_Dasu] Santa Dasu mailto:Santa_Dasu&quickeagle.com +# [Santorini_LLC] Santorini, LLC mailto:cameron&santorinillc.com 2011-10-25 +# [Sarah_Allen] Sarah Allen mailto:sallen¯omedia.com +# [Sarah_Thompson] Sarah Thompson mailto:sarah&telergy.com +# [Sarene_Caiazza] Sarene Caiazza mailto:scaiazza&proquesys.com 2010-04-27 +# [Sascha_Kuemmel] Sascha Kuemmel mailto:kuemmel&vidsoft.de +# [Satoshi_Matsumoto] Satoshi Matsumoto mailto:satoshi&artman21.co.jp +# [Saugata_Guha] Saugata Guha mailto:sguha&veritas.com 2004-05 +# [Scott_A_Kramer] Scott A. Kramer mailto:sk&tleilaxu.sde.hp.com +# [Scott_Anderson] Scott Anderson mailto:sanderso&workingmachines.com +# [Scott_Bellew] Scott Bellew mailto:smb&cs.purdue.edu +# [Scott_Blachowicz] Scott Blachowicz mailto:scott&statsci.com +# [Scott_Dale] Scott Dale mailto:scott&replicase.com +# [Scott_Dale_2] Scott Dale mailto:scott&tioga.com +# [Scott_Dawson] Scott Dawson mailto:sdawson&arbor.net 2011-07-01 +# [Scott_Engel] Scott Engel mailto:ScottX_Engel&ccm.jf.intel.com +# [Scott_Godlew] Scott Godlew mailto:Scott&godlew.com +# [Scott_Grau] Scott Grau mailto:sgrau&stonefalls.com +# [Scott_Griepentrog] Scott Griepentrog mailto:griepentrogs&atlinks.com 2002-10 +# [Scott_Guthery] Scott Guthery mailto:sguthery&mobile-mind.com 2002-05 +# [Scott_Guthery_2] Scott Guthery mailto:sguthery&hidcorp.com 2008-08-25 +# [Scott_Halberg] Scott Halberg mailto:eng&calypsosystems.com 2009-06-02 +# [Scott_Harris] Scott Harris mailto:Scott&xramp.com 2003-02 +# [Scott_Herscher] Scott Herscher mailto:scott&porchdogsoft.com 2005-08 +# [Scott_Herscher_2] Scott Herscher mailto:scott&strixsystems.com +# [Scott_Hollenbeck] Scott Hollenbeck mailto:shollenb&netsol.com +# [Scott_Howard] Scott Howard mailto:scott&byressecurity.com 2009-10-13 +# [Scott_Jann] Scott Jann Tightrope Media mailto:sjann&trms.com 2011-10-17 +# Systems, Inc. +# [Scott_Kramer] Scott Kramer mailto:scottk&truebluesoftware.com +# [Scott_Levin] Scott Levin mailto:scott.levin&hp.com 2009-03-19 +# [Scott_Libert] Scott Libert mailto:scott.libert&thomson.net 2008-01-29 +# [Scott_Mager] Scott Mager mailto:Scott.Mager&cerner.com 2006-10 +# [Scott_Miller] Scott Miller mailto:scott&opentrac.org 2003-08 +# [Scott_Narveson] Scott Narveson mailto:sjn&cray.com +# [Scott_Petrack] Scott Petrack mailto:Scott_Petrack&vocaltec.com +# [Scott_Powell] Scott Powell mailto:spowell&openhorizon.com +# [Scott_Shaffer] Scott Shaffer mailto:scott.shaffer&hp.com +# [Scott_Shattuck] Scott Shattuck mailto:ss&dbsa.com +# [Scott_Southard] Scott Southard mailto:iana-ports&netiq.com 2010-08-25 +# [Scott_St_Clair] Scott St. Clair mailto:stclair&ntc.adaptec.com +# [Scott_Tarone] Scott Tarone mailto:starone&proactivethought.com 2003-04 +# [Scott_Tooker] Scott Tooker mailto:tooker&apple.com +# [SCOTTY_Group_SE] SCOTTY Group SE mailto:p.verbeek&scottygroup.com 2013-01-14 +# [Sean_Adams] Sean Adams mailto:sean&slimdevices.com 2002-05 +# [Sean_D_Solle] Sean D. Solle VSN International mailto:sean&vsni.co.uk 2011-09-28 +# [Sean_MacGuire] Sean MacGuire mailto:sean&maclawran.ca +# [Sean_Ni] Sean Ni mailto:seanni&digitalinstinct.com.tw 2006-02 +# [Seb_Ibis] Seb Ibis mailto:seb_ibis&pkworld.com +# [Sebastian_Kiesel] Sebastian Kiesel mailto:kiesel&ikr.uni-stuttgart.de 2006-01 +# [Sebastien_Bury] Sebastien Bury WAP Forum mailto:sebastien.bury&art.alcatel.fr +# [Sebastien_Hinderer] Sebastien Hinderer mailto:Sebastien.Hinderer&ens-lyon.org 2006-03 +# [Sebastien_Lambla] Sebastien Lambla mailto:lambla&bouygtel.com +# [Seiko_Epson] Seiko Epson mailto:Ishida.Hitoshi&exc.epson.co.jp +# [Semantix] Semantix mailto:xsSupport&semantix.com +# [Senthil_Ponnuswamy] Senthil Ponnuswamy mailto:senthil&veritas.com +# [Serge_DE_LUCA] Serge DE LUCA mailto:sdeluca&lacie.com +# [Serge_Vacquier] Serge Vacquier mailto:vacquier&systar.fr 2009-05-20 +# [Sergei_Ivanov] Sergei Ivanov mailto:sergeiµsoft.com 2003-10 +# [Sergei_Zjaikin] Sergei Zjaikin mailto:serge&previo.ee 2002-02 +# [Sergey_Bolshedvorsky] Sergey Bolshedvorsky Smart Apps LTD mailto:info&smartapps.co 2011-10-11 +# [Sergey_Burnevsky] Sergey Burnevsky mailto:sergey.burnevsky&nokia.com 2006-08 +# [Sergio_Heker] Sergio Heker mailto:heker&jvncc.csc.org +# [Sergio_Luis] Sergio Luis Dias Lima mailto:slgramacho&gmail.com 2012-02-27 +# Gramacho +# [Serguei_Osokine] Serguei Osokine mailto:osokin¶graph.com +# [Serguei_Tevs] Serguei Tevs mailto:STevs&ivecon.com 2002-02 +# [Service_Desk_Product] Service Desk Product mailto:info&hp.com 2006-05 +# [Shahriar_Pourazin] Shahriar Pourazin mailto:pourazin&sepehrs.com 2008-12-02 +# [Shai_Herzog] Shai Herzog mailto:herzog&iphighway.com +# [Shailesh_S_Bavadeka] Shailesh S. Bavadekar mailto:shailesh.bavadekar&sun.com 2002-04 +# [Shams_Naqi] Shams Naqi mailto:SSNAQVI&aol.com +# [Shane_Dick] Shane Dick mailto:shane.dick&amx.com 2005-08 +# [Shane_McRoberts] Shane McRoberts mailto:mcroberts&miteksys.com +# [Shane_O_Donnell] Shane O'Donnell mailto:shane&opennms.org +# [Shane_Roberts] Shane Roberts mailto:shane&shaneroberts.com 2002-07 +# [Shankar_Prasad] Shankar Prasad mailto:Shankar.Prasad&honeywell.com +# [Shankar_Prasad_2] Shankar Prasad mailto:shankar.prasad&honeywell.com +# [Shannon_Yeh] Shannon Yeh mailto:yeh&netix.com +# [Shantonu_Sen] Shantonu Sen mailto:ssen&apple.com +# [Shaper_Automation] Shaper Automation mailto:ports&shaperai.com 2012-06-22 +# [Shaun_Byrne] Shaun Byrne mailto:s_byrne&tunstall.co.uk 2009-08-18 +# [Shaun_Wexler] Shaun Wexler mailto:dev&macfoh.com +# [Shawn_Casey] Shawn Casey mailto:Shawn.Casey&matrixone.com +# [Sheila_Devins] Sheila Devins mailto:sheila_devins&vnet.ibm.com +# [Shekar_Pasumarthi] Shekar Pasumarthi mailto:shekarp&firstfloor.com +# [Shifted_Current] Shifted Current LLC mailto:ask&shiftedcurrent.com 2012-09-11 +# [Shigenaka_Kanemitsu] Shigenaka Kanemitsu mailto:Shigenaka_Kanemitsu&ypd.kyocera.co.jp +# [Shingo_Kimura] Shingo Kimura mailto:Shingo.Kimura&jp.sony.com 2005-08 +# [Shinji_Yamanaka] Shinji Yamanaka mailto:syamanaka&jci.co.jp +# [Shinya_Abe] Shinya Abe mailto:abeabe&pfu.co.jp +# [Shiro_Tamoto] Shiro Tamoto mailto:tamoto.shiro&jp.panasonic.com 2003-10 +# [Shivakumar_S_Govind] Shivakumar S. mailto:shivak&eng.sun.com +# Govindarajapuram +# [Shivaun_Albright] Shivaun Albright mailto:shivaun_albright&hp.com 2002-04 +# [ShofarNexus] ShofarNexus.com mailto:John.Kozlowski&ShofarNexus.com 2012-02-20 +# [Shoichi_Tachibana] Shoichi Tachibana mailto:tatibana&yk.fujitsu.co.jp +# [Shree_Murthy] Shree Murthy mailto:shree&cisco.com 2009-10-29 +# [Shu_Wei_Tan] Shu-Wei Tan mailto:stan&omnicomtech.com 2003-03 +# [Shue_Lin_Kuo] Shue-Lin Kuo mailto:shuelin&mdk.sanjose.vlsi.com +# [Shuji_Okubo] Shuji Okubo mailto:okubo&yk.fujitsu.co.jp +# [Shuvayu_Kanjilal] Shuvayu Kanjilal +# [Si_Becker] Si Becker mailto:71362.22&compuserve.com +# [Sierra_Photonics_Inc] Sierra Photonics, mailto:support&sierraphotonics.com 2011-10-20 +# [Siew_Sim] Siew Sim mailto:ssim&asempra.com 2005-08 +# [Sigfus_Magnusson] Sigfus Magnusson mailto:sigfusm&menandmice.com +# [Sigma_Designs_Inc] Sigma Designs, Inc. mailto:anders_brandt&sigmadesigns.com 2011-10-03 +# [Sigma_Designs_Inc_2] Sigma Designs, Inc. mailto:pr&sdesigns.com 2012-11-08 +# [Signwave_Networking] Signwave Networking mailto:mail&signwave.co.uk +# Development Team +# [Silvano_Maffeis] Silvano Maffeis mailto:maffeis&softwired.ch +# [Silvano_Maffeis_2] Silvano Maffeis mailto:maffeis&acm.org 2008-01-16 +# [Silverstring_Ltd] Silverstring Ltd. mailto:rdegiorgio&silverstring.com 2011-09-15 +# [Simon_Baldwin] Simon Baldwin mailto:simonb&sco.com +# [Simon_Barber] Simon Barber mailto:simon.barber&parc.com 2009-09-29 +# [Simon_Butcher] Simon Butcher mailto:simonb&alien.net.au +# [Simon_Chinnick] Simon Chinnick mailto:support&cogsys.co.uk +# [Simon_Edwards] Simon Edwards +# [Simon_Ensslen] Simon Ensslen Oblamatik AG mailto:s.ensslen&oblamatik.ch 2012-09-05 +# [Simon_Haertel] Simon Haertel mailto:simonhaertel&web.de +# [Simon_Hovell] Simon Hovell mailto:simonh&brandcomms.com +# [Simon_J_Gerraty] Simon J. Gerraty mailto:sjg&quick.com.au +# [Simon_Jolly] Simon Jolly mailto:simon.jolly&origin-data.co.uk 2002-07 +# [Simon_Middleton] Simon Middleton ANT Software Limited mailto:simon.middleton&antplc.com 2012-12-06 +# [Simon_Newton] Simon Newton mailto:simon&nomis52.net 2012-06-01 +# [Simon_P_Jackson] Simon P Jackson mailto:jacko&kring.co.uk +# [Simon_Parker] Simon Parker mailto:simon.j.parker&philips.com +# [Simon_Phipps] Simon Phipps mailto:sphipps&vnet.ibm.com +# [Simon_Robillard] Simon Robillard mailto:RobillardS&actresearch.com +# [Simon_Skaria] Simon Skaria mailto:simonskµsoft.com 2006-01 +# [Simon_Wunderlich] Simon Wunderlich mailto:siwu&hrz.tu-chemnitz.de 2007-08-30 +# [Simone_Molendini] Simone Molendini mailto:simone.molendini&unile.it 2003-11 +# [Simson_L_Garfinkel] Simson L. Garfinkel mailto:simsong&next.cambridge.ma.us +# [Sinnadurai_Dharshan] Sinnadurai Dharshan mailto:sinnadurai.dharshan&ni.com 2002-07 +# [Siva_Poobalasingam] Siva Poobalasingam mailto:siva&towersoft.com.au 2006-03 +# [Siva_Poobalasingam_2] Siva Poobalasingam mailto:Siva.Poobalasingam&towersoft.com.au 2007-02 +# [Skip_Booth] Skip Booth mailto:sbooth&vnet.ibm.com +# [Skip_Levens] Skip Levens mailto:skip&activestoragelabs.com +# [Sky_Schulz] Sky Schulz mailto:sky&edgeofreality.com 2011-05-09 +# [Slava_Monich] Slava Monich mailto:Slava.Monich&nokia.com 2003-01 +# [Slawomir_Krzesinski] Slawomir Krzesinski mailto:slavek&optiwave.com +# [Smart_Apps_LTD] Smart Apps LTD mailto:info&smartapps.co 2011-10-11 +# [Smith_Micro] Smith Micro mailto:cs&smithmicro.com +# [Smith_Micro_Software_Inc] Smith Micro Software, mailto:dsperling&smithmicro.com 2011-10-10 +# [SODATSW_spol] SODATSW spol. s r.o. mailto:info&sodatsw.cz 2012-05-31 +# [SOFTPRO_GmbH] SOFTPRO GmbH mailto:Dirk.Claussen&softpro.de 2012-07-19 +# [softthere_com] softthere.com mailto:technical&softthere.com 2011-10-17 +# [Software_Horizons_In] Software Horizons mailto:oi2000&shorizons.com +# [Software_LI-COR_Biosciences] Software LI-COR mailto:kevin.ediger&licor.com 2011-10-18 +# [Song_Jian] Song Jian mailto:info&vatata.com 2008-09-15 +# [Songlin_Ren] Songlin Ren mailto:ren&veritas.com +# [Songwon_Chi] Songwon Chi mailto:swchi&daou.co.kr +# [Sonzea] Sonzea, LLC mailto:support&sonzea.com +# [Sophie_Deng] Sophie Deng mailto:Sophie.Deng&eng.sun.com +# [Soeren_Havemester] Soeren Havemester mailto:reshave&gmail.com 2013-02-18 +# [Soren_Weber] Soren Weber mailto:sw&ditec-gmbh.de +# [Soumitra_Sarkar] Soumitra Sarkar mailto:sarkar&vnet.ibm.com +# [Spencer_Teran] Spencer Teran mailto:steran&dotalot.com 2005-08 +# [Spencer_Teran_2] Spencer Teran mailto:steran&ars.com 2004-11 +# [Sphera_Software] Sphera Software mailto:contact&sphera-soft.com +# [SpinetiX_S_A] SpinetiX S.A. mailto:Diego.SantaCruz&spinetix.com 2011-10-18 +# [Squadra_Technologies] Squadra Technologies mailto:anthony&squadratechnologies.com 2012-03-14 +# [Square_Connect_Inc] Square Connect, Inc. mailto:mat&squareconnect.com 2011-10-07 +# [Squee_Application_Development] Squee! Application mailto:tristan&squee.co 2011-07-19 +# [Srdjan_Holovac] Srdjan Holovac mailto:srdjan&empress.com +# [Sreenivas_Bagalkote] Sreenivas Bagalkote mailto:sreenib&lsil.com 2002-08 +# [Sreeram_Duvvuru] Sreeram Duvvuru mailto:sduv&sfbay.sun.com 2002-04 +# [Sri_Subramaniam] Sri Subramaniam mailto:sri&radiance.com +# [Sridhar_Krishnamurth] Sridhar Krishnamurthy mailto:Sridhar_Krishnamurthy&intuit.com 2008-02-15 +# [Srinivas_N_Mogalapa] Srinivas N. Mogalapalli mailto:srinivas&proxim.com +# [Srinivas_Reddy] Srinivas Reddy mailto:sreddy&vitalsigns.com +# [Srinivasa_Nayudu] Srinivasa Nayudu mailto:sn156n&att.com 2009-07-06 +# [Stacy_Kenworthy] Stacy Kenworthy mailto:skenworthy&applianceware.com +# [Stanislaw_Skowronek] Stanislaw Skowronek mailto:thesis&elementary.pl +# [Stanley_Knutson] Stanley Knutson mailto:Stanley.Knutson&ktiworld.com +# [Stefan_Auweiler] Stefan Auweiler mailto:stefan.auweiler&saitc.de 2009-11-16 +# [Stefan_Daun] Stefan Daun mailto:secretariat&cip4.org +# [Stefan_Ekenberg] Stefan Ekenberg mailto:stefan.ekenberg&stericsson.com +# [Stefan_Eriksson] Stefan Eriksson mailto:contact-iana&axis.com +# [Stefan_Hochuli] Stefan Hochuli mailto:iana.org&dunes.ch 2003-12 +# [Stefan_Pantke] Stefan Pantke mailto:sales&turingart.com +# [Stefan_Siebert] Stefan Siebert mailto:ssiebert&dcs.de +# [Stefan_Winkel] Stefan Winkel mailto:stefan&veritas.com 2004-04 +# [Steffen_Schilke] Steffen Schilke +# [Stein_Roger_Skaflott] Stein Roger Skaflotten mailto:skaflotten&gmail.com 2011-07-06 +# [Sten_H_Danielsen] Sten H. Danielsen mailto:shd&kopek.net 2002-07 +# [Stepan_Riha] Stepan Riha mailto:stepan.riha&hand.com +# [Stepehen_Campbell] Stepehen Campbell mailto:campbell&uniprise.com +# [Stephane_Clavel] Stephane Clavel Atomix Productions mailto:stephane.clavel&atomixproductions.com 2011-10-12 +# [Stephane_Beaulieu] Stephane Beaulieu mailto:stephane&cisco.com 2002-02 +# [Stephane_Bourque] Stephane Bourque mailto:stephb&incognito.com +# [Stephane_Bourque_2] Stephane Bourque mailto:sbourque&arilia.com +# [Stephane_MONS] Stephane MONS mailto:stephane.mons&free.fr 2005-09 +# [Stephane_Touizer] Stephane Touizer mailto:touizerµcaptrade.com 2006-05 +# [Stephen_Aikins] Stephen Aikins mailto:stephen.aikins&embarcadero.com +# [Stephen_Casner] Stephen Casner mailto:casner&precpt.com +# [Stephen_Casner_2] Stephen Casner mailto:casner&precept.com +# [Stephen_Cipolli] Stephen Cipolli mailto:scipolli&radvision.com +# [Stephen_Dunne] Stephen Dunne mailto:sdun&isma.co.uk +# [Stephen_Egbert] Stephen Egbert mailto:egbert&ra.timeplex.com +# [Stephen_Gildea] Stephen Gildea mailto:gildea&lcs.mit.edu +# [Stephen_Hanna] Stephen Hanna mailto:hanna&world.std.com +# [Stephen_Hanna_2] Stephen Hanna mailto:steve.hanna&sun.com +# [Stephen_Harrison] Stephen Harrison mailto:sharrison&nimbusdb.com 2011-01-24 +# [Stephen_Hemminger] Stephen Hemminger mailto:shemminger&passedge.com +# [Stephen_Johnson] Stephen Johnson mailto:sjohnson&mindspring.com +# [Stephen_LaValley] Stephen LaValley mailto:lavalley&lucent.com +# [Stephen_M_Webb] Stephen M. Webb mailto:stephenw&xandros.com 2007-05 +# [Stephen_McCrea] Stephen McCrea mailto:smccrea&etlelectronique.com 2002-03 +# [Stephen_Misel] Stephen Misel mailto:steve.misel&interpath.net +# [Stephen_Misel_2] Stephen Misel mailto:steve&satelnet.org +# [Stephen_R_Whiteley] Stephen R. Whiteley mailto:stevew&wrcad.com 2010-10-07 +# [Stephen_Reed] Stephen Reed mailto:reed&cyc.com 2003-01 +# [Stephen_Reed_2] Stephen Reed mailto:stephenreed&yahoo.com 2010-06-17 +# [Stephen_Reid] Stephen Reid mailto:sreid&ti.com +# [Stephen_Tsun] Stephen Tsun mailto:stsun&jetstream.com +# [Stephen_Tsun_2] Stephen Tsun mailto:stsun&calient.net 2002-02 +# [Stephan_van_Tienen] Stephan van Tienen OCA Alliance mailto:stephan.vantienen&bosch.com 2012-10-11 +# [Steve_Bannister] Steve Bannister mailto:sbannister&stratacache.com +# [Steve_Barton] Steve Barton mailto:steveb&pacom.com 2002-03 +# [Steve_Beigel] Steve Beigel mailto:ublueb!steve&uunet.uu.net +# [Steve_Benoit] Steve Benoit mailto:sbenoi01&eng.eds.com +# [Steve_Britt] Steve Britt mailto:steve_britt&hp.com +# [Steve_Casner] Steve Casner mailto:Casner&isi.edu +# [Steve_Davis] Steve Davis mailto:sdavis&optum-inc.com +# [Steve_Dekorte] Steve Dekorte mailto:steve&dekorte.com +# [Steve_Dellutri] Steve Dellutri +# [Steve_Dellutri_2] Steve Dellutri mailto:sdellutri&cosmocom.com 2006-07 +# [Steve_Dobson] Steve Dobson mailto:sdobson&allstor.com +# [Steve_Dorner] Steve Dorner mailto:s-dorner&uiuc.edu +# [Steve_Favor] Steve Favor mailto:sfavor&tigger.intecom.com +# [Steve_Glassman] Steve Glassman mailto:steveg&pa.dec.com +# [Steve_Gums] Steve Gums Tenir Software mailto:sgums&tenirsoftware.com 2011-10-27 +# [Steve_Halverson] Steve Halverson mailto:shalver&us.ibm.com +# [Steve_Hay] Steve Hay mailto:SteveHay&planit.com 2008-06-13 +# [Steve_Hershey] Steve Hershey RGB Spectrum mailto:shershey&rgb.com 2011-10-10 +# [Steve_Husak] Steve Husak mailto:portmaster&cruisetech.com +# [Steve_Kellogg] Steve Kellogg mailto:stevekellogg&mezzogmr.com +# [Steve_Kille] Steve Kille mailto:S.Kille&isode.com +# [Steve_Kirsch] Steve Kirsch mailto:stk&infoseek.com +# [Steve_Kneizys] Steve Kneizys mailto:skneizys&erpdata.com 2006-11 +# [Steve_Laitinen] Steve Laitinen mailto:laitinen&brutus.aa.ab.com +# [Steve_McKinty] Steve McKinty mailto:steve.mckinty&sun.com 2005-11 +# [Steve_Meyer_Sr] Steve Meyer Sr. mailto:stevem&avanti-tech.com 2007-02 +# [Steve_Olson] Steve Olson mailto:solson&cognex.com +# [Steve_Polishinski] Steve Polishinski mailto:spolishinski&etcconnect.com +# [Steve_Qi] Steve Qi mailto:steve.qi&dyn-site.com 2003-11 +# [Steve_Quintana] Steve Quintana mailto:steve&icgresearch.com +# [Steve_Ravida] Steve Ravida mailto:steve.ravida&nebulaholdings.com +# [Steve_Read] Steve Read mailto:sread&ridgeway-sys.com +# [Steve_Ryckman] Steve Ryckman mailto:iana&simsware.com +# [Steve_Scherf] Steve Scherf mailto:steve&moonsoft.com +# [Steve_Spataro] Steve Spataro mailto:spataro_steve&emc.com +# [Steve_Spitzer] Steve Spitzer Electronics mailto:sspitzer&nmea.org 2011-09-15 +# [Steve_Splonskowski] Steve Splonskowski mailto:splons&splons.com +# [Steve_Sweeney] Steve Sweeney mailto:Steven_Sweeney&3mail.3com.com +# [Steve_T_Chiang] Steve T. Chiang mailto:schiang&cisco.com +# [Steve_Tuecke] Steve Tuecke mailto:tuecke&mcs.anl.gov +# [Steve_Van_Duser] Steve Van Duser mailto:steve.vanduser&bestpower.gensig.com +# [Steve_Zellers] Steve Zellers mailto:zellers&apple.com +# [Steven_B_Cliff] Steven B. Cliff mailto:scliff&remotec-andros.com 2003-07 +# The University +# [Steven_Emmerson] Steven Emmerson Corporation for mailto:emmerson&ucar.edu 2012-05-07 +# Atmospheric Research +# [Steven_Emmerson2] Steven Emmerson Corporation for mailto:support-ldm&unidata.ucar.edu 2012-05-18 +# [Steven_Fields] Steven Fields mailto:sfields&identix.com 2002-02 +# [Steven_Frare] Steven Frare mailto:stevefr&mosaix.com +# [Steven_G_Loughner] Steven G. Loughner mailto:stevengloughner&eaton.com 2007-03 +# [Steven_Gerhardt] Steven Gerhardt mailto:sgerhardt&ixiononline.com 2004-02 +# [Steven_Grigsby] Steven Grigsby mailto:sgrigsby&austin.eent.com +# [Steven_Holtsberg] Steven Holtsberg mailto:steveh&continuus.com +# [Steven_Kelly] Steven Kelly mailto:stevek&metacase.com 2007-11-12 +# [Steven_Kilby] Steven Kilby mailto:steven.kilby&kofax.com 2011-04-25 +# [Steven_Klein] Steven Klein mailto:stevek&ionetworks.com 2002-02 +# [Steven_Loomis] Steven Loomis mailto:srl&taligent.com +# [Steven_M_Forrester] Steven M. Forrester mailto:StevenF&capsuletech.com +# [Steven_Pelletier] Steven Pelletier mailto:stevep&availant.com +# [Steven_Ritland] Steven Ritland mailto:srr&us.ibm.com +# [Steven_Sawkins] Steven Sawkins mailto:ssawkins&symantec.com +# [Steven_Sweeting] Steven Sweeting mailto:ssweeting&sls-technology.com 2008-01-28 +# [Steven_Umbehocker] Steven Umbehocker OS NEXUS, Inc. mailto:steven.umbehocker&osnexus.com 2012-09-21 +# [Steven_W_Clark] Steven W. Clark mailto:steven.clark&avocent.com +# [Steven_W_Clark_2] Steven W. Clark mailto:sclark&equinox.com +# [Stoneware_Inc] Stoneware Inc. mailto:coby.gurr&stone-ware.com 2012-05-18 +# [StorMagic_Ltd] StorMagic Ltd mailto:chris_farey&stormagic.com 2011-12-16 +# [Stu_Mark] Stu Mark mailto:fordii&j51.com +# [Stuart_Allen] Stuart Allen mailto:stuart&jacl.animats.net 2002-02 +# [Stuart_Button] Stuart Button mailto:button&promis.com +# [Stuart_Cheshire] Stuart Cheshire mailto:cheshire&apple.com 2007-12-03 +# [Stuart_Cheshire_3] Stuart Cheshire mailto:mdnsresponder-ipc&multicastdns.org 2004-06 +# [Stuart_Cheshire_4] Stuart Cheshire mailto:pdl-datastream&apple.com 2002-09 +# [Stuart_Cheshire_5] Stuart Cheshire mailto:cheshire&apple.com +# [Stuart_J_Kerry] Stuart J. Kerry Chair IEEE 802.11 WG mailto:stuart&ok-brit.com 2002-05 +# [Stuart_Lynne] Stuart Lynne mailto:sl&wimsey.com +# [Stuart_Schaefer] Stuart Schaefer mailto:sschaefer&softricity.com +# [Subroto_Datta] Subroto Datta mailto:subrotod&altera.com +# [Sudhakar_Rajamannar] Sudhakar Rajamannar mailto:mobius1&cerfnet.com +# [Sudhir_Menon] Sudhir Menon mailto:sudhir¢erspan.com +# [Sudhir_Shetty] Sudhir Shetty mailto:Sudhir_Shetty&dell.com +# [Sue_Barnhill] Sue Barnhill mailto:snb&oc.com +# [Sufyan_Almajali] Sufyan Almajali mailto:sufyan.almajali&sdrlive.com 2008-06-27 +# [Sugih_Jamim] Sugih Jamim mailto:jamin&eecs.umich.edu +# [Sukanta_Ganguly] Sukanta Ganguly mailto:sganguly&kineticnetworks.com +# [Sulistio_Muljadi] Sulistio Muljadi +# [Sumit_Arora] Sumit Arora mailto:sumit.arora&sun.com 2007-06 +# [Sumitake_kobayashi] Sumitake kobayashi mailto:kobayashi&np.lps.cs.fujitsu.co.jp +# [Sundar_Srinivasan] Sundar Srinivasan mailto:sundarsµsoft.com 2006-05 +# [Sung_U_Ro] Sung U. Ro mailto:ePortalSupport&unisys.com 2006-01 +# [Support] Support mailto:support&officetime.net +# [Support_Staff] Support Staff Sierra Photonics, mailto:support&sierraphotonics.com 2011-10-20 +# [Support_Team] Support Team mailto:support&eucalyptus.com +# [Surendra_Kumar] Surendra Kumar Cisco mailto:smkumar&cisco.com 2012-06-11 +# [Susan_Hinrichs] Susan Hinrichs mailto:shinrich&cisco.com +# [Susan_Sauter] Susan Sauter mailto:ssauter&cisco.com 2006-07 +# [Sushil_Thomas] Sushil Thomas mailto:iana-comm&3par.com 2008-03-10 +# [Susie_Armstrong] Susie Armstrong mailto:Armstrong.wbst128@xerox +# [Susie_Armstrong_2] Susie Armstrong mailto:Armstrong.wbst128&xerox.com +# [Susie_Snitzer] Susie Snitzer +# [Suzanne_Lorrin] Suzanne Lorrin mailto:suzanne.lorrin&ansys.com +# [Suzanne_Lorrin_2] Suzanne Lorrin mailto:sml&ansyspo.ansys.com +# [Sven_Kopacz] Sven Kopacz mailto:s.kopacz&controllerware.com 2010-09-01 +# [Sven_S_Porst] Sven-S. Porst mailto:ssp-web&earthlingsoft.net +# [Sven_Slezak] Sven Slezak mailto:sunny&mezzo.net +# [Sylvain_Demongeot] Sylvain Demongeot mailto:sylvain.demongeot&wildbits.com 2005-08 +# [Sylvain_Pedneault] Sylvain Pedneault mailto:sylvain&sypecom.qc.ca 2003-03 +# [Sylvain_Robert] Sylvain Robert mailto:sylvain.robert&datadis.com 2008-02-14 +# [Sylvia_Ross] Sylvia Ross mailto:sross&codimatech.com +# [Sylvia_Scheuren] Sylvia Scheuren mailto:schsy02&cai.com +# [Sylvia_Siu] Sylvia Siu mailto:Sylvia_Siu&novell.co +# [Sylvia_Siu_2] Sylvia Siu mailto:ssiu&svnetworks.com +# [Symantec_Corp] Symantec Corp mailto:neel_bhatt&symantec.com 2012-01-03 +# [Symantec_Corp2] Symantec mailto:info&symantec.com 2012-05-07 +# [System_Administrator] System Administrator mailto:sysadmin&silvaco.com 2003-06 +# [TAKEDA_Hiroyuki] TAKEDA Hiroyuki mailto:takeda&atashi.net 2003-01 +# [Taha_Paksu] Taha Paksu mailto:tahapaksu&mavili.com.tr 2009-12-21 +# [Takashi_Aihara] Takashi Aihara mailto:aiharat&sm.sony.co.jp 2003-08 +# [Takashi_Hoshino] Takashi Hoshino mailto:hoshino&miya.fujifilm.co.jp +# [Takashi_Kubota] Takashi Kubota mailto:kubota.takashi&pfu.fugitsu.com 2003-06 +# [Takashi_Okazawa] Takashi Okazawa mailto:okazawa.takashi&canon.co.jp 2003-04 +# [Takashi_Sahara] Takashi Sahara mailto:sahara&jdl.co.jp 2006-09 +# [Takayuki_Ito] Takayuki Ito mailto:yuki&euc.jp +# [Takenori_Miyahara] Takenori Miyahara mailto:miyahara&pfu.co.jp +# [Takeo_Sato] Takeo Sato mailto:ts-iana&cloanto.net 2010-04-30 +# [Takeshi_Nishizawa] Takeshi Nishizawa mailto:takeshi&cp10.es.xerox.com +# [Takeshi_Ohmura] Takeshi Ohmura mailto:ohmura&isl.mei.co.jp +# [Takeshi_Sahara] Takeshi Sahara mailto:sahara&jdl.co.jp +# [Takeshi_Saito] Takeshi Saito mailto:takeshi.saito&toshiba.co.jp 2002-09 +# [Talkative_AB] Talkative AB mailto:support&talkative.se +# [Tamara_Baker] Tamara Baker mailto:tbaker&ecolor.com +# [Tamir_Zegman] Tamir Zegman mailto:zegman&checkpoint.com +# [Tarek_Nabhan] Tarek Nabhan mailto:standards&itworx.com 2003-02 +# [Tatham_Oddie] Tatham Oddie mailto:tatham&e-oddie.com 2002-09 +# [Tatsuhiko_Sakai] Tatsuhiko Sakai Canon Inc. mailto:sakai.tatsuhiko&canon.co.jp 2011-10-03 +# [Tatsuya_Igarashi] Tatsuya Igarashi mailto:Tatsuya.Igarashi&jp.sony.com 2002-07 +# [Tatsuya_Ueda] Tatsuya Ueda mailto:tatsu&ist.fujitsu.com 2003-10 +# [Tatu_Ylonen] Tatu Ylonen mailto:ylo&cs.hut.fi +# [Tav_Espian] Tav Espian mailto:tav&espians.com 2010-08-10 +# [Ted_Hess] Ted Hess mailto:thess&livevault.com +# [Ted_Hoshi] Ted Hoshi mailto:tetsuo.hoshi&jp.yokogawa.com 2004-06 +# [Ted_J_Socolofsky] Ted J. Socolofsky mailto:Teds&spider.co.uk +# [Ted_McFadden] Ted McFadden mailto:mcfadden&dstc.edu.au +# [Ted_Power] Ted Power mailto:tedp&hpinpcb.cup.hp.com +# [Ted_Ross] Ted Ross mailto:ross&toplayer.com +# [Ted_Ross_2] Ted Ross mailto:tross&redhat.com 2008-03-26 +# [Ted_Schroeder] Ted Schroeder mailto:tschroeder&freehandsystems.com +# [Ted_Schroeder_2] Ted Schroeder Vidder, Inc. mailto:ted&vidder.com 2011-10-24 +# [Ted_Tronson] Ted Tronson mailto:ttronson&novell.com +# [Ted_Woodward] Ted Woodward mailto:ted&metrowerks.com +# [Teijo_Mustonen] Teijo Mustonen mailto:Teijo.Mustonen&f-secure.com 2002-03 +# TeleConsult GmbH, +# [TeleConsult] 76275 Ettlingen, mailto:teleconsult&t-online.de +# Germany +# [Teledyne_BlueView_Inc] Teledyne BlueView, mailto:czimmermann&teledyne.com 2012-09-19 +# [Telepathy_project] Telepathy project mailto:telepathy&lists.freedesktop.org +# [TeleTrusT_Deutschlan] TeleTrusT Deutschland mailto:info&teletrust.de 2006-04 +# e.V. +# [Tenir_Software] Tenir Software mailto:sgums&tenirsoftware.com 2011-10-27 +# [Teradici] Teradici mailto:jdillabough&teradici.com 2012-03-06 +# [Terrence_J_Talbot] Terrence J. Talbot mailto:lexcube!tjt&bu.edu +# [Terry_Eldridge] Terry Eldridge mailto:Terry.Eldridge&6pointn.com 2006-08 +# [Terry_Gin] Terry Gin mailto:terry_gin&inter-tel.com 2003-02 +# [Terry_Lim] Terry Lim mailto:tkl&pentek.com +# [Terry_Smyth] Terry Smyth mailto:terry&sgluk.com 2004-11 +# [Terumasa_Yoneda] Terumasa Yoneda mailto:yonedat&pfu.co.jp +# [TEST-OK_BV] TEST-OK B.V. mailto:jeroen.ommering&test-ok.nl 2012-09-05 +# [Tetsuharu_Hanada] Tetsuharu Hanada mailto:hanada&pfu.fujitsu.com +# [Tetsuya_Shioda] Tetsuya Shioda mailto:tetsuya&saint.nm.fujitsu.co.jp +# [Tex_Hull] Tex Hull mailto:tex&spss.com +# [Thaddeus_Perala] Thaddeus Perala mailto:trperala&emaden.com +# [Thaddeus_Ternes] Thaddeus Ternes mailto:thaddeus.ternes&intermec.com +# [TheCodingMonkeys] TheCodingMonkeys mailto:monkeys&codingmonkeys.de +# [The_Omni_Group] The Omni Group mailto:info&omnigroup.com +# [Theo_Nijssen] Theo Nijssen mailto:theon&nijssen.nl +# [Theo_Schlossnagle] Theo Schlossnagle mailto:jesus&omniti.com 2009-05-19 +# [Theodore_Ts_o] Theodore Ts'o mailto:tytso&mit.edu +# [Therese_Hunt] Therese Hunt mailto:hunt&marcam.com +# [Thermo-Calc_Software] Thermo-Calc Software mailto:thomasr&thermocalc.se 2012-06-28 +# AB +# [Thierry_Turletti] Thierry Turletti mailto:Thierry.Turletti&sophia.inria.fr +# [Thom_McGrath] Thom McGrath mailto:thom&thezaz.com +# [Thomas_Boerkel] Thomas Boerkel mailto:tbo&ap-ag.com 2008-06-06 +# [Thomas_Boutell] Thomas Boutell mailto:boutell&boutell.com +# [Thomas_Clausen] Thomas Clausen mailto:thomas.clausen&inria.fr +# [Thomas_Dannemiller] Thomas Dannemiller mailto:tom.dannemiller&rolls-royce.com 2003-04 +# [Thomas_Driemeyer] Thomas Driemeyer mailto:thomas&bitrot.de +# [Thomas_E_Ludwig] Thomas E. Ludwig mailto:tom.ludwig&zetera.com 2004-02 +# [Thomas_Efer] Thomas Efer mailto:mail&thomasefer.de 2006-03 +# [Thomas_Erskine] Thomas Erskine mailto:erskine&sourceworks.com +# [Thomas_Fiege] Thomas Fiege mailto:tfiege&us.ibm.com 2004-02 +# [Thomas_Fok] Thomas Fok mailto:thomas&melody-soft.com 2004-11 +# [Thomas_Geisel] Thomas Geisel mailto:tgeisel&symax.de 2003-01 +# [Thomas_Guth] Thomas Guth mailto:t.guth&zeiss.de 2006-01 +# [Thomas_Hennessy] Thomas Hennessy mailto:thennessy&manageiq.com 2007-10-04 +# [Thomas_J_Klehr] Thomas J. Klehr mailto:tklehr&telcordia.com +# [Thomas_J_Pinkl] Thomas J. Pinkl mailto:tom&pinkl.com 2003-02 +# [Thomas_K_Fischer] Thomas K. Fischer mailto:thomas.fischer&interservices.de +# [Thomas_Kanngieser] Thomas Kanngieser mailto:thomas.kanngieser&arcor.de 2006-01 +# [Thomas_Keller] Thomas Keller mailto:me&thomaskeller.biz 2010-12-22 +# [Thomas_Kemmer] Thomas Kemmer EFKON AG mailto:t.kemmer&efkon.com 2011-10-20 +# [Thomas_Kerkau] Thomas Kerkau mailto:Thomas.Kerkau&io-software.com +# [Thomas_Kjoernes] Thomas Kjoernes mailto:thomas&ipv.no 2010-06-22 +# [Thomas_Klose] Thomas Klose mailto:thomas.klose&hiperscan.com 2009-12-15 +# [Thomas_Koell] Thomas Koell mailto:info&sf.com +# [Thomas_Kuiper] Thomas Kuiper mailto:tkuiper&inxsoft.net +# [Thomas_L_Johnson] Thomas L. Johnson mailto:tjohnson&broadcom.com +# [Thomas_Lindeman] Thomas Lindeman mailto:tlindeµsoft.com 2002-11 +# [Thomas_M_Smith] Thomas M. Smith mailto:Thomas.M.Smith&lmco.com +# [Thomas_Martin] Thomas Martin mailto:thomas&datus-usa.com +# [Thomas_McCabe] Thomas McCabe mailto:tmcca&westell.com +# [Thomas_Obermair] Thomas Obermair mailto:tommy&inlab.m.eunet.de +# [Thomas_Revesz] Thomas Revesz Thermo-Calc Software mailto:thomasr&thermocalc.se 2012-06-28 +# [Thomas_Ruchti] Thomas Ruchti mailto:thomasmruchti&eaton.com 2003-06 +# [Thomas_Russell] Thomas Russell mailto:trussell&scte.org 2005-05 +# [Thomas_Schleu] Thomas Schleu mailto:tschleu&canto.de +# [Thomas_Schmidt] Thomas Schmidt mailto:ts&bintec.de +# [Thomas_Scholl] Thomas Scholl mailto:tscholl&spf.is-is.ca 2006-03 +# [Thomas_Sciorilli] Thomas Sciorilli Wi-Fi Alliance mailto:tsciorilli&wi-fi.org 2012-04-09 +# [Thomas_Soerensen] Thomas Soerensen mailto:thomassoerensen&stofanet.dk 2002-04 +# [Thomas_Soranno] Thomas Soranno mailto:tom_soranno&cipartners.com +# [Thomas_Tempelmann] Thomas Tempelmann mailto:tt&tempel.org 2012-06-19 +# [Thomas_Weise] Thomas Weise mailto:weise&vs.uni-kassel.de 2006-04 +# [Thomas_Zwick] Thomas Zwick mailto:thomas.zwick&tz-software.de 2011-10-12 +# [Thor_Olson] Thor Olson mailto:Thor&terabase.com +# [Thorvald_Natvig] Thorvald Natvig mailto:thorvald&natvig.com +# [ThreeGPP2] 3GPP2 mailto:lizhiming&huawei.com 2012-01-11 +# [Tiago_Bittencourt_Si] Tiago Bittencourt Silva mailto:tiagobs&ufpr.br 2005-08 +# [Tightrope_Media_Systems] Tightrope Media mailto:sjann&trms.com 2011-10-17 +# [Tim_Addington] Tim Addington mailto:Tim.Addington&sciatl.com +# [Tim_Behne] Tim Behne mailto:timothybµwavenetworks.com 2003-06 +# [Tim_Berners_Lee] Tim Berners-Lee mailto:timbl&w3.org +# [Tim_Boldt] Tim Boldt mailto:timb&vytalnet.com +# [Tim_Boyle] Tim Boyle mailto:tboyle&dataviz.com +# [Tim_Brown] Tim Brown mailto:timb&openvas.org 2008-12-24 +# [Tim_Burgess] Tim Burgess mailto:tim&hotu.com 2002-04 +# [Tim_Coppernoll] Tim Coppernoll mailto:Tim_Coppernoll&ccm.jf.intel.com +# [Tim_Dawson] Tim Dawson mailto:tdawson%25mspboss@uunet.uu.net +# [Tim_DeBaillie] Tim DeBaillie mailto:debaillie&ciholas.com 2006-12 +# [Tim_Farley] Tim Farley mailto:Tim.Farley&xcellenet.com +# [Tim_Hahn] Tim Hahn mailto:hahnt&us.ibm.com 2006-03 +# [Tim_Howard] Tim Howard mailto:timothygh&hotmail.com +# [Tim_Howes] Tim Howes mailto:Tim.Howes&terminator.cc.umich.edu +# [Tim_Hunnewell] Tim Hunnewell mailto:thunnewell&pinna.com +# [Tim_Jacobs] Tim Jacobs +# [Tim_Jobling] Tim Jobling mailto:tim&cambridgeimaging.co.uk +# [Tim_Jowers] Tim Jowers mailto:Tim.Jowers&columbiasc.ncr.com +# [Tim_Kenyon] Tim Kenyon mailto:Tim_Kenyon&csicontrols.com +# [Tim_Lawrence] Tim Lawrence mailto:lawrence&tao-group.com +# [Tim_Maloney] Tim Maloney mailto:tim.maloney&allianceconsultingllc.com 2005-08 +# [Tim_McGranaghan] Tim McGranaghan mailto:tim_mcgranaghan&mech.disa.mil +# [Tim_Morgan] Tim Morgan mailto:timm&surfcontrol.com 2004-11 +# [Tim_Morgan_2] Tim Morgan mailto:tmorgan&filenet.com 2005-11 +# [Tim_Rance] Tim Rance mailto:trance&lionhead.co.uk +# [Tim_Riker] Tim Riker mailto:tim&rikers.org 2003-07 +# [Tim_Riley] Tim Riley mailto:rileyt&saic.com 2009-07-31 +# [Tim_Schmidt] Tim Schmidt mailto:Tim.Schmidt&veritas.com +# [Tim_Sent] Tim Sent mailto:tim.sent&systemsarchitects.com +# [Tim_Serong] Tim Serong mailto:tserong&novell.com 2010-03-31 +# [Tim_Simms] Tim Simms mailto:tsimms&plethoratech.com 2002-04 +# [Tim_Stevenson] Tim Stevenson mailto:tes&ncd.com +# [Tim_Walsh] Tim Walsh mailto:tim&ultrex.com +# [Tim_Wiegand] Tim Wiegand mailto:tim.wiegand&navisworks.com 2003-02 +# [Tim_Wilson] Tim Wilson mailto:tim.wilson&motorola.com 2003-08 +# [Tim_Young] Tim Young mailto:timyoung&elevatesoft.com 2009-05-06 +# [Timo_Sivonen] Timo Sivonen mailto:timo.sivonen&ccmail.dowjones.com +# [Timothy_J_Wood] Timothy J. Wood mailto:tjw&omnigroup.com +# [Timothy_Parry] Timothy Parry mailto:tim&lumenergi.com 2011-02-15 +# [Timothy_Wayper] Timothy Wayper mailto:timmy&wunderbear.com +# [TiVo_Inc] TiVo Inc. mailto:devsupport&tivo.com 2011-10-18 +# [Tobias_Erichsen] Tobias Erichsen mailto:erichsen&te-systems.de +# [Tobias_Hoffmann] Tobias Hoffmann mailto:th55&gmx.de 2012-10-09 +# [Tobias_Sturm] Tobias Sturm mailto:tobias.sturm&student.kit.edu 2013-01-14 +# [Tobias_Wegner] Tobias Wegner mailto:wegner&novagate.de +# [Tobin_Schuster] Tobin Schuster mailto:tobin.j.schuster&jci.com +# [Toby_Hosterman] Toby Hosterman mailto:root&netspeak.com +# [Toby_Smith] Toby Smith mailto:dns&idlehands.net +# [Tod_Landis] Tod Landis mailto:tlandis&inprise.com +# [Todd_Barker] Todd Barker mailto:toddba&attachmate.com +# [Todd_Cooper] Todd Cooper mailto:todd&do11073.com 2003-01 +# [Todd_Glassey] Todd Glassey mailto:todd.glassey&att.net +# [Todd_Guay] Todd Guay mailto:todd.guay&oracle.com 2005-08 +# [Todd_Moyer] Todd Moyer mailto:tsm&unx.dec.com +# [Todd_Pichler] Todd Pichler mailto:todd.pichler&stagesoft.com 2010-03-26 +# [Todd_Picquelle] Todd Picquelle mailto:todd&picquelle.com +# [Todd_Scallan] Todd Scallan mailto:tscallan&interwoven.com 2005-08 +# [Todd_Tannenbaum] Todd Tannenbaum mailto:tannenba&cs.wisc.edu 2008-04-03 +# [Todd_Wichers] Todd Wichers mailto:twichers&csn.org +# [Toerless_Eckert] Toerless Eckert mailto:eckert&cisco.com +# [Tohru_Mori] Tohru Mori mailto:tmori&vnet.ibm.com +# [Tom_Bereiter] Tom Bereiter +# [Tom_Bougan] Tom Bougan mailto:tomb&apptechsys.com +# [Tom_Boyle] Tom Boyle mailto:tboyle&vormetric.com 2005-06 +# [Tom_Emberson] Tom Emberson mailto:tom&lanworks.com +# [Tom_Fay] Tom Fay Agilent Technologies, mailto:tom_fay&agilent.com 2013-01-16 +# [Tom_Findley] Tom Findley mailto:tom.findley&networksciences.net +# [Tom_Friend] Tom Friend mailto:tomfrµsoft.com +# [Tom_Haapanen] Tom Haapanen mailto:tomh&metrics.com +# [Tom_Haapanen_2] Tom Haapanen mailto:tomh&equitrac.com 2007-07-11 +# [Tom_Hawkins] Tom Hawkins mailto:tom1&launchbird.com 2003-04 +# [Tom_Hawkins_2] Tom Hawkins mailto:tomahawkins&gmail.com 2006-02 +# [Tom_Hennessy] Tom Hennessy mailto:thenn&novadigm.com +# [Tom_Kee] Tom Kee mailto:t.kee&f5.com +# [Tom_Lake] Tom Lake mailto:tlake&m-ware.com +# [Tom_Lane] Tom Lane mailto:tgl&sss.pgh.pa.us +# [Tom_Lemaire] Tom Lemaire mailto:toml&banyan.com +# [Tom_Liu] Tom Liu mailto:ssc&sc.stk.com.cn +# [Tom_Maaswinkel] Tom Maaswinkel mailto:tom.maaswinkel&publiqare.nl 2011-02-07 +# [Tom_Markson] Tom Markson mailto:markson&osmosys.incog.com +# [Tom_Mayo] Tom Mayo mailto:tmayo1&rochester.rr.com 2003-01 +# [Tom_Nys] Tom Nys mailto:tom.nys.tn&belgium.agfa.com +# [Tom_Pusateri] Tom Pusateri mailto:pusateri&juniper.net 2004-12 +# [Tom_Quinlan] Tom Quinlan mailto:tquinlan&digitechinc.com +# [Tom_R_Zavisca] Tom R. Zavisca Green Hills Software mailto:iana-contact&ghs.com 2012-02-07 +# [Tom_Snauwaert] Tom Snauwaert mailto:tom.snauwaert&st-electronics.be +# [Tom_Spidell] Tom Spidell mailto:spidell&persoft.com +# [Tom_Strack] Tom Strack mailto:TSTRACK&advnw.com +# [Tom_Talpey] Tom Talpey Microsoft Corporation mailto:ttalpeyµsoft.com 2012-03-15 +# [Tom_Taylor] Tom Taylor mailto:Tom.Taylor&unisys.com +# [Tom_Taylor_2] Tom Taylor mailto:taylor&nortelnetworks.com +# [Tom_Taylor_3] Tom Taylor mailto:taylor&nortel.com 2006-09 +# [Tom_White] Tom White MIDI Manufacturers mailto:info&midi.org 2011-11-14 +# [Tom_Whittaker] Tom Whittaker mailto:tomw&ssec.wisc.edu +# [Tomas_Rajcan] Tomas Rajcan mailto:trajcan&ipesoft.sk +# [Tomas_Svoboda] Tomas Svoboda mailto:svoboda&infima.cz 2004-12 +# [Tomer_Shain] Tomer Shain mailto:tshain&precise.com 2002-09 +# [Tommy_van_der_Vorst] Tommy van der Vorst mailto:tommy&pixelspark.nl +# [Tomoji_Koike] Tomoji Koike mailto:koike&ael.fujitsu.co.jp +# [Tomokazu_Asai] Tomokazu Asai mailto:asai.tomokazu&pfu.fujitsu.com 2003-11 +# [Tomoo_Fujita] Tomoo Fujita mailto:tf&arc.bs1.fc.nec.co.jp +# [Ton_Voon] Ton Voon mailto:ton.voon&opsera.com 2008-09-26 +# [Tong_Ming_Lee] Tong-Ming Lee mailto:tmlee&us.oracle.com +# [Tongji_University] Tongji University mailto:neo.gui&gmail.com +# [Tonio_Pirotta] Tonio Pirotta mailto:tonio&tpis.com.au +# [Tony_Amundson] Tony Amundson mailto:tony&blueatlasbroker.com +# [Tony_Arcieri] Tony Arcieri mailto:bascule&gmail.com 2006-03 +# [Tony_Ballardie] Tony Ballardie mailto:A.Ballardie&cs.ucl.ac.uk +# [Tony_Bushnell] Tony Bushnell mailto:tony_bushnell&four-sight.co.uk +# [Tony_Cleveland] Tony Cleveland mailto:tony.cleveland&jacobus.com +# [Tony_Diodato] Tony Diodato mailto:tdiodato&cyprx.com 2005-08 +# [Tony_Fountain] Tony Fountain mailto:tfountain&ucsd.edu +# [Tony_Gibbs] Tony Gibbs mailto:tony.gibbs&europe.simoco.com +# [Tony_Gulino] Tony Gulino mailto:astaregod&hotmail.com 2003-08 +# [Tony_Hoffman] Tony Hoffman mailto:ajh&unx.dec.com +# [Tony_Lubrano] Tony Lubrano mailto:tlubrano&neonsys.com +# [Tony_Matthews] Tony Matthews mailto:tmatthews&triomotion.com 2002-02 +# [Tony_Sawyer] Tony Sawyer mailto:tonys&gemtech.com +# [Tony_Scamurra] Tony Scamurra mailto:Tony&desktoppaging.com +# [Tony_Sowter] Tony Sowter mailto:ts&datcon.co.uk +# [Tony_Splaver] Tony Splaver mailto:tony&cpdi.com 2002-09 +# [Tony_Walker] Tony Walker mailto:tony&cryptocard.com +# [Tony_de_Rijk] Tony de Rijk mailto:idotechnology&mac.com +# [Tor_Slettnes] Tor Slettnes mailto:slettntn&appliedbiosystems.com +# [Tore_Skaug] Tore Skaug Versile AS mailto:tore.skaug&versile.com 2012-02-01 +# [Torsten_Rendelmann] Torsten Rendelmann mailto:torsten.rendelmann&procos.com +# [Torsten_Scheffler] Torsten Scheffler mailto:pdnetadmin&pdnet.info +# [Toru_Murai] Toru Murai mailto:murai&saint.nm.fujitsu.co.jp +# [Toru_Tachibana] Toru Tachibana mailto:tatibana&exs.ts.fujitsu.co.jp +# [Toshikatsu_Ito] Toshikatsu Ito mailto:ito-t&pfu.co.jp +# [Toshio_Watanabe] Toshio Watanabe mailto:watanabe&godzilla.rsc.spdd.ricoh.co.jp +# [TransAct_Futures_Dev] TransAct Futures mailto:1869info&transactfutures.com +# [Trevor_Bell] Trevor Bell mailto:Trevor&iguana.iosoftware.com +# [Trevor_Perkes] Trevor Perkes mailto:trevor.perkes&landesk.com 2010-02-01 +# [Tri_Tech_Computers_Ltd] Tri Tech Computers mailto:admins&tri-tech.com 2012-11-19 +# [Tristan_Richardson] Tristan Richardson mailto:iana&realvnc.com 2006-03 +# [Tristan_Seifert] Tristan Seifert mailto:admin&247server.net 2011-01-31 +# [Tristan_Seifert_2] Tristan Seifert Squee! Application mailto:tristan&squee.co 2011-07-19 +# [Trond_Borsting] Trond Bo/rsting mailto:Trond.Borsting&snota.no +# [Trond_Norbye] Trond Norbye mailto:trond.norbye&sun.com 2009-02-09 +# [Troy_Bergstrand] Troy Bergstrand mailto:troy.bergstrand&hp.com +# [Troy_Gau] Troy Gau mailto:troy&zyxel.com +# [Troy_Morrison] Troy Morrison mailto:troy&graphon.com +# [Troy_Rollo] Troy Rollo mailto:troy&kroll.corvu.com.au +# [Trung_Huu_Tran] Trung Huu Tran mailto:trung.tran&navy.mil 2007-03 +# [Tsutomu_Fujinami] Tsutomu Fujinami mailto:tsutomu.fujinami&hp.com 2005-08 +# [Tung_Nguyen] Tung Nguyen mailto:dash&ricochet.net +# [Tuomo_Makinen] Tuomo Makinen mailto:tmakinen&pp.htv.fi 2002-02 +# [Ty_Ellis] Ty Ellis mailto:tellis&novell.com 2006-05 +# [Tzvika_Chumash] Tzvika Chumash mailto:tzvikac&netvision.net.il +# [UPnP_Forum] UPnP Forum mailto:upnpadmin&forum.upnp.org +# [Udi_Nir] Udi Nir mailto:udi_nir&ncc.co.il +# [Uffe_Harksen] Uffe Harksen mailto:uh&uhcommunications.com 2005-08 +# [Ulaganathan_Sriramul] Ulaganathan Sriramulu mailto:ulag&effigent.com +# [Ulli_Horlacher] Ulli Horlacher mailto:framstag&rus.uni-stuttgart.de +# [Ulrich_Epple] Ulrich Epple mailto:ks&plt.rwth-aachen.de 2012-08-07 +# [Ulrich_Kortenkamp] Ulrich Kortenkamp mailto:kortenkamp&cinderella.de 2003-06 +# [Ulysses_G_Smith_Jr] Ulysses G. Smith Jr. mailto:ugsmith&cesi.com +# [University_Corporation_for_Atmospheric_Research] Corporation for mailto:support&unidata.ucar.edu 2012-05-07 +# [University_Corporation_for_Atmospheric_Research2] Corporation for mailto:support-ldm&unidata.ucar.edu 2012-05-18 +# [Urban_Fosseus] Urban Fosseus mailto:urban.fosseus®in.se 2008-12-24 +# [Urbis_Net_Ltd] Urbis.Net Ltd mailto:postmaster&urbis.net +# [Uri_Blank] Uri Blank mailto:uri&quosa.com 2006-09 +# [Uri_Doron] Uri Doron mailto:uri&il.netect.com +# [Uri_Resnitzky] Uri Resnitzky mailto:info&arx.com +# [Uri_Sarid] Uri Sarid mailto:uri&aptana.com 2008-01-22 +# [Uriy_Makasjuk] Uriy Makasjuk mailto:racer&bfpg.ru +# [Urs_Bertschinger] Urs Bertschinger mailto:urs&netmosphere.com +# [Uwe_Holz] Uwe Holz mailto:uwe.holz&azeti.net 2009-11-09 +# [Uwe_Honermann] Uwe Honermann mailto:u.honermann&windream.com +# [Uwe_Ziegler] Uwe Ziegler Goepel electronic mailto:u.ziegler&goepel.com +# [VR_Satish] VR Satish mailto:vr_satish&symantec.com 2007-08-16 +# [V_A_Brauner] V. A. Brauner mailto:info&datamedia.fr +# [V_Balaji] V. Balaji mailto:balaji&aspec.com +# [Vacquier_Serge] Vacquier Serge mailto:vacquier&systar.fr 2009-02-12 +# [Vadim_Maslov] Vadim Maslov mailto:vm&siber.com 2010-10-06 +# [Vadym_Kargin] Vadym Kargin mailto:vkargin&markem.com 2005-08 +# [Vaibhav_Kumar] Vaibhav Kumar mailto:vakumar&hns.com 2003-07 +# [Valery_Fremaux] Valery Fremaux mailto:vf&eisti.fr +# [Van_Jacobson] Van Jacobson mailto:van&ee.lbl.gov +# [Van_Jacobson_2] Van Jacobson mailto:van&parc.com 2009-09-29 +# [Varma_Bhupatiraju] Varma Bhupatiraju mailto:varma&calient.net +# [Varun_Santosh] Varun Santosh mailto:varun.santosh&hughes.com 2010-10-20 +# [Vasu_Murthy] Vasu Murthy mailto:vmurthy&datascaler.com 2010-02-08 +# [Vaughan_Wesson] Vaughan Wesson mailto:vaughanw&rtunet.com 2006-10 +# [Vaughn_Amann] Vaughn Amann mailto:vamann&aol.com +# [Veizades] mailto:veizades&ftp.com +# [Velneo] Velneo mailto:velneo&velneo.com +# [Venkat_Rangan] Venkat Rangan mailto:venkatr&vitalsigns.com +# [Venkata_Krishna] Venkata Krishna mailto:VenkataKrishna.Bezawada&ca.com 2010-02-24 +# [Venky_Nagar] Venky Nagar mailto:venky&fafner.stanford.edu +# [Ventureforth_Inc] Ventureforth Inc. mailto:support&ventureforth.com 2011-11-03 +# [Vera_Heinau] Vera Heinau mailto:heinau&fu-berlin.de +# [Verek] Verek mailto:info&verek.com +# [Versile_AS] Versile AS mailto:contact&versile.com 2012-02-01 +# [Vick_Keshishian] Vick Keshishian mailto:vickenK&192.219.82.71 +# [Victor_Galis] Victor Galis mailto:galis&satchmo.virtualprototypes.ca +# [Victor_Griswold] Victor Griswold mailto:vgris&aironet.com +# [Victor_H_Farrace] Victor H. Farrace mailto:vfarrace&eaglept.com 2002-10 +# [Victor_Kirhenshtein] Victor Kirhenshtein mailto:victor&opticom.lv 2006-07 +# [Vidder_Inc] Vidder, Inc. mailto:ted&vidder.com 2011-10-24 +# [Videte_IT] Videte IT mailto:info&videte.com +# [Vikas] Vikas mailto:vikas&graycell.com +# [Vikki_Yin_Wei] Vikki Yin Wei mailto:vikki&ipdynamics.com 2003-01 +# [Ville_Laurikari] Ville Laurikari mailto:vlaurika&ssh.com 2005-08 +# [Ville_Pekka_Vahteala] Ville-Pekka Vahteala mailto:ville-pekka.vahteala&bitcomp.fi 2008-06-05 +# [Vinay_Badami] Vinay Badami mailto:VinayBµsoft.com 2006-05 +# [Vinay_Gupta] Vinay Gupta mailto:vinay.gupta&hp.com 2003-08 +# [Vince_Re] Vince Re mailto:Vincent.Re&cai.com +# [Vincent_Gaudeul] Vincent Gaudeul mailto:technique&auriga.fr 2006-02 +# [Vinh_Nguyn] Vinh Nguyn mailto:vinh&sportvision.com +# [Vipul_Ved_Prakash] Vipul Ved Prakash mailto:mail&vipul.net 2002-07 +# [Virgilio_Lattanzi] Virgilio Lattanzi mailto:virgilio&harpax.com 2002-07 +# [Vishal_Dharmadhikari] Vishal Dharmadhikari Hall Research mailto:vishal&hallresearch.com 2011-11-29 +# [Vishnu_Varadaraj] Vishnu Varadaraj mailto:vishnuv¶bay.com +# [Vishwas_Lele] Vishwas Lele mailto:Vishwas_Lele&appliedis.com +# [Vision_Solutions] Vision Solutions, mailto:james.wilkinson&visionsolutions.com 2012-06-06 +# [Vitali_Fomine] Vitali Fomine mailto:info&winpopup-lan-messenger.com 2005-11 +# [Vitaly_Revsin] Vitaly Revsin mailto:vitaly&webmanage.com +# [Vitaly_Revsin_2] Vitaly Revsin mailto:vitaly&netapp.com +# [Vladimir_Bickov] Vladimir Bickov mailto:vbickov&coderebel.com 2007-08-20 +# [Vladimir_Legalov] Vladimir Legalov mailto:legalov&sgi.com +# [Vladimir_Legalov_2] Vladimir Legalov mailto:vlegalov&riverbed.com 2007-09-04 +# [Voiko_Loukanov] Voiko Loukanov mailto:v.loukanov&dvelectronics.com 2003-10 +# [Volker_Wiegand] Volker Wiegand mailto:volker.wiegand&t-online.de 2007-07-10 +# [Von_Welch] Von Welch mailto:vwelch&ncsa.uiuc.edu +# [VoxelStorm] VoxelStorm mailto:slowriot&voxelstorm.com 2012-11-08 +# [VSN_International_Ltd] VSN International mailto:sean&vsni.co.uk 2011-09-28 +# [WAP_Forum] WAP Forum mailto:wap-feedback&mail.wapforum.org +# mailto:pg&uplanet.com +# [W_Jordan_Fitzhugh] W. Jordan Fitzhugh mailto:jfitz&pcare.com +# [Wade_Richards] Wade Richards mailto:wade.richards&sap.com 2008-05-05 +# [Waiki_Wright] Waiki Wright mailto:waiki&us.ibm.com +# [Wally_Pratt_Jr] Wally Pratt Jr mailto:wallyp&hartcomm.org 2010-03-02 +# [Walt_Modic] Walt Modic mailto:Walt.Modic&dionex.com +# [Walter_G_Giroir] Walter G. Giroir mailto:walt_giroir&bmc.com 2003-07 +# [Walter_Goodwin] Walter Goodwin mailto:wpgoodwin&asna.com +# [Walter_K_Eichelburg] Walter K. Eichelburg mailto:walter.eichelburg&sat-automation.com +# [Walter_Poxon] Walter Poxon mailto:wdp&ironwood.cray.com +# [Walter_Underwood] Walter Underwood mailto:wunder&infoseek.com +# [Ward_Silver] Ward Silver mailto:hwardsil&wolfenet.com +# [Warren_Alexander] Warren Alexander mailto:warren&chameleon-creative.co.uk +# [Wayne_Barlow] Wayne Barlow mailto:web&unx.dec.com +# [Wayne_Morrow] Wayne Morrow mailto:wmorrow&starfieldcorp.com 2003-10 +# [Wayne_Schroeder] Wayne Schroeder mailto:schroeder&sds.sdsc.edu +# [Wei_Gao] Wei Gao mailto:wei&mylex.com +# [Wei_Wang] Wei Wang mailto:Wei_Wang&intuit.com 2005-11 +# [Weibao_Wu] Weibao Wu mailto:weibao_wu&symantec.com 2006-04 +# [Weldon_J_Showalter] Weldon J. Showalter mailto:Gamma&mintaka.dca.mil +# [Weng_Chin_Yung] Weng Chin (Winson) Yung mailto:Winson_Yung&3com.com +# [Werner_Almesberger] Werner Almesberger mailto:Werner.Almesberger&epfl.ch +# [Werner_Guertler] Werner Guertler mailto:werner.guertler&ts.fujitsu.com 2009-05-11 +# [Wes_Doonan] Wes Doonan +# [Wes_Peters] Wes Peters mailto:wes&softweyr.com 2007-04 +# [Wes_Wilson] Wes Wilson mailto:wwilson&iss.net 2003-10 +# [Wesley_Eddy] Wesley Eddy Alanax Technologies, mailto:wesley.eddy&alanax.com 2013-01-14 +# [Westell] Westell, Inc. mailto:jronk&westell.com +# [Western_Digital] Western Digital Inc. mailto:rajesh.batra&wdc.com 2012-07-11 +# [Whamb] Whamb mailto:support&whamb.com +# [Widgetschmie_de] Widgetschmie.de +# [Wi-Fi_Alliance] Wi-Fi Alliance mailto:certifications&wi-fi.org 2012-04-09 +# [Wilken_GmbH] Wilken GmbH mailto:fy&wilken.de +# [Will_Dere] Will Dere mailto:will&wrs.com +# [Will_Golson] Will Golson mailto:golson&fc.hp.com +# [Will_Lahr] Will Lahr mailto:will&disruptivegroup.com +# [Will_MacDonald] Will MacDonald mailto:will&codian.com +# [William_Bain] William Bain mailto:bbainµsoft.com +# [William_Benner] William Benner mailto:William_Benner&msn.com +# [William_Benner_2] William Benner mailto:bill&pangolin.com 2002-03 +# [William_D_Wisner] William D. Wisner mailto:wisner&hayes.fai.alaska.edu +# [William_David] William David mailto:william.david&lmco.com +# [William_Dillon] William Dillon mailto:wdillon&coas.oregonstate.edu +# [William_Egge] William Egge mailto:begge&emagisoft.com +# [William_Fernando_Mat] William Fernando Maton mailto:wfms&acm.org 2005-01 +# Sotomayor +# [William_Fisher] William Fisher mailto:william.w.fisher&intermapper.com 2011-05-09 +# [William_Lai] William Lai mailto:wlaiµsoft.com +# [William_LePera] William LePera mailto:lepera&us.ibm.com 2008-06-18 +# [William_McDonald] William McDonald mailto:billmc&atc.boeing.com +# [William_Mullaney] William Mullaney mailto:mullanwi&usa.net +# [William_Orme] William Orme mailto:bill&repliweb.com +# [William_Phelps] William Phelps mailto:william&meier-phelps.com 2010-03-22 +# [William_Polites] William Polites mailto:wpolites&mitre.org +# [William_R_Bishop] William R Bishop mailto:wrb&world.std.com +# [William_R_Lear] William R. Lear mailto:william.lear&xerox.com 2008-03-06 +# [William_R_Lear_2] William R. Lear mailto:wlear&phlexible.com 2008-10-23 +# [William_Randolph_Roy] William Randolph Royere mailto:william&royere.net +# III +# [William_Scheding] William Scheding mailto:wls&wls.org +# [William_Schmidt] William Schmidt mailto:info&eclipseaviation.com 2006-03 +# [William_Shipley] William Shipley mailto:wjs&me.com +# [William_Stoye] William Stoye mailto:wstoye&atml.co.uk +# [Willie_Jan_Bons] Willie Jan Bons mailto:WillieJan.Bons&nds.eu 2011-03-10 +# [Willie_Wu] Willie Wu mailto:willie&mds.com +# [Wilson_Kwan] Wilson Kwan mailto:wilsonk%25toronto@zip.atm.com +# [Winston_Chou] Winston Chou mailto:wichou&cisco.com 2011-02-08 +# [Winston_Hetherington] Winston Hetherington +# [Winzig_LLC] Winzig LLC mailto:aroundsound&winzig.com 2011-10-20 +# [Wire_IANA_Contact] 2Wire IANA Contact mailto:iana&2wire.com 2002-04 +# [Wo_o_Ideafarm] Wo'o Ideafarm mailto:b85f3c23.9ad6f42c&ideafarm.com +# [Wolfgang_Adler] Wolfgang Adler mailto:electronicc_rd&wago.com 2006-04 +# [Wolfgang_Rupprecht] Wolfgang Rupprecht mailto:wolfgang&wsrcc.com +# [Wolfgang_Voelker] Wolfgang Voelker mailto:wolfgang.voelker&wibu.com 2007-06 +# [Wolfgang_Weidner] Wolfgang Weidner mailto:ww&citcom.de 2005-12 +# [Wongyu_Cho] Wongyu Cho mailto:wgcho&dialpad.com +# [World_DAB] World DAB mailto:worlddab_irc&worlddab.org +# [World_Fusion] World Fusion mailto:net&worldfusion.com +# [Wouter_Verhelst] Wouter Verhelst mailto:w&uter.be 2010-08-02 +# [www_nsovocal_com] www.nsovocal.com mailto:ben&nsovocal.com 2011-10-18 +# [Wyatt_Williams] Wyatt Williams mailto:wyattw&icall.com +# [Xavier_Roques] Xavier Roques mailto:xroques&infovista.fr +# [XMI_Systems_SA] XMI Systems SA mailto:cma&xmisystems.com 2013-01-18 +# [XMPP_Registrar] XMPP Registrar mailto:registrar&xmpp.org +# [Xnet_Communications] Xnet Communications mailto:croco&xdsnet.de +# [XuiS_Software_Ltd] XuiS Software Ltd. mailto:100322.2376&compuserve.com +# [XXT_LLC] XXT LLC mailto:xxt.matt&sbcglobal.net 2012-07-12 +# [Y_Ohiwa] Y. Ohiwa mailto:y-ohiwa&ael.fujitsu.co.jp +# [Y_Y_Goland] Y. Y. Goland mailto:yarongµsoft.com +# [Yakov_Rekhter] Yakov Rekhter mailto:Yakov&ibm.com +# [Yanick_Pouffary] Yanick Pouffary mailto:pouffary&taec.enet.dec.com +# [Yann_Kaiser] Yann Kaiser mailto:kaiser.yann&gmail.com 2012-11-02 +# [Yannick_Fortin] Yannick Fortin mailto:fortiny&ca.objectiflune.com 2006-02 +# [Yariv_Kaplan] Yariv Kaplan mailto:yarivk&gilat.com +# [Yasunari_Gon_Yamasit] Yasunari Gon Yamasita mailto:yamasita&omronsoft.co.jp +# [Yasunari_Yamashita] Yasunari Yamashita mailto:yamasita&omronsoft.co.jp 2003-04 +# [Yazsoft] Yazsoft mailto:info&yazsoft.com +# [Yen_Lee] Yen Lee mailto:YenL&bsquare.com +# [Yiftach_Ravid] Yiftach Ravid mailto:yiftach&haifa.vnet.ibm.com +# [Yih_Wu_Wang] Yih-Wu Wang mailto:sstsys&ix.netcom.com +# [Yilei_Jia] Yilei Jia mailto:yjia&navcomtech.com 2009-03-18 +# [Yin_Ki_Lau] Yin Ki Lau mailto:xdt_software&oodot.com +# [Ying_Da_Lee] Ying-Da Lee mailto:ylee&syl.dl.nec.com +# [Yingchun_Xu] Yingchun Xu mailto:Yingchun_Xu&3com.com +# [Yoann_Vandoorselaere] Yoann Vandoorselaere mailto:yoann&prelude-ids.org 2005-08 +# [Yochai_Cohen] Yochai Cohen mailto:yochai&combox.co.il +# [Yogesh_P_Gajjar] Yogesh P. Gajjar mailto:yogesh&cytel.com +# [Yohann_Sulaiman] Yohann Sulaiman mailto:ports&shaperai.com 2012-06-22 +# [Yohei_Yoshihara] Yohei Yoshihara CX5 SOFTWARE mailto:yohei_yoshihara&cx5software.com 2013-02-04 +# [Yoneda_Terumasa] Yoneda Terumasa mailto:yonedat&pfu.co.jp +# [Yong_Cai] Yong Cai mailto:ycai&emc.com +# [YoonSoo_Kim] YoonSoo Kim mailto:ys71.kim&samsung.com 2006-05 +# [Yoshiaki_Tokumoto] Yoshiaki Tokumoto mailto:toku&pfu.co.jp +# [Yoshihiro_Yamazaki] Yoshihiro Yamazaki mailto:yamazaki&ael.fujitsu.co.jp +# [Yoshikazu_Watanabe] Yoshikazu Watanabe mailto:nabe&sm.sony.co.jp +# [Yoshinobu_Inoue] Yoshinobu Inoue +# [Yoshinobu_Nakamura] Yoshinobu Nakamura mailto:nakamura&np.lps.cs.fujitsu.co.jp +# [Yoshinori_Nakayama] Yoshinori Nakayama mailto:yoshinori_nakayama&komatsu-trilink.jp +# [Yosi_Mass] Yosi Mass mailto:yosimass&haifa.vnet.ibm.com +# [Yossi_Appleboum] Yossi Appleboum mailto:yossia&magicom.co.il +# [Yossi_Appleboum_2] Yossi Appleboum mailto:yossia&web-silicon.com 2005-08 +# [Yossi_Cohen_Shahar] Yossi Cohen-Shahar mailto:yossi&proxy.co.il +# [Yossi_Gal] Yossi Gal mailto:yossi&gilat.com +# [Yuichi_Ohiwa] Yuichi Ohiwa mailto:y-ohiwa&ael.fujitsu.co.jp +# [Yuji_Kuwabara] Yuji Kuwabara mailto:HHG01200&niftyserve.or.jp +# [Yuji_Sasaki] Yuji Sasaki mailto:sasaki&silex.jp +# [Yukihiko_Sakurai] Yukihiko Sakurai mailto:y-sakurai&ael.fujitsu.co.jp +# [Yuri_Machkasov] Yuri Machkasov mailto:yuri&ptc.com +# [Yuri_Machkasov_2] Yuri Machkasov mailto:ymachkasov&servigistics.com 2006-08 +# [Yusuke_Asai] Yusuke Asai mailto:yasai&nw1.file.fc.nec.co.jp +# [Yutaka_Ono] Yutaka Ono mailto:ono&saint.nm.fujitsu.co.jp +# [Yuval_Hager] Yuval Hager mailto:yuval&avramzon.net 2006-01 +# [Yuval_Rakavy] Yuval Rakavy mailto:yuval&villarakavy.com 2012-07-10 +# [Yves_Gattegno] Yves Gattegno mailto:iana&qualystem.org 2004-12 +# [Yvon_Marineau] Yvon Marineau mailto:yvon&simware.com +# [Zach_Metzinger] Zach Metzinger mailto:zach.metzinger&maxim-ic.com +# [Zach_Nies] Zach Nies mailto:znies&creo.com 2002-09 +# [Zachary_Gramana] Zachary Gramana mailto:contactus&excitabyte.com +# [Zan_Oliphant] Zan Oliphant mailto:zan&accessone.com +# [Zane_Bitter] Zane Bitter mailto:zbitter&redhat.com 2011-08-31 +# [Zdenek_Kolba] Zdenek Kolba mailto:zdenek.kolba&id-karta.cz +# [Zenon_Fortuna] Zenon Fortuna mailto:zenon&mips.com 2007-02 +# [ZeroMQ.org] ZeroMQ.org mailto:ph&imatix.com 2012-11-01 +# [Zhengli] Zhengli mailto:std&iwncomm.com 2010-06-28 +# [Zhiming_Li] Zhiming Li 3GPP2 mailto:lizhiming&huawei.com 2012-01-11 +# [Zhizhong_Zhuang] Zhizhong Zhuang mailto:ZZhuang&optellios.com 2006-12 +# [Zia_Bhatti] Zia Bhatti mailto:zia&netright.com +# [Ziad_Sawalha] Ziad Sawalha Rackspace Hosting mailto:ziad.sawalha&rackspace.com 2011-08-15 +# [Zygmunt_Wiercioch] Zygmunt Wiercioch mailto:zyg&jetform.com +# [admin] admin mailto:iana&sightlinesystems.com +# [base_t_Interactive] 10base-t Interactive mailto:support&10base-t.com +# [brockman] mailto:brockman&ccmail.com +# [ddt] mailto:ddt&idcube.idsoftware.com +# [equinux] equinux mailto:mediacentral&equinux.comdu +# [flanne] flanne@vnet.IBM.COM +# [gary] mailto:gary&airsoft.com +# [gdeinsta] gdeinsta mailto:gdeinsta&jetform.com +# [gilmer] mailto:gilmer&gandalf.ca +# [gunner] mailto:gunner&ibeam.intel.com +# [iOS_Software] iOS Software mailto:ios&free.fr +# [iThink_Software] iThink Software mailto:contact&ithinksw.com +# [mackin] mailto:mackin&us.oracle.com +# [naonao] mailto:naonao&kikaku.mmp.fujitsu.co.jp +# [sn_w_of_renegade_lab] sn0w of renegade labs mailto:sn0w&devious.tsongkie.com 2003-11 +# +# Footnote +# +# [1] It is only appropriate to use these values in explicitly- +# configured experiments; they MUST NOT be shipped as defaults in +# implementations. See RFC 3692 for details. + +# Local NetBSD additions [aliases or missing stuff] +sink 9/tcp null +sink 9/udp null +users 11/tcp +quote 17/tcp +quote 17/udp +ttytst 19/tcp source +ttytst 19/udp source +mail 25/tcp +mail 25/udp +timserver 37/tcp +timserver 37/udp +resource 39/tcp +resource 39/udp +netrjs 77/tcp +netrjs 77/udp +krb5 88/tcp +krb5 88/udp +hostnames 101/tcp +hostnames 101/udp +tsap 102/tcp +tsap 102/udp +cso-ns 105/tcp +cso-ns 105/udp +poppass 106/tcp poppassd +postoffice 109/tcp +rpcbind 111/tcp +rpcbind 111/udp +authentications 113/tcp +readnews 119/tcp untp +imap2 143/tcp imap4 +imap2 143/udp imap4 +z3950 210/tcp wais +z3950 210/udp wais +krcmd 544/tcp +ekshell 545/tcp +whod 513/udp +cmd 514/tcp +spooler 515/tcp +spooler 515/udp +route 520/udp routed +timeserver 525/tcp +timeserver 525/udp +newdate 526/tcp +newdate 526/udp +rpc 530/tcp +rpc 530/udp +chat 531/tcp +chat 531/udp +uucpd 540/tcp +uucpd 540/udp +rdist 541/tcp rdistd +rfs_server 556/tcp rfs # Brunhoff remote file system +smtps 465/tcp # smtp protocol over TLS/SSL +smtps 465/udp # smtp protocol over TLS/SSL +kdc 750/tcp kerberos4 +kdc 750/udp kerberos4 +kerberos-master 751/udp # Kerberos admin server udp +kerberos-master 751/tcp # Kerberos admin server tcp +hprop 754/tcp # Heimdal KDC database propagation +krbupdate 760/tcp kreg # BSD Kerberos registration +kpwd 761/tcp # old BSD Kerberos `passwd' +supfilesrv 871/tcp # SUP server +swat 901/tcp # Samba Web Administration Tool +kpop 1109/tcp # Kerberos POP server +supfiledbg 1127/tcp # SUP debugging +radacct 1813/tcp +radacct 1813/udp +lmtp 2003/tcp # Local Mail Transfer Protocol +nfsd 2049/udp # Sun NFS +nfsd 2049/tcp # Sun NFS +eklogin 2105/tcp # Kerberos encrypted `rlogin' +zephyr-hm-srv 2105/udp # Zephyr hm-serv connection +ekshell2 2106/tcp # Encrypted kshell - UColorado, Boulder +fud 4201/udp # Cyrus IMAP finger-like service +X11 6000/tcp # X Window System +ircd 6667/tcp # Often used IRC port (also see 194) +kamanda 10081/udp # Amanda with Kerberos +amandaidx 10082/tcp # Amanda index server +amidxtape 10083/tcp # Amanda dump image server +hunt 26740/udp # multi-player/multi-host maze-wars +# +# Netatalk (in-kernel Appletalk) services +# Note: The running kernel must be configured with "options NETATALK" +# and software not included in NetBSD, such as Netatalk version 1.4b2 +# or later, must be used to take advantage of these services. +# +rtmp 1/ddp # Routing Table Maintenance Protocol +nbp 2/ddp # Name Binding Protocol +echo 4/ddp # AppleTalk Echo Protocol +zip 6/ddp # Zone Information Protocol diff --git a/data/settings/network/protocols b/data/settings/network/protocols new file mode 100644 index 0000000000..4b2e406145 --- /dev/null +++ b/data/settings/network/protocols @@ -0,0 +1,278 @@ +# $NetBSD: protocols,v 1.23.6.2 2014/05/22 11:27:18 yamt Exp $ +# See also: protocols(5), http://www.sethwklein.net/projects/iana-etc/ +# +# Last Updated +# 2013-02-17 +# +# This registry is also available in plain text. +# +# Registry included below +# +# * Assigned Internet Protocol Numbers +# +# Assigned Internet Protocol Numbers +# +# Registration Procedure(s) +# +# IESG Approval or Standards Action +# +# Reference +# [RFC5237] +# +# Note +# +# In the Internet Protocol version 4 (IPv4) [RFC791] there is a field +# called "Protocol" to identify the next level protocol. This is an 8 +# bit field. In Internet Protocol version 6 (IPv6) [RFC2460], this field +# is called the "Next Header" field. +# +# Decimal Keyword Protocol Reference +# protocol num aliases # comments +hopopt 0 HOPOPT # IPv6 Hop-by-Hop Option [RFC2460] +icmp 1 ICMP # Internet Control Message [RFC792] +igmp 2 IGMP # Internet Group Management [RFC1112] +ggp 3 GGP # Gateway-to-Gateway [RFC823] +ipv4 4 IPv4 # IPv4 encapsulation [RFC2003] +st 5 ST # Stream [RFC1190][RFC1819] +tcp 6 TCP # Transmission Control [RFC793] +cbt 7 CBT # CBT [Tony_Ballardie] +egp 8 EGP # Exterior Gateway Protocol [RFC888][David_Mills] +igp 9 IGP # any private interior gateway (used by [Internet_Assigned_Numbers_Authority] +# Cisco for their IGRP) +bbn-rcc-mon 10 BBN-RCC-MON # BBN RCC Monitoring [Steve_Chipman] +nvp-ii 11 NVP-II # Network Voice Protocol [RFC741][Steve_Casner] +# [Boggs, D., J. Shoch, E. Taft, and R. Metcalfe, "PUP: An Internetwork +pup 12 PUP # PUP Architecture", XEROX Palo Alto Research Center, CSL-79-10, July 1979; also in IEEE +# Transactions on Communication, Volume COM-28, Number 4, April 1980.][[XEROX]] +argus 13 ARGUS # ARGUS [Robert_W_Scheifler] +emcon 14 EMCON # EMCON [] +xnet 15 XNET # Cross Net Debugger [Haverty, J., "XNET Formats for Internet Protocol Version 4", IEN 158, October +# 1980.][Jack_Haverty] +chaos 16 CHAOS # Chaos [J_Noel_Chiappa] +udp 17 UDP # User Datagram [RFC768][Jon_Postel] +mux 18 MUX # Multiplexing [Cohen, D. and J. Postel, "Multiplexing Protocol", IEN 90, USC/Information +# Sciences Institute, May 1979.][Jon_Postel] +dcn-meas 19 DCN-MEAS # DCN Measurement Subsystems [David_Mills] +hmp 20 HMP # Host Monitoring [RFC869][Bob_Hinden] +prm 21 PRM # Packet Radio Measurement [Zaw_Sing_Su] +# ["The Ethernet, A Local Area Network: Data Link Layer and Physical Layer +# Specification", AA-K759B-TK, Digital Equipment Corporation, Maynard, MA. Also as: +# "The Ethernet - A Local Area Network", Version 1.0, Digital Equipment Corporation, +xns-idp 22 XNS-IDP # XEROX NS IDP Intel Corporation, Xerox Corporation, September 1980. And: "The Ethernet, A Local +# Area Network: Data Link Layer and Physical Layer Specifications", Digital, Intel +# and Xerox, November 1982. And: XEROX, "The Ethernet, A Local Area Network: Data +# Link Layer and Physical Layer Specification", X3T51/80-50, Xerox Corporation, +# Stamford, CT., October 1980.][[XEROX]] +trunk-1 23 TRUNK-1 # Trunk-1 [Barry_Boehm] +trunk-2 24 TRUNK-2 # Trunk-2 [Barry_Boehm] +leaf-1 25 LEAF-1 # Leaf-1 [Barry_Boehm] +leaf-2 26 LEAF-2 # Leaf-2 [Barry_Boehm] +rdp 27 RDP # Reliable Data Protocol [RFC908][Bob_Hinden] +irtp 28 IRTP # Internet Reliable Transaction [RFC938][Trudy_Miller] +iso-tp4 29 ISO-TP4 # ISO Transport Protocol Class 4 [RFC905][] +netblt 30 NETBLT # Bulk Data Transfer Protocol [RFC969][David_Clark] +# [Shuttleworth, B., "A Documentary of MFENet, a National Computer Network", +mfe-nsp 31 MFE-NSP # MFE Network Services Protocol UCRL-52317, Lawrence Livermore Labs, Livermore, California, June +# 1977.][Barry_Howard] +merit-inp 32 MERIT-INP # MERIT Internodal Protocol [Hans_Werner_Braun] +dccp 33 DCCP # Datagram Congestion Control Protocol [RFC4340] +3pc 34 3PC # Third Party Connect Protocol [Stuart_A_Friedberg] +idpr 35 IDPR # Inter-Domain Policy Routing Protocol [Martha_Steenstrup] +xtp 36 XTP # XTP [Greg_Chesson] +ddp 37 DDP # Datagram Delivery Protocol [Wesley_Craig] +idpr-cmtp 38 IDPR-CMTP # IDPR Control Message Transport Proto [Martha_Steenstrup] +tp++ 39 TP++ # TP++ Transport Protocol [Dirk_Fromhein] +il 40 IL # IL Transport Protocol [Dave_Presotto] +ipv6 41 IPv6 # IPv6 encapsulation [RFC2473] +sdrp 42 SDRP # Source Demand Routing Protocol [Deborah_Estrin] +ipv6-route 43 IPv6-Route # Routing Header for IPv6 [Steve_Deering] +ipv6-frag 44 IPv6-Frag # Fragment Header for IPv6 [Steve_Deering] +idrp 45 IDRP # Inter-Domain Routing Protocol [Sue_Hares] +rsvp 46 RSVP # Reservation Protocol [RFC2205][RFC3209][Bob_Braden] +gre 47 GRE # Generic Routing Encapsulation [RFC1701][Tony_Li] +dsr 48 DSR # Dynamic Source Routing Protocol [RFC4728] +bna 49 BNA # BNA [Gary Salamon] +esp 50 ESP # Encap Security Payload [RFC4303] +ah 51 AH # Authentication Header [RFC4302] +i-nlsp 52 I-NLSP # Integrated Net Layer Security TUBA [K_Robert_Glenn] +swipe 53 SWIPE # IP with Encryption [John_Ioannidis] +narp 54 NARP # NBMA Address Resolution Protocol [RFC1735] +mobile 55 MOBILE # IP Mobility [Charlie_Perkins] +tlsp 56 TLSP # Transport Layer Security Protocol [Christer_Oberg] +# using Kryptonet key management +skip 57 SKIP # SKIP [Tom_Markson] +ipv6-icmp 58 IPv6-ICMP # ICMP for IPv6 [RFC2460] +ipv6-nonxt 59 IPv6-NoNxt # No Next Header for IPv6 [RFC2460] +ipv6-opts 60 IPv6-Opts # Destination Options for IPv6 [RFC2460] +# 61 any host internal protocol [Internet_Assigned_Numbers_Authority] +cftp 62 CFTP # CFTP [Forsdick, H., "CFTP", Network Message, Bolt Beranek and Newman, January +# 1982.][Harry_Forsdick] +# 63 any local network [Internet_Assigned_Numbers_Authority] +sat-expak 64 SAT-EXPAK # SATNET and Backroom EXPAK [Steven_Blumenthal] +kryptolan 65 KRYPTOLAN # Kryptolan [Paul Liu] +rvd 66 RVD # MIT Remote Virtual Disk Protocol [Michael_Greenwald] +ippc 67 IPPC # Internet Pluribus Packet Core [Steven_Blumenthal] +# 68 any distributed file system [Internet_Assigned_Numbers_Authority] +sat-mon 69 SAT-MON # SATNET Monitoring [Steven_Blumenthal] +visa 70 VISA # VISA Protocol [Gene_Tsudik] +ipcv 71 IPCV # Internet Packet Core Utility [Steven_Blumenthal] +cpnx 72 CPNX # Computer Protocol Network Executive [David Mittnacht] +cphb 73 CPHB # Computer Protocol Heart Beat [David Mittnacht] +wsn 74 WSN # Wang Span Network [Victor Dafoulas] +pvp 75 PVP # Packet Video Protocol [Steve_Casner] +br-sat-mon 76 BR-SAT-MON # Backroom SATNET Monitoring [Steven_Blumenthal] +sun-nd 77 SUN-ND # SUN ND PROTOCOL-Temporary [William_Melohn] +wb-mon 78 WB-MON # WIDEBAND Monitoring [Steven_Blumenthal] +wb-expak 79 WB-EXPAK # WIDEBAND EXPAK [Steven_Blumenthal] +iso-ip 80 ISO-IP # ISO Internet Protocol [Marshall_T_Rose] +vmtp 81 VMTP # VMTP [Dave_Cheriton] +secure-vmtp 82 SECURE-VMTP # SECURE-VMTP [Dave_Cheriton] +vines 83 VINES # VINES [Brian Horn] +ttp 84 TTP iptm IPTM # TTP [Jim_Stevens] +#iptm 84 IPTM # Protocol Internet Protocol Traffic [Jim_Stevens] +# Manager +nsfnet-igp 85 NSFNET-IGP # NSFNET-IGP [Hans_Werner_Braun] +dgp 86 DGP # Dissimilar Gateway Protocol [M/A-COM Government Systems, "Dissimilar Gateway Protocol Specification, Draft +# Version", Contract no. CS901145, November 16, 1987.][Mike_Little] +tcf 87 TCF # TCF [Guillermo_A_Loyola] +eigrp 88 EIGRP # EIGRP [Cisco Systems, "Gateway Server Reference Manual", Manual Revision B, January 10, +# 1988.][Guenther_Schreiner] +ospfigp 89 OSPFIGP # OSPFIGP [RFC1583][RFC2328][RFC5340][John_Moy] +# [Welch, B., "The Sprite Remote Procedure Call System", Technical Report, +sprite-rpc 90 Sprite-RPC # Sprite RPC Protocol UCB/Computer Science Dept., 86/302, University of California at Berkeley, June +# 1986.][Bruce Willins] +larp 91 LARP # Locus Address Resolution Protocol [Brian Horn] +mtp 92 MTP # Multicast Transport Protocol [Susie_Armstrong] +ax.25 93 AX.25 # AX.25 Frames [Brian_Kantor] +ipip 94 IPIP # IP-within-IP Encapsulation Protocol [John_Ioannidis] +micp 95 MICP # Mobile Internetworking Control Pro. [John_Ioannidis] +scc-sp 96 SCC-SP # Semaphore Communications Sec. Pro. [Howard_Hart] +etherip 97 ETHERIP # Ethernet-within-IP Encapsulation [RFC3378] +encap 98 ENCAP # Encapsulation Header [RFC1241][Robert_Woodburn] +# 99 any private encryption scheme [Internet_Assigned_Numbers_Authority] +gmtp 100 GMTP # GMTP [[RXB5]] +ifmp 101 IFMP # Ipsilon Flow Management Protocol [Bob_Hinden][November 1995, 1997.] +pnni 102 PNNI # PNNI over IP [Ross_Callon] +pim 103 PIM # Protocol Independent Multicast [RFC4601][Dino_Farinacci] +aris 104 ARIS # ARIS [Nancy_Feldman] +scps 105 SCPS # SCPS [Robert_Durst] +qnx 106 QNX # QNX [Michael_Hunter] +a/n 107 A/N # Active Networks [Bob_Braden] +ipcomp 108 IPComp # IP Payload Compression Protocol [RFC2393] +snp 109 SNP # Sitara Networks Protocol [Manickam_R_Sridhar] +compaq-peer 110 Compaq-Peer # Compaq Peer Protocol [Victor_Volpe] +ipx-in-ip 111 IPX-in-IP # IPX in IP [CJ_Lee] +vrrp 112 VRRP # Virtual Router Redundancy Protocol [RFC5798] +pgm 113 PGM # PGM Reliable Transport Protocol [Tony_Speakman] +# 114 any 0-hop protocol [Internet_Assigned_Numbers_Authority] +l2tp 115 L2TP # Layer Two Tunneling Protocol [RFC3931][Bernard_Aboba] +ddx 116 DDX # D-II Data Exchange (DDX) [John_Worley] +iatp 117 IATP # Interactive Agent Transfer Protocol [John_Murphy] +stp 118 STP # Schedule Transfer Protocol [Jean_Michel_Pittet] +srp 119 SRP # SpectraLink Radio Protocol [Mark_Hamilton] +uti 120 UTI # UTI [Peter_Lothberg] +smp 121 SMP # Simple Message Protocol [Leif_Ekblad] +sm 122 SM # SM [Jon_Crowcroft] +ptp 123 PTP # Performance Transparency Protocol [Michael_Welzl] +isis 124 ISIS # over IPv4 [Tony_Przygienda] +fire 125 FIRE # [Criag_Partridge] +crtp 126 CRTP # Combat Radio Transport Protocol [Robert_Sautter] +crudp 127 CRUDP # Combat Radio User Datagram [Robert_Sautter] +sscopmce 128 SSCOPMCE # [Kurt_Waber] +iplt 129 IPLT # [[Hollbach]] +sps 130 SPS # Secure Packet Shield [Bill_McIntosh] +pipe 131 PIPE # Private IP Encapsulation within IP [Bernhard_Petri] +sctp 132 SCTP # Stream Control Transmission Protocol [Randall_R_Stewart] +fc 133 FC # Fibre Channel [Murali_Rajagopal][RFC6172] +rsvp-e2e-ignore 134 RSVP-E2E-IGNORE # [RFC3175] +mobility 135 Mobility # Header [RFC6275] +udplite 136 UDPLite # [RFC3828] +mpls-in-ip 137 MPLS-in-IP # [RFC4023] +manet 138 MANET # MANET Protocols [RFC5498] +hip 139 HIP # Host Identity Protocol [RFC5201] +shim6 140 Shim6 # Shim6 Protocol [RFC5533] +wesp 141 WESP # Wrapped Encapsulating Security [RFC5840] +# Payload +rohc 142 ROHC # Robust Header Compression [RFC5858] +# 143-252 Unassigned [Internet_Assigned_Numbers_Authority] +# 253 Use for experimentation and testing [RFC3692] +# 254 Use for experimentation and testing [RFC3692] +reserved 255 Reserved # [Internet_Assigned_Numbers_Authority] +# +# People +# +# ID Name Contact URI Last Updated +# [Barry_Boehm] Barry Boehm mailto:boehm&arpa.mil +# [Barry_Howard] Barry Howard mailto:Howard&nmfecc.llnl.gov +# [Bernard_Aboba] Bernard Aboba mailto:bernardaµsoft.com 1998-04 +# [Bernhard_Petri] Bernhard Petri mailto:bernhard.petri&siemens.com 2012-07-09 +# [Bill_McIntosh] Bill McIntosh mailto:BMcIntosh&fortresstech.com +# [Bob_Braden] Bob Braden mailto:braden&isi.edu 1997-07 +# [Bob_Hinden] Bob Hinden mailto:bob.hinden&gmail.com 2013-02-17 +# [Brian_Kantor] Brian Kantor mailto:brian&ucsd.edu +# [CJ_Lee] CJ Lee mailto:cj_lee&novell.com 1997-10 +# [Charlie_Perkins] Charlie Perkins mailto:perk&watson.ibm.com 1994-10 +# [Christer_Oberg] Christer Oberg mailto:chg&bull.se 1994-10 +# [Criag_Partridge] Criag Partridge mailto:craig&bbn.com 1999-08 +# [Dave_Cheriton] Dave Cheriton mailto:cheriton&pescadero.stanford.edu +# [Dave_Presotto] Dave Presotto mailto:presotto&plan9.att.com 1995-07 +# [David_Clark] David Clark mailto:ddc&lcs.mit.edu +# [David_Mills] David Mills mailto:Mills&huey.udel.edu +# [Deborah_Estrin] Deborah Estrin mailto:estrin&usc.edu +# [Dino_Farinacci] Dino Farinacci mailto:dino&cisco.com 1996-03 +# [Dirk_Fromhein] Dirk Fromhein mailto:df&watershed.com +# [Gene_Tsudik] Gene Tsudik mailto:tsudik&usc.edu +# [Greg_Chesson] Greg Chesson mailto:Greg&sgi.com +# [Guenther_Schreiner] Guenther Schreiner mailto:snmp-admin&ira.uka.de +# [Guillermo_A_Loyola] Guillermo A. Loyola mailto:LOYOLA&ibm.com +# [Hans_Werner_Braun] Hans-Werner Braun mailto:HWB&mcr.umich.edu +# [Harry_Forsdick] Harry Forsdick mailto:Forsdick&bbn.com +# [Howard_Hart] Howard Hart mailto:hch&hybrid.com +# [Internet_Assigned_Numbers_Authority] Internet Assigned Numbers Authority mailto:iana&iana.org 1995-06 +# [J_Noel_Chiappa] J. Noel Chiappa mailto:JNC&xx.lcs.mit.edu +# [Jack_Haverty] Jack Haverty mailto:jhaverty&oracle.com +# [Jean_Michel_Pittet] Jean-Michel Pittet mailto:jmp&gandalf.engr.sgi.com 1998-11 +# [Jim_Stevens] Jim Stevens mailto:jasteven&rockwellcollins.com 2011-01-26 +# [John_Ioannidis] John Ioannidis mailto:ji&cs.columbia.edu +# [John_Moy] John Moy mailto:jmoy&proteon.com +# [John_Murphy] John Murphy mailto:john.m.murphy&mci.com 1998-10 +# [John_Worley] John Worley mailto:worley&milehigh.net 1998-06 +# [Jon_Crowcroft] Jon Crowcroft mailto:jon&cs.ucl.ac.uk 1999-06 +# [Jon_Postel] Jon Postel mailto:postel&isi.edu +# [K_Robert_Glenn] K. Robert Glenn mailto:glenn&osi.ncsl.nist.gov +# [Kurt_Waber] Kurt Waber mailto:kurt.waber&swisscom.com 1999-08 +# [Leif_Ekblad] Leif Ekblad mailto:leif&rdos.net 2012-08-21 +# [Manickam_R_Sridhar] Manickam R. Sridhar mailto:msridhar&sitaranetworks.com 1997-09 +# [Mark_Hamilton] Mark Hamilton mailto:mah&spectralink.com 1998-11 +# [Marshall_T_Rose] Marshall T. Rose mailto:mrose&dbc.mtview.ca.us +# [Martha_Steenstrup] Martha Steenstrup mailto:MSteenst&bbn.com +# [Michael_Greenwald] Michael Greenwald mailto:Greenwald&scrc-stony-brook.symbolics.com +# [Michael_Hunter] Michael Hunter mailto:mphunter&qnx.com 1997-07 +# [Michael_Welzl] Michael Welzl mailto:michael&tk.uni-linz.ac.at 1999-08 +# [Mike_Little] Mike Little mailto:little&macom4.arpa +# [Murali_Rajagopal] Murali Rajagopal mailto:murali&gadzoox.com 2000-05 +# [Nancy_Feldman] Nancy Feldman mailto:nkf&vnet.ibm.com 1997-01 +# [Peter_Lothberg] Peter Lothberg mailto:roll&stupi.se 1999-03 +# [Randall_R_Stewart] Randall R. Stewart mailto:rrs&lakerest.net 2000-04 +# [Robert_Durst] Robert Durst mailto:durst&mitre.org 1997-03 +# [Robert_Sautter] Robert Sautter mailto:rsautter&acdnj.itt.com 1999-08 +# [Robert_W_Scheifler] Robert W. Scheifler mailto:RWS&xx.lcs.mit.edu +# [Robert_Woodburn] Robert Woodburn mailto:woody&cseic.saic.com +# [Ross_Callon] Ross Callon mailto:rcallon&baynetworks.com 1995-12 +# [Steve_Casner] Steve Casner mailto:casner&isi.edu +# [Steve_Chipman] Steve Chipman mailto:Chipman&f.bbn.com +# [Steve_Deering] Steve Deering mailto:deering&parc.xerox.com 1995-03 +# [Steven_Blumenthal] Steven Blumenthal mailto:BLUMENTHAL&vax.bbn.com +# [Stuart_A_Friedberg] Stuart A. Friedberg mailto:stuart&cs.wisc.edu +# [Sue_Hares] Sue Hares mailto:skh&merit.edu +# [Susie_Armstrong] Susie Armstrong mailto:Armstrong.wbst128&xerox.com +# [Tom_Markson] Tom Markson mailto:markson&osmosys.ingog.com 1995-09 +# [Tony_Ballardie] Tony Ballardie mailto:A.Ballardie&cs.ucl.ac.uk +# [Tony_Li] Tony Li mailto:tony.li&tony.li 2012-10-17 +# [Tony_Przygienda] Tony Przygienda mailto:prz&siara.com 1999-08 +# [Tony_Speakman] Tony Speakman mailto:speakman&cisco.com 1998-01 +# [Trudy_Miller] Trudy Miller mailto:Trudy&acc.com +# [Victor_Volpe] Victor Volpe mailto:vvolpe&smtp.microcom.com 1997-10 +# [Wesley_Craig] Wesley Craig mailto:Wesley.Craig&terminator.cc.umich.edu +# [William_Melohn] William Melohn mailto:Melohn&sun.com +# [Zaw_Sing_Su] Zaw-Sing Su mailto:ZSu&tsca.istc.sri. diff --git a/headers/posix/arpa/inet.h b/headers/posix/arpa/inet.h index 95ee6e3a91..b69b148662 100644 --- a/headers/posix/arpa/inet.h +++ b/headers/posix/arpa/inet.h @@ -22,15 +22,15 @@ char* inet_cidr_ntop(int family, const void* source, int bits, char* dest, size_t destSize); int inet_cidr_pton(int family, const char* sourceString, void* dest, int* _bits); -u_long inet_lnaof(struct in_addr address); -struct in_addr inet_makeaddr(u_long net, u_long host); +in_addr_t inet_lnaof(struct in_addr address); +struct in_addr inet_makeaddr(in_addr_t net, in_addr_t host); char* inet_net_ntop(int family, const void* source, int bits, char* dest, size_t destSize); int inet_net_pton(int family, const char* sourceString, void* dest, size_t destSize); char* inet_neta(u_long source, char* dest, size_t destSize); -u_long inet_netof(struct in_addr address); -u_long inet_network(const char* addressString); +in_addr_t inet_netof(struct in_addr address); +in_addr_t inet_network(const char* addressString); char* inet_ntoa(struct in_addr address); const char* inet_ntop(int family, const void* source, char* dest, socklen_t destSize); diff --git a/headers/posix/arpa/nameser.h b/headers/posix/arpa/nameser.h index ae88a7a9aa..1d166c8146 100644 --- a/headers/posix/arpa/nameser.h +++ b/headers/posix/arpa/nameser.h @@ -586,10 +586,10 @@ extern "C" { #endif int ns_msg_getflag(ns_msg, int); -u_int ns_get16(const u_char *); -u_long ns_get32(const u_char *); -void ns_put16(u_int, u_char *); -void ns_put32(u_long, u_char *); +uint16_t ns_get16(const u_char *); +uint32_t ns_get32(const u_char *); +void ns_put16(uint16_t, u_char *); +void ns_put32(uint32_t, u_char *); int ns_initparse(const u_char *, int, ns_msg *); int ns_skiprr(const u_char *, const u_char *, ns_sect, int); int ns_parserr(ns_msg *, ns_sect, int, ns_rr *); diff --git a/headers/posix/netdb.h b/headers/posix/netdb.h index c6a6aff208..1c94c3c210 100644 --- a/headers/posix/netdb.h +++ b/headers/posix/netdb.h @@ -95,6 +95,7 @@ #include #include +#include #ifndef _PATH_NETWORKS #define _PATH_NETWORKS "/etc/networks" @@ -128,7 +129,7 @@ struct netent { char *n_name; /* official name of net */ char **n_aliases; /* alias list */ int n_addrtype; /* net address type */ - unsigned long n_net; /* network # */ + in_addr_t n_net; /* network # */ }; struct servent { @@ -238,13 +239,13 @@ void endnetent(void); void endprotoent(void); void endservent(void); void freehostent(struct hostent *host); -struct hostent *gethostbyaddr(const char *address, int length, int type); +struct hostent *gethostbyaddr(const char *address, socklen_t length, int type); struct hostent *gethostbyname(const char *name); struct hostent *gethostbyname2(const char *name, int type); struct hostent *gethostent(void); struct hostent *getipnodebyaddr(const void *, size_t, int, int *); struct hostent *getipnodebyname(const char *, int, int, int *); -struct netent *getnetbyaddr(unsigned long, int); +struct netent *getnetbyaddr(uint32_t, int); struct netent *getnetbyname(const char *); struct netent *getnetent(void); struct protoent *getprotobyname(const char *); @@ -264,6 +265,7 @@ int getaddrinfo(const char *, const char *, const struct addrinfo *, struct addrinfo **); int getnameinfo(const struct sockaddr *, socklen_t, char *, socklen_t, char *, socklen_t, int); +struct addrinfo *allocaddrinfo(socklen_t); void freeaddrinfo(struct addrinfo *); const char *gai_strerror(int); @@ -283,21 +285,23 @@ struct netent *getnetent_r(struct netent *, char *, int); void setnetent_r(int); void endnetent_r(void); +struct protoent_data; struct protoent *getprotobyname_r(const char *, - struct protoent *, char *, int); + struct protoent *, struct protoent_data *); struct protoent *getprotobynumber_r(int, - struct protoent *, char *, int); -struct protoent *getprotoent_r(struct protoent *, char *, int); -void setprotoent_r(int); -void endprotoent_r(void); + struct protoent *, struct protoent_data *); +struct protoent *getprotoent_r(struct protoent *, struct protoent_data *); +void setprotoent_r(int, struct protoent_data *); +void endprotoent_r(struct protoent_data *); +struct servent_data; struct servent *getservbyname_r(const char *name, const char *, - struct servent *, char *, int); + struct servent *, struct servent_data *); struct servent *getservbyport_r(int port, const char *, - struct servent *, char *, int); -struct servent *getservent_r(struct servent *, char *, int); -void setservent_r(int); -void endservent_r(void); + struct servent *, struct servent_data *); +struct servent *getservent_r(struct servent *, struct servent_data *); +void setservent_r(int, struct servent_data *); +void endservent_r(struct servent_data *); __END_DECLS #endif /* _NETDB_H_ */ diff --git a/headers/posix/netinet6/in6.h b/headers/posix/netinet6/in6.h index f348d60a27..362b248ed3 100644 --- a/headers/posix/netinet6/in6.h +++ b/headers/posix/netinet6/in6.h @@ -31,6 +31,15 @@ struct sockaddr_in6 { #define IN6ADDR_LOOPBACK_INIT {{ \ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }} +#define IN6ADDR_NODELOCAL_ALLNODES_INIT {{ \ + 0xff, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }} +#define IN6ADDR_LINKLOCAL_ALLNODES_INIT {{ \ + 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01 }} +#define IN6ADDR_LINKLOCAL_ALLROUTERS_INIT {{ \ + 0xff, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, \ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02 }} extern const struct in6_addr in6addr_any; extern const struct in6_addr in6addr_loopback; diff --git a/headers/posix/resolv.h b/headers/posix/resolv.h index 3e061b5cc6..8b6507f13a 100644 --- a/headers/posix/resolv.h +++ b/headers/posix/resolv.h @@ -272,9 +272,16 @@ union res_sockaddr_union { /* Things involving an internal (static) resolver context. */ __BEGIN_DECLS +extern struct __res_state *__res_get_state(void); +extern void __res_put_state(struct __res_state *); + +/* + * Source and Binary compatibility; _res will not work properly + * with multi-threaded programs. + */ extern struct __res_state *__res_state(void); -__END_DECLS #define _res (*__res_state()) +__END_DECLS #ifndef __BIND_NOSTATIC #define fp_nquery __fp_nquery @@ -409,7 +416,7 @@ const char * loc_ntoa(const u_char *, char *); int dn_skipname(const u_char *, const u_char *); void putlong(u_int32_t, u_char *); void putshort(u_int16_t, u_char *); -#if !defined(__ultrix__) && !defined(__HAIKU__) +#if !defined(__ultrix__) u_int16_t _getshort(const u_char *); u_int32_t _getlong(const u_char *); #endif diff --git a/src/kits/network/Jamfile b/src/kits/network/Jamfile index c57bdd8a8b..2c1c9423bb 100644 --- a/src/kits/network/Jamfile +++ b/src/kits/network/Jamfile @@ -1,10 +1,13 @@ SubDir HAIKU_TOP src kits network ; UsePrivateHeaders libroot net shared ; +UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility bsd ] : true ; local services = [ FGristFiles services ] ; SEARCH on $(services) = [ FDirName $(SUBDIR) libbind defaults ] ; +SubDirC++Flags [ FDefines _BSD_SOURCE=1 ] ; + local architectureObject ; for architectureObject in [ MultiArchSubDirSetup ] { on $(architectureObject) { @@ -16,10 +19,11 @@ for architectureObject in [ MultiArchSubDirSetup ] { SharedLibrary $(libnetwork) : init.cpp interfaces.cpp + getifaddrs.cpp socket.cpp r5_compatibility.cpp : - libbind.o + libbind.o libutil.a bsd [ TargetLibsupc++ ] ; diff --git a/src/kits/network/getifaddrs.cpp b/src/kits/network/getifaddrs.cpp new file mode 100644 index 0000000000..eeb64e7be9 --- /dev/null +++ b/src/kits/network/getifaddrs.cpp @@ -0,0 +1,157 @@ +/* + * Copyright 2015, Haiku, Inc. All Rights Reserved. + * Distributed under the terms of the MIT License. + * + * Authors: + * Adrien Destugues, pulkomandy@pulkomandy.tk + */ + + +#include +#include +#include +#include +#include +#include +#include + +#include + +#include + +#include + + +int getifaddrs(struct ifaddrs **ifap) +{ + if (ifap == NULL) { + errno = B_BAD_VALUE; + return -1; + } + +#if 0 + uint32 cookie; +#endif + + // get a list of all interfaces + + int socket = ::socket(AF_INET, SOCK_DGRAM, 0); + if (socket < 0) + return errno; + + FileDescriptorCloser closer(socket); + + // get interface count + ifconf config; + config.ifc_len = sizeof(config.ifc_value); + if (ioctl(socket, SIOCGIFCOUNT, &config, sizeof(struct ifconf)) < 0) + return errno; + + size_t count = (size_t)config.ifc_value; + if (count == 0) + return B_BAD_VALUE; + + // allocate a buffer for ifreqs for all interfaces + char* buffer = (char*)malloc(count * sizeof(struct ifreq)); + if (buffer == NULL) + return B_NO_MEMORY; + + MemoryDeleter deleter(buffer); + + // get interfaces configuration + config.ifc_len = count * sizeof(struct ifreq); + config.ifc_buf = buffer; + if (ioctl(socket, SIOCGIFCONF, &config, sizeof(struct ifconf)) < 0) + return errno; + + ifreq* interfaces = (ifreq*)buffer; + ifreq* end = (ifreq*)(buffer + config.ifc_len); + + struct ifaddrs* previous = NULL; + struct ifaddrs* current = NULL; + + for (uint32_t i = 0; interfaces < end; i++) { + current = new(std::nothrow) ifaddrs(); + if (current == NULL) { + freeifaddrs(previous); + errno = B_NO_MEMORY; + return -1; + } + + // Chain this interface with the next one + current->ifa_next = previous; + previous = current; + + current->ifa_name = strdup(interfaces[0].ifr_name); + current->ifa_addr = new sockaddr(interfaces[0].ifr_addr); + // still needs: flags, netmask, dst:broadcast addr + + ioctl(socket, SIOCGIFFLAGS, &interfaces[0], sizeof(struct ifconf)); + current->ifa_flags = interfaces[0].ifr_flags; + ioctl(socket, SIOCGIFNETMASK, &interfaces[0], sizeof(struct ifconf)); + current->ifa_netmask = new sockaddr(interfaces[0].ifr_mask); + ioctl(socket, SIOCGIFDSTADDR, &interfaces[0], sizeof(struct ifconf)); + current->ifa_dstaddr = new sockaddr(interfaces[0].ifr_dstaddr); + + // TODO we may also need to get other addresses for the same interface? +#if 0 + BNetworkInterfaceAddress address; + int32 i = 0; + while (interface->GetAddressAt(i++, address) == B_OK) { + if (interface == NULL) { + freeifaddrs(previous); + errno = B_NO_MEMORY; + return -1; + } + + current = new(std::nothrow) ifaddrs(); + if (current == NULL) { + freeifaddrs(previous); + errno = B_NO_MEMORY; + return -1; + } + + // Chain this interface with the next one + current->ifa_next = previous; + previous = current; + + current->ifa_data = interface; + current->ifa_name = interface->Name(); + // Points to the name in the BNetworkInterface instance, which + // is added as ifa_data so freeifaddrs can release it. + current->ifa_flags = address.Flags(); + current->ifa_addr = new sockaddr(address.Address().SockAddr()); + current->ifa_netmask = new sockaddr(address.Mask().SockAddr()); + current->ifa_dstaddr = new sockaddr(address.Destination().SockAddr()); + } + + interface = new(std::nothrow) BNetworkInterface(); +#endif + + // move on to next interface + interfaces = (ifreq*)((uint8_t*)interfaces + + _SIZEOF_ADDR_IFREQ(interfaces[0])); + } + + *ifap = current; + + return 0; +} + + +void +freeifaddrs(struct ifaddrs *ifa) +{ + struct ifaddrs* next; + while (ifa != NULL) { + free ((void*)ifa->ifa_name); + delete ifa->ifa_addr; + delete ifa->ifa_netmask; + delete ifa->ifa_dstaddr; + + next = ifa->ifa_next; + delete ifa; + ifa = next; + } +} + diff --git a/src/kits/network/libbind/Jamfile b/src/kits/network/libbind/Jamfile index e9f5d1c2f2..a39819a77d 100644 --- a/src/kits/network/libbind/Jamfile +++ b/src/kits/network/libbind/Jamfile @@ -6,6 +6,9 @@ for architectureObject in [ MultiArchSubDirSetup ] { local architecture = $(TARGET_PACKAGING_ARCH) ; UseHeaders [ FDirName $(SUBDIR) include ] : true ; + UseHeaders [ FDirName $(HAIKU_TOP) src libs compat freebsd_network compat ] + : true ; + UseHeaders [ FDirName $(HAIKU_TOP) headers compatibility bsd ] : true ; SubDirSysHdrs $(SUBDIR) ; # private sources for this port @@ -22,7 +25,7 @@ for architectureObject in [ MultiArchSubDirSetup ] { { # we want to have the xxx_r functions, too - local defines = _REENTRANT=1 USE_MD5=1 ; + local defines = _REENTRANT=1 USE_MD5=1 _BSD_SOURCE ; defines = [ FDefines $(defines) ] ; SubDirCcFlags $(defines) ; SubDirC++Flags $(defines) ; @@ -39,7 +42,6 @@ for architectureObject in [ MultiArchSubDirSetup ] { inet_addr.c inet_cidr_ntop.c inet_cidr_pton.c - inet_data.c inet_lnaof.c inet_makeaddr.c inet_net_ntop.c @@ -53,48 +55,29 @@ for architectureObject in [ MultiArchSubDirSetup ] { nsap_addr.c # irs - dns.c - dns_ho.c - dns_nw.c - dns_pr.c - dns_sv.c - gai_strerror.c - gen.c - gen_ho.c - gen_ng.c - gen_nw.c - gen_pr.c - gen_sv.c getaddrinfo.c - gethostent.c - gethostent_r.c + gethnamaddr.c getnameinfo.c getnetent.c - getnetent_r.c - getnetgrent.c - getnetgrent_r.c + getnetnamadr.c + getprotobyname.c + getprotobyname_r.c + getprotobynumber.c + getprotobynumber_r.c getprotoent.c getprotoent_r.c + getservbyname.c + getservbyname_r.c + getservbyport.c + getservbyport_r.c getservent.c getservent_r.c hesiod.c - irp.c - irp_ho.c - irp_ng.c - irp_nw.c - irp_pr.c - irp_sv.c - irpmarshall.c - irs_data.c - lcl.c - lcl_ho.c - lcl_ng.c - lcl_nw.c - lcl_pr.c - lcl_sv.cpp - nis.c - nul_ng.c - util.c + nsdispatch.c + nsparser.y + nslexer.l + sethostent.c + vars6.c # isc assertions.c @@ -117,30 +100,25 @@ for architectureObject in [ MultiArchSubDirSetup ] { tree.c # nameser - ns_date.c ns_name.c ns_netint.c ns_parse.c ns_print.c ns_samedomain.c - ns_sign.c ns_ttl.c - ns_verify.c # resolv herror.c + h_errno.c mtctxres.c res_comp.c res_data.c res_debug.c - res_findzonecut.c res_init.c res_mkquery.c - res_mkupdate.c res_query.c res_send.c - res_sendsigned.c - res_update.c + res_state.c # private functions strsep.c diff --git a/src/kits/network/libbind/include/hesiod.h b/src/kits/network/libbind/include/hesiod.h index d64c0c5e80..c7bcb4a88d 100644 --- a/src/kits/network/libbind/include/hesiod.h +++ b/src/kits/network/libbind/include/hesiod.h @@ -1,6 +1,33 @@ +/* $NetBSD: hesiod.h,v 1.5 2008/04/28 20:22:54 martin Exp $ */ + +/*- + * Copyright (c) 1997, 1998, 1999 The NetBSD Foundation, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. + */ + /* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 1996,1999 by Internet Software Consortium. + * Copyright (c) 1996 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 @@ -15,25 +42,47 @@ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/*! \file - * \brief - * This file is primarily maintained by and . - */ +#ifndef _HESIOD_H_ +#define _HESIOD_H_ -/* - * $Id: hesiod.h,v 1.4 2005/04/27 04:56:14 sra Exp $ - */ + /* Application-visible indication that we have the new interfaces */ -#ifndef _HESIOD_H_INCLUDED -#define _HESIOD_H_INCLUDED +#define HESIOD_INTERFACES -int hesiod_init __P((void **)); -void hesiod_end __P((void *)); -char * hesiod_to_bind __P((void *, const char *, const char *)); -char ** hesiod_resolve __P((void *, const char *, const char *)); -void hesiod_free_list __P((void *, char **)); -struct __res_state * __hesiod_res_get __P((void *)); -void __hesiod_res_set __P((void *, struct __res_state *, - void (*)(void *))); + /* Configuration information. */ -#endif /*_HESIOD_H_INCLUDED*/ +#ifndef _PATH_HESIOD_CONF /* Configuration file. */ +#define _PATH_HESIOD_CONF "/etc/hesiod.conf" +#endif + +#define DEF_RHS "" /* Defaults if HESIOD_CONF */ +#define DEF_LHS "" /* file is not present. */ + + /* Error codes (for backwards compatibility) */ + +#define HES_ER_UNINIT -1 /* uninitialized */ +#define HES_ER_OK 0 /* no error */ +#define HES_ER_NOTFOUND 1 /* Hesiod name not found by server */ +#define HES_ER_CONFIG 2 /* local problem (no config file?) */ +#define HES_ER_NET 3 /* network problem */ + + /* Declaration of routines */ + +#include + +__BEGIN_DECLS +int hesiod_init (void **); +char **hesiod_resolve (void *, const char *, const char *); +void hesiod_free_list(void *, char **); +char *hesiod_to_bind (void *, const char *, const char *); +void hesiod_end (void *); + + /* backwards compatibility */ +int hes_init (void); +char *hes_to_bind (const char *, const char *); +char **hes_resolve (const char *, const char *); +int hes_error (void); +void hes_free (char **); +__END_DECLS + +#endif /* ! _HESIOD_H_ */ diff --git a/src/kits/network/libbind/include/nsswitch.h b/src/kits/network/libbind/include/nsswitch.h new file mode 100644 index 0000000000..4266494ebf --- /dev/null +++ b/src/kits/network/libbind/include/nsswitch.h @@ -0,0 +1,231 @@ +/* $NetBSD: nsswitch.h,v 1.21 2011/07/17 20:54:34 joerg Exp $ */ + +/*- + * Copyright (c) 1997, 1998, 1999, 2004 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Luke Mewburn. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. + */ + +#ifndef _NSSWITCH_H +#define _NSSWITCH_H 1 + +#include +#include +#include + +#define NSS_MODULE_INTERFACE_VERSION 0 + +#ifndef _PATH_NS_CONF +#define _PATH_NS_CONF "/etc/nsswitch.conf" +#endif + +#define NS_CONTINUE 0 +#define NS_RETURN 1 + +/* + * Layout of: + * uint32_t ns_src.flags + */ + /* nsswitch.conf status codes and nsdispatch(3) return values */ +#define NS_SUCCESS (1<<0) /* entry was found */ +#define NS_UNAVAIL (1<<1) /* source not responding, or corrupt */ +#define NS_NOTFOUND (1<<2) /* source responded 'no such entry' */ +#define NS_TRYAGAIN (1<<3) /* source busy, may respond to retrys */ +#define NS_STATUSMASK 0x000000ff /* bitmask to get the status flags */ + + /* internal nsdispatch(3) flags; not settable in nsswitch.conf(5) */ +#define NS_FORCEALL (1<<8) /* force all methods to be invoked; */ + +/* + * Currently implemented sources. + */ +#define NSSRC_FILES "files" /* local files */ +#define NSSRC_DNS "dns" /* DNS; IN for hosts, HS for others */ +#define NSSRC_NIS "nis" /* YP/NIS */ +#define NSSRC_COMPAT "compat" /* passwd,group in YP compat mode */ + +/* + * Currently implemented databases. + */ +#define NSDB_HOSTS "hosts" +#define NSDB_GROUP "group" +#define NSDB_GROUP_COMPAT "group_compat" +#define NSDB_NETGROUP "netgroup" +#define NSDB_NETWORKS "networks" +#define NSDB_PASSWD "passwd" +#define NSDB_PASSWD_COMPAT "passwd_compat" +#define NSDB_SHELLS "shells" + +/* + * Suggested databases to implement. + */ +#define NSDB_ALIASES "aliases" +#define NSDB_AUTH "auth" +#define NSDB_AUTOMOUNT "automount" +#define NSDB_BOOTPARAMS "bootparams" +#define NSDB_ETHERS "ethers" +#define NSDB_EXPORTS "exports" +#define NSDB_NETMASKS "netmasks" +#define NSDB_PHONES "phones" +#define NSDB_PRINTCAP "printcap" +#define NSDB_PROTOCOLS "protocols" +#define NSDB_REMOTE "remote" +#define NSDB_RPC "rpc" +#define NSDB_SENDMAILVARS "sendmailvars" +#define NSDB_SERVICES "services" +#define NSDB_TERMCAP "termcap" +#define NSDB_TTYS "ttys" + +/* + * ns_dtab `callback' function signature. + */ +typedef int (*nss_method)(void *, void *, va_list); + +/* + * ns_dtab - `nsswitch dispatch table' + * Contains an entry for each source and the appropriate function to call. + */ +typedef struct { + const char *src; + nss_method callback; + void *cb_data; +} ns_dtab; + +/* + * Macros to help build an ns_dtab[] + */ +#define NS_FILES_CB(F,C) { NSSRC_FILES, F, (void*)(C) }, +#define NS_COMPAT_CB(F,C) { NSSRC_COMPAT, F, (void*)(C) }, + +#ifdef HESIOD +# define NS_DNS_CB(F,C) { NSSRC_DNS, F, (void*)(C) }, +#else +# define NS_DNS_CB(F,C) +#endif + +#ifdef YP +# define NS_NIS_CB(F,C) { NSSRC_NIS, F, (void*)(C) }, +#else +# define NS_NIS_CB(F,C) +#endif +#define NS_NULL_CB { .src = NULL }, + +/* + * ns_src - `nsswitch source' + * Used by the nsparser routines to store a mapping between a source + * and its dispatch control flags for a given database. + */ +typedef struct { + const char *name; + uint32_t flags; +} ns_src; + + +/* + * Default sourcelists (if nsswitch.conf is missing, corrupt, + * or the requested database doesn't have an entry) + */ +extern const ns_src __nsdefaultsrc[]; +extern const ns_src __nsdefaultcompat[]; +extern const ns_src __nsdefaultcompat_forceall[]; +extern const ns_src __nsdefaultfiles[]; +extern const ns_src __nsdefaultfiles_forceall[]; +extern const ns_src __nsdefaultnis[]; +extern const ns_src __nsdefaultnis_forceall[]; + + +/* + * ns_mtab - `nsswitch method table' + * An nsswitch module provides a mapping from (database name, method name) + * tuples to the nss_method and associated callback data. Effectively, + * ns_dtab, but used for dynamically loaded modules. + */ +typedef struct { + const char *database; + const char *name; + nss_method method; + void *mdata; +} ns_mtab; + +/* + * nss_module_register_fn - module registration function + * called at module load + * nss_module_unregister_fn - module un-registration function + * called at module unload + */ +typedef void (*nss_module_unregister_fn)(ns_mtab *, u_int); +typedef ns_mtab *(*nss_module_register_fn)(const char *, u_int *, + nss_module_unregister_fn *); + +#ifdef _NS_PRIVATE + +/* + * Private data structures for back-end nsswitch implementation. + */ + +/* + * ns_dbt - `nsswitch database thang' + * For each database in /etc/nsswitch.conf there is a ns_dbt, with its + * name and a list of ns_src's containing the source information. + */ +typedef struct { + const char *name; /* name of database */ + ns_src *srclist; /* list of sources */ + u_int srclistsize; /* size of srclist */ +} ns_dbt; + +/* + * ns_mod - `nsswitch module' + */ +typedef struct { + const char *name; /* module name */ + void *handle; /* handle from dlopen() */ + ns_mtab *mtab; /* method table */ + u_int mtabsize; /* size of mtab */ + /* called to unload module */ + nss_module_unregister_fn unregister; +} ns_mod; + +#endif /* _NS_PRIVATE */ + + +#include + +__BEGIN_DECLS +int nsdispatch(void *, const ns_dtab [], const char *, + const char *, const ns_src [], ...); + +#ifdef _NS_PRIVATE +int _nsdbtaddsrc(ns_dbt *, const ns_src *); +void _nsdbtdump(const ns_dbt *); +int _nsdbtput(const ns_dbt *); +void _nsyyerror(const char *); +int _nsyylex(void); +#endif /* _NS_PRIVATE */ + +__END_DECLS + +#endif /* !_NSSWITCH_H */ diff --git a/src/kits/network/libbind/inet/inet_addr.c b/src/kits/network/libbind/inet/inet_addr.c index 7366db981b..b166347fc6 100644 --- a/src/kits/network/libbind/inet/inet_addr.c +++ b/src/kits/network/libbind/inet/inet_addr.c @@ -1,3 +1,5 @@ +/* $NetBSD: inet_addr.c,v 1.2 2008/02/16 17:37:13 apb Exp $ */ + /* * Copyright (c) 1983, 1990, 1993 * The Regents of the University of California. All rights reserved. @@ -98,7 +100,7 @@ inet_addr(const char *cp) { return (INADDR_NONE); } -/*% +/* * Check whether "cp" is a valid ascii representation * of an Internet address and convert to a binary address. * Returns 1 if the address is valid, 0 if not. @@ -107,11 +109,11 @@ inet_addr(const char *cp) { */ int inet_aton(const char *cp, struct in_addr *addr) { - u_int32_t val; + uint32_t val; int base, n; char c; - u_int8_t parts[4]; - u_int8_t *pp = parts; + uint8_t parts[4]; + uint8_t *pp = parts; int digit; c = *cp; @@ -179,22 +181,22 @@ inet_aton(const char *cp, struct in_addr *addr) { */ n = pp - parts + 1; switch (n) { - case 1: /*%< a -- 32 bits */ + case 1: /* a -- 32 bits */ break; - case 2: /*%< a.b -- 8.24 bits */ + case 2: /* a.b -- 8.24 bits */ if (val > 0xffffffU) return (0); val |= parts[0] << 24; break; - case 3: /*%< a.b.c -- 8.8.16 bits */ + case 3: /* a.b.c -- 8.8.16 bits */ if (val > 0xffffU) return (0); val |= (parts[0] << 24) | (parts[1] << 16); break; - case 4: /*%< a.b.c.d -- 8.8.8.8 bits */ + case 4: /* a.b.c.d -- 8.8.8.8 bits */ if (val > 0xffU) return (0); val |= (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8); diff --git a/src/kits/network/libbind/inet/inet_cidr_ntop.c b/src/kits/network/libbind/inet/inet_cidr_ntop.c index 2eb2ad3eec..412fbc5fb7 100644 --- a/src/kits/network/libbind/inet/inet_cidr_ntop.c +++ b/src/kits/network/libbind/inet/inet_cidr_ntop.c @@ -1,3 +1,5 @@ +/* $NetBSD: inet_cidr_ntop.c,v 1.8 2012/03/13 21:13:38 christos Exp $ */ + /* * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1998,1999 by Internet Software Consortium. @@ -15,8 +17,13 @@ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include #if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: inet_cidr_ntop.c,v 1.7 2006/10/11 02:18:18 marka Exp $"; +#if 0 +static const char rcsid[] = "Id: inet_cidr_ntop.c,v 1.7 2006/10/11 02:18:18 marka Exp"; +#else +__RCSID("$NetBSD: inet_cidr_ntop.c,v 1.8 2012/03/13 21:13:38 christos Exp $"); +#endif #endif #include "port_before.h" @@ -27,6 +34,7 @@ static const char rcsid[] = "$Id: inet_cidr_ntop.c,v 1.7 2006/10/11 02:18:18 mar #include #include +#include #include #include #include @@ -34,6 +42,10 @@ static const char rcsid[] = "$Id: inet_cidr_ntop.c,v 1.7 2006/10/11 02:18:18 mar #include "port_after.h" +#ifdef __weak_alias +__weak_alias(inet_cidr_ntop,_inet_cidr_ntop) +#endif + #ifdef SPRINTF_CHAR # define SPRINTF(x) strlen(sprintf/**/x) #else @@ -73,10 +85,10 @@ inet_cidr_ntop(int af, const void *src, int bits, char *dst, size_t size) { } static int -decoct(const u_char *src, int bytes, char *dst, size_t size) { +decoct(const u_char *src, size_t bytes, char *dst, size_t size) { char *odst = dst; char *t; - int b; + size_t b; for (b = 1; b <= bytes; b++) { if (size < sizeof "255.") @@ -89,7 +101,8 @@ decoct(const u_char *src, int bytes, char *dst, size_t size) { } size -= (size_t)(dst - t); } - return (dst - odst); + assert(INT_MIN <= (dst - odst) && (dst - odst) <= INT_MAX); + return (int)(dst - odst); } /*% @@ -221,7 +234,7 @@ inet_cidr_ntop_ipv6(const u_char *src, int bits, char *dst, size_t size) { if (i == 6 && best.base == 0 && (best.len == 6 || (best.len == 7 && words[7] != 0x0001) || (best.len == 5 && words[5] == 0xffff))) { - int n; + size_t n; if (src[15] || bits == -1 || bits > 120) n = 4; diff --git a/src/kits/network/libbind/inet/inet_cidr_pton.c b/src/kits/network/libbind/inet/inet_cidr_pton.c index ed17740324..089d9b0f2b 100644 --- a/src/kits/network/libbind/inet/inet_cidr_pton.c +++ b/src/kits/network/libbind/inet/inet_cidr_pton.c @@ -1,3 +1,5 @@ +/* $NetBSD: inet_cidr_pton.c,v 1.8 2012/03/20 17:08:13 matt Exp $ */ + /* * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1998,1999 by Internet Software Consortium. @@ -15,8 +17,13 @@ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include #if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: inet_cidr_pton.c,v 1.6 2005/04/27 04:56:19 sra Exp $"; +#if 0 +static const char rcsid[] = "Id: inet_cidr_pton.c,v 1.6 2005/04/27 04:56:19 sra Exp"; +#else +__RCSID("$NetBSD: inet_cidr_pton.c,v 1.8 2012/03/20 17:08:13 matt Exp $"); +#endif #endif #include "port_before.h" @@ -32,6 +39,7 @@ static const char rcsid[] = "$Id: inet_cidr_pton.c,v 1.6 2005/04/27 04:56:19 sra #include #include #include +#include #include #include "port_after.h" @@ -42,10 +50,13 @@ static const char rcsid[] = "$Id: inet_cidr_pton.c,v 1.6 2005/04/27 04:56:19 sra # define SPRINTF(x) ((size_t)sprintf x) #endif -static int inet_cidr_pton_ipv4 __P((const char *src, u_char *dst, - int *bits, int ipv6)); -static int inet_cidr_pton_ipv6 __P((const char *src, u_char *dst, - int *bits)); +#ifdef __weak_alias +__weak_alias(inet_cidr_pton,_inet_cidr_pton) +#endif + +static int inet_cidr_pton_ipv4(const char *src, u_char *dst, + int *bits, int ipv6); +static int inet_cidr_pton_ipv6(const char *src, u_char *dst, int *bits); static int getbits(const char *, int ipv6); @@ -84,7 +95,8 @@ static const char digits[] = "0123456789"; static int inet_cidr_pton_ipv4(const char *src, u_char *dst, int *pbits, int ipv6) { const u_char *odst = dst; - int n, ch, tmp, bits; + int ch, bits; + ptrdiff_t n, tmp; size_t size = 4; /* Get the mantissa. */ @@ -176,7 +188,7 @@ inet_cidr_pton_ipv6(const char *src, u_char *dst, int *pbits) { pch = strchr((xdigits = xdigits_u), ch); if (pch != NULL) { val <<= 4; - val |= (pch - xdigits); + val |= (int)(pch - xdigits); if (val > 0xffff) return (0); saw_xdigit = 1; @@ -225,7 +237,7 @@ inet_cidr_pton_ipv6(const char *src, u_char *dst, int *pbits) { * Since some memmove()'s erroneously fail to handle * overlapping regions, we'll do the shift by hand. */ - const int n = tp - colonp; + const ptrdiff_t n = tp - colonp; int i; if (tp == endp) @@ -264,7 +276,7 @@ getbits(const char *src, int ipv6) { if (cp == NULL) /*%< syntax */ return (-2); bits *= 10; - bits += cp - digits; + bits += (int)(cp - digits); if (bits == 0 && *src != '\0') /*%< no leading zeros */ return (-2); if (bits > (ipv6 ? 128 : 32)) /*%< range error */ diff --git a/src/kits/network/libbind/inet/inet_data.c b/src/kits/network/libbind/inet/inet_data.c deleted file mode 100644 index 4373a171a0..0000000000 --- a/src/kits/network/libbind/inet/inet_data.c +++ /dev/null @@ -1,46 +0,0 @@ -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 1995-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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static char rcsid[] = "$Id: inet_data.c,v 1.4 2005/04/27 04:56:19 sra Exp $"; -#endif /* LIBC_SCCS and not lint */ - -#include "port_before.h" - -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include "port_after.h" - -const struct in6_addr isc_in6addr_any = IN6ADDR_ANY_INIT; -const struct in6_addr isc_in6addr_loopback = IN6ADDR_LOOPBACK_INIT; - -/*! \file */ diff --git a/src/kits/network/libbind/inet/inet_lnaof.c b/src/kits/network/libbind/inet/inet_lnaof.c index 5166ea9744..0513fa9493 100644 --- a/src/kits/network/libbind/inet/inet_lnaof.c +++ b/src/kits/network/libbind/inet/inet_lnaof.c @@ -1,3 +1,5 @@ +/* $NetBSD: inet_lnaof.c,v 1.1 2004/05/20 23:13:02 christos Exp $ */ + /* * Copyright (c) 1983, 1993 * The Regents of the University of California. All rights reserved. @@ -31,8 +33,13 @@ * SUCH DAMAGE. */ +#include #if defined(LIBC_SCCS) && !defined(lint) -static const char sccsid[] = "@(#)inet_lnaof.c 8.1 (Berkeley) 6/4/93"; +#if 0 +static char sccsid[] = "@(#)inet_lnaof.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: inet_lnaof.c,v 1.1 2004/05/20 23:13:02 christos Exp $"); +#endif #endif /* LIBC_SCCS and not lint */ #include "port_before.h" @@ -43,16 +50,15 @@ static const char sccsid[] = "@(#)inet_lnaof.c 8.1 (Berkeley) 6/4/93"; #include "port_after.h" -/*% +/* * Return the local network address portion of an * internet address; handles class a/b/c network * number formats. */ -u_long -inet_lnaof(in) - struct in_addr in; +in_addr_t +inet_lnaof(struct in_addr in) { - register u_long i = ntohl(in.s_addr); + in_addr_t i = ntohl(in.s_addr); if (IN_CLASSA(i)) return ((i)&IN_CLASSA_HOST); diff --git a/src/kits/network/libbind/inet/inet_makeaddr.c b/src/kits/network/libbind/inet/inet_makeaddr.c index 4cdce72b8d..e177227868 100644 --- a/src/kits/network/libbind/inet/inet_makeaddr.c +++ b/src/kits/network/libbind/inet/inet_makeaddr.c @@ -1,3 +1,5 @@ +/* $NetBSD: inet_makeaddr.c,v 1.1 2004/05/20 23:13:02 christos Exp $ */ + /* * Copyright (c) 1983, 1993 * The Regents of the University of California. All rights reserved. @@ -43,26 +45,26 @@ static const char sccsid[] = "@(#)inet_makeaddr.c 8.1 (Berkeley) 6/4/93"; #include "port_after.h" -/*% +/* * Formulate an Internet address from network + host. Used in * building addresses stored in the ifnet structure. */ struct in_addr -inet_makeaddr(net, host) - u_long net, host; +inet_makeaddr(in_addr_t net, in_addr_t host) { - struct in_addr a; + in_addr_t addr; + struct in_addr ret; - if (net < 128U) - a.s_addr = (net << IN_CLASSA_NSHIFT) | (host & IN_CLASSA_HOST); - else if (net < 65536U) - a.s_addr = (net << IN_CLASSB_NSHIFT) | (host & IN_CLASSB_HOST); + if (net < 128) + addr = (net << IN_CLASSA_NSHIFT) | (host & IN_CLASSA_HOST); + else if (net < 65536) + addr = (net << IN_CLASSB_NSHIFT) | (host & IN_CLASSB_HOST); else if (net < 16777216L) - a.s_addr = (net << IN_CLASSC_NSHIFT) | (host & IN_CLASSC_HOST); + addr = (net << IN_CLASSC_NSHIFT) | (host & IN_CLASSC_HOST); else - a.s_addr = net | host; - a.s_addr = htonl(a.s_addr); - return (a); + addr = net | host; + ret.s_addr = htonl(addr); + return ret; } #undef inet_makeaddr diff --git a/src/kits/network/libbind/inet/inet_net_ntop.c b/src/kits/network/libbind/inet/inet_net_ntop.c index 98e246abb1..4ce31a8f28 100644 --- a/src/kits/network/libbind/inet/inet_net_ntop.c +++ b/src/kits/network/libbind/inet/inet_net_ntop.c @@ -1,22 +1,27 @@ /* - * 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. + * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS + * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE + * CONSORTIUM 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 #if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: inet_net_ntop.c,v 1.5 2006/06/20 02:50:14 marka Exp $"; +#ifdef notdef +static const char rcsid[] = "Id: inet_net_ntop.c,v 1.1.2.1 2002/08/02 02:17:21 marka Exp "; +#else +__RCSID("$NetBSD: inet_net_ntop.c,v 1.3 2012/03/20 17:08:13 matt Exp $"); +#endif #endif #include "port_before.h" @@ -33,18 +38,22 @@ static const char rcsid[] = "$Id: inet_net_ntop.c,v 1.5 2006/06/20 02:50:14 mark #include "port_after.h" +#ifdef __weak_alias +__weak_alias(inet_net_ntop,_inet_net_ntop) +#endif + #ifdef SPRINTF_CHAR # define SPRINTF(x) strlen(sprintf/**/x) #else -# define SPRINTF(x) ((size_t)sprintf x) +# define SPRINTF(x) sprintf x #endif -static char * inet_net_ntop_ipv4 __P((const u_char *src, int bits, - char *dst, size_t size)); -static char * inet_net_ntop_ipv6 __P((const u_char *src, int bits, - char *dst, size_t size)); +static char * inet_net_ntop_ipv4(const u_char *src, int bits, + char *dst, size_t size); +static char * inet_net_ntop_ipv6(const u_char *src, int bits, + char *dst, size_t size); -/*% +/* * char * * inet_net_ntop(af, src, bits, dst, size) * convert network number from network to presentation format. @@ -55,12 +64,7 @@ static char * inet_net_ntop_ipv6 __P((const u_char *src, int bits, * Paul Vixie (ISC), July 1996 */ char * -inet_net_ntop(af, src, bits, dst, size) - int af; - const void *src; - int bits; - char *dst; - size_t size; +inet_net_ntop(int af, const void *src, int bits, char *dst, size_t size) { switch (af) { case AF_INET: @@ -73,7 +77,7 @@ inet_net_ntop(af, src, bits, dst, size) } } -/*% +/* * static char * * inet_net_ntop_ipv4(src, bits, dst, size) * convert IPv4 network number from network to presentation format. @@ -87,11 +91,7 @@ inet_net_ntop(af, src, bits, dst, size) * Paul Vixie (ISC), July 1996 */ static char * -inet_net_ntop_ipv4(src, bits, dst, size) - const u_char *src; - int bits; - char *dst; - size_t size; +inet_net_ntop_ipv4(const u_char *src, int bits, char *dst, size_t size) { char *odst = dst; char *t; @@ -148,7 +148,7 @@ inet_net_ntop_ipv4(src, bits, dst, size) return (NULL); } -/*% +/* * static char * * inet_net_ntop_ipv6(src, bits, fakebits, dst, size) * convert IPv6 network number from network to presentation format. @@ -166,17 +166,18 @@ inet_net_ntop_ipv4(src, bits, dst, size) */ static char * -inet_net_ntop_ipv6(const u_char *src, int bits, char *dst, size_t size) { +inet_net_ntop_ipv6(const u_char *src, int bits, char *dst, size_t size) +{ u_int m; int b; - int p; - int zero_s, zero_l, tmp_zero_s, tmp_zero_l; - int i; + size_t p; + size_t zero_s, zero_l, tmp_zero_s, tmp_zero_l; + size_t i; int is_ipv4 = 0; unsigned char inbuf[16]; char outbuf[sizeof("xxxx:xxxx:xxxx:xxxx:xxxx:xxxx:255.255.255.255/128")]; char *cp; - int words; + size_t words; u_char *s; if (bits < 0 || bits > 128) { @@ -264,7 +265,7 @@ inet_net_ntop_ipv6(const u_char *src, int bits, char *dst, size_t size) { } } /* Format CIDR /width. */ - sprintf(cp, "/%u", bits); + (void)SPRINTF((cp, "/%u", bits)); if (strlen(outbuf) + 1 > size) goto emsgsize; strcpy(dst, outbuf); diff --git a/src/kits/network/libbind/inet/inet_net_pton.c b/src/kits/network/libbind/inet/inet_net_pton.c index eeb3ec8e00..0b89b38181 100644 --- a/src/kits/network/libbind/inet/inet_net_pton.c +++ b/src/kits/network/libbind/inet/inet_net_pton.c @@ -1,22 +1,27 @@ /* - * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") - * Copyright (C) 1996, 1998, 1999, 2001, 2003 Internet Software Consortium. + * Copyright (c) 1996,1999 by Internet Software Consortium. * - * Permission to use, copy, modify, and/or distribute this software for any + * 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. + * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS + * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE + * CONSORTIUM 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 #if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: inet_net_pton.c,v 1.10 2008/11/14 02:36:51 marka Exp $"; +#if 0 +static const char rcsid[] = "Id: inet_net_pton.c,v 1.4.2.1 2002/08/02 02:17:21 marka Exp "; +#else +__RCSID("$NetBSD: inet_net_pton.c,v 1.4 2012/03/20 17:08:13 matt Exp $"); +#endif #endif #include "port_before.h" @@ -28,6 +33,7 @@ static const char rcsid[] = "$Id: inet_net_pton.c,v 1.10 2008/11/14 02:36:51 mar #include #include +#include #include #include #include @@ -36,13 +42,18 @@ static const char rcsid[] = "$Id: inet_net_pton.c,v 1.10 2008/11/14 02:36:51 mar #include "port_after.h" +#ifdef __weak_alias +__weak_alias(inet_net_pton,_inet_net_pton) +#endif + #ifdef SPRINTF_CHAR # define SPRINTF(x) strlen(sprintf/**/x) #else # define SPRINTF(x) ((size_t)sprintf x) #endif -/*% + +/* * static int * inet_net_pton_ipv4(src, dst, size) * convert IPv4 network number from presentation to network format. @@ -59,24 +70,28 @@ static const char rcsid[] = "$Id: inet_net_pton.c,v 1.10 2008/11/14 02:36:51 mar * Paul Vixie (ISC), June 1996 */ static int -inet_net_pton_ipv4(const char *src, u_char *dst, size_t size) { +inet_net_pton_ipv4(const char *src, u_char *dst, size_t size) +{ static const char xdigits[] = "0123456789abcdef"; static const char digits[] = "0123456789"; - int n, ch, tmp = 0, dirty, bits; + int ch, dirty, bits; + ptrdiff_t n, tmp; const u_char *odst = dst; + tmp = 0; ch = *src++; if (ch == '0' && (src[0] == 'x' || src[0] == 'X') - && isascii((unsigned char)(src[1])) - && isxdigit((unsigned char)(src[1]))) { + && isascii((u_char)(src[1])) + && isxdigit((u_char)(src[1]))) { /* Hexadecimal: Eat nybble string. */ - if (size <= 0U) + if (size == 0) goto emsgsize; dirty = 0; - src++; /*%< skip x or X. */ - while ((ch = *src++) != '\0' && isascii(ch) && isxdigit(ch)) { - if (isupper(ch)) - ch = tolower(ch); + src++; /* skip x or X. */ + while ((ch = *src++) != '\0' && isascii((u_char)ch) + && isxdigit((u_char)ch)) { + if (isupper((u_char)ch)) + ch = tolower((u_char)ch); n = strchr(xdigits, ch) - xdigits; INSIST(n >= 0 && n <= 15); if (dirty == 0) @@ -84,18 +99,18 @@ inet_net_pton_ipv4(const char *src, u_char *dst, size_t size) { else tmp = (tmp << 4) | n; if (++dirty == 2) { - if (size-- <= 0U) + if (size-- == 0) goto emsgsize; *dst++ = (u_char) tmp; dirty = 0; } } - if (dirty) { /*%< Odd trailing nybble? */ - if (size-- <= 0U) + if (dirty) { /* Odd trailing nybble? */ + if (size-- == 0) goto emsgsize; *dst++ = (u_char) (tmp << 4); } - } else if (isascii(ch) && isdigit(ch)) { + } else if (isascii((u_char)ch) && isdigit((u_char)ch)) { /* Decimal: eat dotted digit string. */ for (;;) { tmp = 0; @@ -107,8 +122,8 @@ inet_net_pton_ipv4(const char *src, u_char *dst, size_t size) { if (tmp > 255) goto enoent; } while ((ch = *src++) != '\0' && - isascii(ch) && isdigit(ch)); - if (size-- <= 0U) + isascii((u_char)ch) && isdigit((u_char)ch)); + if (size-- == 0) goto emsgsize; *dst++ = (u_char) tmp; if (ch == '\0' || ch == '/') @@ -116,26 +131,27 @@ inet_net_pton_ipv4(const char *src, u_char *dst, size_t size) { if (ch != '.') goto enoent; ch = *src++; - if (!isascii(ch) || !isdigit(ch)) + if (!isascii((u_char)ch) || !isdigit((u_char)ch)) goto enoent; } } else goto enoent; bits = -1; - if (ch == '/' && isascii((unsigned char)(src[0])) && - isdigit((unsigned char)(src[0])) && dst > odst) { + if (ch == '/' && isascii((u_char)(src[0])) && + isdigit((u_char)(src[0])) && dst > odst) { /* CIDR width specifier. Nothing can follow it. */ - ch = *src++; /*%< Skip over the /. */ + ch = *src++; /* Skip over the /. */ bits = 0; do { n = strchr(digits, ch) - digits; INSIST(n >= 0 && n <= 9); bits *= 10; - bits += n; + bits += (int)n; if (bits > 32) - goto enoent; - } while ((ch = *src++) != '\0' && isascii(ch) && isdigit(ch)); + goto emsgsize; + } while ((ch = *src++) != '\0' && isascii((u_char)ch) + && isdigit((u_char)ch)); if (ch != '\0') goto enoent; } @@ -149,29 +165,23 @@ inet_net_pton_ipv4(const char *src, u_char *dst, size_t size) { goto enoent; /* If no CIDR spec was given, infer width from net class. */ if (bits == -1) { - if (*odst >= 240) /*%< Class E */ + if (*odst >= 240) /* Class E */ bits = 32; - else if (*odst >= 224) /*%< Class D */ - bits = 8; - else if (*odst >= 192) /*%< Class C */ + else if (*odst >= 224) /* Class D */ + bits = 4; + else if (*odst >= 192) /* Class C */ bits = 24; - else if (*odst >= 128) /*%< Class B */ + else if (*odst >= 128) /* Class B */ bits = 16; - else /*%< Class A */ + else /* Class A */ bits = 8; /* If imputed mask is narrower than specified octets, widen. */ - if (bits < ((dst - odst) * 8)) - bits = (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; + if (bits >= 8 && bits < ((dst - odst) * 8)) + bits = (int)(dst - odst) * 8; } /* Extend network to cover the actual mask. */ while (bits > ((dst - odst) * 8)) { - if (size-- <= 0U) + if (size-- == 0) goto emsgsize; *dst++ = '\0'; } @@ -187,7 +197,8 @@ inet_net_pton_ipv4(const char *src, u_char *dst, size_t size) { } static int -getbits(const char *src, int *bitsp) { +getbits(const char *src, int *bitsp) +{ static const char digits[] = "0123456789"; int n; int val; @@ -200,11 +211,11 @@ getbits(const char *src, int *bitsp) { pch = strchr(digits, ch); if (pch != NULL) { - if (n++ != 0 && val == 0) /*%< no leading zeros */ + if (n++ != 0 && val == 0) /* no leading zeros */ return (0); val *= 10; - val += (pch - digits); - if (val > 128) /*%< range */ + val += (int)(pch - digits); + if (val > 128) /* range */ return (0); continue; } @@ -217,7 +228,8 @@ getbits(const char *src, int *bitsp) { } static int -getv4(const char *src, u_char *dst, int *bitsp) { +getv4(const char *src, u_char *dst, int *bitsp) +{ static const char digits[] = "0123456789"; u_char *odst = dst; int n; @@ -231,16 +243,16 @@ getv4(const char *src, u_char *dst, int *bitsp) { pch = strchr(digits, ch); if (pch != NULL) { - if (n++ != 0 && val == 0) /*%< no leading zeros */ + if (n++ != 0 && val == 0) /* no leading zeros */ return (0); val *= 10; - val += (pch - digits); - if (val > 255) /*%< range */ + val += (int)(pch - digits); + if (val > 255) /* range */ return (0); continue; } if (ch == '.' || ch == '/') { - if (dst - odst > 3) /*%< too many octets? */ + if (dst - odst > 3) /* too many octets? */ return (0); *dst++ = val; if (ch == '/') @@ -253,14 +265,15 @@ getv4(const char *src, u_char *dst, int *bitsp) { } if (n == 0) return (0); - if (dst - odst > 3) /*%< too many octets? */ + if (dst - odst > 3) /* too many octets? */ return (0); *dst++ = val; return (1); } static int -inet_net_pton_ipv6(const char *src, u_char *dst, size_t size) { +inet_net_pton_ipv6(const char *src, u_char *dst, size_t size) +{ static const char xdigits_l[] = "0123456789abcdef", xdigits_u[] = "0123456789ABCDEF"; u_char tmp[NS_IN6ADDRSZ], *tp, *endp, *colonp; @@ -293,7 +306,7 @@ inet_net_pton_ipv6(const char *src, u_char *dst, size_t size) { pch = strchr((xdigits = xdigits_u), ch); if (pch != NULL) { val <<= 4; - val |= (pch - xdigits); + val |= (int)(pch - xdigits); if (++digits > 4) goto enoent; saw_xdigit = 1; @@ -322,7 +335,7 @@ inet_net_pton_ipv6(const char *src, u_char *dst, size_t size) { tp += NS_INADDRSZ; saw_xdigit = 0; ipv4 = 1; - break; /*%< '\\0' was seen by inet_pton4(). */ + break; /* '\0' was seen by inet_pton4(). */ } if (ch == '/' && getbits(src, &bits) > 0) break; @@ -349,7 +362,7 @@ inet_net_pton_ipv6(const char *src, u_char *dst, size_t size) { * Since some memmove()'s erroneously fail to handle * overlapping regions, we'll do the shift by hand. */ - const int n = tp - colonp; + const ptrdiff_t n = tp - colonp; int i; if (tp == endp) @@ -378,7 +391,7 @@ inet_net_pton_ipv6(const char *src, u_char *dst, size_t size) { return (-1); } -/*% +/* * int * inet_net_pton(af, src, dst, size) * convert network number from presentation to network format. @@ -392,7 +405,8 @@ inet_net_pton_ipv6(const char *src, u_char *dst, size_t size) { * Paul Vixie (ISC), June 1996 */ int -inet_net_pton(int af, const char *src, void *dst, size_t size) { +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)); diff --git a/src/kits/network/libbind/inet/inet_neta.c b/src/kits/network/libbind/inet/inet_neta.c index 1dc4a7058d..0cc2836b63 100644 --- a/src/kits/network/libbind/inet/inet_neta.c +++ b/src/kits/network/libbind/inet/inet_neta.c @@ -1,22 +1,29 @@ +/* $NetBSD: inet_neta.c,v 1.3 2012/06/25 22:32:44 abs Exp $ */ + /* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 1996,1999 by Internet Software Consortium. + * Copyright (c) 1996 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. + * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS + * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE + * CONSORTIUM 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 #if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: inet_neta.c,v 1.3 2005/04/27 04:56:20 sra Exp $"; +#if 0 +static const char rcsid[] = "Id: inet_neta.c,v 8.2 1996/08/08 06:54:44 vixie Exp "; +#else +__RCSID("$NetBSD: inet_neta.c,v 1.3 2012/06/25 22:32:44 abs Exp $"); +#endif #endif #include "port_before.h" @@ -26,19 +33,14 @@ static const char rcsid[] = "$Id: inet_neta.c,v 1.3 2005/04/27 04:56:20 sra Exp #include #include +#include #include #include #include #include "port_after.h" -#ifdef SPRINTF_CHAR -# define SPRINTF(x) strlen(sprintf/**/x) -#else -# define SPRINTF(x) ((size_t)sprintf x) -#endif - -/*% +/* * char * * inet_neta(src, dst, size) * format a u_long network number into presentation format. @@ -50,35 +52,40 @@ static const char rcsid[] = "$Id: inet_neta.c,v 1.3 2005/04/27 04:56:20 sra Exp * Paul Vixie (ISC), July 1996 */ char * -inet_neta(src, dst, size) - u_long src; - char *dst; - size_t size; +inet_neta(u_long src, char *dst, size_t size) { char *odst = dst; - char *tp; + char *ep; + int advance; - while (src & 0xffffffff) { - u_char b = (src & 0xff000000) >> 24; + assert(dst != NULL); + + if (src == 0x00000000) { + if (size < sizeof "0.0.0.0") + goto emsgsize; + strlcpy(dst, "0.0.0.0", size); + return dst; + } + ep = dst + size; + if (ep <= dst) + goto emsgsize; + while (src & 0xffffffffUL) { + u_char b = (u_char)((src & 0xff000000UL) >> 24); src <<= 8; - if (b) { - if (size < sizeof "255.") + if (b || src) { + advance = snprintf(dst, (size_t)(ep - dst), "%u", b); + if (advance <= 0 || advance >= ep - dst) goto emsgsize; - tp = dst; - dst += SPRINTF((dst, "%u", b)); + dst += advance; if (src != 0L) { + if (dst + 1 >= ep) + goto emsgsize; *dst++ = '.'; *dst = '\0'; } - size -= (size_t)(dst - tp); } } - if (dst == odst) { - if (size < sizeof "0.0.0.0") - goto emsgsize; - strcpy(dst, "0.0.0.0"); - } return (odst); emsgsize: diff --git a/src/kits/network/libbind/inet/inet_netof.c b/src/kits/network/libbind/inet/inet_netof.c index 172d483bea..9f4eab9b7f 100644 --- a/src/kits/network/libbind/inet/inet_netof.c +++ b/src/kits/network/libbind/inet/inet_netof.c @@ -1,3 +1,5 @@ +/* $NetBSD: inet_netof.c,v 1.1 2004/05/20 23:13:02 christos Exp $ */ + /* * Copyright (c) 1983, 1993 * The Regents of the University of California. All rights reserved. @@ -31,8 +33,13 @@ * SUCH DAMAGE. */ +#include #if defined(LIBC_SCCS) && !defined(lint) -static const char sccsid[] = "@(#)inet_netof.c 8.1 (Berkeley) 6/4/93"; +#if 0 +static char sccsid[] = "@(#)inet_netof.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: inet_netof.c,v 1.1 2004/05/20 23:13:02 christos Exp $"); +#endif #endif /* LIBC_SCCS and not lint */ #include "port_before.h" @@ -43,15 +50,14 @@ static const char sccsid[] = "@(#)inet_netof.c 8.1 (Berkeley) 6/4/93"; #include "port_after.h" -/*% +/* * Return the network number from an internet * address; handles class a/b/c network #'s. */ -u_long -inet_netof(in) - struct in_addr in; +in_addr_t +inet_netof(struct in_addr in) { - register u_long i = ntohl(in.s_addr); + in_addr_t i = ntohl(in.s_addr); if (IN_CLASSA(i)) return (((i)&IN_CLASSA_NET) >> IN_CLASSA_NSHIFT); diff --git a/src/kits/network/libbind/inet/inet_network.c b/src/kits/network/libbind/inet/inet_network.c index 8d076d4c30..c9b28b0062 100644 --- a/src/kits/network/libbind/inet/inet_network.c +++ b/src/kits/network/libbind/inet/inet_network.c @@ -1,3 +1,5 @@ +/* $NetBSD: inet_network.c,v 1.4 2008/01/20 04:56:08 christos Exp $ */ + /* * Copyright (c) 1983, 1993 * The Regents of the University of California. All rights reserved. @@ -31,8 +33,13 @@ * SUCH DAMAGE. */ +#include #if defined(LIBC_SCCS) && !defined(lint) -static const char sccsid[] = "@(#)inet_network.c 8.1 (Berkeley) 6/4/93"; +#if 0 +static char sccsid[] = "@(#)inet_network.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: inet_network.c,v 1.4 2008/01/20 04:56:08 christos Exp $"); +#endif #endif /* LIBC_SCCS and not lint */ #include "port_before.h" @@ -40,42 +47,48 @@ static const char sccsid[] = "@(#)inet_network.c 8.1 (Berkeley) 6/4/93"; #include #include #include + +#include #include +#ifdef _DIAGNOSTIC +#include /* for NULL */ +#endif #include "port_after.h" -/*% +/* * Internet network address interpretation routine. * The library routines call this routine to interpret * network numbers. */ -u_long -inet_network(cp) - register const char *cp; +in_addr_t +inet_network(const char *cp) { - register u_long val, base, n, i; - register char c; - u_long parts[4], *pp = parts; - int digit; + in_addr_t val; + size_t i, n; + u_char c; + in_addr_t parts[4], *pp = parts; + int digit, base; + + assert(cp != NULL); again: val = 0; base = 10; digit = 0; if (*cp == '0') digit = 1, base = 8, cp++; if (*cp == 'x' || *cp == 'X') - base = 16, cp++; + digit = 0, base = 16, cp++; while ((c = *cp) != 0) { - if (isdigit((unsigned char)c)) { - if (base == 8U && (c == '8' || c == '9')) + if (isdigit(c)) { + if (base == 8 && (c == '8' || c == '9')) return (INADDR_NONE); val = (val * base) + (c - '0'); cp++; digit = 1; continue; } - if (base == 16U && isxdigit((unsigned char)c)) { - val = (val << 4) + - (c + 10 - (islower((unsigned char)c) ? 'a' : 'A')); + if (base == 16 && isxdigit(c)) { + val = (val << 4) + (c + 10 - (islower(c) ? 'a' : 'A')); cp++; digit = 1; continue; @@ -84,17 +97,17 @@ again: } if (!digit) return (INADDR_NONE); - if (pp >= parts + 4 || val > 0xffU) + if (pp >= parts + 4 || val > 0xff) return (INADDR_NONE); if (*cp == '.') { *pp++ = val, cp++; goto again; } - if (*cp && !isspace(*cp&0xff)) + if (*cp && !isspace((u_char) *cp)) return (INADDR_NONE); *pp++ = val; n = pp - parts; - if (n > 4U) + if (n > 4) return (INADDR_NONE); for (val = 0, i = 0; i < n; i++) { val <<= 8; diff --git a/src/kits/network/libbind/inet/inet_ntoa.c b/src/kits/network/libbind/inet/inet_ntoa.c index d191028157..9a6b682af2 100644 --- a/src/kits/network/libbind/inet/inet_ntoa.c +++ b/src/kits/network/libbind/inet/inet_ntoa.c @@ -1,3 +1,5 @@ +/* $NetBSD: inet_ntoa.c,v 1.2 2012/03/13 21:13:38 christos Exp $ */ + /* * Copyright (c) 1983, 1993 * The Regents of the University of California. All rights reserved. @@ -32,8 +34,11 @@ */ #if defined(LIBC_SCCS) && !defined(lint) -static const char sccsid[] = "@(#)inet_ntoa.c 8.1 (Berkeley) 6/4/93"; -static const char rcsid[] = "$Id: inet_ntoa.c,v 1.2 2005/04/27 04:56:21 sra Exp $"; +#if 0 +static char sccsid[] = "@(#)inet_ntoa.c 8.1 (Berkeley) 6/4/93"; +#else +// __RCSID("$NetBSD: inet_ntoa.c,v 1.2 2012/03/13 21:13:38 christos Exp $"); +#endif #endif /* LIBC_SCCS and not lint */ #include "port_before.h" @@ -56,9 +61,9 @@ static const char rcsid[] = "$Id: inet_ntoa.c,v 1.2 2005/04/27 04:56:21 sra Exp inet_ntoa(struct in_addr in) { static char ret[18]; - strcpy(ret, "[inet_ntoa error]"); - (void) inet_ntop(AF_INET, &in, ret, sizeof ret); - return (ret); + strlcpy(ret, "[inet_ntoa error]", sizeof(ret)); + (void) inet_ntop(AF_INET, &in, ret, (socklen_t)sizeof ret); + return ret; } #undef inet_ntoa diff --git a/src/kits/network/libbind/inet/inet_ntop.c b/src/kits/network/libbind/inet/inet_ntop.c index 1bb7e1e431..aba863ac33 100644 --- a/src/kits/network/libbind/inet/inet_ntop.c +++ b/src/kits/network/libbind/inet/inet_ntop.c @@ -1,3 +1,5 @@ +/* $NetBSD: inet_ntop.c,v 1.9 2012/03/20 17:08:13 matt Exp $ */ + /* * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1996-1999 by Internet Software Consortium. @@ -15,8 +17,13 @@ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include #if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: inet_ntop.c,v 1.5 2005/11/03 22:59:52 marka Exp $"; +#if 0 +static const char rcsid[] = "Id: inet_ntop.c,v 1.5 2005/11/03 22:59:52 marka Exp"; +#else +__RCSID("$NetBSD: inet_ntop.c,v 1.9 2012/03/20 17:08:13 matt Exp $"); +#endif #endif /* LIBC_SCCS and not lint */ #include "port_before.h" @@ -29,25 +36,21 @@ static const char rcsid[] = "$Id: inet_ntop.c,v 1.5 2005/11/03 22:59:52 marka Ex #include #include +#include #include #include +#include #include #include "port_after.h" -#ifdef SPRINTF_CHAR -# define SPRINTF(x) strlen(sprintf/**/x) -#else -# define SPRINTF(x) ((size_t)sprintf x) -#endif - /*% * 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 __P((const u_char *src, char *dst, size_t size)); -static const char *inet_ntop6 __P((const u_char *src, char *dst, size_t size)); +static const char *inet_ntop4(const u_char *src, char *dst, socklen_t size); +static const char *inet_ntop6(const u_char *src, char *dst, socklen_t size); /* char * * inet_ntop(af, src, dst, size) @@ -58,12 +61,12 @@ static const char *inet_ntop6 __P((const u_char *src, char *dst, size_t size)); * Paul Vixie, 1996. */ const char * -inet_ntop(af, src, dst, size) - int af; - const void *src; - char *dst; - socklen_t size; +inet_ntop(int af, const void *src, char *dst, socklen_t size) { + + assert(src != NULL); + assert(dst != NULL); + switch (af) { case AF_INET: return (inet_ntop4(src, dst, size)); @@ -78,7 +81,7 @@ inet_ntop(af, src, dst, size) /* const char * * inet_ntop4(src, dst, size) - * format an IPv4 address + * format an IPv4 address, more or less like inet_ntoa() * return: * `dst' (as a const) * notes: @@ -88,19 +91,21 @@ inet_ntop(af, src, dst, size) * Paul Vixie, 1996. */ static const char * -inet_ntop4(src, dst, size) - const u_char *src; - char *dst; - size_t size; +inet_ntop4(const u_char *src, char *dst, socklen_t size) { - static const char fmt[] = "%u.%u.%u.%u"; char tmp[sizeof "255.255.255.255"]; + int l; - if (SPRINTF((tmp, fmt, src[0], src[1], src[2], src[3])) >= size) { + assert(src != NULL); + assert(dst != NULL); + + l = snprintf(tmp, sizeof(tmp), "%u.%u.%u.%u", + src[0], src[1], src[2], src[3]); + if (l <= 0 || (socklen_t) l >= size) { errno = ENOSPC; return (NULL); } - strcpy(dst, tmp); + strlcpy(dst, tmp, size); return (dst); } @@ -111,10 +116,7 @@ inet_ntop4(src, dst, size) * Paul Vixie, 1996. */ static const char * -inet_ntop6(src, dst, size) - const u_char *src; - char *dst; - size_t size; +inet_ntop6(const u_char *src, char *dst, socklen_t size) { /* * Note that int32_t and int16_t need only be "at least" large enough @@ -123,10 +125,15 @@ inet_ntop6(src, dst, size) * 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"], *tp; + char tmp[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"]; + char *tp, *ep; struct { int base, len; } best, cur; u_int words[NS_IN6ADDRSZ / NS_INT16SZ]; int i; + int advance; + + assert(src != NULL); + assert(dst != NULL); /* * Preprocess: @@ -165,6 +172,7 @@ inet_ntop6(src, dst, size) * Format the result. */ tp = tmp; + ep = tmp + sizeof(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 && @@ -174,23 +182,35 @@ inet_ntop6(src, dst, size) continue; } /* Are we following an initial run of 0x00s or any real hex? */ - if (i != 0) + if (i != 0) { + if (tp + 1 >= ep) + return (NULL); *tp++ = ':'; + } /* Is this address an encapsulated IPv4? */ - if (i == 6 && best.base == 0 && (best.len == 6 || + 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))) + if (!inet_ntop4(src+12, tp, (socklen_t)(ep - tp))) return (NULL); tp += strlen(tp); break; } - tp += SPRINTF((tp, "%x", words[i])); + advance = snprintf(tp, (size_t)(ep - tp), "%x", words[i]); + if (advance <= 0 || advance >= ep - tp) + return (NULL); + tp += advance; } /* Was it a trailing run of 0x00's? */ if (best.base != -1 && (best.base + best.len) == - (NS_IN6ADDRSZ / NS_INT16SZ)) + (NS_IN6ADDRSZ / NS_INT16SZ)) { + if (tp + 1 >= ep) + return (NULL); *tp++ = ':'; + } + if (tp + 1 >= ep) + return (NULL); *tp++ = '\0'; /* @@ -200,7 +220,7 @@ inet_ntop6(src, dst, size) errno = ENOSPC; return (NULL); } - strcpy(dst, tmp); + strlcpy(dst, tmp, size); return (dst); } diff --git a/src/kits/network/libbind/inet/inet_pton.c b/src/kits/network/libbind/inet/inet_pton.c index e8bf581c32..974becbf0f 100644 --- a/src/kits/network/libbind/inet/inet_pton.c +++ b/src/kits/network/libbind/inet/inet_pton.c @@ -1,3 +1,5 @@ +/* $NetBSD: inet_pton.c,v 1.8 2012/03/13 21:13:38 christos Exp $ */ + /* * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1996,1999 by Internet Software Consortium. @@ -15,19 +17,29 @@ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include #if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: inet_pton.c,v 1.5 2005/07/28 06:51:47 marka Exp $"; +#if 0 +static const char rcsid[] = "Id: inet_pton.c,v 1.5 2005/07/28 06:51:47 marka Exp"; +#else +__RCSID("$NetBSD: inet_pton.c,v 1.8 2012/03/13 21:13:38 christos Exp $"); +#endif #endif /* LIBC_SCCS and not lint */ #include "port_before.h" + #include #include #include #include #include #include +#include #include +#include +#include #include + #include "port_after.h" /*% @@ -35,8 +47,8 @@ static const char rcsid[] = "$Id: inet_pton.c,v 1.5 2005/07/28 06:51:47 marka Ex * sizeof(int) < 4. sizeof(int) > 4 is fine; all the world's not a VAX. */ -static int inet_pton4 __P((const char *src, u_char *dst)); -static int inet_pton6 __P((const char *src, u_char *dst)); +static int inet_pton4(const char *src, u_char *dst, int pton); +static int inet_pton6(const char *src, u_char *dst); /* int * inet_pton(af, src, dst) @@ -50,14 +62,15 @@ static int inet_pton6 __P((const char *src, u_char *dst)); * Paul Vixie, 1996. */ int -inet_pton(af, src, dst) - int af; - const char *src; - void *dst; +inet_pton(int af, const char *src, void *dst) { + + assert(src != NULL); + assert(dst != NULL); + switch (af) { case AF_INET: - return (inet_pton4(src, dst)); + return (inet_pton4(src, dst, 1)); case AF_INET6: return (inet_pton6(src, dst)); default: @@ -68,54 +81,123 @@ inet_pton(af, src, dst) } /* int - * inet_pton4(src, dst) - * like inet_aton() but without all the hexadecimal and shorthand. + * inet_pton4(src, dst, pton) + * when last arg is 0: inet_aton(). with hexadecimal, octal and shorthand. + * when last arg is 1: inet_pton(). decimal dotted-quad only. * return: - * 1 if `src' is a valid dotted quad, else 0. + * 1 if `src' is a valid input, else 0. * notice: * does not touch `dst' unless it's returning 1. * author: * Paul Vixie, 1996. */ static int -inet_pton4(src, dst) - const char *src; - u_char *dst; +inet_pton4(const char *src, u_char *dst, int pton) { - static const char digits[] = "0123456789"; - int saw_digit, octets, ch; - u_char tmp[NS_INADDRSZ], *tp; + u_int32_t val; + u_int digit, base; + ptrdiff_t n; + unsigned char c; + u_int parts[4]; + u_int *pp = parts; - saw_digit = 0; - octets = 0; - *(tp = tmp) = 0; - while ((ch = *src++) != '\0') { - const char *pch; + assert(src != NULL); + assert(dst != NULL); - if ((pch = strchr(digits, ch)) != NULL) { - u_int new = *tp * 10 + (pch - digits); - - if (saw_digit && *tp == 0) - return (0); - if (new > 255) - return (0); - *tp = new; - if (!saw_digit) { - if (++octets > 4) - return (0); - saw_digit = 1; - } - } else if (ch == '.' && saw_digit) { - if (octets == 4) - return (0); - *++tp = 0; - saw_digit = 0; - } else + c = *src; + for (;;) { + /* + * Collect number up to ``.''. + * Values are specified as for C: + * 0x=hex, 0=octal, isdigit=decimal. + */ + if (!isdigit(c)) return (0); + val = 0; base = 10; + if (c == '0') { + c = *++src; + if (c == 'x' || c == 'X') + base = 16, c = *++src; + else if (isdigit(c) && c != '9') + base = 8; + } + /* inet_pton() takes decimal only */ + if (pton && base != 10) + return (0); + for (;;) { + if (isdigit(c)) { + digit = c - '0'; + if (digit >= base) + break; + val = (val * base) + digit; + c = *++src; + } else if (base == 16 && isxdigit(c)) { + digit = c + 10 - (islower(c) ? 'a' : 'A'); + if (digit >= 16) + break; + val = (val << 4) | digit; + c = *++src; + } else + break; + } + if (c == '.') { + /* + * Internet format: + * a.b.c.d + * a.b.c (with c treated as 16 bits) + * a.b (with b treated as 24 bits) + * a (with a treated as 32 bits) + */ + if (pp >= parts + 3) + return (0); + *pp++ = val; + c = *++src; + } else + break; } - if (octets < 4) + /* + * Check for trailing characters. + */ + if (c != '\0' && !isspace(c)) return (0); - memcpy(dst, tmp, NS_INADDRSZ); + /* + * Concoct the address according to + * the number of parts specified. + */ + n = pp - parts + 1; + /* inet_pton() takes dotted-quad only. it does not take shorthand. */ + if (pton && n != 4) + return (0); + switch (n) { + + case 0: + return (0); /* initial nondigit */ + + case 1: /* a -- 32 bits */ + break; + + case 2: /* a.b -- 8.24 bits */ + if (parts[0] > 0xff || val > 0xffffff) + return (0); + val |= parts[0] << 24; + break; + + case 3: /* a.b.c -- 8.8.16 bits */ + if ((parts[0] | parts[1]) > 0xff || val > 0xffff) + return (0); + val |= (parts[0] << 24) | (parts[1] << 16); + break; + + case 4: /* a.b.c.d -- 8.8.8.8 bits */ + if ((parts[0] | parts[1] | parts[2] | val) > 0xff) + return (0); + val |= (parts[0] << 24) | (parts[1] << 16) | (parts[2] << 8); + break; + } + if (dst) { + val = htonl(val); + memcpy(dst, &val, NS_INADDRSZ); + } return (1); } @@ -133,9 +215,7 @@ inet_pton4(src, dst) * Paul Vixie, 1996. */ static int -inet_pton6(src, dst) - const char *src; - u_char *dst; +inet_pton6(const char *src, u_char *dst) { static const char xdigits_l[] = "0123456789abcdef", xdigits_u[] = "0123456789ABCDEF"; @@ -144,6 +224,9 @@ inet_pton6(src, dst) int ch, seen_xdigits; u_int val; + assert(src != NULL); + assert(dst != NULL); + memset((tp = tmp), '\0', NS_IN6ADDRSZ); endp = tp + NS_IN6ADDRSZ; colonp = NULL; @@ -161,7 +244,7 @@ inet_pton6(src, dst) pch = strchr((xdigits = xdigits_u), ch); if (pch != NULL) { val <<= 4; - val |= (pch - xdigits); + val |= (int)(pch - xdigits); if (++seen_xdigits > 4) return (0); continue; @@ -173,9 +256,8 @@ inet_pton6(src, dst) return (0); colonp = tp; continue; - } else if (*src == '\0') { + } else if (*src == '\0') return (0); - } if (tp + NS_INT16SZ > endp) return (0); *tp++ = (u_char) (val >> 8) & 0xff; @@ -185,7 +267,7 @@ inet_pton6(src, dst) continue; } if (ch == '.' && ((tp + NS_INADDRSZ) <= endp) && - inet_pton4(curtok, tp) > 0) { + inet_pton4(curtok, tp, 1) > 0) { tp += NS_INADDRSZ; seen_xdigits = 0; break; /*%< '\\0' was seen by inet_pton4(). */ @@ -203,7 +285,7 @@ inet_pton6(src, dst) * Since some memmove()'s erroneously fail to handle * overlapping regions, we'll do the shift by hand. */ - const int n = tp - colonp; + const ptrdiff_t n = tp - colonp; int i; if (tp == endp) diff --git a/src/kits/network/libbind/inet/nsap_addr.c b/src/kits/network/libbind/inet/nsap_addr.c index 0fe1f2f104..cb7b6c7867 100644 --- a/src/kits/network/libbind/inet/nsap_addr.c +++ b/src/kits/network/libbind/inet/nsap_addr.c @@ -1,3 +1,5 @@ +/* $NetBSD: nsap_addr.c,v 1.6 2009/04/12 17:07:17 christos Exp $ */ + /* * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1996-1999 by Internet Software Consortium. @@ -15,8 +17,13 @@ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include #if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: nsap_addr.c,v 1.5 2005/07/28 06:51:48 marka Exp $"; +#if 0 +static const char rcsid[] = "Id: nsap_addr.c,v 1.5 2005/07/28 06:51:48 marka Exp"; +#else +__RCSID("$NetBSD: nsap_addr.c,v 1.6 2009/04/12 17:07:17 christos Exp $"); +#endif #endif /* LIBC_SCCS and not lint */ #include "port_before.h" @@ -29,6 +36,7 @@ static const char rcsid[] = "$Id: nsap_addr.c,v 1.5 2005/07/28 06:51:48 marka Ex #include #include +#include #include #include #include @@ -45,6 +53,9 @@ inet_nsap_addr(const char *ascii, u_char *binary, int maxlen) { u_char c, nib; u_int len = 0; + assert(ascii != NULL); + assert(binary != NULL); + if (ascii[0] != '0' || (ascii[1] != 'x' && ascii[1] != 'X')) return (0); ascii += 2; @@ -83,6 +94,8 @@ inet_nsap_ntoa(int binlen, const u_char *binary, char *ascii) { char *tmpbuf = inet_nsap_ntoa_tmpbuf; char *start; + assert(binary != NULL); + if (ascii) start = ascii; else { @@ -97,7 +110,7 @@ inet_nsap_ntoa(int binlen, const u_char *binary, char *ascii) { binlen = 255; for (i = 0; i < binlen; i++) { - nib = *binary >> 4; + nib = (u_int32_t)*binary >> 4; *ascii++ = nib + (nib < 10 ? '0' : '7'); nib = *binary++ & 0x0f; *ascii++ = nib + (nib < 10 ? '0' : '7'); diff --git a/src/kits/network/libbind/irs/base64.c b/src/kits/network/libbind/irs/base64.c new file mode 100644 index 0000000000..c05201d883 --- /dev/null +++ b/src/kits/network/libbind/irs/base64.c @@ -0,0 +1,346 @@ +/* $NetBSD: base64.c,v 1.14 2012/06/25 22:32:44 abs Exp $ */ + +/* + * 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. + */ + +/* + * Portions Copyright (c) 1995 by International Business Machines, Inc. + * + * International Business Machines, Inc. (hereinafter called IBM) grants + * permission under its copyrights to use, copy, modify, and distribute this + * Software with or without fee, provided that the above copyright notice and + * all paragraphs of this notice appear in all copies, and that the name of IBM + * not be used in connection with the marketing of any product incorporating + * the Software or modifications thereof, without specific, written prior + * permission. + * + * To the extent it has a right to do so, IBM grants an immunity from suit + * under its patents, if any, for the use, sale or manufacture of products to + * the extent that such products are used for performing Domain Name System + * dynamic updates in TCP/IP networks by means of the Software. No immunity is + * granted for any product per se or for any other function of any product. + * + * THE SOFTWARE IS PROVIDED "AS IS", AND IBM DISCLAIMS ALL WARRANTIES, + * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A + * PARTICULAR PURPOSE. IN NO EVENT SHALL IBM BE LIABLE FOR ANY SPECIAL, + * DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER ARISING + * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE, EVEN + * IF IBM IS APPRISED OF THE POSSIBILITY OF SUCH DAMAGES. + */ + +#include +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static const char rcsid[] = "Id: base64.c,v 1.4 2005/04/27 04:56:34 sra Exp"; +#else +__RCSID("$NetBSD: base64.c,v 1.14 2012/06/25 22:32:44 abs Exp $"); +#endif +#endif /* LIBC_SCCS and not lint */ + +#include "port_before.h" + +#include +#include +#include + +#include +#include +#include + +#include +#include +#include +#include +#include +#include + +#include "port_after.h" + +#define Assert(Cond) if (!(Cond)) abort() + +static const char Base64[] = + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"; +static const char Pad64 = '='; + +/* (From RFC1521 and draft-ietf-dnssec-secext-03.txt) + The following encoding technique is taken from RFC1521 by Borenstein + and Freed. It is reproduced here in a slightly edited form for + convenience. + + A 65-character subset of US-ASCII is used, enabling 6 bits to be + represented per printable character. (The extra 65th character, "=", + is used to signify a special processing function.) + + The encoding process represents 24-bit groups of input bits as output + strings of 4 encoded characters. Proceeding from left to right, a + 24-bit input group is formed by concatenating 3 8-bit input groups. + These 24 bits are then treated as 4 concatenated 6-bit groups, each + of which is translated into a single digit in the base64 alphabet. + + Each 6-bit group is used as an index into an array of 64 printable + characters. The character referenced by the index is placed in the + output string. + + Table 1: The Base64 Alphabet + + Value Encoding Value Encoding Value Encoding Value Encoding + 0 A 17 R 34 i 51 z + 1 B 18 S 35 j 52 0 + 2 C 19 T 36 k 53 1 + 3 D 20 U 37 l 54 2 + 4 E 21 V 38 m 55 3 + 5 F 22 W 39 n 56 4 + 6 G 23 X 40 o 57 5 + 7 H 24 Y 41 p 58 6 + 8 I 25 Z 42 q 59 7 + 9 J 26 a 43 r 60 8 + 10 K 27 b 44 s 61 9 + 11 L 28 c 45 t 62 + + 12 M 29 d 46 u 63 / + 13 N 30 e 47 v + 14 O 31 f 48 w (pad) = + 15 P 32 g 49 x + 16 Q 33 h 50 y + + Special processing is performed if fewer than 24 bits are available + at the end of the data being encoded. A full encoding quantum is + always completed at the end of a quantity. When fewer than 24 input + bits are available in an input group, zero bits are added (on the + right) to form an integral number of 6-bit groups. Padding at the + end of the data is performed using the '=' character. + + Since all base64 input is an integral number of octets, only the + ------------------------------------------------- + following cases can arise: + + (1) the final quantum of encoding input is an integral + multiple of 24 bits; here, the final unit of encoded + output will be an integral multiple of 4 characters + with no "=" padding, + (2) the final quantum of encoding input is exactly 8 bits; + here, the final unit of encoded output will be two + characters followed by two "=" padding characters, or + (3) the final quantum of encoding input is exactly 16 bits; + here, the final unit of encoded output will be three + characters followed by one "=" padding character. + */ + +int +b64_ntop(u_char const *src, size_t srclength, char *target, size_t targsize) { + size_t datalength = 0; + u_char input[3]; + u_char output[4]; + size_t i; + + assert(src != NULL); + assert(target != NULL); + + while (2U < srclength) { + input[0] = *src++; + input[1] = *src++; + input[2] = *src++; + srclength -= 3; + + output[0] = (u_int32_t)input[0] >> 2; + output[1] = ((u_int32_t)(input[0] & 0x03) << 4) + + ((u_int32_t)input[1] >> 4); + output[2] = ((u_int32_t)(input[1] & 0x0f) << 2) + + ((u_int32_t)input[2] >> 6); + output[3] = input[2] & 0x3f; + Assert(output[0] < 64); + Assert(output[1] < 64); + Assert(output[2] < 64); + Assert(output[3] < 64); + + if (datalength + 4 > targsize) + return (-1); + target[datalength++] = Base64[output[0]]; + target[datalength++] = Base64[output[1]]; + target[datalength++] = Base64[output[2]]; + target[datalength++] = Base64[output[3]]; + } + + /* Now we worry about padding. */ + if (0U != srclength) { + /* Get what's left. */ + input[0] = input[1] = input[2] = '\0'; + for (i = 0; i < srclength; i++) + input[i] = *src++; + + output[0] = (u_int32_t)input[0] >> 2; + output[1] = ((u_int32_t)(input[0] & 0x03) << 4) + + ((u_int32_t)input[1] >> 4); + output[2] = ((u_int32_t)(input[1] & 0x0f) << 2) + + ((u_int32_t)input[2] >> 6); + Assert(output[0] < 64); + Assert(output[1] < 64); + Assert(output[2] < 64); + + if (datalength + 4 > targsize) + return (-1); + target[datalength++] = Base64[output[0]]; + target[datalength++] = Base64[output[1]]; + if (srclength == 1U) + target[datalength++] = Pad64; + else + target[datalength++] = Base64[output[2]]; + target[datalength++] = Pad64; + } + if (datalength >= targsize) + return (-1); + target[datalength] = '\0'; /*%< Returned value doesn't count \\0. */ + assert (datalength <= (size_t)INT_MAX); + return (int)datalength; +} + +/* skips all whitespace anywhere. + converts characters, four at a time, starting at (or after) + src from base - 64 numbers into three 8 bit bytes in the target area. + it returns the number of data bytes stored at the target, or -1 on error. + */ + +int +b64_pton(char const *src, u_char *target, size_t targsize) +{ + size_t tarindex; + int state, ch; + char *pos; + + assert(src != NULL); + assert(target != NULL); + + state = 0; + tarindex = 0; + + while ((ch = (u_char) *src++) != '\0') { + if (isspace(ch)) /*%< Skip whitespace anywhere. */ + continue; + + if (ch == Pad64) + break; + + pos = strchr(Base64, ch); + if (pos == 0) /*%< A non-base64 character. */ + return (-1); + + switch (state) { + case 0: + if (target) { + if ((size_t)tarindex >= targsize) + return (-1); + target[tarindex] = + (unsigned char)(pos - Base64) << 2; + } + state = 1; + break; + case 1: + if (target) { + if ((size_t)tarindex + 1 >= targsize) + return (-1); + target[tarindex] |= + (u_int32_t)(pos - Base64) >> 4; + target[tarindex+1] = + (unsigned char) + (((pos - Base64) & 0x0f) << 4); + } + tarindex++; + state = 2; + break; + case 2: + if (target) { + if ((size_t)tarindex + 1 >= targsize) + return (-1); + target[tarindex] |= + (u_int32_t)(pos - Base64) >> 2; + target[tarindex+1] = + (unsigned char) + (((pos - Base64) & 0x03) << 6); + } + tarindex++; + state = 3; + break; + case 3: + if (target) { + if ((size_t)tarindex >= targsize) + return (-1); + target[tarindex] |= + (unsigned char)(pos - Base64); + } + tarindex++; + state = 0; + break; + default: + abort(); + } + } + + /* + * We are done decoding Base-64 chars. Let's see if we ended + * on a byte boundary, and/or with erroneous trailing characters. + */ + + if (ch == Pad64) { /*%< We got a pad char. */ + ch = *src++; /*%< Skip it, get next. */ + switch (state) { + case 0: /*%< Invalid = in first position */ + case 1: /*%< Invalid = in second position */ + return (-1); + + case 2: /*%< Valid, means one byte of info */ + /* Skip any number of spaces. */ + for (; ch != '\0'; ch = (u_char) *src++) + if (!isspace(ch)) + break; + /* Make sure there is another trailing = sign. */ + if (ch != Pad64) + return (-1); + ch = *src++; /*%< Skip the = */ + /* Fall through to "single trailing =" case. */ + /* FALLTHROUGH */ + + case 3: /*%< Valid, means two bytes of info */ + /* + * We know this char is an =. Is there anything but + * whitespace after it? + */ + for (; ch != '\0'; ch = (u_char) *src++) + if (!isspace(ch)) + return (-1); + + /* + * Now make sure for cases 2 and 3 that the "extra" + * bits that slopped past the last full byte were + * zeros. If we don't check them, they become a + * subliminal channel. + */ + if (target && target[tarindex] != 0) + return (-1); + } + } else { + /* + * We ended by seeing the end of the string. Make sure we + * have no partial bytes lying around. + */ + if (state != 0) + return (-1); + } + + assert(tarindex <= (size_t)INT_MAX); + return (int)tarindex; +} + +/*! \file */ diff --git a/src/kits/network/libbind/irs/dns.c b/src/kits/network/libbind/irs/dns.c deleted file mode 100644 index cbea94680e..0000000000 --- a/src/kits/network/libbind/irs/dns.c +++ /dev/null @@ -1,154 +0,0 @@ -/* - * 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: dns.c,v 1.5 2006/03/09 23:57:56 marka Exp $"; -#endif - -/*! \file - * \brief - * dns.c --- this is the top-level accessor function for the dns - */ - -#include "port_before.h" - -#include -#include -#include - -#include -#include -#include -#include - -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "hesiod.h" -#include "dns_p.h" - -/* forward */ - -static void dns_close(struct irs_acc *); -static struct __res_state * dns_res_get(struct irs_acc *); -static void dns_res_set(struct irs_acc *, struct __res_state *, - void (*)(void *)); - -/* public */ - -struct irs_acc * -irs_dns_acc(const char *options) { - struct irs_acc *acc; - struct dns_p *dns; - - UNUSED(options); - - if (!(acc = memget(sizeof *acc))) { - errno = ENOMEM; - return (NULL); - } - memset(acc, 0x5e, sizeof *acc); - if (!(dns = memget(sizeof *dns))) { - errno = ENOMEM; - memput(acc, sizeof *acc); - return (NULL); - } - memset(dns, 0x5e, sizeof *dns); - dns->res = NULL; - dns->free_res = NULL; - if (hesiod_init(&dns->hes_ctx) < 0) { - /* - * We allow the dns accessor class to initialize - * despite hesiod failing to initialize correctly, - * since dns host queries don't depend on hesiod. - */ - dns->hes_ctx = NULL; - } - acc->private = dns; -#ifdef WANT_IRS_GR - acc->gr_map = irs_dns_gr; -#else - acc->gr_map = NULL; -#endif -#ifdef WANT_IRS_PW - acc->pw_map = irs_dns_pw; -#else - acc->pw_map = NULL; -#endif - acc->sv_map = irs_dns_sv; - acc->pr_map = irs_dns_pr; - acc->ho_map = irs_dns_ho; - acc->nw_map = irs_dns_nw; - acc->ng_map = irs_nul_ng; - acc->res_get = dns_res_get; - acc->res_set = dns_res_set; - acc->close = dns_close; - return (acc); -} - -/* methods */ -static struct __res_state * -dns_res_get(struct irs_acc *this) { - struct dns_p *dns = (struct dns_p *)this->private; - - if (dns->res == NULL) { - struct __res_state *res; - res = (struct __res_state *)malloc(sizeof *res); - if (res == NULL) - return (NULL); - memset(res, 0, sizeof *res); - dns_res_set(this, res, free); - } - - if ((dns->res->options & RES_INIT) == 0U && - res_ninit(dns->res) < 0) - return (NULL); - - return (dns->res); -} - -static void -dns_res_set(struct irs_acc *this, struct __res_state *res, - void (*free_res)(void *)) { - struct dns_p *dns = (struct dns_p *)this->private; - - if (dns->res && dns->free_res) { - res_nclose(dns->res); - (*dns->free_res)(dns->res); - } - dns->res = res; - dns->free_res = free_res; -} - -static void -dns_close(struct irs_acc *this) { - struct dns_p *dns; - - dns = (struct dns_p *)this->private; - if (dns->res && dns->free_res) - (*dns->free_res)(dns->res); - if (dns->hes_ctx) - hesiod_end(dns->hes_ctx); - memput(dns, sizeof *dns); - memput(this, sizeof *this); -} - diff --git a/src/kits/network/libbind/irs/dns_gr.c b/src/kits/network/libbind/irs/dns_gr.c deleted file mode 100644 index 629d2fb173..0000000000 --- a/src/kits/network/libbind/irs/dns_gr.c +++ /dev/null @@ -1,294 +0,0 @@ -/* - * 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: dns_gr.c,v 1.4 2005/04/27 04:56:21 sra Exp $"; -#endif - -/*! \file - * \brief - * dns_gr.c --- this file contains the functions for accessing - * group information from Hesiod. - */ - -#include "port_before.h" - -#ifndef WANT_IRS_GR -static int __bind_irs_gr_unneeded; -#else - -#include -#include - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "hesiod.h" -#include "dns_p.h" - -/* Types. */ - -struct pvt { - /* - * This is our private accessor data. It has a shared hesiod context. - */ - struct dns_p * dns; - /* - * Need space to store the entries read from the group file. - * The members list also needs space per member, and the - * strings making up the user names must be allocated - * somewhere. Rather than doing lots of small allocations, - * we keep one buffer and resize it as needed. - */ - struct group group; - size_t nmemb; /*%< Malloc'd max index of gr_mem[]. */ - char * membuf; - size_t membufsize; -}; - -/* Forward. */ - -static struct group * gr_next(struct irs_gr *); -static struct group * gr_byname(struct irs_gr *, const char *); -static struct group * gr_bygid(struct irs_gr *, gid_t); -static void gr_rewind(struct irs_gr *); -static void gr_close(struct irs_gr *); -static int gr_list(struct irs_gr *, const char *, - gid_t, gid_t *, int *); -static void gr_minimize(struct irs_gr *); -static struct __res_state * gr_res_get(struct irs_gr *); -static void gr_res_set(struct irs_gr *, - struct __res_state *, - void (*)(void *)); - -static struct group * get_hes_group(struct irs_gr *this, - const char *name, - const char *type); - -/* Public. */ - -struct irs_gr * -irs_dns_gr(struct irs_acc *this) { - struct dns_p *dns = (struct dns_p *)this->private; - struct irs_gr *gr; - struct pvt *pvt; - - if (!dns || !dns->hes_ctx) { - errno = ENODEV; - return (NULL); - } - if (!(pvt = memget(sizeof *pvt))) { - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - pvt->dns = dns; - if (!(gr = memget(sizeof *gr))) { - memput(pvt, sizeof *pvt); - errno = ENOMEM; - return (NULL); - } - memset(gr, 0x5e, sizeof *gr); - gr->private = pvt; - gr->next = gr_next; - gr->byname = gr_byname; - gr->bygid = gr_bygid; - gr->rewind = gr_rewind; - gr->close = gr_close; - gr->list = gr_list; - gr->minimize = gr_minimize; - gr->res_get = gr_res_get; - gr->res_set = gr_res_set; - return (gr); -} - -/* methods */ - -static void -gr_close(struct irs_gr *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->group.gr_mem) - free(pvt->group.gr_mem); - if (pvt->membuf) - free(pvt->membuf); - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct group * -gr_next(struct irs_gr *this) { - - UNUSED(this); - - return (NULL); -} - -static struct group * -gr_byname(struct irs_gr *this, const char *name) { - return (get_hes_group(this, name, "group")); -} - -static struct group * -gr_bygid(struct irs_gr *this, gid_t gid) { - char name[32]; - - sprintf(name, "%ld", (long)gid); - return (get_hes_group(this, name, "gid")); -} - -static void -gr_rewind(struct irs_gr *this) { - - UNUSED(this); - - /* NOOP */ -} - -static int -gr_list(struct irs_gr *this, const char *name, - gid_t basegid, gid_t *groups, int *ngroups) -{ - UNUSED(this); - UNUSED(name); - UNUSED(basegid); - UNUSED(groups); - - *ngroups = 0; - /* There's some way to do this in Hesiod. */ - return (-1); -} - -static void -gr_minimize(struct irs_gr *this) { - - UNUSED(this); - /* NOOP */ -} - -/* Private. */ - -static struct group * -get_hes_group(struct irs_gr *this, const char *name, const char *type) { - struct pvt *pvt = (struct pvt *)this->private; - char **hes_list, *cp, **new; - size_t num_members = 0; - u_long t; - - hes_list = hesiod_resolve(pvt->dns->hes_ctx, name, type); - if (!hes_list) - return (NULL); - - /* - * Copy the returned hesiod string into storage space. - */ - if (pvt->membuf) - free(pvt->membuf); - pvt->membuf = strdup(*hes_list); - hesiod_free_list(pvt->dns->hes_ctx, hes_list); - - cp = pvt->membuf; - pvt->group.gr_name = cp; - if (!(cp = strchr(cp, ':'))) - goto cleanup; - *cp++ = '\0'; - - pvt->group.gr_passwd = cp; - if (!(cp = strchr(cp, ':'))) - goto cleanup; - *cp++ = '\0'; - - errno = 0; - t = strtoul(cp, NULL, 10); - if (errno == ERANGE) - goto cleanup; - pvt->group.gr_gid = (gid_t) t; - if (!(cp = strchr(cp, ':'))) - goto cleanup; - cp++; - - /* - * Parse the members out. - */ - while (*cp) { - if (num_members+1 >= pvt->nmemb || pvt->group.gr_mem == NULL) { - pvt->nmemb += 10; - new = realloc(pvt->group.gr_mem, - pvt->nmemb * sizeof(char *)); - if (new == NULL) - goto cleanup; - pvt->group.gr_mem = new; - } - pvt->group.gr_mem[num_members++] = cp; - if (!(cp = strchr(cp, ','))) - break; - *cp++ = '\0'; - } - if (!pvt->group.gr_mem) { - pvt->group.gr_mem = malloc(sizeof(char*)); - if (!pvt->group.gr_mem) - goto cleanup; - } - pvt->group.gr_mem[num_members] = NULL; - - return (&pvt->group); - - cleanup: - if (pvt->group.gr_mem) { - free(pvt->group.gr_mem); - pvt->group.gr_mem = NULL; - } - if (pvt->membuf) { - free(pvt->membuf); - pvt->membuf = NULL; - } - return (NULL); -} - -static struct __res_state * -gr_res_get(struct irs_gr *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct dns_p *dns = pvt->dns; - - return (__hesiod_res_get(dns->hes_ctx)); -} - -static void -gr_res_set(struct irs_gr *this, struct __res_state * res, - void (*free_res)(void *)) { - struct pvt *pvt = (struct pvt *)this->private; - struct dns_p *dns = pvt->dns; - - __hesiod_res_set(dns->hes_ctx, res, free_res); -} - -#endif /* WANT_IRS_GR */ diff --git a/src/kits/network/libbind/irs/dns_ho.c b/src/kits/network/libbind/irs/dns_ho.c deleted file mode 100644 index 6a10b1497c..0000000000 --- a/src/kits/network/libbind/irs/dns_ho.c +++ /dev/null @@ -1,1159 +0,0 @@ -/* - * Portions Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC") - * Portions Copyright (C) 1996-2003 Internet Software Consortium. - * - * Permission to use, copy, modify, and/or 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. - */ - -/* - * Copyright (c) 1985, 1988, 1993 - * 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: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University 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 REGENTS 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. - */ - -/* from gethostnamadr.c 8.1 (Berkeley) 6/4/93 */ -/* BIND Id: gethnamaddr.c,v 8.15 1996/05/22 04:56:30 vixie Exp $ */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: dns_ho.c,v 1.23 2008/11/14 02:36:51 marka Exp $"; -#endif /* LIBC_SCCS and not lint */ - -/* Imports. */ - -#include "port_before.h" - -#include -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "dns_p.h" - -#ifdef SPRINTF_CHAR -# define SPRINTF(x) strlen(sprintf/**/x) -#else -# define SPRINTF(x) sprintf x -#endif - -/* Definitions. */ - -#define MAXALIASES 35 -#define MAXADDRS 35 - -#define MAXPACKET (65535) /*%< Maximum TCP message size */ -#define BOUNDS_CHECK(ptr, count) \ - if ((ptr) + (count) > eom) { \ - had_error++; \ - continue; \ - } else (void)0 - -typedef union { - HEADER hdr; - u_char buf[MAXPACKET]; -} querybuf; - -struct dns_res_target { - struct dns_res_target *next; - querybuf qbuf; /*%< query buffer */ - u_char *answer; /*%< buffer to put answer */ - int anslen; /*%< size of answer buffer */ - int qclass, qtype; /*%< class and type of query */ - int action; /*%< condition whether query is really issued */ - char qname[MAXDNAME +1]; /*%< domain name */ -#if 0 - int n; /*%< result length */ -#endif -}; -enum {RESTGT_DOALWAYS, RESTGT_AFTERFAILURE, RESTGT_IGNORE}; -enum {RESQRY_SUCCESS, RESQRY_FAIL}; - -struct pvt { - struct hostent host; - char * h_addr_ptrs[MAXADDRS + 1]; - char * host_aliases[MAXALIASES]; - char hostbuf[8*1024]; - u_char host_addr[16]; /*%< IPv4 or IPv6 */ - struct __res_state *res; - void (*free_res)(void *); -}; - -typedef union { - int32_t al; - char ac; -} align; - -static const u_char mapped[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0xff,0xff }; -static const u_char tunnelled[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 }; -/* Note: the IPv6 loopback address is in the "tunnel" space */ -static const u_char v6local[] = { 0,0, 0,1 }; /*%< last 4 bytes of IPv6 addr */ -/* Forwards. */ - -static void ho_close(struct irs_ho *this); -static struct hostent * ho_byname(struct irs_ho *this, const char *name); -static struct hostent * ho_byname2(struct irs_ho *this, const char *name, - int af); -static struct hostent * ho_byaddr(struct irs_ho *this, const void *addr, - int len, int af); -static struct hostent * ho_next(struct irs_ho *this); -static void ho_rewind(struct irs_ho *this); -static void ho_minimize(struct irs_ho *this); -static struct __res_state * ho_res_get(struct irs_ho *this); -static void ho_res_set(struct irs_ho *this, - struct __res_state *res, - void (*free_res)(void *)); -static struct addrinfo * ho_addrinfo(struct irs_ho *this, const char *name, - const struct addrinfo *pai); - -static void map_v4v6_hostent(struct hostent *hp, char **bp, - char *ep); -static void addrsort(res_state, char **, int); -static struct hostent * gethostans(struct irs_ho *this, - const u_char *ansbuf, int anslen, - const char *qname, int qtype, - int af, int size, - struct addrinfo **ret_aip, - const struct addrinfo *pai); -static int add_hostent(struct pvt *pvt, char *bp, char **hap, - struct addrinfo *ai); -static int init(struct irs_ho *this); - -/* Exports. */ - -struct irs_ho * -irs_dns_ho(struct irs_acc *this) { - struct irs_ho *ho; - struct pvt *pvt; - - UNUSED(this); - - if (!(pvt = memget(sizeof *pvt))) { - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - - if (!(ho = memget(sizeof *ho))) { - memput(pvt, sizeof *pvt); - errno = ENOMEM; - return (NULL); - } - memset(ho, 0x5e, sizeof *ho); - ho->private = pvt; - ho->close = ho_close; - ho->byname = ho_byname; - ho->byname2 = ho_byname2; - ho->byaddr = ho_byaddr; - ho->next = ho_next; - ho->rewind = ho_rewind; - ho->minimize = ho_minimize; - ho->res_get = ho_res_get; - ho->res_set = ho_res_set; - ho->addrinfo = ho_addrinfo; - return (ho); -} - -/* Methods. */ - -static void -ho_close(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - - ho_minimize(this); - if (pvt->res && pvt->free_res) - (*pvt->free_res)(pvt->res); - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct hostent * -ho_byname(struct irs_ho *this, const char *name) { - struct pvt *pvt = (struct pvt *)this->private; - struct hostent *hp; - - if (init(this) == -1) - return (NULL); - - if (pvt->res->options & RES_USE_INET6) { - hp = ho_byname2(this, name, AF_INET6); - if (hp) - return (hp); - } - return (ho_byname2(this, name, AF_INET)); -} - -static struct hostent * -ho_byname2(struct irs_ho *this, const char *name, int af) -{ - struct pvt *pvt = (struct pvt *)this->private; - struct hostent *hp = NULL; - int n, size; - char tmp[NS_MAXDNAME]; - const char *cp; - struct addrinfo ai; - struct dns_res_target *q, *p; - int querystate = RESQRY_FAIL; - - if (init(this) == -1) - return (NULL); - - q = memget(sizeof(*q)); - if (q == NULL) { - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - errno = ENOMEM; - goto cleanup; - } - memset(q, 0, sizeof(*q)); - - switch (af) { - case AF_INET: - size = INADDRSZ; - q->qclass = C_IN; - q->qtype = T_A; - q->answer = q->qbuf.buf; - q->anslen = sizeof(q->qbuf); - q->action = RESTGT_DOALWAYS; - break; - case AF_INET6: - size = IN6ADDRSZ; - q->qclass = C_IN; - q->qtype = T_AAAA; - q->answer = q->qbuf.buf; - q->anslen = sizeof(q->qbuf); - q->action = RESTGT_DOALWAYS; - break; - default: - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - errno = EAFNOSUPPORT; - hp = NULL; - goto cleanup; - } - - /* - * if there aren't any dots, it could be a user-level alias. - * this is also done in res_nquery() since we are not the only - * function that looks up host names. - */ - if (!strchr(name, '.') && (cp = res_hostalias(pvt->res, name, - tmp, sizeof tmp))) - name = cp; - - for (p = q; p; p = p->next) { - switch(p->action) { - case RESTGT_DOALWAYS: - break; - case RESTGT_AFTERFAILURE: - if (querystate == RESQRY_SUCCESS) - continue; - break; - case RESTGT_IGNORE: - continue; - } - - if ((n = res_nsearch(pvt->res, name, p->qclass, p->qtype, - p->answer, p->anslen)) < 0) { - querystate = RESQRY_FAIL; - continue; - } - - memset(&ai, 0, sizeof(ai)); - ai.ai_family = af; - if ((hp = gethostans(this, p->answer, n, name, p->qtype, - af, size, NULL, - (const struct addrinfo *)&ai)) != NULL) - goto cleanup; /*%< no more loop is necessary */ - querystate = RESQRY_FAIL; - continue; - } - - cleanup: - if (q != NULL) - memput(q, sizeof(*q)); - return(hp); -} - -static struct hostent * -ho_byaddr(struct irs_ho *this, const void *addr, int len, int af) -{ - struct pvt *pvt = (struct pvt *)this->private; - const u_char *uaddr = addr; - char *qp; - struct hostent *hp = NULL; - struct addrinfo ai; - struct dns_res_target *q, *q2, *p; - int n, size, i; - int querystate = RESQRY_FAIL; - - if (init(this) == -1) - return (NULL); - - q = memget(sizeof(*q)); - q2 = memget(sizeof(*q2)); - if (q == NULL || q2 == NULL) { - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - errno = ENOMEM; - goto cleanup; - } - memset(q, 0, sizeof(*q)); - memset(q2, 0, sizeof(*q2)); - - if (af == AF_INET6 && len == IN6ADDRSZ && - (!memcmp(uaddr, mapped, sizeof mapped) || - (!memcmp(uaddr, tunnelled, sizeof tunnelled) && - memcmp(&uaddr[sizeof tunnelled], v6local, sizeof(v6local))))) { - /* Unmap. */ - addr = (const char *)addr + sizeof mapped; - uaddr += sizeof mapped; - af = AF_INET; - len = INADDRSZ; - } - switch (af) { - case AF_INET: - size = INADDRSZ; - q->qclass = C_IN; - q->qtype = T_PTR; - q->answer = q->qbuf.buf; - q->anslen = sizeof(q->qbuf); - q->action = RESTGT_DOALWAYS; - break; - case AF_INET6: - size = IN6ADDRSZ; - q->qclass = C_IN; - q->qtype = T_PTR; - q->answer = q->qbuf.buf; - q->anslen = sizeof(q->qbuf); - q->next = q2; - q->action = RESTGT_DOALWAYS; - q2->qclass = C_IN; - q2->qtype = T_PTR; - q2->answer = q2->qbuf.buf; - q2->anslen = sizeof(q2->qbuf); - if ((pvt->res->options & RES_NO_NIBBLE2) != 0U) - q2->action = RESTGT_IGNORE; - else - q2->action = RESTGT_AFTERFAILURE; - break; - default: - errno = EAFNOSUPPORT; - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - hp = NULL; - goto cleanup; - } - if (size > len) { - errno = EINVAL; - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - hp = NULL; - goto cleanup; - } - switch (af) { - case AF_INET: - qp = q->qname; - (void) sprintf(qp, "%u.%u.%u.%u.in-addr.arpa", - (uaddr[3] & 0xff), - (uaddr[2] & 0xff), - (uaddr[1] & 0xff), - (uaddr[0] & 0xff)); - break; - case AF_INET6: - if (q->action != RESTGT_IGNORE) { - const char *nibsuff = res_get_nibblesuffix(pvt->res); - qp = q->qname; - for (n = IN6ADDRSZ - 1; n >= 0; n--) { - i = SPRINTF((qp, "%x.%x.", - uaddr[n] & 0xf, - (uaddr[n] >> 4) & 0xf)); - if (i != 4) - abort(); - qp += i; - } - if (strlen(q->qname) + strlen(nibsuff) + 1 > - sizeof q->qname) { - errno = ENAMETOOLONG; - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - hp = NULL; - goto cleanup; - } - strcpy(qp, nibsuff); /* (checked) */ - } - if (q2->action != RESTGT_IGNORE) { - const char *nibsuff2 = res_get_nibblesuffix2(pvt->res); - qp = q2->qname; - for (n = IN6ADDRSZ - 1; n >= 0; n--) { - i = SPRINTF((qp, "%x.%x.", - uaddr[n] & 0xf, - (uaddr[n] >> 4) & 0xf)); - if (i != 4) - abort(); - qp += i; - } - if (strlen(q2->qname) + strlen(nibsuff2) + 1 > - sizeof q2->qname) { - errno = ENAMETOOLONG; - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - hp = NULL; - goto cleanup; - } - strcpy(qp, nibsuff2); /* (checked) */ - } - break; - default: - abort(); - } - - for (p = q; p; p = p->next) { - switch(p->action) { - case RESTGT_DOALWAYS: - break; - case RESTGT_AFTERFAILURE: - if (querystate == RESQRY_SUCCESS) - continue; - break; - case RESTGT_IGNORE: - continue; - } - - if ((n = res_nquery(pvt->res, p->qname, p->qclass, p->qtype, - p->answer, p->anslen)) < 0) { - querystate = RESQRY_FAIL; - continue; - } - - memset(&ai, 0, sizeof(ai)); - ai.ai_family = af; - hp = gethostans(this, p->answer, n, p->qname, T_PTR, af, size, - NULL, (const struct addrinfo *)&ai); - if (!hp) { - querystate = RESQRY_FAIL; - continue; - } - - memcpy(pvt->host_addr, addr, len); - pvt->h_addr_ptrs[0] = (char *)pvt->host_addr; - pvt->h_addr_ptrs[1] = NULL; - if (af == AF_INET && (pvt->res->options & RES_USE_INET6)) { - map_v4v6_address((char*)pvt->host_addr, - (char*)pvt->host_addr); - pvt->host.h_addrtype = AF_INET6; - pvt->host.h_length = IN6ADDRSZ; - } - - RES_SET_H_ERRNO(pvt->res, NETDB_SUCCESS); - goto cleanup; /*%< no more loop is necessary. */ - } - hp = NULL; /*%< H_ERRNO was set by subroutines */ - cleanup: - if (q != NULL) - memput(q, sizeof(*q)); - if (q2 != NULL) - memput(q2, sizeof(*q2)); - return(hp); -} - -static struct hostent * -ho_next(struct irs_ho *this) { - - UNUSED(this); - - return (NULL); -} - -static void -ho_rewind(struct irs_ho *this) { - - UNUSED(this); - - /* NOOP */ -} - -static void -ho_minimize(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->res) - res_nclose(pvt->res); -} - -static struct __res_state * -ho_res_get(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->res) { - struct __res_state *res; - res = (struct __res_state *)malloc(sizeof *res); - if (!res) { - errno = ENOMEM; - return (NULL); - } - memset(res, 0, sizeof *res); - ho_res_set(this, res, free); - } - - return (pvt->res); -} - -static int -ipv6_available(void) -{ - static int socket6; - if (socket6 == 0) { - socket6 = socket(AF_INET6, SOCK_DGRAM, 0); - if (socket6 >= 0) - close(socket6); - } - return socket6 >= 0; -} - -/* XXX */ -extern struct addrinfo *addr2addrinfo __P((const struct addrinfo *, - const char *)); - -static struct addrinfo * -ho_addrinfo(struct irs_ho *this, const char *name, const struct addrinfo *pai) -{ - struct pvt *pvt = (struct pvt *)this->private; - int n; - char tmp[NS_MAXDNAME]; - const char *cp; - struct dns_res_target *q, *q2, *p; - struct addrinfo sentinel, *cur; - int querystate = RESQRY_FAIL; - - if (init(this) == -1) - return (NULL); - - memset(&sentinel, 0, sizeof(sentinel)); - cur = &sentinel; - - q = memget(sizeof(*q)); - q2 = memget(sizeof(*q2)); - if (q == NULL || q2 == NULL) { - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - errno = ENOMEM; - goto cleanup; - } - memset(q, 0, sizeof(*q2)); - memset(q2, 0, sizeof(*q2)); - - switch (pai->ai_family) { - case AF_UNSPEC: - if (ipv6_available()) { - /* prefer IPv6 */ - q->qclass = C_IN; - q->qtype = T_AAAA; - q->answer = q->qbuf.buf; - q->anslen = sizeof(q->qbuf); - q->next = q2; - q->action = RESTGT_DOALWAYS; - q2->qclass = C_IN; - q2->qtype = T_A; - q2->answer = q2->qbuf.buf; - q2->anslen = sizeof(q2->qbuf); - q2->action = RESTGT_DOALWAYS; - break; - } - // supposed to fall through - case AF_INET: - q->qclass = C_IN; - q->qtype = T_A; - q->answer = q->qbuf.buf; - q->anslen = sizeof(q->qbuf); - q->action = RESTGT_DOALWAYS; - break; - case AF_INET6: - q->qclass = C_IN; - q->qtype = T_AAAA; - q->answer = q->qbuf.buf; - q->anslen = sizeof(q->qbuf); - q->action = RESTGT_DOALWAYS; - break; - default: - RES_SET_H_ERRNO(pvt->res, NO_RECOVERY); /*%< better error? */ - goto cleanup; - } - - /* - * if there aren't any dots, it could be a user-level alias. - * this is also done in res_nquery() since we are not the only - * function that looks up host names. - */ - if (!strchr(name, '.') && (cp = res_hostalias(pvt->res, name, - tmp, sizeof tmp))) - name = cp; - - for (p = q; p; p = p->next) { - struct addrinfo *ai; - - switch(p->action) { - case RESTGT_DOALWAYS: - break; - case RESTGT_AFTERFAILURE: - if (querystate == RESQRY_SUCCESS) - continue; - break; - case RESTGT_IGNORE: - continue; - } - - if ((n = res_nsearch(pvt->res, name, p->qclass, p->qtype, - p->answer, p->anslen)) < 0) { - querystate = RESQRY_FAIL; - continue; - } - (void)gethostans(this, p->answer, n, name, p->qtype, - pai->ai_family, /*%< XXX: meaningless */ - 0, &ai, pai); - if (ai) { - querystate = RESQRY_SUCCESS; - cur->ai_next = ai; - while (cur->ai_next) - cur = cur->ai_next; - } else - querystate = RESQRY_FAIL; - } - - cleanup: - if (q != NULL) - memput(q, sizeof(*q)); - if (q2 != NULL) - memput(q2, sizeof(*q2)); - return(sentinel.ai_next); -} - -static void -ho_res_set(struct irs_ho *this, struct __res_state *res, - void (*free_res)(void *)) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->res && pvt->free_res) { - res_nclose(pvt->res); - (*pvt->free_res)(pvt->res); - } - - pvt->res = res; - pvt->free_res = free_res; -} - -/* Private. */ - -static struct hostent * -gethostans(struct irs_ho *this, - const u_char *ansbuf, int anslen, const char *qname, int qtype, - int af, int size, /*!< meaningless for addrinfo cases */ - struct addrinfo **ret_aip, const struct addrinfo *pai) -{ - struct pvt *pvt = (struct pvt *)this->private; - int type, class, ancount, qdcount, n, haveanswer, had_error; - int error = NETDB_SUCCESS; - int (*name_ok)(const char *); - const HEADER *hp; - const u_char *eom; - const u_char *eor; - const u_char *cp; - const char *tname; - const char *hname; - char *bp, *ep, **ap, **hap; - char tbuf[MAXDNAME+1]; - struct addrinfo sentinel, *cur, ai; - - if (pai == NULL) abort(); - if (ret_aip != NULL) - *ret_aip = NULL; - memset(&sentinel, 0, sizeof(sentinel)); - cur = &sentinel; - - tname = qname; - eom = ansbuf + anslen; - switch (qtype) { - case T_A: - case T_AAAA: - case T_ANY: /*%< use T_ANY only for T_A/T_AAAA lookup */ - name_ok = res_hnok; - break; - case T_PTR: - name_ok = res_dnok; - break; - default: - abort(); - } - - pvt->host.h_addrtype = af; - pvt->host.h_length = size; - hname = pvt->host.h_name = NULL; - - /* - * Find first satisfactory answer. - */ - if (ansbuf + HFIXEDSZ > eom) { - RES_SET_H_ERRNO(pvt->res, NO_RECOVERY); - return (NULL); - } - hp = (const HEADER *)ansbuf; - ancount = ntohs(hp->ancount); - qdcount = ntohs(hp->qdcount); - bp = pvt->hostbuf; - ep = pvt->hostbuf + sizeof(pvt->hostbuf); - cp = ansbuf + HFIXEDSZ; - if (qdcount != 1) { - RES_SET_H_ERRNO(pvt->res, NO_RECOVERY); - return (NULL); - } - n = dn_expand(ansbuf, eom, cp, bp, ep - bp); - if (n < 0 || !maybe_ok(pvt->res, bp, name_ok)) { - RES_SET_H_ERRNO(pvt->res, NO_RECOVERY); - return (NULL); - } - cp += n + QFIXEDSZ; - if (cp > eom) { - RES_SET_H_ERRNO(pvt->res, NO_RECOVERY); - return (NULL); - } - if (qtype == T_A || qtype == T_AAAA || qtype == T_ANY) { - /* res_nsend() has already verified that the query name is the - * same as the one we sent; this just gets the expanded name - * (i.e., with the succeeding search-domain tacked on). - */ - n = strlen(bp) + 1; /*%< for the \\0 */ - if (n > MAXHOSTNAMELEN) { - RES_SET_H_ERRNO(pvt->res, NO_RECOVERY); - return (NULL); - } - pvt->host.h_name = bp; - hname = bp; - bp += n; - /* The qname can be abbreviated, but hname is now absolute. */ - qname = pvt->host.h_name; - } - ap = pvt->host_aliases; - *ap = NULL; - pvt->host.h_aliases = pvt->host_aliases; - hap = pvt->h_addr_ptrs; - *hap = NULL; - pvt->host.h_addr_list = pvt->h_addr_ptrs; - haveanswer = 0; - had_error = 0; - while (ancount-- > 0 && cp < eom && !had_error) { - n = dn_expand(ansbuf, eom, cp, bp, ep - bp); - if (n < 0 || !maybe_ok(pvt->res, bp, name_ok)) { - had_error++; - continue; - } - cp += n; /*%< name */ - BOUNDS_CHECK(cp, 3 * INT16SZ + INT32SZ); - type = ns_get16(cp); - cp += INT16SZ; /*%< type */ - class = ns_get16(cp); - cp += INT16SZ + INT32SZ; /*%< class, TTL */ - n = ns_get16(cp); - cp += INT16SZ; /*%< len */ - BOUNDS_CHECK(cp, n); - if (class != C_IN) { - cp += n; - continue; - } - eor = cp + n; - if ((qtype == T_A || qtype == T_AAAA || qtype == T_ANY) && - type == T_CNAME) { - if (haveanswer) { - int level = LOG_CRIT; -#ifdef LOG_SECURITY - level |= LOG_SECURITY; -#endif - syslog(level, - "gethostans: possible attempt to exploit buffer overflow while looking up %s", - *qname ? qname : "."); - } - n = dn_expand(ansbuf, eor, cp, tbuf, sizeof tbuf); - if (n < 0 || !maybe_ok(pvt->res, tbuf, name_ok)) { - had_error++; - continue; - } - cp += n; - /* Store alias. */ - if (ap >= &pvt->host_aliases[MAXALIASES-1]) - continue; - *ap++ = bp; - n = strlen(bp) + 1; /*%< for the \\0 */ - bp += n; - /* Get canonical name. */ - n = strlen(tbuf) + 1; /*%< for the \\0 */ - if (n > (ep - bp) || n > MAXHOSTNAMELEN) { - had_error++; - continue; - } - strcpy(bp, tbuf); /* (checked) */ - pvt->host.h_name = bp; - hname = bp; - bp += n; - continue; - } - if (qtype == T_PTR && type == T_CNAME) { - n = dn_expand(ansbuf, eor, cp, tbuf, sizeof tbuf); - if (n < 0 || !maybe_dnok(pvt->res, tbuf)) { - had_error++; - continue; - } - cp += n; -#ifdef RES_USE_DNAME - if ((pvt->res->options & RES_USE_DNAME) != 0U) -#endif - { - /* - * We may be able to check this regardless - * of the USE_DNAME bit, but we add the check - * for now since the DNAME support is - * experimental. - */ - if (ns_samename(tname, bp) != 1) - continue; - } - /* Get canonical name. */ - n = strlen(tbuf) + 1; /*%< for the \\0 */ - if (n > (ep - bp)) { - had_error++; - continue; - } - strcpy(bp, tbuf); /* (checked) */ - tname = bp; - bp += n; - continue; - } - if (qtype == T_ANY) { - if (!(type == T_A || type == T_AAAA)) { - cp += n; - continue; - } - } else if (type != qtype) { - cp += n; - continue; - } - switch (type) { - case T_PTR: - if (ret_aip != NULL) { - /* addrinfo never needs T_PTR */ - cp += n; - continue; - } - if (ns_samename(tname, bp) != 1) { - cp += n; - continue; - } - n = dn_expand(ansbuf, eor, cp, bp, ep - bp); - if (n < 0 || !maybe_hnok(pvt->res, bp) || - n >= MAXHOSTNAMELEN) { - had_error++; - break; - } - cp += n; - if (!haveanswer) { - pvt->host.h_name = bp; - hname = bp; - } - else if (ap < &pvt->host_aliases[MAXALIASES-1]) - *ap++ = bp; - else - n = -1; - if (n != -1) { - n = strlen(bp) + 1; /*%< for the \\0 */ - bp += n; - } - break; - case T_A: - case T_AAAA: - if (ns_samename(hname, bp) != 1) { - cp += n; - continue; - } - if (type == T_A && n != INADDRSZ) { - cp += n; - continue; - } - if (type == T_AAAA && n != IN6ADDRSZ) { - cp += n; - continue; - } - - /* make addrinfo. don't overwrite constant PAI */ - ai = *pai; - ai.ai_family = (type == T_AAAA) ? AF_INET6 : AF_INET; - cur->ai_next = addr2addrinfo( - (const struct addrinfo *)&ai, - (const char *)cp); - if (cur->ai_next == NULL) - had_error++; - - if (!haveanswer) { - int nn; - - nn = strlen(bp) + 1; /*%< for the \\0 */ - if (nn >= MAXHOSTNAMELEN) { - cp += n; - had_error++; - continue; - } - pvt->host.h_name = bp; - hname = bp; - bp += nn; - } - /* Ensure alignment. */ - bp = (char *)(((u_long)bp + (sizeof(align) - 1)) & - ~(sizeof(align) - 1)); - /* Avoid overflows. */ - if (bp + n > &pvt->hostbuf[sizeof(pvt->hostbuf) - 1]) { - had_error++; - continue; - } - if (ret_aip) { /*%< need addrinfo. keep it. */ - while (cur->ai_next) - cur = cur->ai_next; - } else if (cur->ai_next) { /*%< need hostent */ - struct addrinfo *aip = cur->ai_next; - - for (aip = cur->ai_next; aip; - aip = aip->ai_next) { - int m; - - m = add_hostent(pvt, bp, hap, aip); - if (m < 0) { - had_error++; - break; - } - if (m == 0) - continue; - if (hap < &pvt->h_addr_ptrs[MAXADDRS]) - hap++; - *hap = NULL; - bp += m; - } - - freeaddrinfo(cur->ai_next); - cur->ai_next = NULL; - } - cp += n; - break; - default: - abort(); - } - if (!had_error) - haveanswer++; - } - if (haveanswer) { - if (ret_aip == NULL) { - *ap = NULL; - *hap = NULL; - - if (pvt->res->nsort && hap != pvt->h_addr_ptrs && - qtype == T_A) - addrsort(pvt->res, pvt->h_addr_ptrs, - hap - pvt->h_addr_ptrs); - if (pvt->host.h_name == NULL) { - n = strlen(qname) + 1; /*%< for the \\0 */ - if (n > (ep - bp) || n >= MAXHOSTNAMELEN) - goto no_recovery; - strcpy(bp, qname); /* (checked) */ - pvt->host.h_name = bp; - bp += n; - } - if (pvt->res->options & RES_USE_INET6) - map_v4v6_hostent(&pvt->host, &bp, ep); - RES_SET_H_ERRNO(pvt->res, NETDB_SUCCESS); - return (&pvt->host); - } else { - if ((pai->ai_flags & AI_CANONNAME) != 0) { - if (pvt->host.h_name == NULL) { - sentinel.ai_next->ai_canonname = - strdup(qname); - } - else { - sentinel.ai_next->ai_canonname = - strdup(pvt->host.h_name); - } - } - *ret_aip = sentinel.ai_next; - return(NULL); - } - } - no_recovery: - if (sentinel.ai_next) { - /* this should be impossible, but check it for safety */ - freeaddrinfo(sentinel.ai_next); - } - if (error == NETDB_SUCCESS) - RES_SET_H_ERRNO(pvt->res, NO_RECOVERY); - else - RES_SET_H_ERRNO(pvt->res, error); - return(NULL); -} - -static int -add_hostent(struct pvt *pvt, char *bp, char **hap, struct addrinfo *ai) -{ - int addrlen; - char *addrp; - const char **tap; - char *obp = bp; - - switch(ai->ai_addr->sa_family) { - case AF_INET6: - addrlen = IN6ADDRSZ; - addrp = (char *)&((struct sockaddr_in6 *)ai->ai_addr)->sin6_addr; - break; - case AF_INET: - addrlen = INADDRSZ; - addrp = (char *)&((struct sockaddr_in *)ai->ai_addr)->sin_addr; - break; - default: - return(-1); /*%< abort? */ - } - - /* Ensure alignment. */ - bp = (char *)(((u_long)bp + (sizeof(align) - 1)) & - ~(sizeof(align) - 1)); - /* Avoid overflows. */ - if (bp + addrlen > &pvt->hostbuf[sizeof(pvt->hostbuf) - 1]) - return(-1); - if (hap >= &pvt->h_addr_ptrs[MAXADDRS]) - return(0); /*%< fail, but not treat it as an error. */ - /* Suppress duplicates. */ - for (tap = (const char **)pvt->h_addr_ptrs; - *tap != NULL; - tap++) - if (memcmp(*tap, addrp, addrlen) == 0) - break; - if (*tap != NULL) - return (0); - - memcpy(*hap = bp, addrp, addrlen); - return((bp + addrlen) - obp); -} - -static void -map_v4v6_hostent(struct hostent *hp, char **bpp, char *ep) { - char **ap; - - if (hp->h_addrtype != AF_INET || hp->h_length != INADDRSZ) - return; - hp->h_addrtype = AF_INET6; - hp->h_length = IN6ADDRSZ; - for (ap = hp->h_addr_list; *ap; ap++) { - int i = (u_long)*bpp % sizeof(align); - - if (i != 0) - i = sizeof(align) - i; - - if ((ep - *bpp) < (i + IN6ADDRSZ)) { - /* Out of memory. Truncate address list here. */ - *ap = NULL; - return; - } - *bpp += i; - map_v4v6_address(*ap, *bpp); - *ap = *bpp; - *bpp += IN6ADDRSZ; - } -} - -static void -addrsort(res_state statp, char **ap, int num) { - int i, j, needsort = 0, aval[MAXADDRS]; - char **p; - - p = ap; - for (i = 0; i < num; i++, p++) { - for (j = 0 ; (unsigned)j < statp->nsort; j++) - if (statp->sort_list[j].addr.s_addr == - (((struct in_addr *)(*p))->s_addr & - statp->sort_list[j].mask)) - break; - aval[i] = j; - if (needsort == 0 && i > 0 && j < aval[i-1]) - needsort = i; - } - if (!needsort) - return; - - while (needsort < num) { - for (j = needsort - 1; j >= 0; j--) { - if (aval[j] > aval[j+1]) { - char *hp; - - i = aval[j]; - aval[j] = aval[j+1]; - aval[j+1] = i; - - hp = ap[j]; - ap[j] = ap[j+1]; - ap[j+1] = hp; - - } else - break; - } - needsort++; - } -} - -static int -init(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->res && !ho_res_get(this)) - return (-1); - if (((pvt->res->options & RES_INIT) == 0U) && - res_ninit(pvt->res) == -1) - return (-1); - return (0); -} diff --git a/src/kits/network/libbind/irs/dns_nw.c b/src/kits/network/libbind/irs/dns_nw.c deleted file mode 100644 index dc1e61739b..0000000000 --- a/src/kits/network/libbind/irs/dns_nw.c +++ /dev/null @@ -1,591 +0,0 @@ -/* - * 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: dns_nw.c,v 1.12 2005/04/27 04:56:22 sra Exp $"; -#endif /* LIBC_SCCS and not lint */ - -/* Imports. */ - -#include "port_before.h" - -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "dns_p.h" - -#ifdef SPRINTF_CHAR -# define SPRINTF(x) strlen(sprintf/**/x) -#else -# define SPRINTF(x) sprintf x -#endif - -/* Definitions. */ - -#define MAXALIASES 35 - -#define MAXPACKET (64*1024) - -struct pvt { - struct nwent net; - char * ali[MAXALIASES]; - char buf[BUFSIZ+1]; - struct __res_state * res; - void (*free_res)(void *); -}; - -typedef union { - long al; - char ac; -} align; - -enum by_what { by_addr, by_name }; - -/* Forwards. */ - -static void nw_close(struct irs_nw *); -static struct nwent * nw_byname(struct irs_nw *, const char *, int); -static struct nwent * nw_byaddr(struct irs_nw *, void *, int, int); -static struct nwent * nw_next(struct irs_nw *); -static void nw_rewind(struct irs_nw *); -static void nw_minimize(struct irs_nw *); -static struct __res_state * nw_res_get(struct irs_nw *this); -static void nw_res_set(struct irs_nw *this, - struct __res_state *res, - void (*free_res)(void *)); - -static struct nwent * get1101byaddr(struct irs_nw *, u_char *, int); -static struct nwent * get1101byname(struct irs_nw *, const char *); -static struct nwent * get1101answer(struct irs_nw *, - u_char *ansbuf, int anslen, - enum by_what by_what, - int af, const char *name, - const u_char *addr, int addrlen); -static struct nwent * get1101mask(struct irs_nw *this, struct nwent *); -static int make1101inaddr(const u_char *, int, char *, int); -static void normalize_name(char *name); -static int init(struct irs_nw *this); - -/* Exports. */ - -struct irs_nw * -irs_dns_nw(struct irs_acc *this) { - struct irs_nw *nw; - struct pvt *pvt; - - UNUSED(this); - - if (!(pvt = memget(sizeof *pvt))) { - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - if (!(nw = memget(sizeof *nw))) { - memput(pvt, sizeof *pvt); - errno = ENOMEM; - return (NULL); - } - memset(nw, 0x5e, sizeof *nw); - nw->private = pvt; - nw->close = nw_close; - nw->byname = nw_byname; - nw->byaddr = nw_byaddr; - nw->next = nw_next; - nw->rewind = nw_rewind; - nw->minimize = nw_minimize; - nw->res_get = nw_res_get; - nw->res_set = nw_res_set; - return (nw); -} - -/* Methods. */ - -static void -nw_close(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - nw_minimize(this); - - if (pvt->res && pvt->free_res) - (*pvt->free_res)(pvt->res); - - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct nwent * -nw_byname(struct irs_nw *this, const char *name, int af) { - struct pvt *pvt = (struct pvt *)this->private; - - if (init(this) == -1) - return (NULL); - - switch (af) { - case AF_INET: - return (get1101byname(this, name)); - default: - (void)NULL; - } - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - errno = EAFNOSUPPORT; - return (NULL); -} - -static struct nwent * -nw_byaddr(struct irs_nw *this, void *net, int len, int af) { - struct pvt *pvt = (struct pvt *)this->private; - - if (init(this) == -1) - return (NULL); - - switch (af) { - case AF_INET: - return (get1101byaddr(this, net, len)); - default: - (void)NULL; - } - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - errno = EAFNOSUPPORT; - return (NULL); -} - -static struct nwent * -nw_next(struct irs_nw *this) { - - UNUSED(this); - - return (NULL); -} - -static void -nw_rewind(struct irs_nw *this) { - UNUSED(this); - /* NOOP */ -} - -static void -nw_minimize(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->res) - res_nclose(pvt->res); -} - -static struct __res_state * -nw_res_get(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->res) { - struct __res_state *res; - res = (struct __res_state *)malloc(sizeof *res); - if (!res) { - errno = ENOMEM; - return (NULL); - } - memset(res, 0, sizeof *res); - nw_res_set(this, res, free); - } - - return (pvt->res); -} - -static void -nw_res_set(struct irs_nw *this, struct __res_state *res, - void (*free_res)(void *)) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->res && pvt->free_res) { - res_nclose(pvt->res); - (*pvt->free_res)(pvt->res); - } - - pvt->res = res; - pvt->free_res = free_res; -} - -/* Private. */ - -static struct nwent * -get1101byname(struct irs_nw *this, const char *name) { - struct pvt *pvt = (struct pvt *)this->private; - u_char *ansbuf; - int anslen; - struct nwent *result; - - ansbuf = memget(MAXPACKET); - if (ansbuf == NULL) { - errno = ENOMEM; - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - return (NULL); - } - anslen = res_nsearch(pvt->res, name, C_IN, T_PTR, ansbuf, MAXPACKET); - if (anslen < 0) { - memput(ansbuf, MAXPACKET); - return (NULL); - } - result = get1101mask(this, get1101answer(this, ansbuf, anslen, by_name, - AF_INET, name, NULL, 0)); - memput(ansbuf, MAXPACKET); - return (result); -} - -static struct nwent * -get1101byaddr(struct irs_nw *this, u_char *net, int len) { - struct pvt *pvt = (struct pvt *)this->private; - char qbuf[sizeof "255.255.255.255.in-addr.arpa"]; - struct nwent *result; - u_char *ansbuf; - int anslen; - - if (len < 1 || len > 32) { - errno = EINVAL; - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - return (NULL); - } - if (make1101inaddr(net, len, qbuf, sizeof qbuf) < 0) - return (NULL); - ansbuf = memget(MAXPACKET); - if (ansbuf == NULL) { - errno = ENOMEM; - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - return (NULL); - } - anslen = res_nquery(pvt->res, qbuf, C_IN, T_PTR, ansbuf, MAXPACKET); - if (anslen < 0) { - memput(ansbuf, MAXPACKET); - return (NULL); - } - result = get1101mask(this, get1101answer(this, ansbuf, anslen, by_addr, - AF_INET, NULL, net, len)); - memput(ansbuf, MAXPACKET); - return (result); -} - -static struct nwent * -get1101answer(struct irs_nw *this, - u_char *ansbuf, int anslen, enum by_what by_what, - int af, const char *name, const u_char *addr, int addrlen) -{ - struct pvt *pvt = (struct pvt *)this->private; - int type, class, ancount, qdcount, haveanswer; - char *bp, *ep, **ap; - u_char *cp, *eom; - HEADER *hp; - - /* Initialize, and parse header. */ - eom = ansbuf + anslen; - if (ansbuf + HFIXEDSZ > eom) { - RES_SET_H_ERRNO(pvt->res, NO_RECOVERY); - return (NULL); - } - hp = (HEADER *)ansbuf; - cp = ansbuf + HFIXEDSZ; - qdcount = ntohs(hp->qdcount); - while (qdcount-- > 0) { - int n = dn_skipname(cp, eom); - cp += n + QFIXEDSZ; - if (n < 0 || cp > eom) { - RES_SET_H_ERRNO(pvt->res, NO_RECOVERY); - return (NULL); - } - } - ancount = ntohs(hp->ancount); - if (!ancount) { - if (hp->aa) - RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND); - else - RES_SET_H_ERRNO(pvt->res, TRY_AGAIN); - return (NULL); - } - - /* Prepare a return structure. */ - bp = pvt->buf; - ep = pvt->buf + sizeof(pvt->buf); - pvt->net.n_name = NULL; - pvt->net.n_aliases = pvt->ali; - pvt->net.n_addrtype = af; - pvt->net.n_addr = NULL; - pvt->net.n_length = addrlen; - - /* Save input key if given. */ - switch (by_what) { - case by_name: - if (name != NULL) { - int n = strlen(name) + 1; - - if (n > (ep - bp)) { - RES_SET_H_ERRNO(pvt->res, NO_RECOVERY); - return (NULL); - } - pvt->net.n_name = strcpy(bp, name); /* (checked) */ - bp += n; - } - break; - case by_addr: - if (addr != NULL && addrlen != 0) { - int n = addrlen / 8 + ((addrlen % 8) != 0); - - if (INADDRSZ > (ep - bp)) { - RES_SET_H_ERRNO(pvt->res, NO_RECOVERY); - return (NULL); - } - memset(bp, 0, INADDRSZ); - memcpy(bp, addr, n); - pvt->net.n_addr = bp; - bp += INADDRSZ; - } - break; - default: - abort(); - } - - /* Parse the answer, collect aliases. */ - ap = pvt->ali; - haveanswer = 0; - while (--ancount >= 0 && cp < eom) { - int n = dn_expand(ansbuf, eom, cp, bp, ep - bp); - - cp += n; /*%< Owner */ - if (n < 0 || !maybe_dnok(pvt->res, bp) || - cp + 3 * INT16SZ + INT32SZ > eom) { - RES_SET_H_ERRNO(pvt->res, NO_RECOVERY); - return (NULL); - } - GETSHORT(type, cp); /*%< Type */ - GETSHORT(class, cp); /*%< Class */ - cp += INT32SZ; /*%< TTL */ - GETSHORT(n, cp); /*%< RDLENGTH */ - if (class == C_IN && type == T_PTR) { - int nn; - - nn = dn_expand(ansbuf, eom, cp, bp, ep - bp); - if (nn < 0 || !maybe_hnok(pvt->res, bp) || nn != n) { - RES_SET_H_ERRNO(pvt->res, NO_RECOVERY); - return (NULL); - } - normalize_name(bp); - switch (by_what) { - case by_addr: { - if (pvt->net.n_name == NULL) - pvt->net.n_name = bp; - else if (ns_samename(pvt->net.n_name, bp) == 1) - break; - else - *ap++ = bp; - nn = strlen(bp) + 1; - bp += nn; - haveanswer++; - break; - } - case by_name: { - u_int b1, b2, b3, b4; - - if (pvt->net.n_addr != NULL || - sscanf(bp, "%u.%u.%u.%u.in-addr.arpa", - &b1, &b2, &b3, &b4) != 4) - break; - if ((ep - bp) < INADDRSZ) { - RES_SET_H_ERRNO(pvt->res, NO_RECOVERY); - return (NULL); - } - pvt->net.n_addr = bp; - *bp++ = b4; - *bp++ = b3; - *bp++ = b2; - *bp++ = b1; - pvt->net.n_length = INADDRSZ * 8; - haveanswer++; - } - } - } - cp += n; /*%< RDATA */ - } - if (!haveanswer) { - RES_SET_H_ERRNO(pvt->res, TRY_AGAIN); - return (NULL); - } - *ap = NULL; - - return (&pvt->net); -} - -static struct nwent * -get1101mask(struct irs_nw *this, struct nwent *nwent) { - struct pvt *pvt = (struct pvt *)this->private; - char qbuf[sizeof "255.255.255.255.in-addr.arpa"], owner[MAXDNAME]; - int anslen, type, class, ancount, qdcount; - u_char *ansbuf, *cp, *eom; - HEADER *hp; - - if (!nwent) - return (NULL); - if (make1101inaddr(nwent->n_addr, nwent->n_length, qbuf, sizeof qbuf) - < 0) { - /* "First, do no harm." */ - return (nwent); - } - - ansbuf = memget(MAXPACKET); - if (ansbuf == NULL) { - errno = ENOMEM; - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - return (NULL); - } - /* Query for the A RR that would hold this network's mask. */ - anslen = res_nquery(pvt->res, qbuf, C_IN, T_A, ansbuf, MAXPACKET); - if (anslen < HFIXEDSZ) { - memput(ansbuf, MAXPACKET); - return (nwent); - } - - /* Initialize, and parse header. */ - hp = (HEADER *)ansbuf; - cp = ansbuf + HFIXEDSZ; - eom = ansbuf + anslen; - qdcount = ntohs(hp->qdcount); - while (qdcount-- > 0) { - int n = dn_skipname(cp, eom); - cp += n + QFIXEDSZ; - if (n < 0 || cp > eom) { - memput(ansbuf, MAXPACKET); - return (nwent); - } - } - ancount = ntohs(hp->ancount); - - /* Parse the answer, collect aliases. */ - while (--ancount >= 0 && cp < eom) { - int n = dn_expand(ansbuf, eom, cp, owner, sizeof owner); - - if (n < 0 || !maybe_dnok(pvt->res, owner)) - break; - cp += n; /*%< Owner */ - if (cp + 3 * INT16SZ + INT32SZ > eom) - break; - GETSHORT(type, cp); /*%< Type */ - GETSHORT(class, cp); /*%< Class */ - cp += INT32SZ; /*%< TTL */ - GETSHORT(n, cp); /*%< RDLENGTH */ - if (cp + n > eom) - break; - if (n == INADDRSZ && class == C_IN && type == T_A && - ns_samename(qbuf, owner) == 1) { - /* This A RR indicates the actual netmask. */ - int nn, mm; - - nwent->n_length = 0; - for (nn = 0; nn < INADDRSZ; nn++) - for (mm = 7; mm >= 0; mm--) - if (cp[nn] & (1 << mm)) - nwent->n_length++; - else - break; - } - cp += n; /*%< RDATA */ - } - memput(ansbuf, MAXPACKET); - return (nwent); -} - -static int -make1101inaddr(const u_char *net, int bits, char *name, int size) { - int n, m; - char *ep; - - ep = name + size; - - /* Zero fill any whole bytes left out of the prefix. */ - for (n = (32 - bits) / 8; n > 0; n--) { - if (ep - name < (int)(sizeof "0.")) - goto emsgsize; - m = SPRINTF((name, "0.")); - name += m; - } - - /* Format the partial byte, if any, within the prefix. */ - if ((n = bits % 8) != 0) { - if (ep - name < (int)(sizeof "255.")) - goto emsgsize; - m = SPRINTF((name, "%u.", - net[bits / 8] & ~((1 << (8 - n)) - 1))); - name += m; - } - - /* Format the whole bytes within the prefix. */ - for (n = bits / 8; n > 0; n--) { - if (ep - name < (int)(sizeof "255.")) - goto emsgsize; - m = SPRINTF((name, "%u.", net[n - 1])); - name += m; - } - - /* Add the static text. */ - if (ep - name < (int)(sizeof "in-addr.arpa")) - goto emsgsize; - (void) SPRINTF((name, "in-addr.arpa")); - return (0); - - emsgsize: - errno = EMSGSIZE; - return (-1); -} - -static void -normalize_name(char *name) { - char *t; - - /* Make lower case. */ - for (t = name; *t; t++) - if (isascii((unsigned char)*t) && isupper((unsigned char)*t)) - *t = tolower((*t)&0xff); - - /* Remove trailing dots. */ - while (t > name && t[-1] == '.') - *--t = '\0'; -} - -static int -init(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->res && !nw_res_get(this)) - return (-1); - if (((pvt->res->options & RES_INIT) == 0U) && - res_ninit(pvt->res) == -1) - return (-1); - return (0); -} - -/*! \file */ diff --git a/src/kits/network/libbind/irs/dns_p.h b/src/kits/network/libbind/irs/dns_p.h deleted file mode 100644 index d85ae2a238..0000000000 --- a/src/kits/network/libbind/irs/dns_p.h +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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. - */ - -/* - * $Id: dns_p.h,v 1.4 2005/04/27 04:56:22 sra Exp $ - */ - -#ifndef _DNS_P_H_INCLUDED -#define _DNS_P_H_INCLUDED - -#define maybe_ok(res, nm, ok) (((res)->options & RES_NOCHECKNAME) != 0U || \ - (ok)(nm) != 0) -#define maybe_hnok(res, hn) maybe_ok((res), (hn), res_hnok) -#define maybe_dnok(res, dn) maybe_ok((res), (dn), res_dnok) - -/*% - * Object state. - */ -struct dns_p { - void *hes_ctx; - struct __res_state *res; - void (*free_res) __P((void *)); -}; - -/* - * Methods. - */ - -extern struct irs_gr * irs_dns_gr __P((struct irs_acc *)); -extern struct irs_pw * irs_dns_pw __P((struct irs_acc *)); -extern struct irs_sv * irs_dns_sv __P((struct irs_acc *)); -extern struct irs_pr * irs_dns_pr __P((struct irs_acc *)); -extern struct irs_ho * irs_dns_ho __P((struct irs_acc *)); -extern struct irs_nw * irs_dns_nw __P((struct irs_acc *)); - -#endif /*_DNS_P_H_INCLUDED*/ - -/*! \file */ diff --git a/src/kits/network/libbind/irs/dns_pr.c b/src/kits/network/libbind/irs/dns_pr.c deleted file mode 100644 index 137f306218..0000000000 --- a/src/kits/network/libbind/irs/dns_pr.c +++ /dev/null @@ -1,268 +0,0 @@ -/* - * 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: dns_pr.c,v 1.5 2005/04/27 04:56:22 sra Exp $"; -#endif - -/* Imports */ - -#include "port_before.h" - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "hesiod.h" -#include "dns_p.h" - -/* Types. */ - -struct pvt { - struct dns_p * dns; - struct protoent proto; - char * prbuf; -}; - -/* Forward. */ - -static void pr_close(struct irs_pr *); -static struct protoent * pr_byname(struct irs_pr *, const char *); -static struct protoent * pr_bynumber(struct irs_pr *, int); -static struct protoent * pr_next(struct irs_pr *); -static void pr_rewind(struct irs_pr *); -static void pr_minimize(struct irs_pr *); -static struct __res_state * pr_res_get(struct irs_pr *); -static void pr_res_set(struct irs_pr *, - struct __res_state *, - void (*)(void *)); - -static struct protoent * parse_hes_list(struct irs_pr *, char **); - -/* Public. */ - -struct irs_pr * -irs_dns_pr(struct irs_acc *this) { - struct dns_p *dns = (struct dns_p *)this->private; - struct pvt *pvt; - struct irs_pr *pr; - - if (!dns->hes_ctx) { - errno = ENODEV; - return (NULL); - } - if (!(pvt = memget(sizeof *pvt))) { - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - if (!(pr = memget(sizeof *pr))) { - memput(pvt, sizeof *pvt); - errno = ENOMEM; - return (NULL); - } - memset(pr, 0x5e, sizeof *pr); - pvt->dns = dns; - pr->private = pvt; - pr->byname = pr_byname; - pr->bynumber = pr_bynumber; - pr->next = pr_next; - pr->rewind = pr_rewind; - pr->close = pr_close; - pr->minimize = pr_minimize; - pr->res_get = pr_res_get; - pr->res_set = pr_res_set; - return (pr); -} - -/* Methods. */ - -static void -pr_close(struct irs_pr *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->proto.p_aliases) - free(pvt->proto.p_aliases); - if (pvt->prbuf) - free(pvt->prbuf); - - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct protoent * -pr_byname(struct irs_pr *this, const char *name) { - struct pvt *pvt = (struct pvt *)this->private; - struct dns_p *dns = pvt->dns; - struct protoent *proto; - char **hes_list; - - if (!(hes_list = hesiod_resolve(dns->hes_ctx, name, "protocol"))) - return (NULL); - - proto = parse_hes_list(this, hes_list); - hesiod_free_list(dns->hes_ctx, hes_list); - return (proto); -} - -static struct protoent * -pr_bynumber(struct irs_pr *this, int num) { - struct pvt *pvt = (struct pvt *)this->private; - struct dns_p *dns = pvt->dns; - struct protoent *proto; - char numstr[16]; - char **hes_list; - - sprintf(numstr, "%d", num); - if (!(hes_list = hesiod_resolve(dns->hes_ctx, numstr, "protonum"))) - return (NULL); - - proto = parse_hes_list(this, hes_list); - hesiod_free_list(dns->hes_ctx, hes_list); - return (proto); -} - -static struct protoent * -pr_next(struct irs_pr *this) { - UNUSED(this); - errno = ENODEV; - return (NULL); -} - -static void -pr_rewind(struct irs_pr *this) { - UNUSED(this); - /* NOOP */ -} - -static void -pr_minimize(struct irs_pr *this) { - UNUSED(this); - /* NOOP */ -} - -static struct __res_state * -pr_res_get(struct irs_pr *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct dns_p *dns = pvt->dns; - - return (__hesiod_res_get(dns->hes_ctx)); -} - -static void -pr_res_set(struct irs_pr *this, struct __res_state * res, - void (*free_res)(void *)) { - struct pvt *pvt = (struct pvt *)this->private; - struct dns_p *dns = pvt->dns; - - __hesiod_res_set(dns->hes_ctx, res, free_res); -} - -/* Private. */ - -static struct protoent * -parse_hes_list(struct irs_pr *this, char **hes_list) { - struct pvt *pvt = (struct pvt *)this->private; - char *p, *cp, **cpp, **new; - int num = 0; - int max = 0; - - for (cpp = hes_list; *cpp; cpp++) { - cp = *cpp; - - /* Strip away comments, if any. */ - if ((p = strchr(cp, '#'))) - *p = 0; - - /* Skip blank lines. */ - p = cp; - while (*p && !isspace((unsigned char)*p)) - p++; - if (!*p) - continue; - - /* OK, we've got a live one. Let's parse it for real. */ - if (pvt->prbuf) - free(pvt->prbuf); - pvt->prbuf = strdup(cp); - - p = pvt->prbuf; - pvt->proto.p_name = p; - while (*p && !isspace((unsigned char)*p)) - p++; - if (!*p) - continue; - *p++ = '\0'; - - pvt->proto.p_proto = atoi(p); - while (*p && !isspace((unsigned char)*p)) - p++; - if (*p) - *p++ = '\0'; - - while (*p) { - if ((num + 1) >= max || !pvt->proto.p_aliases) { - max += 10; - new = realloc(pvt->proto.p_aliases, - max * sizeof(char *)); - if (!new) { - errno = ENOMEM; - goto cleanup; - } - pvt->proto.p_aliases = new; - } - pvt->proto.p_aliases[num++] = p; - while (*p && !isspace((unsigned char)*p)) - p++; - if (*p) - *p++ = '\0'; - } - if (!pvt->proto.p_aliases) - pvt->proto.p_aliases = malloc(sizeof(char *)); - if (!pvt->proto.p_aliases) - goto cleanup; - pvt->proto.p_aliases[num] = NULL; - return (&pvt->proto); - } - - cleanup: - if (pvt->proto.p_aliases) { - free(pvt->proto.p_aliases); - pvt->proto.p_aliases = NULL; - } - if (pvt->prbuf) { - free(pvt->prbuf); - pvt->prbuf = NULL; - } - return (NULL); -} - -/*! \file */ diff --git a/src/kits/network/libbind/irs/dns_pw.c b/src/kits/network/libbind/irs/dns_pw.c deleted file mode 100644 index 4ea97adfdb..0000000000 --- a/src/kits/network/libbind/irs/dns_pw.c +++ /dev/null @@ -1,232 +0,0 @@ -/* - * 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: dns_pw.c,v 1.3 2005/04/27 04:56:22 sra Exp $"; -#endif - -#include "port_before.h" - -#ifndef WANT_IRS_PW -static int __bind_irs_pw_unneeded; -#else - -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "hesiod.h" -#include "dns_p.h" - -/* Types. */ - -struct pvt { - struct dns_p * dns; - struct passwd passwd; - char * pwbuf; -}; - -/* Forward. */ - -static void pw_close(struct irs_pw *); -static struct passwd * pw_byname(struct irs_pw *, const char *); -static struct passwd * pw_byuid(struct irs_pw *, uid_t); -static struct passwd * pw_next(struct irs_pw *); -static void pw_rewind(struct irs_pw *); -static void pw_minimize(struct irs_pw *); -static struct __res_state * pw_res_get(struct irs_pw *); -static void pw_res_set(struct irs_pw *, - struct __res_state *, - void (*)(void *)); - -static struct passwd * getpwcommon(struct irs_pw *, const char *, - const char *); - -/* Public. */ - -struct irs_pw * -irs_dns_pw(struct irs_acc *this) { - struct dns_p *dns = (struct dns_p *)this->private; - struct irs_pw *pw; - struct pvt *pvt; - - if (!dns || !dns->hes_ctx) { - errno = ENODEV; - return (NULL); - } - if (!(pvt = memget(sizeof *pvt))) { - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - pvt->dns = dns; - if (!(pw = memget(sizeof *pw))) { - memput(pvt, sizeof *pvt); - errno = ENOMEM; - return (NULL); - } - memset(pw, 0x5e, sizeof *pw); - pw->private = pvt; - pw->close = pw_close; - pw->byname = pw_byname; - pw->byuid = pw_byuid; - pw->next = pw_next; - pw->rewind = pw_rewind; - pw->minimize = pw_minimize; - pw->res_get = pw_res_get; - pw->res_set = pw_res_set; - return (pw); -} - -/* Methods. */ - -static void -pw_close(struct irs_pw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->pwbuf) - free(pvt->pwbuf); - - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct passwd * -pw_byname(struct irs_pw *this, const char *nam) { - return (getpwcommon(this, nam, "passwd")); -} - -static struct passwd * -pw_byuid(struct irs_pw *this, uid_t uid) { - char uidstr[16]; - - sprintf(uidstr, "%lu", (u_long)uid); - return (getpwcommon(this, uidstr, "uid")); -} - -static struct passwd * -pw_next(struct irs_pw *this) { - UNUSED(this); - errno = ENODEV; - return (NULL); -} - -static void -pw_rewind(struct irs_pw *this) { - UNUSED(this); - /* NOOP */ -} - -static void -pw_minimize(struct irs_pw *this) { - UNUSED(this); - /* NOOP */ -} - -static struct __res_state * -pw_res_get(struct irs_pw *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct dns_p *dns = pvt->dns; - - return (__hesiod_res_get(dns->hes_ctx)); -} - -static void -pw_res_set(struct irs_pw *this, struct __res_state * res, - void (*free_res)(void *)) { - struct pvt *pvt = (struct pvt *)this->private; - struct dns_p *dns = pvt->dns; - - __hesiod_res_set(dns->hes_ctx, res, free_res); -} - -/* Private. */ - -static struct passwd * -getpwcommon(struct irs_pw *this, const char *arg, const char *type) { - struct pvt *pvt = (struct pvt *)this->private; - char **hes_list, *cp; - - if (!(hes_list = hesiod_resolve(pvt->dns->hes_ctx, arg, type))) - return (NULL); - if (!*hes_list) { - hesiod_free_list(pvt->dns->hes_ctx, hes_list); - errno = ENOENT; - return (NULL); - } - - memset(&pvt->passwd, 0, sizeof pvt->passwd); - if (pvt->pwbuf) - free(pvt->pwbuf); - pvt->pwbuf = strdup(*hes_list); - hesiod_free_list(pvt->dns->hes_ctx, hes_list); - - cp = pvt->pwbuf; - pvt->passwd.pw_name = cp; - if (!(cp = strchr(cp, ':'))) - goto cleanup; - *cp++ = '\0'; - - pvt->passwd.pw_passwd = cp; - if (!(cp = strchr(cp, ':'))) - goto cleanup; - *cp++ = '\0'; - - pvt->passwd.pw_uid = atoi(cp); - if (!(cp = strchr(cp, ':'))) - goto cleanup; - *cp++ = '\0'; - - pvt->passwd.pw_gid = atoi(cp); - if (!(cp = strchr(cp, ':'))) - goto cleanup; - *cp++ = '\0'; - - pvt->passwd.pw_gecos = cp; - if (!(cp = strchr(cp, ':'))) - goto cleanup; - *cp++ = '\0'; - - pvt->passwd.pw_dir = cp; - if (!(cp = strchr(cp, ':'))) - goto cleanup; - *cp++ = '\0'; - - pvt->passwd.pw_shell = cp; - return (&pvt->passwd); - - cleanup: - free(pvt->pwbuf); - pvt->pwbuf = NULL; - return (NULL); -} - -#endif /* WANT_IRS_PW */ -/*! \file */ diff --git a/src/kits/network/libbind/irs/dns_sv.c b/src/kits/network/libbind/irs/dns_sv.c deleted file mode 100644 index c3294255b8..0000000000 --- a/src/kits/network/libbind/irs/dns_sv.c +++ /dev/null @@ -1,300 +0,0 @@ -/* - * 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: dns_sv.c,v 1.5 2005/04/27 04:56:23 sra Exp $"; -#endif - -/* Imports */ - -#include "port_before.h" - -#include -#include - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "hesiod.h" -#include "dns_p.h" - -/* Definitions */ - -struct pvt { - struct dns_p * dns; - struct servent serv; - char * svbuf; - struct __res_state * res; - void (*free_res)(void *); -}; - -/* Forward. */ - -static void sv_close(struct irs_sv *); -static struct servent * sv_byname(struct irs_sv *, - const char *, const char *); -static struct servent * sv_byport(struct irs_sv *, int, const char *); -static struct servent * sv_next(struct irs_sv *); -static void sv_rewind(struct irs_sv *); -static void sv_minimize(struct irs_sv *); -#ifdef SV_RES_SETGET -static struct __res_state * sv_res_get(struct irs_sv *); -static void sv_res_set(struct irs_sv *, - struct __res_state *, - void (*)(void *)); -#endif - -static struct servent * parse_hes_list(struct irs_sv *, - char **, const char *); - -/* Public */ - -struct irs_sv * -irs_dns_sv(struct irs_acc *this) { - struct dns_p *dns = (struct dns_p *)this->private; - struct irs_sv *sv; - struct pvt *pvt; - - if (!dns || !dns->hes_ctx) { - errno = ENODEV; - return (NULL); - } - if (!(pvt = memget(sizeof *pvt))) { - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - pvt->dns = dns; - if (!(sv = memget(sizeof *sv))) { - memput(pvt, sizeof *pvt); - errno = ENOMEM; - return (NULL); - } - memset(sv, 0x5e, sizeof *sv); - sv->private = pvt; - sv->byname = sv_byname; - sv->byport = sv_byport; - sv->next = sv_next; - sv->rewind = sv_rewind; - sv->close = sv_close; - sv->minimize = sv_minimize; -#ifdef SV_RES_SETGET - sv->res_get = sv_res_get; - sv->res_set = sv_res_set; -#else - sv->res_get = NULL; /*%< sv_res_get; */ - sv->res_set = NULL; /*%< sv_res_set; */ -#endif - return (sv); -} - -/* Methods */ - -static void -sv_close(struct irs_sv *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->serv.s_aliases) - free(pvt->serv.s_aliases); - if (pvt->svbuf) - free(pvt->svbuf); - - if (pvt->res && pvt->free_res) - (*pvt->free_res)(pvt->res); - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct servent * -sv_byname(struct irs_sv *this, const char *name, const char *proto) { - struct pvt *pvt = (struct pvt *)this->private; - struct dns_p *dns = pvt->dns; - struct servent *s; - char **hes_list; - - if (!(hes_list = hesiod_resolve(dns->hes_ctx, name, "service"))) - return (NULL); - - s = parse_hes_list(this, hes_list, proto); - hesiod_free_list(dns->hes_ctx, hes_list); - return (s); -} - -static struct servent * -sv_byport(struct irs_sv *this, int port, const char *proto) { - struct pvt *pvt = (struct pvt *)this->private; - struct dns_p *dns = pvt->dns; - struct servent *s; - char portstr[16]; - char **hes_list; - - sprintf(portstr, "%d", ntohs(port)); - if (!(hes_list = hesiod_resolve(dns->hes_ctx, portstr, "port"))) - return (NULL); - - s = parse_hes_list(this, hes_list, proto); - hesiod_free_list(dns->hes_ctx, hes_list); - return (s); -} - -static struct servent * -sv_next(struct irs_sv *this) { - UNUSED(this); - errno = ENODEV; - return (NULL); -} - -static void -sv_rewind(struct irs_sv *this) { - UNUSED(this); - /* NOOP */ -} - -/* Private */ - -static struct servent * -parse_hes_list(struct irs_sv *this, char **hes_list, const char *proto) { - struct pvt *pvt = (struct pvt *)this->private; - char *p, *cp, **cpp, **new; - int proto_len; - int num = 0; - int max = 0; - - for (cpp = hes_list; *cpp; cpp++) { - cp = *cpp; - - /* Strip away comments, if any. */ - if ((p = strchr(cp, '#'))) - *p = 0; - - /* Check to make sure the protocol matches. */ - p = cp; - while (*p && !isspace((unsigned char)*p)) - p++; - if (!*p) - continue; - if (proto) { - proto_len = strlen(proto); - if (strncasecmp(++p, proto, proto_len) != 0) - continue; - if (p[proto_len] && !isspace(p[proto_len]&0xff)) - continue; - } - /* OK, we've got a live one. Let's parse it for real. */ - if (pvt->svbuf) - free(pvt->svbuf); - pvt->svbuf = strdup(cp); - - p = pvt->svbuf; - pvt->serv.s_name = p; - while (*p && !isspace(*p&0xff)) - p++; - if (!*p) - continue; - *p++ = '\0'; - - pvt->serv.s_proto = p; - while (*p && !isspace(*p&0xff)) - p++; - if (!*p) - continue; - *p++ = '\0'; - - pvt->serv.s_port = htons((u_short) atoi(p)); - while (*p && !isspace(*p&0xff)) - p++; - if (*p) - *p++ = '\0'; - - while (*p) { - if ((num + 1) >= max || !pvt->serv.s_aliases) { - max += 10; - new = realloc(pvt->serv.s_aliases, - max * sizeof(char *)); - if (!new) { - errno = ENOMEM; - goto cleanup; - } - pvt->serv.s_aliases = new; - } - pvt->serv.s_aliases[num++] = p; - while (*p && !isspace(*p&0xff)) - p++; - if (*p) - *p++ = '\0'; - } - if (!pvt->serv.s_aliases) - pvt->serv.s_aliases = malloc(sizeof(char *)); - if (!pvt->serv.s_aliases) - goto cleanup; - pvt->serv.s_aliases[num] = NULL; - return (&pvt->serv); - } - - cleanup: - if (pvt->serv.s_aliases) { - free(pvt->serv.s_aliases); - pvt->serv.s_aliases = NULL; - } - if (pvt->svbuf) { - free(pvt->svbuf); - pvt->svbuf = NULL; - } - return (NULL); -} - -static void -sv_minimize(struct irs_sv *this) { - UNUSED(this); - /* NOOP */ -} - -#ifdef SV_RES_SETGET -static struct __res_state * -sv_res_get(struct irs_sv *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct dns_p *dns = pvt->dns; - - return (__hesiod_res_get(dns->hes_ctx)); -} - -static void -sv_res_set(struct irs_sv *this, struct __res_state * res, - void (*free_res)(void *)) { - struct pvt *pvt = (struct pvt *)this->private; - struct dns_p *dns = pvt->dns; - - __hesiod_res_set(dns->hes_ctx, res, free_res); -} -#endif - -/*! \file */ diff --git a/src/kits/network/libbind/irs/gai_strerror.c b/src/kits/network/libbind/irs/gai_strerror.c deleted file mode 100644 index 9ca1c4bfe1..0000000000 --- a/src/kits/network/libbind/irs/gai_strerror.c +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 2001 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 -#include -#include - -#ifdef DO_PTHREADS -#include -#include -#endif - -static const char *gai_errlist[] = { - "no error", - "address family not supported for name",/*%< EAI_ADDRFAMILY */ - "temporary failure", /*%< EAI_AGAIN */ - "invalid flags", /*%< EAI_BADFLAGS */ - "permanent failure", /*%< EAI_FAIL */ - "address family not supported", /*%< EAI_FAMILY */ - "memory failure", /*%< EAI_MEMORY */ - "no address", /*%< EAI_NODATA */ - "unknown name or service", /*%< EAI_NONAME */ - "service not supported for socktype", /*%< EAI_SERVICE */ - "socktype not supported", /*%< EAI_SOCKTYPE */ - "system failure", /*%< EAI_SYSTEM */ - "bad hints", /*%< EAI_BADHINTS */ - "bad protocol", /*%< EAI_PROTOCOL */ - "unknown error" /*%< Must be last. */ -}; - -static const int gai_nerr = (sizeof(gai_errlist)/sizeof(*gai_errlist)); - -#define EAI_BUFSIZE 128 - -const char * -gai_strerror(int ecode) { -#ifndef DO_PTHREADS - static char buf[EAI_BUFSIZE]; -#else /* DO_PTHREADS */ -#ifndef LIBBIND_MUTEX_INITIALIZER -#define LIBBIND_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER -#endif - static pthread_mutex_t lock = LIBBIND_MUTEX_INITIALIZER; - static pthread_key_t key; - static int once = 0; - char *buf; -#endif - - if (ecode >= 0 && ecode < (gai_nerr - 1)) - return (gai_errlist[ecode]); - -#ifdef DO_PTHREADS - if (!once) { - if (pthread_mutex_lock(&lock) != 0) - goto unknown; - if (!once) { - if (pthread_key_create(&key, free) != 0) { - (void)pthread_mutex_unlock(&lock); - goto unknown; - } - once = 1; - } - if (pthread_mutex_unlock(&lock) != 0) - goto unknown; - } - - buf = pthread_getspecific(key); - if (buf == NULL) { - buf = malloc(EAI_BUFSIZE); - if (buf == NULL) - goto unknown; - if (pthread_setspecific(key, buf) != 0) { - free(buf); - goto unknown; - } - } -#endif - /* - * XXX This really should be snprintf(buf, EAI_BUFSIZE, ...). - * It is safe until message catalogs are used. - */ - sprintf(buf, "%s: %d", gai_errlist[gai_nerr - 1], ecode); - return (buf); - -#ifdef DO_PTHREADS - unknown: - return ("unknown error"); -#endif -} - -/*! \file */ diff --git a/src/kits/network/libbind/irs/gen.c b/src/kits/network/libbind/irs/gen.c deleted file mode 100644 index 2df304695f..0000000000 --- a/src/kits/network/libbind/irs/gen.c +++ /dev/null @@ -1,442 +0,0 @@ -/* - * 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. - */ - -#if !defined(LINT) && !defined(CODECENTER) -static const char rcsid[] = "$Id: gen.c,v 1.7 2005/04/27 04:56:23 sra Exp $"; -#endif - -/*! \file - * \brief - * this is the top level dispatcher - * - * The dispatcher is implemented as an accessor class; it is an - * accessor class that calls other accessor classes, as controlled by a - * configuration file. - * - * A big difference between this accessor class and others is that the - * map class initializers are NULL, and the map classes are already - * filled in with method functions that will do the right thing. - */ - -/* Imports */ - -#include "port_before.h" - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "gen_p.h" - -/* Definitions */ - -struct nameval { - const char * name; - int val; -}; - -static const struct nameval acc_names[irs_nacc+1] = { - { "local", irs_lcl }, - { "dns", irs_dns }, - { "nis", irs_nis }, - { "irp", irs_irp }, - { NULL, irs_nacc } -}; - -typedef struct irs_acc *(*accinit) __P((const char *options)); - -static const accinit accs[irs_nacc+1] = { - irs_lcl_acc, - irs_dns_acc, -#ifdef WANT_IRS_NIS - irs_nis_acc, -#else - NULL, -#endif - irs_irp_acc, - NULL -}; - -static const struct nameval map_names[irs_nmap+1] = { - { "group", irs_gr }, - { "passwd", irs_pw }, - { "services", irs_sv }, - { "protocols", irs_pr }, - { "hosts", irs_ho }, - { "networks", irs_nw }, - { "netgroup", irs_ng }, - { NULL, irs_nmap } -}; - -static const struct nameval option_names[] = { - { "merge", IRS_MERGE }, - { "continue", IRS_CONTINUE }, - { NULL, 0 } -}; - -/* Forward */ - -static void gen_close(struct irs_acc *); -static struct __res_state * gen_res_get(struct irs_acc *); -static void gen_res_set(struct irs_acc *, struct __res_state *, - void (*)(void *)); -static int find_name(const char *, const struct nameval nv[]); -static void init_map_rules(struct gen_p *, const char *conf_file); -static struct irs_rule *release_rule(struct irs_rule *); -static int add_rule(struct gen_p *, - enum irs_map_id, enum irs_acc_id, - const char *); - -/* Public */ - -struct irs_acc * -irs_gen_acc(const char *options, const char *conf_file) { - struct irs_acc *acc; - struct gen_p *irs; - - if (!(acc = memget(sizeof *acc))) { - errno = ENOMEM; - return (NULL); - } - memset(acc, 0x5e, sizeof *acc); - if (!(irs = memget(sizeof *irs))) { - errno = ENOMEM; - memput(acc, sizeof *acc); - return (NULL); - } - memset(irs, 0x5e, sizeof *irs); - irs->options = strdup(options); - irs->res = NULL; - irs->free_res = NULL; - memset(irs->accessors, 0, sizeof irs->accessors); - memset(irs->map_rules, 0, sizeof irs->map_rules); - init_map_rules(irs, conf_file); - acc->private = irs; -#ifdef WANT_IRS_GR - acc->gr_map = irs_gen_gr; -#else - acc->gr_map = NULL; -#endif -#ifdef WANT_IRS_PW - acc->pw_map = irs_gen_pw; -#else - acc->pw_map = NULL; -#endif - acc->sv_map = irs_gen_sv; - acc->pr_map = irs_gen_pr; - acc->ho_map = irs_gen_ho; - acc->nw_map = irs_gen_nw; - acc->ng_map = irs_gen_ng; - acc->res_get = gen_res_get; - acc->res_set = gen_res_set; - acc->close = gen_close; - return (acc); -} - -/* Methods */ - -static struct __res_state * -gen_res_get(struct irs_acc *this) { - struct gen_p *irs = (struct gen_p *)this->private; - - if (irs->res == NULL) { - struct __res_state *res; - res = (struct __res_state *)malloc(sizeof *res); - if (res == NULL) - return (NULL); - memset(res, 0, sizeof *res); - gen_res_set(this, res, free); - } - - if (((irs->res->options & RES_INIT) == 0U) && res_ninit(irs->res) < 0) - return (NULL); - - return (irs->res); -} - -static void -gen_res_set(struct irs_acc *this, struct __res_state *res, - void (*free_res)(void *)) { - struct gen_p *irs = (struct gen_p *)this->private; -#if 0 - struct irs_rule *rule; - struct irs_ho *ho; - struct irs_nw *nw; -#endif - - if (irs->res && irs->free_res) { - res_nclose(irs->res); - (*irs->free_res)(irs->res); - } - - irs->res = res; - irs->free_res = free_res; - -#if 0 - for (rule = irs->map_rules[irs_ho]; rule; rule = rule->next) { - ho = rule->inst->ho; - - (*ho->res_set)(ho, res, NULL); - } - for (rule = irs->map_rules[irs_nw]; rule; rule = rule->next) { - nw = rule->inst->nw; - - (*nw->res_set)(nw, res, NULL); - } -#endif -} - -static void -gen_close(struct irs_acc *this) { - struct gen_p *irs = (struct gen_p *)this->private; - int n; - - /* Search rules. */ - for (n = 0; n < irs_nmap; n++) - while (irs->map_rules[n] != NULL) - irs->map_rules[n] = release_rule(irs->map_rules[n]); - - /* Access methods. */ - for (n = 0; n < irs_nacc; n++) { - /* Map objects. */ - if (irs->accessors[n].gr != NULL) - (*irs->accessors[n].gr->close)(irs->accessors[n].gr); - if (irs->accessors[n].pw != NULL) - (*irs->accessors[n].pw->close)(irs->accessors[n].pw); - if (irs->accessors[n].sv != NULL) - (*irs->accessors[n].sv->close)(irs->accessors[n].sv); - if (irs->accessors[n].pr != NULL) - (*irs->accessors[n].pr->close)(irs->accessors[n].pr); - if (irs->accessors[n].ho != NULL) - (*irs->accessors[n].ho->close)(irs->accessors[n].ho); - if (irs->accessors[n].nw != NULL) - (*irs->accessors[n].nw->close)(irs->accessors[n].nw); - if (irs->accessors[n].ng != NULL) - (*irs->accessors[n].ng->close)(irs->accessors[n].ng); - /* Enclosing accessor. */ - if (irs->accessors[n].acc != NULL) - (*irs->accessors[n].acc->close)(irs->accessors[n].acc); - } - - /* The options string was strdup'd. */ - free((void*)irs->options); - - if (irs->res && irs->free_res) - (*irs->free_res)(irs->res); - - /* The private data container. */ - memput(irs, sizeof *irs); - - /* The object. */ - memput(this, sizeof *this); -} - -/* Private */ - -static int -find_name(const char *name, const struct nameval names[]) { - int n; - - for (n = 0; names[n].name != NULL; n++) - if (strcmp(name, names[n].name) == 0) - return (names[n].val); - return (-1); -} - -static struct irs_rule * -release_rule(struct irs_rule *rule) { - struct irs_rule *next = rule->next; - - memput(rule, sizeof *rule); - return (next); -} - -static int -add_rule(struct gen_p *irs, - enum irs_map_id map, enum irs_acc_id acc, - const char *options) -{ - struct irs_rule **rules, *last, *tmp, *new; - struct irs_inst *inst; - const char *cp; - int n; - -#ifndef WANT_IRS_GR - if (map == irs_gr) - return (-1); -#endif -#ifndef WANT_IRS_PW - if (map == irs_pw) - return (-1); -#endif -#ifndef WANT_IRS_NIS - if (acc == irs_nis) - return (-1); -#endif - new = memget(sizeof *new); - if (new == NULL) - return (-1); - memset(new, 0x5e, sizeof *new); - new->next = NULL; - - new->inst = &irs->accessors[acc]; - - new->flags = 0; - cp = options; - while (cp && *cp) { - char option[50], *next; - - next = strchr(cp, ','); - if (next) - n = next++ - cp; - else - n = strlen(cp); - if ((size_t)n > sizeof option - 1) - n = sizeof option - 1; - strncpy(option, cp, n); - option[n] = '\0'; - - n = find_name(option, option_names); - if (n >= 0) - new->flags |= n; - - cp = next; - } - - rules = &irs->map_rules[map]; - for (last = NULL, tmp = *rules; - tmp != NULL; - last = tmp, tmp = tmp->next) - (void)NULL; - if (last == NULL) - *rules = new; - else - last->next = new; - - /* Try to instantiate map accessors for this if necessary & approp. */ - inst = &irs->accessors[acc]; - if (inst->acc == NULL && accs[acc] != NULL) - inst->acc = (*accs[acc])(irs->options); - if (inst->acc != NULL) { - if (inst->gr == NULL && inst->acc->gr_map != NULL) - inst->gr = (*inst->acc->gr_map)(inst->acc); - if (inst->pw == NULL && inst->acc->pw_map != NULL) - inst->pw = (*inst->acc->pw_map)(inst->acc); - if (inst->sv == NULL && inst->acc->sv_map != NULL) - inst->sv = (*inst->acc->sv_map)(inst->acc); - if (inst->pr == NULL && inst->acc->pr_map != NULL) - inst->pr = (*inst->acc->pr_map)(inst->acc); - if (inst->ho == NULL && inst->acc->ho_map != NULL) - inst->ho = (*inst->acc->ho_map)(inst->acc); - if (inst->nw == NULL && inst->acc->nw_map != NULL) - inst->nw = (*inst->acc->nw_map)(inst->acc); - if (inst->ng == NULL && inst->acc->ng_map != NULL) - inst->ng = (*inst->acc->ng_map)(inst->acc); - } - - return (0); -} - -static void -default_map_rules(struct gen_p *irs) { - /* Install time honoured and proved BSD style rules as default. */ - add_rule(irs, irs_gr, irs_lcl, ""); - add_rule(irs, irs_pw, irs_lcl, ""); - add_rule(irs, irs_sv, irs_lcl, ""); - add_rule(irs, irs_pr, irs_lcl, ""); - add_rule(irs, irs_ho, irs_dns, "continue"); - add_rule(irs, irs_ho, irs_lcl, ""); - add_rule(irs, irs_nw, irs_dns, "continue"); - add_rule(irs, irs_nw, irs_lcl, ""); - add_rule(irs, irs_ng, irs_lcl, ""); -} - -static void -init_map_rules(struct gen_p *irs, const char *conf_file) { - char line[1024], pattern[40], mapname[20], accname[20], options[100]; - char path[PATH_MAX]; - FILE *conf; - - if (conf_file == NULL) { - if (find_directory(B_SYSTEM_SETTINGS_DIRECTORY, -1, false, path, - sizeof(path)) == B_OK) { - strlcat(path, "/network/irs.conf", sizeof(path)); - conf_file = path; - } else - conf_file = _PATH_IRS_CONF; - } - - /* A conf file of "" means compiled in defaults. Irpd wants this */ - if (conf_file[0] == '\0' || (conf = fopen(conf_file, "r")) == NULL) { - default_map_rules(irs); - return; - } - (void) sprintf(pattern, "%%%lus %%%lus %%%lus\n", - (unsigned long)sizeof mapname, - (unsigned long)sizeof accname, - (unsigned long)sizeof options); - while (fgets(line, sizeof line, conf)) { - enum irs_map_id map; - enum irs_acc_id acc; - char *tmp; - int n; - - for (tmp = line; - isascii((unsigned char)*tmp) && - isspace((unsigned char)*tmp); - tmp++) - (void)NULL; - if (*tmp == '#' || *tmp == '\n' || *tmp == '\0') - continue; - n = sscanf(tmp, pattern, mapname, accname, options); - if (n < 2) - continue; - if (n < 3) - options[0] = '\0'; - - n = find_name(mapname, map_names); - INSIST(n < irs_nmap); - if (n < 0) - continue; - map = (enum irs_map_id) n; - - n = find_name(accname, acc_names); - INSIST(n < irs_nacc); - if (n < 0) - continue; - acc = (enum irs_acc_id) n; - - add_rule(irs, map, acc, options); - } - fclose(conf); -} diff --git a/src/kits/network/libbind/irs/gen_gr.c b/src/kits/network/libbind/irs/gen_gr.c deleted file mode 100644 index d689e19319..0000000000 --- a/src/kits/network/libbind/irs/gen_gr.c +++ /dev/null @@ -1,493 +0,0 @@ -/* - * 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. - */ - -#if !defined(LINT) && !defined(CODECENTER) -static const char rcsid[] = "$Id: gen_gr.c,v 1.8 2005/04/27 04:56:23 sra Exp $"; -#endif - -/* Imports */ - -#include "port_before.h" - -#ifndef WANT_IRS_GR -static int __bind_irs_gr_unneeded; -#else - -#include - -#include -#include -#include -#include -#include - -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "gen_p.h" - -/* Definitions */ - -struct pvt { - struct irs_rule * rules; - struct irs_rule * rule; - struct irs_gr * gr; - /* - * Need space to store the entries read from the group file. - * The members list also needs space per member, and the - * strings making up the user names must be allocated - * somewhere. Rather than doing lots of small allocations, - * we keep one buffer and resize it as needed. - */ - struct group group; - size_t nmemb; /*%< Malloc'd max index of gr_mem[]. */ - char * membuf; - size_t membufsize; - struct __res_state * res; - void (*free_res)(void *); -}; - -/* Forward */ - -static void gr_close(struct irs_gr *); -static struct group * gr_next(struct irs_gr *); -static struct group * gr_byname(struct irs_gr *, const char *); -static struct group * gr_bygid(struct irs_gr *, gid_t); -static void gr_rewind(struct irs_gr *); -static int gr_list(struct irs_gr *, const char *, - gid_t, gid_t *, int *); -static void gr_minimize(struct irs_gr *); -static struct __res_state * gr_res_get(struct irs_gr *); -static void gr_res_set(struct irs_gr *, - struct __res_state *, - void (*)(void *)); - -static int grmerge(struct irs_gr *gr, const struct group *src, - int preserve); - -static int countvec(char **vec); -static int isnew(char **old, char *new); -static int countnew(char **old, char **new); -static size_t sizenew(char **old, char **new); -static int newgid(int, gid_t *, gid_t); - -/* Macros */ - -#define FREE_IF(x) do { if ((x) != NULL) { free(x); (x) = NULL; } } while (0) - -/* Public */ - -struct irs_gr * -irs_gen_gr(struct irs_acc *this) { - struct gen_p *accpvt = (struct gen_p *)this->private; - struct irs_gr *gr; - struct pvt *pvt; - - if (!(gr = memget(sizeof *gr))) { - errno = ENOMEM; - return (NULL); - } - memset(gr, 0x5e, sizeof *gr); - if (!(pvt = memget(sizeof *pvt))) { - memput(gr, sizeof *gr); - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - pvt->rules = accpvt->map_rules[irs_gr]; - pvt->rule = pvt->rules; - gr->private = pvt; - gr->close = gr_close; - gr->next = gr_next; - gr->byname = gr_byname; - gr->bygid = gr_bygid; - gr->rewind = gr_rewind; - gr->list = gr_list; - gr->minimize = gr_minimize; - gr->res_get = gr_res_get; - gr->res_set = gr_res_set; - return (gr); -} - -/* Methods. */ - -static void -gr_close(struct irs_gr *this) { - struct pvt *pvt = (struct pvt *)this->private; - - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct group * -gr_next(struct irs_gr *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct group *rval; - struct irs_gr *gr; - - while (pvt->rule) { - gr = pvt->rule->inst->gr; - rval = (*gr->next)(gr); - if (rval) - return (rval); - if (!(pvt->rule->flags & IRS_CONTINUE)) - break; - pvt->rule = pvt->rule->next; - if (pvt->rule) { - gr = pvt->rule->inst->gr; - (*gr->rewind)(gr); - } - } - return (NULL); -} - -static struct group * -gr_byname(struct irs_gr *this, const char *name) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - struct group *tval; - struct irs_gr *gr; - int dirty; - - dirty = 0; - for (rule = pvt->rules; rule; rule = rule->next) { - gr = rule->inst->gr; - tval = (*gr->byname)(gr, name); - if (tval) { - if (!grmerge(this, tval, dirty++)) - return (NULL); - if (!(rule->flags & IRS_MERGE)) - break; - } else { - if (!(rule->flags & IRS_CONTINUE)) - break; - } - } - if (dirty) - return (&pvt->group); - return (NULL); -} - -static struct group * -gr_bygid(struct irs_gr *this, gid_t gid) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - struct group *tval; - struct irs_gr *gr; - int dirty; - - dirty = 0; - for (rule = pvt->rules; rule; rule = rule->next) { - gr = rule->inst->gr; - tval = (*gr->bygid)(gr, gid); - if (tval) { - if (!grmerge(this, tval, dirty++)) - return (NULL); - if (!(rule->flags & IRS_MERGE)) - break; - } else { - if (!(rule->flags & IRS_CONTINUE)) - break; - } - } - if (dirty) - return (&pvt->group); - return (NULL); -} - -static void -gr_rewind(struct irs_gr *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_gr *gr; - - pvt->rule = pvt->rules; - if (pvt->rule) { - gr = pvt->rule->inst->gr; - (*gr->rewind)(gr); - } -} - -static int -gr_list(struct irs_gr *this, const char *name, - gid_t basegid, gid_t *groups, int *ngroups) -{ - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - struct irs_gr *gr; - int t_ngroups, maxgroups; - gid_t *t_groups; - int n, t, rval = 0; - - maxgroups = *ngroups; - *ngroups = 0; - t_groups = (gid_t *)malloc(maxgroups * sizeof(gid_t)); - if (!t_groups) { - errno = ENOMEM; - return (-1); - } - - for (rule = pvt->rules; rule; rule = rule->next) { - t_ngroups = maxgroups; - gr = rule->inst->gr; - t = (*gr->list)(gr, name, basegid, t_groups, &t_ngroups); - for (n = 0; n < t_ngroups; n++) { - if (newgid(*ngroups, groups, t_groups[n])) { - if (*ngroups == maxgroups) { - rval = -1; - goto done; - } - groups[(*ngroups)++] = t_groups[n]; - } - } - if (t == 0) { - if (!(rule->flags & IRS_MERGE)) - break; - } else { - if (!(rule->flags & IRS_CONTINUE)) - break; - } - } - done: - free(t_groups); - return (rval); -} - -static void -gr_minimize(struct irs_gr *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - - for (rule = pvt->rules; rule != NULL; rule = rule->next) { - struct irs_gr *gr = rule->inst->gr; - - (*gr->minimize)(gr); - } -} - -static struct __res_state * -gr_res_get(struct irs_gr *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->res) { - struct __res_state *res; - res = (struct __res_state *)malloc(sizeof *res); - if (!res) { - errno = ENOMEM; - return (NULL); - } - memset(res, 0, sizeof *res); - gr_res_set(this, res, free); - } - - return (pvt->res); -} - -static void -gr_res_set(struct irs_gr *this, struct __res_state *res, - void (*free_res)(void *)) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - - if (pvt->res && pvt->free_res) { - res_nclose(pvt->res); - (*pvt->free_res)(pvt->res); - } - - pvt->res = res; - pvt->free_res = free_res; - - for (rule = pvt->rules; rule != NULL; rule = rule->next) { - struct irs_gr *gr = rule->inst->gr; - - if (gr->res_set) - (*gr->res_set)(gr, pvt->res, NULL); - } -} - -/* Private. */ - -static int -grmerge(struct irs_gr *this, const struct group *src, int preserve) { - struct pvt *pvt = (struct pvt *)this->private; - char *cp, **m, **p, *oldmembuf, *ep; - int n, ndst, nnew; - size_t used; - - if (!preserve) { - pvt->group.gr_gid = src->gr_gid; - if (pvt->nmemb < 1) { - m = malloc(sizeof *m); - if (m == NULL) { - /* No harm done, no work done. */ - return (0); - } - pvt->group.gr_mem = m; - pvt->nmemb = 1; - } - pvt->group.gr_mem[0] = NULL; - } - ndst = countvec(pvt->group.gr_mem); - nnew = countnew(pvt->group.gr_mem, src->gr_mem); - - /* - * Make sure destination member array is large enough. - * p points to new portion. - */ - n = ndst + nnew + 1; - if ((size_t)n > pvt->nmemb) { - m = realloc(pvt->group.gr_mem, n * sizeof *m); - if (m == NULL) { - /* No harm done, no work done. */ - return (0); - } - pvt->group.gr_mem = m; - pvt->nmemb = n; - } - p = pvt->group.gr_mem + ndst; - - /* - * Enlarge destination membuf; cp points at new portion. - */ - n = sizenew(pvt->group.gr_mem, src->gr_mem); - INSIST((nnew == 0) == (n == 0)); - if (!preserve) { - n += strlen(src->gr_name) + 1; - n += strlen(src->gr_passwd) + 1; - } - if (n == 0) { - /* No work to do. */ - return (1); - } - used = preserve ? pvt->membufsize : 0; - cp = malloc(used + n); - if (cp == NULL) { - /* No harm done, no work done. */ - return (0); - } - ep = cp + used + n; - if (used != 0) - memcpy(cp, pvt->membuf, used); - oldmembuf = pvt->membuf; - pvt->membuf = cp; - pvt->membufsize = used + n; - cp += used; - - /* - * Adjust group.gr_mem. - */ - if (pvt->membuf != oldmembuf) - for (m = pvt->group.gr_mem; *m; m++) - *m = pvt->membuf + (*m - oldmembuf); - - /* - * Add new elements. - */ - for (m = src->gr_mem; *m; m++) - if (isnew(pvt->group.gr_mem, *m)) { - *p++ = cp; - *p = NULL; - n = strlen(*m) + 1; - if (n > ep - cp) { - FREE_IF(oldmembuf); - return (0); - } - strcpy(cp, *m); /* (checked) */ - cp += n; - } - if (preserve) { - pvt->group.gr_name = pvt->membuf + - (pvt->group.gr_name - oldmembuf); - pvt->group.gr_passwd = pvt->membuf + - (pvt->group.gr_passwd - oldmembuf); - } else { - pvt->group.gr_name = cp; - n = strlen(src->gr_name) + 1; - if (n > ep - cp) { - FREE_IF(oldmembuf); - return (0); - } - strcpy(cp, src->gr_name); /* (checked) */ - cp += n; - - pvt->group.gr_passwd = cp; - n = strlen(src->gr_passwd) + 1; - if (n > ep - cp) { - FREE_IF(oldmembuf); - return (0); - } - strcpy(cp, src->gr_passwd); /* (checked) */ - cp += n; - } - FREE_IF(oldmembuf); - INSIST(cp >= pvt->membuf && cp <= &pvt->membuf[pvt->membufsize]); - return (1); -} - -static int -countvec(char **vec) { - int n = 0; - - while (*vec++) - n++; - return (n); -} - -static int -isnew(char **old, char *new) { - for (; *old; old++) - if (strcmp(*old, new) == 0) - return (0); - return (1); -} - -static int -countnew(char **old, char **new) { - int n = 0; - - for (; *new; new++) - n += isnew(old, *new); - return (n); -} - -static size_t -sizenew(char **old, char **new) { - size_t n = 0; - - for (; *new; new++) - if (isnew(old, *new)) - n += strlen(*new) + 1; - return (n); -} - -static int -newgid(int ngroups, gid_t *groups, gid_t group) { - ngroups--, groups++; - for (; ngroups-- > 0; groups++) - if (*groups == group) - return (0); - return (1); -} - -#endif /* WANT_IRS_GR */ -/*! \file */ diff --git a/src/kits/network/libbind/irs/gen_ho.c b/src/kits/network/libbind/irs/gen_ho.c deleted file mode 100644 index d38ea26b86..0000000000 --- a/src/kits/network/libbind/irs/gen_ho.c +++ /dev/null @@ -1,391 +0,0 @@ -/* - * 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: gen_ho.c,v 1.5 2006/03/09 23:57:56 marka Exp $"; -#endif /* LIBC_SCCS and not lint */ - -/* Imports */ - -#include "port_before.h" - -#include - -#include -#include - -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "gen_p.h" - -/* Definitions */ - -struct pvt { - struct irs_rule * rules; - struct irs_rule * rule; - struct irs_ho * ho; - struct __res_state * res; - void (*free_res)(void *); -}; - -/* Forwards */ - -static void ho_close(struct irs_ho *this); -static struct hostent * ho_byname(struct irs_ho *this, const char *name); -static struct hostent * ho_byname2(struct irs_ho *this, const char *name, - int af); -static struct hostent * ho_byaddr(struct irs_ho *this, const void *addr, - int len, int af); -static struct hostent * ho_next(struct irs_ho *this); -static void ho_rewind(struct irs_ho *this); -static void ho_minimize(struct irs_ho *this); -static struct __res_state * ho_res_get(struct irs_ho *this); -static void ho_res_set(struct irs_ho *this, - struct __res_state *res, - void (*free_res)(void *)); -static struct addrinfo * ho_addrinfo(struct irs_ho *this, const char *name, - const struct addrinfo *pai); - -static int init(struct irs_ho *this); - -/* Exports */ - -struct irs_ho * -irs_gen_ho(struct irs_acc *this) { - struct gen_p *accpvt = (struct gen_p *)this->private; - struct irs_ho *ho; - struct pvt *pvt; - - if (!(pvt = memget(sizeof *pvt))) { - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - if (!(ho = memget(sizeof *ho))) { - memput(pvt, sizeof *pvt); - errno = ENOMEM; - return (NULL); - } - memset(ho, 0x5e, sizeof *ho); - pvt->rules = accpvt->map_rules[irs_ho]; - pvt->rule = pvt->rules; - ho->private = pvt; - ho->close = ho_close; - ho->byname = ho_byname; - ho->byname2 = ho_byname2; - ho->byaddr = ho_byaddr; - ho->next = ho_next; - ho->rewind = ho_rewind; - ho->minimize = ho_minimize; - ho->res_get = ho_res_get; - ho->res_set = ho_res_set; - ho->addrinfo = ho_addrinfo; - return (ho); -} - -/* Methods. */ - -static void -ho_close(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - - ho_minimize(this); - if (pvt->res && pvt->free_res) - (*pvt->free_res)(pvt->res); - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct hostent * -ho_byname(struct irs_ho *this, const char *name) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - struct hostent *rval; - struct irs_ho *ho; - int therrno = NETDB_INTERNAL; - int softerror = 0; - - if (init(this) == -1) - return (NULL); - - for (rule = pvt->rules; rule; rule = rule->next) { - ho = rule->inst->ho; - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - errno = 0; - rval = (*ho->byname)(ho, name); - if (rval != NULL) - return (rval); - if (softerror == 0 && - pvt->res->res_h_errno != HOST_NOT_FOUND && - pvt->res->res_h_errno != NETDB_INTERNAL) { - softerror = 1; - therrno = pvt->res->res_h_errno; - } - if (rule->flags & IRS_CONTINUE) - continue; - /* - * The value TRY_AGAIN can mean that the service - * is not available, or just that this particular name - * cannot be resolved now. We use the errno ECONNREFUSED - * to distinguish. If a lookup sets that errno when - * H_ERRNO is TRY_AGAIN, we continue to try other lookup - * functions, otherwise we return the TRY_AGAIN error. - */ - if (pvt->res->res_h_errno != TRY_AGAIN || errno != ECONNREFUSED) - break; - } - if (softerror != 0 && pvt->res->res_h_errno == HOST_NOT_FOUND) - RES_SET_H_ERRNO(pvt->res, therrno); - return (NULL); -} - -static struct hostent * -ho_byname2(struct irs_ho *this, const char *name, int af) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - struct hostent *rval; - struct irs_ho *ho; - int therrno = NETDB_INTERNAL; - int softerror = 0; - - if (init(this) == -1) - return (NULL); - - for (rule = pvt->rules; rule; rule = rule->next) { - ho = rule->inst->ho; - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - errno = 0; - rval = (*ho->byname2)(ho, name, af); - if (rval != NULL) - return (rval); - if (softerror == 0 && - pvt->res->res_h_errno != HOST_NOT_FOUND && - pvt->res->res_h_errno != NETDB_INTERNAL) { - softerror = 1; - therrno = pvt->res->res_h_errno; - } - if (rule->flags & IRS_CONTINUE) - continue; - /* - * See the comments in ho_byname() explaining - * the interpretation of TRY_AGAIN and ECONNREFUSED. - */ - if (pvt->res->res_h_errno != TRY_AGAIN || errno != ECONNREFUSED) - break; - } - if (softerror != 0 && pvt->res->res_h_errno == HOST_NOT_FOUND) - RES_SET_H_ERRNO(pvt->res, therrno); - return (NULL); -} - -static struct hostent * -ho_byaddr(struct irs_ho *this, const void *addr, int len, int af) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - struct hostent *rval; - struct irs_ho *ho; - int therrno = NETDB_INTERNAL; - int softerror = 0; - - - if (init(this) == -1) - return (NULL); - - for (rule = pvt->rules; rule; rule = rule->next) { - ho = rule->inst->ho; - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - errno = 0; - rval = (*ho->byaddr)(ho, addr, len, af); - if (rval != NULL) - return (rval); - if (softerror == 0 && - pvt->res->res_h_errno != HOST_NOT_FOUND && - pvt->res->res_h_errno != NETDB_INTERNAL) { - softerror = 1; - therrno = pvt->res->res_h_errno; - } - - if (rule->flags & IRS_CONTINUE) - continue; - /* - * See the comments in ho_byname() explaining - * the interpretation of TRY_AGAIN and ECONNREFUSED. - */ - if (pvt->res->res_h_errno != TRY_AGAIN || errno != ECONNREFUSED) - break; - } - if (softerror != 0 && pvt->res->res_h_errno == HOST_NOT_FOUND) - RES_SET_H_ERRNO(pvt->res, therrno); - return (NULL); -} - -static struct hostent * -ho_next(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct hostent *rval; - struct irs_ho *ho; - - while (pvt->rule) { - ho = pvt->rule->inst->ho; - rval = (*ho->next)(ho); - if (rval) - return (rval); - if (!(pvt->rule->flags & IRS_CONTINUE)) - break; - pvt->rule = pvt->rule->next; - if (pvt->rule) { - ho = pvt->rule->inst->ho; - (*ho->rewind)(ho); - } - } - return (NULL); -} - -static void -ho_rewind(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_ho *ho; - - pvt->rule = pvt->rules; - if (pvt->rule) { - ho = pvt->rule->inst->ho; - (*ho->rewind)(ho); - } -} - -static void -ho_minimize(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - - if (pvt->res) - res_nclose(pvt->res); - for (rule = pvt->rules; rule != NULL; rule = rule->next) { - struct irs_ho *ho = rule->inst->ho; - - (*ho->minimize)(ho); - } -} - -static struct __res_state * -ho_res_get(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->res) { - struct __res_state *res; - res = (struct __res_state *)malloc(sizeof *res); - if (!res) { - errno = ENOMEM; - return (NULL); - } - memset(res, 0, sizeof *res); - ho_res_set(this, res, free); - } - - return (pvt->res); -} - -static void -ho_res_set(struct irs_ho *this, struct __res_state *res, - void (*free_res)(void *)) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - - if (pvt->res && pvt->free_res) { - res_nclose(pvt->res); - (*pvt->free_res)(pvt->res); - } - - pvt->res = res; - pvt->free_res = free_res; - - for (rule = pvt->rules; rule != NULL; rule = rule->next) { - struct irs_ho *ho = rule->inst->ho; - - (*ho->res_set)(ho, pvt->res, NULL); - } -} - -static struct addrinfo * -ho_addrinfo(struct irs_ho *this, const char *name, const struct addrinfo *pai) -{ - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - struct addrinfo *rval = NULL; - struct irs_ho *ho; - int therrno = NETDB_INTERNAL; - int softerror = 0; - - if (init(this) == -1) - return (NULL); - - for (rule = pvt->rules; rule; rule = rule->next) { - ho = rule->inst->ho; - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - errno = 0; - if (ho->addrinfo == NULL) /*%< for safety */ - continue; - rval = (*ho->addrinfo)(ho, name, pai); - if (rval != NULL) - return (rval); - if (softerror == 0 && - pvt->res->res_h_errno != HOST_NOT_FOUND && - pvt->res->res_h_errno != NETDB_INTERNAL) { - softerror = 1; - therrno = pvt->res->res_h_errno; - } - if (rule->flags & IRS_CONTINUE) - continue; - /* - * See the comments in ho_byname() explaining - * the interpretation of TRY_AGAIN and ECONNREFUSED. - */ - if (pvt->res->res_h_errno != TRY_AGAIN || - errno != ECONNREFUSED) - break; - } - if (softerror != 0 && pvt->res->res_h_errno == HOST_NOT_FOUND) - RES_SET_H_ERRNO(pvt->res, therrno); - return (NULL); -} - -static int -init(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->res && !ho_res_get(this)) - return (-1); - - if (((pvt->res->options & RES_INIT) == 0U) && - (res_ninit(pvt->res) == -1)) - return (-1); - - return (0); -} - -/*! \file */ diff --git a/src/kits/network/libbind/irs/gen_ng.c b/src/kits/network/libbind/irs/gen_ng.c deleted file mode 100644 index c617c7c9f5..0000000000 --- a/src/kits/network/libbind/irs/gen_ng.c +++ /dev/null @@ -1,174 +0,0 @@ -/* - * 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. - */ - -#if !defined(LINT) && !defined(CODECENTER) -static const char rcsid[] = "$Id: gen_ng.c,v 1.3 2005/04/27 04:56:23 sra Exp $"; -#endif - -/* Imports */ - -#include "port_before.h" - -#include - -#include -#include -#include - -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "gen_p.h" - -/* Types */ - -struct pvt { - struct irs_rule * rules; - struct irs_rule * rule; - char * curgroup; -}; - -/* Forward */ - -static void ng_close(struct irs_ng *); -static int ng_next(struct irs_ng *, const char **, - const char **, const char **); -static int ng_test(struct irs_ng *, const char *, - const char *, const char *, - const char *); -static void ng_rewind(struct irs_ng *, const char *); -static void ng_minimize(struct irs_ng *); - -/* Public */ - -struct irs_ng * -irs_gen_ng(struct irs_acc *this) { - struct gen_p *accpvt = (struct gen_p *)this->private; - struct irs_ng *ng; - struct pvt *pvt; - - if (!(ng = memget(sizeof *ng))) { - errno = ENOMEM; - return (NULL); - } - memset(ng, 0x5e, sizeof *ng); - if (!(pvt = memget(sizeof *pvt))) { - memput(ng, sizeof *ng); - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - pvt->rules = accpvt->map_rules[irs_ng]; - pvt->rule = pvt->rules; - ng->private = pvt; - ng->close = ng_close; - ng->next = ng_next; - ng->test = ng_test; - ng->rewind = ng_rewind; - ng->minimize = ng_minimize; - return (ng); -} - -/* Methods */ - -static void -ng_close(struct irs_ng *this) { - struct pvt *pvt = (struct pvt *)this->private; - - ng_minimize(this); - if (pvt->curgroup) - free(pvt->curgroup); - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static int -ng_next(struct irs_ng *this, const char **host, const char **user, - const char **domain) -{ - struct pvt *pvt = (struct pvt *)this->private; - struct irs_ng *ng; - - while (pvt->rule) { - ng = pvt->rule->inst->ng; - if ((*ng->next)(ng, host, user, domain) == 1) - return (1); - if (!(pvt->rule->flags & IRS_CONTINUE)) - break; - pvt->rule = pvt->rule->next; - if (pvt->rule) { - ng = pvt->rule->inst->ng; - (*ng->rewind)(ng, pvt->curgroup); - } - } - return (0); -} - -static int -ng_test(struct irs_ng *this, const char *name, - const char *user, const char *host, const char *domain) -{ - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - struct irs_ng *ng; - int rval; - - rval = 0; - for (rule = pvt->rules; rule; rule = rule->next) { - ng = rule->inst->ng; - rval = (*ng->test)(ng, name, user, host, domain); - if (rval || !(rule->flags & IRS_CONTINUE)) - break; - } - return (rval); -} - -static void -ng_rewind(struct irs_ng *this, const char *group) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_ng *ng; - - pvt->rule = pvt->rules; - if (pvt->rule) { - if (pvt->curgroup) - free(pvt->curgroup); - pvt->curgroup = strdup(group); - ng = pvt->rule->inst->ng; - (*ng->rewind)(ng, pvt->curgroup); - } -} - -static void -ng_minimize(struct irs_ng *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - - for (rule = pvt->rules; rule != NULL; rule = rule->next) { - struct irs_ng *ng = rule->inst->ng; - - (*ng->minimize)(ng); - } -} - -/*! \file */ diff --git a/src/kits/network/libbind/irs/gen_nw.c b/src/kits/network/libbind/irs/gen_nw.c deleted file mode 100644 index 480a435478..0000000000 --- a/src/kits/network/libbind/irs/gen_nw.c +++ /dev/null @@ -1,264 +0,0 @@ -/* - * 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. - */ - -#if !defined(LINT) && !defined(CODECENTER) -static const char rcsid[] = "$Id: gen_nw.c,v 1.4 2005/04/27 04:56:23 sra Exp $"; -#endif - -/* Imports */ - -#include "port_before.h" - -#include - -#include -#include - -#include -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "gen_p.h" - -/* Types */ - -struct pvt { - struct irs_rule * rules; - struct irs_rule * rule; - struct __res_state * res; - void (*free_res)(void *); -}; - -/* Forward */ - -static void nw_close(struct irs_nw*); -static struct nwent * nw_next(struct irs_nw *); -static struct nwent * nw_byname(struct irs_nw *, const char *, int); -static struct nwent * nw_byaddr(struct irs_nw *, void *, int, int); -static void nw_rewind(struct irs_nw *); -static void nw_minimize(struct irs_nw *); -static struct __res_state * nw_res_get(struct irs_nw *this); -static void nw_res_set(struct irs_nw *this, - struct __res_state *res, - void (*free_res)(void *)); - -static int init(struct irs_nw *this); - -/* Public */ - -struct irs_nw * -irs_gen_nw(struct irs_acc *this) { - struct gen_p *accpvt = (struct gen_p *)this->private; - struct irs_nw *nw; - struct pvt *pvt; - - if (!(pvt = memget(sizeof *pvt))) { - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - if (!(nw = memget(sizeof *nw))) { - memput(pvt, sizeof *pvt); - errno = ENOMEM; - return (NULL); - } - memset(nw, 0x5e, sizeof *nw); - pvt->rules = accpvt->map_rules[irs_nw]; - pvt->rule = pvt->rules; - nw->private = pvt; - nw->close = nw_close; - nw->next = nw_next; - nw->byname = nw_byname; - nw->byaddr = nw_byaddr; - nw->rewind = nw_rewind; - nw->minimize = nw_minimize; - nw->res_get = nw_res_get; - nw->res_set = nw_res_set; - return (nw); -} - -/* Methods */ - -static void -nw_close(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - nw_minimize(this); - - if (pvt->res && pvt->free_res) - (*pvt->free_res)(pvt->res); - - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct nwent * -nw_next(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct nwent *rval; - struct irs_nw *nw; - - if (init(this) == -1) - return(NULL); - - while (pvt->rule) { - nw = pvt->rule->inst->nw; - rval = (*nw->next)(nw); - if (rval) - return (rval); - if (!(pvt->rules->flags & IRS_CONTINUE)) - break; - pvt->rule = pvt->rule->next; - if (pvt->rule) { - nw = pvt->rule->inst->nw; - (*nw->rewind)(nw); - } - } - return (NULL); -} - -static struct nwent * -nw_byname(struct irs_nw *this, const char *name, int type) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - struct nwent *rval; - struct irs_nw *nw; - - if (init(this) == -1) - return(NULL); - - for (rule = pvt->rules; rule; rule = rule->next) { - nw = rule->inst->nw; - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - rval = (*nw->byname)(nw, name, type); - if (rval != NULL) - return (rval); - if (pvt->res->res_h_errno != TRY_AGAIN && - !(rule->flags & IRS_CONTINUE)) - break; - } - return (NULL); -} - -static struct nwent * -nw_byaddr(struct irs_nw *this, void *net, int length, int type) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - struct nwent *rval; - struct irs_nw *nw; - - if (init(this) == -1) - return(NULL); - - for (rule = pvt->rules; rule; rule = rule->next) { - nw = rule->inst->nw; - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - rval = (*nw->byaddr)(nw, net, length, type); - if (rval != NULL) - return (rval); - if (pvt->res->res_h_errno != TRY_AGAIN && - !(rule->flags & IRS_CONTINUE)) - break; - } - return (NULL); -} - -static void -nw_rewind(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_nw *nw; - - pvt->rule = pvt->rules; - if (pvt->rule) { - nw = pvt->rule->inst->nw; - (*nw->rewind)(nw); - } -} - -static void -nw_minimize(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - - if (pvt->res) - res_nclose(pvt->res); - for (rule = pvt->rules; rule != NULL; rule = rule->next) { - struct irs_nw *nw = rule->inst->nw; - - (*nw->minimize)(nw); - } -} - -static struct __res_state * -nw_res_get(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->res) { - struct __res_state *res; - res = (struct __res_state *)malloc(sizeof *res); - if (!res) { - errno = ENOMEM; - return (NULL); - } - memset(res, 0, sizeof *res); - nw_res_set(this, res, free); - } - - return (pvt->res); -} - -static void -nw_res_set(struct irs_nw *this, struct __res_state *res, - void (*free_res)(void *)) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - - if (pvt->res && pvt->free_res) { - res_nclose(pvt->res); - (*pvt->free_res)(pvt->res); - } - - pvt->res = res; - pvt->free_res = free_res; - - for (rule = pvt->rules; rule != NULL; rule = rule->next) { - struct irs_nw *nw = rule->inst->nw; - - (*nw->res_set)(nw, pvt->res, NULL); - } -} - -static int -init(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->res && !nw_res_get(this)) - return (-1); - if (((pvt->res->options & RES_INIT) == 0U) && - res_ninit(pvt->res) == -1) - return (-1); - return (0); -} - -/*! \file */ diff --git a/src/kits/network/libbind/irs/gen_p.h b/src/kits/network/libbind/irs/gen_p.h deleted file mode 100644 index 1adc5909bb..0000000000 --- a/src/kits/network/libbind/irs/gen_p.h +++ /dev/null @@ -1,113 +0,0 @@ -/* - * 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. - */ - -/* - * $Id: gen_p.h,v 1.3 2005/04/27 04:56:23 sra Exp $ - */ - -/*! \file - * Notes: - * We hope to create a complete set of thread-safe entry points someday, - * which will mean a set of getXbyY() functions that take as an argument - * a pointer to the map class, which will have a pointer to the private - * data, which will be used preferentially to the static variables that - * are necessary to support the "classic" interface. This "classic" - * interface will then be reimplemented as stubs on top of the thread - * safe modules, and will keep the map class pointers as their only - * static data. HOWEVER, we are not there yet. So while we will call - * the just-barely-converted map class methods with map class pointers, - * right now they probably all still use statics. We're not fooling - * anybody, and we're not trying to (yet). - */ - -#ifndef _GEN_P_H_INCLUDED -#define _GEN_P_H_INCLUDED - -/*% - * These are the access methods. - */ -enum irs_acc_id { - irs_lcl, /*%< Local. */ - irs_dns, /*%< DNS or Hesiod. */ - irs_nis, /*%< Sun NIS ("YP"). */ - irs_irp, /*%< IR protocol. */ - irs_nacc -}; - -/*% - * These are the map types. - */ -enum irs_map_id { - irs_gr, /*%< "group" */ - irs_pw, /*%< "passwd" */ - irs_sv, /*%< "services" */ - irs_pr, /*%< "protocols" */ - irs_ho, /*%< "hosts" */ - irs_nw, /*%< "networks" */ - irs_ng, /*%< "netgroup" */ - irs_nmap -}; - -/*% - * This is an accessor instance. - */ -struct irs_inst { - struct irs_acc *acc; - struct irs_gr * gr; - struct irs_pw * pw; - struct irs_sv * sv; - struct irs_pr * pr; - struct irs_ho * ho; - struct irs_nw * nw; - struct irs_ng * ng; -}; - -/*% - * This is a search rule for some map type. - */ -struct irs_rule { - struct irs_rule * next; - struct irs_inst * inst; - int flags; -}; -#define IRS_MERGE 0x0001 /*%< Don't stop if acc. has data? */ -#define IRS_CONTINUE 0x0002 /*%< Don't stop if acc. has no data? */ -/* - * This is the private data for a search access class. - */ -struct gen_p { - char * options; - struct irs_rule * map_rules[(int)irs_nmap]; - struct irs_inst accessors[(int)irs_nacc]; - struct __res_state * res; - void (*free_res) __P((void *)); -}; - -/* - * Externs. - */ - -extern struct irs_acc * irs_gen_acc __P((const char *, const char *conf_file)); -extern struct irs_gr * irs_gen_gr __P((struct irs_acc *)); -extern struct irs_pw * irs_gen_pw __P((struct irs_acc *)); -extern struct irs_sv * irs_gen_sv __P((struct irs_acc *)); -extern struct irs_pr * irs_gen_pr __P((struct irs_acc *)); -extern struct irs_ho * irs_gen_ho __P((struct irs_acc *)); -extern struct irs_nw * irs_gen_nw __P((struct irs_acc *)); -extern struct irs_ng * irs_gen_ng __P((struct irs_acc *)); - -#endif /*_IRS_P_H_INCLUDED*/ diff --git a/src/kits/network/libbind/irs/gen_pr.c b/src/kits/network/libbind/irs/gen_pr.c deleted file mode 100644 index 93c0426c78..0000000000 --- a/src/kits/network/libbind/irs/gen_pr.c +++ /dev/null @@ -1,228 +0,0 @@ -/* - * 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. - */ - -#if !defined(LINT) && !defined(CODECENTER) -static const char rcsid[] = "$Id: gen_pr.c,v 1.3 2005/04/27 04:56:24 sra Exp $"; -#endif - -/* Imports */ - -#include "port_before.h" - -#include -#include -#include - -#include -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "gen_p.h" - -/* Types */ - -struct pvt { - struct irs_rule * rules; - struct irs_rule * rule; - struct __res_state * res; - void (*free_res)(void *); -}; - -/* Forward */ - -static void pr_close(struct irs_pr*); -static struct protoent * pr_next(struct irs_pr *); -static struct protoent * pr_byname(struct irs_pr *, const char *); -static struct protoent * pr_bynumber(struct irs_pr *, int); -static void pr_rewind(struct irs_pr *); -static void pr_minimize(struct irs_pr *); -static struct __res_state * pr_res_get(struct irs_pr *); -static void pr_res_set(struct irs_pr *, - struct __res_state *, - void (*)(void *)); - -/* Public */ - -struct irs_pr * -irs_gen_pr(struct irs_acc *this) { - struct gen_p *accpvt = (struct gen_p *)this->private; - struct irs_pr *pr; - struct pvt *pvt; - - if (!(pr = memget(sizeof *pr))) { - errno = ENOMEM; - return (NULL); - } - memset(pr, 0x5e, sizeof *pr); - if (!(pvt = memget(sizeof *pvt))) { - memput(pr, sizeof *pr); - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - pvt->rules = accpvt->map_rules[irs_pr]; - pvt->rule = pvt->rules; - pr->private = pvt; - pr->close = pr_close; - pr->next = pr_next; - pr->byname = pr_byname; - pr->bynumber = pr_bynumber; - pr->rewind = pr_rewind; - pr->minimize = pr_minimize; - pr->res_get = pr_res_get; - pr->res_set = pr_res_set; - return (pr); -} - -/* Methods */ - -static void -pr_close(struct irs_pr *this) { - struct pvt *pvt = (struct pvt *)this->private; - - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct protoent * -pr_next(struct irs_pr *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct protoent *rval; - struct irs_pr *pr; - - while (pvt->rule) { - pr = pvt->rule->inst->pr; - rval = (*pr->next)(pr); - if (rval) - return (rval); - if (!(pvt->rules->flags & IRS_CONTINUE)) - break; - pvt->rule = pvt->rule->next; - if (pvt->rule) { - pr = pvt->rule->inst->pr; - (*pr->rewind)(pr); - } - } - return (NULL); -} - -static struct protoent * -pr_byname(struct irs_pr *this, const char *name) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - struct protoent *rval; - struct irs_pr *pr; - - rval = NULL; - for (rule = pvt->rules; rule; rule = rule->next) { - pr = rule->inst->pr; - rval = (*pr->byname)(pr, name); - if (rval || !(rule->flags & IRS_CONTINUE)) - break; - } - return (rval); -} - -static struct protoent * -pr_bynumber(struct irs_pr *this, int proto) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - struct protoent *rval; - struct irs_pr *pr; - - rval = NULL; - for (rule = pvt->rules; rule; rule = rule->next) { - pr = rule->inst->pr; - rval = (*pr->bynumber)(pr, proto); - if (rval || !(rule->flags & IRS_CONTINUE)) - break; - } - return (rval); -} - -static void -pr_rewind(struct irs_pr *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_pr *pr; - - pvt->rule = pvt->rules; - if (pvt->rule) { - pr = pvt->rule->inst->pr; - (*pr->rewind)(pr); - } -} - -static void -pr_minimize(struct irs_pr *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - - for (rule = pvt->rules; rule != NULL; rule = rule->next) { - struct irs_pr *pr = rule->inst->pr; - - (*pr->minimize)(pr); - } -} - -static struct __res_state * -pr_res_get(struct irs_pr *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->res) { - struct __res_state *res; - res = (struct __res_state *)malloc(sizeof *res); - if (!res) { - errno = ENOMEM; - return (NULL); - } - memset(res, 0, sizeof *res); - pr_res_set(this, res, free); - } - - return (pvt->res); -} - -static void -pr_res_set(struct irs_pr *this, struct __res_state *res, - void (*free_res)(void *)) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - - if (pvt->res && pvt->free_res) { - res_nclose(pvt->res); - (*pvt->free_res)(pvt->res); - } - - pvt->res = res; - pvt->free_res = free_res; - - for (rule = pvt->rules; rule != NULL; rule = rule->next) { - struct irs_pr *pr = rule->inst->pr; - - if (pr->res_set) - (*pr->res_set)(pr, pvt->res, NULL); - } -} - -/*! \file */ diff --git a/src/kits/network/libbind/irs/gen_pw.c b/src/kits/network/libbind/irs/gen_pw.c deleted file mode 100644 index 512b011518..0000000000 --- a/src/kits/network/libbind/irs/gen_pw.c +++ /dev/null @@ -1,234 +0,0 @@ -/* - * 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. - */ - -#if !defined(LINT) && !defined(CODECENTER) -static const char rcsid[] = "$Id: gen_pw.c,v 1.3 2005/04/27 04:56:24 sra Exp $"; -#endif - -/* Imports */ - -#include "port_before.h" - -#ifndef WANT_IRS_PW -static int __bind_irs_pw_unneeded; -#else - -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "gen_p.h" - -/* Types */ - -struct pvt { - struct irs_rule * rules; - struct irs_rule * rule; - struct __res_state * res; - void (*free_res)(void *); -}; - -/* Forward */ - -static void pw_close(struct irs_pw *); -static struct passwd * pw_next(struct irs_pw *); -static struct passwd * pw_byname(struct irs_pw *, const char *); -static struct passwd * pw_byuid(struct irs_pw *, uid_t); -static void pw_rewind(struct irs_pw *); -static void pw_minimize(struct irs_pw *); -static struct __res_state * pw_res_get(struct irs_pw *); -static void pw_res_set(struct irs_pw *, - struct __res_state *, - void (*)(void *)); - -/* Public */ - -struct irs_pw * -irs_gen_pw(struct irs_acc *this) { - struct gen_p *accpvt = (struct gen_p *)this->private; - struct irs_pw *pw; - struct pvt *pvt; - - if (!(pw = memget(sizeof *pw))) { - errno = ENOMEM; - return (NULL); - } - memset(pw, 0x5e, sizeof *pw); - if (!(pvt = memget(sizeof *pvt))) { - memput(pw, sizeof *pvt); - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - pvt->rules = accpvt->map_rules[irs_pw]; - pvt->rule = pvt->rules; - pw->private = pvt; - pw->close = pw_close; - pw->next = pw_next; - pw->byname = pw_byname; - pw->byuid = pw_byuid; - pw->rewind = pw_rewind; - pw->minimize = pw_minimize; - pw->res_get = pw_res_get; - pw->res_set = pw_res_set; - return (pw); -} - -/* Methods */ - -static void -pw_close(struct irs_pw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct passwd * -pw_next(struct irs_pw *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct passwd *rval; - struct irs_pw *pw; - - while (pvt->rule) { - pw = pvt->rule->inst->pw; - rval = (*pw->next)(pw); - if (rval) - return (rval); - if (!(pvt->rule->flags & IRS_CONTINUE)) - break; - pvt->rule = pvt->rule->next; - if (pvt->rule) { - pw = pvt->rule->inst->pw; - (*pw->rewind)(pw); - } - } - return (NULL); -} - -static void -pw_rewind(struct irs_pw *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_pw *pw; - - pvt->rule = pvt->rules; - if (pvt->rule) { - pw = pvt->rule->inst->pw; - (*pw->rewind)(pw); - } -} - -static struct passwd * -pw_byname(struct irs_pw *this, const char *name) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - struct passwd *rval; - struct irs_pw *pw; - - rval = NULL; - for (rule = pvt->rules; rule; rule = rule->next) { - pw = rule->inst->pw; - rval = (*pw->byname)(pw, name); - if (rval || !(rule->flags & IRS_CONTINUE)) - break; - } - return (rval); -} - -static struct passwd * -pw_byuid(struct irs_pw *this, uid_t uid) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - struct passwd *rval; - struct irs_pw *pw; - - rval = NULL; - for (rule = pvt->rules; rule; rule = rule->next) { - pw = rule->inst->pw; - rval = (*pw->byuid)(pw, uid); - if (rval || !(rule->flags & IRS_CONTINUE)) - break; - } - return (rval); -} - -static void -pw_minimize(struct irs_pw *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - - for (rule = pvt->rules; rule != NULL; rule = rule->next) { - struct irs_pw *pw = rule->inst->pw; - - (*pw->minimize)(pw); - } -} - -static struct __res_state * -pw_res_get(struct irs_pw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->res) { - struct __res_state *res; - res = (struct __res_state *)malloc(sizeof *res); - if (!res) { - errno = ENOMEM; - return (NULL); - } - memset(res, 0, sizeof *res); - pw_res_set(this, res, free); - } - - return (pvt->res); -} - -static void -pw_res_set(struct irs_pw *this, struct __res_state *res, - void (*free_res)(void *)) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - - if (pvt->res && pvt->free_res) { - res_nclose(pvt->res); - (*pvt->free_res)(pvt->res); - } - - pvt->res = res; - pvt->free_res = free_res; - - for (rule = pvt->rules; rule != NULL; rule = rule->next) { - struct irs_pw *pw = rule->inst->pw; - - if (pw->res_set) - (*pw->res_set)(pw, pvt->res, NULL); - } -} - -#endif /* WANT_IRS_PW */ -/*! \file */ diff --git a/src/kits/network/libbind/irs/gen_sv.c b/src/kits/network/libbind/irs/gen_sv.c deleted file mode 100644 index 4cad166d2f..0000000000 --- a/src/kits/network/libbind/irs/gen_sv.c +++ /dev/null @@ -1,229 +0,0 @@ -/* - * 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. - */ - -#if !defined(LINT) && !defined(CODECENTER) -static const char rcsid[] = "$Id: gen_sv.c,v 1.3 2005/04/27 04:56:24 sra Exp $"; -#endif - -/* Imports */ - -#include "port_before.h" - -#include -#include -#include -#include - -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "gen_p.h" - -/* Types */ - -struct pvt { - struct irs_rule * rules; - struct irs_rule * rule; - struct __res_state * res; - void (*free_res)(void *); -}; - -/* Forward */ - -static void sv_close(struct irs_sv*); -static struct servent * sv_next(struct irs_sv *); -static struct servent * sv_byname(struct irs_sv *, const char *, - const char *); -static struct servent * sv_byport(struct irs_sv *, int, const char *); -static void sv_rewind(struct irs_sv *); -static void sv_minimize(struct irs_sv *); -static struct __res_state * sv_res_get(struct irs_sv *); -static void sv_res_set(struct irs_sv *, - struct __res_state *, - void (*)(void *)); - -/* Public */ - -struct irs_sv * -irs_gen_sv(struct irs_acc *this) { - struct gen_p *accpvt = (struct gen_p *)this->private; - struct irs_sv *sv; - struct pvt *pvt; - - if (!(sv = memget(sizeof *sv))) { - errno = ENOMEM; - return (NULL); - } - memset(sv, 0x5e, sizeof *sv); - if (!(pvt = memget(sizeof *pvt))) { - memput(sv, sizeof *sv); - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - pvt->rules = accpvt->map_rules[irs_sv]; - pvt->rule = pvt->rules; - sv->private = pvt; - sv->close = sv_close; - sv->next = sv_next; - sv->byname = sv_byname; - sv->byport = sv_byport; - sv->rewind = sv_rewind; - sv->minimize = sv_minimize; - sv->res_get = sv_res_get; - sv->res_set = sv_res_set; - return (sv); -} - -/* Methods */ - -static void -sv_close(struct irs_sv *this) { - struct pvt *pvt = (struct pvt *)this->private; - - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct servent * -sv_next(struct irs_sv *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct servent *rval; - struct irs_sv *sv; - - while (pvt->rule) { - sv = pvt->rule->inst->sv; - rval = (*sv->next)(sv); - if (rval) - return (rval); - if (!(pvt->rule->flags & IRS_CONTINUE)) - break; - pvt->rule = pvt->rule->next; - if (pvt->rule) { - sv = pvt->rule->inst->sv; - (*sv->rewind)(sv); - } - } - return (NULL); -} - -static struct servent * -sv_byname(struct irs_sv *this, const char *name, const char *proto) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - struct servent *rval; - struct irs_sv *sv; - - rval = NULL; - for (rule = pvt->rules; rule; rule = rule->next) { - sv = rule->inst->sv; - rval = (*sv->byname)(sv, name, proto); - if (rval || !(rule->flags & IRS_CONTINUE)) - break; - } - return (rval); -} - -static struct servent * -sv_byport(struct irs_sv *this, int port, const char *proto) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - struct servent *rval; - struct irs_sv *sv; - - rval = NULL; - for (rule = pvt->rules; rule; rule = rule->next) { - sv = rule->inst->sv; - rval = (*sv->byport)(sv, port, proto); - if (rval || !(rule->flags & IRS_CONTINUE)) - break; - } - return (rval); -} - -static void -sv_rewind(struct irs_sv *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_sv *sv; - - pvt->rule = pvt->rules; - if (pvt->rule) { - sv = pvt->rule->inst->sv; - (*sv->rewind)(sv); - } -} - -static void -sv_minimize(struct irs_sv *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - - for (rule = pvt->rules; rule != NULL; rule = rule->next) { - struct irs_sv *sv = rule->inst->sv; - - (*sv->minimize)(sv); - } -} - -static struct __res_state * -sv_res_get(struct irs_sv *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->res) { - struct __res_state *res; - res = (struct __res_state *)malloc(sizeof *res); - if (!res) { - errno = ENOMEM; - return (NULL); - } - memset(res, 0, sizeof *res); - sv_res_set(this, res, free); - } - - return (pvt->res); -} - -static void -sv_res_set(struct irs_sv *this, struct __res_state *res, - void (*free_res)(void *)) { - struct pvt *pvt = (struct pvt *)this->private; - struct irs_rule *rule; - - if (pvt->res && pvt->free_res) { - res_nclose(pvt->res); - (*pvt->free_res)(pvt->res); - } - - pvt->res = res; - pvt->free_res = free_res; - - for (rule = pvt->rules; rule != NULL; rule = rule->next) { - struct irs_sv *sv = rule->inst->sv; - - if (sv->res_set) - (*sv->res_set)(sv, pvt->res, NULL); - } -} - -/*! \file */ diff --git a/src/kits/network/libbind/irs/getaddrinfo.c b/src/kits/network/libbind/irs/getaddrinfo.c index b95e6cd21c..b14e3dc5ab 100644 --- a/src/kits/network/libbind/irs/getaddrinfo.c +++ b/src/kits/network/libbind/irs/getaddrinfo.c @@ -1,4 +1,5 @@ -/* $KAME: getaddrinfo.c,v 1.14 2001/01/06 09:41:15 jinmei Exp $ */ +/* $NetBSD: getaddrinfo.c,v 1.105 2013/05/13 17:54:55 christos Exp $ */ +/* $KAME: getaddrinfo.c,v 1.29 2000/08/31 17:26:57 itojun Exp $ */ /* * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. @@ -29,87 +30,73 @@ * SUCH DAMAGE. */ -/*! \file +/* * Issues to be discussed: - *\li Thread safe-ness must be checked. - *\li Return values. There are nonstandard return values defined and used + * - Return values. There are nonstandard return values defined and used * in the source code. This is because RFC2553 is silent about which error * code must be returned for which situation. - *\li IPv4 classful (shortened) form. RFC2553 is silent about it. XNET 5.2 - * says to use inet_aton() to convert IPv4 numeric to binary (allows + * - IPv4 classful (shortened) form. RFC2553 is silent about it. XNET 5.2 + * says to use inet_aton() to convert IPv4 numeric to binary (alows * classful form as a result). * current code - disallow classful form for IPv4 (due to use of inet_pton). - *\li freeaddrinfo(NULL). RFC2553 is silent about it. XNET 5.2 says it is + * - freeaddrinfo(NULL). RFC2553 is silent about it. XNET 5.2 says it is * invalid. * current code - SEGV on freeaddrinfo(NULL) * Note: - *\li We use getipnodebyname() just for thread-safeness. There's no intent - * to let it do PF_UNSPEC (actually we never pass PF_UNSPEC to - * getipnodebyname(). - *\li The code filters out AFs that are not supported by the kernel, + * - The code filters out AFs that are not supported by the kernel, * when globbing NULL hostname (to loopback, or wildcard). Is it the right * thing to do? What is the relationship with post-RFC2553 AI_ADDRCONFIG * in ai_flags? - *\li (post-2553) semantics of AI_ADDRCONFIG itself is too vague. + * - (post-2553) semantics of AI_ADDRCONFIG itself is too vague. * (1) what should we do against numeric hostname (2) what should we do * against NULL hostname (3) what is AI_ADDRCONFIG itself. AF not ready? * non-loopback address configured? global address configured? - * \par Additional Issue: - * To avoid search order issue, we have a big amount of code duplicate - * from gethnamaddr.c and some other places. The issues that there's no - * lower layer function to lookup "IPv4 or IPv6" record. Calling - * gethostbyname2 from getaddrinfo will end up in wrong search order, as - * follows: - * \li The code makes use of following calls when asked to resolver with - * ai_family = PF_UNSPEC: - *\code getipnodebyname(host, AF_INET6); - * getipnodebyname(host, AF_INET); - *\endcode - * \li This will result in the following queries if the node is configure to - * prefer /etc/hosts than DNS: - *\code - * lookup /etc/hosts for IPv6 address - * lookup DNS for IPv6 address - * lookup /etc/hosts for IPv4 address - * lookup DNS for IPv4 address - *\endcode - * which may not meet people's requirement. - * \li The right thing to happen is to have underlying layer which does - * PF_UNSPEC lookup (lookup both) and return chain of addrinfos. - * This would result in a bit of code duplicate with _dns_ghbyname() and - * friends. */ -#include "port_before.h" +#include +#if defined(LIBC_SCCS) && !defined(lint) +__RCSID("$NetBSD: getaddrinfo.c,v 1.105 2013/05/13 17:54:55 christos Exp $"); +#endif /* LIBC_SCCS and not lint */ #include #include #include - #include #include - #include #include - +#include +#include +#include +#include #include #include -#include -#include #include -#include -#include #include -#include +#include +#include +#include +#include #include -#include -#include +#ifdef YP +#include +#include +#include +#endif -#include "port_after.h" +#include -#include "irs_data.h" +#include +#include "nsswitch.h" +#include "servent.h" + +#ifdef __weak_alias +__weak_alias(getaddrinfo,_getaddrinfo) +__weak_alias(freeaddrinfo,_freeaddrinfo) +__weak_alias(gai_strerror,_gai_strerror) +#endif #define SUCCESS 0 #define ANY 0 @@ -117,13 +104,15 @@ #define NO 0 static const char in_addrany[] = { 0, 0, 0, 0 }; +static const char in_loopback[] = { 127, 0, 0, 1 }; +#ifdef INET6 static const char in6_addrany[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -static const char in_loopback[] = { 127, 0, 0, 1 }; static const char in6_loopback[] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1 }; +#endif static const struct afd { int a_af; @@ -134,10 +123,12 @@ static const struct afd { const char *a_loopback; int a_scoped; } afdl [] = { +#ifdef INET6 {PF_INET6, sizeof(struct in6_addr), sizeof(struct sockaddr_in6), offsetof(struct sockaddr_in6, sin6_addr), in6_addrany, in6_loopback, 1}, +#endif {PF_INET, sizeof(struct in_addr), sizeof(struct sockaddr_in), offsetof(struct sockaddr_in, sin_addr), @@ -160,135 +151,179 @@ static const struct explore explore[] = { #if 0 { PF_LOCAL, 0, ANY, ANY, NULL, 0x01 }, #endif +#ifdef INET6 { PF_INET6, SOCK_DGRAM, IPPROTO_UDP, "udp", 0x07 }, { PF_INET6, SOCK_STREAM, IPPROTO_TCP, "tcp", 0x07 }, { PF_INET6, SOCK_RAW, ANY, NULL, 0x05 }, +#endif { PF_INET, SOCK_DGRAM, IPPROTO_UDP, "udp", 0x07 }, { PF_INET, SOCK_STREAM, IPPROTO_TCP, "tcp", 0x07 }, { PF_INET, SOCK_RAW, ANY, NULL, 0x05 }, + { PF_UNSPEC, SOCK_DGRAM, IPPROTO_UDP, "udp", 0x07 }, + { PF_UNSPEC, SOCK_STREAM, IPPROTO_TCP, "tcp", 0x07 }, + { PF_UNSPEC, SOCK_RAW, ANY, NULL, 0x05 }, { -1, 0, 0, NULL, 0 }, }; +#ifdef INET6 #define PTON_MAX 16 - -static int str_isnumber __P((const char *)); -static int explore_fqdn __P((const struct addrinfo *, const char *, - const char *, struct addrinfo **)); -static int explore_copy __P((const struct addrinfo *, const struct addrinfo *, - struct addrinfo **)); -static int explore_null __P((const struct addrinfo *, - const char *, struct addrinfo **)); -static int explore_numeric __P((const struct addrinfo *, const char *, - const char *, struct addrinfo **)); -static int explore_numeric_scope __P((const struct addrinfo *, const char *, - const char *, struct addrinfo **)); -static int get_canonname __P((const struct addrinfo *, - struct addrinfo *, const char *)); -static struct addrinfo *get_ai __P((const struct addrinfo *, - const struct afd *, const char *)); -static struct addrinfo *copy_ai __P((const struct addrinfo *)); -static int get_portmatch __P((const struct addrinfo *, const char *)); -static int get_port __P((const struct addrinfo *, const char *, int)); -static const struct afd *find_afd __P((int)); -static int addrconfig __P((int)); -static int ip6_str2scopeid __P((char *, struct sockaddr_in6 *, - u_int32_t *scopeidp)); -static struct net_data *init __P((void)); - -struct addrinfo *hostent2addrinfo __P((struct hostent *, - const struct addrinfo *)); -struct addrinfo *addr2addrinfo __P((const struct addrinfo *, - const char *)); - -#if 0 -static const char *ai_errlist[] = { - "Success", - "Address family for hostname not supported", /*%< EAI_ADDRFAMILY */ - "Temporary failure in name resolution", /*%< EAI_AGAIN */ - "Invalid value for ai_flags", /*%< EAI_BADFLAGS */ - "Non-recoverable failure in name resolution", /*%< EAI_FAIL */ - "ai_family not supported", /*%< EAI_FAMILY */ - "Memory allocation failure", /*%< EAI_MEMORY */ - "No address associated with hostname", /*%< EAI_NODATA */ - "hostname nor servname provided, or not known", /*%< EAI_NONAME */ - "servname not supported for ai_socktype", /*%< EAI_SERVICE */ - "ai_socktype not supported", /*%< EAI_SOCKTYPE */ - "System error returned in errno", /*%< EAI_SYSTEM */ - "Invalid value for hints", /*%< EAI_BADHINTS */ - "Resolved protocol is unknown", /*%< EAI_PROTOCOL */ - "Unknown error", /*%< EAI_MAX */ -}; +#else +#define PTON_MAX 4 #endif +static const ns_src default_dns_files[] = { + { NSSRC_FILES, NS_SUCCESS }, + { NSSRC_DNS, NS_SUCCESS }, + { 0, 0 } +}; + +#define MAXPACKET (64*1024) + +typedef union { + HEADER hdr; + u_char buf[MAXPACKET]; +} querybuf; + +struct res_target { + struct res_target *next; + const char *name; /* domain name */ + int qclass, qtype; /* class and type of query */ + u_char *answer; /* buffer to put answer */ + int anslen; /* size of answer buffer */ + int n; /* result length */ +}; + +struct srvinfo { + struct srvinfo *next; + char name[MAXDNAME]; + int port, pri, weight; +}; + +static int gai_srvok(const char *); +static int str2number(const char *); +static int explore_fqdn(const struct addrinfo *, const char *, + const char *, struct addrinfo **, struct servent_data *); +static int explore_null(const struct addrinfo *, + const char *, struct addrinfo **, struct servent_data *); +static int explore_numeric(const struct addrinfo *, const char *, + const char *, struct addrinfo **, const char *, struct servent_data *); +static int explore_numeric_scope(const struct addrinfo *, const char *, + const char *, struct addrinfo **, struct servent_data *); +static int get_canonname(const struct addrinfo *, + struct addrinfo *, const char *); +static struct addrinfo *get_ai(const struct addrinfo *, + const struct afd *, const char *); +static int get_portmatch(const struct addrinfo *, const char *, + struct servent_data *); +static int get_port(const struct addrinfo *, const char *, int, + struct servent_data *); +static const struct afd *find_afd(int); +static int addrconfig(uint64_t *); +#ifdef INET6 +static int ip6_str2scopeid(char *, struct sockaddr_in6 *, u_int32_t *); +#endif + +static struct addrinfo *getanswer(const querybuf *, int, const char *, int, + const struct addrinfo *); +static void aisort(struct addrinfo *s, res_state res); +static struct addrinfo * _dns_query(struct res_target *, + const struct addrinfo *, res_state, int); +static struct addrinfo * _dns_srv_lookup(const char *, const char *, + const struct addrinfo *); +static struct addrinfo * _dns_host_lookup(const char *, + const struct addrinfo *); +static int _dns_getaddrinfo(void *, void *, va_list); +static void _sethtent(FILE **); +static void _endhtent(FILE **); +static struct addrinfo *_gethtent(FILE **, const char *, + const struct addrinfo *); +static int _files_getaddrinfo(void *, void *, va_list); +#ifdef YP +static struct addrinfo *_yphostent(char *, const struct addrinfo *); +static int _yp_getaddrinfo(void *, void *, va_list); +#endif + +static int res_queryN(const char *, struct res_target *, res_state); +static int res_searchN(const char *, struct res_target *, res_state); +static int res_querydomainN(const char *, const char *, + struct res_target *, res_state); + +static const char * const ai_errlist[] = { + "Success", + "Address family for hostname not supported", /* EAI_ADDRFAMILY */ + "Temporary failure in name resolution", /* EAI_AGAIN */ + "Invalid value for ai_flags", /* EAI_BADFLAGS */ + "Non-recoverable failure in name resolution", /* EAI_FAIL */ + "ai_family not supported", /* EAI_FAMILY */ + "Memory allocation failure", /* EAI_MEMORY */ + "No address associated with hostname", /* EAI_NODATA */ + "hostname nor servname provided, or not known", /* EAI_NONAME */ + "servname not supported for ai_socktype", /* EAI_SERVICE */ + "ai_socktype not supported", /* EAI_SOCKTYPE */ + "System error returned in errno", /* EAI_SYSTEM */ + "Invalid value for hints", /* EAI_BADHINTS */ + "Resolved protocol is unknown", /* EAI_PROTOCOL */ + "Argument buffer overflow", /* EAI_OVERFLOW */ + "Unknown error", /* EAI_MAX */ +}; + /* XXX macros that make external reference is BAD. */ -#define GET_AI(ai, afd, addr) \ -do { \ - /* external reference: pai, error, and label free */ \ - (ai) = get_ai(pai, (afd), (addr)); \ - if ((ai) == NULL) { \ - error = EAI_MEMORY; \ - goto free; \ - } \ +#define GET_AI(ai, afd, addr) \ +do { \ + /* external reference: pai, error, and label free */ \ + (ai) = get_ai(pai, (afd), (addr)); \ + if ((ai) == NULL) { \ + error = EAI_MEMORY; \ + goto free; \ + } \ } while (/*CONSTCOND*/0) -#define GET_PORT(ai, serv) \ -do { \ - /* external reference: error and label free */ \ - error = get_port((ai), (serv), 0); \ - if (error != 0) \ - goto free; \ +#define GET_PORT(ai, serv, svd) \ +do { \ + /* external reference: error and label free */ \ + error = get_port((ai), (serv), 0, (svd)); \ + if (error != 0) \ + goto free; \ } while (/*CONSTCOND*/0) -#define GET_CANONNAME(ai, str) \ -do { \ - /* external reference: pai, error and label free */ \ - error = get_canonname(pai, (ai), (str)); \ - if (error != 0) \ - goto free; \ +#define GET_CANONNAME(ai, str) \ +do { \ + /* external reference: pai, error and label free */ \ + error = get_canonname(pai, (ai), (str)); \ + if (error != 0) \ + goto free; \ } while (/*CONSTCOND*/0) -#ifndef SOLARIS2 -#define SETERROR(err) \ -do { \ - /* external reference: error, and label bad */ \ - error = (err); \ - goto bad; \ - /*NOTREACHED*/ \ +#define ERR(err) \ +do { \ + /* external reference: error, and label bad */ \ + error = (err); \ + goto bad; \ + /*NOTREACHED*/ \ } while (/*CONSTCOND*/0) -#else -#define SETERROR(err) \ -do { \ - /* external reference: error, and label bad */ \ - error = (err); \ - if (error == error) \ - goto bad; \ -} while (/*CONSTCOND*/0) -#endif - -#define MATCH_FAMILY(x, y, w) \ - ((x) == (y) || (/*CONSTCOND*/(w) && ((x) == PF_UNSPEC || (y) == PF_UNSPEC))) -#define MATCH(x, y, w) \ +#define MATCH_FAMILY(x, y, w) \ + ((x) == (y) || (/*CONSTCOND*/(w) && ((x) == PF_UNSPEC || \ + (y) == PF_UNSPEC))) +#define MATCH(x, y, w) \ ((x) == (y) || (/*CONSTCOND*/(w) && ((x) == ANY || (y) == ANY))) -#if 0 /*%< bind8 has its own version */ -char * -gai_strerror(ecode) - int ecode; +const char * +gai_strerror(int ecode) { if (ecode < 0 || ecode > EAI_MAX) ecode = EAI_MAX; return ai_errlist[ecode]; } -#endif void -freeaddrinfo(ai) - struct addrinfo *ai; +freeaddrinfo(struct addrinfo *ai) { struct addrinfo *next; + assert(ai != NULL); + do { next = ai->ai_next; if (ai->ai_canonname) @@ -299,53 +334,105 @@ freeaddrinfo(ai) } while (ai); } +/* + * We don't want localization to affect us + */ +#define PERIOD '.' +#define hyphenchar(c) ((c) == '-') +#define periodchar(c) ((c) == PERIOD) +#define underschar(c) ((c) == '_') +#define alphachar(c) (((c) >= 'a' && (c) <= 'z') || ((c) >= 'A' && (c) <= 'Z')) +#define digitchar(c) ((c) >= '0' && (c) <= '9') + +#define firstchar(c) (alphachar(c) || digitchar(c) || underschar(c)) +#define lastchar(c) (alphachar(c) || digitchar(c)) +#define middlechar(c) (lastchar(c) || hyphenchar(c)) + static int -str_isnumber(p) - const char *p; +gai_srvok(const char *dn) +{ + int nch, pch, ch; + + for (pch = PERIOD, nch = ch = *dn++; ch != '\0'; pch = ch, ch = nch) { + if (periodchar(ch)) + continue; + if (periodchar(pch)) { + if (!firstchar(ch)) + return 0; + } else if (periodchar(nch) || nch == '\0') { + if (!lastchar(ch)) + return 0; + } else if (!middlechar(ch)) + return 0; + } + return 1; +} + +static in_port_t * +getport(struct addrinfo *ai) { + static in_port_t p; + + switch (ai->ai_family) { + case AF_INET: + return &((struct sockaddr_in *)(void *)ai->ai_addr)->sin_port; +#ifdef INET6 + case AF_INET6: + return &((struct sockaddr_in6 *)(void *)ai->ai_addr)->sin6_port; +#endif + default: + p = 0; + /* XXX: abort()? */ + return &p; + } +} + +static int +str2number(const char* p) { char *ep; + unsigned long v; + + assert(p != NULL); if (*p == '\0') - return NO; + return -1; ep = NULL; errno = 0; - (void)strtoul(p, &ep, 10); - if (errno == 0 && ep && *ep == '\0') - return YES; + v = strtoul(p, &ep, 10); + if (errno == 0 && ep && *ep == '\0' && v <= INT_MAX) + return (int)v; else - return NO; + return -1; } int -getaddrinfo(hostname, servname, hints, res) - const char *hostname, *servname; - const struct addrinfo *hints; - struct addrinfo **res; +getaddrinfo(const char *hostname, const char *servname, + const struct addrinfo *hints, struct addrinfo **res) { struct addrinfo sentinel; struct addrinfo *cur; int error = 0; - struct addrinfo ai, ai0, *afai = NULL; + struct addrinfo ai; + struct addrinfo ai0; struct addrinfo *pai; const struct explore *ex; - struct net_data *net_data; + struct servent_data svd; + uint64_t mask = (uint64_t)~0ULL; + /* hostname is allowed to be NULL */ + /* servname is allowed to be NULL */ + /* hints is allowed to be NULL */ + assert(res != NULL); + + (void)memset(&svd, 0, sizeof(svd)); memset(&sentinel, 0, sizeof(sentinel)); cur = &sentinel; + memset(&ai, 0, sizeof(ai)); pai = &ai; pai->ai_flags = 0; pai->ai_family = PF_UNSPEC; pai->ai_socktype = ANY; pai->ai_protocol = ANY; -#if defined(sun) && defined(_SOCKLEN_T) && defined(__sparcv9) - /* - * clear _ai_pad to preserve binary - * compatibility with previously compiled 64-bit - * applications in a pre-SUSv3 environment by - * guaranteeing the upper 32-bits are empty. - */ - pai->_ai_pad = 0; -#endif pai->ai_addrlen = 0; pai->ai_canonname = NULL; pai->ai_addr = NULL; @@ -357,26 +444,21 @@ getaddrinfo(hostname, servname, hints, res) /* error check for hints */ if (hints->ai_addrlen || hints->ai_canonname || hints->ai_addr || hints->ai_next) - SETERROR(EAI_BADHINTS); /*%< xxx */ + ERR(EAI_BADHINTS); /* xxx */ if (hints->ai_flags & ~AI_MASK) - SETERROR(EAI_BADFLAGS); + ERR(EAI_BADFLAGS); switch (hints->ai_family) { case PF_UNSPEC: case PF_INET: +#ifdef INET6 case PF_INET6: +#endif break; default: - SETERROR(EAI_FAMILY); + ERR(EAI_FAMILY); } memcpy(pai, hints, sizeof(*pai)); -#if defined(sun) && defined(_SOCKLEN_T) && defined(__sparcv9) - /* - * We need to clear _ai_pad to preserve binary - * compatibility. See prior comment. - */ - pai->_ai_pad = 0; -#endif /* * if both socktype/protocol are specified, check if they * are meaningful combination. @@ -389,34 +471,16 @@ getaddrinfo(hostname, servname, hints, res) continue; if (ex->e_protocol == ANY) continue; - if (pai->ai_socktype == ex->e_socktype && - pai->ai_protocol != ex->e_protocol) { - SETERROR(EAI_BADHINTS); + if (pai->ai_socktype == ex->e_socktype + && pai->ai_protocol != ex->e_protocol) { + ERR(EAI_BADHINTS); } } } } - /* - * post-2553: AI_ALL and AI_V4MAPPED are effective only against - * AF_INET6 query. They needs to be ignored if specified in other - * occassions. - */ - switch (pai->ai_flags & (AI_ALL | AI_V4MAPPED)) { - case AI_V4MAPPED: - case AI_ALL | AI_V4MAPPED: - if (pai->ai_family != AF_INET6) - pai->ai_flags &= ~(AI_ALL | AI_V4MAPPED); - break; - case AI_ALL: -#if 1 - /* illegal */ - SETERROR(EAI_BADFLAGS); -#else - pai->ai_flags &= ~(AI_ALL | AI_V4MAPPED); - break; -#endif - } + if ((pai->ai_flags & AI_ADDRCONFIG) != 0 && addrconfig(&mask) == -1) + ERR(EAI_FAIL); /* * check for special cases. (1) numeric servname is disallowed if @@ -437,9 +501,9 @@ getaddrinfo(hostname, servname, hints, res) pai->ai_family = PF_INET; #endif } - error = get_portmatch(pai, servname); + error = get_portmatch(pai, servname, &svd); if (error) - SETERROR(error); + goto bad; *pai = ai0; } @@ -450,13 +514,20 @@ getaddrinfo(hostname, servname, hints, res) for (ex = explore; ex->e_af >= 0; ex++) { *pai = ai0; + /* ADDRCONFIG check */ + if ((((uint64_t)1 << ex->e_af) & mask) == 0) + continue; + + /* PF_UNSPEC entries are prepared for DNS queries only */ + if (ex->e_af == PF_UNSPEC) + continue; + if (!MATCH_FAMILY(pai->ai_family, ex->e_af, WILD_AF(ex))) continue; if (!MATCH(pai->ai_socktype, ex->e_socktype, WILD_SOCKTYPE(ex))) continue; if (!MATCH(pai->ai_protocol, ex->e_protocol, WILD_PROTOCOL(ex))) continue; - if (pai->ai_family == PF_UNSPEC) pai->ai_family = ex->e_af; if (pai->ai_socktype == ANY && ex->e_socktype != ANY) @@ -464,228 +535,152 @@ getaddrinfo(hostname, servname, hints, res) if (pai->ai_protocol == ANY && ex->e_protocol != ANY) pai->ai_protocol = ex->e_protocol; - /* - * if the servname does not match socktype/protocol, ignore it. - */ - if (get_portmatch(pai, servname) != 0) - continue; - - if (hostname == NULL) { - /* - * filter out AFs that are not supported by the kernel - * XXX errno? - */ - if (!addrconfig(pai->ai_family)) - continue; - error = explore_null(pai, servname, &cur->ai_next); - } else + if (hostname == NULL) + error = explore_null(pai, servname, &cur->ai_next, + &svd); + else error = explore_numeric_scope(pai, hostname, servname, - &cur->ai_next); + &cur->ai_next, &svd); if (error) goto free; - while (cur && cur->ai_next) + while (cur->ai_next) cur = cur->ai_next; } /* * XXX - * If numreic representation of AF1 can be interpreted as FQDN + * If numeric representation of AF1 can be interpreted as FQDN * representation of AF2, we need to think again about the code below. */ if (sentinel.ai_next) goto good; - if (pai->ai_flags & AI_NUMERICHOST) - SETERROR(EAI_NONAME); if (hostname == NULL) - SETERROR(EAI_NONAME); - - /* init after numeric lookups to avoid recursion in resolv.conf */ - net_data = init(); - if ((net_data->res->options & RES_USE_INET4) && ai0.ai_family == PF_UNSPEC) - ai0.ai_family = PF_INET; + ERR(EAI_NODATA); + if (pai->ai_flags & AI_NUMERICHOST) + ERR(EAI_NONAME); /* * hostname as alphabetical name. - * We'll make sure that - * - if returning addrinfo list is empty, return non-zero error - * value (already known one or EAI_NONAME). - * - otherwise, - * + if we haven't had any errors, return 0 (i.e. success). - * + if we've had an error, free the list and return the error. - * without any assumption on the behavior of explore_fqdn(). - */ - - /* first, try to query DNS for all possible address families. */ - *pai = ai0; - error = explore_fqdn(pai, hostname, servname, &afai); - if (error) { - if (afai != NULL) - freeaddrinfo(afai); - goto free; - } - if (afai == NULL) { - error = EAI_NONAME; /*%< we've had no errors. */ - goto free; - } - - /* * we would like to prefer AF_INET6 than AF_INET, so we'll make an * outer loop by AFs. */ for (ex = explore; ex->e_af >= 0; ex++) { *pai = ai0; - if (pai->ai_family == PF_UNSPEC) - pai->ai_family = ex->e_af; - if (!MATCH_FAMILY(pai->ai_family, ex->e_af, WILD_AF(ex))) + /* ADDRCONFIG check */ + /* PF_UNSPEC entries are prepared for DNS queries only */ + if (ex->e_af != PF_UNSPEC && + (((uint64_t)1 << ex->e_af) & mask) == 0) + continue; + + /* require exact match for family field */ + if (pai->ai_family != ex->e_af) continue; if (!MATCH(pai->ai_socktype, ex->e_socktype, - WILD_SOCKTYPE(ex))) { + WILD_SOCKTYPE(ex))) { continue; } if (!MATCH(pai->ai_protocol, ex->e_protocol, - WILD_PROTOCOL(ex))) { + WILD_PROTOCOL(ex))) { continue; } -#ifdef AI_ADDRCONFIG - /* - * If AI_ADDRCONFIG is specified, check if we are - * expected to return the address family or not. - */ - if ((pai->ai_flags & AI_ADDRCONFIG) != 0 && - !addrconfig(pai->ai_family)) - continue; -#endif - - if (pai->ai_family == PF_UNSPEC) - pai->ai_family = ex->e_af; if (pai->ai_socktype == ANY && ex->e_socktype != ANY) pai->ai_socktype = ex->e_socktype; if (pai->ai_protocol == ANY && ex->e_protocol != ANY) pai->ai_protocol = ex->e_protocol; - /* - * if the servname does not match socktype/protocol, ignore it. - */ - if (get_portmatch(pai, servname) != 0) - continue; - - if ((error = explore_copy(pai, afai, &cur->ai_next)) != 0) { - freeaddrinfo(afai); - goto free; - } + error = explore_fqdn(pai, hostname, servname, &cur->ai_next, + &svd); while (cur && cur->ai_next) cur = cur->ai_next; } - freeaddrinfo(afai); /*%< afai must not be NULL at this point. */ + /* XXX */ + if (sentinel.ai_next) + error = 0; + + if (error) + goto free; if (sentinel.ai_next) { -good: + good: + endservent_r(&svd); *res = sentinel.ai_next; - return(SUCCESS); - } else { - /* - * All the process succeeded, but we've had an empty list. - * This can happen if the given hints do not match our - * candidates. - */ - error = EAI_NONAME; - } - -free: -bad: + return SUCCESS; + } else + error = EAI_FAIL; + free: + bad: + endservent_r(&svd); if (sentinel.ai_next) freeaddrinfo(sentinel.ai_next); *res = NULL; - return(error); + return error; } -/*% +/* * FQDN hostname, DNS lookup */ static int -explore_fqdn(pai, hostname, servname, res) - const struct addrinfo *pai; - const char *hostname; - const char *servname; - struct addrinfo **res; +explore_fqdn(const struct addrinfo *pai, const char *hostname, + const char *servname, struct addrinfo **res, struct servent_data *svd) { struct addrinfo *result; struct addrinfo *cur; - struct net_data *net_data = init(); - struct irs_ho *ho; int error = 0; - char tmp[NS_MAXDNAME]; - const char *cp; + static const ns_dtab dtab[] = { + NS_FILES_CB(_files_getaddrinfo, NULL) + { NSSRC_DNS, _dns_getaddrinfo, NULL }, /* force -DHESIOD */ + NS_NIS_CB(_yp_getaddrinfo, NULL) + { 0, 0, 0 } + }; + + assert(pai != NULL); + /* hostname may be NULL */ + /* servname may be NULL */ + assert(res != NULL); + + result = NULL; - INSIST(res != NULL && *res == NULL); /* * if the servname does not match socktype/protocol, ignore it. */ - if (get_portmatch(pai, servname) != 0) - return(0); + if (get_portmatch(pai, servname, svd) != 0) + return 0; - if (!net_data || !(ho = net_data->ho)) - return(0); -#if 0 /*%< XXX (notyet) */ - if (net_data->ho_stayopen && net_data->ho_last && - net_data->ho_last->h_addrtype == af) { - if (ns_samename(name, net_data->ho_last->h_name) == 1) - return (net_data->ho_last); - for (hap = net_data->ho_last->h_aliases; hap && *hap; hap++) - if (ns_samename(name, *hap) == 1) - return (net_data->ho_last); - } -#endif - if (!strchr(hostname, '.') && - (cp = res_hostalias(net_data->res, hostname, - tmp, sizeof(tmp)))) - hostname = cp; - result = (*ho->addrinfo)(ho, hostname, pai); - if (!net_data->ho_stayopen) { - (*ho->minimize)(ho); - } - if (result == NULL) { - int e = h_errno; - - switch(e) { - case NETDB_INTERNAL: - error = EAI_SYSTEM; - break; - case TRY_AGAIN: - error = EAI_AGAIN; - break; - case NO_RECOVERY: - error = EAI_FAIL; - break; - case HOST_NOT_FOUND: - case NO_DATA: - error = EAI_NONAME; - break; - default: - case NETDB_SUCCESS: /*%< should be impossible... */ - error = EAI_NONAME; - break; - } + switch (nsdispatch(&result, dtab, NSDB_HOSTS, "getaddrinfo", + default_dns_files, hostname, pai, servname)) { + case NS_TRYAGAIN: + error = EAI_AGAIN; goto free; - } - - for (cur = result; cur; cur = cur->ai_next) { - GET_PORT(cur, servname); /*%< XXX: redundant lookups... */ - /* canonname should already be filled. */ + case NS_UNAVAIL: + error = EAI_FAIL; + goto free; + case NS_NOTFOUND: + error = EAI_NODATA; + goto free; + case NS_SUCCESS: + error = 0; + for (cur = result; cur; cur = cur->ai_next) { + /* Check for already filled port. */ + if (*getport(cur)) + continue; + GET_PORT(cur, servname, svd); + /* canonname should be filled already */ + } + break; } *res = result; - return(0); + return 0; free: if (result) @@ -693,63 +688,46 @@ free: return error; } -static int -explore_copy(pai, src0, res) - const struct addrinfo *pai; /*%< seed */ - const struct addrinfo *src0; /*%< source */ - struct addrinfo **res; -{ - int error; - struct addrinfo sentinel, *cur; - const struct addrinfo *src; - - error = 0; - sentinel.ai_next = NULL; - cur = &sentinel; - - for (src = src0; src != NULL; src = src->ai_next) { - if (src->ai_family != pai->ai_family) - continue; - - cur->ai_next = copy_ai(src); - if (!cur->ai_next) { - error = EAI_MEMORY; - goto fail; - } - - cur->ai_next->ai_socktype = pai->ai_socktype; - cur->ai_next->ai_protocol = pai->ai_protocol; - cur = cur->ai_next; - } - - *res = sentinel.ai_next; - return 0; - -fail: - freeaddrinfo(sentinel.ai_next); - return error; -} - -/*% +/* * hostname == NULL. * passive socket -> anyaddr (0.0.0.0 or ::) * non-passive socket -> localhost (127.0.0.1 or ::1) */ static int -explore_null(pai, servname, res) - const struct addrinfo *pai; - const char *servname; - struct addrinfo **res; +explore_null(const struct addrinfo *pai, const char *servname, + struct addrinfo **res, struct servent_data *svd) { + int s; const struct afd *afd; struct addrinfo *cur; struct addrinfo sentinel; int error; + assert(pai != NULL); + /* servname may be NULL */ + assert(res != NULL); + *res = NULL; sentinel.ai_next = NULL; cur = &sentinel; + /* + * filter out AFs that are not supported by the kernel + * XXX errno? + */ + s = socket(pai->ai_family, SOCK_DGRAM, 0); + if (s < 0) { + if (errno != EMFILE) + return 0; + } else + close(s); + + /* + * if the servname does not match socktype/protocol, ignore it. + */ + if (get_portmatch(pai, servname, svd) != 0) + return 0; + afd = find_afd(pai->ai_family); if (afd == NULL) return 0; @@ -759,13 +737,13 @@ explore_null(pai, servname, res) /* xxx meaningless? * GET_CANONNAME(cur->ai_next, "anyaddr"); */ - GET_PORT(cur->ai_next, servname); + GET_PORT(cur->ai_next, servname, svd); } else { GET_AI(cur->ai_next, afd, afd->a_loopback); /* xxx meaningless? * GET_CANONNAME(cur->ai_next, "localhost"); */ - GET_PORT(cur->ai_next, servname); + GET_PORT(cur->ai_next, servname, svd); } cur = cur->ai_next; @@ -778,15 +756,13 @@ free: return error; } -/*% +/* * numeric hostname */ static int -explore_numeric(pai, hostname, servname, res) - const struct addrinfo *pai; - const char *hostname; - const char *servname; - struct addrinfo **res; +explore_numeric(const struct addrinfo *pai, const char *hostname, + const char *servname, struct addrinfo **res, const char *canonname, + struct servent_data *svd) { const struct afd *afd; struct addrinfo *cur; @@ -794,10 +770,21 @@ explore_numeric(pai, hostname, servname, res) int error; char pton[PTON_MAX]; + assert(pai != NULL); + /* hostname may be NULL */ + /* servname may be NULL */ + assert(res != NULL); + *res = NULL; sentinel.ai_next = NULL; cur = &sentinel; + /* + * if the servname does not match socktype/protocol, ignore it. + */ + if (get_portmatch(pai, servname, svd) != 0) + return 0; + afd = find_afd(pai->ai_family); if (afd == NULL) return 0; @@ -809,11 +796,19 @@ explore_numeric(pai, hostname, servname, res) if (pai->ai_family == afd->a_af || pai->ai_family == PF_UNSPEC /*?*/) { GET_AI(cur->ai_next, afd, pton); - GET_PORT(cur->ai_next, servname); - while (cur->ai_next) + GET_PORT(cur->ai_next, servname, svd); + if ((pai->ai_flags & AI_CANONNAME)) { + /* + * Set the numeric address itself as + * the canonical name, based on a + * clarification in rfc2553bis-03. + */ + GET_CANONNAME(cur->ai_next, canonname); + } + while (cur && cur->ai_next) cur = cur->ai_next; } else - SETERROR(EAI_FAMILY); /*xxx*/ + ERR(EAI_FAMILY); /*xxx*/ } break; #endif @@ -822,11 +817,19 @@ explore_numeric(pai, hostname, servname, res) if (pai->ai_family == afd->a_af || pai->ai_family == PF_UNSPEC /*?*/) { GET_AI(cur->ai_next, afd, pton); - GET_PORT(cur->ai_next, servname); + GET_PORT(cur->ai_next, servname, svd); + if ((pai->ai_flags & AI_CANONNAME)) { + /* + * Set the numeric address itself as + * the canonical name, based on a + * clarification in rfc2553bis-03. + */ + GET_CANONNAME(cur->ai_next, canonname); + } while (cur->ai_next) cur = cur->ai_next; } else - SETERROR(EAI_FAMILY); /*xxx*/ + ERR(EAI_FAMILY); /*xxx*/ } break; } @@ -841,18 +844,15 @@ bad: return error; } -/*% +/* * numeric hostname with scope */ static int -explore_numeric_scope(pai, hostname, servname, res) - const struct addrinfo *pai; - const char *hostname; - const char *servname; - struct addrinfo **res; +explore_numeric_scope(const struct addrinfo *pai, const char *hostname, + const char *servname, struct addrinfo **res, struct servent_data *svd) { -#ifndef SCOPE_DELIMITER - return explore_numeric(pai, hostname, servname, res); +#if !defined(SCOPE_DELIMITER) || !defined(INET6) + return explore_numeric(pai, hostname, servname, res, hostname, svd); #else const struct afd *afd; struct addrinfo *cur; @@ -860,16 +860,29 @@ explore_numeric_scope(pai, hostname, servname, res) char *cp, *hostname2 = NULL, *scope, *addr; struct sockaddr_in6 *sin6; + assert(pai != NULL); + /* hostname may be NULL */ + /* servname may be NULL */ + assert(res != NULL); + + /* + * if the servname does not match socktype/protocol, ignore it. + */ + if (get_portmatch(pai, servname, svd) != 0) + return 0; + afd = find_afd(pai->ai_family); if (afd == NULL) return 0; if (!afd->a_scoped) - return explore_numeric(pai, hostname, servname, res); + return explore_numeric(pai, hostname, servname, res, hostname, + svd); cp = strchr(hostname, SCOPE_DELIMITER); if (cp == NULL) - return explore_numeric(pai, hostname, servname, res); + return explore_numeric(pai, hostname, servname, res, hostname, + svd); /* * Handle special case of @@ -882,21 +895,19 @@ explore_numeric_scope(pai, hostname, servname, res) addr = hostname2; scope = cp + 1; - error = explore_numeric(pai, addr, servname, res); + error = explore_numeric(pai, addr, servname, res, hostname, svd); if (error == 0) { - u_int32_t scopeid = 0; + u_int32_t scopeid; for (cur = *res; cur; cur = cur->ai_next) { if (cur->ai_family != AF_INET6) continue; sin6 = (struct sockaddr_in6 *)(void *)cur->ai_addr; - if (!ip6_str2scopeid(scope, sin6, &scopeid)) { + if (ip6_str2scopeid(scope, sin6, &scopeid) == -1) { free(hostname2); - return(EAI_NONAME); /*%< XXX: is return OK? */ + return(EAI_NODATA); /* XXX: is return OK? */ } -#ifdef HAVE_SIN6_SCOPE_ID sin6->sin6_scope_id = scopeid; -#endif } } @@ -907,95 +918,87 @@ explore_numeric_scope(pai, hostname, servname, res) } static int -get_canonname(pai, ai, str) - const struct addrinfo *pai; - struct addrinfo *ai; - const char *str; +get_canonname(const struct addrinfo *pai, struct addrinfo *ai, const char *str) { + + assert(pai != NULL); + assert(ai != NULL); + assert(str != NULL); + if ((pai->ai_flags & AI_CANONNAME) != 0) { - ai->ai_canonname = (char *)malloc(strlen(str) + 1); + ai->ai_canonname = strdup(str); if (ai->ai_canonname == NULL) return EAI_MEMORY; - strcpy(ai->ai_canonname, str); } return 0; } +struct addrinfo * +allocaddrinfo(socklen_t addrlen) +{ + struct addrinfo *ai; + + ai = calloc(sizeof(struct addrinfo) + addrlen, 1); + if (ai) { + ai->ai_addr = (void *)(ai+1); + ai->ai_addrlen = ai->ai_addr->sa_len = addrlen; + } + + return ai; +} + static struct addrinfo * -get_ai(pai, afd, addr) - const struct addrinfo *pai; - const struct afd *afd; - const char *addr; +get_ai(const struct addrinfo *pai, const struct afd *afd, const char *addr) { char *p; struct addrinfo *ai; + struct sockaddr *save; - ai = (struct addrinfo *)malloc(sizeof(struct addrinfo) - + (afd->a_socklen)); + assert(pai != NULL); + assert(afd != NULL); + assert(addr != NULL); + + ai = allocaddrinfo((socklen_t)afd->a_socklen); if (ai == NULL) return NULL; + save = ai->ai_addr; memcpy(ai, pai, sizeof(struct addrinfo)); - ai->ai_addr = (struct sockaddr *)(void *)(ai + 1); - memset(ai->ai_addr, 0, (size_t)afd->a_socklen); -#ifdef HAVE_SA_LEN - ai->ai_addr->sa_len = afd->a_socklen; -#endif - ai->ai_addrlen = afd->a_socklen; + + /* since we just overwrote all of ai, we have + to restore ai_addr and ai_addrlen */ + ai->ai_addr = save; + ai->ai_addrlen = (socklen_t)afd->a_socklen; + ai->ai_addr->sa_family = ai->ai_family = afd->a_af; p = (char *)(void *)(ai->ai_addr); memcpy(p + afd->a_off, addr, (size_t)afd->a_addrlen); return ai; } -/* XXX need to malloc() the same way we do from other functions! */ -static struct addrinfo * -copy_ai(pai) - const struct addrinfo *pai; +static int +get_portmatch(const struct addrinfo *ai, const char *servname, + struct servent_data *svd) { - struct addrinfo *ai; - size_t l; - l = sizeof(*ai) + pai->ai_addrlen; - if ((ai = (struct addrinfo *)malloc(l)) == NULL) - return NULL; - memset(ai, 0, l); - memcpy(ai, pai, sizeof(*ai)); - ai->ai_addr = (struct sockaddr *)(void *)(ai + 1); - memcpy(ai->ai_addr, pai->ai_addr, pai->ai_addrlen); + assert(ai != NULL); + /* servname may be NULL */ - if (pai->ai_canonname) { - l = strlen(pai->ai_canonname) + 1; - if ((ai->ai_canonname = malloc(l)) == NULL) { - free(ai); - return NULL; - } - strcpy(ai->ai_canonname, pai->ai_canonname); /* (checked) */ - } else { - /* just to make sure */ - ai->ai_canonname = NULL; - } - - ai->ai_next = NULL; - - return ai; + return get_port(ai, servname, 1, svd); } static int -get_portmatch(const struct addrinfo *ai, const char *servname) { - - /* get_port does not touch first argument. when matchonly == 1. */ - /* LINTED const cast */ - return get_port((const struct addrinfo *)ai, servname, 1); -} - -static int -get_port(const struct addrinfo *ai, const char *servname, int matchonly) { +get_port(const struct addrinfo *ai, const char *servname, int matchonly, + struct servent_data *svd) +{ const char *proto; struct servent *sp; int port; int allownumeric; + assert(ai != NULL); + /* servname may be NULL */ + if (servname == NULL) return 0; switch (ai->ai_family) { @@ -1016,30 +1019,29 @@ get_port(const struct addrinfo *ai, const char *servname, int matchonly) { allownumeric = 1; break; case ANY: - switch (ai->ai_family) { - case AF_INET: -#ifdef AF_INET6 - case AF_INET6: -#endif - allownumeric = 1; - break; - default: - allownumeric = 0; - break; - } + /* + * This was 0. It is now 1 so that queries specifying + * a NULL hint, or hint without socktype (but, hopefully, + * with protocol) and numeric address actually work. + */ + allownumeric = 1; break; default: return EAI_SOCKTYPE; } - if (str_isnumber(servname)) { + port = str2number(servname); + if (port >= 0) { if (!allownumeric) return EAI_SERVICE; - port = atoi(servname); if (port < 0 || port > 65535) return EAI_SERVICE; port = htons(port); } else { + struct servent sv; + if (ai->ai_flags & AI_NUMERICSERV) + return EAI_NONAME; + switch (ai->ai_socktype) { case SOCK_DGRAM: proto = "udp"; @@ -1052,30 +1054,19 @@ get_port(const struct addrinfo *ai, const char *servname, int matchonly) { break; } - if ((sp = getservbyname(servname, proto)) == NULL) + sp = getservbyname_r(servname, proto, &sv, svd); + if (sp == NULL) return EAI_SERVICE; port = sp->s_port; } - if (!matchonly) { - switch (ai->ai_family) { - case AF_INET: - ((struct sockaddr_in *)(void *) - ai->ai_addr)->sin_port = port; - break; - case AF_INET6: - ((struct sockaddr_in6 *)(void *) - ai->ai_addr)->sin6_port = port; - break; - } - } - + if (!matchonly) + *getport(__DECONST(struct addrinfo*, ai)) = port; return 0; } static const struct afd * -find_afd(af) - int af; +find_afd(int af) { const struct afd *afd; @@ -1088,57 +1079,60 @@ find_afd(af) return NULL; } -/*% - * post-2553: AI_ADDRCONFIG check. if we use getipnodeby* as backend, backend - * will take care of it. - * the semantics of AI_ADDRCONFIG is not defined well. we are not sure - * if the code is right or not. +/* + * AI_ADDRCONFIG check: Build a mask containing a bit set for each address + * family configured in the system. + * */ static int -addrconfig(af) - int af; +addrconfig(uint64_t *mask) { - int s; + struct ifaddrs *ifaddrs, *ifa; - /* XXX errno */ - s = socket(af, SOCK_DGRAM, 0); - if (s < 0) { - if (errno != EMFILE) - return 0; - } else - close(s); - return 1; + if (getifaddrs(&ifaddrs) == -1) + return -1; + + *mask = 0; + for (ifa = ifaddrs; ifa != NULL; ifa = ifa->ifa_next) + if (ifa->ifa_addr && (ifa->ifa_flags & IFF_UP)) { + assert(ifa->ifa_addr->sa_family < 64); + *mask |= (uint64_t)1 << ifa->ifa_addr->sa_family; + } + + freeifaddrs(ifaddrs); + return 0; } +#ifdef INET6 /* convert a string to a scope identifier. XXX: IPv6 specific */ static int -ip6_str2scopeid(char *scope, struct sockaddr_in6 *sin6, - u_int32_t *scopeidp) +ip6_str2scopeid(char *scope, struct sockaddr_in6 *sin6, u_int32_t *scopeid) { - u_int32_t scopeid; u_long lscopeid; - struct in6_addr *a6 = &sin6->sin6_addr; + struct in6_addr *a6; char *ep; - + + assert(scope != NULL); + assert(sin6 != NULL); + assert(scopeid != NULL); + + a6 = &sin6->sin6_addr; + /* empty scopeid portion is invalid */ if (*scope == '\0') - return (0); + return -1; -#ifdef USE_IFNAMELINKID - if (IN6_IS_ADDR_LINKLOCAL(a6) || IN6_IS_ADDR_MC_LINKLOCAL(a6) || - IN6_IS_ADDR_MC_NODELOCAL(a6)) { + if (IN6_IS_ADDR_LINKLOCAL(a6) || IN6_IS_ADDR_MC_LINKLOCAL(a6)) { /* - * Using interface names as link indices can be allowed - * only when we can assume a one-to-one mappings between - * links and interfaces. See comments in getnameinfo.c. + * We currently assume a one-to-one mapping between links + * and interfaces, so we simply use interface indices for + * like-local scopes. */ - scopeid = if_nametoindex(scope); - if (scopeid == 0) + *scopeid = if_nametoindex(scope); + if (*scopeid == 0) goto trynumeric; - *scopeidp = scopeid; - return (1); + return 0; } -#endif /* still unclear about literal, allow numeric only - placeholder */ if (IN6_IS_ADDR_SITELOCAL(a6) || IN6_IS_ADDR_MC_SITELOCAL(a6)) @@ -1146,114 +1140,1195 @@ ip6_str2scopeid(char *scope, struct sockaddr_in6 *sin6, if (IN6_IS_ADDR_MC_ORGLOCAL(a6)) goto trynumeric; else - goto trynumeric; /*%< global */ + goto trynumeric; /* global */ + /* try to convert to a numeric id as a last resort */ -trynumeric: + trynumeric: errno = 0; lscopeid = strtoul(scope, &ep, 10); - scopeid = lscopeid & 0xffffffff; - if (errno == 0 && ep && *ep == '\0' && scopeid == lscopeid) { - *scopeidp = scopeid; - return (1); - } else - return (0); + *scopeid = (u_int32_t)(lscopeid & 0xffffffffUL); + if (errno == 0 && ep && *ep == '\0' && *scopeid == lscopeid) + return 0; + else + return -1; } +#endif -struct addrinfo * -hostent2addrinfo(hp, pai) - struct hostent *hp; - const struct addrinfo *pai; +/* code duplicate with gethnamaddr.c */ + +static const char AskedForGot[] = + "gethostby*.getanswer: asked for \"%s\", got \"%s\""; + +static struct addrinfo * +getanswer(const querybuf *answer, int anslen, const char *qname, int qtype, + const struct addrinfo *pai) { - int i, af, error = 0; - char **aplist = NULL, *ap; struct addrinfo sentinel, *cur; + struct addrinfo ai, *aip; const struct afd *afd; + char *canonname; + const HEADER *hp; + const u_char *cp; + int n; + const u_char *eom; + char *bp, *ep; + int type, class, ancount, qdcount; + int haveanswer, had_error; + char tbuf[MAXDNAME]; + int (*name_ok) (const char *); + char hostbuf[8*1024]; + int port, pri, weight; + struct srvinfo *srvlist, *srv, *csrv; - af = hp->h_addrtype; - if (pai->ai_family != AF_UNSPEC && af != pai->ai_family) - return(NULL); - - afd = find_afd(af); - if (afd == NULL) - return(NULL); - - aplist = hp->h_addr_list; + assert(answer != NULL); + assert(qname != NULL); + assert(pai != NULL); memset(&sentinel, 0, sizeof(sentinel)); cur = &sentinel; - for (i = 0; (ap = aplist[i]) != NULL; i++) { -#if 0 /*%< the trick seems too much */ - af = hp->h_addr_list; - if (af == AF_INET6 && - IN6_IS_ADDR_V4MAPPED((struct in6_addr *)ap)) { - af = AF_INET; - ap = ap + sizeof(struct in6_addr) - - sizeof(struct in_addr); - } - afd = find_afd(af); - if (afd == NULL) - continue; -#endif /* 0 */ - - GET_AI(cur->ai_next, afd, ap); - - /* GET_PORT(cur->ai_next, servname); */ - if ((pai->ai_flags & AI_CANONNAME) != 0) { - /* - * RFC2553 says that ai_canonname will be set only for - * the first element. we do it for all the elements, - * just for convenience. - */ - GET_CANONNAME(cur->ai_next, hp->h_name); - } - while (cur->ai_next) /*%< no need to loop, actually. */ - cur = cur->ai_next; - continue; - - free: - if (cur->ai_next) - freeaddrinfo(cur->ai_next); - cur->ai_next = NULL; - /* continue, without tht pointer CUR advanced. */ + canonname = NULL; + eom = answer->buf + anslen; + switch (qtype) { + case T_A: + case T_AAAA: + case T_ANY: /*use T_ANY only for T_A/T_AAAA lookup*/ + name_ok = res_hnok; + break; + case T_SRV: + name_ok = gai_srvok; + break; + default: + return NULL; /* XXX should be abort(); */ } - - return(sentinel.ai_next); -} - -struct addrinfo * -addr2addrinfo(pai, cp) - const struct addrinfo *pai; - const char *cp; -{ - const struct afd *afd; - - afd = find_afd(pai->ai_family); - if (afd == NULL) - return(NULL); - - return(get_ai(pai, afd, cp)); -} - -static struct net_data * -init() -{ - struct net_data *net_data; - - if (!(net_data = net_data_init(NULL))) - goto error; - if (!net_data->ho) { - net_data->ho = (*net_data->irs->ho_map)(net_data->irs); - if (!net_data->ho || !net_data->res) { -error: - errno = EIO; - if (net_data && net_data->res) - RES_SET_H_ERRNO(net_data->res, NETDB_INTERNAL); + /* + * find first satisfactory answer + */ + hp = &answer->hdr; + ancount = ntohs(hp->ancount); + qdcount = ntohs(hp->qdcount); + bp = hostbuf; + ep = hostbuf + sizeof hostbuf; + cp = answer->buf + HFIXEDSZ; + if (qdcount != 1) { + h_errno = NO_RECOVERY; + return (NULL); + } + n = dn_expand(answer->buf, eom, cp, bp, (int)(ep - bp)); + if ((n < 0) || !(*name_ok)(bp)) { + h_errno = NO_RECOVERY; + return (NULL); + } + cp += n + QFIXEDSZ; + if (qtype == T_A || qtype == T_AAAA || qtype == T_ANY) { + /* res_send() has already verified that the query name is the + * same as the one we sent; this just gets the expanded name + * (i.e., with the succeeding search-domain tacked on). + */ + n = (int)strlen(bp) + 1; /* for the \0 */ + if (n >= MAXHOSTNAMELEN) { + h_errno = NO_RECOVERY; return (NULL); } + canonname = bp; + bp += n; + /* The qname can be abbreviated, but h_name is now absolute. */ + qname = canonname; + } + haveanswer = 0; + had_error = 0; + srvlist = NULL; + while (ancount-- > 0 && cp < eom && !had_error) { + n = dn_expand(answer->buf, eom, cp, bp, (int)(ep - bp)); + if ((n < 0) || !(*name_ok)(bp)) { + had_error++; + continue; + } + cp += n; /* name */ + type = _getshort(cp); + cp += INT16SZ; /* type */ + class = _getshort(cp); + cp += INT16SZ + INT32SZ; /* class, TTL */ + n = _getshort(cp); + cp += INT16SZ; /* len */ + if (class != C_IN) { + /* XXX - debug? syslog? */ + cp += n; + continue; /* XXX - had_error++ ? */ + } + if ((qtype == T_A || qtype == T_AAAA || qtype == T_ANY) && + type == T_CNAME) { + n = dn_expand(answer->buf, eom, cp, tbuf, (int)sizeof tbuf); + if ((n < 0) || !(*name_ok)(tbuf)) { + had_error++; + continue; + } + cp += n; + /* Get canonical name. */ + n = (int)strlen(tbuf) + 1; /* for the \0 */ + if (n > ep - bp || n >= MAXHOSTNAMELEN) { + had_error++; + continue; + } + strlcpy(bp, tbuf, (size_t)(ep - bp)); + canonname = bp; + bp += n; + continue; + } + if (qtype == T_ANY) { + if (!(type == T_A || type == T_AAAA)) { + cp += n; + continue; + } + } else if (type != qtype) { + if (type != T_KEY && type != T_SIG) { + syslog(LOG_NOTICE|LOG_AUTH, + "gethostby*.getanswer: asked for \"%s %s %s\", got type \"%s\"", + qname, p_class(C_IN), p_type(qtype), + p_type(type)); + } + cp += n; + continue; /* XXX - had_error++ ? */ + } + switch (type) { + case T_A: + case T_AAAA: + if (strcasecmp(canonname, bp) != 0) { + syslog(LOG_NOTICE|LOG_AUTH, + AskedForGot, canonname, bp); + cp += n; + continue; /* XXX - had_error++ ? */ + } + if (type == T_A && n != INADDRSZ) { + cp += n; + continue; + } + if (type == T_AAAA && n != IN6ADDRSZ) { + cp += n; + continue; + } + if (type == T_AAAA) { + struct in6_addr in6; + memcpy(&in6, cp, IN6ADDRSZ); + if (IN6_IS_ADDR_V4MAPPED(&in6)) { + cp += n; + continue; + } + } + if (!haveanswer) { + int nn; - (*net_data->ho->res_set)(net_data->ho, net_data->res, NULL); + canonname = bp; + nn = (int)strlen(bp) + 1; /* for the \0 */ + bp += nn; + } + + /* don't overwrite pai */ + ai = *pai; + ai.ai_family = (type == T_A) ? AF_INET : AF_INET6; + afd = find_afd(ai.ai_family); + if (afd == NULL) { + cp += n; + continue; + } + cur->ai_next = get_ai(&ai, afd, (const char *)cp); + if (cur->ai_next == NULL) + had_error++; + while (cur && cur->ai_next) + cur = cur->ai_next; + cp += n; + break; + case T_SRV: + /* Add to SRV list. Insertion sort on priority. */ + pri = _getshort(cp); + cp += INT16SZ; + weight = _getshort(cp); + cp += INT16SZ; + port = _getshort(cp); + cp += INT16SZ; + n = dn_expand(answer->buf, eom, cp, tbuf, + (int)sizeof(tbuf)); + if ((n < 0) || !res_hnok(tbuf)) { + had_error++; + continue; + } + cp += n; + if (strlen(tbuf) + 1 >= MAXDNAME) { + had_error++; + continue; + } + srv = malloc(sizeof(*srv)); + if (!srv) { + had_error++; + continue; + } + strlcpy(srv->name, tbuf, sizeof(srv->name)); + srv->pri = pri; + srv->weight = weight; + srv->port = port; + /* Weight 0 is sorted before other weights. */ + if (!srvlist + || srv->pri < srvlist->pri + || (srv->pri == srvlist->pri && + (!srv->weight || srvlist->weight))) { + srv->next = srvlist; + srvlist = srv; + } else { + for (csrv = srvlist; + csrv->next && csrv->next->pri <= srv->pri; + csrv = csrv->next) { + if (csrv->next->pri == srv->pri + && (!srv->weight || + csrv->next->weight)) + break; + } + srv->next = csrv->next; + csrv->next = srv; + } + continue; /* Don't add to haveanswer yet. */ + default: + abort(); + } + if (!had_error) + haveanswer++; } - return (net_data); + if (srvlist) { + res_state res; + /* + * Check for explicit rejection. + */ + if (!srvlist->next && !srvlist->name[0]) { + free(srvlist); + h_errno = HOST_NOT_FOUND; + return NULL; + } + res = __res_get_state(); + if (res == NULL) { + while (srvlist != NULL) { + srv = srvlist; + srvlist = srvlist->next; + free(srv); + } + h_errno = NETDB_INTERNAL; + return NULL; + } + + while (srvlist) { + struct res_target q, q2; + + srv = srvlist; + srvlist = srvlist->next; + + /* + * Since res_* doesn't give the additional + * section, we always look up. + */ + memset(&q, 0, sizeof(q)); + memset(&q2, 0, sizeof(q2)); + + q.name = srv->name; + q.qclass = C_IN; + q.qtype = T_AAAA; + q.next = &q2; + q2.name = srv->name; + q2.qclass = C_IN; + q2.qtype = T_A; + + aip = _dns_query(&q, pai, res, 0); + + if (aip != NULL) { + cur->ai_next = aip; + while (cur && cur->ai_next) { + cur = cur->ai_next; + *getport(cur) = htons(srv->port); + haveanswer++; + } + } + free(srv); + } + __res_put_state(res); + } + if (haveanswer) { + if (!sentinel.ai_next->ai_canonname) + (void)get_canonname(pai, sentinel.ai_next, + canonname ? canonname : qname); + h_errno = NETDB_SUCCESS; + return sentinel.ai_next; + } + + h_errno = NO_RECOVERY; + return NULL; } + +#define SORTEDADDR(p) (((struct sockaddr_in *)(void *)(p->ai_next->ai_addr))->sin_addr.s_addr) +#define SORTMATCH(p, s) ((SORTEDADDR(p) & (s).mask) == (s).addr.s_addr) + +static void +aisort(struct addrinfo *s, res_state res) +{ + struct addrinfo head, *t, *p; + int i; + + head.ai_next = NULL; + t = &head; + + for (i = 0; i < res->nsort; i++) { + p = s; + while (p->ai_next) { + if ((p->ai_next->ai_family != AF_INET) + || SORTMATCH(p, res->sort_list[i])) { + t->ai_next = p->ai_next; + t = t->ai_next; + p->ai_next = p->ai_next->ai_next; + } else { + p = p->ai_next; + } + } + } + + /* add rest of list and reset s to the new list*/ + t->ai_next = s->ai_next; + s->ai_next = head.ai_next; +} + +static struct addrinfo * +_dns_query(struct res_target *q, const struct addrinfo *pai, + res_state res, int dosearch) +{ + struct res_target *q2 = q->next; + querybuf *buf, *buf2; + struct addrinfo sentinel, *cur, *ai; + +#ifdef DNS_DEBUG + struct res_target *iter; + for (iter = q; iter; iter = iter->next) + printf("Query type %d for %s\n", iter->qtype, iter->name); +#endif + + buf = malloc(sizeof(*buf)); + if (buf == NULL) { + h_errno = NETDB_INTERNAL; + return NULL; + } + buf2 = malloc(sizeof(*buf2)); + if (buf2 == NULL) { + free(buf); + h_errno = NETDB_INTERNAL; + return NULL; + } + + memset(&sentinel, 0, sizeof(sentinel)); + cur = &sentinel; + + q->answer = buf->buf; + q->anslen = sizeof(buf->buf); + if (q2) { + q2->answer = buf2->buf; + q2->anslen = sizeof(buf2->buf); + } + + if (dosearch) { + if (res_searchN(q->name, q, res) < 0) + goto out; + } else { + if (res_queryN(q->name, q, res) < 0) + goto out; + } + + ai = getanswer(buf, q->n, q->name, q->qtype, pai); + if (ai) { + cur->ai_next = ai; + while (cur && cur->ai_next) + cur = cur->ai_next; + } + if (q2) { + ai = getanswer(buf2, q2->n, q2->name, q2->qtype, pai); + if (ai) + cur->ai_next = ai; + } + free(buf); + free(buf2); + return sentinel.ai_next; +out: + free(buf); + free(buf2); + return NULL; +} + +/*ARGSUSED*/ +static struct addrinfo * +_dns_srv_lookup(const char *name, const char *servname, + const struct addrinfo *pai) +{ + static const char * const srvprotos[] = { "tcp", "udp" }; + static const int srvnottype[] = { SOCK_DGRAM, SOCK_STREAM }; + static const int nsrvprotos = 2; + struct addrinfo sentinel, *cur, *ai; + struct servent *serv, sv; + struct servent_data svd; + struct res_target q; + res_state res; + char *tname; + int i; + + res = __res_get_state(); + if (res == NULL) + return NULL; + + memset(&svd, 0, sizeof(svd)); + memset(&sentinel, 0, sizeof(sentinel)); + cur = &sentinel; + + /* + * Iterate over supported SRV protocols. + * (currently UDP and TCP only) + */ + for (i = 0; i < nsrvprotos; i++) { + /* + * Check that the caller didn't specify a hint + * which precludes this protocol. + */ + if (pai->ai_socktype == srvnottype[i]) + continue; + /* + * If the caller specified a port, + * then lookup the database for the + * official service name. + */ + serv = getservbyname_r(servname, srvprotos[i], &sv, &svd); + if (serv == NULL) + continue; + + /* + * Construct service DNS name. + */ + if (asprintf(&tname, "_%s._%s.%s", serv->s_name, serv->s_proto, + name) < 0) + continue; + + memset(&q, 0, sizeof(q)); + q.name = tname; + q.qclass = C_IN; + q.qtype = T_SRV; + + /* + * Do SRV query. + */ + ai = _dns_query(&q, pai, res, 1); + if (ai) { + cur->ai_next = ai; + while (cur && cur->ai_next) + cur = cur->ai_next; + } + free(tname); + } + + if (res->nsort) + aisort(&sentinel, res); + + __res_put_state(res); + + return sentinel.ai_next; +} + +/*ARGSUSED*/ +static struct addrinfo * +_dns_host_lookup(const char *name, const struct addrinfo *pai) +{ + struct res_target q, q2; + struct addrinfo sentinel, *ai; + res_state res; + + res = __res_get_state(); + if (res == NULL) + return NULL; + + memset(&q, 0, sizeof(q2)); + memset(&q2, 0, sizeof(q2)); + + switch (pai->ai_family) { + case AF_UNSPEC: + /* prefer IPv6 */ + q.name = name; + q.qclass = C_IN; + q.qtype = T_AAAA; + q.next = &q2; + q2.name = name; + q2.qclass = C_IN; + q2.qtype = T_A; + break; + case AF_INET: + q.name = name; + q.qclass = C_IN; + q.qtype = T_A; + break; + case AF_INET6: + q.name = name; + q.qclass = C_IN; + q.qtype = T_AAAA; + break; + default: + __res_put_state(res); + h_errno = NETDB_INTERNAL; + return NULL; + } + + ai = _dns_query(&q, pai, res, 1); + + memset(&sentinel, 0, sizeof(sentinel)); + sentinel.ai_next = ai; + + if (ai != NULL && res->nsort) + aisort(&sentinel, res); + + __res_put_state(res); + + return sentinel.ai_next; +} + +/*ARGSUSED*/ +static int +_dns_getaddrinfo(void *rv, void *cb_data, va_list ap) +{ + struct addrinfo *ai = NULL; + const char *name, *servname; + const struct addrinfo *pai; + + name = va_arg(ap, char *); + pai = va_arg(ap, const struct addrinfo *); + servname = va_arg(ap, char *); + + /* + * Try doing SRV lookup on service first. + */ + if (servname +#ifdef AI_SRV + && (pai->ai_flags & AI_SRV) +#endif + && !(pai->ai_flags & AI_NUMERICSERV) + && str2number(servname) == -1) { + +#ifdef DNS_DEBUG + printf("%s: try SRV lookup\n", __func__); +#endif + ai = _dns_srv_lookup(name, servname, pai); + } + + /* + * Do lookup on name. + */ + if (ai == NULL) { + +#ifdef DNS_DEBUG + printf("%s: try HOST lookup\n", __func__); +#endif + ai = _dns_host_lookup(name, pai); + + if (ai == NULL) { + switch (h_errno) { + case HOST_NOT_FOUND: + return NS_NOTFOUND; + case TRY_AGAIN: + return NS_TRYAGAIN; + default: + return NS_UNAVAIL; + } + } + } + + *((struct addrinfo **)rv) = ai; + return NS_SUCCESS; +} + +static void +_sethtent(FILE **hostf) +{ + + if (!*hostf) { + char buffer[256]; + find_directory(B_SYSTEM_SETTINGS_DIRECTORY, 0, false, buffer, sizeof(buffer)); + strlcat(buffer, "/network/hosts", sizeof(buffer)); + + *hostf = fopen(buffer, "re"); + } else + rewind(*hostf); +} + +static void +_endhtent(FILE **hostf) +{ + + if (*hostf) { + (void) fclose(*hostf); + *hostf = NULL; + } +} + +static struct addrinfo * +_gethtent(FILE **hostf, const char *name, const struct addrinfo *pai) +{ + char *p; + char *cp, *tname, *cname; + struct addrinfo hints, *res0, *res; + int error; + const char *addr; + char hostbuf[8*1024]; + + assert(name != NULL); + assert(pai != NULL); + + if (!*hostf) + _sethtent(hostf); + if (!*hostf) + return (NULL); + again: + if (!(p = fgets(hostbuf, (int)sizeof hostbuf, *hostf))) + return (NULL); + if (*p == '#') + goto again; + if (!(cp = strpbrk(p, "#\n"))) + goto again; + *cp = '\0'; + if (!(cp = strpbrk(p, " \t"))) + goto again; + *cp++ = '\0'; + addr = p; + /* if this is not something we're looking for, skip it. */ + cname = NULL; + while (cp && *cp) { + if (*cp == ' ' || *cp == '\t') { + cp++; + continue; + } + if (!cname) + cname = cp; + tname = cp; + if ((cp = strpbrk(cp, " \t")) != NULL) + *cp++ = '\0'; + if (strcasecmp(name, tname) == 0) + goto found; + } + goto again; + +found: + hints = *pai; + hints.ai_flags = AI_NUMERICHOST; + error = getaddrinfo(addr, NULL, &hints, &res0); + if (error) + goto again; + for (res = res0; res; res = res->ai_next) { + /* cover it up */ + res->ai_flags = pai->ai_flags; + + if (pai->ai_flags & AI_CANONNAME) { + if (get_canonname(pai, res, cname) != 0) { + freeaddrinfo(res0); + goto again; + } + } + } + return res0; +} + +/*ARGSUSED*/ +static int +_files_getaddrinfo(void *rv, void *cb_data, va_list ap) +{ + const char *name; + const struct addrinfo *pai; + struct addrinfo sentinel, *cur; + struct addrinfo *p; +#ifndef _REENTRANT + static +#endif + FILE *hostf = NULL; + + name = va_arg(ap, char *); + pai = va_arg(ap, const struct addrinfo *); + + memset(&sentinel, 0, sizeof(sentinel)); + cur = &sentinel; + + _sethtent(&hostf); + while ((p = _gethtent(&hostf, name, pai)) != NULL) { + cur->ai_next = p; + while (cur && cur->ai_next) + cur = cur->ai_next; + } + _endhtent(&hostf); + + *((struct addrinfo **)rv) = sentinel.ai_next; + if (sentinel.ai_next == NULL) + return NS_NOTFOUND; + return NS_SUCCESS; +} + +#ifdef YP +/*ARGSUSED*/ +static struct addrinfo * +_yphostent(char *line, const struct addrinfo *pai) +{ + struct addrinfo sentinel, *cur; + struct addrinfo hints, *res, *res0; + int error; + char *p; + const char *addr, *canonname; + char *nextline; + char *cp; + + assert(line != NULL); + assert(pai != NULL); + + p = line; + addr = canonname = NULL; + + memset(&sentinel, 0, sizeof(sentinel)); + cur = &sentinel; + +nextline: + /* terminate line */ + cp = strchr(p, '\n'); + if (cp) { + *cp++ = '\0'; + nextline = cp; + } else + nextline = NULL; + + cp = strpbrk(p, " \t"); + if (cp == NULL) { + if (canonname == NULL) + return (NULL); + else + goto done; + } + *cp++ = '\0'; + + addr = p; + + while (cp && *cp) { + if (*cp == ' ' || *cp == '\t') { + cp++; + continue; + } + if (!canonname) + canonname = cp; + if ((cp = strpbrk(cp, " \t")) != NULL) + *cp++ = '\0'; + } + + hints = *pai; + hints.ai_flags = AI_NUMERICHOST; + error = getaddrinfo(addr, NULL, &hints, &res0); + if (error == 0) { + for (res = res0; res; res = res->ai_next) { + /* cover it up */ + res->ai_flags = pai->ai_flags; + + if (pai->ai_flags & AI_CANONNAME) + (void)get_canonname(pai, res, canonname); + } + } else + res0 = NULL; + if (res0) { + cur->ai_next = res0; + while (cur->ai_next) + cur = cur->ai_next; + } + + if (nextline) { + p = nextline; + goto nextline; + } + +done: + return sentinel.ai_next; +} + +/*ARGSUSED*/ +static int +_yp_getaddrinfo(void *rv, void *cb_data, va_list ap) +{ + struct addrinfo sentinel, *cur; + struct addrinfo *ai = NULL; + char *ypbuf; + int ypbuflen, r; + const char *name; + const struct addrinfo *pai; + char *ypdomain; + + if (_yp_check(&ypdomain) == 0) + return NS_UNAVAIL; + + name = va_arg(ap, char *); + pai = va_arg(ap, const struct addrinfo *); + + memset(&sentinel, 0, sizeof(sentinel)); + cur = &sentinel; + + /* hosts.byname is only for IPv4 (Solaris8) */ + if (pai->ai_family == PF_UNSPEC || pai->ai_family == PF_INET) { + r = yp_match(ypdomain, "hosts.byname", name, + (int)strlen(name), &ypbuf, &ypbuflen); + if (r == 0) { + struct addrinfo ai4; + + ai4 = *pai; + ai4.ai_family = AF_INET; + ai = _yphostent(ypbuf, &ai4); + if (ai) { + cur->ai_next = ai; + while (cur && cur->ai_next) + cur = cur->ai_next; + } + } + free(ypbuf); + } + + /* ipnodes.byname can hold both IPv4/v6 */ + r = yp_match(ypdomain, "ipnodes.byname", name, + (int)strlen(name), &ypbuf, &ypbuflen); + if (r == 0) { + ai = _yphostent(ypbuf, pai); + if (ai) + cur->ai_next = ai; + free(ypbuf); + } + + if (sentinel.ai_next == NULL) { + h_errno = HOST_NOT_FOUND; + return NS_NOTFOUND; + } + *((struct addrinfo **)rv) = sentinel.ai_next; + return NS_SUCCESS; +} +#endif + +/* resolver logic */ + +/* + * Formulate a normal query, send, and await answer. + * Returned answer is placed in supplied buffer "answer". + * Perform preliminary check of answer, returning success only + * if no error is indicated and the answer count is nonzero. + * Return the size of the response on success, -1 on error. + * Error number is left in h_errno. + * + * Caller must parse answer and determine whether it answers the question. + */ +static int +res_queryN(const char *name, /* domain name */ struct res_target *target, + res_state res) +{ + u_char buf[MAXPACKET]; + HEADER *hp; + int n; + struct res_target *t; + int rcode; + int ancount; + + assert(name != NULL); + /* XXX: target may be NULL??? */ + + rcode = NOERROR; + ancount = 0; + + for (t = target; t; t = t->next) { + int class, type; + u_char *answer; + int anslen; + + hp = (HEADER *)(void *)t->answer; + hp->rcode = NOERROR; /* default */ + + /* make it easier... */ + class = t->qclass; + type = t->qtype; + answer = t->answer; + anslen = t->anslen; +#ifdef DEBUG + if (res->options & RES_DEBUG) + printf(";; res_nquery(%s, %d, %d)\n", name, class, type); +#endif + + n = res_nmkquery(res, QUERY, name, class, type, NULL, 0, NULL, + buf, (int)sizeof(buf)); +#ifdef RES_USE_EDNS0 + if (n > 0 && (res->options & RES_USE_EDNS0) != 0) + n = res_nopt(res, n, buf, (int)sizeof(buf), anslen); +#endif + if (n <= 0) { +#ifdef DEBUG + if (res->options & RES_DEBUG) + printf(";; res_nquery: mkquery failed\n"); +#endif + h_errno = NO_RECOVERY; + return n; + } + n = res_nsend(res, buf, n, answer, anslen); +#if 0 + if (n < 0) { +#ifdef DEBUG + if (res->options & RES_DEBUG) + printf(";; res_query: send error\n"); +#endif + h_errno = TRY_AGAIN; + return n; + } +#endif + + if (n < 0 || hp->rcode != NOERROR || ntohs(hp->ancount) == 0) { + rcode = hp->rcode; /* record most recent error */ +#ifdef DEBUG + if (res->options & RES_DEBUG) + printf(";; rcode = %u, ancount=%u\n", hp->rcode, + ntohs(hp->ancount)); +#endif + continue; + } + + ancount += ntohs(hp->ancount); + + t->n = n; + } + + if (ancount == 0) { + switch (rcode) { + case NXDOMAIN: + h_errno = HOST_NOT_FOUND; + break; + case SERVFAIL: + h_errno = TRY_AGAIN; + break; + case NOERROR: + h_errno = NO_DATA; + break; + case FORMERR: + case NOTIMP: + case REFUSED: + default: + h_errno = NO_RECOVERY; + break; + } + return -1; + } + return ancount; +} + +/* + * Formulate a normal query, send, and retrieve answer in supplied buffer. + * Return the size of the response on success, -1 on error. + * If enabled, implement search rules until answer or unrecoverable failure + * is detected. Error code, if any, is left in h_errno. + */ +static int +res_searchN(const char *name, struct res_target *target, res_state res) +{ + const char *cp, * const *domain; + HEADER *hp; + u_int dots; + int trailing_dot, ret, saved_herrno; + int got_nodata = 0, got_servfail = 0, tried_as_is = 0; + + assert(name != NULL); + assert(target != NULL); + + hp = (HEADER *)(void *)target->answer; /*XXX*/ + + errno = 0; + h_errno = HOST_NOT_FOUND; /* default, if we never query */ + dots = 0; + for (cp = name; *cp; cp++) + dots += (*cp == '.'); + trailing_dot = 0; + if (cp > name && *--cp == '.') + trailing_dot++; + + /* + * if there aren't any dots, it could be a user-level alias + */ + if (!dots && (cp = __hostalias(name)) != NULL) { + ret = res_queryN(cp, target, res); + return ret; + } + + /* + * If there are dots in the name already, let's just give it a try + * 'as is'. The threshold can be set with the "ndots" option. + */ + saved_herrno = -1; + if (dots >= res->ndots) { + ret = res_querydomainN(name, NULL, target, res); + if (ret > 0) + return (ret); + saved_herrno = h_errno; + tried_as_is++; + } + + /* + * We do at least one level of search if + * - there is no dot and RES_DEFNAME is set, or + * - there is at least one dot, there is no trailing dot, + * and RES_DNSRCH is set. + */ + if ((!dots && (res->options & RES_DEFNAMES)) || + (dots && !trailing_dot && (res->options & RES_DNSRCH))) { + int done = 0; + + for (domain = (const char * const *)res->dnsrch; + *domain && !done; + domain++) { + + ret = res_querydomainN(name, *domain, target, res); + if (ret > 0) + return ret; + + /* + * If no server present, give up. + * If name isn't found in this domain, + * keep trying higher domains in the search list + * (if that's enabled). + * On a NO_DATA error, keep trying, otherwise + * a wildcard entry of another type could keep us + * from finding this entry higher in the domain. + * If we get some other error (negative answer or + * server failure), then stop searching up, + * but try the input name below in case it's + * fully-qualified. + */ + if (errno == ECONNREFUSED) { + h_errno = TRY_AGAIN; + return -1; + } + + switch (h_errno) { + case NO_DATA: + got_nodata++; + /* FALLTHROUGH */ + case HOST_NOT_FOUND: + /* keep trying */ + break; + case TRY_AGAIN: + if (hp->rcode == SERVFAIL) { + /* try next search element, if any */ + got_servfail++; + break; + } + /* FALLTHROUGH */ + default: + /* anything else implies that we're done */ + done++; + } + /* + * if we got here for some reason other than DNSRCH, + * we only wanted one iteration of the loop, so stop. + */ + if (!(res->options & RES_DNSRCH)) + done++; + } + } + + /* + * if we have not already tried the name "as is", do that now. + * note that we do this regardless of how many dots were in the + * name or whether it ends with a dot. + */ + if (!tried_as_is) { + ret = res_querydomainN(name, NULL, target, res); + if (ret > 0) + return ret; + } + + /* + * if we got here, we didn't satisfy the search. + * if we did an initial full query, return that query's h_errno + * (note that we wouldn't be here if that query had succeeded). + * else if we ever got a nodata, send that back as the reason. + * else send back meaningless h_errno, that being the one from + * the last DNSRCH we did. + */ + if (saved_herrno != -1) + h_errno = saved_herrno; + else if (got_nodata) + h_errno = NO_DATA; + else if (got_servfail) + h_errno = TRY_AGAIN; + return -1; +} + +/* + * Perform a call on res_query on the concatenation of name and domain, + * removing a trailing dot from name if domain is NULL. + */ +static int +res_querydomainN(const char *name, const char *domain, + struct res_target *target, res_state res) +{ + char nbuf[MAXDNAME]; + const char *longname = nbuf; + size_t n, d; + + assert(name != NULL); + /* XXX: target may be NULL??? */ + +#ifdef DEBUG + if (res->options & RES_DEBUG) + printf(";; res_querydomain(%s, %s)\n", + name, domain?domain:""); +#endif + if (domain == NULL) { + /* + * Check for trailing '.'; + * copy without '.' if present. + */ + n = strlen(name); + if (n + 1 > sizeof(nbuf)) { + h_errno = NO_RECOVERY; + return -1; + } + if (n > 0 && name[--n] == '.') { + strncpy(nbuf, name, n); + nbuf[n] = '\0'; + } else + longname = name; + } else { + n = strlen(name); + d = strlen(domain); + if (n + 1 + d + 1 > sizeof(nbuf)) { + h_errno = NO_RECOVERY; + return -1; + } + snprintf(nbuf, sizeof(nbuf), "%s.%s", name, domain); + } + return res_queryN(longname, target, res); +} + +#ifdef TEST +int +main(int argc, char *argv[]) { + struct addrinfo *ai, *sai; + int i, e; + char buf[1024]; + + for (i = 1; i < argc; i++) { + if ((e = getaddrinfo(argv[i], NULL, NULL, &sai)) != 0) + warnx("%s: %s", argv[i], gai_strerror(e)); + for (ai = sai; ai; ai = ai->ai_next) { + sockaddr_snprintf(buf, sizeof(buf), "%a", ai->ai_addr); + printf("flags=0x%x family=%d socktype=%d protocol=%d " + "addrlen=%zu addr=%s canonname=%s next=%p\n", + ai->ai_flags, + ai->ai_family, + ai->ai_socktype, + ai->ai_protocol, + (size_t)ai->ai_addrlen, + buf, + ai->ai_canonname, + ai->ai_next); + } + if (sai) + freeaddrinfo(sai); + } + return 0; +} +#endif diff --git a/src/kits/network/libbind/irs/getgrent.c b/src/kits/network/libbind/irs/getgrent.c deleted file mode 100644 index e6c6c42147..0000000000 --- a/src/kits/network/libbind/irs/getgrent.c +++ /dev/null @@ -1,224 +0,0 @@ -/* - * 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. - */ - -#if !defined(LINT) && !defined(CODECENTER) -static const char rcsid[] = "$Id: getgrent.c,v 1.5 2005/04/27 04:56:24 sra Exp $"; -#endif - -/* Imports */ - -#include "port_before.h" - -#if !defined(WANT_IRS_GR) || defined(__BIND_NOSTATIC) -static int __bind_irs_gr_unneeded; -#else - -#include - -#include -#include - -#include -#include -#include -#include -#include -#include - -#include - -#include "port_after.h" - -#include "irs_data.h" - -/* Forward */ - -static struct net_data *init(void); -void endgrent(void); - -/* Public */ - -struct group * -getgrent() { - struct net_data *net_data = init(); - - return (getgrent_p(net_data)); -} - -struct group * -getgrnam(const char *name) { - struct net_data *net_data = init(); - - return (getgrnam_p(name, net_data)); -} - -struct group * -getgrgid(gid_t gid) { - struct net_data *net_data = init(); - - return (getgrgid_p(gid, net_data)); -} - -int -setgroupent(int stayopen) { - struct net_data *net_data = init(); - - return (setgroupent_p(stayopen, net_data)); -} - -#ifdef SETGRENT_VOID -void -setgrent(void) { - struct net_data *net_data = init(); - - setgrent_p(net_data); -} -#else -int -setgrent(void) { - struct net_data *net_data = init(); - - return (setgrent_p(net_data)); -} -#endif /* SETGRENT_VOID */ - -void -endgrent() { - struct net_data *net_data = init(); - - endgrent_p(net_data); -} - -int -getgrouplist(GETGROUPLIST_ARGS) { - struct net_data *net_data = init(); - - return (getgrouplist_p(name, basegid, groups, ngroups, net_data)); -} - -/* Shared private. */ - -struct group * -getgrent_p(struct net_data *net_data) { - struct irs_gr *gr; - - if (!net_data || !(gr = net_data->gr)) - return (NULL); - net_data->gr_last = (*gr->next)(gr); - return (net_data->gr_last); -} - -struct group * -getgrnam_p(const char *name, struct net_data *net_data) { - struct irs_gr *gr; - - if (!net_data || !(gr = net_data->gr)) - return (NULL); - if (net_data->gr_stayopen && net_data->gr_last && - !strcmp(net_data->gr_last->gr_name, name)) - return (net_data->gr_last); - net_data->gr_last = (*gr->byname)(gr, name); - if (!net_data->gr_stayopen) - endgrent(); - return (net_data->gr_last); -} - -struct group * -getgrgid_p(gid_t gid, struct net_data *net_data) { - struct irs_gr *gr; - - if (!net_data || !(gr = net_data->gr)) - return (NULL); - if (net_data->gr_stayopen && net_data->gr_last && - (gid_t)net_data->gr_last->gr_gid == gid) - return (net_data->gr_last); - net_data->gr_last = (*gr->bygid)(gr, gid); - if (!net_data->gr_stayopen) - endgrent(); - return (net_data->gr_last); -} - -int -setgroupent_p(int stayopen, struct net_data *net_data) { - struct irs_gr *gr; - - if (!net_data || !(gr = net_data->gr)) - return (0); - (*gr->rewind)(gr); - net_data->gr_stayopen = (stayopen != 0); - if (stayopen == 0) - net_data_minimize(net_data); - return (1); -} - -#ifdef SETGRENT_VOID -void -setgrent_p(struct net_data *net_data) { - (void)setgroupent_p(0, net_data); -} -#else -int -setgrent_p(struct net_data *net_data) { - return (setgroupent_p(0, net_data)); -} -#endif /* SETGRENT_VOID */ - -void -endgrent_p(struct net_data *net_data) { - struct irs_gr *gr; - - if ((net_data != NULL) && ((gr = net_data->gr) != NULL)) - (*gr->minimize)(gr); -} - -int -getgrouplist_p(const char *name, gid_t basegid, gid_t *groups, int *ngroups, - struct net_data *net_data) { - struct irs_gr *gr; - - if (!net_data || !(gr = net_data->gr)) { - *ngroups = 0; - return (-1); - } - return ((*gr->list)(gr, name, basegid, groups, ngroups)); -} - -/* Private */ - -static struct net_data * -init() { - struct net_data *net_data; - - if (!(net_data = net_data_init(NULL))) - goto error; - if (!net_data->gr) { - net_data->gr = (*net_data->irs->gr_map)(net_data->irs); - - if (!net_data->gr || !net_data->res) { - error: - errno = EIO; - return (NULL); - } - (*net_data->gr->res_set)(net_data->gr, net_data->res, - NULL); - } - - return (net_data); -} - -#endif /* WANT_IRS_GR */ -/*! \file */ diff --git a/src/kits/network/libbind/irs/getgrent_r.c b/src/kits/network/libbind/irs/getgrent_r.c deleted file mode 100644 index eb9c7947cd..0000000000 --- a/src/kits/network/libbind/irs/getgrent_r.c +++ /dev/null @@ -1,230 +0,0 @@ -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 1998-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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: getgrent_r.c,v 1.7 2005/04/27 04:56:24 sra Exp $"; -#endif /* LIBC_SCCS and not lint */ - -#include -#if !defined(_REENTRANT) || !defined(DO_PTHREADS) || !defined(WANT_IRS_PW) - static int getgrent_r_not_required = 0; -#else -#include -#include -#include -#include -#if (defined(POSIX_GETGRNAM_R) || defined(POSIX_GETGRGID_R)) && \ - defined(_POSIX_PTHREAD_SEMANTICS) - /* turn off solaris remapping in */ -#define _UNIX95 -#undef _POSIX_PTHREAD_SEMANTICS -#include -#define _POSIX_PTHREAD_SEMANTICS 1 -#else -#include -#endif -#include -#include - -#ifdef GROUP_R_RETURN - -static int -copy_group(struct group *, struct group *, char *buf, int buflen); - -/* POSIX 1003.1c */ -#ifdef POSIX_GETGRNAM_R -int -__posix_getgrnam_r(const char *name, struct group *gptr, - char *buf, int buflen, struct group **result) { -#else -int -getgrnam_r(const char *name, struct group *gptr, - char *buf, size_t buflen, struct group **result) { -#endif - struct group *ge = getgrnam(name); - int res; - - if (ge == NULL) { - *result = NULL; - return (0); - } - - res = copy_group(ge, gptr, buf, buflen); - *result = res ? NULL : gptr; - return (res); -} - -#ifdef POSIX_GETGRNAM_R -struct group * -getgrnam_r(const char *name, struct group *gptr, - char *buf, int buflen) { - struct group *ge = getgrnam(name); - int res; - - if (ge == NULL) - return (NULL); - res = copy_group(ge, gptr, buf, buflen); - return (res ? NULL : gptr); -} -#endif /* POSIX_GETGRNAM_R */ - -/* POSIX 1003.1c */ -#ifdef POSIX_GETGRGID_R -int -__posix_getgrgid_r(gid_t gid, struct group *gptr, - char *buf, int buflen, struct group **result) { -#else /* POSIX_GETGRGID_R */ -int -getgrgid_r(gid_t gid, struct group *gptr, - char *buf, size_t buflen, struct group **result) { -#endif /* POSIX_GETGRGID_R */ - struct group *ge = getgrgid(gid); - int res; - - if (ge == NULL) { - *result = NULL; - return (0); - } - - res = copy_group(ge, gptr, buf, buflen); - *result = res ? NULL : gptr; - return (res); -} - -#ifdef POSIX_GETGRGID_R -struct group * -getgrgid_r(gid_t gid, struct group *gptr, - char *buf, int buflen) { - struct group *ge = getgrgid(gid); - int res; - - if (ge == NULL) - return (NULL); - - res = copy_group(ge, gptr, buf, buflen); - return (res ? NULL : gptr); -} -#endif - -/*% - * These assume a single context is in operation per thread. - * If this is not the case we will need to call irs directly - * rather than through the base functions. - */ - -GROUP_R_RETURN -getgrent_r(struct group *gptr, GROUP_R_ARGS) { - struct group *ge = getgrent(); - int res; - - if (ge == NULL) { - return (GROUP_R_BAD); - } - - res = copy_group(ge, gptr, buf, buflen); - return (res ? GROUP_R_BAD : GROUP_R_OK); -} - -GROUP_R_SET_RETURN -setgrent_r(GROUP_R_ENT_ARGS) { - - setgrent(); -#ifdef GROUP_R_SET_RESULT - return (GROUP_R_SET_RESULT); -#endif -} - -GROUP_R_END_RETURN -endgrent_r(GROUP_R_ENT_ARGS) { - - endgrent(); - GROUP_R_END_RESULT(GROUP_R_OK); -} - - -#if 0 - /* XXX irs does not have a fgetgrent() */ -GROUP_R_RETURN -fgetgrent_r(FILE *f, struct group *gptr, GROUP_R_ARGS) { - struct group *ge = fgetgrent(f); - int res; - - if (ge == NULL) - return (GROUP_R_BAD); - - res = copy_group(ge, gptr, buf, buflen); - return (res ? GROUP_R_BAD : GROUP_R_OK); -} -#endif - -/* Private */ - -static int -copy_group(struct group *ge, struct group *gptr, char *buf, int buflen) { - char *cp; - int i, n; - int numptr, len; - - /* Find out the amount of space required to store the answer. */ - numptr = 1; /*%< NULL ptr */ - len = (char *)ALIGN(buf) - buf; - for (i = 0; ge->gr_mem[i]; i++, numptr++) { - len += strlen(ge->gr_mem[i]) + 1; - } - len += strlen(ge->gr_name) + 1; - len += strlen(ge->gr_passwd) + 1; - len += numptr * sizeof(char*); - - if (len > buflen) { - errno = ERANGE; - return (ERANGE); - } - - /* copy group id */ - gptr->gr_gid = ge->gr_gid; - - cp = (char *)ALIGN(buf) + numptr * sizeof(char *); - - /* copy official name */ - n = strlen(ge->gr_name) + 1; - strcpy(cp, ge->gr_name); - gptr->gr_name = cp; - cp += n; - - /* copy member list */ - gptr->gr_mem = (char **)ALIGN(buf); - for (i = 0 ; ge->gr_mem[i]; i++) { - n = strlen(ge->gr_mem[i]) + 1; - strcpy(cp, ge->gr_mem[i]); - gptr->gr_mem[i] = cp; - cp += n; - } - gptr->gr_mem[i] = NULL; - - /* copy password */ - n = strlen(ge->gr_passwd) + 1; - strcpy(cp, ge->gr_passwd); - gptr->gr_passwd = cp; - cp += n; - - return (0); -} -#else /* GROUP_R_RETURN */ - static int getgrent_r_unknown_system = 0; -#endif /* GROUP_R_RETURN */ -#endif /* !def(_REENTRANT) || !def(DO_PTHREADS) || !def(WANT_IRS_PW) */ -/*! \file */ diff --git a/src/kits/network/libbind/irs/gethnamaddr.c b/src/kits/network/libbind/irs/gethnamaddr.c new file mode 100644 index 0000000000..e06d22c5f1 --- /dev/null +++ b/src/kits/network/libbind/irs/gethnamaddr.c @@ -0,0 +1,1457 @@ +/* $NetBSD: gethnamaddr.c,v 1.79 2012/09/09 16:42:23 christos Exp $ */ + +/* + * ++Copyright++ 1985, 1988, 1993 + * - + * Copyright (c) 1985, 1988, 1993 + * 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: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * 3. Neither the name of the University 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 REGENTS 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. + * - + * Portions Copyright (c) 1993 by Digital Equipment Corporation. + * + * 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, and that + * the name of Digital Equipment Corporation not be used in advertising or + * publicity pertaining to distribution of the document or software without + * specific, written prior permission. + * + * THE SOFTWARE IS PROVIDED "AS IS" AND DIGITAL EQUIPMENT CORP. DISCLAIMS ALL + * WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL DIGITAL EQUIPMENT + * CORPORATION 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. + * - + * --Copyright-- + */ + +#include +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)gethostnamadr.c 8.1 (Berkeley) 6/4/93"; +static char rcsid[] = "Id: gethnamaddr.c,v 8.21 1997/06/01 20:34:37 vixie Exp "; +#else +__RCSID("$NetBSD: gethnamaddr.c,v 1.79 2012/09/09 16:42:23 christos Exp $"); +#endif +#endif /* LIBC_SCCS and not lint */ + +#if defined(_LIBC) +#include "namespace.h" +#endif +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +#ifndef LOG_AUTH +# define LOG_AUTH 0 +#endif + +#define MULTI_PTRS_ARE_ALIASES 1 /* XXX - experimental */ + +#include +#include +#include + +#ifdef YP +#include +#include +#include +#endif + +#if defined(_LIBC) && defined(__weak_alias) +__weak_alias(gethostbyaddr,_gethostbyaddr) +__weak_alias(gethostbyname,_gethostbyname) +__weak_alias(gethostent,_gethostent) +#endif + +#define maybe_ok(res, nm, ok) (((res)->options & RES_NOCHECKNAME) != 0U || \ + (ok)(nm) != 0) +#define maybe_hnok(res, hn) maybe_ok((res), (hn), res_hnok) +#define maybe_dnok(res, dn) maybe_ok((res), (dn), res_dnok) + + +#define MAXALIASES 35 +#define MAXADDRS 35 + +static const char AskedForGot[] = + "gethostby*.getanswer: asked for \"%s\", got \"%s\""; + +static char *h_addr_ptrs[MAXADDRS + 1]; + +#ifdef YP +static char *__ypdomain; +#endif + +static struct hostent host; +static char *host_aliases[MAXALIASES]; +static char hostbuf[8*1024]; +static u_int32_t host_addr[16 / sizeof(u_int32_t)]; /* IPv4 or IPv6 */ +static FILE *hostf = NULL; +static int stayopen = 0; + +#define MAXPACKET (64*1024) + +typedef union { + HEADER hdr; + u_char buf[MAXPACKET]; +} querybuf; + +typedef union { + int32_t al; + char ac; +} align; + +#ifdef DEBUG +static void debugprintf(const char *, res_state, ...) + __attribute__((__format__(__printf__, 1, 3))); +#endif +static struct hostent *getanswer(const querybuf *, int, const char *, int, + res_state); +static void map_v4v6_address(const char *, char *); +static void map_v4v6_hostent(struct hostent *, char **, char *); +static void addrsort(char **, int, res_state); + +void _sethtent(int); +void _endhtent(void); +struct hostent *_gethtent(void); +void ht_sethostent(int); +void ht_endhostent(void); +struct hostent *ht_gethostbyname(char *); +struct hostent *ht_gethostbyaddr(const char *, int, int); +void dns_service(void); +#undef dn_skipname +int dn_skipname(const u_char *, const u_char *); +int _gethtbyaddr(void *, void *, va_list); +int _gethtbyname(void *, void *, va_list); +struct hostent *_gethtbyname2(const char *, int); +int _dns_gethtbyaddr(void *, void *, va_list); +int _dns_gethtbyname(void *, void *, va_list); +#ifdef YP +struct hostent *_yphostent(char *, int); +int _yp_gethtbyaddr(void *, void *, va_list); +int _yp_gethtbyname(void *, void *, va_list); +#endif + +static struct hostent *gethostbyname_internal(const char *, int, res_state); + +static const ns_src default_dns_files[] = { + { NSSRC_FILES, NS_SUCCESS }, + { NSSRC_DNS, NS_SUCCESS }, + { 0, 0 } +}; + + +#ifdef DEBUG +static void +debugprintf(const char *msg, res_state res, ...) +{ + assert(msg != NULL); + + if (res->options & RES_DEBUG) { + int save = errno; + va_list ap; + + va_start (ap, res); + vprintf(msg, ap); + va_end (ap); + + errno = save; + } +} +#else +# define debugprintf(msg, res, num) /*nada*/ +#endif + +#define BOUNDED_INCR(x) \ + do { \ + cp += (x); \ + if (cp > eom) { \ + h_errno = NO_RECOVERY; \ + return NULL; \ + } \ + } while (/*CONSTCOND*/0) + +#define BOUNDS_CHECK(ptr, count) \ + do { \ + if ((ptr) + (count) > eom) { \ + h_errno = NO_RECOVERY; \ + return NULL; \ + } \ + } while (/*CONSTCOND*/0) + +static struct hostent * +getanswer(const querybuf *answer, int anslen, const char *qname, int qtype, + res_state res) +{ + const HEADER *hp; + const u_char *cp; + int n; + const u_char *eom, *erdata; + char *bp, **ap, **hap, *ep; + int type, class, ancount, qdcount; + int haveanswer, had_error; + int toobig = 0; + char tbuf[MAXDNAME]; + const char *tname; + int (*name_ok)(const char *); + + assert(answer != NULL); + assert(qname != NULL); + + tname = qname; + host.h_name = NULL; + eom = answer->buf + anslen; + switch (qtype) { + case T_A: + case T_AAAA: + name_ok = res_hnok; + break; + case T_PTR: + name_ok = res_dnok; + break; + default: + return NULL; /* XXX should be abort(); */ + } + /* + * find first satisfactory answer + */ + hp = &answer->hdr; + ancount = ntohs(hp->ancount); + qdcount = ntohs(hp->qdcount); + bp = hostbuf; + ep = hostbuf + sizeof hostbuf; + cp = answer->buf; + BOUNDED_INCR(HFIXEDSZ); + if (qdcount != 1) { + h_errno = NO_RECOVERY; + return NULL; + } + n = dn_expand(answer->buf, eom, cp, bp, (int)(ep - bp)); + if ((n < 0) || !maybe_ok(res, bp, name_ok)) { + h_errno = NO_RECOVERY; + return NULL; + } + BOUNDED_INCR(n + QFIXEDSZ); + if (qtype == T_A || qtype == T_AAAA) { + /* res_send() has already verified that the query name is the + * same as the one we sent; this just gets the expanded name + * (i.e., with the succeeding search-domain tacked on). + */ + n = (int)strlen(bp) + 1; /* for the \0 */ + if (n >= MAXHOSTNAMELEN) { + h_errno = NO_RECOVERY; + return NULL; + } + host.h_name = bp; + bp += n; + /* The qname can be abbreviated, but h_name is now absolute. */ + qname = host.h_name; + } + ap = host_aliases; + *ap = NULL; + host.h_aliases = host_aliases; + hap = h_addr_ptrs; + *hap = NULL; + host.h_addr_list = h_addr_ptrs; + haveanswer = 0; + had_error = 0; + while (ancount-- > 0 && cp < eom && !had_error) { + n = dn_expand(answer->buf, eom, cp, bp, (int)(ep - bp)); + if ((n < 0) || !maybe_ok(res, bp, name_ok)) { + had_error++; + continue; + } + cp += n; /* name */ + BOUNDS_CHECK(cp, 3 * INT16SZ + INT32SZ); + type = _getshort(cp); + cp += INT16SZ; /* type */ + class = _getshort(cp); + cp += INT16SZ + INT32SZ; /* class, TTL */ + n = _getshort(cp); + cp += INT16SZ; /* len */ + BOUNDS_CHECK(cp, n); + erdata = cp + n; + if (class != C_IN) { + /* XXX - debug? syslog? */ + cp += n; + continue; /* XXX - had_error++ ? */ + } + if ((qtype == T_A || qtype == T_AAAA) && type == T_CNAME) { + if (ap >= &host_aliases[MAXALIASES-1]) + continue; + n = dn_expand(answer->buf, eom, cp, tbuf, (int)sizeof tbuf); + if ((n < 0) || !maybe_ok(res, tbuf, name_ok)) { + had_error++; + continue; + } + cp += n; + if (cp != erdata) { + h_errno = NO_RECOVERY; + return NULL; + } + /* Store alias. */ + *ap++ = bp; + n = (int)strlen(bp) + 1; /* for the \0 */ + if (n >= MAXHOSTNAMELEN) { + had_error++; + continue; + } + bp += n; + /* Get canonical name. */ + n = (int)strlen(tbuf) + 1; /* for the \0 */ + if (n > ep - bp || n >= MAXHOSTNAMELEN) { + had_error++; + continue; + } + strlcpy(bp, tbuf, (size_t)(ep - bp)); + host.h_name = bp; + bp += n; + continue; + } + if (qtype == T_PTR && type == T_CNAME) { + n = dn_expand(answer->buf, eom, cp, tbuf, (int)sizeof tbuf); + if (n < 0 || !maybe_dnok(res, tbuf)) { + had_error++; + continue; + } + cp += n; + if (cp != erdata) { + h_errno = NO_RECOVERY; + return NULL; + } + /* Get canonical name. */ + n = (int)strlen(tbuf) + 1; /* for the \0 */ + if (n > ep - bp || n >= MAXHOSTNAMELEN) { + had_error++; + continue; + } + strlcpy(bp, tbuf, (size_t)(ep - bp)); + tname = bp; + bp += n; + continue; + } + if (type != qtype) { + if (type != T_KEY && type != T_SIG) + syslog(LOG_NOTICE|LOG_AUTH, + "gethostby*.getanswer: asked for \"%s %s %s\", got type \"%s\"", + qname, p_class(C_IN), p_type(qtype), + p_type(type)); + cp += n; + continue; /* XXX - had_error++ ? */ + } + switch (type) { + case T_PTR: + if (strcasecmp(tname, bp) != 0) { + syslog(LOG_NOTICE|LOG_AUTH, + AskedForGot, qname, bp); + cp += n; + continue; /* XXX - had_error++ ? */ + } + n = dn_expand(answer->buf, eom, cp, bp, (int)(ep - bp)); + if ((n < 0) || !maybe_hnok(res, bp)) { + had_error++; + break; + } +#if MULTI_PTRS_ARE_ALIASES + cp += n; + if (cp != erdata) { + h_errno = NO_RECOVERY; + return NULL; + } + if (!haveanswer) + host.h_name = bp; + else if (ap < &host_aliases[MAXALIASES-1]) + *ap++ = bp; + else + n = -1; + if (n != -1) { + n = (int)strlen(bp) + 1; /* for the \0 */ + if (n >= MAXHOSTNAMELEN) { + had_error++; + break; + } + bp += n; + } + break; +#else + host.h_name = bp; + if (res->options & RES_USE_INET6) { + n = strlen(bp) + 1; /* for the \0 */ + if (n >= MAXHOSTNAMELEN) { + had_error++; + break; + } + bp += n; + map_v4v6_hostent(&host, &bp, ep); + } + h_errno = NETDB_SUCCESS; + return &host; +#endif + case T_A: + case T_AAAA: + if (strcasecmp(host.h_name, bp) != 0) { + syslog(LOG_NOTICE|LOG_AUTH, + AskedForGot, host.h_name, bp); + cp += n; + continue; /* XXX - had_error++ ? */ + } + if (n != host.h_length) { + cp += n; + continue; + } + if (type == T_AAAA) { + struct in6_addr in6; + memcpy(&in6, cp, IN6ADDRSZ); + if (IN6_IS_ADDR_V4MAPPED(&in6)) { + cp += n; + continue; + } + } + if (!haveanswer) { + int nn; + + host.h_name = bp; + nn = (int)strlen(bp) + 1; /* for the \0 */ + bp += nn; + } + + bp += sizeof(align) - + (size_t)((u_long)bp % sizeof(align)); + + if (bp + n >= &hostbuf[sizeof hostbuf]) { + debugprintf("size (%d) too big\n", res, n); + had_error++; + continue; + } + if (hap >= &h_addr_ptrs[MAXADDRS-1]) { + if (!toobig++) { + debugprintf("Too many addresses (%d)\n", + res, MAXADDRS); + } + cp += n; + continue; + } + (void)memcpy(*hap++ = bp, cp, (size_t)n); + bp += n; + cp += n; + if (cp != erdata) { + h_errno = NO_RECOVERY; + return NULL; + } + break; + default: + abort(); + } + if (!had_error) + haveanswer++; + } + if (haveanswer) { + *ap = NULL; + *hap = NULL; + /* + * Note: we sort even if host can take only one address + * in its return structures - should give it the "best" + * address in that case, not some random one + */ + if (res->nsort && haveanswer > 1 && qtype == T_A) + addrsort(h_addr_ptrs, haveanswer, res); + if (!host.h_name) { + n = (int)strlen(qname) + 1; /* for the \0 */ + if (n > ep - bp || n >= MAXHOSTNAMELEN) + goto no_recovery; + strlcpy(bp, qname, (size_t)(ep - bp)); + host.h_name = bp; + bp += n; + } + if (res->options & RES_USE_INET6) + map_v4v6_hostent(&host, &bp, ep); + h_errno = NETDB_SUCCESS; + return &host; + } + no_recovery: + h_errno = NO_RECOVERY; + return NULL; +} + +struct hostent * +gethostbyname(const char *name) +{ + struct hostent *hp; + res_state res = __res_get_state(); + + if (res == NULL) + return NULL; + + assert(name != NULL); + + if (res->options & RES_USE_INET6) { + hp = gethostbyname_internal(name, AF_INET6, res); + if (hp) { + __res_put_state(res); + return hp; + } + } + hp = gethostbyname_internal(name, AF_INET, res); + __res_put_state(res); + return hp; +} + +struct hostent * +gethostbyname2(const char *name, int af) +{ + struct hostent *hp; + res_state res = __res_get_state(); + + if (res == NULL) + return NULL; + hp = gethostbyname_internal(name, af, res); + __res_put_state(res); + return hp; +} + +static struct hostent * +gethostbyname_internal(const char *name, int af, res_state res) +{ + const char *cp; + char *bp, *ep; + int size; + struct hostent *hp; + static const ns_dtab dtab[] = { + NS_FILES_CB(_gethtbyname, NULL) + { NSSRC_DNS, _dns_gethtbyname, NULL }, /* force -DHESIOD */ + NS_NIS_CB(_yp_gethtbyname, NULL) + { 0, 0, 0 } + }; + + assert(name != NULL); + + switch (af) { + case AF_INET: + size = INADDRSZ; + break; + case AF_INET6: + size = IN6ADDRSZ; + break; + default: + h_errno = NETDB_INTERNAL; + errno = EAFNOSUPPORT; + return NULL; + } + + host.h_addrtype = af; + host.h_length = size; + + /* + * if there aren't any dots, it could be a user-level alias. + * this is also done in res_nquery() since we are not the only + * function that looks up host names. + */ + if (!strchr(name, '.') && (cp = __hostalias(name))) + name = cp; + + /* + * disallow names consisting only of digits/dots, unless + * they end in a dot. + */ + if (isdigit((u_char) name[0])) + for (cp = name;; ++cp) { + if (!*cp) { + if (*--cp == '.') + break; + /* + * All-numeric, no dot at the end. + * Fake up a hostent as if we'd actually + * done a lookup. + */ + if (inet_pton(af, name, + (char *)(void *)host_addr) <= 0) { + h_errno = HOST_NOT_FOUND; + return NULL; + } + strncpy(hostbuf, name, MAXDNAME); + hostbuf[MAXDNAME] = '\0'; + bp = hostbuf + MAXDNAME; + ep = hostbuf + sizeof hostbuf; + host.h_name = hostbuf; + host.h_aliases = host_aliases; + host_aliases[0] = NULL; + h_addr_ptrs[0] = (char *)(void *)host_addr; + h_addr_ptrs[1] = NULL; + host.h_addr_list = h_addr_ptrs; + if (res->options & RES_USE_INET6) + map_v4v6_hostent(&host, &bp, ep); + h_errno = NETDB_SUCCESS; + return &host; + } + if (!isdigit((u_char) *cp) && *cp != '.') + break; + } + if ((isxdigit((u_char) name[0]) && strchr(name, ':') != NULL) || + name[0] == ':') + for (cp = name;; ++cp) { + if (!*cp) { + if (*--cp == '.') + break; + /* + * All-IPv6-legal, no dot at the end. + * Fake up a hostent as if we'd actually + * done a lookup. + */ + if (inet_pton(af, name, + (char *)(void *)host_addr) <= 0) { + h_errno = HOST_NOT_FOUND; + return NULL; + } + strncpy(hostbuf, name, MAXDNAME); + hostbuf[MAXDNAME] = '\0'; + bp = hostbuf + MAXDNAME; + ep = hostbuf + sizeof hostbuf; + host.h_name = hostbuf; + host.h_aliases = host_aliases; + host_aliases[0] = NULL; + h_addr_ptrs[0] = (char *)(void *)host_addr; + h_addr_ptrs[1] = NULL; + host.h_addr_list = h_addr_ptrs; + h_errno = NETDB_SUCCESS; + return &host; + } + if (!isxdigit((u_char) *cp) && *cp != ':' && *cp != '.') + break; + } + + hp = NULL; + h_errno = NETDB_INTERNAL; + if (nsdispatch(&hp, dtab, NSDB_HOSTS, "gethostbyname", + default_dns_files, name, strlen(name), af) != NS_SUCCESS) + return NULL; + h_errno = NETDB_SUCCESS; + return hp; +} + +struct hostent * +gethostbyaddr(const char *addr, /* XXX should have been def'd as u_char! */ + socklen_t len, int af) +{ + const u_char *uaddr = (const u_char *)addr; + socklen_t size; + struct hostent *hp; + static const ns_dtab dtab[] = { + NS_FILES_CB(_gethtbyaddr, NULL) + { NSSRC_DNS, _dns_gethtbyaddr, NULL }, /* force -DHESIOD */ + NS_NIS_CB(_yp_gethtbyaddr, NULL) + { 0, 0, 0 } + }; + + assert(addr != NULL); + + if (af == AF_INET6 && len == IN6ADDRSZ && + (IN6_IS_ADDR_LINKLOCAL((const struct in6_addr *)(const void *)uaddr) || + IN6_IS_ADDR_SITELOCAL((const struct in6_addr *)(const void *)uaddr))) { + h_errno = HOST_NOT_FOUND; + return NULL; + } + if (af == AF_INET6 && len == IN6ADDRSZ && + (IN6_IS_ADDR_V4MAPPED((const struct in6_addr *)(const void *)uaddr) || + IN6_IS_ADDR_V4COMPAT((const struct in6_addr *)(const void *)uaddr))) { + /* Unmap. */ + addr += IN6ADDRSZ - INADDRSZ; + uaddr += IN6ADDRSZ - INADDRSZ; + af = AF_INET; + len = INADDRSZ; + } + switch (af) { + case AF_INET: + size = INADDRSZ; + break; + case AF_INET6: + size = IN6ADDRSZ; + break; + default: + errno = EAFNOSUPPORT; + h_errno = NETDB_INTERNAL; + return NULL; + } + if (size != len) { + errno = EINVAL; + h_errno = NETDB_INTERNAL; + return NULL; + } + hp = NULL; + h_errno = NETDB_INTERNAL; + if (nsdispatch(&hp, dtab, NSDB_HOSTS, "gethostbyaddr", + default_dns_files, uaddr, len, af) != NS_SUCCESS) + return NULL; + h_errno = NETDB_SUCCESS; + return hp; +} + +void +_sethtent(int f) +{ + if (!hostf) { + char buffer[256]; + find_directory(B_SYSTEM_SETTINGS_DIRECTORY, 0, false, + buffer, sizeof(buffer)); + strlcat(buffer, "/network/hosts", sizeof(buffer)); + hostf = fopen(buffer, "re"); + } else + rewind(hostf); + stayopen = f; +} + +void +_endhtent(void) +{ + if (hostf && !stayopen) { + (void) fclose(hostf); + hostf = NULL; + } +} + +struct hostent * +_gethtent(void) +{ + char *p; + char *cp, **q; + int af, len; + + if (!hostf) + _sethtent(stayopen); + if (!hostf) { + h_errno = NETDB_INTERNAL; + return NULL; + } + again: + if (!(p = fgets(hostbuf, (int)sizeof hostbuf, hostf))) { + h_errno = HOST_NOT_FOUND; + return NULL; + } + if (*p == '#') + goto again; + if (!(cp = strpbrk(p, "#\n"))) + goto again; + *cp = '\0'; + if (!(cp = strpbrk(p, " \t"))) + goto again; + *cp++ = '\0'; + if (inet_pton(AF_INET6, p, (char *)(void *)host_addr) > 0) { + af = AF_INET6; + len = IN6ADDRSZ; + } else if (inet_pton(AF_INET, p, (char *)(void *)host_addr) > 0) { + res_state res = __res_get_state(); + if (res == NULL) + return NULL; + if (res->options & RES_USE_INET6) { + map_v4v6_address((char *)(void *)host_addr, + (char *)(void *)host_addr); + af = AF_INET6; + len = IN6ADDRSZ; + } else { + af = AF_INET; + len = INADDRSZ; + } + __res_put_state(res); + } else { + goto again; + } + /* if this is not something we're looking for, skip it. */ + if (host.h_addrtype != 0 && host.h_addrtype != af) + goto again; + if (host.h_length != 0 && host.h_length != len) + goto again; + h_addr_ptrs[0] = (char *)(void *)host_addr; + h_addr_ptrs[1] = NULL; + host.h_addr_list = h_addr_ptrs; + host.h_length = len; + host.h_addrtype = af; + while (*cp == ' ' || *cp == '\t') + cp++; + host.h_name = cp; + q = host.h_aliases = host_aliases; + if ((cp = strpbrk(cp, " \t")) != NULL) + *cp++ = '\0'; + while (cp && *cp) { + if (*cp == ' ' || *cp == '\t') { + cp++; + continue; + } + if (q < &host_aliases[MAXALIASES - 1]) + *q++ = cp; + if ((cp = strpbrk(cp, " \t")) != NULL) + *cp++ = '\0'; + } + *q = NULL; + h_errno = NETDB_SUCCESS; + return &host; +} + +/*ARGSUSED*/ +int +_gethtbyname(void *rv, void *cb_data, va_list ap) +{ + struct hostent *hp; + const char *name; + int af; + + assert(rv != NULL); + + name = va_arg(ap, char *); + /* NOSTRICT skip len */(void)va_arg(ap, int); + af = va_arg(ap, int); + + hp = NULL; +#if 0 + { + res_state res = __res_get_state(); + if (res == NULL) + return NS_NOTFOUND; + if (res->options & RES_USE_INET6) + hp = _gethtbyname2(name, AF_INET6); + if (hp==NULL) + hp = _gethtbyname2(name, AF_INET); + __res_put_state(res); + } +#else + hp = _gethtbyname2(name, af); +#endif + *((struct hostent **)rv) = hp; + if (hp == NULL) { + h_errno = HOST_NOT_FOUND; + return NS_NOTFOUND; + } + return NS_SUCCESS; +} + +struct hostent * +_gethtbyname2(const char *name, int af) +{ + struct hostent *p; + char *tmpbuf, *ptr, **cp; + int num; + size_t len; + + assert(name != NULL); + + _sethtent(stayopen); + ptr = tmpbuf = NULL; + num = 0; + while ((p = _gethtent()) != NULL && num < MAXADDRS) { + if (p->h_addrtype != af) + continue; + if (strcasecmp(p->h_name, name) != 0) { + for (cp = p->h_aliases; *cp != NULL; cp++) + if (strcasecmp(*cp, name) == 0) + break; + if (*cp == NULL) continue; + } + + if (num == 0) { + size_t bufsize; + char *src; + + bufsize = strlen(p->h_name) + 2 + + MAXADDRS * p->h_length + + _ALIGNBYTES; + for (cp = p->h_aliases; *cp != NULL; cp++) + bufsize += strlen(*cp) + 1; + + if ((tmpbuf = malloc(bufsize)) == NULL) { + h_errno = NETDB_INTERNAL; + return NULL; + } + + ptr = tmpbuf; + src = p->h_name; + while ((*ptr++ = *src++) != '\0'); + for (cp = p->h_aliases; *cp != NULL; cp++) { + src = *cp; + while ((*ptr++ = *src++) != '\0'); + } + *ptr++ = '\0'; + + ptr = (char *)(void *)_ALIGN(ptr); + } + + (void)memcpy(ptr, p->h_addr_list[0], (size_t)p->h_length); + ptr += p->h_length; + num++; + } + _endhtent(); + if (num == 0) return NULL; + + len = ptr - tmpbuf; + if (len > (sizeof(hostbuf) - _ALIGNBYTES)) { + free(tmpbuf); + errno = ENOSPC; + h_errno = NETDB_INTERNAL; + return NULL; + } + ptr = memcpy((void *)_ALIGN(hostbuf), tmpbuf, len); + free(tmpbuf); + + host.h_name = ptr; + while (*ptr++); + + cp = host_aliases; + while (*ptr) { + *cp++ = ptr; + while (*ptr++); + } + ptr++; + *cp = NULL; + + ptr = (char *)(void *)_ALIGN(ptr); + cp = h_addr_ptrs; + while (num--) { + *cp++ = ptr; + ptr += host.h_length; + } + *cp = NULL; + + return &host; +} + +/*ARGSUSED*/ +int +_gethtbyaddr(void *rv, void *cb_data, va_list ap) +{ + struct hostent *p; + const unsigned char *addr; + int len, af; + + assert(rv != NULL); + + addr = va_arg(ap, unsigned char *); + len = va_arg(ap, int); + af = va_arg(ap, int); + + host.h_length = len; + host.h_addrtype = af; + + _sethtent(stayopen); + while ((p = _gethtent()) != NULL) + if (p->h_addrtype == af && !memcmp(p->h_addr, addr, + (size_t)len)) + break; + _endhtent(); + *((struct hostent **)rv) = p; + if (p==NULL) { + h_errno = HOST_NOT_FOUND; + return NS_NOTFOUND; + } + return NS_SUCCESS; +} + +static void +map_v4v6_address(const char *src, char *dst) +{ + u_char *p = (u_char *)dst; + char tmp[INADDRSZ]; + int i; + + assert(src != NULL); + assert(dst != NULL); + + /* Stash a temporary copy so our caller can update in place. */ + (void)memcpy(tmp, src, INADDRSZ); + /* Mark this ipv6 addr as a mapped ipv4. */ + for (i = 0; i < 10; i++) + *p++ = 0x00; + *p++ = 0xff; + *p++ = 0xff; + /* Retrieve the saved copy and we're done. */ + (void)memcpy((void *)p, tmp, INADDRSZ); +} + +static void +map_v4v6_hostent(struct hostent *hp, char **bpp, char *ep) +{ + char **ap; + + assert(hp != NULL); + assert(bpp != NULL); + assert(ep != NULL); + + if (hp->h_addrtype != AF_INET || hp->h_length != INADDRSZ) + return; + hp->h_addrtype = AF_INET6; + hp->h_length = IN6ADDRSZ; + for (ap = hp->h_addr_list; *ap; ap++) { + int i = (int)(sizeof(align) - + (size_t)((u_long)*bpp % sizeof(align))); + + if (ep - *bpp < (i + IN6ADDRSZ)) { + /* Out of memory. Truncate address list here. XXX */ + *ap = NULL; + return; + } + *bpp += i; + map_v4v6_address(*ap, *bpp); + *ap = *bpp; + *bpp += IN6ADDRSZ; + } +} + +static void +addrsort(char **ap, int num, res_state res) +{ + int i, j; + char **p; + short aval[MAXADDRS]; + int needsort = 0; + + assert(ap != NULL); + + p = ap; + for (i = 0; i < num; i++, p++) { + for (j = 0 ; (unsigned)j < res->nsort; j++) + if (res->sort_list[j].addr.s_addr == + (((struct in_addr *)(void *)(*p))->s_addr & + res->sort_list[j].mask)) + break; + aval[i] = j; + if (needsort == 0 && i > 0 && j < aval[i-1]) + needsort = i; + } + if (!needsort) + return; + + while (needsort < num) { + for (j = needsort - 1; j >= 0; j--) { + if (aval[j] > aval[j+1]) { + char *hp; + + i = aval[j]; + aval[j] = aval[j+1]; + aval[j+1] = i; + + hp = ap[j]; + ap[j] = ap[j+1]; + ap[j+1] = hp; + } else + break; + } + needsort++; + } +} + +struct hostent * +gethostent(void) +{ + host.h_addrtype = 0; + host.h_length = 0; + return _gethtent(); +} + +/*ARGSUSED*/ +int +_dns_gethtbyname(void *rv, void *cb_data, va_list ap) +{ + querybuf *buf; + int n, type; + struct hostent *hp; + const char *name; + int af; + res_state res; + + assert(rv != NULL); + + name = va_arg(ap, char *); + /* NOSTRICT skip len */(void)va_arg(ap, int); + af = va_arg(ap, int); + + switch (af) { + case AF_INET: + type = T_A; + break; + case AF_INET6: + type = T_AAAA; + break; + default: + return NS_UNAVAIL; + } + buf = malloc(sizeof(*buf)); + if (buf == NULL) { + h_errno = NETDB_INTERNAL; + return NS_NOTFOUND; + } + res = __res_get_state(); + if (res == NULL) { + free(buf); + return NS_NOTFOUND; + } + n = res_nsearch(res, name, C_IN, type, buf->buf, (int)sizeof(buf->buf)); + if (n < 0) { + free(buf); + debugprintf("res_nsearch failed (%d)\n", res, n); + __res_put_state(res); + return NS_NOTFOUND; + } + hp = getanswer(buf, n, name, type, res); + free(buf); + __res_put_state(res); + if (hp == NULL) + switch (h_errno) { + case HOST_NOT_FOUND: + return NS_NOTFOUND; + case TRY_AGAIN: + return NS_TRYAGAIN; + default: + return NS_UNAVAIL; + } + *((struct hostent **)rv) = hp; + return NS_SUCCESS; +} + +/*ARGSUSED*/ +int +_dns_gethtbyaddr(void *rv, void *cb_data, va_list ap) +{ + char qbuf[MAXDNAME + 1], *qp, *ep; + int n; + querybuf *buf; + struct hostent *hp; + const unsigned char *uaddr; + int len, af, advance; + res_state res; + + assert(rv != NULL); + + uaddr = va_arg(ap, unsigned char *); + len = va_arg(ap, int); + af = va_arg(ap, int); + + switch (af) { + case AF_INET: + (void)snprintf(qbuf, sizeof(qbuf), "%u.%u.%u.%u.in-addr.arpa", + (uaddr[3] & 0xff), (uaddr[2] & 0xff), + (uaddr[1] & 0xff), (uaddr[0] & 0xff)); + break; + + case AF_INET6: + qp = qbuf; + ep = qbuf + sizeof(qbuf) - 1; + for (n = IN6ADDRSZ - 1; n >= 0; n--) { + advance = snprintf(qp, (size_t)(ep - qp), "%x.%x.", + uaddr[n] & 0xf, + ((unsigned int)uaddr[n] >> 4) & 0xf); + if (advance > 0 && qp + advance < ep) + qp += advance; + else { + h_errno = NETDB_INTERNAL; + return NS_NOTFOUND; + } + } + if (strlcat(qbuf, "ip6.arpa", sizeof(qbuf)) >= sizeof(qbuf)) { + h_errno = NETDB_INTERNAL; + return NS_NOTFOUND; + } + break; + default: + abort(); + } + + buf = malloc(sizeof(*buf)); + if (buf == NULL) { + h_errno = NETDB_INTERNAL; + return NS_NOTFOUND; + } + res = __res_get_state(); + if (res == NULL) { + free(buf); + return NS_NOTFOUND; + } + n = res_nquery(res, qbuf, C_IN, T_PTR, buf->buf, (int)sizeof(buf->buf)); + if (n < 0) { + free(buf); + debugprintf("res_nquery failed (%d)\n", res, n); + __res_put_state(res); + return NS_NOTFOUND; + } + hp = getanswer(buf, n, qbuf, T_PTR, res); + free(buf); + if (hp == NULL) { + __res_put_state(res); + switch (h_errno) { + case HOST_NOT_FOUND: + return NS_NOTFOUND; + case TRY_AGAIN: + return NS_TRYAGAIN; + default: + return NS_UNAVAIL; + } + } + hp->h_addrtype = af; + hp->h_length = len; + (void)memcpy(host_addr, uaddr, (size_t)len); + h_addr_ptrs[0] = (char *)(void *)host_addr; + h_addr_ptrs[1] = NULL; + if (af == AF_INET && (res->options & RES_USE_INET6)) { + map_v4v6_address((char *)(void *)host_addr, + (char *)(void *)host_addr); + hp->h_addrtype = AF_INET6; + hp->h_length = IN6ADDRSZ; + } + + __res_put_state(res); + *((struct hostent **)rv) = hp; + h_errno = NETDB_SUCCESS; + return NS_SUCCESS; +} + +#ifdef YP +/*ARGSUSED*/ +struct hostent * +_yphostent(char *line, int af) +{ + static struct in_addr host_addrs[MAXADDRS]; + static struct in6_addr host6_addrs[MAXADDRS]; + char *p = line; + char *cp, **q; + char **hap; + int addrok; + int more; + size_t naddrs; + + assert(line != NULL); + + host.h_name = NULL; + host.h_addr_list = h_addr_ptrs; + host.h_addrtype = af; + switch (af) { + case AF_INET: + host.h_length = INADDRSZ; + break; + case AF_INET6: + host.h_length = IN6ADDRSZ; + break; + default: + return NULL; + } + hap = h_addr_ptrs; + q = host.h_aliases = host_aliases; + naddrs = 0; + +nextline: + /* check for host_addrs overflow */ + if (naddrs >= sizeof(host_addrs) / sizeof(host_addrs[0])) + goto done; + if (naddrs >= sizeof(host6_addrs) / sizeof(host6_addrs[0])) + goto done; + + more = 0; + cp = strpbrk(p, " \t"); + if (cp == NULL) + goto done; + *cp++ = '\0'; + + /* p has should have an address */ + addrok = 0; + switch (af) { + case AF_INET: + addrok = inet_aton(p, &host_addrs[naddrs]); + break; + case AF_INET6: + addrok = inet_pton(af, p, &host6_addrs[naddrs]); + break; + } + if (addrok != 1) { + /* skip to the next line */ + while (cp && *cp) { + if (*cp == '\n') { + cp++; + goto nextline; + } + cp++; + } + + goto done; + } + + switch (af) { + case AF_INET: + *hap++ = (char *)(void *)&host_addrs[naddrs++]; + break; + case AF_INET6: + *hap++ = (char *)(void *)&host6_addrs[naddrs++]; + break; + } + + while (*cp == ' ' || *cp == '\t') + cp++; + p = cp; + cp = strpbrk(p, " \t\n"); + if (cp != NULL) { + if (*cp == '\n') + more = 1; + *cp++ = '\0'; + } + if (!host.h_name) + host.h_name = p; + else if (strcmp(host.h_name, p)==0) + ; + else if (q < &host_aliases[MAXALIASES - 1]) + *q++ = p; + p = cp; + if (more) + goto nextline; + + while (cp && *cp) { + if (*cp == ' ' || *cp == '\t') { + cp++; + continue; + } + if (*cp == '\n') { + cp++; + goto nextline; + } + if (q < &host_aliases[MAXALIASES - 1]) + *q++ = cp; + cp = strpbrk(cp, " \t"); + if (cp != NULL) + *cp++ = '\0'; + } + +done: + if (host.h_name == NULL) + return NULL; + *q = NULL; + *hap = NULL; + return &host; +} + +/*ARGSUSED*/ +int +_yp_gethtbyaddr(void *rv, void *cb_data, va_list ap) +{ + struct hostent *hp = NULL; + static char *__ypcurrent; + int __ypcurrentlen, r; + char name[INET6_ADDRSTRLEN]; /* XXX enough? */ + const unsigned char *uaddr; + int af; + const char *map; + + assert(rv != NULL); + + uaddr = va_arg(ap, unsigned char *); + /* NOSTRICT skip len */(void)va_arg(ap, int); + af = va_arg(ap, int); + + if (!__ypdomain) { + if (_yp_check(&__ypdomain) == 0) + return NS_UNAVAIL; + } + /* + * XXX unfortunately, we cannot support IPv6 extended scoped address + * notation here. gethostbyaddr() is not scope-aware. too bad. + */ + if (inet_ntop(af, uaddr, name, (socklen_t)sizeof(name)) == NULL) + return NS_UNAVAIL; + if (__ypcurrent) + free(__ypcurrent); + __ypcurrent = NULL; + switch (af) { + case AF_INET: + map = "hosts.byaddr"; + break; + default: + map = "ipnodes.byaddr"; + break; + } + r = yp_match(__ypdomain, map, name, + (int)strlen(name), &__ypcurrent, &__ypcurrentlen); + if (r == 0) + hp = _yphostent(__ypcurrent, af); + if (hp == NULL) { + h_errno = HOST_NOT_FOUND; + return NS_NOTFOUND; + } + *((struct hostent **)rv) = hp; + return NS_SUCCESS; +} + +/*ARGSUSED*/ +int +_yp_gethtbyname(void *rv, void *cb_data, va_list ap) +{ + struct hostent *hp = NULL; + static char *__ypcurrent; + int __ypcurrentlen, r; + const char *name; + int af; + const char *map; + + assert(rv != NULL); + + name = va_arg(ap, char *); + /* NOSTRICT skip len */(void)va_arg(ap, int); + af = va_arg(ap, int); + + if (!__ypdomain) { + if (_yp_check(&__ypdomain) == 0) + return NS_UNAVAIL; + } + if (__ypcurrent) + free(__ypcurrent); + __ypcurrent = NULL; + switch (af) { + case AF_INET: + map = "hosts.byname"; + break; + default: + map = "ipnodes.byname"; + break; + } + r = yp_match(__ypdomain, map, name, + (int)strlen(name), &__ypcurrent, &__ypcurrentlen); + if (r == 0) + hp = _yphostent(__ypcurrent, af); + if (hp == NULL) { + h_errno = HOST_NOT_FOUND; + return NS_NOTFOUND; + } + *((struct hostent **)rv) = hp; + return NS_SUCCESS; +} +#endif diff --git a/src/kits/network/libbind/irs/gethostent.c b/src/kits/network/libbind/irs/gethostent.c deleted file mode 100644 index d8c9e24b1f..0000000000 --- a/src/kits/network/libbind/irs/gethostent.c +++ /dev/null @@ -1,1070 +0,0 @@ -/* - * 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. - */ - -#if !defined(LINT) && !defined(CODECENTER) -static const char rcsid[] = "$Id: gethostent.c,v 1.8 2006/01/10 05:06:00 marka Exp $"; -#endif - -/* Imports */ - -#include "port_before.h" - -#if !defined(__BIND_NOSTATIC) - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "irs_data.h" - -/* Definitions */ - -struct pvt { - char * aliases[1]; - char * addrs[2]; - char addr[NS_IN6ADDRSZ]; - char name[NS_MAXDNAME + 1]; - struct hostent host; -}; - -/* Forward */ - -static struct net_data *init(void); -static void freepvt(struct net_data *); -static struct hostent *fakeaddr(const char *, int, struct net_data *); - - -/* Public */ - -struct hostent * -gethostbyname(const char *name) { - struct net_data *net_data = init(); - - return (gethostbyname_p(name, net_data)); -} - -struct hostent * -gethostbyname2(const char *name, int af) { - struct net_data *net_data = init(); - - return (gethostbyname2_p(name, af, net_data)); -} - -struct hostent * -gethostbyaddr(const char *addr, int len, int af) { - struct net_data *net_data = init(); - - return (gethostbyaddr_p(addr, len, af, net_data)); -} - -struct hostent * -gethostent() { - struct net_data *net_data = init(); - - return (gethostent_p(net_data)); -} - -void -sethostent(int stayopen) { - struct net_data *net_data = init(); - sethostent_p(stayopen, net_data); -} - - -void -endhostent() { - struct net_data *net_data = init(); - endhostent_p(net_data); -} - -/* Shared private. */ - -struct hostent * -gethostbyname_p(const char *name, struct net_data *net_data) { - struct hostent *hp; - - if (!net_data) - return (NULL); - - if (net_data->res->options & RES_USE_INET6) { - hp = gethostbyname2_p(name, AF_INET6, net_data); - if (hp) - return (hp); - } - return (gethostbyname2_p(name, AF_INET, net_data)); -} - -struct hostent * -gethostbyname2_p(const char *name, int af, struct net_data *net_data) { - struct irs_ho *ho; - char tmp[NS_MAXDNAME]; - struct hostent *hp; - const char *cp; - char **hap; - - if (!net_data || !(ho = net_data->ho)) - return (NULL); - if (net_data->ho_stayopen && net_data->ho_last && - net_data->ho_last->h_addrtype == af) { - if (ns_samename(name, net_data->ho_last->h_name) == 1) - return (net_data->ho_last); - for (hap = net_data->ho_last->h_aliases; hap && *hap; hap++) - if (ns_samename(name, *hap) == 1) - return (net_data->ho_last); - } - if (!strchr(name, '.') && (cp = res_hostalias(net_data->res, name, - tmp, sizeof tmp))) - name = cp; - if ((hp = fakeaddr(name, af, net_data)) != NULL) - return (hp); - net_data->ho_last = (*ho->byname2)(ho, name, af); - if (!net_data->ho_stayopen) - endhostent(); - return (net_data->ho_last); -} - -struct hostent * -gethostbyaddr_p(const char *addr, int len, int af, struct net_data *net_data) { - struct irs_ho *ho; - char **hap; - - if (!net_data || !(ho = net_data->ho)) - return (NULL); - if (net_data->ho_stayopen && net_data->ho_last && - net_data->ho_last->h_length == len) - for (hap = net_data->ho_last->h_addr_list; - hap && *hap; - hap++) - if (!memcmp(addr, *hap, len)) - return (net_data->ho_last); - net_data->ho_last = (*ho->byaddr)(ho, addr, len, af); - if (!net_data->ho_stayopen) - endhostent(); - return (net_data->ho_last); -} - - -struct hostent * -gethostent_p(struct net_data *net_data) { - struct irs_ho *ho; - struct hostent *hp; - - if (!net_data || !(ho = net_data->ho)) - return (NULL); - while ((hp = (*ho->next)(ho)) != NULL && - hp->h_addrtype == AF_INET6 && - (net_data->res->options & RES_USE_INET6) == 0U) - continue; - net_data->ho_last = hp; - return (net_data->ho_last); -} - - -void -sethostent_p(int stayopen, struct net_data *net_data) { - struct irs_ho *ho; - - if (!net_data || !(ho = net_data->ho)) - return; - freepvt(net_data); - (*ho->rewind)(ho); - net_data->ho_stayopen = (stayopen != 0); - if (stayopen == 0) - net_data_minimize(net_data); -} - -void -endhostent_p(struct net_data *net_data) { - struct irs_ho *ho; - - if ((net_data != NULL) && ((ho = net_data->ho) != NULL)) - (*ho->minimize)(ho); -} - -#ifndef IN6_IS_ADDR_V4COMPAT -static const unsigned char in6addr_compat[12] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; -#define IN6_IS_ADDR_V4COMPAT(x) (!memcmp((x)->s6_addr, in6addr_compat, 12) && \ - ((x)->s6_addr[12] != 0 || \ - (x)->s6_addr[13] != 0 || \ - (x)->s6_addr[14] != 0 || \ - ((x)->s6_addr[15] != 0 && \ - (x)->s6_addr[15] != 1))) -#endif -#ifndef IN6_IS_ADDR_V4MAPPED -#define IN6_IS_ADDR_V4MAPPED(x) (!memcmp((x)->s6_addr, in6addr_mapped, 12)) -#endif - -static const unsigned char in6addr_mapped[12] = { - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff }; - -static int scan_interfaces(int *, int *); -static struct hostent *copyandmerge(struct hostent *, struct hostent *, int, int *); - -/*% - * Public functions - */ - -/*% - * AI_V4MAPPED + AF_INET6 - * If no IPv6 address then a query for IPv4 and map returned values. - * - * AI_ALL + AI_V4MAPPED + AF_INET6 - * Return IPv6 and IPv4 mapped. - * - * AI_ADDRCONFIG - * Only return IPv6 / IPv4 address if there is an interface of that - * type active. - */ - -struct hostent * -getipnodebyname(const char *name, int af, int flags, int *error_num) { - int have_v4 = 1, have_v6 = 1; - struct in_addr in4; - struct in6_addr in6; - struct hostent he, *he1 = NULL, *he2 = NULL, *he3; - int v4 = 0, v6 = 0; - struct net_data *net_data = init(); - u_long options; - int tmp_err; - - if (net_data == NULL) { - *error_num = NO_RECOVERY; - return (NULL); - } - - /* If we care about active interfaces then check. */ - if ((flags & AI_ADDRCONFIG) != 0) - if (scan_interfaces(&have_v4, &have_v6) == -1) { - *error_num = NO_RECOVERY; - return (NULL); - } - - /* Check for literal address. */ - if ((v4 = inet_pton(AF_INET, name, &in4)) != 1) - v6 = inet_pton(AF_INET6, name, &in6); - - /* Impossible combination? */ - - if ((af == AF_INET6 && (flags & AI_V4MAPPED) == 0 && v4 == 1) || - (af == AF_INET && v6 == 1) || - (have_v4 == 0 && v4 == 1) || - (have_v6 == 0 && v6 == 1) || - (have_v4 == 0 && af == AF_INET) || - (have_v6 == 0 && af == AF_INET6)) { - *error_num = HOST_NOT_FOUND; - return (NULL); - } - - /* Literal address? */ - if (v4 == 1 || v6 == 1) { - char *addr_list[2]; - char *aliases[1]; - - DE_CONST(name, he.h_name); - he.h_addr_list = addr_list; - he.h_addr_list[0] = (v4 == 1) ? (char *)&in4 : (char *)&in6; - he.h_addr_list[1] = NULL; - he.h_aliases = aliases; - he.h_aliases[0] = NULL; - he.h_length = (v4 == 1) ? INADDRSZ : IN6ADDRSZ; - he.h_addrtype = (v4 == 1) ? AF_INET : AF_INET6; - return (copyandmerge(&he, NULL, af, error_num)); - } - - options = net_data->res->options; - net_data->res->options &= ~RES_USE_INET6; - - tmp_err = NO_RECOVERY; - if (have_v6 && af == AF_INET6) { - he2 = gethostbyname2_p(name, AF_INET6, net_data); - if (he2 != NULL) { - he1 = copyandmerge(he2, NULL, af, error_num); - if (he1 == NULL) - return (NULL); - he2 = NULL; - } else { - tmp_err = net_data->res->res_h_errno; - } - } - - if (have_v4 && - ((af == AF_INET) || - (af == AF_INET6 && (flags & AI_V4MAPPED) != 0 && - (he1 == NULL || (flags & AI_ALL) != 0)))) { - he2 = gethostbyname2_p(name, AF_INET, net_data); - if (he1 == NULL && he2 == NULL) { - *error_num = net_data->res->res_h_errno; - return (NULL); - } - } else - *error_num = tmp_err; - - net_data->res->options = options; - - he3 = copyandmerge(he1, he2, af, error_num); - - if (he1 != NULL) - freehostent(he1); - return (he3); -} - -struct hostent * -getipnodebyaddr(const void *src, size_t len, int af, int *error_num) { - struct hostent *he1, *he2; - struct net_data *net_data = init(); - - /* Sanity Checks. */ - if (src == NULL) { - *error_num = NO_RECOVERY; - return (NULL); - } - - switch (af) { - case AF_INET: - if (len != (size_t)INADDRSZ) { - *error_num = NO_RECOVERY; - return (NULL); - } - break; - case AF_INET6: - if (len != (size_t)IN6ADDRSZ) { - *error_num = NO_RECOVERY; - return (NULL); - } - break; - default: - *error_num = NO_RECOVERY; - return (NULL); - } - - /* - * Lookup IPv4 and IPv4 mapped/compatible addresses - */ - if ((af == AF_INET6 && - IN6_IS_ADDR_V4COMPAT((const struct in6_addr *)src)) || - (af == AF_INET6 && - IN6_IS_ADDR_V4MAPPED((const struct in6_addr *)src)) || - (af == AF_INET)) { - const char *cp = src; - - if (af == AF_INET6) - cp += 12; - he1 = gethostbyaddr_p(cp, 4, AF_INET, net_data); - if (he1 == NULL) { - *error_num = net_data->res->res_h_errno; - return (NULL); - } - he2 = copyandmerge(he1, NULL, af, error_num); - if (he2 == NULL) - return (NULL); - /* - * Restore original address if mapped/compatible. - */ - if (af == AF_INET6) - memcpy(he1->h_addr, src, len); - return (he2); - } - - /* - * Lookup IPv6 address. - */ - if (memcmp((const struct in6_addr *)src, &in6addr_any, 16) == 0) { - *error_num = HOST_NOT_FOUND; - return (NULL); - } - - he1 = gethostbyaddr_p(src, 16, AF_INET6, net_data); - if (he1 == NULL) { - *error_num = net_data->res->res_h_errno; - return (NULL); - } - return (copyandmerge(he1, NULL, af, error_num)); -} - -void -freehostent(struct hostent *he) { - char **cpp; - int names = 1; - int addresses = 1; - - memput(he->h_name, strlen(he->h_name) + 1); - - cpp = he->h_addr_list; - while (*cpp != NULL) { - memput(*cpp, (he->h_addrtype == AF_INET) ? - INADDRSZ : IN6ADDRSZ); - *cpp = NULL; - cpp++; - addresses++; - } - - cpp = he->h_aliases; - while (*cpp != NULL) { - memput(*cpp, strlen(*cpp) + 1); - cpp++; - names++; - } - - memput(he->h_aliases, sizeof(char *) * (names)); - memput(he->h_addr_list, sizeof(char *) * (addresses)); - memput(he, sizeof *he); -} - -/*% - * Private - */ - -/*% - * Scan the interface table and set have_v4 and have_v6 depending - * upon whether there are IPv4 and IPv6 interface addresses. - * - * Returns: - * 0 on success - * -1 on failure. - */ - -#if defined(SIOCGLIFCONF) && defined(SIOCGLIFADDR) && \ - !defined(IRIX_EMUL_IOCTL_SIOCGIFCONF) - -#ifdef __hpux -#define lifc_len iflc_len -#define lifc_buf iflc_buf -#define lifc_req iflc_req -#define LIFCONF if_laddrconf -#else -#define SETFAMILYFLAGS -#define LIFCONF lifconf -#endif - -#ifdef __hpux -#define lifr_addr iflr_addr -#define lifr_name iflr_name -#define lifr_dstaddr iflr_dstaddr -#define lifr_flags iflr_flags -#define ss_family sa_family -#define LIFREQ if_laddrreq -#else -#define LIFREQ lifreq -#endif - -static void -scan_interfaces6(int *have_v4, int *have_v6) { - struct LIFCONF lifc; - struct LIFREQ lifreq; - struct in_addr in4; - struct in6_addr in6; - char *buf = NULL, *cp, *cplim; - static unsigned int bufsiz = 4095; - int s, cpsize, n; - - /* Get interface list from system. */ - if ((s = socket(AF_INET6, SOCK_DGRAM, 0)) == -1) - goto cleanup; - - /* - * Grow buffer until large enough to contain all interface - * descriptions. - */ - for (;;) { - buf = memget(bufsiz); - if (buf == NULL) - goto cleanup; -#ifdef SETFAMILYFLAGS - lifc.lifc_family = AF_UNSPEC; /*%< request all families */ - lifc.lifc_flags = 0; -#endif - lifc.lifc_len = bufsiz; - lifc.lifc_buf = buf; - if ((n = ioctl(s, SIOCGLIFCONF, (char *)&lifc)) != -1) { - /* - * Some OS's just return what will fit rather - * than set EINVAL if the buffer is too small - * to fit all the interfaces in. If - * lifc.lifc_len is too near to the end of the - * buffer we will grow it just in case and - * retry. - */ - if (lifc.lifc_len + 2 * sizeof(lifreq) < bufsiz) - break; - } - if ((n == -1) && errno != EINVAL) - goto cleanup; - - if (bufsiz > 1000000) - goto cleanup; - - memput(buf, bufsiz); - bufsiz += 4096; - } - - /* Parse system's interface list. */ - cplim = buf + lifc.lifc_len; /*%< skip over if's with big ifr_addr's */ - for (cp = buf; - (*have_v4 == 0 || *have_v6 == 0) && cp < cplim; - cp += cpsize) { - memcpy(&lifreq, cp, sizeof lifreq); -#ifdef HAVE_SA_LEN -#ifdef FIX_ZERO_SA_LEN - if (lifreq.lifr_addr.sa_len == 0) - lifreq.lifr_addr.sa_len = 16; -#endif -#ifdef HAVE_MINIMUM_IFREQ - cpsize = sizeof lifreq; - if (lifreq.lifr_addr.sa_len > sizeof (struct sockaddr)) - cpsize += (int)lifreq.lifr_addr.sa_len - - (int)(sizeof (struct sockaddr)); -#else - cpsize = sizeof lifreq.lifr_name + lifreq.lifr_addr.sa_len; -#endif /* HAVE_MINIMUM_IFREQ */ -#elif defined SIOCGIFCONF_ADDR - cpsize = sizeof lifreq; -#else - cpsize = sizeof lifreq.lifr_name; - /* XXX maybe this should be a hard error? */ - if (ioctl(s, SIOCGLIFADDR, (char *)&lifreq) < 0) - continue; -#endif - switch (lifreq.lifr_addr.ss_family) { - case AF_INET: - if (*have_v4 == 0) { - memcpy(&in4, - &((struct sockaddr_in *) - &lifreq.lifr_addr)->sin_addr, - sizeof in4); - if (in4.s_addr == INADDR_ANY) - break; - n = ioctl(s, SIOCGLIFFLAGS, (char *)&lifreq); - if (n < 0) - break; - if ((lifreq.lifr_flags & IFF_UP) == 0) - break; - *have_v4 = 1; - } - break; - case AF_INET6: - if (*have_v6 == 0) { - memcpy(&in6, - &((struct sockaddr_in6 *) - &lifreq.lifr_addr)->sin6_addr, sizeof in6); - if (memcmp(&in6, &in6addr_any, sizeof in6) == 0) - break; - n = ioctl(s, SIOCGLIFFLAGS, (char *)&lifreq); - if (n < 0) - break; - if ((lifreq.lifr_flags & IFF_UP) == 0) - break; - *have_v6 = 1; - } - break; - } - } - if (buf != NULL) - memput(buf, bufsiz); - close(s); - /* printf("scan interface -> 4=%d 6=%d\n", *have_v4, *have_v6); */ - return; - cleanup: - if (buf != NULL) - memput(buf, bufsiz); - if (s != -1) - close(s); - /* printf("scan interface -> 4=%d 6=%d\n", *have_v4, *have_v6); */ - return; -} -#endif - -#if ( defined(__linux__) || defined(__linux) || defined(LINUX) ) -#ifndef IF_NAMESIZE -# ifdef IFNAMSIZ -# define IF_NAMESIZE IFNAMSIZ -# else -# define IF_NAMESIZE 16 -# endif -#endif -static void -scan_linux6(int *have_v6) { - FILE *proc = NULL; - char address[33]; - char name[IF_NAMESIZE+1]; - int ifindex, prefix, flag3, flag4; - - proc = fopen("/proc/net/if_inet6", "r"); - if (proc == NULL) - return; - - if (fscanf(proc, "%32[a-f0-9] %x %x %x %x %16s\n", - address, &ifindex, &prefix, &flag3, &flag4, name) == 6) - *have_v6 = 1; - fclose(proc); - return; -} -#endif - -static int -scan_interfaces(int *have_v4, int *have_v6) { - struct ifconf ifc; - union { - char _pad[256]; /*%< leave space for IPv6 addresses */ - struct ifreq ifreq; - } u; - struct in_addr in4; - struct in6_addr in6; - char *buf = NULL, *cp, *cplim; - static unsigned int bufsiz = 4095; - int s, n; - size_t cpsize; - - /* Set to zero. Used as loop terminators below. */ - *have_v4 = *have_v6 = 0; - -#if defined(SIOCGLIFCONF) && defined(SIOCGLIFADDR) && \ - !defined(IRIX_EMUL_IOCTL_SIOCGIFCONF) - /* - * Try to scan the interfaces using IPv6 ioctls(). - */ - scan_interfaces6(have_v4, have_v6); - if (*have_v4 != 0 && *have_v6 != 0) - return (0); -#endif -#ifdef __linux - scan_linux6(have_v6); -#endif - - /* Get interface list from system. */ - if ((s = socket(AF_INET, SOCK_DGRAM, 0)) == -1) - goto err_ret; - - /* - * Grow buffer until large enough to contain all interface - * descriptions. - */ - for (;;) { - buf = memget(bufsiz); - if (buf == NULL) - goto err_ret; - ifc.ifc_len = bufsiz; - ifc.ifc_buf = buf; -#ifdef IRIX_EMUL_IOCTL_SIOCGIFCONF - /* - * This is a fix for IRIX OS in which the call to ioctl with - * the flag SIOCGIFCONF may not return an entry for all the - * interfaces like most flavors of Unix. - */ - if (emul_ioctl(&ifc) >= 0) - break; -#else - if ((n = ioctl(s, SIOCGIFCONF, (char *)&ifc)) != -1) { - /* - * Some OS's just return what will fit rather - * than set EINVAL if the buffer is too small - * to fit all the interfaces in. If - * ifc.ifc_len is too near to the end of the - * buffer we will grow it just in case and - * retry. - */ - if (ifc.ifc_len + 2 * sizeof(u.ifreq) < bufsiz) - break; - } -#endif - if ((n == -1) && errno != EINVAL) - goto err_ret; - - if (bufsiz > 1000000) - goto err_ret; - - memput(buf, bufsiz); - bufsiz += 4096; - } - - /* Parse system's interface list. */ - cplim = buf + ifc.ifc_len; /*%< skip over if's with big ifr_addr's */ - for (cp = buf; - (*have_v4 == 0 || *have_v6 == 0) && cp < cplim; - cp += cpsize) { - memcpy(&u.ifreq, cp, sizeof u.ifreq); -#ifdef HAVE_SA_LEN -#ifdef FIX_ZERO_SA_LEN - if (u.ifreq.ifr_addr.sa_len == 0) - u.ifreq.ifr_addr.sa_len = 16; -#endif -#ifdef HAVE_MINIMUM_IFREQ - cpsize = sizeof u.ifreq; - if (u.ifreq.ifr_addr.sa_len > sizeof (struct sockaddr)) - cpsize += (int)u.ifreq.ifr_addr.sa_len - - (int)(sizeof (struct sockaddr)); -#else - cpsize = sizeof u.ifreq.ifr_name + u.ifreq.ifr_addr.sa_len; -#endif /* HAVE_MINIMUM_IFREQ */ - if (cpsize > sizeof u.ifreq && cpsize <= sizeof u) - memcpy(&u.ifreq, cp, cpsize); -#elif defined SIOCGIFCONF_ADDR - cpsize = sizeof u.ifreq; -#else - cpsize = sizeof u.ifreq.ifr_name; - /* XXX maybe this should be a hard error? */ - if (ioctl(s, SIOCGIFADDR, (char *)&u.ifreq) < 0) - continue; -#endif - switch (u.ifreq.ifr_addr.sa_family) { - case AF_INET: - if (*have_v4 == 0) { - memcpy(&in4, - &((struct sockaddr_in *) - &u.ifreq.ifr_addr)->sin_addr, - sizeof in4); - if (in4.s_addr == INADDR_ANY) - break; - n = ioctl(s, SIOCGIFFLAGS, (char *)&u.ifreq); - if (n < 0) - break; - if ((u.ifreq.ifr_flags & IFF_UP) == 0) - break; - *have_v4 = 1; - } - break; - case AF_INET6: - if (*have_v6 == 0) { - memcpy(&in6, - &((struct sockaddr_in6 *) - &u.ifreq.ifr_addr)->sin6_addr, - sizeof in6); - if (memcmp(&in6, &in6addr_any, sizeof in6) == 0) - break; - n = ioctl(s, SIOCGIFFLAGS, (char *)&u.ifreq); - if (n < 0) - break; - if ((u.ifreq.ifr_flags & IFF_UP) == 0) - break; - *have_v6 = 1; - } - break; - } - } - if (buf != NULL) - memput(buf, bufsiz); - close(s); - /* printf("scan interface -> 4=%d 6=%d\n", *have_v4, *have_v6); */ - return (0); - err_ret: - if (buf != NULL) - memput(buf, bufsiz); - if (s != -1) - close(s); - /* printf("scan interface -> 4=%d 6=%d\n", *have_v4, *have_v6); */ - return (-1); -} - -static struct hostent * -copyandmerge(struct hostent *he1, struct hostent *he2, int af, int *error_num) { - struct hostent *he = NULL; - int addresses = 1; /*%< NULL terminator */ - int names = 1; /*%< NULL terminator */ - int len = 0; - char **cpp, **npp; - - /* - * Work out array sizes; - */ - if (he1 != NULL) { - cpp = he1->h_addr_list; - while (*cpp != NULL) { - addresses++; - cpp++; - } - cpp = he1->h_aliases; - while (*cpp != NULL) { - names++; - cpp++; - } - } - - if (he2 != NULL) { - cpp = he2->h_addr_list; - while (*cpp != NULL) { - addresses++; - cpp++; - } - if (he1 == NULL) { - cpp = he2->h_aliases; - while (*cpp != NULL) { - names++; - cpp++; - } - } - } - - if (addresses == 1) { - *error_num = NO_ADDRESS; - return (NULL); - } - - he = memget(sizeof *he); - if (he == NULL) - goto no_recovery; - - he->h_addr_list = memget(sizeof(char *) * (addresses)); - if (he->h_addr_list == NULL) - goto cleanup0; - memset(he->h_addr_list, 0, sizeof(char *) * (addresses)); - - /* copy addresses */ - npp = he->h_addr_list; - if (he1 != NULL) { - cpp = he1->h_addr_list; - while (*cpp != NULL) { - *npp = memget((af == AF_INET) ? INADDRSZ : IN6ADDRSZ); - if (*npp == NULL) - goto cleanup1; - /* convert to mapped if required */ - if (af == AF_INET6 && he1->h_addrtype == AF_INET) { - memcpy(*npp, in6addr_mapped, - sizeof in6addr_mapped); - memcpy(*npp + sizeof in6addr_mapped, *cpp, - INADDRSZ); - } else { - memcpy(*npp, *cpp, - (af == AF_INET) ? INADDRSZ : IN6ADDRSZ); - } - cpp++; - npp++; - } - } - - if (he2 != NULL) { - cpp = he2->h_addr_list; - while (*cpp != NULL) { - *npp = memget((af == AF_INET) ? INADDRSZ : IN6ADDRSZ); - if (*npp == NULL) - goto cleanup1; - /* convert to mapped if required */ - if (af == AF_INET6 && he2->h_addrtype == AF_INET) { - memcpy(*npp, in6addr_mapped, - sizeof in6addr_mapped); - memcpy(*npp + sizeof in6addr_mapped, *cpp, - INADDRSZ); - } else { - memcpy(*npp, *cpp, - (af == AF_INET) ? INADDRSZ : IN6ADDRSZ); - } - cpp++; - npp++; - } - } - - he->h_aliases = memget(sizeof(char *) * (names)); - if (he->h_aliases == NULL) - goto cleanup1; - memset(he->h_aliases, 0, sizeof(char *) * (names)); - - /* copy aliases */ - npp = he->h_aliases; - cpp = (he1 != NULL) ? he1->h_aliases : he2->h_aliases; - while (*cpp != NULL) { - len = strlen (*cpp) + 1; - *npp = memget(len); - if (*npp == NULL) - goto cleanup2; - strcpy(*npp, *cpp); - npp++; - cpp++; - } - - /* copy hostname */ - he->h_name = memget(strlen((he1 != NULL) ? - he1->h_name : he2->h_name) + 1); - if (he->h_name == NULL) - goto cleanup2; - strcpy(he->h_name, (he1 != NULL) ? he1->h_name : he2->h_name); - - /* set address type and length */ - he->h_addrtype = af; - he->h_length = (af == AF_INET) ? INADDRSZ : IN6ADDRSZ; - return(he); - - cleanup2: - cpp = he->h_aliases; - while (*cpp != NULL) { - memput(*cpp, strlen(*cpp) + 1); - cpp++; - } - memput(he->h_aliases, sizeof(char *) * (names)); - - cleanup1: - cpp = he->h_addr_list; - while (*cpp != NULL) { - memput(*cpp, (af == AF_INET) ? INADDRSZ : IN6ADDRSZ); - *cpp = NULL; - cpp++; - } - memput(he->h_addr_list, sizeof(char *) * (addresses)); - - cleanup0: - memput(he, sizeof *he); - - no_recovery: - *error_num = NO_RECOVERY; - return (NULL); -} - -static struct net_data * -init() { - struct net_data *net_data; - - if (!(net_data = net_data_init(NULL))) - goto error; - if (!net_data->ho) { - net_data->ho = (*net_data->irs->ho_map)(net_data->irs); - if (!net_data->ho || !net_data->res) { - error: - errno = EIO; - if (net_data && net_data->res) - RES_SET_H_ERRNO(net_data->res, NETDB_INTERNAL); - return (NULL); - } - - (*net_data->ho->res_set)(net_data->ho, net_data->res, NULL); - } - - return (net_data); -} - -static void -freepvt(struct net_data *net_data) { - if (net_data->ho_data) { - free(net_data->ho_data); - net_data->ho_data = NULL; - } -} - -static struct hostent * -fakeaddr(const char *name, int af, struct net_data *net_data) { - struct pvt *pvt; - - freepvt(net_data); - net_data->ho_data = malloc(sizeof (struct pvt)); - if (!net_data->ho_data) { - errno = ENOMEM; - RES_SET_H_ERRNO(net_data->res, NETDB_INTERNAL); - return (NULL); - } - pvt = net_data->ho_data; -#ifndef __bsdi__ - /* - * Unlike its forebear(inet_aton), our friendly inet_pton() is strict - * in its interpretation of its input, and it will only return "1" if - * the input string is a formally valid(and thus unambiguous with - * respect to host names) internet address specification for this AF. - * - * This means "telnet 0xdeadbeef" and "telnet 127.1" are dead now. - */ - if (inet_pton(af, name, pvt->addr) != 1) { -#else - /* BSDI XXX - * We put this back to inet_aton -- we really want the old behavior - * Long live 127.1... - */ - if ((af != AF_INET || - inet_aton(name, (struct in_addr *)pvt->addr) != 1) && - inet_pton(af, name, pvt->addr) != 1) { -#endif - RES_SET_H_ERRNO(net_data->res, HOST_NOT_FOUND); - return (NULL); - } - strncpy(pvt->name, name, NS_MAXDNAME); - pvt->name[NS_MAXDNAME] = '\0'; - if (af == AF_INET && (net_data->res->options & RES_USE_INET6) != 0U) { - map_v4v6_address(pvt->addr, pvt->addr); - af = AF_INET6; - } - pvt->host.h_addrtype = af; - switch(af) { - case AF_INET: - pvt->host.h_length = NS_INADDRSZ; - break; - case AF_INET6: - pvt->host.h_length = NS_IN6ADDRSZ; - break; - default: - errno = EAFNOSUPPORT; - RES_SET_H_ERRNO(net_data->res, NETDB_INTERNAL); - return (NULL); - } - pvt->host.h_name = pvt->name; - pvt->host.h_aliases = pvt->aliases; - pvt->aliases[0] = NULL; - pvt->addrs[0] = (char *)pvt->addr; - pvt->addrs[1] = NULL; - pvt->host.h_addr_list = pvt->addrs; - RES_SET_H_ERRNO(net_data->res, NETDB_SUCCESS); - return (&pvt->host); -} - -#ifdef grot /*%< for future use in gethostbyaddr(), for "SUNSECURITY" */ - struct hostent *rhp; - char **haddr; - u_long old_options; - char hname2[MAXDNAME+1]; - - if (af == AF_INET) { - /* - * turn off search as the name should be absolute, - * 'localhost' should be matched by defnames - */ - strncpy(hname2, hp->h_name, MAXDNAME); - hname2[MAXDNAME] = '\0'; - old_options = net_data->res->options; - net_data->res->options &= ~RES_DNSRCH; - net_data->res->options |= RES_DEFNAMES; - if (!(rhp = gethostbyname(hname2))) { - net_data->res->options = old_options; - RES_SET_H_ERRNO(net_data->res, HOST_NOT_FOUND); - return (NULL); - } - net_data->res->options = old_options; - for (haddr = rhp->h_addr_list; *haddr; haddr++) - if (!memcmp(*haddr, addr, INADDRSZ)) - break; - if (!*haddr) { - RES_SET_H_ERRNO(net_data->res, HOST_NOT_FOUND); - return (NULL); - } - } -#endif /* grot */ -#endif /*__BIND_NOSTATIC*/ - -/*! \file */ diff --git a/src/kits/network/libbind/irs/gethostent_r.c b/src/kits/network/libbind/irs/gethostent_r.c deleted file mode 100644 index 9b5fcc783b..0000000000 --- a/src/kits/network/libbind/irs/gethostent_r.c +++ /dev/null @@ -1,275 +0,0 @@ -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 1998-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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: gethostent_r.c,v 1.9 2005/09/03 12:41:37 marka Exp $"; -#endif /* LIBC_SCCS and not lint */ - -#include -#if !defined(_REENTRANT) || !defined(DO_PTHREADS) - static int gethostent_r_not_required = 0; -#else -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef HOST_R_RETURN - -static HOST_R_RETURN -copy_hostent(struct hostent *, struct hostent *, HOST_R_COPY_ARGS); - -HOST_R_RETURN -gethostbyname_r(const char *name, struct hostent *hptr, HOST_R_ARGS) { - struct hostent *he = gethostbyname(name); -#ifdef HOST_R_SETANSWER - int n = 0; -#endif - -#ifdef HOST_R_ERRNO - HOST_R_ERRNO; -#endif - -#ifdef HOST_R_SETANSWER - if (he == NULL || (n = copy_hostent(he, hptr, HOST_R_COPY)) != 0) - *answerp = NULL; - else - *answerp = hptr; - - return (n); -#else - if (he == NULL) - return (HOST_R_BAD); - - return (copy_hostent(he, hptr, HOST_R_COPY)); -#endif -} - -HOST_R_RETURN -gethostbyaddr_r(const char *addr, int len, int type, - struct hostent *hptr, HOST_R_ARGS) { - struct hostent *he = gethostbyaddr(addr, len, type); -#ifdef HOST_R_SETANSWER - int n = 0; -#endif - -#ifdef HOST_R_ERRNO - HOST_R_ERRNO; -#endif - -#ifdef HOST_R_SETANSWER - if (he == NULL || (n = copy_hostent(he, hptr, HOST_R_COPY)) != 0) - *answerp = NULL; - else - *answerp = hptr; - - return (n); -#else - if (he == NULL) - return (HOST_R_BAD); - - return (copy_hostent(he, hptr, HOST_R_COPY)); -#endif -} - -/*% - * These assume a single context is in operation per thread. - * If this is not the case we will need to call irs directly - * rather than through the base functions. - */ - -HOST_R_RETURN -gethostent_r(struct hostent *hptr, HOST_R_ARGS) { - struct hostent *he = gethostent(); -#ifdef HOST_R_SETANSWER - int n = 0; -#endif - -#ifdef HOST_R_ERRNO - HOST_R_ERRNO; -#endif - -#ifdef HOST_R_SETANSWER - if (he == NULL || (n = copy_hostent(he, hptr, HOST_R_COPY)) != 0) - *answerp = NULL; - else - *answerp = hptr; - - return (n); -#else - if (he == NULL) - return (HOST_R_BAD); - - return (copy_hostent(he, hptr, HOST_R_COPY)); -#endif -} - -HOST_R_SET_RETURN -#ifdef HOST_R_ENT_ARGS -sethostent_r(int stay_open, HOST_R_ENT_ARGS) -#else -sethostent_r(int stay_open) -#endif -{ -#ifdef HOST_R_ENT_ARGS - UNUSED(hdptr); -#endif - sethostent(stay_open); -#ifdef HOST_R_SET_RESULT - return (HOST_R_SET_RESULT); -#endif -} - -HOST_R_END_RETURN -#ifdef HOST_R_ENT_ARGS -endhostent_r(HOST_R_ENT_ARGS) -#else -endhostent_r(void) -#endif -{ -#ifdef HOST_R_ENT_ARGS - UNUSED(hdptr); -#endif - endhostent(); - HOST_R_END_RESULT(HOST_R_OK); -} - -/* Private */ - -#ifndef HOSTENT_DATA -static HOST_R_RETURN -copy_hostent(struct hostent *he, struct hostent *hptr, HOST_R_COPY_ARGS) { - char *cp; - char **ptr; - int i, n; - int nptr, len; - - /* Find out the amount of space required to store the answer. */ - nptr = 2; /*%< NULL ptrs */ - len = (char *)ALIGN(buf) - buf; - for (i = 0; he->h_addr_list[i]; i++, nptr++) { - len += he->h_length; - } - for (i = 0; he->h_aliases[i]; i++, nptr++) { - len += strlen(he->h_aliases[i]) + 1; - } - len += strlen(he->h_name) + 1; - len += nptr * sizeof(char*); - - if (len > buflen) { - errno = ERANGE; - return (HOST_R_BAD); - } - - /* copy address size and type */ - hptr->h_addrtype = he->h_addrtype; - n = hptr->h_length = he->h_length; - - ptr = (char **)ALIGN(buf); - cp = (char *)ALIGN(buf) + nptr * sizeof(char *); - - /* copy address list */ - hptr->h_addr_list = ptr; - for (i = 0; he->h_addr_list[i]; i++ , ptr++) { - memcpy(cp, he->h_addr_list[i], n); - hptr->h_addr_list[i] = cp; - cp += n; - } - hptr->h_addr_list[i] = NULL; - ptr++; - - /* copy official name */ - n = strlen(he->h_name) + 1; - strcpy(cp, he->h_name); - hptr->h_name = cp; - cp += n; - - /* copy aliases */ - hptr->h_aliases = ptr; - for (i = 0 ; he->h_aliases[i]; i++) { - n = strlen(he->h_aliases[i]) + 1; - strcpy(cp, he->h_aliases[i]); - hptr->h_aliases[i] = cp; - cp += n; - } - hptr->h_aliases[i] = NULL; - - return (HOST_R_OK); -} -#else /* !HOSTENT_DATA */ -static int -copy_hostent(struct hostent *he, struct hostent *hptr, HOST_R_COPY_ARGS) { - char *cp, *eob; - int i, n; - - /* copy address size and type */ - hptr->h_addrtype = he->h_addrtype; - n = hptr->h_length = he->h_length; - - /* copy up to first 35 addresses */ - i = 0; - cp = hdptr->hostbuf; - eob = hdptr->hostbuf + sizeof(hdptr->hostbuf); - hptr->h_addr_list = hdptr->h_addr_ptrs; - while (he->h_addr_list[i] && i < (_MAXADDRS)) { - if (n < (eob - cp)) { - memcpy(cp, he->h_addr_list[i], n); - hptr->h_addr_list[i] = cp; - cp += n; - } else { - break; - } - i++; - } - hptr->h_addr_list[i] = NULL; - - /* copy official name */ - if ((n = strlen(he->h_name) + 1) < (eob - cp)) { - strcpy(cp, he->h_name); - hptr->h_name = cp; - cp += n; - } else { - return (-1); - } - - /* copy aliases */ - i = 0; - hptr->h_aliases = hdptr->host_aliases; - while (he->h_aliases[i] && i < (_MAXALIASES-1)) { - if ((n = strlen(he->h_aliases[i]) + 1) < (eob - cp)) { - strcpy(cp, he->h_aliases[i]); - hptr->h_aliases[i] = cp; - cp += n; - } else { - break; - } - i++; - } - hptr->h_aliases[i] = NULL; - - return (HOST_R_OK); -} -#endif /* !HOSTENT_DATA */ -#else /* HOST_R_RETURN */ - static int gethostent_r_unknown_system = 0; -#endif /* HOST_R_RETURN */ -#endif /* !defined(_REENTRANT) || !defined(DO_PTHREADS) */ -/*! \file */ diff --git a/src/kits/network/libbind/irs/getnameinfo.c b/src/kits/network/libbind/irs/getnameinfo.c index 649f5c2287..582c784c80 100644 --- a/src/kits/network/libbind/irs/getnameinfo.c +++ b/src/kits/network/libbind/irs/getnameinfo.c @@ -1,19 +1,8 @@ -/* - * Issues to be discussed: - * - Thread safe-ness must be checked - */ - -#if ( defined(__linux__) || defined(__linux) || defined(LINUX) ) -#ifndef IF_NAMESIZE -# ifdef IFNAMSIZ -# define IF_NAMESIZE IFNAMSIZ -# else -# define IF_NAMESIZE 16 -# endif -#endif -#endif +/* $NetBSD: getnameinfo.c,v 1.53 2012/09/26 23:13:00 christos Exp $ */ +/* $KAME: getnameinfo.c,v 1.45 2000/09/25 22:43:56 itojun Exp $ */ /* + * Copyright (c) 2000 Ben Harris. * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. * All rights reserved. * @@ -46,87 +35,222 @@ * SUCH DAMAGE. */ -#include +/* + * Issues to be discussed: + * - Thread safe-ness must be checked + * - RFC2553 says that we should raise error on short buffer. X/Open says + * we need to truncate the result. We obey RFC2553 (and X/Open should be + * modified). ipngwg rough consensus seems to follow RFC2553. + * - What is "local" in NI_FQDN? + * - NI_NAMEREQD and NI_NUMERICHOST conflict with each other. + * - (KAME extension) always attach textual scopeid (fe80::1%lo0), if + * sin6_scope_id is filled - standardization status? + * XXX breaks backward compat for code that expects no scopeid. + * beware on merge. + */ + +#include +#if defined(LIBC_SCCS) && !defined(lint) +__RCSID("$NetBSD: getnameinfo.c,v 1.53 2012/09/26 23:13:00 christos Exp $"); +#endif /* LIBC_SCCS and not lint */ #include #include - -#include -#include -#include +#include #include - +#include +#include +#include +#include +#include +#include +#include #include #include -#include #include +#include -#include +#include "nsswitch.h" +#include "servent.h" -/*% - * Note that a_off will be dynamically adjusted so that to be consistent - * with the definition of sockaddr_in{,6}. - * The value presented below is just a guess. - */ -static struct afd { - int a_af; - int a_addrlen; - size_t a_socklen; - int a_off; +static const struct afd { + int a_af; + socklen_t a_addrlen; + socklen_t a_socklen; + int a_off; } afdl [] = { - /* first entry is linked last... */ - {PF_INET, sizeof(struct in_addr), sizeof(struct sockaddr_in), - offsetof(struct sockaddr_in, sin_addr)}, +#ifdef INET6 {PF_INET6, sizeof(struct in6_addr), sizeof(struct sockaddr_in6), - offsetof(struct sockaddr_in6, sin6_addr)}, +#endif + {PF_INET, sizeof(struct in_addr), sizeof(struct sockaddr_in), + offsetof(struct sockaddr_in, sin_addr)}, {0, 0, 0, 0}, }; struct sockinet { -#ifdef HAVE_SA_LEN u_char si_len; -#endif u_char si_family; u_short si_port; }; -static int ip6_parsenumeric __P((const struct sockaddr *, const char *, char *, - size_t, int)); -#ifdef HAVE_SIN6_SCOPE_ID -static int ip6_sa2str __P((const struct sockaddr_in6 *, char *, size_t, int)); +static int getnameinfo_inet(const struct sockaddr *, socklen_t, char *, + socklen_t, char *, socklen_t, int); +#ifdef INET6 +static int ip6_parsenumeric(const struct sockaddr *, const char *, char *, + socklen_t, int); +static int ip6_sa2str(const struct sockaddr_in6 *, char *, size_t, int); #endif +static int getnameinfo_atalk(const struct sockaddr *, socklen_t, char *, + socklen_t, char *, socklen_t, int); +static int getnameinfo_local(const struct sockaddr *, socklen_t, char *, + socklen_t, char *, socklen_t, int); +static int getnameinfo_link(const struct sockaddr *, socklen_t, char *, + socklen_t, char *, socklen_t, int); +static int hexname(const uint8_t *, size_t, char *, socklen_t); + +/* ++ * Top-level getnameinfo() code. Look at the address family, and pick an ++ * appropriate function to call. ++ */ int -getnameinfo(sa, salen, host, hostlen, serv, servlen, flags) - const struct sockaddr *sa; - socklen_t salen; - char *host; - socklen_t hostlen; - char *serv; - socklen_t servlen; - int flags; +getnameinfo(const struct sockaddr *sa, socklen_t salen, + char *host, socklen_t hostlen, + char *serv, socklen_t servlen, + int flags) { - struct afd *afd; + + switch (sa->sa_family) { + case AF_APPLETALK: + return getnameinfo_atalk(sa, salen, host, hostlen, + serv, servlen, flags); + case AF_INET: + case AF_INET6: + return getnameinfo_inet(sa, salen, host, hostlen, + serv, servlen, flags); + case AF_LINK: + return getnameinfo_link(sa, salen, host, hostlen, + serv, servlen, flags); + case AF_LOCAL: + return getnameinfo_local(sa, salen, host, hostlen, + serv, servlen, flags); + default: + return EAI_FAMILY; + } +} + +/* + * getnameinfo_atalk(): + * Format an AppleTalk address into a printable format. + */ +/* ARGSUSED */ +static int +getnameinfo_atalk(const struct sockaddr *sa, socklen_t salen, + char *host, socklen_t hostlen, char *serv, socklen_t servlen, + int flags) +{ +#if 0 + char numserv[8]; + int n, m=0; + + const struct sockaddr_at *sat = + (const struct sockaddr_at *)(const void *)sa; + + if (serv != NULL && servlen > 0) { + snprintf(numserv, sizeof(numserv), "%u", sat->sat_port); + if (strlen(numserv) + 1 > servlen) + return EAI_MEMORY; + strlcpy(serv, numserv, servlen); + } + + n = snprintf(host, hostlen, "%u.%u", + ntohs(sat->sat_addr.s_net), sat->sat_addr.s_node); + + if (n < 0 || (socklen_t)(m+n) >= hostlen) + goto errout; + + m += n; + + if (sat->sat_range.r_netrange.nr_phase) { + n = snprintf(host+m, hostlen-m, " phase %u", + sat->sat_range.r_netrange.nr_phase); + + if (n < 0 || (socklen_t)(m+n) >= hostlen) + goto errout; + + m += n; + } + if (sat->sat_range.r_netrange.nr_firstnet) { + n = snprintf(host+m, hostlen-m, " range %u - %u", + ntohs(sat->sat_range.r_netrange.nr_firstnet), + ntohs(sat->sat_range.r_netrange.nr_lastnet )); + + if (n < 0 || (socklen_t)(m+n) >= hostlen) + goto errout; + + m += n; + } + + return 0; + +errout: + if (host && hostlen>0) + host[m] = '\0'; /* XXX ??? */ + +#endif + return EAI_MEMORY; +} + +/* + * getnameinfo_local(): + * Format an local address into a printable format. + */ +/* ARGSUSED */ +static int +getnameinfo_local(const struct sockaddr *sa, socklen_t salen, + char *host, socklen_t hostlen, char *serv, socklen_t servlen, + int flags) +{ + const struct sockaddr_un *sun = + (const struct sockaddr_un *)(const void *)sa; + + if (serv != NULL && servlen > 0) + serv[0] = '\0'; + + if (host && hostlen > 0) + strlcpy(host, sun->sun_path, + MIN(sizeof(sun->sun_path) + 1, hostlen)); + + return 0; +} + +/* + * getnameinfo_inet(): + * Format an IPv4 or IPv6 sockaddr into a printable string. + */ +static int +getnameinfo_inet(const struct sockaddr *sa, socklen_t salen, + char *host, socklen_t hostlen, + char *serv, socklen_t servlen, + int flags) +{ + const struct afd *afd; struct servent *sp; struct hostent *hp; u_short port; -#ifdef HAVE_SA_LEN - size_t len; -#endif int family, i; const char *addr; - char *p; + uint32_t v4a; char numserv[512]; char numaddr[512]; - const struct sockaddr_in6 *sin6; + + /* sa is checked below */ + /* host may be NULL */ + /* serv may be NULL */ if (sa == NULL) return EAI_FAIL; -#ifdef HAVE_SA_LEN - len = sa->sa_len; - if (len != salen) return EAI_FAIL; -#endif family = sa->sa_family; for (i = 0; afdl[i].a_af; i++) @@ -137,38 +261,62 @@ getnameinfo(sa, salen, host, hostlen, serv, servlen, flags) return EAI_FAMILY; found: - if (salen != afd->a_socklen) return EAI_FAIL; + if (salen != afd->a_socklen) + return EAI_FAIL; - port = ((const struct sockinet *)sa)->si_port; /*%< network byte order */ - addr = (const char *)sa + afd->a_off; + /* network byte order */ + port = ((const struct sockinet *)(const void *)sa)->si_port; + addr = (const char *)(const void *)sa + afd->a_off; - if (serv == NULL || servlen == 0U) { + if (serv == NULL || servlen == 0) { /* - * rfc2553bis says that serv == NULL or servlen == 0 means that - * the caller does not want the result. - */ - } else if (flags & NI_NUMERICSERV) { - sprintf(numserv, "%d", ntohs(port)); - if (strlen(numserv) > servlen) - return EAI_MEMORY; - strcpy(serv, numserv); + * do nothing in this case. + * in case you are wondering if "&&" is more correct than + * "||" here: rfc2553bis-03 says that serv == NULL OR + * servlen == 0 means that the caller does not want the result. + */ } else { - sp = getservbyport(port, (flags & NI_DGRAM) ? "udp" : "tcp"); + struct servent_data svd; + struct servent sv; + + if (flags & NI_NUMERICSERV) + sp = NULL; + else { + (void)memset(&svd, 0, sizeof(svd)); + sp = getservbyport_r(port, + (flags & NI_DGRAM) ? "udp" : "tcp", &sv, &svd); + } if (sp) { - if (strlen(sp->s_name) + 1 > servlen) + if (strlen(sp->s_name) + 1 > servlen) { + endservent_r(&svd); return EAI_MEMORY; - strcpy(serv, sp->s_name); - } else - return EAI_NONAME; + } + strlcpy(serv, sp->s_name, servlen); + endservent_r(&svd); + } else { + snprintf(numserv, sizeof(numserv), "%u", ntohs(port)); + if (strlen(numserv) + 1 > servlen) + return EAI_MEMORY; + strlcpy(serv, numserv, servlen); + } } switch (sa->sa_family) { case AF_INET: - if (ntohl(*(const u_int32_t *)addr) >> IN_CLASSA_NSHIFT == 0) + v4a = (uint32_t) + ntohl(((const struct sockaddr_in *) + (const void *)sa)->sin_addr.s_addr); + if (IN_MULTICAST(v4a) || IN_EXPERIMENTAL(v4a)) + flags |= NI_NUMERICHOST; + v4a >>= IN_CLASSA_NSHIFT; + if (v4a == 0) flags |= NI_NUMERICHOST; break; +#ifdef INET6 case AF_INET6: - sin6 = (const struct sockaddr_in6 *)sa; + { + const struct sockaddr_in6 *sin6; + sin6 = (const struct sockaddr_in6 *)(const void *)sa; switch (sin6->sin6_addr.s6_addr[0]) { case 0x00: if (IN6_IS_ADDR_V4MAPPED(&sin6->sin6_addr)) @@ -179,37 +327,78 @@ getnameinfo(sa, salen, host, hostlen, serv, servlen, flags) flags |= NI_NUMERICHOST; break; default: - if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) + if (IN6_IS_ADDR_LINKLOCAL(&sin6->sin6_addr)) { flags |= NI_NUMERICHOST; + } else if (IN6_IS_ADDR_MULTICAST(&sin6->sin6_addr)) flags |= NI_NUMERICHOST; break; } + } break; +#endif } - if (host == NULL || hostlen == 0U) { + if (host == NULL || hostlen == 0) { /* - * rfc2553bis says that host == NULL or hostlen == 0 means that - * the caller does not want the result. + * do nothing in this case. + * in case you are wondering if "&&" is more correct than + * "||" here: rfc2553bis-03 says that host == NULL or + * hostlen == 0 means that the caller does not want the result. */ } else if (flags & NI_NUMERICHOST) { - goto numeric; + size_t numaddrlen; + + /* NUMERICHOST and NAMEREQD conflicts with each other */ + if (flags & NI_NAMEREQD) + return EAI_NONAME; + + switch(afd->a_af) { +#ifdef INET6 + case AF_INET6: + { + int error; + + if ((error = ip6_parsenumeric(sa, addr, host, + hostlen, flags)) != 0) + return(error); + break; + } +#endif + default: + if (inet_ntop(afd->a_af, addr, numaddr, + (socklen_t)sizeof(numaddr)) == NULL) + return EAI_SYSTEM; + numaddrlen = strlen(numaddr); + if (numaddrlen + 1 > hostlen) /* don't forget terminator */ + return EAI_MEMORY; + strlcpy(host, numaddr, hostlen); + break; + } } else { hp = gethostbyaddr(addr, afd->a_addrlen, afd->a_af); if (hp) { +#if 0 + /* + * commented out, since "for local host" is not + * implemented here - see RFC2553 p30 + */ if (flags & NI_NOFQDN) { + char *p; p = strchr(hp->h_name, '.'); - if (p) *p = '\0'; + if (p) + *p = '\0'; } - if (strlen(hp->h_name) + 1 > hostlen) +#endif + if (strlen(hp->h_name) + 1 > hostlen) { return EAI_MEMORY; - strcpy(host, hp->h_name); + } + strlcpy(host, hp->h_name, hostlen); } else { if (flags & NI_NAMEREQD) return EAI_NONAME; - numeric: switch(afd->a_af) { +#ifdef INET6 case AF_INET6: { int error; @@ -220,115 +409,210 @@ getnameinfo(sa, salen, host, hostlen, serv, servlen, flags) return(error); break; } - +#endif default: - if (inet_ntop(afd->a_af, addr, numaddr, - sizeof(numaddr)) == NULL) - return EAI_NONAME; - if (strlen(numaddr) + 1 > hostlen) - return EAI_MEMORY; - strcpy(host, numaddr); + if (inet_ntop(afd->a_af, addr, host, + hostlen) == NULL) + return EAI_SYSTEM; + break; } } } return(0); } +#ifdef INET6 static int ip6_parsenumeric(const struct sockaddr *sa, const char *addr, char *host, - size_t hostlen, int flags) + socklen_t hostlen, int flags) { size_t numaddrlen; char numaddr[512]; -#ifndef HAVE_SIN6_SCOPE_ID - UNUSED(sa); - UNUSED(flags); -#endif + _DIAGASSERT(sa != NULL); + _DIAGASSERT(addr != NULL); + _DIAGASSERT(host != NULL); - if (inet_ntop(AF_INET6, addr, numaddr, sizeof(numaddr)) + if (inet_ntop(AF_INET6, addr, numaddr, (socklen_t)sizeof(numaddr)) == NULL) return EAI_SYSTEM; numaddrlen = strlen(numaddr); - if (numaddrlen + 1 > hostlen) /*%< don't forget terminator */ - return EAI_MEMORY; - strcpy(host, numaddr); + if (numaddrlen + 1 > hostlen) /* don't forget terminator */ + return EAI_OVERFLOW; + strlcpy(host, numaddr, hostlen); -#ifdef HAVE_SIN6_SCOPE_ID - if (((const struct sockaddr_in6 *)sa)->sin6_scope_id) { - char scopebuf[MAXHOSTNAMELEN]; /*%< XXX */ - int scopelen; + if (((const struct sockaddr_in6 *)(const void *)sa)->sin6_scope_id) { + char zonebuf[MAXHOSTNAMELEN]; + int zonelen; - /* ip6_sa2str never fails */ - scopelen = ip6_sa2str((const struct sockaddr_in6 *)sa, - scopebuf, sizeof(scopebuf), flags); - - if (scopelen + 1 + numaddrlen + 1 > hostlen) - return EAI_MEMORY; - - /* construct */ - memcpy(host + numaddrlen + 1, scopebuf, - scopelen); + zonelen = ip6_sa2str( + (const struct sockaddr_in6 *)(const void *)sa, + zonebuf, sizeof(zonebuf), flags); + if (zonelen < 0) + return EAI_OVERFLOW; + if ((size_t) zonelen + 1 + numaddrlen + 1 > hostlen) + return EAI_OVERFLOW; + /* construct */ + memcpy(host + numaddrlen + 1, zonebuf, + (size_t)zonelen); host[numaddrlen] = SCOPE_DELIMITER; - host[numaddrlen + 1 + scopelen] = '\0'; + host[numaddrlen + 1 + zonelen] = '\0'; } -#endif return 0; } -#ifdef HAVE_SIN6_SCOPE_ID /* ARGSUSED */ static int -ip6_sa2str(const struct sockaddr_in6 *sa6, char *buf, - size_t bufsiz, int flags) +ip6_sa2str(const struct sockaddr_in6 *sa6, char *buf, size_t bufsiz, int flags) { -#ifdef USE_IFNAMELINKID - unsigned int ifindex = (unsigned int)sa6->sin6_scope_id; - const struct in6_addr *a6 = &sa6->sin6_addr; -#endif - char tmp[64]; + unsigned int ifindex; + const struct in6_addr *a6; + int n; + + _DIAGASSERT(sa6 != NULL); + _DIAGASSERT(buf != NULL); + + ifindex = (unsigned int)sa6->sin6_scope_id; + a6 = &sa6->sin6_addr; #ifdef NI_NUMERICSCOPE - if (flags & NI_NUMERICSCOPE) { - sprintf(tmp, "%u", sa6->sin6_scope_id); - if (bufsiz != 0U) { - strncpy(buf, tmp, bufsiz - 1); - buf[bufsiz - 1] = '\0'; - } - return(strlen(tmp)); + if ((flags & NI_NUMERICSCOPE) != 0) { + n = snprintf(buf, bufsiz, "%u", sa6->sin6_scope_id); + if (n < 0 || (size_t)n >= bufsiz) + return -1; + else + return n; } #endif -#ifdef USE_IFNAMELINKID - /* - * For a link-local address, convert the index to an interface - * name, assuming a one-to-one mapping between links and interfaces. - * Note, however, that this assumption is stronger than the - * specification of the scoped address architecture; the - * specficication says that more than one interfaces can belong to - * a single link. - */ - /* if_indextoname() does not take buffer size. not a good api... */ if ((IN6_IS_ADDR_LINKLOCAL(a6) || IN6_IS_ADDR_MC_LINKLOCAL(a6)) && bufsiz >= IF_NAMESIZE) { char *p = if_indextoname(ifindex, buf); if (p) { - return(strlen(p)); + return (int)strlen(p); } } -#endif /* last resort */ - sprintf(tmp, "%u", sa6->sin6_scope_id); - if (bufsiz != 0U) { - strncpy(buf, tmp, bufsiz - 1); - buf[bufsiz - 1] = '\0'; - } - return(strlen(tmp)); + n = snprintf(buf, bufsiz, "%u", sa6->sin6_scope_id); + if (n < 0 || (size_t) n >= bufsiz) + return -1; + else + return n; } -#endif +#endif /* INET6 */ -/*! \file */ + +/* + * getnameinfo_link(): + * Format a link-layer address into a printable format, paying attention to + * the interface type. + */ +/* ARGSUSED */ +static int +getnameinfo_link(const struct sockaddr *sa, socklen_t salen, + char *host, socklen_t hostlen, char *serv, socklen_t servlen, + int flags) +{ + const struct sockaddr_dl *sdl = + (const struct sockaddr_dl *)(const void *)sa; + int n; + + if (serv != NULL && servlen > 0) + *serv = '\0'; + + if (sdl->sdl_nlen == 0 && sdl->sdl_alen == 0 && sdl->sdl_slen == 0) { + n = snprintf(host, hostlen, "link#%u", sdl->sdl_index); + if (n < 0 || (socklen_t) n > hostlen) { + *host = '\0'; + return EAI_MEMORY; + } + return 0; + } + + switch (sdl->sdl_type) { +#ifdef IFT_ECONET + case IFT_ECONET: + if (sdl->sdl_alen < 2) + return EAI_FAMILY; + if (LLADDR(sdl)[1] == 0) + n = snprintf(host, hostlen, "%u", LLADDR(sdl)[0]); + else + n = snprintf(host, hostlen, "%u.%u", + LLADDR(sdl)[1], LLADDR(sdl)[0]); + if (n < 0 || (socklen_t) n >= hostlen) { + *host = '\0'; + return EAI_MEMORY; + } else + return 0; +#endif +#ifdef IFT_IEEE1394 + case IFT_IEEE1394: + { + const struct ieee1394_hwaddr *iha; + if (sdl->sdl_alen < sizeof(iha->iha_uid)) + return EAI_FAMILY; + iha = + (const struct ieee1394_hwaddr *)(const void *)LLADDR(sdl); + return hexname(iha->iha_uid, sizeof(iha->iha_uid), + host, hostlen); + } +#endif + /* + * The following have zero-length addresses. + * IFT_ATM (net/if_atmsubr.c) + * IFT_FAITH (net/if_faith.c) + * IFT_GIF (net/if_gif.c) + * IFT_LOOP (net/if_loop.c) + * IFT_PPP (net/if_ppp.c, net/if_spppsubr.c) + * IFT_SLIP (net/if_sl.c, net/if_strip.c) + * IFT_STF (net/if_stf.c) + * IFT_L2VLAN (net/if_vlan.c) + * IFT_PROPVIRTUAL (net/if_bridge.h> + */ + /* + * The following use IPv4 addresses as link-layer addresses: + * IFT_OTHER (net/if_gre.c) + */ +#ifdef IFT_ARCNET + case IFT_ARCNET: /* default below is believed correct for all these. */ +#endif + case IFT_ETHER: +#ifdef IFT_FDDI + case IFT_FDDI: +#endif +#ifdef IFT_HIPPI + case IFT_HIPPI: +#endif +#ifdef IFT_ISO88025 + case IFT_ISO88025: +#endif + default: + return hexname((const uint8_t *)LLADDR(sdl), + (size_t)sdl->sdl_alen, host, hostlen); + } +} + +static int +hexname(const uint8_t *cp, size_t len, char *host, socklen_t hostlen) +{ + int n; + size_t i; + char *outp = host; + + *outp = '\0'; + for (i = 0; i < len; i++) { + n = snprintf(outp, hostlen, "%s%02x", + i ? ":" : "", cp[i]); + if (n < 0 || (socklen_t) n >= hostlen) { + *host = '\0'; + return EAI_MEMORY; + } + outp += n; + hostlen -= n; + } + return 0; +} diff --git a/src/kits/network/libbind/irs/getnetent.c b/src/kits/network/libbind/irs/getnetent.c index a6abe7175b..1f469abb6c 100644 --- a/src/kits/network/libbind/irs/getnetent.c +++ b/src/kits/network/libbind/irs/getnetent.c @@ -1,345 +1,167 @@ +/* $NetBSD: getnetent.c,v 1.21 2012/03/20 17:44:18 matt Exp $ */ + /* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 1996,1999 by Internet Software Consortium. + * Copyright (c) 1983, 1993 + * 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: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * 3. Neither the name of the University 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 REGENTS 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. + * + * Portions Copyright (c) 1993 Carlos Leandro and Rui Salgueiro + * Dep. Matematica Universidade de Coimbra, Portugal, Europe * * 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. + * from getnetent.c 1.1 (Coimbra) 93/06/02 */ -#if !defined(LINT) && !defined(CODECENTER) -static const char rcsid[] = "$Id: getnetent.c,v 1.7 2005/04/27 04:56:25 sra Exp $"; +#include +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)getnetent.c 8.1 (Berkeley) 6/4/93"; +static char rcsid[] = "Id: getnetent.c,v 8.4 1997/06/01 20:34:37 vixie Exp "; +#else +__RCSID("$NetBSD: getnetent.c,v 1.21 2012/03/20 17:44:18 matt Exp $"); #endif - -/* Imports */ - -#include "port_before.h" - -#if !defined(__BIND_NOSTATIC) +#endif /* LIBC_SCCS and not lint */ #include #include - #include -#include #include - -#include -#include #include -#include -#include +#include #include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "irs_data.h" - -/* Definitions */ - -struct pvt { - struct netent netent; - char * aliases[1]; - char name[MAXDNAME + 1]; -}; - -/* Forward */ - -static struct net_data *init(void); -static struct netent *nw_to_net(struct nwent *, struct net_data *); -static void freepvt(struct net_data *); -static struct netent *fakeaddr(const char *, int af, struct net_data *); - -/* Portability */ - -#ifndef INADDR_NONE -# define INADDR_NONE 0xffffffff +#ifdef __weak_alias +__weak_alias(endnetent,_endnetent) +__weak_alias(getnetent,_getnetent) +__weak_alias(setnetent,_setnetent) #endif -/* Public */ +#define MAXALIASES 35 -struct netent * -getnetent() { - struct net_data *net_data = init(); +static FILE *netf; +static char line[BUFSIZ+1]; +static struct netent net; +static char *net_aliases[MAXALIASES]; +int _net_stayopen; - return (getnetent_p(net_data)); -} +static void __setnetent(int); +static void __endnetent(void); -struct netent * -getnetbyname(const char *name) { - struct net_data *net_data = init(); +void +setnetent(int stayopen) +{ - return (getnetbyname_p(name, net_data)); -} - -struct netent * -getnetbyaddr(unsigned long net, int type) { - struct net_data *net_data = init(); - - return (getnetbyaddr_p(net, type, net_data)); + sethostent(stayopen); + __setnetent(stayopen); } void -setnetent(int stayopen) { - struct net_data *net_data = init(); +endnetent(void) +{ - setnetent_p(stayopen, net_data); -} - - -void -endnetent() { - struct net_data *net_data = init(); - - endnetent_p(net_data); -} - -/* Shared private. */ - -struct netent * -getnetent_p(struct net_data *net_data) { - struct irs_nw *nw; - - if (!net_data || !(nw = net_data->nw)) - return (NULL); - net_data->nww_last = (*nw->next)(nw); - net_data->nw_last = nw_to_net(net_data->nww_last, net_data); - return (net_data->nw_last); -} - -struct netent * -getnetbyname_p(const char *name, struct net_data *net_data) { - struct irs_nw *nw; - struct netent *np; - char **nap; - - if (!net_data || !(nw = net_data->nw)) - return (NULL); - if (net_data->nw_stayopen && net_data->nw_last) { - if (!strcmp(net_data->nw_last->n_name, name)) - return (net_data->nw_last); - for (nap = net_data->nw_last->n_aliases; nap && *nap; nap++) - if (!strcmp(name, *nap)) - return (net_data->nw_last); - } - if ((np = fakeaddr(name, AF_INET, net_data)) != NULL) - return (np); - net_data->nww_last = (*nw->byname)(nw, name, AF_INET); - net_data->nw_last = nw_to_net(net_data->nww_last, net_data); - if (!net_data->nw_stayopen) - endnetent(); - return (net_data->nw_last); -} - -struct netent * -getnetbyaddr_p(unsigned long net, int type, struct net_data *net_data) { - struct irs_nw *nw; - u_char addr[4]; - int bits; - - if (!net_data || !(nw = net_data->nw)) - return (NULL); - if (net_data->nw_stayopen && net_data->nw_last) - if (type == net_data->nw_last->n_addrtype && - net == net_data->nw_last->n_net) - return (net_data->nw_last); - - /* cannonize net(host order) */ - if (net < 256UL) { - net <<= 24; - bits = 8; - } else if (net < 65536UL) { - net <<= 16; - bits = 16; - } else if (net < 16777216UL) { - net <<= 8; - bits = 24; - } else - bits = 32; - - /* convert to net order */ - addr[0] = (0xFF000000 & net) >> 24; - addr[1] = (0x00FF0000 & net) >> 16; - addr[2] = (0x0000FF00 & net) >> 8; - addr[3] = (0x000000FF & net); - - /* reduce bits to as close to natural number as possible */ - if ((bits == 32) && (addr[0] < 224) && (addr[3] == 0)) { - if ((addr[0] < 192) && (addr[2] == 0)) { - if ((addr[0] < 128) && (addr[1] == 0)) - bits = 8; - else - bits = 16; - } else { - bits = 24; - } - } - - net_data->nww_last = (*nw->byaddr)(nw, addr, bits, AF_INET); - net_data->nw_last = nw_to_net(net_data->nww_last, net_data); - if (!net_data->nw_stayopen) - endnetent(); - return (net_data->nw_last); -} - - - - -void -setnetent_p(int stayopen, struct net_data *net_data) { - struct irs_nw *nw; - - if (!net_data || !(nw = net_data->nw)) - return; - freepvt(net_data); - (*nw->rewind)(nw); - net_data->nw_stayopen = (stayopen != 0); - if (stayopen == 0) - net_data_minimize(net_data); -} - -void -endnetent_p(struct net_data *net_data) { - struct irs_nw *nw; - - if ((net_data != NULL) && ((nw = net_data->nw) != NULL)) - (*nw->minimize)(nw); -} - -/* Private */ - -static struct net_data * -init() { - struct net_data *net_data; - - if (!(net_data = net_data_init(NULL))) - goto error; - if (!net_data->nw) { - net_data->nw = (*net_data->irs->nw_map)(net_data->irs); - - if (!net_data->nw || !net_data->res) { - error: - errno = EIO; - return (NULL); - } - (*net_data->nw->res_set)(net_data->nw, net_data->res, NULL); - } - - return (net_data); + endhostent(); + __endnetent(); } static void -freepvt(struct net_data *net_data) { - if (net_data->nw_data) { - free(net_data->nw_data); - net_data->nw_data = NULL; - } +__setnetent(int f) +{ + + if (netf == NULL) + netf = fopen(_PATH_NETWORKS, "re"); + else + rewind(netf); + _net_stayopen |= f; } -static struct netent * -fakeaddr(const char *name, int af, struct net_data *net_data) { - struct pvt *pvt; - const char *cp; - u_long tmp; +static void +__endnetent(void) +{ - if (af != AF_INET) { - /* XXX should support IPv6 some day */ - errno = EAFNOSUPPORT; - RES_SET_H_ERRNO(net_data->res, NETDB_INTERNAL); - return (NULL); + if (netf) { + fclose(netf); + netf = NULL; } - if (!isascii((unsigned char)(name[0])) || - !isdigit((unsigned char)(name[0]))) - return (NULL); - for (cp = name; *cp; ++cp) - if (!isascii(*cp) || (!isdigit((unsigned char)*cp) && *cp != '.')) - return (NULL); - if (*--cp == '.') - return (NULL); - - /* All-numeric, no dot at the end. */ - - tmp = inet_network(name); - if (tmp == INADDR_NONE) { - RES_SET_H_ERRNO(net_data->res, HOST_NOT_FOUND); - return (NULL); - } - - /* Valid network number specified. - * Fake up a netent as if we'd actually - * done a lookup. - */ - freepvt(net_data); - net_data->nw_data = malloc(sizeof (struct pvt)); - if (!net_data->nw_data) { - errno = ENOMEM; - RES_SET_H_ERRNO(net_data->res, NETDB_INTERNAL); - return (NULL); - } - pvt = net_data->nw_data; - - strncpy(pvt->name, name, MAXDNAME); - pvt->name[MAXDNAME] = '\0'; - pvt->netent.n_name = pvt->name; - pvt->netent.n_addrtype = AF_INET; - pvt->netent.n_aliases = pvt->aliases; - pvt->aliases[0] = NULL; - pvt->netent.n_net = tmp; - - return (&pvt->netent); + _net_stayopen = 0; } -static struct netent * -nw_to_net(struct nwent *nwent, struct net_data *net_data) { - struct pvt *pvt; - u_long addr = 0; - int i; - int msbyte; +struct netent * +getnetent(void) +{ + char *p; + register char *cp, **q; - if (!nwent || nwent->n_addrtype != AF_INET) + if (netf == NULL && (netf = fopen(_PATH_NETWORKS, "re")) == NULL) return (NULL); - freepvt(net_data); - net_data->nw_data = malloc(sizeof (struct pvt)); - if (!net_data->nw_data) { - errno = ENOMEM; - RES_SET_H_ERRNO(net_data->res, NETDB_INTERNAL); +#if (defined(__sparc__) && defined(_LP64)) || \ + defined(__alpha__) || \ + (defined(__i386__) && defined(_LP64)) || \ + (defined(__sh__) && defined(_LP64)) + net.__n_pad0 = 0; +#endif +again: + p = fgets(line, (int)sizeof line, netf); + if (p == NULL) return (NULL); + if (*p == '#') + goto again; + cp = strpbrk(p, "#\n"); + if (cp == NULL) + goto again; + *cp = '\0'; + net.n_name = p; + cp = strpbrk(p, " \t"); + if (cp == NULL) + goto again; + *cp++ = '\0'; + while (*cp == ' ' || *cp == '\t') + cp++; + p = strpbrk(cp, " \t"); + if (p != NULL) + *p++ = '\0'; + net.n_net = inet_network(cp); + net.n_addrtype = AF_INET; + q = net.n_aliases = net_aliases; + if (p != NULL) { + cp = p; + while (cp && *cp) { + if (*cp == ' ' || *cp == '\t') { + cp++; + continue; + } + if (q < &net_aliases[MAXALIASES - 1]) + *q++ = cp; + cp = strpbrk(cp, " \t"); + if (cp != NULL) + *cp++ = '\0'; + } } - pvt = net_data->nw_data; - pvt->netent.n_name = nwent->n_name; - pvt->netent.n_aliases = nwent->n_aliases; - pvt->netent.n_addrtype = nwent->n_addrtype; - -/*% - * What this code does: Converts net addresses from network to host form. - * - * msbyte: the index of the most significant byte in the n_addr array. - * - * Shift bytes in significant order into addr. When all signicant - * bytes are in, zero out bits in the LSB that are not part of the network. - */ - msbyte = nwent->n_length / 8 + - ((nwent->n_length % 8) != 0 ? 1 : 0) - 1; - for (i = 0; i <= msbyte; i++) - addr = (addr << 8) | ((unsigned char *)nwent->n_addr)[i]; - i = (32 - nwent->n_length) % 8; - if (i != 0) - addr &= ~((1 << (i + 1)) - 1); - pvt->netent.n_net = addr; - return (&pvt->netent); + *q = NULL; + return (&net); } - -#endif /*__BIND_NOSTATIC*/ - -/*! \file */ diff --git a/src/kits/network/libbind/irs/getnetent_r.c b/src/kits/network/libbind/irs/getnetent_r.c deleted file mode 100644 index 9fb52bc394..0000000000 --- a/src/kits/network/libbind/irs/getnetent_r.c +++ /dev/null @@ -1,234 +0,0 @@ -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 1998-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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: getnetent_r.c,v 1.6 2005/09/03 12:41:38 marka Exp $"; -#endif /* LIBC_SCCS and not lint */ - -#include -#if !defined(_REENTRANT) || !defined(DO_PTHREADS) - static int getnetent_r_not_required = 0; -#else -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef NET_R_RETURN - -static NET_R_RETURN -copy_netent(struct netent *, struct netent *, NET_R_COPY_ARGS); - -NET_R_RETURN -getnetbyname_r(const char *name, struct netent *nptr, NET_R_ARGS) { - struct netent *ne = getnetbyname(name); -#ifdef NET_R_SETANSWER - int n = 0; - - if (ne == NULL || (n = copy_netent(ne, nptr, NET_R_COPY)) != 0) - *answerp = NULL; - else - *answerp = ne; - if (ne == NULL) - *h_errnop = h_errno; - return (n); -#else - if (ne == NULL) - return (NET_R_BAD); - - return (copy_netent(ne, nptr, NET_R_COPY)); -#endif -} - -#ifndef GETNETBYADDR_ADDR_T -#define GETNETBYADDR_ADDR_T long -#endif -NET_R_RETURN -getnetbyaddr_r(GETNETBYADDR_ADDR_T addr, int type, struct netent *nptr, NET_R_ARGS) { - struct netent *ne = getnetbyaddr(addr, type); -#ifdef NET_R_SETANSWER - int n = 0; - - if (ne == NULL || (n = copy_netent(ne, nptr, NET_R_COPY)) != 0) - *answerp = NULL; - else - *answerp = ne; - if (ne == NULL) - *h_errnop = h_errno; - return (n); -#else - - if (ne == NULL) - return (NET_R_BAD); - - return (copy_netent(ne, nptr, NET_R_COPY)); -#endif -} - -/*% - * These assume a single context is in operation per thread. - * If this is not the case we will need to call irs directly - * rather than through the base functions. - */ - -NET_R_RETURN -getnetent_r(struct netent *nptr, NET_R_ARGS) { - struct netent *ne = getnetent(); -#ifdef NET_R_SETANSWER - int n = 0; - - if (ne == NULL || (n = copy_netent(ne, nptr, NET_R_COPY)) != 0) - *answerp = NULL; - else - *answerp = ne; - if (ne == NULL) - *h_errnop = h_errno; - return (n); -#else - - if (ne == NULL) - return (NET_R_BAD); - - return (copy_netent(ne, nptr, NET_R_COPY)); -#endif -} - -NET_R_SET_RETURN -#ifdef NET_R_ENT_ARGS -setnetent_r(int stay_open, NET_R_ENT_ARGS) -#else -setnetent_r(int stay_open) -#endif -{ -#ifdef NET_R_ENT_ARGS - UNUSED(ndptr); -#endif - setnetent(stay_open); -#ifdef NET_R_SET_RESULT - return (NET_R_SET_RESULT); -#endif -} - -NET_R_END_RETURN -#ifdef NET_R_ENT_ARGS -endnetent_r(NET_R_ENT_ARGS) -#else -endnetent_r() -#endif -{ -#ifdef NET_R_ENT_ARGS - UNUSED(ndptr); -#endif - endnetent(); - NET_R_END_RESULT(NET_R_OK); -} - -/* Private */ - -#ifndef NETENT_DATA -static NET_R_RETURN -copy_netent(struct netent *ne, struct netent *nptr, NET_R_COPY_ARGS) { - char *cp; - int i, n; - int numptr, len; - - /* Find out the amount of space required to store the answer. */ - numptr = 1; /*%< NULL ptr */ - len = (char *)ALIGN(buf) - buf; - for (i = 0; ne->n_aliases[i]; i++, numptr++) { - len += strlen(ne->n_aliases[i]) + 1; - } - len += strlen(ne->n_name) + 1; - len += numptr * sizeof(char*); - - if (len > (int)buflen) { - errno = ERANGE; - return (NET_R_BAD); - } - - /* copy net value and type */ - nptr->n_addrtype = ne->n_addrtype; - nptr->n_net = ne->n_net; - - cp = (char *)ALIGN(buf) + numptr * sizeof(char *); - - /* copy official name */ - n = strlen(ne->n_name) + 1; - strcpy(cp, ne->n_name); - nptr->n_name = cp; - cp += n; - - /* copy aliases */ - nptr->n_aliases = (char **)ALIGN(buf); - for (i = 0 ; ne->n_aliases[i]; i++) { - n = strlen(ne->n_aliases[i]) + 1; - strcpy(cp, ne->n_aliases[i]); - nptr->n_aliases[i] = cp; - cp += n; - } - nptr->n_aliases[i] = NULL; - - return (NET_R_OK); -} -#else /* !NETENT_DATA */ -static int -copy_netent(struct netent *ne, struct netent *nptr, NET_R_COPY_ARGS) { - char *cp, *eob; - int i, n; - - /* copy net value and type */ - nptr->n_addrtype = ne->n_addrtype; - nptr->n_net = ne->n_net; - - /* copy official name */ - cp = ndptr->line; - eob = ndptr->line + sizeof(ndptr->line); - if ((n = strlen(ne->n_name) + 1) < (eob - cp)) { - strcpy(cp, ne->n_name); - nptr->n_name = cp; - cp += n; - } else { - return (-1); - } - - /* copy aliases */ - i = 0; - nptr->n_aliases = ndptr->net_aliases; - while (ne->n_aliases[i] && i < (_MAXALIASES-1)) { - if ((n = strlen(ne->n_aliases[i]) + 1) < (eob - cp)) { - strcpy(cp, ne->n_aliases[i]); - nptr->n_aliases[i] = cp; - cp += n; - } else { - break; - } - i++; - } - nptr->n_aliases[i] = NULL; - - return (NET_R_OK); -} -#endif /* !NETENT_DATA */ -#else /* NET_R_RETURN */ - static int getnetent_r_unknown_system = 0; -#endif /* NET_R_RETURN */ -#endif /* !defined(_REENTRANT) || !defined(DO_PTHREADS) */ -/*! \file */ diff --git a/src/kits/network/libbind/irs/getnetgrent.c b/src/kits/network/libbind/irs/getnetgrent.c deleted file mode 100644 index 2a21772468..0000000000 --- a/src/kits/network/libbind/irs/getnetgrent.c +++ /dev/null @@ -1,160 +0,0 @@ -/* - * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") - * Copyright (C) 1996-1999, 2001, 2003 Internet Software Consortium. - * - * Permission to use, copy, modify, and/or 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: getnetgrent.c,v 1.6 2008/11/14 02:36:51 marka Exp $"; -#endif /* LIBC_SCCS and not lint */ - -/* Imports */ - -#include "port_before.h" - -#if !defined(__BIND_NOSTATIC) - -#include - -#include -#include - -#include -#include -#include - -#include - -#include "port_after.h" - -#include "irs_data.h" - -/* Forward */ - -static struct net_data *init(void); - - -/* Public */ - -#ifndef SETNETGRENT_ARGS -#define SETNETGRENT_ARGS const char *netgroup -#endif -void -setnetgrent(SETNETGRENT_ARGS) { - struct net_data *net_data = init(); - - setnetgrent_p(netgroup, net_data); -} - -void -endnetgrent(void) { - struct net_data *net_data = init(); - - endnetgrent_p(net_data); -} - -#ifndef INNETGR_ARGS -#define INNETGR_ARGS const char *netgroup, const char *host, \ - const char *user, const char *domain -#endif -int -innetgr(INNETGR_ARGS) { - struct net_data *net_data = init(); - - return (innetgr_p(netgroup, host, user, domain, net_data)); -} - -int -getnetgrent(NGR_R_CONST char **host, NGR_R_CONST char **user, - NGR_R_CONST char **domain) -{ - struct net_data *net_data = init(); - const char *ch, *cu, *cd; - int ret; - - ret = getnetgrent_p(&ch, &cu, &cd, net_data); - if (ret != 1) - return (ret); - - DE_CONST(ch, *host); - DE_CONST(cu, *user); - DE_CONST(cd, *domain); - return (ret); -} - -/* Shared private. */ - -void -setnetgrent_p(const char *netgroup, struct net_data *net_data) { - struct irs_ng *ng; - - if ((net_data != NULL) && ((ng = net_data->ng) != NULL)) - (*ng->rewind)(ng, netgroup); -} - -void -endnetgrent_p(struct net_data *net_data) { - struct irs_ng *ng; - - if (!net_data) - return; - if ((ng = net_data->ng) != NULL) - (*ng->close)(ng); - net_data->ng = NULL; -} - -int -innetgr_p(const char *netgroup, const char *host, - const char *user, const char *domain, - struct net_data *net_data) { - struct irs_ng *ng; - - if (!net_data || !(ng = net_data->ng)) - return (0); - return ((*ng->test)(ng, netgroup, host, user, domain)); -} - -int -getnetgrent_p(const char **host, const char **user, const char **domain, - struct net_data *net_data ) { - struct irs_ng *ng; - - if (!net_data || !(ng = net_data->ng)) - return (0); - return ((*ng->next)(ng, host, user, domain)); -} - -/* Private */ - -static struct net_data * -init(void) { - struct net_data *net_data; - - if (!(net_data = net_data_init(NULL))) - goto error; - if (!net_data->ng) { - net_data->ng = (*net_data->irs->ng_map)(net_data->irs); - if (!net_data->ng) { - error: - errno = EIO; - return (NULL); - } - } - - return (net_data); -} - -#endif /*__BIND_NOSTATIC*/ - -/*! \file */ diff --git a/src/kits/network/libbind/irs/getnetgrent_r.c b/src/kits/network/libbind/irs/getnetgrent_r.c deleted file mode 100644 index aa8810320d..0000000000 --- a/src/kits/network/libbind/irs/getnetgrent_r.c +++ /dev/null @@ -1,219 +0,0 @@ -/* - * Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") - * Copyright (C) 1998, 1999, 2001, 2003 Internet Software Consortium. - * - * Permission to use, copy, modify, and/or 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: getnetgrent_r.c,v 1.14 2008/11/14 02:36:51 marka Exp $"; -#endif /* LIBC_SCCS and not lint */ - -#include -#if !defined(_REENTRANT) || !defined(DO_PTHREADS) - static int getnetgrent_r_not_required = 0; -#else -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef NGR_R_RETURN -#ifndef NGR_R_PRIVATE -#define NGR_R_PRIVATE 0 -#endif - -static NGR_R_RETURN -copy_protoent(NGR_R_CONST char **, NGR_R_CONST char **, NGR_R_CONST char **, - const char *, const char *, const char *, NGR_R_COPY_ARGS); - -NGR_R_RETURN -innetgr_r(const char *netgroup, const char *host, const char *user, - const char *domain) { - char *ng, *ho, *us, *dom; - - DE_CONST(netgroup, ng); - DE_CONST(host, ho); - DE_CONST(user, us); - DE_CONST(domain, dom); - - return (innetgr(ng, ho, us, dom)); -} - -/*% - * These assume a single context is in operation per thread. - * If this is not the case we will need to call irs directly - * rather than through the base functions. - */ - -NGR_R_RETURN -getnetgrent_r(NGR_R_CONST char **machinep, NGR_R_CONST char **userp, - NGR_R_CONST char **domainp, NGR_R_ARGS) -{ - NGR_R_CONST char *mp, *up, *dp; - int res = getnetgrent(&mp, &up, &dp); - - if (res != 1) - return (res); - - return (copy_protoent(machinep, userp, domainp, - mp, up, dp, NGR_R_COPY)); -} - -#if NGR_R_PRIVATE == 2 -struct private { - char *buf; -}; - -#endif -NGR_R_SET_RETURN -#ifdef NGR_R_SET_ARGS -setnetgrent_r(NGR_R_SET_CONST char *netgroup, NGR_R_SET_ARGS) -#else -setnetgrent_r(NGR_R_SET_CONST char *netgroup) -#endif -{ -#if NGR_R_PRIVATE == 2 - struct private *p; -#endif - char *tmp; -#if defined(NGR_R_SET_ARGS) && NGR_R_PRIVATE == 0 - UNUSED(buf); - UNUSED(buflen); -#endif - - DE_CONST(netgroup, tmp); - setnetgrent(tmp); - -#if NGR_R_PRIVATE == 1 - *buf = NULL; -#elif NGR_R_PRIVATE == 2 - *buf = p = malloc(sizeof(struct private)); - if (p == NULL) -#ifdef NGR_R_SET_RESULT - return (NGR_R_BAD); -#else - return; -#endif - p->buf = NULL; -#endif -#ifdef NGR_R_SET_RESULT - return (NGR_R_SET_RESULT); -#endif -} - -NGR_R_END_RETURN -#ifdef NGR_R_END_ARGS -endnetgrent_r(NGR_R_END_ARGS) -#else -endnetgrent_r(void) -#endif -{ -#if NGR_R_PRIVATE == 2 - struct private *p = buf; -#endif -#if defined(NGR_R_SET_ARGS) && NGR_R_PRIVATE == 0 - UNUSED(buf); - UNUSED(buflen); -#endif - - endnetgrent(); -#if NGR_R_PRIVATE == 1 - if (*buf != NULL) - free(*buf); - *buf = NULL; -#elif NGR_R_PRIVATE == 2 - if (p->buf != NULL) - free(p->buf); - free(p); -#endif - NGR_R_END_RESULT(NGR_R_OK); -} - -/* Private */ - -static int -copy_protoent(NGR_R_CONST char **machinep, NGR_R_CONST char **userp, - NGR_R_CONST char **domainp, const char *mp, const char *up, - const char *dp, NGR_R_COPY_ARGS) -{ -#if NGR_R_PRIVATE == 2 - struct private *p = buf; -#endif - char *cp; - int n; - int len; - - /* Find out the amount of space required to store the answer. */ - len = 0; - if (mp != NULL) len += strlen(mp) + 1; - if (up != NULL) len += strlen(up) + 1; - if (dp != NULL) len += strlen(dp) + 1; - -#if NGR_R_PRIVATE == 1 - if (*buf != NULL) - free(*buf); - *buf = malloc(len); - if (*buf == NULL) - return(NGR_R_BAD); - cp = *buf; -#elif NGR_R_PRIVATE == 2 - if (p->buf) - free(p->buf); - p->buf = malloc(len); - if (p->buf == NULL) - return(NGR_R_BAD); - cp = p->buf; -#else - if (len > (int)buflen) { - errno = ERANGE; - return (NGR_R_BAD); - } - cp = buf; -#endif - - if (mp != NULL) { - n = strlen(mp) + 1; - strcpy(cp, mp); - *machinep = cp; - cp += n; - } else - *machinep = NULL; - - if (up != NULL) { - n = strlen(up) + 1; - strcpy(cp, up); - *userp = cp; - cp += n; - } else - *userp = NULL; - - if (dp != NULL) { - n = strlen(dp) + 1; - strcpy(cp, dp); - *domainp = cp; - cp += n; - } else - *domainp = NULL; - - return (NGR_R_OK); -} -#else /* NGR_R_RETURN */ - static int getnetgrent_r_unknown_system = 0; -#endif /* NGR_R_RETURN */ -#endif /* !defined(_REENTRANT) || !defined(DO_PTHREADS) */ -/*! \file */ diff --git a/src/kits/network/libbind/irs/getnetnamadr.c b/src/kits/network/libbind/irs/getnetnamadr.c new file mode 100644 index 0000000000..92028d2757 --- /dev/null +++ b/src/kits/network/libbind/irs/getnetnamadr.c @@ -0,0 +1,647 @@ +/* $NetBSD: getnetnamadr.c,v 1.42 2012/03/13 21:13:41 christos Exp $ */ + +/* Copyright (c) 1993 Carlos Leandro and Rui Salgueiro + * Dep. Matematica Universidade de Coimbra, Portugal, Europe + * + * 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. + */ +/* + * Copyright (c) 1983, 1993 + * 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: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * 3. Neither the name of the University 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 REGENTS 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. + */ + +#include +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)getnetbyaddr.c 8.1 (Berkeley) 6/4/93"; +static char sccsid_[] = "from getnetnamadr.c 1.4 (Coimbra) 93/06/03"; +static char rcsid[] = "Id: getnetnamadr.c,v 8.8 1997/06/01 20:34:37 vixie Exp "; +#else +__RCSID("$NetBSD: getnetnamadr.c,v 1.42 2012/03/13 21:13:41 christos Exp $"); +#endif +#endif /* LIBC_SCCS and not lint */ + +#include +#include +#include +#include +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#ifdef YP +#include +#include +#include +#endif + +#ifdef __weak_alias +__weak_alias(getnetbyaddr,_getnetbyaddr) +__weak_alias(getnetbyname,_getnetbyname) +#endif + +extern int _net_stayopen; + +#define BYADDR 0 +#define BYNAME 1 +#define MAXALIASES 35 + +#define MAXPACKET (64*1024) + +typedef union { + HEADER hdr; + u_char buf[MAXPACKET]; +} querybuf; + +typedef union { + long al; + char ac; +} align; + +#ifdef YP +static char *__ypdomain; +static char *__ypcurrent; +static int __ypcurrentlen; +#endif + +static struct netent net_entry; +static char *net_aliases[MAXALIASES]; + +static int parse_reversed_addr(const char *, in_addr_t *); +static struct netent *getnetanswer(querybuf *, int, int); +static int _files_getnetbyaddr(void *, void *, va_list); +static int _files_getnetbyname(void *, void *, va_list); +static int _dns_getnetbyaddr(void *, void *, va_list); +static int _dns_getnetbyname(void *, void *, va_list); +#ifdef YP +static int _yp_getnetbyaddr(void *, void *, va_list); +static int _yp_getnetbyname(void *, void *, va_list); +static struct netent *_ypnetent(char *); +#endif + +/* + * parse_reversed_addr -- + * parse str, which should be of the form 'd.c.b.a.IN-ADDR.ARPA' + * (a PTR as per RFC 1101) and convert into an in_addr_t of the + * address 'a.b.c.d'. + * returns 0 on success (storing in *result), or -1 on error. + */ +static int +parse_reversed_addr(const char *str, in_addr_t *result) +{ + unsigned long octet[4]; + const char *sp; + char *ep; + int octidx; + + sp = str; + /* find the four octets 'd.b.c.a.' */ + for (octidx = 0; octidx < 4; octidx++) { + /* ensure it's a number */ + if (!isdigit((unsigned char)*sp)) + return -1; + octet[octidx] = strtoul(sp, &ep, 10); + /* with a trailing '.' */ + if (*ep != '.') + return -1; + /* and is 0 <= octet <= 255 */ + if (octet[octidx] > 255) + return -1; + sp = ep + 1; + } + /* ensure trailer is correct */ + if (strcasecmp(sp, "IN-ADDR.ARPA") != 0) + return -1; + *result = 0; + /* build result from octets in reverse */ + for (octidx = 3; octidx >= 0; octidx--) { + *result <<= 8; + *result |= (in_addr_t)(octet[octidx] & 0xff); + } + return 0; +} + +static struct netent * +getnetanswer(querybuf *answer, int anslen, int net_i) +{ + static char n_name[MAXDNAME]; + static char netbuf[PACKETSZ]; + + HEADER *hp; + u_char *cp; + int n; + u_char *eom; + int type, class, ancount, qdcount, haveanswer; + char *in, *bp, **ap, *ep; + + assert(answer != NULL); + + /* + * find first satisfactory answer + * + * answer --> +------------+ ( MESSAGE ) + * | Header | + * +------------+ + * | Question | the question for the name server + * +------------+ + * | Answer | RRs answering the question + * +------------+ + * | Authority | RRs pointing toward an authority + * | Additional | RRs holding additional information + * +------------+ + */ + eom = answer->buf + anslen; + hp = &answer->hdr; + ancount = ntohs(hp->ancount); /* #/records in the answer section */ + qdcount = ntohs(hp->qdcount); /* #/entries in the question section */ + bp = netbuf; + ep = netbuf + sizeof(netbuf); + cp = answer->buf + HFIXEDSZ; + if (!qdcount) { + if (hp->aa) + h_errno = HOST_NOT_FOUND; + else + h_errno = TRY_AGAIN; + return NULL; + } + while (qdcount-- > 0) { + n = __dn_skipname(cp, eom); + if (n < 0 || (cp + n + QFIXEDSZ) > eom) { + h_errno = NO_RECOVERY; + return(NULL); + } + cp += n + QFIXEDSZ; + } + ap = net_aliases; + *ap = NULL; + net_entry.n_aliases = net_aliases; + haveanswer = 0; + n_name[0] = '\0'; + while (--ancount >= 0 && cp < eom) { + n = dn_expand(answer->buf, eom, cp, bp, (int)(ep - bp)); + if ((n < 0) || !res_dnok(bp)) + break; + cp += n; + (void)strlcpy(n_name, bp, sizeof(n_name)); + GETSHORT(type, cp); + GETSHORT(class, cp); + cp += INT32SZ; /* TTL */ + GETSHORT(n, cp); + if (class == C_IN && type == T_PTR) { + n = dn_expand(answer->buf, eom, cp, bp, (int)(ep - bp)); + if ((n < 0) || !res_hnok(bp)) { + cp += n; + return NULL; + } + cp += n; + *ap++ = bp; + bp += strlen(bp) + 1; + net_entry.n_addrtype = + (class == C_IN) ? AF_INET : AF_UNSPEC; + haveanswer++; + } + } + if (haveanswer) { + *ap = NULL; + switch (net_i) { + case BYADDR: + net_entry.n_name = *net_entry.n_aliases; + net_entry.n_net = 0L; + break; + case BYNAME: + ap = net_entry.n_aliases; + next_alias: + in = *ap++; + if (in == NULL) { + h_errno = HOST_NOT_FOUND; + return NULL; + } + net_entry.n_name = n_name; + if (parse_reversed_addr(in, &net_entry.n_net) == -1) + goto next_alias; + break; + } + net_entry.n_aliases++; +#if (defined(__sparc__) && defined(_LP64)) || \ + defined(__alpha__) || \ + (defined(__i386__) && defined(_LP64)) || \ + (defined(__sh__) && defined(_LP64)) + net_entry.__n_pad0 = 0; +#endif + return &net_entry; + } + h_errno = TRY_AGAIN; + return NULL; +} + +/*ARGSUSED*/ +static int +_files_getnetbyaddr(void *cbrv, void *cbdata, va_list ap) +{ + struct netent **retval = va_arg(ap, struct netent **); + uint32_t net = va_arg(ap, uint32_t); + int type = va_arg(ap, int); + + struct netent *np; + + setnetent(_net_stayopen); + while ((np = getnetent()) != NULL) + if (np->n_addrtype == type && np->n_net == net) + break; + if (!_net_stayopen) + endnetent(); + + if (np != NULL) { + *retval = np; + return NS_SUCCESS; + } else { + h_errno = HOST_NOT_FOUND; + return NS_NOTFOUND; + } +} + +/*ARGSUSED*/ +static int +_dns_getnetbyaddr(void *cbrv, void *cbdata, va_list ap) +{ + struct netent **retval = va_arg(ap, struct netent **); + uint32_t net = va_arg(ap, uint32_t); + int type = va_arg(ap, int); + + unsigned int netbr[4]; + int nn, anslen; + querybuf *buf; + char qbuf[MAXDNAME]; + uint32_t net2; + struct netent *np; + res_state res; + + if (type != AF_INET) + return NS_UNAVAIL; + + for (nn = 4, net2 = net; net2; net2 >>= 8) + netbr[--nn] = (unsigned int)(net2 & 0xff); + switch (nn) { + default: + return NS_UNAVAIL; + case 3: /* Class A */ + snprintf(qbuf, sizeof(qbuf), "0.0.0.%u.in-addr.arpa", netbr[3]); + break; + case 2: /* Class B */ + snprintf(qbuf, sizeof(qbuf), "0.0.%u.%u.in-addr.arpa", + netbr[3], netbr[2]); + break; + case 1: /* Class C */ + snprintf(qbuf, sizeof(qbuf), "0.%u.%u.%u.in-addr.arpa", + netbr[3], netbr[2], netbr[1]); + break; + case 0: /* Class D - E */ + snprintf(qbuf, sizeof(qbuf), "%u.%u.%u.%u.in-addr.arpa", + netbr[3], netbr[2], netbr[1], netbr[0]); + break; + } + buf = malloc(sizeof(*buf)); + if (buf == NULL) { + h_errno = NETDB_INTERNAL; + return NS_NOTFOUND; + } + res = __res_get_state(); + if (res == NULL) { + free(buf); + return NS_NOTFOUND; + } + anslen = res_nquery(res, qbuf, C_IN, T_PTR, buf->buf, + (int)sizeof(buf->buf)); + if (anslen < 0) { + free(buf); +#ifdef DEBUG + if (res->options & RES_DEBUG) + printf("res_query failed\n"); +#endif + __res_put_state(res); + return NS_NOTFOUND; + } + __res_put_state(res); + np = getnetanswer(buf, anslen, BYADDR); + free(buf); + if (np) { + /* maybe net should be unsigned? */ + uint32_t u_net = net; + + /* Strip trailing zeros */ + while ((u_net & 0xff) == 0 && u_net != 0) + u_net >>= 8; + np->n_net = u_net; + } + + if (np != NULL) { + *retval = np; + return NS_SUCCESS; + } else { + h_errno = HOST_NOT_FOUND; + return NS_NOTFOUND; + } +} + +struct netent * +getnetbyaddr(uint32_t net, int net_type) +{ + int rv; + struct netent *retval; + + static const ns_dtab dtab[] = { + NS_FILES_CB(_files_getnetbyaddr, NULL) + { NSSRC_DNS, _dns_getnetbyaddr, NULL }, /* force -DHESIOD */ + NS_NIS_CB(_yp_getnetbyaddr, NULL) + NS_NULL_CB + }; + + retval = NULL; + h_errno = NETDB_INTERNAL; + rv = nsdispatch(NULL, dtab, NSDB_NETWORKS, "getnetbyaddr", + __nsdefaultsrc, &retval, net, net_type); + if (rv == NS_SUCCESS) { + h_errno = NETDB_SUCCESS; + return retval; + } + return NULL; +} + +/*ARGSUSED*/ +static int +_files_getnetbyname(void *cbrv, void *cbdata, va_list ap) +{ + struct netent **retval = va_arg(ap, struct netent **); + const char *name = va_arg(ap, const char *); + + struct netent *np; + char **cp; + + setnetent(_net_stayopen); + while ((np = getnetent()) != NULL) { + if (strcasecmp(np->n_name, name) == 0) + break; + for (cp = np->n_aliases; *cp != 0; cp++) + if (strcasecmp(*cp, name) == 0) + goto found; + } +found: + if (!_net_stayopen) + endnetent(); + + if (np != NULL) { + *retval = np; + return NS_SUCCESS; + } else { + h_errno = HOST_NOT_FOUND; + return NS_NOTFOUND; + } +} + +/*ARGSUSED*/ +static int +_dns_getnetbyname(void *cbrv, void *cbdata, va_list ap) +{ + struct netent **retval = va_arg(ap, struct netent **); + const char *name = va_arg(ap, const char *); + + int anslen; + querybuf *buf; + char qbuf[MAXDNAME]; + struct netent *np; + res_state res; + + strlcpy(&qbuf[0], name, sizeof(qbuf)); + buf = malloc(sizeof(*buf)); + if (buf == NULL) { + h_errno = NETDB_INTERNAL; + return NS_NOTFOUND; + } + res = __res_get_state(); + if (res == NULL) { + free(buf); + return NS_NOTFOUND; + } + anslen = res_nsearch(res, qbuf, C_IN, T_PTR, buf->buf, + (int)sizeof(buf->buf)); + if (anslen < 0) { + free(buf); +#ifdef DEBUG + if (res->options & RES_DEBUG) + printf("res_search failed\n"); +#endif + __res_put_state(res); + return NS_NOTFOUND; + } + __res_put_state(res); + np = getnetanswer(buf, anslen, BYNAME); + free(buf); + + if (np != NULL) { + *retval = np; + return NS_SUCCESS; + } else { + h_errno = HOST_NOT_FOUND; + return NS_NOTFOUND; + } +} + +struct netent * +getnetbyname(const char *name) +{ + int rv; + struct netent *retval; + + static const ns_dtab dtab[] = { + NS_FILES_CB(_files_getnetbyname, NULL) + { NSSRC_DNS, _dns_getnetbyname, NULL }, /* force -DHESIOD */ + NS_NIS_CB(_yp_getnetbyname, NULL) + NS_NULL_CB + }; + + assert(name != NULL); + + retval = NULL; + h_errno = NETDB_INTERNAL; + rv = nsdispatch(NULL, dtab, NSDB_NETWORKS, "getnetbyname", + __nsdefaultsrc, &retval, name); + if (rv == NS_SUCCESS) { + h_errno = NETDB_SUCCESS; + return retval; + } + return NULL; +} + +#ifdef YP +/*ARGSUSED*/ +static int +_yp_getnetbyaddr(void *cbrv, void *cb_data, va_list ap) +{ + struct netent **retval = va_arg(ap, struct netent **); + uint32_t net = va_arg(ap, uint32_t); + int type = va_arg(ap, int); + + struct netent *np; + char qbuf[MAXDNAME]; + unsigned int netbr[4]; + uint32_t net2; + int r; + + if (type != AF_INET) + return NS_UNAVAIL; + + if (!__ypdomain) { + if (_yp_check(&__ypdomain) == 0) + return NS_UNAVAIL; + } + np = NULL; + if (__ypcurrent) + free(__ypcurrent); + __ypcurrent = NULL; + for (r = 4, net2 = net; net2; net2 >>= 8) + netbr[--r] = (unsigned int)(net2 & 0xff); + switch (r) { + default: + return NS_UNAVAIL; + case 3: /* Class A */ + snprintf(qbuf, sizeof(qbuf), "%u", netbr[3]); + break; + case 2: /* Class B */ + snprintf(qbuf, sizeof(qbuf), "%u.%u", netbr[2], netbr[3]); + break; + case 1: /* Class C */ + snprintf(qbuf, sizeof(qbuf), "%u.%u.%u", netbr[1], netbr[2], + netbr[3]); + break; + case 0: /* Class D - E */ + snprintf(qbuf, sizeof(qbuf), "%u.%u.%u.%u", netbr[0], netbr[1], + netbr[2], netbr[3]); + break; + } + r = yp_match(__ypdomain, "networks.byaddr", qbuf, (int)strlen(qbuf), + &__ypcurrent, &__ypcurrentlen); + if (r == 0) + np = _ypnetent(__ypcurrent); + + if (np != NULL) { + *retval = np; + return NS_SUCCESS; + } else { + h_errno = HOST_NOT_FOUND; + return NS_NOTFOUND; + } +} + +/*ARGSUSED*/ +static int +_yp_getnetbyname(void *cbrv, void *cbdata, va_list ap) +{ + struct netent **retval = va_arg(ap, struct netent **); + const char *name = va_arg(ap, const char *); + + struct netent *np; + int r; + + if (!__ypdomain) { + if (_yp_check(&__ypdomain) == 0) + return NS_UNAVAIL; + } + np = NULL; + if (__ypcurrent) + free(__ypcurrent); + __ypcurrent = NULL; + r = yp_match(__ypdomain, "networks.byname", name, (int)strlen(name), + &__ypcurrent, &__ypcurrentlen); + if (r == 0) + np = _ypnetent(__ypcurrent); + + if (np != NULL) { + *retval = np; + return NS_SUCCESS; + } else { + h_errno = HOST_NOT_FOUND; + return NS_NOTFOUND; + } +} + +static struct netent * +_ypnetent(char *line) +{ + char *cp, *p, **q; + + assert(line != NULL); + + net_entry.n_name = line; + cp = strpbrk(line, " \t"); + if (cp == NULL) + return NULL; + *cp++ = '\0'; + while (*cp == ' ' || *cp == '\t') + cp++; + p = strpbrk(cp, " \t"); + if (p != NULL) + *p++ = '\0'; + net_entry.n_net = inet_network(cp); +#if (defined(__sparc__) && defined(_LP64)) || \ + defined(__alpha__) || \ + (defined(__i386__) && defined(_LP64)) || \ + (defined(__sh__) && defined(_LP64)) + net_entry.__n_pad0 = 0; +#endif + net_entry.n_addrtype = AF_INET; + q = net_entry.n_aliases = net_aliases; + if (p != NULL) { + cp = p; + while (cp && *cp) { + if (*cp == ' ' || *cp == '\t') { + cp++; + continue; + } + if (q < &net_aliases[MAXALIASES - 1]) + *q++ = cp; + cp = strpbrk(cp, " \t"); + if (cp != NULL) + *cp++ = '\0'; + } + } + *q = NULL; + + return &net_entry; +} +#endif diff --git a/src/kits/network/libbind/irs/getprotobyname.c b/src/kits/network/libbind/irs/getprotobyname.c new file mode 100644 index 0000000000..a2f9c802fc --- /dev/null +++ b/src/kits/network/libbind/irs/getprotobyname.c @@ -0,0 +1,59 @@ +/* $NetBSD: getprotobyname.c,v 1.4 2008/04/28 20:23:00 martin Exp $ */ + +/*- + * Copyright (c) 2004 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Christos Zoulas. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. + */ +#include +#if defined(LIBC_SCCS) && !defined(lint) +__RCSID("$NetBSD: getprotobyname.c,v 1.4 2008/04/28 20:23:00 martin Exp $"); +#endif /* LIBC_SCCS and not lint */ + +#include +#include + +#include "protoent.h" + +#ifdef __weak_alias +__weak_alias(getprotobyname,_getprotobyname) +#endif + +#ifdef _REENTRANT +extern pthread_mutex_t _protoent_mutex; +#endif +extern struct protoent_data _protoent_data; + +struct protoent * +getprotobyname(const char *name) +{ + struct protoent *p; + + pthread_mutex_lock(&_protoent_mutex); + p = getprotobyname_r(name, &_protoent_data.proto, &_protoent_data); + pthread_mutex_unlock(&_protoent_mutex); + return (p); +} diff --git a/src/kits/network/libbind/irs/getprotobyname_r.c b/src/kits/network/libbind/irs/getprotobyname_r.c new file mode 100644 index 0000000000..8e40a42dc2 --- /dev/null +++ b/src/kits/network/libbind/irs/getprotobyname_r.c @@ -0,0 +1,75 @@ +/* $NetBSD: getprotobyname_r.c,v 1.3 2005/04/18 19:39:45 kleink Exp $ */ + +/* + * Copyright (c) 1983, 1993 + * 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: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * 3. Neither the name of the University 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 REGENTS 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. + */ + +#include +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)getprotoname.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: getprotobyname_r.c,v 1.3 2005/04/18 19:39:45 kleink Exp $"); +#endif +#endif /* LIBC_SCCS and not lint */ + +#include +#include +#include + +#include "protoent.h" + +#ifdef __weak_alias +__weak_alias(getprotobyname_r,_getprotobyname_r) +#endif + +struct protoent * +getprotobyname_r(const char *name, struct protoent *pr, + struct protoent_data *pd) +{ + struct protoent *p; + char **cp; + + assert(name != NULL); + + setprotoent_r(pd->stayopen, pd); + while ((p = getprotoent_r(pr, pd)) != NULL) { + if (strcmp(p->p_name, name) == 0) + break; + for (cp = p->p_aliases; *cp != NULL; cp++) + if (strcmp(*cp, name) == 0) + goto found; + } +found: + if (!pd->stayopen) + if (pd->fp != NULL) { + (void)fclose(pd->fp); + pd->fp = NULL; + } + return p; +} diff --git a/src/kits/network/libbind/irs/getprotobynumber.c b/src/kits/network/libbind/irs/getprotobynumber.c new file mode 100644 index 0000000000..32fa699bf1 --- /dev/null +++ b/src/kits/network/libbind/irs/getprotobynumber.c @@ -0,0 +1,60 @@ +/* $NetBSD: getprotobynumber.c,v 1.4 2008/04/28 20:23:00 martin Exp $ */ + +/*- + * Copyright (c) 2004 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Christos Zoulas. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. + */ + +#include +#if defined(LIBC_SCCS) && !defined(lint) +__RCSID("$NetBSD: getprotobynumber.c,v 1.4 2008/04/28 20:23:00 martin Exp $"); +#endif /* LIBC_SCCS and not lint */ + +#include +#include + +#include "protoent.h" + +#ifdef __weak_alias +__weak_alias(getprotobynumber,_getprotobynumber) +#endif + +#ifdef _REENTRANT +extern pthread_mutex_t _protoent_mutex; +#endif +extern struct protoent_data _protoent_data; + +struct protoent * +getprotobynumber(int proto) +{ + struct protoent *p; + + pthread_mutex_lock(&_protoent_mutex); + p = getprotobynumber_r(proto, &_protoent_data.proto, &_protoent_data); + pthread_mutex_unlock(&_protoent_mutex); + return (p); +} diff --git a/src/kits/network/libbind/irs/getprotobynumber_r.c b/src/kits/network/libbind/irs/getprotobynumber_r.c new file mode 100644 index 0000000000..96fcd4911b --- /dev/null +++ b/src/kits/network/libbind/irs/getprotobynumber_r.c @@ -0,0 +1,65 @@ +/* $NetBSD: getprotobynumber_r.c,v 1.3 2005/04/18 19:39:45 kleink Exp $ */ + +/* + * Copyright (c) 1983, 1993 + * 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: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * 3. Neither the name of the University 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 REGENTS 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. + */ + +#include +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)getproto.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: getprotobynumber_r.c,v 1.3 2005/04/18 19:39:45 kleink Exp $"); +#endif +#endif /* LIBC_SCCS and not lint */ + +#include +#include + +#include "protoent.h" + +#ifdef __weak_alias +__weak_alias(getprotobynumber_r,_getprotobynumber_r) +#endif + +struct protoent * +getprotobynumber_r(int proto, struct protoent *pr, struct protoent_data *pd) +{ + struct protoent *p; + + setprotoent_r(pd->stayopen, pd); + while ((p = getprotoent_r(pr, pd)) != NULL) + if (p->p_proto == proto) + break; + if (!pd->stayopen) + if (pd->fp != NULL) { + (void)fclose(pd->fp); + pd->fp = NULL; + } + return p; +} diff --git a/src/kits/network/libbind/irs/getprotoent.c b/src/kits/network/libbind/irs/getprotoent.c index 1e109f9659..87ad8894f5 100644 --- a/src/kits/network/libbind/irs/getprotoent.c +++ b/src/kits/network/libbind/irs/getprotoent.c @@ -1,176 +1,77 @@ -/* - * 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. - */ +/* $NetBSD: getprotoent.c,v 1.12 2008/04/28 20:23:00 martin Exp $ */ -#if !defined(LINT) && !defined(CODECENTER) -static const char rcsid[] = "$Id: getprotoent.c,v 1.4 2005/04/27 04:56:26 sra Exp $"; +/*- + * Copyright (c) 2004 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Christos Zoulas. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. + */ +#include + +#if defined(LIBC_SCCS) && !defined(lint) +__RCSID("$NetBSD: getprotoent.c,v 1.12 2008/04/28 20:23:00 martin Exp $"); +#endif /* LIBC_SCCS and not lint */ + +#include + +#include "protoent.h" + +#ifdef __weak_alias +__weak_alias(endprotoent,_endprotoent) +__weak_alias(getprotoent,_getprotoent) +__weak_alias(setprotoent,_setprotoent) #endif -/* Imports */ +#ifdef _REENTRANT +pthread_mutex_t _protoent_mutex = PTHREAD_MUTEX_INITIALIZER; +#endif +struct protoent_data _protoent_data; -#include "port_before.h" - -#if !defined(__BIND_NOSTATIC) - -#include - -#include -#include - -#include -#include -#include -#include - -#include - -#include "port_after.h" - -#include "irs_data.h" - -/* Forward */ - -static struct net_data *init(void); - -/* Public */ - -struct protoent * -getprotoent() { - struct net_data *net_data = init(); - - return (getprotoent_p(net_data)); -} - -struct protoent * -getprotobyname(const char *name) { - struct net_data *net_data = init(); - - return (getprotobyname_p(name, net_data)); -} - -struct protoent * -getprotobynumber(int proto) { - struct net_data *net_data = init(); - - return (getprotobynumber_p(proto, net_data)); +void +setprotoent(int f) +{ + pthread_mutex_lock(&_protoent_mutex); + setprotoent_r(f, &_protoent_data); + pthread_mutex_unlock(&_protoent_mutex); } void -setprotoent(int stayopen) { - struct net_data *net_data = init(); - - setprotoent_p(stayopen, net_data); -} - -void -endprotoent() { - struct net_data *net_data = init(); - - endprotoent_p(net_data); -} - -/* Shared private. */ - -struct protoent * -getprotoent_p(struct net_data *net_data) { - struct irs_pr *pr; - - if (!net_data || !(pr = net_data->pr)) - return (NULL); - net_data->pr_last = (*pr->next)(pr); - return (net_data->pr_last); +endprotoent(void) +{ + pthread_mutex_lock(&_protoent_mutex); + endprotoent_r(&_protoent_data); + pthread_mutex_unlock(&_protoent_mutex); } struct protoent * -getprotobyname_p(const char *name, struct net_data *net_data) { - struct irs_pr *pr; - char **pap; +getprotoent(void) +{ + struct protoent *p; - if (!net_data || !(pr = net_data->pr)) - return (NULL); - if (net_data->pr_stayopen && net_data->pr_last) { - if (!strcmp(net_data->pr_last->p_name, name)) - return (net_data->pr_last); - for (pap = net_data->pr_last->p_aliases; pap && *pap; pap++) - if (!strcmp(name, *pap)) - return (net_data->pr_last); - } - net_data->pr_last = (*pr->byname)(pr, name); - if (!net_data->pr_stayopen) - endprotoent(); - return (net_data->pr_last); + pthread_mutex_lock(&_protoent_mutex); + p = getprotoent_r(&_protoent_data.proto, &_protoent_data); + pthread_mutex_unlock(&_protoent_mutex); + return (p); } - -struct protoent * -getprotobynumber_p(int proto, struct net_data *net_data) { - struct irs_pr *pr; - - if (!net_data || !(pr = net_data->pr)) - return (NULL); - if (net_data->pr_stayopen && net_data->pr_last) - if (net_data->pr_last->p_proto == proto) - return (net_data->pr_last); - net_data->pr_last = (*pr->bynumber)(pr, proto); - if (!net_data->pr_stayopen) - endprotoent(); - return (net_data->pr_last); -} - -void -setprotoent_p(int stayopen, struct net_data *net_data) { - struct irs_pr *pr; - - if (!net_data || !(pr = net_data->pr)) - return; - (*pr->rewind)(pr); - net_data->pr_stayopen = (stayopen != 0); - if (stayopen == 0) - net_data_minimize(net_data); -} - -void -endprotoent_p(struct net_data *net_data) { - struct irs_pr *pr; - - if ((net_data != NULL) && ((pr = net_data->pr) != NULL)) - (*pr->minimize)(pr); -} - -/* Private */ - -static struct net_data * -init() { - struct net_data *net_data; - - if (!(net_data = net_data_init(NULL))) - goto error; - if (!net_data->pr) { - net_data->pr = (*net_data->irs->pr_map)(net_data->irs); - - if (!net_data->pr || !net_data->res) { - error: - errno = EIO; - return (NULL); - } - (*net_data->pr->res_set)(net_data->pr, net_data->res, NULL); - } - - return (net_data); -} - -#endif /*__BIND_NOSTATIC*/ - -/*! \file */ diff --git a/src/kits/network/libbind/irs/getprotoent_r.c b/src/kits/network/libbind/irs/getprotoent_r.c index d5d9ae53b6..0ed0bc2bca 100644 --- a/src/kits/network/libbind/irs/getprotoent_r.c +++ b/src/kits/network/libbind/irs/getprotoent_r.c @@ -1,223 +1,161 @@ +/* $NetBSD: getprotoent_r.c,v 1.6 2011/10/15 23:00:02 christos Exp $ */ + /* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 1998-1999 by Internet Software Consortium. + * Copyright (c) 1983, 1993 + * The Regents of the University of California. All rights reserved. * - * 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. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. * - * 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. + * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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. */ +#include #if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: getprotoent_r.c,v 1.6 2006/08/01 01:14:16 marka Exp $"; +#if 0 +static char sccsid[] = "@(#)getprotoent.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: getprotoent_r.c,v 1.6 2011/10/15 23:00:02 christos Exp $"); +#endif #endif /* LIBC_SCCS and not lint */ -#include -#if !defined(_REENTRANT) || !defined(DO_PTHREADS) - static int getprotoent_r_not_required = 0; -#else -#include -#include -#include -#include -#include #include -#include +#include +#include +#include +#include -#ifdef PROTO_R_RETURN +#include -static PROTO_R_RETURN -copy_protoent(struct protoent *, struct protoent *, PROTO_R_COPY_ARGS); +#include +#include "protoent.h" -PROTO_R_RETURN -getprotobyname_r(const char *name, struct protoent *pptr, PROTO_R_ARGS) { - struct protoent *pe = getprotobyname(name); -#ifdef PROTO_R_SETANSWER - int n = 0; - - if (pe == NULL || (n = copy_protoent(pe, pptr, PROTO_R_COPY)) != 0) - *answerp = NULL; - else - *answerp = pptr; - - return (n); -#else - if (pe == NULL) - return (PROTO_R_BAD); - - return (copy_protoent(pe, pptr, PROTO_R_COPY)); +#ifdef __weak_alias +__weak_alias(endprotoent_r,_endprotoent_r) +__weak_alias(getprotoent_r,_getprotoent_r) +__weak_alias(setprotoent_r,_setprotoent_r) #endif -} -PROTO_R_RETURN -getprotobynumber_r(int proto, struct protoent *pptr, PROTO_R_ARGS) { - struct protoent *pe = getprotobynumber(proto); -#ifdef PROTO_R_SETANSWER - int n = 0; - - if (pe == NULL || (n = copy_protoent(pe, pptr, PROTO_R_COPY)) != 0) - *answerp = NULL; - else - *answerp = pptr; - - return (n); -#else - if (pe == NULL) - return (PROTO_R_BAD); - - return (copy_protoent(pe, pptr, PROTO_R_COPY)); -#endif -} - -/*% - * These assume a single context is in operation per thread. - * If this is not the case we will need to call irs directly - * rather than through the base functions. - */ - -PROTO_R_RETURN -getprotoent_r(struct protoent *pptr, PROTO_R_ARGS) { - struct protoent *pe = getprotoent(); -#ifdef PROTO_R_SETANSWER - int n = 0; - - if (pe == NULL || (n = copy_protoent(pe, pptr, PROTO_R_COPY)) != 0) - *answerp = NULL; - else - *answerp = pptr; - - return (n); -#else - if (pe == NULL) - return (PROTO_R_BAD); - - return (copy_protoent(pe, pptr, PROTO_R_COPY)); -#endif -} - -PROTO_R_SET_RETURN -#ifdef PROTO_R_ENT_ARGS -setprotoent_r(int stay_open, PROTO_R_ENT_ARGS) -#else -setprotoent_r(int stay_open) -#endif +void +setprotoent_r(int f, struct protoent_data *pd) { -#ifdef PROTO_R_ENT_UNUSED - PROTO_R_ENT_UNUSED; -#endif - setprotoent(stay_open); -#ifdef PROTO_R_SET_RESULT - return (PROTO_R_SET_RESULT); -#endif + if (pd->fp == NULL) { + char buffer[256]; + find_directory(B_SYSTEM_SETTINGS_DIRECTORY, 0, false, buffer, sizeof(buffer)); + strlcat(buffer, "/network/protocols", sizeof(buffer)); + + pd->fp = fopen(buffer, "re"); + } else + rewind(pd->fp); + pd->stayopen |= f; } -PROTO_R_END_RETURN -#ifdef PROTO_R_ENT_ARGS -endprotoent_r(PROTO_R_ENT_ARGS) -#else -endprotoent_r() -#endif +void +endprotoent_r(struct protoent_data *pd) { -#ifdef PROTO_R_ENT_UNUSED - PROTO_R_ENT_UNUSED; -#endif - endprotoent(); - PROTO_R_END_RESULT(PROTO_R_OK); + if (pd->fp) { + (void)fclose(pd->fp); + pd->fp = NULL; + } + if (pd->aliases) { + free(pd->aliases); + pd->aliases = NULL; + pd->maxaliases = 0; + } + if (pd->line) { + free(pd->line); + pd->line = NULL; + } + pd->stayopen = 0; } -/* Private */ +struct protoent * +getprotoent_r(struct protoent *pr, struct protoent_data *pd) +{ + char *p, *cp, **q; + size_t i = 0; + int oerrno; -#ifndef PROTOENT_DATA -static PROTO_R_RETURN -copy_protoent(struct protoent *pe, struct protoent *pptr, PROTO_R_COPY_ARGS) { - char *cp; - int i, n; - int numptr, len; + if (pd->fp == NULL) + setprotoent_r(0, pd); + if (pd->fp == NULL) + return NULL; - /* Find out the amount of space required to store the answer. */ - numptr = 1; /*%< NULL ptr */ - len = (char *)ALIGN(buf) - buf; - for (i = 0; pe->p_aliases[i]; i++, numptr++) { - len += strlen(pe->p_aliases[i]) + 1; - } - len += strlen(pe->p_name) + 1; - len += numptr * sizeof(char*); - - if (len > (int)buflen) { - errno = ERANGE; - return (PROTO_R_BAD); - } - - /* copy protocol value*/ - pptr->p_proto = pe->p_proto; - - cp = (char *)ALIGN(buf) + numptr * sizeof(char *); - - /* copy official name */ - n = strlen(pe->p_name) + 1; - strcpy(cp, pe->p_name); - pptr->p_name = cp; - cp += n; - - /* copy aliases */ - pptr->p_aliases = (char **)ALIGN(buf); - for (i = 0 ; pe->p_aliases[i]; i++) { - n = strlen(pe->p_aliases[i]) + 1; - strcpy(cp, pe->p_aliases[i]); - pptr->p_aliases[i] = cp; - cp += n; - } - pptr->p_aliases[i] = NULL; - - return (PROTO_R_OK); -} -#else /* !PROTOENT_DATA */ -static int -copy_protoent(struct protoent *pe, struct protoent *pptr, PROTO_R_COPY_ARGS) { - char *cp, *eob; - int i, n; - - /* copy protocol value */ - pptr->p_proto = pe->p_proto; - - /* copy official name */ - cp = pdptr->line; - eob = pdptr->line + sizeof(pdptr->line); - if ((n = strlen(pe->p_name) + 1) < (eob - cp)) { - strcpy(cp, pe->p_name); - pptr->p_name = cp; - cp += n; - } else { - return (-1); - } - - /* copy aliases */ - i = 0; - pptr->p_aliases = pdptr->proto_aliases; - while (pe->p_aliases[i] && i < (_MAXALIASES-1)) { - if ((n = strlen(pe->p_aliases[i]) + 1) < (eob - cp)) { - strcpy(cp, pe->p_aliases[i]); - pptr->p_aliases[i] = cp; - cp += n; - } else { - break; + for (;;) { + if (pd->line) + free(pd->line); + pd->line = fparseln(pd->fp, NULL, NULL, NULL, + FPARSELN_UNESCALL); + if (pd->line == NULL) + return NULL; + pr->p_name = p = pd->line; + cp = strpbrk(p, " \t"); + if (cp == NULL) + continue; + *cp++ = '\0'; + while (*cp == ' ' || *cp == '\t') + cp++; + p = strpbrk(cp, " \t"); + if (p != NULL) + *p++ = '\0'; + pr->p_proto = atoi(cp); + if (pd->aliases == NULL) { + pd->maxaliases = 10; + pd->aliases = malloc(pd->maxaliases * sizeof(char *)); + if (pd->aliases == NULL) { + oerrno = errno; + endprotoent_r(pd); + errno = oerrno; + return NULL; + } } - i++; - } - pptr->p_aliases[i] = NULL; + q = pr->p_aliases = pd->aliases; + if (p != NULL) { + cp = p; + while (cp && *cp) { + if (*cp == ' ' || *cp == '\t') { + cp++; + continue; + } + if (i == pd->maxaliases - 2) { + pd->maxaliases *= 2; + q = realloc(q, + pd->maxaliases * sizeof(char *)); + if (q == NULL) { + oerrno = errno; + endprotoent_r(pd); + errno = oerrno; + return NULL; + } + pr->p_aliases = pd->aliases = q; + } + q[i++] = cp; - return (PROTO_R_OK); + cp = strpbrk(cp, " \t"); + if (cp != NULL) + *cp++ = '\0'; + } + } + q[i] = NULL; + return pr; + } } -#endif /* PROTOENT_DATA */ -#else /* PROTO_R_RETURN */ - static int getprotoent_r_unknown_system = 0; -#endif /* PROTO_R_RETURN */ -#endif /* !defined(_REENTRANT) || !defined(DO_PTHREADS) */ -/*! \file */ diff --git a/src/kits/network/libbind/irs/getpwent.c b/src/kits/network/libbind/irs/getpwent.c deleted file mode 100644 index c70f99e64c..0000000000 --- a/src/kits/network/libbind/irs/getpwent.c +++ /dev/null @@ -1,201 +0,0 @@ -/* - * 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. - */ - -#if !defined(LINT) && !defined(CODECENTER) -static const char rcsid[] = "$Id: getpwent.c,v 1.3 2005/04/27 04:56:26 sra Exp $"; -#endif - -/* Imports */ - -#include "port_before.h" - -#if !defined(WANT_IRS_PW) || defined(__BIND_NOSTATIC) -static int __bind_irs_pw_unneeded; -#else - -#include - -#include -#include - -#include -#include -#include -#include -#include - -#include - -#include "port_after.h" - -#include "irs_data.h" - -/* Forward */ - -static struct net_data * init(void); - -/* Public */ - -struct passwd * -getpwent(void) { - struct net_data *net_data = init(); - - return (getpwent_p(net_data)); -} - -struct passwd * -getpwnam(const char *name) { - struct net_data *net_data = init(); - - return (getpwnam_p(name, net_data)); -} - -struct passwd * -getpwuid(uid_t uid) { - struct net_data *net_data = init(); - - return (getpwuid_p(uid, net_data)); -} - -int -setpassent(int stayopen) { - struct net_data *net_data = init(); - - return (setpassent_p(stayopen, net_data)); -} - -#ifdef SETPWENT_VOID -void -setpwent() { - struct net_data *net_data = init(); - - setpwent_p(net_data); -} -#else -int -setpwent() { - struct net_data *net_data = init(); - - return (setpwent_p(net_data)); -} -#endif - -void -endpwent() { - struct net_data *net_data = init(); - - endpwent_p(net_data); -} - -/* Shared private. */ - -struct passwd * -getpwent_p(struct net_data *net_data) { - struct irs_pw *pw; - - if (!net_data || !(pw = net_data->pw)) - return (NULL); - net_data->pw_last = (*pw->next)(pw); - return (net_data->pw_last); -} - -struct passwd * -getpwnam_p(const char *name, struct net_data *net_data) { - struct irs_pw *pw; - - if (!net_data || !(pw = net_data->pw)) - return (NULL); - if (net_data->pw_stayopen && net_data->pw_last && - !strcmp(net_data->pw_last->pw_name, name)) - return (net_data->pw_last); - net_data->pw_last = (*pw->byname)(pw, name); - if (!net_data->pw_stayopen) - endpwent(); - return (net_data->pw_last); -} - -struct passwd * -getpwuid_p(uid_t uid, struct net_data *net_data) { - struct irs_pw *pw; - - if (!net_data || !(pw = net_data->pw)) - return (NULL); - if (net_data->pw_stayopen && net_data->pw_last && - net_data->pw_last->pw_uid == uid) - return (net_data->pw_last); - net_data->pw_last = (*pw->byuid)(pw, uid); - if (!net_data->pw_stayopen) - endpwent(); - return (net_data->pw_last); -} - -int -setpassent_p(int stayopen, struct net_data *net_data) { - struct irs_pw *pw; - - if (!net_data || !(pw = net_data->pw)) - return (0); - (*pw->rewind)(pw); - net_data->pw_stayopen = (stayopen != 0); - if (stayopen == 0) - net_data_minimize(net_data); - return (1); -} - -#ifdef SETPWENT_VOID -void -setpwent_p(struct net_data *net_data) { - (void) setpassent_p(0, net_data); -} -#else -int -setpwent_p(struct net_data *net_data) { - return (setpassent_p(0, net_data)); -} -#endif - -void -endpwent_p(struct net_data *net_data) { - struct irs_pw *pw; - - if ((net_data != NULL) && ((pw = net_data->pw) != NULL)) - (*pw->minimize)(pw); -} - -/* Private */ - -static struct net_data * -init() { - struct net_data *net_data; - if (!(net_data = net_data_init(NULL))) - goto error; - if (!net_data->pw) { - net_data->pw = (*net_data->irs->pw_map)(net_data->irs); - - if (!net_data->pw || !net_data->res) { - error: - errno = EIO; - return (NULL); - } - (*net_data->pw->res_set)(net_data->pw, net_data->res, NULL); - } - - return (net_data); -} - -#endif /* WANT_IRS_PW */ -/*! \file */ diff --git a/src/kits/network/libbind/irs/getpwent_r.c b/src/kits/network/libbind/irs/getpwent_r.c deleted file mode 100644 index f754084317..0000000000 --- a/src/kits/network/libbind/irs/getpwent_r.c +++ /dev/null @@ -1,276 +0,0 @@ -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 1998-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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: getpwent_r.c,v 1.8 2005/04/27 04:56:26 sra Exp $"; -#endif /* LIBC_SCCS and not lint */ - -#include -#if !defined(_REENTRANT) || !defined(DO_PTHREADS) || !defined(WANT_IRS_PW) - static int getpwent_r_not_required = 0; -#else -#include -#include -#include -#include -#if (defined(POSIX_GETPWNAM_R) || defined(POSIX_GETPWUID_R)) -#if defined(_POSIX_PTHREAD_SEMANTICS) - /* turn off solaris remapping in */ -#undef _POSIX_PTHREAD_SEMANTICS -#include -#define _POSIX_PTHREAD_SEMANTICS 1 -#else -#define _UNIX95 1 -#include -#endif -#else -#include -#endif -#include - -#ifdef PASS_R_RETURN - -static int -copy_passwd(struct passwd *, struct passwd *, char *buf, int buflen); - -/* POSIX 1003.1c */ -#ifdef POSIX_GETPWNAM_R -int -__posix_getpwnam_r(const char *login, struct passwd *pwptr, - char *buf, size_t buflen, struct passwd **result) { -#else -int -getpwnam_r(const char *login, struct passwd *pwptr, - char *buf, size_t buflen, struct passwd **result) { -#endif - struct passwd *pw = getpwnam(login); - int res; - - if (pw == NULL) { - *result = NULL; - return (0); - } - - res = copy_passwd(pw, pwptr, buf, buflen); - *result = res ? NULL : pwptr; - return (res); -} - -#ifdef POSIX_GETPWNAM_R -struct passwd * -getpwnam_r(const char *login, struct passwd *pwptr, char *buf, int buflen) { - struct passwd *pw = getpwnam(login); - int res; - - if (pw == NULL) - return (NULL); - - res = copy_passwd(pw, pwptr, buf, buflen); - return (res ? NULL : pwptr); -} -#endif - -/* POSIX 1003.1c */ -#ifdef POSIX_GETPWUID_R -int -__posix_getpwuid_r(uid_t uid, struct passwd *pwptr, - char *buf, int buflen, struct passwd **result) { -#else -int -getpwuid_r(uid_t uid, struct passwd *pwptr, - char *buf, size_t buflen, struct passwd **result) { -#endif - struct passwd *pw = getpwuid(uid); - int res; - - if (pw == NULL) { - *result = NULL; - return (0); - } - - res = copy_passwd(pw, pwptr, buf, buflen); - *result = res ? NULL : pwptr; - return (res); -} - -#ifdef POSIX_GETPWUID_R -struct passwd * -getpwuid_r(uid_t uid, struct passwd *pwptr, char *buf, int buflen) { - struct passwd *pw = getpwuid(uid); - int res; - - if (pw == NULL) - return (NULL); - - res = copy_passwd(pw, pwptr, buf, buflen); - return (res ? NULL : pwptr); -} -#endif - -/*% - * These assume a single context is in operation per thread. - * If this is not the case we will need to call irs directly - * rather than through the base functions. - */ - -PASS_R_RETURN -getpwent_r(struct passwd *pwptr, PASS_R_ARGS) { - struct passwd *pw = getpwent(); - int res = 0; - - if (pw == NULL) - return (PASS_R_BAD); - - res = copy_passwd(pw, pwptr, buf, buflen); - return (res ? PASS_R_BAD : PASS_R_OK); -} - -PASS_R_SET_RETURN -#ifdef PASS_R_ENT_ARGS -setpassent_r(int stayopen, PASS_R_ENT_ARGS) -#else -setpassent_r(int stayopen) -#endif -{ - - setpassent(stayopen); -#ifdef PASS_R_SET_RESULT - return (PASS_R_SET_RESULT); -#endif -} - -PASS_R_SET_RETURN -#ifdef PASS_R_ENT_ARGS -setpwent_r(PASS_R_ENT_ARGS) -#else -setpwent_r(void) -#endif -{ - - setpwent(); -#ifdef PASS_R_SET_RESULT - return (PASS_R_SET_RESULT); -#endif -} - -PASS_R_END_RETURN -#ifdef PASS_R_ENT_ARGS -endpwent_r(PASS_R_ENT_ARGS) -#else -endpwent_r(void) -#endif -{ - - endpwent(); - PASS_R_END_RESULT(PASS_R_OK); -} - - -#ifdef HAS_FGETPWENT -PASS_R_RETURN -fgetpwent_r(FILE *f, struct passwd *pwptr, PASS_R_COPY_ARGS) { - struct passwd *pw = fgetpwent(f); - int res = 0; - - if (pw == NULL) - return (PASS_R_BAD); - - res = copy_passwd(pw, pwptr, PASS_R_COPY); - return (res ? PASS_R_BAD : PASS_R_OK ); -} -#endif - -/* Private */ - -static int -copy_passwd(struct passwd *pw, struct passwd *pwptr, char *buf, int buflen) { - char *cp; - int n; - int len; - - /* Find out the amount of space required to store the answer. */ - len = strlen(pw->pw_name) + 1; - len += strlen(pw->pw_passwd) + 1; -#ifdef HAVE_PW_CLASS - len += strlen(pw->pw_class) + 1; -#endif - len += strlen(pw->pw_gecos) + 1; - len += strlen(pw->pw_dir) + 1; - len += strlen(pw->pw_shell) + 1; - - if (len > buflen) { - errno = ERANGE; - return (ERANGE); - } - - /* copy fixed atomic values*/ - pwptr->pw_uid = pw->pw_uid; - pwptr->pw_gid = pw->pw_gid; -#ifdef HAVE_PW_CHANGE - pwptr->pw_change = pw->pw_change; -#endif -#ifdef HAVE_PW_EXPIRE - pwptr->pw_expire = pw->pw_expire; -#endif - - cp = buf; - - /* copy official name */ - n = strlen(pw->pw_name) + 1; - strcpy(cp, pw->pw_name); - pwptr->pw_name = cp; - cp += n; - - /* copy password */ - n = strlen(pw->pw_passwd) + 1; - strcpy(cp, pw->pw_passwd); - pwptr->pw_passwd = cp; - cp += n; - -#ifdef HAVE_PW_CLASS - /* copy class */ - n = strlen(pw->pw_class) + 1; - strcpy(cp, pw->pw_class); - pwptr->pw_class = cp; - cp += n; -#endif - - /* copy gecos */ - n = strlen(pw->pw_gecos) + 1; - strcpy(cp, pw->pw_gecos); - pwptr->pw_gecos = cp; - cp += n; - - /* copy directory */ - n = strlen(pw->pw_dir) + 1; - strcpy(cp, pw->pw_dir); - pwptr->pw_dir = cp; - cp += n; - - /* copy login shell */ - n = strlen(pw->pw_shell) + 1; - strcpy(cp, pw->pw_shell); - pwptr->pw_shell = cp; - cp += n; - - return (0); -} -#else /* PASS_R_RETURN */ - static int getpwent_r_unknown_system = 0; -#endif /* PASS_R_RETURN */ -#endif /* !def(_REENTRANT) || !def(DO_PTHREADS) || !def(WANT_IRS_PW) */ -/*! \file */ diff --git a/src/kits/network/libbind/irs/getservbyname.c b/src/kits/network/libbind/irs/getservbyname.c new file mode 100644 index 0000000000..c9a7df1345 --- /dev/null +++ b/src/kits/network/libbind/irs/getservbyname.c @@ -0,0 +1,59 @@ +/* $NetBSD: getservbyname.c,v 1.14 2008/04/28 20:23:00 martin Exp $ */ + +/*- + * Copyright (c) 2004 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Christos Zoulas. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. + */ +#include +#if defined(LIBC_SCCS) && !defined(lint) +__RCSID("$NetBSD: getservbyname.c,v 1.14 2008/04/28 20:23:00 martin Exp $"); +#endif /* LIBC_SCCS and not lint */ + +#include +#include + +#include "servent.h" + +#ifdef __weak_alias +__weak_alias(getservbyname,_getservbyname) +#endif + +#ifdef _REENTRANT +extern pthread_mutex_t _servent_mutex; +#endif +extern struct servent_data _servent_data; + +struct servent * +getservbyname(const char *name, const char *proto) +{ + struct servent *s; + + pthread_mutex_lock(&_servent_mutex); + s = getservbyname_r(name, proto, &_servent_data.serv, &_servent_data); + pthread_mutex_unlock(&_servent_mutex); + return (s); +} diff --git a/src/kits/network/libbind/irs/getservbyname_r.c b/src/kits/network/libbind/irs/getservbyname_r.c new file mode 100644 index 0000000000..adf3352381 --- /dev/null +++ b/src/kits/network/libbind/irs/getservbyname_r.c @@ -0,0 +1,150 @@ +/* $NetBSD: getservbyname_r.c,v 1.9 2012/03/13 21:13:41 christos Exp $ */ + +/* + * Copyright (c) 1983, 1993 + * 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: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * 3. Neither the name of the University 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 REGENTS 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. + */ + +#include +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)getservbyname.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: getservbyname_r.c,v 1.9 2012/03/13 21:13:41 christos Exp $"); +#endif +#endif /* LIBC_SCCS and not lint */ + +#include +#include +#include +#include + +#include "servent.h" + +#ifdef __weak_alias +__weak_alias(getservbyname_r,_getservbyname_r) +#endif + +static struct servent * +_servent_getbyname(struct servent_data *sd, struct servent *sp, + const char *name, const char *proto) +{ + + if ((sd->flags & (_SV_CDB | _SV_PLAINFILE)) == 0) + return NULL; + +#if 0 + if (sd->flags & _SV_CDB) { + uint8_t buf[255 * 2 + 2]; + size_t namelen, protolen; + const uint8_t *data, *data_end; + const void *data_ptr; + size_t datalen; + + namelen = strlen(name); + if (namelen == 0 || namelen > 255) + return NULL; + if (proto != NULL) { + protolen = strlen(proto); + if (protolen == 0 || protolen > 255) + return NULL; + } else + protolen = 0; + if (namelen + protolen > 255) + return NULL; + + buf[0] = (uint8_t)namelen; + buf[1] = (uint8_t)protolen; + memcpy(buf + 2, name, namelen); + memcpy(buf + 2 + namelen, proto, protolen); + + if (cdbr_find(sd->cdb, buf, 2 + namelen + protolen, + &data_ptr, &datalen)) + return NULL; + + if (datalen < namelen + protolen + 6) + return NULL; + + data = data_ptr; + data_end = data + datalen; + if (protolen) { + if (data[2] != protolen) + return NULL; + if (memcmp(data + 3, proto, protolen + 1)) + return NULL; + } + data += 3 + data[2] + 1; + if (data > data_end) + return NULL; + while (data != data_end) { + if (*data == '\0') + return NULL; + if (data + data[0] + 2 > data_end) + return NULL; + if (data[0] == namelen && + memcmp(data + 1, name, namelen + 1) == 0) + return _servent_parsedb(sd, sp, data_ptr, + datalen); + data += data[0] + 2; + } + return NULL; + } else +#endif + { + while (_servent_getline(sd) != -1) { + char **cp; + if (_servent_parseline(sd, sp) == NULL) + continue; + + if (strcmp(name, sp->s_name) == 0) + goto gotname; + + for (cp = sp->s_aliases; *cp; cp++) + if (strcmp(name, *cp) == 0) + goto gotname; + continue; +gotname: + if (proto == NULL || strcmp(sp->s_proto, proto) == 0) + return sp; + } + return NULL; + } +} + +struct servent * +getservbyname_r(const char *name, const char *proto, struct servent *sp, + struct servent_data *sd) +{ + assert(name != NULL); + /* proto may be NULL */ + + setservent_r(sd->flags & _SV_STAYOPEN, sd); + sp = _servent_getbyname(sd, sp, name, proto); + if (!(sd->flags & _SV_STAYOPEN)) + _servent_close(sd); + return sp; +} diff --git a/src/kits/network/libbind/irs/getservbyport.c b/src/kits/network/libbind/irs/getservbyport.c new file mode 100644 index 0000000000..1d24054fd1 --- /dev/null +++ b/src/kits/network/libbind/irs/getservbyport.c @@ -0,0 +1,60 @@ +/* $NetBSD: getservbyport.c,v 1.12 2008/04/28 20:23:00 martin Exp $ */ + +/*- + * Copyright (c) 2004 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Christos Zoulas. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. + */ + +#include +#if defined(LIBC_SCCS) && !defined(lint) +__RCSID("$NetBSD: getservbyport.c,v 1.12 2008/04/28 20:23:00 martin Exp $"); +#endif /* LIBC_SCCS and not lint */ + +#include +#include + +#include "servent.h" + +#ifdef __weak_alias +__weak_alias(getservbyport,_getservbyport) +#endif + +#ifdef _REENTRANT +extern pthread_mutex_t _servent_mutex; +#endif +extern struct servent_data _servent_data; + +struct servent * +getservbyport(int port, const char *proto) +{ + struct servent *s; + + pthread_mutex_lock(&_servent_mutex); + s = getservbyport_r(port, proto, &_servent_data.serv, &_servent_data); + pthread_mutex_unlock(&_servent_mutex); + return (s); +} diff --git a/src/kits/network/libbind/irs/getservbyport_r.c b/src/kits/network/libbind/irs/getservbyport_r.c new file mode 100644 index 0000000000..900519ae15 --- /dev/null +++ b/src/kits/network/libbind/irs/getservbyport_r.c @@ -0,0 +1,124 @@ +/* $NetBSD: getservbyport_r.c,v 1.9 2012/03/13 21:13:41 christos Exp $ */ + +/* + * Copyright (c) 1983, 1993 + * 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: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * 3. Neither the name of the University 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 REGENTS 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. + */ + +#include +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)getservbyport.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: getservbyport_r.c,v 1.9 2012/03/13 21:13:41 christos Exp $"); +#endif +#endif /* LIBC_SCCS and not lint */ + +#include +#include +#include + +#include "servent.h" + +#ifdef __weak_alias +__weak_alias(getservbyport_r,_getservbyport_r) +#endif + +static struct servent * +_servent_getbyport(struct servent_data *sd, struct servent *sp, int port, + const char *proto) +{ + + if ((sd->flags & (_SV_CDB | _SV_PLAINFILE)) == 0) + return NULL; + +#if 0 + if (sd->flags & _SV_CDB) { + uint8_t buf[255 + 4]; + size_t protolen; + const uint8_t *data; + const void *data_ptr; + size_t datalen; + + port = ntohs(port); + + if (proto != NULL) { + protolen = strlen(proto); + if (protolen == 0 || protolen > 255) + return NULL; + } else + protolen = 0; + if (port < 0 || port > 65536) + return NULL; + + buf[0] = 0; + buf[1] = (uint8_t)protolen; + be16enc(buf + 2, port); + memcpy(buf + 4, proto, protolen); + + if (cdbr_find(sd->cdb, buf, 4 + protolen, + &data_ptr, &datalen)) + return NULL; + + if (datalen < protolen + 4) + return NULL; + + data = data_ptr; + if (be16dec(data) != port) + return NULL; + if (protolen) { + if (data[2] != protolen) + return NULL; + if (memcmp(data + 3, proto, protolen + 1)) + return NULL; + } + return _servent_parsedb(sd, sp, data, datalen); + } else +#endif + { + while (_servent_getline(sd) != -1) { + if (_servent_parseline(sd, sp) == NULL) + continue; + if (sp->s_port != port) + continue; + if (proto == NULL || strcmp(sp->s_proto, proto) == 0) + return sp; + } + return NULL; + } +} + +struct servent * +getservbyport_r(int port, const char *proto, struct servent *sp, + struct servent_data *sd) +{ + setservent_r(sd->flags & _SV_STAYOPEN, sd); + sp = _servent_getbyport(sd, sp, port, proto); + if (!(sd->flags & _SV_STAYOPEN)) + _servent_close(sd); + return sp; +} diff --git a/src/kits/network/libbind/irs/getservent.c b/src/kits/network/libbind/irs/getservent.c index 8de0db3058..fa52d89a9f 100644 --- a/src/kits/network/libbind/irs/getservent.c +++ b/src/kits/network/libbind/irs/getservent.c @@ -1,179 +1,78 @@ -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 1996,1999 by Internet Software Consortium. +/* $NetBSD: getservent.c,v 1.12 2008/04/28 20:23:00 martin Exp $ */ + +/*- + * Copyright (c) 2004 The NetBSD Foundation, Inc. + * All rights reserved. * - * 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. + * This code is derived from software contributed to The NetBSD Foundation + * by Christos Zoulas. * - * 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. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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) && !defined(CODECENTER) -static const char rcsid[] = "$Id: getservent.c,v 1.4 2005/04/27 04:56:26 sra Exp $"; +#include +#if defined(LIBC_SCCS) && !defined(lint) +__RCSID("$NetBSD: getservent.c,v 1.12 2008/04/28 20:23:00 martin Exp $"); +#endif /* LIBC_SCCS and not lint */ + +#include +#include + +#include "servent.h" + +#ifdef __weak_alias +__weak_alias(endservent,_endservent) +__weak_alias(getservent,_getservent) +__weak_alias(setservent,_setservent) #endif -/* Imports */ +#ifdef _REENTRANT +pthread_mutex_t _servent_mutex = PTHREAD_MUTEX_INITIALIZER; +#endif +struct servent_data _servent_data; -#include "port_before.h" - -#if !defined(__BIND_NOSTATIC) - -#include - -#include -#include - -#include -#include -#include -#include - -#include - -#include "port_after.h" - -#include "irs_data.h" - -/* Forward */ - -static struct net_data *init(void); - -/* Public */ - -struct servent * -getservent(void) { - struct net_data *net_data = init(); - - return (getservent_p(net_data)); -} - -struct servent * -getservbyname(const char *name, const char *proto) { - struct net_data *net_data = init(); - - return (getservbyname_p(name, proto, net_data)); -} - -struct servent * -getservbyport(int port, const char *proto) { - struct net_data *net_data = init(); - - return (getservbyport_p(port, proto, net_data)); +void +setservent(int f) +{ + pthread_mutex_lock(&_servent_mutex); + setservent_r(f, &_servent_data); + pthread_mutex_unlock(&_servent_mutex); } void -setservent(int stayopen) { - struct net_data *net_data = init(); - - setservent_p(stayopen, net_data); -} - -void -endservent() { - struct net_data *net_data = init(); - - endservent_p(net_data); -} - -/* Shared private. */ - -struct servent * -getservent_p(struct net_data *net_data) { - struct irs_sv *sv; - - if (!net_data || !(sv = net_data->sv)) - return (NULL); - net_data->sv_last = (*sv->next)(sv); - return (net_data->sv_last); +endservent(void) +{ + pthread_mutex_lock(&_servent_mutex); + endservent_r(&_servent_data); + pthread_mutex_unlock(&_servent_mutex); } struct servent * -getservbyname_p(const char *name, const char *proto, - struct net_data *net_data) { - struct irs_sv *sv; - char **sap; +getservent(void) +{ + struct servent *s; - if (!net_data || !(sv = net_data->sv)) - return (NULL); - if (net_data->sv_stayopen && net_data->sv_last) - if (!proto || !strcmp(net_data->sv_last->s_proto, proto)) { - if (!strcmp(net_data->sv_last->s_name, name)) - return (net_data->sv_last); - for (sap = net_data->sv_last->s_aliases; - sap && *sap; sap++) - if (!strcmp(name, *sap)) - return (net_data->sv_last); - } - net_data->sv_last = (*sv->byname)(sv, name, proto); - if (!net_data->sv_stayopen) - endservent(); - return (net_data->sv_last); + pthread_mutex_lock(&_servent_mutex); + s = getservent_r(&_servent_data.serv, &_servent_data); + pthread_mutex_unlock(&_servent_mutex); + return (s); } - -struct servent * -getservbyport_p(int port, const char *proto, struct net_data *net_data) { - struct irs_sv *sv; - - if (!net_data || !(sv = net_data->sv)) - return (NULL); - if (net_data->sv_stayopen && net_data->sv_last) - if (port == net_data->sv_last->s_port && - ( !proto || - !strcmp(net_data->sv_last->s_proto, proto))) - return (net_data->sv_last); - net_data->sv_last = (*sv->byport)(sv, port, proto); - return (net_data->sv_last); -} - -void -setservent_p(int stayopen, struct net_data *net_data) { - struct irs_sv *sv; - - if (!net_data || !(sv = net_data->sv)) - return; - (*sv->rewind)(sv); - net_data->sv_stayopen = (stayopen != 0); - if (stayopen == 0) - net_data_minimize(net_data); -} - -void -endservent_p(struct net_data *net_data) { - struct irs_sv *sv; - - if ((net_data != NULL) && ((sv = net_data->sv) != NULL)) - (*sv->minimize)(sv); -} - -/* Private */ - -static struct net_data * -init() { - struct net_data *net_data; - - if (!(net_data = net_data_init(NULL))) - goto error; - if (!net_data->sv) { - net_data->sv = (*net_data->irs->sv_map)(net_data->irs); - - if (!net_data->sv || !net_data->res) { - error: - errno = EIO; - return (NULL); - } - (*net_data->sv->res_set)(net_data->sv, net_data->res, NULL); - } - - return (net_data); -} - -#endif /*__BIND_NOSTATIC*/ - -/*! \file */ diff --git a/src/kits/network/libbind/irs/getservent_r.c b/src/kits/network/libbind/irs/getservent_r.c index 42d1e46163..0ee4b2e8f7 100644 --- a/src/kits/network/libbind/irs/getservent_r.c +++ b/src/kits/network/libbind/irs/getservent_r.c @@ -1,242 +1,336 @@ +/* $NetBSD: getservent_r.c,v 1.11 2011/10/15 23:00:02 christos Exp $ */ + /* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 1998-1999 by Internet Software Consortium. + * Copyright (c) 1983, 1993 + * The Regents of the University of California. All rights reserved. * - * 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. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. * - * 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. + * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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. */ +#include #if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: getservent_r.c,v 1.6 2006/08/01 01:14:16 marka Exp $"; +#if 0 +static char sccsid[] = "@(#)getservent.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: getservent_r.c,v 1.11 2011/10/15 23:00:02 christos Exp $"); +#endif #endif /* LIBC_SCCS and not lint */ -#include -#if !defined(_REENTRANT) || !defined(DO_PTHREADS) - static int getservent_r_not_required = 0; -#else #include -#include -#include -#include -#include +#include #include -#include -#include +#include +#include +#include -#ifdef SERV_R_RETURN +#include -static SERV_R_RETURN -copy_servent(struct servent *, struct servent *, SERV_R_COPY_ARGS); +#include +#include "servent.h" -SERV_R_RETURN -getservbyname_r(const char *name, const char *proto, - struct servent *sptr, SERV_R_ARGS) { - struct servent *se = getservbyname(name, proto); -#ifdef SERV_R_SETANSWER - int n = 0; - - if (se == NULL || (n = copy_servent(se, sptr, SERV_R_COPY)) != 0) - *answerp = NULL; - else - *answerp = sptr; - - return (n); -#else - if (se == NULL) - return (SERV_R_BAD); - - return (copy_servent(se, sptr, SERV_R_COPY)); +#ifdef __weak_alias +__weak_alias(endservent_r,_endservent_r) +__weak_alias(getservent_r,_getservent_r) +__weak_alias(setservent_r,_setservent_r) #endif -} -SERV_R_RETURN -getservbyport_r(int port, const char *proto, - struct servent *sptr, SERV_R_ARGS) { - struct servent *se = getservbyport(port, proto); -#ifdef SERV_R_SETANSWER - int n = 0; - - if (se == NULL || (n = copy_servent(se, sptr, SERV_R_COPY)) != 0) - *answerp = NULL; - else - *answerp = sptr; - - return (n); -#else - if (se == NULL) - return (SERV_R_BAD); - - return (copy_servent(se, sptr, SERV_R_COPY)); -#endif -} - -/*% - * These assume a single context is in operation per thread. - * If this is not the case we will need to call irs directly - * rather than through the base functions. - */ - -SERV_R_RETURN -getservent_r(struct servent *sptr, SERV_R_ARGS) { - struct servent *se = getservent(); -#ifdef SERV_R_SETANSWER - int n = 0; - - if (se == NULL || (n = copy_servent(se, sptr, SERV_R_COPY)) != 0) - *answerp = NULL; - else - *answerp = sptr; - - return (n); -#else - if (se == NULL) - return (SERV_R_BAD); - - return (copy_servent(se, sptr, SERV_R_COPY)); -#endif -} - -SERV_R_SET_RETURN -#ifdef SERV_R_ENT_ARGS -setservent_r(int stay_open, SERV_R_ENT_ARGS) -#else -setservent_r(int stay_open) -#endif +int +_servent_open(struct servent_data *sd) { -#ifdef SERV_R_ENT_UNUSED - SERV_R_ENT_UNUSED; -#endif - setservent(stay_open); -#ifdef SERV_R_SET_RESULT - return (SERV_R_SET_RESULT); + char buffer[256]; + + if (sd->flags & (_SV_CDB | _SV_PLAINFILE)) { + sd->flags |= _SV_FIRST; + return 0; + } + + free(sd->line); + sd->line = NULL; + free(sd->cdb_buf); + sd->cdb_buf = NULL; + sd->cdb_buf_len = 0; + free(sd->aliases); + sd->aliases = NULL; + sd->maxaliases = 0; + sd->flags |= _SV_FIRST; + +#if 0 + sd->cdb = cdbr_open(_PATH_SERVICES_CDB, CDBR_DEFAULT); + if (sd->cdb != NULL) { + sd->flags |= _SV_CDB; + return 0; + } #endif + + find_directory(B_SYSTEM_SETTINGS_DIRECTORY, 0, false, buffer, sizeof(buffer)); + strlcat(buffer, "/network/ports", sizeof(buffer)); + + sd->plainfile = fopen(buffer, "re"); + if (sd->plainfile != NULL) { + sd->flags |= _SV_PLAINFILE; + return 0; + } + return -1; } -SERV_R_END_RETURN -#ifdef SERV_R_ENT_ARGS -endservent_r(SERV_R_ENT_ARGS) -#else -endservent_r() -#endif +void +_servent_close(struct servent_data *sd) { -#ifdef SERV_R_ENT_UNUSED - SERV_R_ENT_UNUSED; +#if 0 + if (sd->flags & _SV_CDB) { + cdbr_close(sd->cdb); + sd->cdb = NULL; + sd->flags &= ~_SV_CDB; + } #endif - endservent(); - SERV_R_END_RESULT(SERV_R_OK); + + if (sd->flags & _SV_PLAINFILE) { + (void)fclose(sd->plainfile); + sd->plainfile = NULL; + sd->flags &= ~_SV_PLAINFILE; + } + sd->flags &= ~_SV_STAYOPEN; } -/* Private */ -#ifndef SERVENT_DATA -static SERV_R_RETURN -copy_servent(struct servent *se, struct servent *sptr, SERV_R_COPY_ARGS) { - char *cp; - int i, n; - int numptr, len; +int +_servent_getline(struct servent_data *sd) +{ +#if 0 + if (sd->flags & _SV_CDB) + return -1; +#endif - /* Find out the amount of space required to store the answer. */ - numptr = 1; /*%< NULL ptr */ - len = (char *)ALIGN(buf) - buf; - for (i = 0; se->s_aliases[i]; i++, numptr++) { - len += strlen(se->s_aliases[i]) + 1; + if ((sd->flags & _SV_PLAINFILE) == 0) + return -1; + + free(sd->line); + sd->line = NULL; + + if (sd->flags & _SV_FIRST) { + (void)rewind((FILE *)sd->plainfile); + sd->flags &= ~_SV_FIRST; } - len += strlen(se->s_name) + 1; - len += strlen(se->s_proto) + 1; - len += numptr * sizeof(char*); - - if (len > (int)buflen) { - errno = ERANGE; - return (SERV_R_BAD); - } - - /* copy port value */ - sptr->s_port = se->s_port; - - cp = (char *)ALIGN(buf) + numptr * sizeof(char *); - - /* copy official name */ - n = strlen(se->s_name) + 1; - strcpy(cp, se->s_name); - sptr->s_name = cp; - cp += n; - - /* copy aliases */ - sptr->s_aliases = (char **)ALIGN(buf); - for (i = 0 ; se->s_aliases[i]; i++) { - n = strlen(se->s_aliases[i]) + 1; - strcpy(cp, se->s_aliases[i]); - sptr->s_aliases[i] = cp; - cp += n; - } - sptr->s_aliases[i] = NULL; - - /* copy proto */ - n = strlen(se->s_proto) + 1; - strcpy(cp, se->s_proto); - sptr->s_proto = cp; - cp += n; - - return (SERV_R_OK); + sd->line = fparseln(sd->plainfile, NULL, NULL, NULL, + FPARSELN_UNESCALL); + return sd->line == NULL ? -1 : 0; } -#else /* !SERVENT_DATA */ -static int -copy_servent(struct servent *se, struct servent *sptr, SERV_R_COPY_ARGS) { - char *cp, *eob; - int i, n; - /* copy port value */ - sptr->s_port = se->s_port; +struct servent * +_servent_parseline(struct servent_data *sd, struct servent *sp) +{ + size_t i = 0; + int oerrno; + char *p, *cp, **q; - /* copy official name */ - cp = sdptr->line; - eob = sdptr->line + sizeof(sdptr->line); - if ((n = strlen(se->s_name) + 1) < (eob - cp)) { - strcpy(cp, se->s_name); - sptr->s_name = cp; - cp += n; - } else { - return (-1); - } + if (sd->line == NULL) + return NULL; - /* copy aliases */ - i = 0; - sptr->s_aliases = sdptr->serv_aliases; - while (se->s_aliases[i] && i < (_MAXALIASES-1)) { - if ((n = strlen(se->s_aliases[i]) + 1) < (eob - cp)) { - strcpy(cp, se->s_aliases[i]); - sptr->s_aliases[i] = cp; - cp += n; - } else { - break; + sp->s_name = p = sd->line; + p = strpbrk(p, " \t"); + if (p == NULL) + return NULL; + *p++ = '\0'; + while (*p == ' ' || *p == '\t') + p++; + cp = strpbrk(p, ",/"); + if (cp == NULL) + return NULL; + *cp++ = '\0'; + sp->s_port = htons((u_short)atoi(p)); + sp->s_proto = cp; + if (sd->aliases == NULL) { + sd->maxaliases = 10; + sd->aliases = calloc(sd->maxaliases, sizeof(*sd->aliases)); + if (sd->aliases == NULL) { + oerrno = errno; + endservent_r(sd); + errno = oerrno; + return NULL; } - i++; } - sptr->s_aliases[i] = NULL; - - /* copy proto */ - if ((n = strlen(se->s_proto) + 1) < (eob - cp)) { - strcpy(cp, se->s_proto); - sptr->s_proto = cp; - cp += n; - } else { - return (-1); + sp->s_aliases = sd->aliases; + cp = strpbrk(cp, " \t"); + if (cp != NULL) + *cp++ = '\0'; + while (cp && *cp) { + if (*cp == ' ' || *cp == '\t') { + cp++; + continue; + } + if (i == sd->maxaliases - 2) { + sd->maxaliases *= 2; + q = realloc(sd->aliases, sd->maxaliases * sizeof(*q)); + if (q == NULL) { + oerrno = errno; + endservent_r(sd); + errno = oerrno; + return NULL; + } + sp->s_aliases = sd->aliases = q; + } + sp->s_aliases[i++] = cp; + cp = strpbrk(cp, " \t"); + if (cp != NULL) + *cp++ = '\0'; } - - return (SERV_R_OK); + sp->s_aliases[i] = NULL; + return sp; } -#endif /* !SERVENT_DATA */ -#else /*SERV_R_RETURN */ - static int getservent_r_unknown_system = 0; -#endif /*SERV_R_RETURN */ -#endif /* !defined(_REENTRANT) || !defined(DO_PTHREADS) */ -/*! \file */ + +void +setservent_r(int f, struct servent_data *sd) +{ + (void)_servent_open(sd); + sd->flags |= f ? _SV_STAYOPEN : 0; +} + +void +endservent_r(struct servent_data *sd) +{ + _servent_close(sd); + free(sd->aliases); + sd->aliases = NULL; + sd->maxaliases = 0; + free(sd->line); + sd->line = NULL; + free(sd->cdb_buf); + sd->cdb_buf = NULL; + sd->cdb_buf_len = 0; +} + +struct servent * +getservent_r(struct servent *sp, struct servent_data *sd) +{ + + if ((sd->flags & (_SV_CDB | _SV_PLAINFILE)) == 0 && + _servent_open(sd) == -1) + return NULL; + +#if 0 + if (sd->flags & _SV_CDB) { + const void *data; + size_t len; + + if (sd->flags & _SV_FIRST) { + sd->cdb_index = 0; + sd->flags &= ~_SV_FIRST; + } + + if (cdbr_get(sd->cdb, sd->cdb_index, &data, &len)) + return NULL; + ++sd->cdb_index; + return _servent_parsedb(sd, sp, data, len); + } +#endif + if (sd->flags & _SV_PLAINFILE) { + for (;;) { + if (_servent_getline(sd) == -1) + return NULL; + if (_servent_parseline(sd, sp) == NULL) + continue; + return sp; + } + } + return NULL; +} + +struct servent * +_servent_parsedb(struct servent_data *sd, struct servent *sp, + const uint8_t *data, size_t len) +{ + char **q; + size_t i; + int oerrno; + + if ((sd->flags & _SV_STAYOPEN) == 0) { + if (len > sd->cdb_buf_len) { + void *tmp = realloc(sd->cdb_buf, len); + if (tmp == NULL) + goto fail; + sd->cdb_buf = tmp; + sd->cdb_buf_len = len; + } + memcpy(sd->cdb_buf, data, len); + data = sd->cdb_buf; + } + + if (len < 2) + goto fail; + sp->s_port = *(uint16_t*)data; + data += 2; + len -= 2; + + if (len == 0 || len < (size_t)data[0] + 2) + goto fail; + sp->s_proto = __UNCONST(data + 1); + + if (sp->s_proto[data[0]] != '\0') + goto fail; + + len -= 2 + data[0]; + data += 2 + data[0]; + + if (len == 0) + goto fail; + if (len < (size_t)data[0] + 2) + goto fail; + + sp->s_name = __UNCONST(data + 1); + len -= 2 + data[0]; + data += 2 + data[0]; + + if (sd->aliases == NULL) { + sd->maxaliases = 10; + sd->aliases = malloc(sd->maxaliases * sizeof(char *)); + if (sd->aliases == NULL) + goto fail; + } + sp->s_aliases = sd->aliases; + i = 0; + while (len) { + if (len < (size_t)data[0] + 2) + goto fail; + if (i == sd->maxaliases - 2) { + sd->maxaliases *= 2; + q = realloc(sd->aliases, sd->maxaliases * sizeof(*q)); + if (q == NULL) + goto fail; + sp->s_aliases = sd->aliases = q; + } + sp->s_aliases[i++] = __UNCONST(data + 1); + len -= 2 + data[0]; + data += 2 + data[0]; + } + sp->s_aliases[i] = NULL; + return sp; + +fail: + oerrno = errno; + endservent_r(sd); + errno = oerrno; + return NULL; +} + diff --git a/src/kits/network/libbind/irs/hesiod.c b/src/kits/network/libbind/irs/hesiod.c index 80d669dbe0..d7bca00b5a 100644 --- a/src/kits/network/libbind/irs/hesiod.c +++ b/src/kits/network/libbind/irs/hesiod.c @@ -1,505 +1,636 @@ -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: hesiod.c,v 1.7 2005/07/28 06:51:48 marka Exp $"; -#endif +/* $NetBSD: hesiod.c,v 1.27 2012/03/20 17:44:18 matt Exp $ */ -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 1996,1999 by Internet Software Consortium. +/* Copyright (c) 1996 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. + * THE SOFTWARE IS PROVIDED "AS IS" AND INTERNET SOFTWARE CONSORTIUM DISCLAIMS + * ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES + * OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL INTERNET SOFTWARE + * CONSORTIUM 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. */ - -/*! \file - * \brief - * hesiod.c --- the core portion of the hesiod resolver. +/* Copyright 1996 by the Massachusetts Institute of Technology. * - * This file is derived from the hesiod library from Project Athena; - * It has been extensively rewritten by Theodore Ts'o to have a more - * thread-safe interface. - * \author - * This file is primarily maintained by <tytso@mit.edu> and <ghudson@mit.edu>. + * 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. */ -/* Imports */ +/* This file is part of the hesiod library. It implements the core + * portion of the hesiod resolver. + * + * This file is loosely based on an interim version of hesiod.c from + * the BIND IRS library, which was in turn based on an earlier version + * of this file. Extensive changes have been made on each step of the + * path. + * + * This implementation is thread-safe because it uses res_nsend(). + */ -#include "port_before.h" +#include + +#if defined(LIBC_SCCS) && !defined(lint) +__IDSTRING(rcsid_hesiod_c, + "#Id: hesiod.c,v 1.18.2.1 1997/01/03 20:48:20 ghudson Exp #"); +__IDSTRING(rcsid_hesiod_p_h, + "#Id: hesiod_p.h,v 1.1 1996/12/08 21:39:37 ghudson Exp #"); +__IDSTRING(rcsid_hescompat_c, + "#Id: hescompat.c,v 1.1.2.1 1996/12/16 08:37:45 ghudson Exp #"); +__RCSID("$NetBSD: hesiod.c,v 1.27 2012/03/20 17:44:18 matt Exp $"); +#endif /* LIBC_SCCS and not lint */ #include +#include #include #include +#include +#include #include -#include +#include #include #include #include #include +#include -#include "port_after.h" +#include -#include "pathnames.h" -#include "hesiod.h" -#include "hesiod_p.h" +#ifdef __weak_alias +__weak_alias(hesiod_init,_hesiod_init) +__weak_alias(hesiod_end,_hesiod_end) +__weak_alias(hesiod_to_bind,_hesiod_to_bind) +__weak_alias(hesiod_resolve,_hesiod_resolve) +__weak_alias(hesiod_free_list,_hesiod_free_list) +__weak_alias(hes_init,_hes_init) +__weak_alias(hes_to_bind,_hes_to_bind) +__weak_alias(hes_resolve,_hes_resolve) +__weak_alias(hes_error,_hes_error) +__weak_alias(hes_free,_hes_free) +#endif -/* Forward */ +struct hesiod_p { + char *lhs; /* normally ".ns" */ + char *rhs; /* AKA the default hesiod domain */ + int classes[2]; /* The class search order. */ +}; -int hesiod_init(void **context); -void hesiod_end(void *context); -char * hesiod_to_bind(void *context, const char *name, - const char *type); -char ** hesiod_resolve(void *context, const char *name, - const char *type); -void hesiod_free_list(void *context, char **list); +#define MAX_HESRESP 1024 -static int parse_config_file(struct hesiod_p *ctx, const char *filename); -static char ** get_txt_records(struct hesiod_p *ctx, int class, - const char *name); -static int init(struct hesiod_p *ctx); +static int read_config_file(struct hesiod_p *, const char *); +static char **get_txt_records(int, const char *); +static int init_context(void); +static void translate_errors(void); -/* Public */ -/*% - * This function is called to initialize a hesiod_p. +/* + * hesiod_init -- + * initialize a hesiod_p. */ -int -hesiod_init(void **context) { - struct hesiod_p *ctx; - char *cp; +int +hesiod_init(void **context) +{ + struct hesiod_p *ctx; + const char *p, *configname; + int serrno; - ctx = malloc(sizeof(struct hesiod_p)); - if (ctx == 0) { - errno = ENOMEM; - return (-1); - } + assert(context != NULL); - memset(ctx, 0, sizeof (*ctx)); - - if (parse_config_file(ctx, _PATH_HESIOD_CONF) < 0) { -#ifdef DEF_RHS + ctx = calloc(1, sizeof(struct hesiod_p)); + if (ctx) { + *context = ctx; /* - * Use compiled in defaults. + * don't permit overrides from environment + * for set.id programs */ - ctx->LHS = malloc(strlen(DEF_LHS) + 1); - ctx->RHS = malloc(strlen(DEF_RHS) + 1); - if (ctx->LHS == NULL || ctx->RHS == NULL) { - errno = ENOMEM; - goto cleanup; - } - strcpy(ctx->LHS, DEF_LHS); /* (checked) */ - strcpy(ctx->RHS, DEF_RHS); /* (checked) */ -#else - goto cleanup; -#endif - } - /* - * The default RHS can be overridden by an environment - * variable. - */ - if ((cp = getenv("HES_DOMAIN")) != NULL) { - size_t RHSlen = strlen(cp) + 2; - if (ctx->RHS) - free(ctx->RHS); - ctx->RHS = malloc(RHSlen); - if (!ctx->RHS) { - errno = ENOMEM; - goto cleanup; - } - if (cp[0] == '.') { - strcpy(ctx->RHS, cp); /* (checked) */ - } else { - strcpy(ctx->RHS, "."); /* (checked) */ - strcat(ctx->RHS, cp); /* (checked) */ - } - } - - /* - * If there is no default hesiod realm set, we return an - * error. - */ - if (!ctx->RHS) { - errno = ENOEXEC; - goto cleanup; - } - #if 0 - if (res_ninit(ctx->res) < 0) - goto cleanup; + if (issetugid()) + configname = NULL; + else #endif + configname = getenv("HESIOD_CONFIG"); + if (!configname) + configname = _PATH_HESIOD_CONF; + if (read_config_file(ctx, configname) >= 0) { + /* + * The default rhs can be overridden by an + * environment variable, unless set.id. + */ +#if 0 + if (issetugid()) + p = NULL; + else +#endif + p = getenv("HES_DOMAIN"); + if (p) { + if (ctx->rhs) + free(ctx->rhs); + ctx->rhs = malloc(strlen(p) + 2); + if (ctx->rhs) { + *ctx->rhs = '.'; + strcpy(ctx->rhs + 1, + (*p == '.') ? p + 1 : p); + return 0; + } else + errno = ENOMEM; + } else + return 0; + } + } else + errno = ENOMEM; - *context = ctx; - return (0); - - cleanup: - hesiod_end(ctx); - return (-1); + serrno = errno; + if (ctx) { + if (ctx->lhs) + free(ctx->lhs); + if (ctx->rhs) + free(ctx->rhs); + free(ctx); + } + errno = serrno; + return -1; } -/*% - * This function deallocates the hesiod_p +/* + * hesiod_end -- + * Deallocates the hesiod_p. */ -void -hesiod_end(void *context) { +void +hesiod_end(void *context) +{ struct hesiod_p *ctx = (struct hesiod_p *) context; - int save_errno = errno; - if (ctx->res) - res_nclose(ctx->res); - if (ctx->RHS) - free(ctx->RHS); - if (ctx->LHS) - free(ctx->LHS); - if (ctx->res && ctx->free_res) - (*ctx->free_res)(ctx->res); + assert(context != NULL); + + free(ctx->rhs); + if (ctx->lhs) + free(ctx->lhs); free(ctx); - errno = save_errno; } -/*% - * This function takes a hesiod (name, type) and returns a DNS - * name which is to be resolved. +/* + * hesiod_to_bind -- + * takes a hesiod (name, type) and returns a DNS + * name which is to be resolved. */ char * -hesiod_to_bind(void *context, const char *name, const char *type) { +hesiod_to_bind(void *context, const char *name, const char *type) +{ struct hesiod_p *ctx = (struct hesiod_p *) context; - char *bindname; - char **rhs_list = NULL; - const char *RHS, *cp; + char bindname[MAXDNAME], *p, *ret, **rhs_list = NULL; + const char *rhs; + size_t len; - /* Decide what our RHS is, and set cp to the end of the actual name. */ - if ((cp = strchr(name, '@')) != NULL) { - if (strchr(cp + 1, '.')) - RHS = cp + 1; - else if ((rhs_list = hesiod_resolve(context, cp + 1, - "rhs-extension")) != NULL) - RHS = *rhs_list; - else { - errno = ENOENT; - return (NULL); - } - } else { - RHS = ctx->RHS; - cp = name + strlen(name); - } + assert(context != NULL); + assert(name != NULL); + assert(type != NULL); + + if (strlcpy(bindname, name, sizeof(bindname)) >= sizeof(bindname)) { + errno = EMSGSIZE; + return NULL; + } /* - * Allocate the space we need, including up to three periods and - * the terminating NUL. + * Find the right right hand side to use, possibly + * truncating bindname. */ - if ((bindname = malloc((cp - name) + strlen(type) + strlen(RHS) + - (ctx->LHS ? strlen(ctx->LHS) : 0) + 4)) == NULL) { - errno = ENOMEM; + p = strchr(bindname, '@'); + if (p) { + *p++ = 0; + if (strchr(p, '.')) + rhs = name + (p - bindname); + else { + rhs_list = hesiod_resolve(context, p, "rhs-extension"); + if (rhs_list) + rhs = *rhs_list; + else { + errno = ENOENT; + return NULL; + } + } + } else + rhs = ctx->rhs; + + /* See if we have enough room. */ + len = strlen(bindname) + 1 + strlen(type); + if (ctx->lhs) + len += strlen(ctx->lhs) + ((ctx->lhs[0] != '.') ? 1 : 0); + len += strlen(rhs) + ((rhs[0] != '.') ? 1 : 0); + if (len > sizeof(bindname) - 1) { if (rhs_list) hesiod_free_list(context, rhs_list); + errno = EMSGSIZE; return NULL; } - - /* Now put together the DNS name. */ - memcpy(bindname, name, cp - name); - bindname[cp - name] = '\0'; - strcat(bindname, "."); - strcat(bindname, type); - if (ctx->LHS) { - if (ctx->LHS[0] != '.') - strcat(bindname, "."); - strcat(bindname, ctx->LHS); + /* Put together the rest of the domain. */ + strlcat(bindname, ".", sizeof(bindname)); + strlcat(bindname, type, sizeof(bindname)); + /* Only append lhs if it isn't empty. */ + if (ctx->lhs && ctx->lhs[0] != '\0' ) { + if (ctx->lhs[0] != '.') + strlcat(bindname, ".", sizeof(bindname)); + strlcat(bindname, ctx->lhs, sizeof(bindname)); } - if (RHS[0] != '.') - strcat(bindname, "."); - strcat(bindname, RHS); + if (rhs[0] != '.') + strlcat(bindname, ".", sizeof(bindname)); + strlcat(bindname, rhs, sizeof(bindname)); + /* rhs_list is no longer needed, since we're done with rhs. */ if (rhs_list) hesiod_free_list(context, rhs_list); - return (bindname); + /* Make a copy of the result and return it to the caller. */ + ret = strdup(bindname); + if (ret == NULL) + errno = ENOMEM; + return ret; } -/*% - * This is the core function. Given a hesiod (name, type), it - * returns an array of strings returned by the resolver. +/* + * hesiod_resolve -- + * Given a hesiod name and type, return an array of strings returned + * by the resolver. */ char ** -hesiod_resolve(void *context, const char *name, const char *type) { - struct hesiod_p *ctx = (struct hesiod_p *) context; - char *bindname = hesiod_to_bind(context, name, type); - char **retvec; +hesiod_resolve(void *context, const char *name, const char *type) +{ + struct hesiod_p *ctx = (struct hesiod_p *) context; + char *bindname, **retvec; - if (bindname == NULL) - return (NULL); - if (init(ctx) == -1) { - free(bindname); - return (NULL); - } + assert(context != NULL); + assert(name != NULL); + assert(type != NULL); - if ((retvec = get_txt_records(ctx, C_IN, bindname))) { - free(bindname); - return (retvec); - } - - if (errno != ENOENT) - return (NULL); + bindname = hesiod_to_bind(context, name, type); + if (!bindname) + return NULL; + + retvec = get_txt_records(ctx->classes[0], bindname); + if (retvec == NULL && errno == ENOENT && ctx->classes[1]) + retvec = get_txt_records(ctx->classes[1], bindname); - retvec = get_txt_records(ctx, C_HS, bindname); free(bindname); - return (retvec); + return retvec; } -void -hesiod_free_list(void *context, char **list) { - char **p; +/*ARGSUSED*/ +void +hesiod_free_list(void *context, char **list) +{ + char **p; - UNUSED(context); + assert(context != NULL); + if (list == NULL) + return; for (p = list; *p; p++) free(*p); free(list); } -/*% - * This function parses the /etc/hesiod.conf file + +/* read_config_file -- + * Parse the /etc/hesiod.conf file. Returns 0 on success, + * -1 on failure. On failure, it might leave values in ctx->lhs + * or ctx->rhs which need to be freed by the caller. */ -static int -parse_config_file(struct hesiod_p *ctx, const char *filename) { - char *key, *data, *cp, **cpp; - char buf[MAXDNAME+7]; - FILE *fp; +static int +read_config_file(struct hesiod_p *ctx, const char *filename) +{ + char *buf, *key, *data, *p, **which; + int n; + FILE *fp; - /* - * Clear the existing configuration variable, just in case - * they're set. - */ - if (ctx->RHS) - free(ctx->RHS); - if (ctx->LHS) - free(ctx->LHS); - ctx->RHS = ctx->LHS = 0; + assert(ctx != NULL); + assert(filename != NULL); - /* - * Now open and parse the file... - */ - if (!(fp = fopen(filename, "r"))) - return (-1); - - while (fgets(buf, sizeof(buf), fp) != NULL) { - cp = buf; - if (*cp == '#' || *cp == '\n' || *cp == '\r') - continue; - while(*cp == ' ' || *cp == '\t') - cp++; - key = cp; - while(*cp != ' ' && *cp != '\t' && *cp != '=') - cp++; - *cp++ = '\0'; - - while(*cp == ' ' || *cp == '\t' || *cp == '=') - cp++; - data = cp; - while(*cp != ' ' && *cp != '\n' && *cp != '\r') - cp++; - *cp++ = '\0'; + /* Set default query classes. */ + ctx->classes[0] = C_IN; + ctx->classes[1] = C_HS; - if (strcmp(key, "lhs") == 0) - cpp = &ctx->LHS; - else if (strcmp(key, "rhs") == 0) - cpp = &ctx->RHS; - else - continue; - - *cpp = malloc(strlen(data) + 1); - if (!*cpp) { + /* Try to open the configuration file. */ + fp = fopen(filename, "r"); + if (!fp) { + /* Use compiled in default domain names. */ + ctx->lhs = strdup(DEF_LHS); + ctx->rhs = strdup(DEF_RHS); + if (ctx->lhs && ctx->rhs) + return 0; + else { errno = ENOMEM; - goto cleanup; + return -1; + } + } + ctx->lhs = NULL; + ctx->rhs = NULL; + for (; (buf = fparseln(fp, NULL, NULL, NULL, FPARSELN_UNESCALL)) + != NULL; free(buf)) { + p = buf; + while (*p == ' ' || *p == '\t') + p++; + key = p; + while (*p != ' ' && *p != '\t' && *p != '=' && *p) + p++; + + if (*p == '\0') + continue; + + *p++ = 0; + + while (isspace((u_char) *p) || *p == '=') + p++; + + if (*p == '\0') + continue; + + data = p; + while (!isspace((u_char) *p) && *p) + p++; + + *p = 0; + + if (strcasecmp(key, "lhs") == 0 || + strcasecmp(key, "rhs") == 0) { + which = (strcasecmp(key, "lhs") == 0) + ? &ctx->lhs : &ctx->rhs; + *which = strdup(data); + if (!*which) { + errno = ENOMEM; + free(buf); + (void)fclose(fp); + return -1; + } + } else { + if (strcasecmp(key, "classes") == 0) { + n = 0; + while (*data && n < 2) { + p = data; + while (*p && *p != ',') + p++; + if (*p) + *p++ = 0; + if (strcasecmp(data, "IN") == 0) + ctx->classes[n++] = C_IN; + else + if (strcasecmp(data, "HS") == 0) + ctx->classes[n++] = + C_HS; + data = p; + } + while (n < 2) + ctx->classes[n++] = 0; + } } - strcpy(*cpp, data); } fclose(fp); - return (0); - - cleanup: - fclose(fp); - if (ctx->RHS) - free(ctx->RHS); - if (ctx->LHS) - free(ctx->LHS); - ctx->RHS = ctx->LHS = 0; - return (-1); + + if (!ctx->rhs || ctx->classes[0] == 0 || + ctx->classes[0] == ctx->classes[1]) { + errno = ENOEXEC; + return -1; + } + return 0; } -/*% - * Given a DNS class and a DNS name, do a lookup for TXT records, and - * return a list of them. +/* + * get_txt_records -- + * Given a DNS class and a DNS name, do a lookup for TXT records, and + * return a list of them. */ static char ** -get_txt_records(struct hesiod_p *ctx, int class, const char *name) { - struct { - int type; /*%< RR type */ - int class; /*%< RR class */ - int dlen; /*%< len of data section */ - u_char *data; /*%< pointer to data */ - } rr; - HEADER *hp; - u_char qbuf[MAX_HESRESP], abuf[MAX_HESRESP]; - u_char *cp, *erdata, *eom; - char *dst, *edst, **list; - int ancount, qdcount; - int i, j, n, skip; +get_txt_records(int qclass, const char *name) +{ + HEADER *hp; + unsigned char qbuf[PACKETSZ], abuf[MAX_HESRESP], *p, *eom, *eor; + char *dst, **list; + int ancount, qdcount, i, j, n, skip, type, class, len; + res_state res = __res_get_state(); - /* - * Construct the query and send it. - */ - n = res_nmkquery(ctx->res, QUERY, name, class, T_TXT, NULL, 0, - NULL, qbuf, MAX_HESRESP); + if (res == NULL) + return NULL; + + assert(name != NULL); + + /* Construct the query. */ + n = res_nmkquery(res, QUERY, name, qclass, T_TXT, NULL, 0, + NULL, qbuf, PACKETSZ); if (n < 0) { errno = EMSGSIZE; - return (NULL); + __res_put_state(res); + return NULL; } - n = res_nsend(ctx->res, qbuf, n, abuf, MAX_HESRESP); + + /* Send the query. */ + n = res_nsend(res, qbuf, n, abuf, MAX_HESRESP); + __res_put_state(res); if (n < 0) { errno = ECONNREFUSED; - return (NULL); + return NULL; } - if (n < HFIXEDSZ) { - errno = EMSGSIZE; - return (NULL); - } - - /* - * OK, parse the result. - */ - hp = (HEADER *) abuf; + /* Parse the header of the result. */ + hp = (HEADER *) (void *) abuf; ancount = ntohs(hp->ancount); qdcount = ntohs(hp->qdcount); - cp = abuf + sizeof(HEADER); + p = abuf + sizeof(HEADER); eom = abuf + n; - /* Skip query, trying to get to the answer section which follows. */ + /* + * Skip questions, trying to get to the answer section + * which follows. + */ for (i = 0; i < qdcount; i++) { - skip = dn_skipname(cp, eom); - if (skip < 0 || cp + skip + QFIXEDSZ > eom) { + skip = dn_skipname(p, eom); + if (skip < 0 || p + skip + QFIXEDSZ > eom) { errno = EMSGSIZE; - return (NULL); + return NULL; } - cp += skip + QFIXEDSZ; + p += skip + QFIXEDSZ; } + /* Allocate space for the text record answers. */ list = malloc((ancount + 1) * sizeof(char *)); if (!list) { errno = ENOMEM; - return (NULL); + return NULL; } + /* Parse the answers. */ j = 0; for (i = 0; i < ancount; i++) { - skip = dn_skipname(cp, eom); - if (skip < 0) { + /* Parse the header of this answer. */ + skip = dn_skipname(p, eom); + if (skip < 0 || p + skip + 10 > eom) + break; + type = p[skip + 0] << 8 | p[skip + 1]; + class = p[skip + 2] << 8 | p[skip + 3]; + len = p[skip + 8] << 8 | p[skip + 9]; + p += skip + 10; + if (p + len > eom) { errno = EMSGSIZE; - goto cleanup; + break; } - cp += skip; - if (cp + 3 * INT16SZ + INT32SZ > eom) { - errno = EMSGSIZE; - goto cleanup; - } - rr.type = ns_get16(cp); - cp += INT16SZ; - rr.class = ns_get16(cp); - cp += INT16SZ + INT32SZ; /*%< skip the ttl, too */ - rr.dlen = ns_get16(cp); - cp += INT16SZ; - if (cp + rr.dlen > eom) { - errno = EMSGSIZE; - goto cleanup; - } - rr.data = cp; - cp += rr.dlen; - if (rr.class != class || rr.type != T_TXT) + /* Skip entries of the wrong class and type. */ + if (class != qclass || type != T_TXT) { + p += len; continue; - if (!(list[j] = malloc(rr.dlen))) - goto cleanup; + } + /* Allocate space for this answer. */ + list[j] = malloc((size_t)len); + if (!list[j]) { + errno = ENOMEM; + break; + } dst = list[j++]; - edst = dst + rr.dlen; - erdata = rr.data + rr.dlen; - cp = rr.data; - while (cp < erdata) { - n = (unsigned char) *cp++; - if (cp + n > eom || dst + n > edst) { + + /* Copy answer data into the allocated area. */ + eor = p + len; + while (p < eor) { + n = (unsigned char) *p++; + if (p + n > eor) { errno = EMSGSIZE; - goto cleanup; + break; } - memcpy(dst, cp, n); - cp += n; + memcpy(dst, p, (size_t)n); + p += n; dst += n; } - if (cp != erdata) { + if (p < eor) { errno = EMSGSIZE; - goto cleanup; + break; } - *dst = '\0'; + *dst = 0; + } + + /* + * If we didn't terminate the loop normally, something + * went wrong. + */ + if (i < ancount) { + for (i = 0; i < j; i++) + free(list[i]); + free(list); + return NULL; } - list[j] = NULL; if (j == 0) { errno = ENOENT; - goto cleanup; + free(list); + return NULL; } - return (list); - - cleanup: - for (i = 0; i < j; i++) - free(list[i]); - free(list); - return (NULL); + list[j] = NULL; + return list; } -struct __res_state * -__hesiod_res_get(void *context) { - struct hesiod_p *ctx = context; +/* + * COMPATIBILITY FUNCTIONS + */ - if (!ctx->res) { - struct __res_state *res; - res = (struct __res_state *)malloc(sizeof *res); - if (res == NULL) { - errno = ENOMEM; - return (NULL); - } - memset(res, 0, sizeof *res); - __hesiod_res_set(ctx, res, free); - } +static int inited = 0; +static void *context; +static int errval = HES_ER_UNINIT; - return (ctx->res); +int +hes_init(void) +{ + init_context(); + return errval; +} + +char * +hes_to_bind(const char *name, const char *type) +{ + static char *bindname; + + assert(name != NULL); + assert(type != NULL); + + if (init_context() < 0) + return NULL; + if (bindname) + free(bindname); + bindname = hesiod_to_bind(context, name, type); + if (!bindname) + translate_errors(); + return bindname; +} + +char ** +hes_resolve(const char *name, const char *type) +{ + static char **list; + + assert(name != NULL); + assert(type != NULL); + + if (init_context() < 0) + return NULL; + + /* + * In the old Hesiod interface, the caller was responsible for + * freeing the returned strings but not the vector of strings itself. + */ + if (list) + free(list); + + list = hesiod_resolve(context, name, type); + if (!list) + translate_errors(); + return list; +} + +int +hes_error(void) +{ + return errval; } void -__hesiod_res_set(void *context, struct __res_state *res, - void (*free_res)(void *)) { - struct hesiod_p *ctx = context; - - if (ctx->res && ctx->free_res) { - res_nclose(ctx->res); - (*ctx->free_res)(ctx->res); - } - - ctx->res = res; - ctx->free_res = free_res; +hes_free(char **hp) +{ + hesiod_free_list(context, hp); } static int -init(struct hesiod_p *ctx) { - - if (!ctx->res && !__hesiod_res_get(ctx)) - return (-1); - - if (((ctx->res->options & RES_INIT) == 0U) && - (res_ninit(ctx->res) == -1)) - return (-1); - - return (0); +init_context(void) +{ + if (!inited) { + inited = 1; + if (hesiod_init(&context) < 0) { + errval = HES_ER_CONFIG; + return -1; + } + errval = HES_ER_OK; + } + return 0; +} + +static void +translate_errors(void) +{ + switch (errno) { + case ENOENT: + errval = HES_ER_NOTFOUND; + break; + case ECONNREFUSED: + case EMSGSIZE: + errval = HES_ER_NET; + break; + default: + /* Not a good match, but the best we can do. */ + errval = HES_ER_CONFIG; + break; + } } diff --git a/src/kits/network/libbind/irs/hesiod_p.h b/src/kits/network/libbind/irs/hesiod_p.h deleted file mode 100644 index 99da15d0cd..0000000000 --- a/src/kits/network/libbind/irs/hesiod_p.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * 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. - */ - -/* - * $Id: hesiod_p.h,v 1.3 2005/04/27 04:56:27 sra Exp $ - */ - -#ifndef _HESIOD_P_H_INCLUDED -#define _HESIOD_P_H_INCLUDED - -/** \file - * \brief - * hesiod_p.h -- private definitions for the hesiod library. - * - * \author - * This file is primarily maintained by tytso@mit.edu and ghudson@mit.edu. - */ - -#define DEF_RHS ".Athena.MIT.EDU" /*%< Defaults if HESIOD_CONF */ -#define DEF_LHS ".ns" /*%< file is not */ - /*%< present. */ -struct hesiod_p { - char * LHS; /*%< normally ".ns" */ - char * RHS; /*%< AKA the default hesiod domain */ - struct __res_state * res; /*%< resolver context */ - void (*free_res)(void *); - void (*res_set)(struct hesiod_p *, struct __res_state *, - void (*)(void *)); - struct __res_state * (*res_get)(struct hesiod_p *); -}; - -#define MAX_HESRESP 1024 - -#endif /*_HESIOD_P_H_INCLUDED*/ diff --git a/src/kits/network/libbind/irs/irp.c b/src/kits/network/libbind/irs/irp.c deleted file mode 100644 index ef10631c22..0000000000 --- a/src/kits/network/libbind/irs/irp.c +++ /dev/null @@ -1,583 +0,0 @@ -/* - * Copyright (C) 2004-2006, 2008 Internet Systems Consortium, Inc. ("ISC") - * Copyright (C) 1996, 1998-2001, 2003 Internet Software Consortium. - * - * Permission to use, copy, modify, and/or 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. - */ - -#if !defined(LINT) && !defined(CODECENTER) -static const char rcsid[] = "$Id: irp.c,v 1.12 2008/11/14 02:36:51 marka Exp $"; -#endif - -/* Imports */ - -#include "port_before.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include -#include - -#include "irs_p.h" -#include "irp_p.h" - -#include "port_after.h" - -/* Forward. */ - -static void irp_close(struct irs_acc *); - -#define LINEINCR 128 - -#if !defined(SUN_LEN) -#define SUN_LEN(su) \ - (sizeof (*(su)) - sizeof ((su)->sun_path) + strlen((su)->sun_path)) -#endif - - -/* Public */ - - -/* send errors to syslog if true. */ -int irp_log_errors = 1; - -/*% - * This module handles the irp module connection to irpd. - * - * The client expects a synchronous interface to functions like - * getpwnam(3), so we can't use the ctl_* i/o library on this end of - * the wire (it's used in the server). - */ - -/*% - * irs_acc *irs_irp_acc(const char *options); - * - * Initialize the irp module. - */ -struct irs_acc * -irs_irp_acc(const char *options) { - struct irs_acc *acc; - struct irp_p *irp; - - UNUSED(options); - - if (!(acc = memget(sizeof *acc))) { - errno = ENOMEM; - return (NULL); - } - memset(acc, 0x5e, sizeof *acc); - if (!(irp = memget(sizeof *irp))) { - errno = ENOMEM; - free(acc); - return (NULL); - } - irp->inlast = 0; - irp->incurr = 0; - irp->fdCxn = -1; - acc->private = irp; - -#ifdef WANT_IRS_GR - acc->gr_map = irs_irp_gr; -#else - acc->gr_map = NULL; -#endif -#ifdef WANT_IRS_PW - acc->pw_map = irs_irp_pw; -#else - acc->pw_map = NULL; -#endif - acc->sv_map = irs_irp_sv; - acc->pr_map = irs_irp_pr; - acc->ho_map = irs_irp_ho; - acc->nw_map = irs_irp_nw; - acc->ng_map = irs_irp_ng; - acc->close = irp_close; - return (acc); -} - - -int -irs_irp_connection_setup(struct irp_p *cxndata, int *warned) { - if (irs_irp_is_connected(cxndata)) { - return (0); - } else if (irs_irp_connect(cxndata) != 0) { - if (warned != NULL && !*warned) { - syslog(LOG_ERR, "irpd connection failed: %m\n"); - (*warned)++; - } - - return (-1); - } - - return (0); -} - -/*% - * int irs_irp_connect(void); - * - * Sets up the connection to the remote irpd server. - * - * Returns: - * - * 0 on success, -1 on failure. - * - */ -int -irs_irp_connect(struct irp_p *pvt) { - int flags; - struct sockaddr *addr; - struct sockaddr_in iaddr; -#ifndef NO_SOCKADDR_UN - struct sockaddr_un uaddr; -#endif - long ipaddr; - const char *irphost; - int code; - char text[256]; - int socklen = 0; - - if (pvt->fdCxn != -1) { - perror("fd != 1"); - return (-1); - } - -#ifndef NO_SOCKADDR_UN - memset(&uaddr, 0, sizeof uaddr); -#endif - memset(&iaddr, 0, sizeof iaddr); - - irphost = getenv(IRPD_HOST_ENV); - if (irphost == NULL) { - irphost = "127.0.0.1"; - } - -#ifndef NO_SOCKADDR_UN - if (irphost[0] == '/') { - addr = (struct sockaddr *)&uaddr; - strncpy(uaddr.sun_path, irphost, sizeof uaddr.sun_path); - uaddr.sun_family = AF_UNIX; - socklen = SUN_LEN(&uaddr); -#ifdef HAVE_SA_LEN - uaddr.sun_len = socklen; -#endif - } else -#endif - { - if (inet_pton(AF_INET, irphost, &ipaddr) != 1) { - errno = EADDRNOTAVAIL; - perror("inet_pton"); - return (-1); - } - - addr = (struct sockaddr *)&iaddr; - socklen = sizeof iaddr; -#ifdef HAVE_SA_LEN - iaddr.sin_len = socklen; -#endif - iaddr.sin_family = AF_INET; - iaddr.sin_port = htons(IRPD_PORT); - iaddr.sin_addr.s_addr = ipaddr; - } - - - pvt->fdCxn = socket(addr->sa_family, SOCK_STREAM, PF_UNSPEC); - if (pvt->fdCxn < 0) { - perror("socket"); - return (-1); - } - - if (connect(pvt->fdCxn, addr, socklen) != 0) { - perror("connect"); - return (-1); - } - - flags = fcntl(pvt->fdCxn, F_GETFL, 0); - if (flags < 0) { - close(pvt->fdCxn); - perror("close"); - return (-1); - } - -#if 0 - flags |= O_NONBLOCK; - if (fcntl(pvt->fdCxn, F_SETFL, flags) < 0) { - close(pvt->fdCxn); - perror("fcntl"); - return (-1); - } -#endif - - code = irs_irp_read_response(pvt, text, sizeof text); - if (code != IRPD_WELCOME_CODE) { - if (irp_log_errors) { - syslog(LOG_WARNING, "Connection failed: %s", text); - } - irs_irp_disconnect(pvt); - return (-1); - } - - return (0); -} - -/*% - * int irs_irp_is_connected(struct irp_p *pvt); - * - * Returns: - * - * Non-zero if streams are setup to remote. - * - */ - -int -irs_irp_is_connected(struct irp_p *pvt) { - return (pvt->fdCxn >= 0); -} - -/*% - * void - * irs_irp_disconnect(struct irp_p *pvt); - * - * Closes streams to remote. - */ - -void -irs_irp_disconnect(struct irp_p *pvt) { - if (pvt->fdCxn != -1) { - close(pvt->fdCxn); - pvt->fdCxn = -1; - } -} - - - -int -irs_irp_read_line(struct irp_p *pvt, char *buffer, int len) { - char *realstart = &pvt->inbuffer[0]; - char *p, *start, *end; - int spare; - int i; - int buffpos = 0; - int left = len - 1; - - while (left > 0) { - start = p = &pvt->inbuffer[pvt->incurr]; - end = &pvt->inbuffer[pvt->inlast]; - - while (p != end && *p != '\n') - p++; - - if (p == end) { - /* Found no newline so shift data down if necessary - * and append new data to buffer - */ - if (start > realstart) { - memmove(realstart, start, end - start); - pvt->inlast = end - start; - start = realstart; - pvt->incurr = 0; - end = &pvt->inbuffer[pvt->inlast]; - } - - spare = sizeof (pvt->inbuffer) - pvt->inlast; - - p = end; - i = read(pvt->fdCxn, end, spare); - if (i < 0) { - close(pvt->fdCxn); - pvt->fdCxn = -1; - return (buffpos > 0 ? buffpos : -1); - } else if (i == 0) { - return (buffpos); - } - - end += i; - pvt->inlast += i; - - while (p != end && *p != '\n') - p++; - } - - if (p == end) { - /* full buffer and still no newline */ - i = sizeof pvt->inbuffer; - } else { - /* include newline */ - i = p - start + 1; - } - - if (i > left) - i = left; - memcpy(buffer + buffpos, start, i); - pvt->incurr += i; - buffpos += i; - buffer[buffpos] = '\0'; - - if (p != end) { - left = 0; - } else { - left -= i; - } - } - -#if 0 - fprintf(stderr, "read line: %s\n", buffer); -#endif - return (buffpos); -} - -/*% - * int irp_read_response(struct irp_p *pvt); - * - * Returns: - * - * The number found at the beginning of the line read from - * FP. 0 on failure(0 is not a legal response code). The - * rest of the line is discarded. - * - */ - -int -irs_irp_read_response(struct irp_p *pvt, char *text, size_t textlen) { - char line[1024]; - int code; - char *p; - - if (irs_irp_read_line(pvt, line, sizeof line) <= 0) { - return (0); - } - - p = strchr(line, '\n'); - if (p == NULL) { - return (0); - } - - if (sscanf(line, "%d", &code) != 1) { - code = 0; - } else if (text != NULL && textlen > 0U) { - p = line; - while (isspace((unsigned char)*p)) p++; - while (isdigit((unsigned char)*p)) p++; - while (isspace((unsigned char)*p)) p++; - strncpy(text, p, textlen - 1); - p[textlen - 1] = '\0'; - } - - return (code); -} - -/*% - * char *irp_read_body(struct irp_p *pvt, size_t *size); - * - * Read in the body of a response. Terminated by a line with - * just a dot on it. Lines should be terminated with a CR-LF - * sequence, but we're nt piccky if the CR is missing. - * No leading dot escaping is done as the protcol doesn't - * use leading dots anywhere. - * - * Returns: - * - * Pointer to null-terminated buffer allocated by memget. - * *SIZE is set to the length of the buffer. - * - */ - -char * -irs_irp_read_body(struct irp_p *pvt, size_t *size) { - char line[1024]; - u_int linelen; - size_t len = LINEINCR; - char *buffer = memget(len); - int idx = 0; - - if (buffer == NULL) - return (NULL); - - for (;;) { - if (irs_irp_read_line(pvt, line, sizeof line) <= 0 || - strchr(line, '\n') == NULL) - goto death; - - linelen = strlen(line); - - if (line[linelen - 1] != '\n') - goto death; - - /* We're not strict about missing \r. Should we be?? */ - if (linelen > 2 && line[linelen - 2] == '\r') { - line[linelen - 2] = '\n'; - line[linelen - 1] = '\0'; - linelen--; - } - - if (linelen == 2 && line[0] == '.') { - *size = len; - buffer[idx] = '\0'; - - return (buffer); - } - - if (linelen > (len - (idx + 1))) { - char *p = memget(len + LINEINCR); - - if (p == NULL) - goto death; - memcpy(p, buffer, len); - memput(buffer, len); - buffer = p; - len += LINEINCR; - } - - memcpy(buffer + idx, line, linelen); - idx += linelen; - } - death: - memput(buffer, len); - return (NULL); -} - -/*% - * int irs_irp_get_full_response(struct irp_p *pvt, int *code, - * char **body, size_t *bodylen); - * - * Gets the response to a command. If the response indicates - * there's a body to follow(code % 10 == 1), then the - * body buffer is allcoated with memget and stored in - * *BODY. The length of the allocated body buffer is stored - * in *BODY. The caller must give the body buffer back to - * memput when done. The results code is stored in *CODE. - * - * Returns: - * - * 0 if a result was read. -1 on some sort of failure. - * - */ - -int -irs_irp_get_full_response(struct irp_p *pvt, int *code, char *text, - size_t textlen, char **body, size_t *bodylen) { - int result = irs_irp_read_response(pvt, text, textlen); - - *body = NULL; - - if (result == 0) { - return (-1); - } - - *code = result; - - /* Code that matches 2xx is a good result code. - * Code that matches xx1 means there's a response body coming. - */ - if ((result / 100) == 2 && (result % 10) == 1) { - *body = irs_irp_read_body(pvt, bodylen); - if (*body == NULL) { - return (-1); - } - } - - return (0); -} - -/*% - * int irs_irp_send_command(struct irp_p *pvt, const char *fmt, ...); - * - * Sends command to remote connected via the PVT - * structure. FMT and args after it are fprintf-like - * arguments for formatting. - * - * Returns: - * - * 0 on success, -1 on failure. - */ - -int -irs_irp_send_command(struct irp_p *pvt, const char *fmt, ...) { - va_list ap; - char buffer[1024]; - int pos = 0; - int i, todo; - - - if (pvt->fdCxn < 0) { - return (-1); - } - - va_start(ap, fmt); - (void) vsprintf(buffer, fmt, ap); - todo = strlen(buffer); - va_end(ap); - if (todo > (int)sizeof(buffer) - 3) { - syslog(LOG_CRIT, "memory overrun in irs_irp_send_command()"); - exit(1); - } - strcat(buffer, "\r\n"); - todo = strlen(buffer); - - while (todo > 0) { - i = write(pvt->fdCxn, buffer + pos, todo); -#if 0 - /* XXX brister */ - fprintf(stderr, "Wrote: \""); - fwrite(buffer + pos, sizeof (char), todo, stderr); - fprintf(stderr, "\"\n"); -#endif - if (i < 0) { - close(pvt->fdCxn); - pvt->fdCxn = -1; - return (-1); - } - todo -= i; - } - - return (0); -} - - -/* Methods */ - -/*% - * void irp_close(struct irs_acc *this) - * - */ - -static void -irp_close(struct irs_acc *this) { - struct irp_p *irp = (struct irp_p *)this->private; - - if (irp != NULL) { - irs_irp_disconnect(irp); - memput(irp, sizeof *irp); - } - - memput(this, sizeof *this); -} - - - - -/*! \file */ diff --git a/src/kits/network/libbind/irs/irp_gr.c b/src/kits/network/libbind/irs/irp_gr.c deleted file mode 100644 index 1f40e76022..0000000000 --- a/src/kits/network/libbind/irs/irp_gr.c +++ /dev/null @@ -1,357 +0,0 @@ -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Portions Copyright(c) 1996, 1998 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: irp_gr.c,v 1.4 2005/04/27 04:56:27 sra Exp $"; -#endif /* LIBC_SCCS and not lint */ - -/* extern */ - -#include "port_before.h" - -#ifndef WANT_IRS_PW -static int __bind_irs_gr_unneeded; -#else - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "irs_p.h" -#include "lcl_p.h" -#include "irp_p.h" - -#include "port_after.h" - - -/* Types. */ - -/*! \file - * \brief - * Module for the getnetgrent(3) family to use when connected to a - * remote irp daemon. - * \brief - * See irpd.c for justification of caching done here. - * - */ - -struct pvt { - struct irp_p *girpdata; /*%< global IRP data */ - int warned; - struct group group; -}; - -/* Forward. */ - -static void gr_close(struct irs_gr *); -static struct group * gr_next(struct irs_gr *); -static struct group * gr_byname(struct irs_gr *, const char *); -static struct group * gr_bygid(struct irs_gr *, gid_t); -static void gr_rewind(struct irs_gr *); -static void gr_minimize(struct irs_gr *); - -/* Private */ -static void free_group(struct group *gr); - - -/* Public. */ - -/*% - * Initialize the group sub-module. - * - */ - -struct irs_gr * -irs_irp_gr(struct irs_acc *this) { - struct irs_gr *gr; - struct pvt *pvt; - - if (!(gr = memget(sizeof *gr))) { - errno = ENOMEM; - return (NULL); - } - memset(gr, 0x0, sizeof *gr); - - if (!(pvt = memget(sizeof *pvt))) { - memput(gr, sizeof *gr); - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0x0, sizeof *pvt); - pvt->girpdata = this->private; - - gr->private = pvt; - gr->close = gr_close; - gr->next = gr_next; - gr->byname = gr_byname; - gr->bygid = gr_bygid; - gr->rewind = gr_rewind; - gr->list = make_group_list; - gr->minimize = gr_minimize; - return (gr); -} - -/* Methods. */ - -/*% - * Close the sub-module. - * - */ - -static void -gr_close(struct irs_gr *this) { - struct pvt *pvt = (struct pvt *)this->private; - - gr_minimize(this); - - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -/*% - * Gets the next group out of the cached data and returns it. - * - */ - -static struct group * -gr_next(struct irs_gr *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct group *gr = &pvt->group; - char *body; - size_t bodylen; - int code; - char text[256]; - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return (NULL); - } - - if (irs_irp_send_command(pvt->girpdata, "getgrent") != 0) { - return (NULL); - } - - if (irs_irp_get_full_response(pvt->girpdata, &code, - text, sizeof text, - &body, &bodylen) != 0) { - if (irp_log_errors) { - syslog(LOG_WARNING, "getgrent failed: %s", text); - } - return (NULL); - } - - if (code == IRPD_GETGROUP_OK) { - free_group(gr); - if (irp_unmarshall_gr(gr, body) != 0) { - gr = NULL; - } - } else { - gr = NULL; - } - - if (body != NULL) { - memput(body, bodylen); - } - - return (gr); -} - -/*% - * Gets a group by name from irpd and returns it. - * - */ - -static struct group * -gr_byname(struct irs_gr *this, const char *name) { - struct pvt *pvt = (struct pvt *)this->private; - struct group *gr = &pvt->group; - char *body; - size_t bodylen; - int code; - char text[256]; - - - if (gr->gr_name != NULL && strcmp(name, gr->gr_name) == 0) { - return (gr); - } - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return (NULL); - } - - if (irs_irp_send_command(pvt->girpdata, "getgrnam %s", name) != 0) - return (NULL); - - if (irs_irp_get_full_response(pvt->girpdata, &code, - text, sizeof text, - &body, &bodylen) != 0) { - return (NULL); - } - - if (code == IRPD_GETGROUP_OK) { - free_group(gr); - if (irp_unmarshall_gr(gr, body) != 0) { - gr = NULL; - } - } else { - gr = NULL; - } - - if (body != NULL) { - memput(body, bodylen); - } - - return (gr); -} - -/*% - * Gets a group by gid from irpd and returns it. - * - */ - -static struct group * -gr_bygid(struct irs_gr *this, gid_t gid) { - struct pvt *pvt = (struct pvt *)this->private; - struct group *gr = &pvt->group; - char *body; - size_t bodylen; - int code; - char text[256]; - - if (gr->gr_name != NULL && (gid_t)gr->gr_gid == gid) { - return (gr); - } - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return (NULL); - } - - if (irs_irp_send_command(pvt->girpdata, "getgrgid %d", gid) != 0) - return (NULL); - - if (irs_irp_get_full_response(pvt->girpdata, &code, - text, sizeof text, - &body, &bodylen) != 0) { - return (NULL); - } - - if (code == IRPD_GETGROUP_OK) { - free_group(gr); - if (irp_unmarshall_gr(gr, body) != 0) { - gr = NULL; - } - } else { - gr = NULL; - } - - if (body != NULL) { - memput(body, bodylen); - } - - return (gr); -} - -/*% - * void gr_rewind(struct irs_gr *this) - * - */ - -static void -gr_rewind(struct irs_gr *this) { - struct pvt *pvt = (struct pvt *)this->private; - char text[256]; - int code; - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return; - } - - if (irs_irp_send_command(pvt->girpdata, "setgrent") != 0) { - return; - } - - code = irs_irp_read_response(pvt->girpdata, text, sizeof text); - if (code != IRPD_GETGROUP_SETOK) { - if (irp_log_errors) { - syslog(LOG_WARNING, "setgrent failed: %s", text); - } - } - - return; -} - -/*% - * Frees up cached data and disconnects(if necessary) from the remote. - * - */ - -static void -gr_minimize(struct irs_gr *this) { - struct pvt *pvt = (struct pvt *)this->private; - - free_group(&pvt->group); - irs_irp_disconnect(pvt->girpdata); -} - -/* Private. */ - -/*% - * static void free_group(struct group *gr); - * - * Deallocate all the memory irp_unmarshall_gr allocated. - * - */ - -static void -free_group(struct group *gr) { - char **p; - - if (gr == NULL) - return; - - if (gr->gr_name != NULL) - free(gr->gr_name); - - if (gr->gr_passwd != NULL) - free(gr->gr_passwd); - - for (p = gr->gr_mem ; p != NULL && *p != NULL ; p++) - free(*p); - - if (gr->gr_mem) - free(gr->gr_mem); - - if (p != NULL) - free(p); -} - - -#endif /* WANT_IRS_GR */ -/*! \file */ diff --git a/src/kits/network/libbind/irs/irp_ho.c b/src/kits/network/libbind/irs/irp_ho.c deleted file mode 100644 index d4ce5c3bbe..0000000000 --- a/src/kits/network/libbind/irs/irp_ho.c +++ /dev/null @@ -1,405 +0,0 @@ -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Portions Copyright (c) 1996,1998 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: irp_ho.c,v 1.3 2005/04/27 04:56:28 sra Exp $"; -#endif /* LIBC_SCCS and not lint */ - -/* Imports. */ - -#include "port_before.h" - -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "irs_p.h" -#include "dns_p.h" -#include "irp_p.h" - -#include "port_after.h" - -/* Definitions. */ - -#define MAXALIASES 35 -#define MAXADDRS 35 -#define Max(a,b) ((a) > (b) ? (a) : (b)) - - -struct pvt { - struct irp_p *girpdata; - int warned; - struct hostent host; -}; - -/* Forward. */ - -static void ho_close(struct irs_ho *this); -static struct hostent * ho_byname(struct irs_ho *this, const char *name); -static struct hostent * ho_byname2(struct irs_ho *this, const char *name, - int af); -static struct hostent * ho_byaddr(struct irs_ho *this, const void *addr, - int len, int af); -static struct hostent * ho_next(struct irs_ho *this); -static void ho_rewind(struct irs_ho *this); -static void ho_minimize(struct irs_ho *this); - -static void free_host(struct hostent *ho); -static struct addrinfo * ho_addrinfo(struct irs_ho *this, const char *name, - const struct addrinfo *pai); - -/* Public. */ - -/*% - * struct irs_ho * irs_irp_ho(struct irs_acc *this) - * - * Notes: - * - * Initializes the irp_ho module. - * - */ - -struct irs_ho * -irs_irp_ho(struct irs_acc *this) { - struct irs_ho *ho; - struct pvt *pvt; - - if (!(ho = memget(sizeof *ho))) { - errno = ENOMEM; - return (NULL); - } - memset(ho, 0x0, sizeof *ho); - - if (!(pvt = memget(sizeof *pvt))) { - memput(ho, sizeof *ho); - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - pvt->girpdata = this->private; - - ho->private = pvt; - ho->close = ho_close; - ho->byname = ho_byname; - ho->byname2 = ho_byname2; - ho->byaddr = ho_byaddr; - ho->next = ho_next; - ho->rewind = ho_rewind; - ho->minimize = ho_minimize; - ho->addrinfo = ho_addrinfo; - - return (ho); -} - -/* Methods. */ - -/*% - * Closes down the module. - * - */ - -static void -ho_close(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - - ho_minimize(this); - - free_host(&pvt->host); - - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - - - -/* - * struct hostent * ho_byname(struct irs_ho *this, const char *name) - * - */ - -static struct hostent * -ho_byname(struct irs_ho *this, const char *name) { - return (ho_byname2(this, name, AF_INET)); -} - - - - - -/* - * struct hostent * ho_byname2(struct irs_ho *this, const char *name, int af) - * - */ - -static struct hostent * -ho_byname2(struct irs_ho *this, const char *name, int af) { - struct pvt *pvt = (struct pvt *)this->private; - struct hostent *ho = &pvt->host; - char *body = NULL; - size_t bodylen; - int code; - char text[256]; - - if (ho->h_name != NULL && - strcmp(name, ho->h_name) == 0 && - af == ho->h_addrtype) { - return (ho); - } - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return (NULL); - } - - if (irs_irp_send_command(pvt->girpdata, "gethostbyname2 %s %s", - name, ADDR_T_STR(af)) != 0) - return (NULL); - - if (irs_irp_get_full_response(pvt->girpdata, &code, - text, sizeof text, - &body, &bodylen) != 0) { - return (NULL); - } - - if (code == IRPD_GETHOST_OK) { - free_host(ho); - if (irp_unmarshall_ho(ho, body) != 0) { - ho = NULL; - } - } else { - ho = NULL; - } - - if (body != NULL) { - memput(body, bodylen); - } - - return (ho); -} - - - -/* - * struct hostent * ho_byaddr(struct irs_ho *this, const void *addr, - * int len, int af) - * - */ - -static struct hostent * -ho_byaddr(struct irs_ho *this, const void *addr, int len, int af) { - struct pvt *pvt = (struct pvt *)this->private; - struct hostent *ho = &pvt->host; - char *body = NULL; - size_t bodylen; - int code; - char **p; - char paddr[MAXPADDRSIZE]; - char text[256]; - - if (ho->h_name != NULL && - af == ho->h_addrtype && - len == ho->h_length) { - for (p = ho->h_addr_list ; *p != NULL ; p++) { - if (memcmp(*p, addr, len) == 0) - return (ho); - } - } - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return (NULL); - } - - if (inet_ntop(af, addr, paddr, sizeof paddr) == NULL) { - return (NULL); - } - - if (irs_irp_send_command(pvt->girpdata, "gethostbyaddr %s %s", - paddr, ADDR_T_STR(af)) != 0) { - return (NULL); - } - - if (irs_irp_get_full_response(pvt->girpdata, &code, - text, sizeof text, - &body, &bodylen) != 0) { - return (NULL); - } - - if (code == IRPD_GETHOST_OK) { - free_host(ho); - if (irp_unmarshall_ho(ho, body) != 0) { - ho = NULL; - } - } else { - ho = NULL; - } - - if (body != NULL) { - memput(body, bodylen); - } - - return (ho); -} - -/*% - * The implementation for gethostent(3). The first time it's - * called all the data is pulled from the remote(i.e. what - * the maximum number of gethostent(3) calls would return) - * and that data is cached. - * - */ - -static struct hostent * -ho_next(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct hostent *ho = &pvt->host; - char *body; - size_t bodylen; - int code; - char text[256]; - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return (NULL); - } - - if (irs_irp_send_command(pvt->girpdata, "gethostent") != 0) { - return (NULL); - } - - if (irs_irp_get_full_response(pvt->girpdata, &code, - text, sizeof text, - &body, &bodylen) != 0) { - return (NULL); - } - - if (code == IRPD_GETHOST_OK) { - free_host(ho); - if (irp_unmarshall_ho(ho, body) != 0) { - ho = NULL; - } - } else { - ho = NULL; - } - - if (body != NULL) { - memput(body, bodylen); - } - - return (ho); -} - -/*% - * void ho_rewind(struct irs_ho *this) - * - */ - -static void -ho_rewind(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - char text[256]; - int code; - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return; - } - - if (irs_irp_send_command(pvt->girpdata, "sethostent") != 0) { - return; - } - - code = irs_irp_read_response(pvt->girpdata, text, sizeof text); - if (code != IRPD_GETHOST_SETOK) { - if (irp_log_errors) { - syslog(LOG_WARNING, "sethostent failed: %s", text); - } - } - - return; -} - -/*% - * void ho_minimize(struct irs_ho *this) - * - */ - -static void -ho_minimize(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - - free_host(&pvt->host); - - irs_irp_disconnect(pvt->girpdata); -} - -/*% - * void free_host(struct hostent *ho) - * - */ - -static void -free_host(struct hostent *ho) { - char **p; - - if (ho == NULL) { - return; - } - - if (ho->h_name != NULL) - free(ho->h_name); - - if (ho->h_aliases != NULL) { - for (p = ho->h_aliases ; *p != NULL ; p++) - free(*p); - free(ho->h_aliases); - } - - if (ho->h_addr_list != NULL) { - for (p = ho->h_addr_list ; *p != NULL ; p++) - free(*p); - free(ho->h_addr_list); - } -} - -/* dummy */ -static struct addrinfo * -ho_addrinfo(struct irs_ho *this, const char *name, const struct addrinfo *pai) -{ - UNUSED(this); - UNUSED(name); - UNUSED(pai); - return(NULL); -} - -/*! \file */ diff --git a/src/kits/network/libbind/irs/irp_ng.c b/src/kits/network/libbind/irs/irp_ng.c deleted file mode 100644 index 1af862cab4..0000000000 --- a/src/kits/network/libbind/irs/irp_ng.c +++ /dev/null @@ -1,253 +0,0 @@ -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 1996, 1998 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. - */ - -#if !defined(LINT) && !defined(CODECENTER) -static const char rcsid[] = "$Id: irp_ng.c,v 1.4 2006/12/07 04:46:27 marka Exp $"; -#endif - -/* Imports */ - -#include "port_before.h" - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "irs_p.h" -#include "irp_p.h" - -#include "port_after.h" - -/* Definitions */ - -struct pvt { - struct irp_p *girpdata; - int warned; -}; - - -/* Forward */ - -static void ng_rewind(struct irs_ng *, const char*); -static void ng_close(struct irs_ng *); -static int ng_next(struct irs_ng *, const char **, const char **, - const char **); -static int ng_test(struct irs_ng *, const char *, - const char *, const char *, - const char *); -static void ng_minimize(struct irs_ng *); - - -/* Public */ - -/*% - * Intialize the irp netgroup module. - * - */ - -struct irs_ng * -irs_irp_ng(struct irs_acc *this) { - struct irs_ng *ng; - struct pvt *pvt; - - if (!(ng = memget(sizeof *ng))) { - errno = ENOMEM; - return (NULL); - } - memset(ng, 0x5e, sizeof *ng); - - if (!(pvt = memget(sizeof *pvt))) { - memput(ng, sizeof *ng); - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - pvt->girpdata = this->private; - - ng->private = pvt; - ng->close = ng_close; - ng->next = ng_next; - ng->test = ng_test; - ng->rewind = ng_rewind; - ng->minimize = ng_minimize; - return (ng); -} - -/* Methods */ - - - -/* - * void ng_close(struct irs_ng *this) - * - */ - -static void -ng_close(struct irs_ng *this) { - struct pvt *pvt = (struct pvt *)this->private; - - ng_minimize(this); - - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - - - - -/* - * void ng_rewind(struct irs_ng *this, const char *group) - * - * - */ - -static void -ng_rewind(struct irs_ng *this, const char *group) { - struct pvt *pvt = (struct pvt *)this->private; - char text[256]; - int code; - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return; - } - - if (irs_irp_send_command(pvt->girpdata, - "setnetgrent %s", group) != 0) { - return; - } - - code = irs_irp_read_response(pvt->girpdata, text, sizeof text); - if (code != IRPD_GETNETGR_SETOK) { - if (irp_log_errors) { - syslog(LOG_WARNING, "setnetgrent(%s) failed: %s", - group, text); - } - } - - return; -} - -/* - * Get the next netgroup item from the cache. - * - */ - -static int -ng_next(struct irs_ng *this, const char **host, const char **user, - const char **domain) -{ - struct pvt *pvt = (struct pvt *)this->private; - int code; - char *body = NULL; - size_t bodylen; - int rval = 0; - char text[256]; - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return (0); - } - - if (irs_irp_send_command(pvt->girpdata, "getnetgrent") != 0) - return (0); - - if (irs_irp_get_full_response(pvt->girpdata, &code, - text, sizeof text, - &body, &bodylen) != 0) { - return (0); - } - - if (code == IRPD_GETNETGR_OK) { - if (irp_unmarshall_ng(host, user, domain, body) == 0) { - rval = 1; - } - } - - if (body != NULL) { - memput(body, bodylen); - } - - return (rval); -} - -/* - * Search for a match in a netgroup. - * - */ - -static int -ng_test(struct irs_ng *this, const char *name, - const char *host, const char *user, const char *domain) -{ - struct pvt *pvt = (struct pvt *)this->private; - char *body = NULL; - size_t bodylen = 0; - int code; - char text[256]; - int rval = 0; - - UNUSED(name); - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return (0); - } - - if (irp_marshall_ng(host, user, domain, &body, &bodylen) != 0) { - return (0); - } - - if (irs_irp_send_command(pvt->girpdata, "innetgr %s", body) == 0) { - code = irs_irp_read_response(pvt->girpdata, text, sizeof text); - if (code == IRPD_GETNETGR_MATCHES) { - rval = 1; - } - } - - memput(body, bodylen); - - return (rval); -} - - - - -/* - * void ng_minimize(struct irs_ng *this) - * - */ - -static void -ng_minimize(struct irs_ng *this) { - struct pvt *pvt = (struct pvt *)this->private; - - irs_irp_disconnect(pvt->girpdata); -} - - - - -/* Private */ - - -/*! \file */ diff --git a/src/kits/network/libbind/irs/irp_nw.c b/src/kits/network/libbind/irs/irp_nw.c deleted file mode 100644 index eb4654f9b9..0000000000 --- a/src/kits/network/libbind/irs/irp_nw.c +++ /dev/null @@ -1,348 +0,0 @@ -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Portions Copyright (c) 1996,1998 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: irp_nw.c,v 1.4 2006/03/09 23:57:56 marka Exp $"; -#endif /* LIBC_SCCS and not lint */ - -#if 0 - -#endif - -/* Imports */ - -#include "port_before.h" - -#include -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include -#include - -#include "irs_p.h" -#include "lcl_p.h" -#include "irp_p.h" - -#include "port_after.h" - -#define MAXALIASES 35 -#define MAXADDRSIZE 4 - -struct pvt { - struct irp_p *girpdata; - int warned; - struct nwent net; -}; - -/* Forward */ - -static void nw_close(struct irs_nw *); -static struct nwent * nw_byname(struct irs_nw *, const char *, int); -static struct nwent * nw_byaddr(struct irs_nw *, void *, int, int); -static struct nwent * nw_next(struct irs_nw *); -static void nw_rewind(struct irs_nw *); -static void nw_minimize(struct irs_nw *); - -static void free_nw(struct nwent *nw); - - -/* Public */ - -/*% - * struct irs_nw * irs_irp_nw(struct irs_acc *this) - * - */ - -struct irs_nw * -irs_irp_nw(struct irs_acc *this) { - struct irs_nw *nw; - struct pvt *pvt; - - if (!(pvt = memget(sizeof *pvt))) { - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - - if (!(nw = memget(sizeof *nw))) { - memput(pvt, sizeof *pvt); - errno = ENOMEM; - return (NULL); - } - memset(nw, 0x0, sizeof *nw); - pvt->girpdata = this->private; - - nw->private = pvt; - nw->close = nw_close; - nw->byname = nw_byname; - nw->byaddr = nw_byaddr; - nw->next = nw_next; - nw->rewind = nw_rewind; - nw->minimize = nw_minimize; - return (nw); -} - -/* Methods */ - -/*% - * void nw_close(struct irs_nw *this) - * - */ - -static void -nw_close(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - nw_minimize(this); - - free_nw(&pvt->net); - - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -/*% - * struct nwent * nw_byaddr(struct irs_nw *this, void *net, - * int length, int type) - * - */ - -static struct nwent * -nw_byaddr(struct irs_nw *this, void *net, int length, int type) { - struct pvt *pvt = (struct pvt *)this->private; - struct nwent *nw = &pvt->net; - char *body = NULL; - size_t bodylen; - int code; - char paddr[24]; /*%< bigenough for ip4 w/ cidr spec. */ - char text[256]; - - if (inet_net_ntop(type, net, length, paddr, sizeof paddr) == NULL) { - return (NULL); - } - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return (NULL); - } - - if (irs_irp_send_command(pvt->girpdata, "getnetbyaddr %s %s", - paddr, ADDR_T_STR(type)) != 0) - return (NULL); - - if (irs_irp_get_full_response(pvt->girpdata, &code, - text, sizeof text, - &body, &bodylen) != 0) { - return (NULL); - } - - if (code == IRPD_GETNET_OK) { - free_nw(nw); - if (irp_unmarshall_nw(nw, body) != 0) { - nw = NULL; - } - } else { - nw = NULL; - } - - if (body != NULL) { - memput(body, bodylen); - } - - return (nw); -} - -/*% - * struct nwent * nw_byname(struct irs_nw *this, const char *name, int type) - * - */ - -static struct nwent * -nw_byname(struct irs_nw *this, const char *name, int type) { - struct pvt *pvt = (struct pvt *)this->private; - struct nwent *nw = &pvt->net; - char *body = NULL; - size_t bodylen; - int code; - char text[256]; - - if (nw->n_name != NULL && - strcmp(name, nw->n_name) == 0 && - nw->n_addrtype == type) { - return (nw); - } - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return (NULL); - } - - if (irs_irp_send_command(pvt->girpdata, "getnetbyname %s", name) != 0) - return (NULL); - - if (irs_irp_get_full_response(pvt->girpdata, &code, - text, sizeof text, - &body, &bodylen) != 0) { - return (NULL); - } - - if (code == IRPD_GETNET_OK) { - free_nw(nw); - if (irp_unmarshall_nw(nw, body) != 0) { - nw = NULL; - } - } else { - nw = NULL; - } - - if (body != NULL) { - memput(body, bodylen); - } - - return (nw); -} - -/*% - * void nw_rewind(struct irs_nw *this) - * - */ - -static void -nw_rewind(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - char text[256]; - int code; - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return; - } - - if (irs_irp_send_command(pvt->girpdata, "setnetent") != 0) { - return; - } - - code = irs_irp_read_response(pvt->girpdata, text, sizeof text); - if (code != IRPD_GETNET_SETOK) { - if (irp_log_errors) { - syslog(LOG_WARNING, "setnetent failed: %s", text); - } - } - - return; -} - -/*% - * Prepares the cache if necessary and returns the first, or - * next item from it. - */ - -static struct nwent * -nw_next(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct nwent *nw = &pvt->net; - char *body; - size_t bodylen; - int code; - char text[256]; - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return (NULL); - } - - if (irs_irp_send_command(pvt->girpdata, "getnetent") != 0) { - return (NULL); - } - - if (irs_irp_get_full_response(pvt->girpdata, &code, - text, sizeof text, - &body, &bodylen) != 0) { - return (NULL); - } - - if (code == IRPD_GETNET_OK) { - free_nw(nw); - if (irp_unmarshall_nw(nw, body) != 0) { - nw = NULL; - } - } else { - nw = NULL; - } - - if (body != NULL) - memput(body, bodylen); - return (nw); -} - -/*% - * void nw_minimize(struct irs_nw *this) - * - */ - -static void -nw_minimize(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - irs_irp_disconnect(pvt->girpdata); -} - - - - -/* private. */ - -/*% - * deallocate all the memory irp_unmarshall_pw allocated. - * - */ - -static void -free_nw(struct nwent *nw) { - char **p; - - if (nw == NULL) - return; - - if (nw->n_name != NULL) - free(nw->n_name); - - if (nw->n_aliases != NULL) { - for (p = nw->n_aliases ; *p != NULL ; p++) { - free(*p); - } - free(nw->n_aliases); - } - - if (nw->n_addr != NULL) - free(nw->n_addr); -} - -/*! \file */ diff --git a/src/kits/network/libbind/irs/irp_p.h b/src/kits/network/libbind/irs/irp_p.h deleted file mode 100644 index 4f943f81bd..0000000000 --- a/src/kits/network/libbind/irs/irp_p.h +++ /dev/null @@ -1,60 +0,0 @@ -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 1996 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. - */ - -/* - * $Id: irp_p.h,v 1.5 2005/04/27 04:56:28 sra Exp $ - */ - -#ifndef _IRP_P_H_INCLUDED -#define _IRP_P_H_INCLUDED - -#include - -struct irp_p { - char inbuffer[1024]; - int inlast; /*%< index of one past the last char in buffer */ - int incurr; /*%< index of the next char to be read from buffer */ - int fdCxn; -}; - -/* - * Externs. - */ - -extern struct irs_acc * irs_irp_acc __P((const char *)); -extern struct irs_gr * irs_irp_gr __P((struct irs_acc *)); -extern struct irs_pw * irs_irp_pw __P((struct irs_acc *)); -extern struct irs_sv * irs_irp_sv __P((struct irs_acc *)); -extern struct irs_pr * irs_irp_pr __P((struct irs_acc *)); -extern struct irs_ho * irs_irp_ho __P((struct irs_acc *)); -extern struct irs_nw * irs_irp_nw __P((struct irs_acc *)); -extern struct irs_ng * irs_irp_ng __P((struct irs_acc *)); - -int irs_irp_connect(struct irp_p *pvt); -int irs_irp_is_connected(struct irp_p *pvt); -void irs_irp_disconnect(struct irp_p *pvt); -int irs_irp_read_response(struct irp_p *pvt, char *text, size_t textlen); -char *irs_irp_read_body(struct irp_p *pvt, size_t *size); -int irs_irp_get_full_response(struct irp_p *pvt, int *code, - char *text, size_t textlen, - char **body, size_t *bodylen); - -extern int irp_log_errors; - -#endif - -/*! \file */ diff --git a/src/kits/network/libbind/irs/irp_pr.c b/src/kits/network/libbind/irs/irp_pr.c deleted file mode 100644 index ea876e8281..0000000000 --- a/src/kits/network/libbind/irs/irp_pr.c +++ /dev/null @@ -1,327 +0,0 @@ -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Portions Copyright (c) 1996 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: irp_pr.c,v 1.3 2005/04/27 04:56:29 sra Exp $"; -#endif /* LIBC_SCCS and not lint */ - -/* extern */ - -#include "port_before.h" - -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "irs_p.h" -#include "lcl_p.h" -#include "irp_p.h" - -#include "port_after.h" - - -#define MAXALIASES 35 - -/* Types */ - -struct pvt { - struct irp_p *girpdata; - int warned; - struct protoent proto; -}; - -/* Forward */ - -static void pr_close(struct irs_pr *); -static struct protoent * pr_next(struct irs_pr *); -static struct protoent * pr_byname(struct irs_pr *, const char *); -static struct protoent * pr_bynumber(struct irs_pr *, int); -static void pr_rewind(struct irs_pr *); -static void pr_minimize(struct irs_pr *); - -static void free_proto(struct protoent *pr); - -/* Public */ - -/*% - * struct irs_pr * irs_irp_pr(struct irs_acc *this) - * - */ - -struct irs_pr * -irs_irp_pr(struct irs_acc *this) { - struct irs_pr *pr; - struct pvt *pvt; - - if (!(pr = memget(sizeof *pr))) { - errno = ENOMEM; - return (NULL); - } - memset(pr, 0x0, sizeof *pr); - - if (!(pvt = memget(sizeof *pvt))) { - memput(pr, sizeof *pr); - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - pvt->girpdata = this->private; - - pr->private = pvt; - pr->close = pr_close; - pr->byname = pr_byname; - pr->bynumber = pr_bynumber; - pr->next = pr_next; - pr->rewind = pr_rewind; - pr->minimize = pr_minimize; - return (pr); -} - -/* Methods */ - -/*% - * void pr_close(struct irs_pr *this) - * - */ - -static void -pr_close(struct irs_pr *this) { - struct pvt *pvt = (struct pvt *)this->private; - - pr_minimize(this); - - free_proto(&pvt->proto); - - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -/*% - * struct protoent * pr_byname(struct irs_pr *this, const char *name) - * - */ - -static struct protoent * -pr_byname(struct irs_pr *this, const char *name) { - struct pvt *pvt = (struct pvt *)this->private; - struct protoent *pr = &pvt->proto; - char *body = NULL; - size_t bodylen; - int code; - int i; - char text[256]; - - if (pr->p_name != NULL && strcmp(name, pr->p_name) == 0) { - return (pr); - } - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return (NULL); - } - - i = irs_irp_send_command(pvt->girpdata, "getprotobyname %s", name); - if (i != 0) - return (NULL); - - if (irs_irp_get_full_response(pvt->girpdata, &code, - text, sizeof text, - &body, &bodylen) != 0) { - return (NULL); - } - - if (code == IRPD_GETPROTO_OK) { - free_proto(pr); - if (irp_unmarshall_pr(pr, body) != 0) { - pr = NULL; - } - } else { - pr = NULL; - } - - if (body != NULL) { - memput(body, bodylen); - } - - return (pr); -} - -/*% - * struct protoent * pr_bynumber(struct irs_pr *this, int proto) - * - */ - -static struct protoent * -pr_bynumber(struct irs_pr *this, int proto) { - struct pvt *pvt = (struct pvt *)this->private; - struct protoent *pr = &pvt->proto; - char *body = NULL; - size_t bodylen; - int code; - int i; - char text[256]; - - if (pr->p_name != NULL && proto == pr->p_proto) { - return (pr); - } - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return (NULL); - } - - i = irs_irp_send_command(pvt->girpdata, "getprotobynumber %d", proto); - if (i != 0) - return (NULL); - - if (irs_irp_get_full_response(pvt->girpdata, &code, - text, sizeof text, - &body, &bodylen) != 0) { - return (NULL); - } - - if (code == IRPD_GETPROTO_OK) { - free_proto(pr); - if (irp_unmarshall_pr(pr, body) != 0) { - pr = NULL; - } - } else { - pr = NULL; - } - - if (body != NULL) { - memput(body, bodylen); - } - - return (pr); -} - -/*% - * void pr_rewind(struct irs_pr *this) - * - */ - -static void -pr_rewind(struct irs_pr *this) { - struct pvt *pvt = (struct pvt *)this->private; - char text[256]; - int code; - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return; - } - - if (irs_irp_send_command(pvt->girpdata, "setprotoent") != 0) { - return; - } - - code = irs_irp_read_response(pvt->girpdata, text, sizeof text); - if (code != IRPD_GETPROTO_SETOK) { - if (irp_log_errors) { - syslog(LOG_WARNING, "setprotoent failed: %s", text); - } - } - - return; -} - -/*% - * Prepares the cache if necessary and returns the next item in it. - * - */ - -static struct protoent * -pr_next(struct irs_pr *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct protoent *pr = &pvt->proto; - char *body; - size_t bodylen; - int code; - char text[256]; - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return (NULL); - } - - if (irs_irp_send_command(pvt->girpdata, "getprotoent") != 0) { - return (NULL); - } - - if (irs_irp_get_full_response(pvt->girpdata, &code, - text, sizeof text, - &body, &bodylen) != 0) { - return (NULL); - } - - if (code == IRPD_GETPROTO_OK) { - free_proto(pr); - if (irp_unmarshall_pr(pr, body) != 0) { - pr = NULL; - } - } else { - pr = NULL; - } - - if (body != NULL) { - memput(body, bodylen); - } - - return (pr); -} - -/*% - * void pr_minimize(struct irs_pr *this) - * - */ - -static void -pr_minimize(struct irs_pr *this) { - struct pvt *pvt = (struct pvt *)this->private; - - irs_irp_disconnect(pvt->girpdata); -} - -/*% - * Deallocate all the memory irp_unmarshall_pr allocated. - * - */ - -static void -free_proto(struct protoent *pr) { - char **p; - - if (pr == NULL) - return; - - if (pr->p_name != NULL) - free(pr->p_name); - - for (p = pr->p_aliases ; p != NULL && *p != NULL ; p++) - free(*p); -} - -/*! \file */ diff --git a/src/kits/network/libbind/irs/irp_pw.c b/src/kits/network/libbind/irs/irp_pw.c deleted file mode 100644 index 3722e5974d..0000000000 --- a/src/kits/network/libbind/irs/irp_pw.c +++ /dev/null @@ -1,340 +0,0 @@ -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Portions Copyright (c) 1996 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: irp_pw.c,v 1.4 2005/04/27 04:56:29 sra Exp $"; -#endif /* LIBC_SCCS and not lint */ - -/* Extern */ - -#include "port_before.h" - -#ifndef WANT_IRS_PW -static int __bind_irs_pw_unneeded; -#else - -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "irp_p.h" - - -/* Types */ - -struct pvt { - struct irp_p *girpdata; /*%< global IRP data */ - int warned; - struct passwd passwd; /*%< password structure */ -}; - -/* Forward */ - -static void pw_close(struct irs_pw *); -static struct passwd * pw_next(struct irs_pw *); -static struct passwd * pw_byname(struct irs_pw *, const char *); -static struct passwd * pw_byuid(struct irs_pw *, uid_t); -static void pw_rewind(struct irs_pw *); -static void pw_minimize(struct irs_pw *); - -static void free_passwd(struct passwd *pw); - -/* Public */ -struct irs_pw * -irs_irp_pw(struct irs_acc *this) { - struct irs_pw *pw; - struct pvt *pvt; - - if (!(pw = memget(sizeof *pw))) { - errno = ENOMEM; - return (NULL); - } - memset(pw, 0, sizeof *pw); - - if (!(pvt = memget(sizeof *pvt))) { - memput(pw, sizeof *pw); - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - pvt->girpdata = this->private; - - pw->private = pvt; - pw->close = pw_close; - pw->next = pw_next; - pw->byname = pw_byname; - pw->byuid = pw_byuid; - pw->rewind = pw_rewind; - pw->minimize = pw_minimize; - - return (pw); -} - -/* Methods */ - -/*% - * void pw_close(struct irs_pw *this) - * - */ - -static void -pw_close(struct irs_pw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - pw_minimize(this); - - free_passwd(&pvt->passwd); - - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -/*% - * struct passwd * pw_next(struct irs_pw *this) - * - */ - -static struct passwd * -pw_next(struct irs_pw *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct passwd *pw = &pvt->passwd; - char *body; - size_t bodylen; - int code; - char text[256]; - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return (NULL); - } - - if (irs_irp_send_command(pvt->girpdata, "getpwent") != 0) { - return (NULL); - } - - if (irs_irp_get_full_response(pvt->girpdata, &code, - text, sizeof text, - &body, &bodylen) != 0) { - return (NULL); - } - - if (code == IRPD_GETUSER_OK) { - free_passwd(pw); - if (irp_unmarshall_pw(pw, body) != 0) { - pw = NULL; - } - } else { - pw = NULL; - } - - if (body != NULL) { - memput(body, bodylen); - } - - return (pw); -} - -/*% - * struct passwd * pw_byname(struct irs_pw *this, const char *name) - * - */ - -static struct passwd * -pw_byname(struct irs_pw *this, const char *name) { - struct pvt *pvt = (struct pvt *)this->private; - struct passwd *pw = &pvt->passwd; - char *body = NULL; - char text[256]; - size_t bodylen; - int code; - - if (pw->pw_name != NULL && strcmp(name, pw->pw_name) == 0) { - return (pw); - } - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return (NULL); - } - - if (irs_irp_send_command(pvt->girpdata, "getpwnam %s", name) != 0) { - return (NULL); - } - - if (irs_irp_get_full_response(pvt->girpdata, &code, - text, sizeof text, - &body, &bodylen) != 0) { - return (NULL); - } - - if (code == IRPD_GETUSER_OK) { - free_passwd(pw); - if (irp_unmarshall_pw(pw, body) != 0) { - pw = NULL; - } - } else { - pw = NULL; - } - - if (body != NULL) { - memput(body, bodylen); - } - - return (pw); -} - -/*% - * struct passwd * pw_byuid(struct irs_pw *this, uid_t uid) - * - */ - -static struct passwd * -pw_byuid(struct irs_pw *this, uid_t uid) { - struct pvt *pvt = (struct pvt *)this->private; - char *body; - char text[256]; - size_t bodylen; - int code; - struct passwd *pw = &pvt->passwd; - - if (pw->pw_name != NULL && pw->pw_uid == uid) { - return (pw); - } - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return (NULL); - } - - if (irs_irp_send_command(pvt->girpdata, "getpwuid %d", uid) != 0) { - return (NULL); - } - - if (irs_irp_get_full_response(pvt->girpdata, &code, - text, sizeof text, - &body, &bodylen) != 0) { - return (NULL); - } - - if (code == IRPD_GETUSER_OK) { - free_passwd(pw); - if (irp_unmarshall_pw(pw, body) != 0) { - pw = NULL; - } - } else { - pw = NULL; - } - - if (body != NULL) { - memput(body, bodylen); - } - - return (pw); -} - -/*% - * void pw_rewind(struct irs_pw *this) - * - */ - -static void -pw_rewind(struct irs_pw *this) { - struct pvt *pvt = (struct pvt *)this->private; - char text[256]; - int code; - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return; - } - - if (irs_irp_send_command(pvt->girpdata, "setpwent") != 0) { - return; - } - - code = irs_irp_read_response(pvt->girpdata, text, sizeof text); - if (code != IRPD_GETUSER_SETOK) { - if (irp_log_errors) { - syslog(LOG_WARNING, "setpwent failed: %s", text); - } - } - - return; -} - -/*% - * void pw_minimize(struct irs_pw *this) - * - */ - -static void -pw_minimize(struct irs_pw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - irs_irp_disconnect(pvt->girpdata); -} - - -/* Private. */ - -/*% - * Deallocate all the memory irp_unmarshall_pw allocated. - * - */ - -static void -free_passwd(struct passwd *pw) { - if (pw == NULL) - return; - - if (pw->pw_name != NULL) - free(pw->pw_name); - - if (pw->pw_passwd != NULL) - free(pw->pw_passwd); - -#ifdef HAVE_PW_CLASS - if (pw->pw_class != NULL) - free(pw->pw_class); -#endif - - if (pw->pw_gecos != NULL) - free(pw->pw_gecos); - - if (pw->pw_dir != NULL) - free(pw->pw_dir); - - if (pw->pw_shell != NULL) - free(pw->pw_shell); -} - -#endif /* WANT_IRS_PW */ -/*! \file */ diff --git a/src/kits/network/libbind/irs/irp_sv.c b/src/kits/network/libbind/irs/irp_sv.c deleted file mode 100644 index 577e697fe6..0000000000 --- a/src/kits/network/libbind/irs/irp_sv.c +++ /dev/null @@ -1,346 +0,0 @@ -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Portions Copyright (c) 1996,1998 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: irp_sv.c,v 1.3 2005/04/27 04:56:29 sra Exp $"; -#endif /* LIBC_SCCS and not lint */ - -/* extern */ - -#include "port_before.h" - -#include -#include -#include - -#ifdef IRS_LCL_SV_DB -#include -#endif -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "irs_p.h" -#include "lcl_p.h" -#include "irp_p.h" - -#include "port_after.h" - -/* Types */ - -struct pvt { - struct irp_p *girpdata; - int warned; - struct servent service; -}; - -/* Forward */ - -static void sv_close(struct irs_sv*); -static struct servent * sv_next(struct irs_sv *); -static struct servent * sv_byname(struct irs_sv *, const char *, - const char *); -static struct servent * sv_byport(struct irs_sv *, int, const char *); -static void sv_rewind(struct irs_sv *); -static void sv_minimize(struct irs_sv *); - -static void free_service(struct servent *sv); - - - -/* Public */ - -/*% - * struct irs_sv * irs_irp_sv(struct irs_acc *this) - * - */ - -struct irs_sv * -irs_irp_sv(struct irs_acc *this) { - struct irs_sv *sv; - struct pvt *pvt; - - if ((sv = memget(sizeof *sv)) == NULL) { - errno = ENOMEM; - return (NULL); - } - memset(sv, 0x0, sizeof *sv); - - if ((pvt = memget(sizeof *pvt)) == NULL) { - memput(sv, sizeof *sv); - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - pvt->girpdata = this->private; - - sv->private = pvt; - sv->close = sv_close; - sv->next = sv_next; - sv->byname = sv_byname; - sv->byport = sv_byport; - sv->rewind = sv_rewind; - sv->minimize = sv_minimize; - - return (sv); -} - -/* Methods */ - -/*% - * void sv_close(struct irs_sv *this) - * - */ - -static void -sv_close(struct irs_sv *this) { - struct pvt *pvt = (struct pvt *)this->private; - - sv_minimize(this); - - free_service(&pvt->service); - - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -/*% - * Fills the cache if necessary and returns the next item from it. - * - */ - -static struct servent * -sv_next(struct irs_sv *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct servent *sv = &pvt->service; - char *body; - size_t bodylen; - int code; - char text[256]; - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return (NULL); - } - - if (irs_irp_send_command(pvt->girpdata, "getservent") != 0) { - return (NULL); - } - - if (irs_irp_get_full_response(pvt->girpdata, &code, - text, sizeof text, - &body, &bodylen) != 0) { - return (NULL); - } - - if (code == IRPD_GETSERVICE_OK) { - free_service(sv); - if (irp_unmarshall_sv(sv, body) != 0) { - sv = NULL; - } - } else { - sv = NULL; - } - - if (body != NULL) { - memput(body, bodylen); - } - - return (sv); -} - -/*% - * struct servent * sv_byname(struct irs_sv *this, const char *name, - * const char *proto) - * - */ - -static struct servent * -sv_byname(struct irs_sv *this, const char *name, const char *proto) { - struct pvt *pvt = (struct pvt *)this->private; - struct servent *sv = &pvt->service; - char *body; - char text[256]; - size_t bodylen; - int code; - - if (sv->s_name != NULL && - strcmp(name, sv->s_name) == 0 && - strcasecmp(proto, sv->s_proto) == 0) { - return (sv); - } - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return (NULL); - } - - if (irs_irp_send_command(pvt->girpdata, "getservbyname %s %s", - name, proto) != 0) - return (NULL); - - if (irs_irp_get_full_response(pvt->girpdata, &code, - text, sizeof text, - &body, &bodylen) != 0) { - return (NULL); - } - - if (code == IRPD_GETSERVICE_OK) { - free_service(sv); - if (irp_unmarshall_sv(sv, body) != 0) { - sv = NULL; - } - } else { - sv = NULL; - } - - if (body != NULL) { - memput(body, bodylen); - } - - return (sv); -} - -/*% - * struct servent * sv_byport(struct irs_sv *this, int port, - * const char *proto) - * - */ - -static struct servent * -sv_byport(struct irs_sv *this, int port, const char *proto) { - struct pvt *pvt = (struct pvt *)this->private; - struct servent *sv = &pvt->service; - char *body; - size_t bodylen; - char text[256]; - int code; - - if (sv->s_name != NULL && - port == sv->s_port && - strcasecmp(proto, sv->s_proto) == 0) { - return (sv); - } - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return (NULL); - } - - if (irs_irp_send_command(pvt->girpdata, "getservbyport %d %s", - ntohs((short)port), proto) != 0) { - return (NULL); - } - - if (irs_irp_get_full_response(pvt->girpdata, &code, - text, sizeof text, - &body, &bodylen) != 0) { - return (NULL); - } - - if (code == IRPD_GETSERVICE_OK) { - free_service(sv); - if (irp_unmarshall_sv(sv, body) != 0) { - sv = NULL; - } - } else { - sv = NULL; - } - - if (body != NULL) { - memput(body, bodylen); - } - - return (sv); -} - -/*% - * void sv_rewind(struct irs_sv *this) - * - */ - -static void -sv_rewind(struct irs_sv *this) { - struct pvt *pvt = (struct pvt *)this->private; - char text[256]; - int code; - - if (irs_irp_connection_setup(pvt->girpdata, &pvt->warned) != 0) { - return; - } - - if (irs_irp_send_command(pvt->girpdata, "setservent") != 0) { - return; - } - - code = irs_irp_read_response(pvt->girpdata, text, sizeof text); - if (code != IRPD_GETSERVICE_SETOK) { - if (irp_log_errors) { - syslog(LOG_WARNING, "setservent failed: %s", text); - } - } - - return; -} - -/*% - * void sv_minimize(struct irs_sv *this) - * - */ - -static void -sv_minimize(struct irs_sv *this) { - struct pvt *pvt = (struct pvt *)this->private; - - irs_irp_disconnect(pvt->girpdata); -} - - - - - - -static void -free_service(struct servent *sv) { - char **p; - - if (sv == NULL) { - return; - } - - if (sv->s_name != NULL) { - free(sv->s_name); - } - - for (p = sv->s_aliases ; p != NULL && *p != NULL ; p++) { - free(*p); - } - - if (sv->s_proto != NULL) { - free(sv->s_proto); - } -} - - - -/*! \file */ diff --git a/src/kits/network/libbind/irs/irpmarshall.c b/src/kits/network/libbind/irs/irpmarshall.c deleted file mode 100644 index 85ffff1866..0000000000 --- a/src/kits/network/libbind/irs/irpmarshall.c +++ /dev/null @@ -1,2301 +0,0 @@ -/* - * Copyright(c) 1989, 1993, 1995 - * 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: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University 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 REGENTS 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. - */ - -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Portions Copyright (c) 1996 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: irpmarshall.c,v 1.7 2006/03/09 23:57:56 marka Exp $"; -#endif /* LIBC_SCCS and not lint */ - -#if 0 - -Check values are in approrpriate endian order. - -Double check memory allocations on unmarhsalling - -#endif - - -/* Extern */ - -#include "port_before.h" - -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include - -#include "port_after.h" - - -#ifndef HAVE_STRNDUP -static char *strndup(const char *str, size_t len); -#endif - -static char **splitarray(const char *buffer, const char *buffend, char delim); -static int joinarray(char * const * argv, char *buffer, char delim); -static char *getfield(char **res, size_t reslen, char **buffer, char delim); -static size_t joinlength(char * const *argv); -static void free_array(char **argv, size_t entries); - -#define ADDR_T_STR(x) (x == AF_INET ? "AF_INET" :\ - (x == AF_INET6 ? "AF_INET6" : "UNKNOWN")) - -#define MAXPADDRSIZE (sizeof "255.255.255.255" + 1) - -static char COMMA = ','; - -static const char *COMMASTR = ","; -static const char *COLONSTR = ":"; - - - -/* See big comment at bottom of irpmarshall.h for description. */ - - -#ifdef WANT_IRS_PW -/* +++++++++++++++++++++++++ struct passwd +++++++++++++++++++++++++ */ - -/*% - * int irp_marshall_pw(const struct passwd *pw, char **buffer, size_t *len) - * - * notes: \li - * - * See irpmarshall.h - * - * return: \li - * - * 0 on sucess, -1 on failure. - * - */ - -int -irp_marshall_pw(const struct passwd *pw, char **buffer, size_t *len) { - size_t need = 1 ; /*%< for null byte */ - char pwUid[24]; - char pwGid[24]; - char pwChange[24]; - char pwExpire[24]; - const char *pwClass; - const char *fieldsep = COLONSTR; - - if (pw == NULL || len == NULL) { - errno = EINVAL; - return (-1); - } - - sprintf(pwUid, "%ld", (long)pw->pw_uid); - sprintf(pwGid, "%ld", (long)pw->pw_gid); - -#ifdef HAVE_PW_CHANGE - sprintf(pwChange, "%ld", (long)pw->pw_change); -#else - pwChange[0] = '0'; - pwChange[1] = '\0'; -#endif - -#ifdef HAVE_PW_EXPIRE - sprintf(pwExpire, "%ld", (long)pw->pw_expire); -#else - pwExpire[0] = '0'; - pwExpire[1] = '\0'; -#endif - -#ifdef HAVE_PW_CLASS - pwClass = pw->pw_class; -#else - pwClass = ""; -#endif - - need += strlen(pw->pw_name) + 1; /*%< one for fieldsep */ - need += strlen(pw->pw_passwd) + 1; - need += strlen(pwUid) + 1; - need += strlen(pwGid) + 1; - need += strlen(pwClass) + 1; - need += strlen(pwChange) + 1; - need += strlen(pwExpire) + 1; - need += strlen(pw->pw_gecos) + 1; - need += strlen(pw->pw_dir) + 1; - need += strlen(pw->pw_shell) + 1; - - if (buffer == NULL) { - *len = need; - return (0); - } - - if (*buffer != NULL && need > *len) { - errno = EINVAL; - return (-1); - } - - if (*buffer == NULL) { - need += 2; /*%< for CRLF */ - *buffer = memget(need); - if (*buffer == NULL) { - errno = ENOMEM; - return (-1); - } - - *len = need; - } - - strcpy(*buffer, pw->pw_name); strcat(*buffer, fieldsep); - strcat(*buffer, pw->pw_passwd); strcat(*buffer, fieldsep); - strcat(*buffer, pwUid); strcat(*buffer, fieldsep); - strcat(*buffer, pwGid); strcat(*buffer, fieldsep); - strcat(*buffer, pwClass); strcat(*buffer, fieldsep); - strcat(*buffer, pwChange); strcat(*buffer, fieldsep); - strcat(*buffer, pwExpire); strcat(*buffer, fieldsep); - strcat(*buffer, pw->pw_gecos); strcat(*buffer, fieldsep); - strcat(*buffer, pw->pw_dir); strcat(*buffer, fieldsep); - strcat(*buffer, pw->pw_shell); strcat(*buffer, fieldsep); - - return (0); -} - -/*% - * int irp_unmarshall_pw(struct passwd *pw, char *buffer) - * - * notes: \li - * - * See irpmarshall.h - * - * return: \li - * - * 0 on success, -1 on failure - * - */ - -int -irp_unmarshall_pw(struct passwd *pw, char *buffer) { - char *name, *pass, *class, *gecos, *dir, *shell; - uid_t pwuid; - gid_t pwgid; - time_t pwchange; - time_t pwexpire; - char *p; - long t; - char tmpbuf[24]; - char *tb = &tmpbuf[0]; - char fieldsep = ':'; - int myerrno = EINVAL; - - name = pass = class = gecos = dir = shell = NULL; - p = buffer; - - /* pw_name field */ - name = NULL; - if (getfield(&name, 0, &p, fieldsep) == NULL || strlen(name) == 0) { - goto error; - } - - /* pw_passwd field */ - pass = NULL; - if (getfield(&pass, 0, &p, fieldsep) == NULL) { /*%< field can be empty */ - goto error; - } - - - /* pw_uid field */ - tb = tmpbuf; - if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL || - strlen(tb) == 0) { - goto error; - } - t = strtol(tmpbuf, &tb, 10); - if (*tb) { - goto error; /*%< junk in value */ - } - pwuid = (uid_t)t; - if ((long) pwuid != t) { /*%< value must have been too big. */ - goto error; - } - - - - /* pw_gid field */ - tb = tmpbuf; - if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL || - strlen(tb) == 0) { - goto error; - } - t = strtol(tmpbuf, &tb, 10); - if (*tb) { - goto error; /*%< junk in value */ - } - pwgid = (gid_t)t; - if ((long)pwgid != t) { /*%< value must have been too big. */ - goto error; - } - - - - /* pw_class field */ - class = NULL; - if (getfield(&class, 0, &p, fieldsep) == NULL) { - goto error; - } - - - - /* pw_change field */ - tb = tmpbuf; - if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL || - strlen(tb) == 0) { - goto error; - } - t = strtol(tmpbuf, &tb, 10); - if (*tb) { - goto error; /*%< junk in value */ - } - pwchange = (time_t)t; - if ((long)pwchange != t) { /*%< value must have been too big. */ - goto error; - } - - - - /* pw_expire field */ - tb = tmpbuf; - if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL || - strlen(tb) == 0) { - goto error; - } - t = strtol(tmpbuf, &tb, 10); - if (*tb) { - goto error; /*%< junk in value */ - } - pwexpire = (time_t)t; - if ((long) pwexpire != t) { /*%< value must have been too big. */ - goto error; - } - - - - /* pw_gecos field */ - gecos = NULL; - if (getfield(&gecos, 0, &p, fieldsep) == NULL) { - goto error; - } - - - - /* pw_dir field */ - dir = NULL; - if (getfield(&dir, 0, &p, fieldsep) == NULL) { - goto error; - } - - - - /* pw_shell field */ - shell = NULL; - if (getfield(&shell, 0, &p, fieldsep) == NULL) { - goto error; - } - - - - pw->pw_name = name; - pw->pw_passwd = pass; - pw->pw_uid = pwuid; - pw->pw_gid = pwgid; - pw->pw_gecos = gecos; - pw->pw_dir = dir; - pw->pw_shell = shell; - -#ifdef HAVE_PW_CHANGE - pw->pw_change = pwchange; -#endif -#ifdef HAVE_PW_CLASS - pw->pw_class = class; -#endif -#ifdef HAVE_PW_EXPIRE - pw->pw_expire = pwexpire; -#endif - - return (0); - - error: - errno = myerrno; - - if (name != NULL) free(name); - if (pass != NULL) free(pass); - if (gecos != NULL) free(gecos); - if (dir != NULL) free(dir); - if (shell != NULL) free(shell); - - return (-1); -} - -/* ------------------------- struct passwd ------------------------- */ -#endif /* WANT_IRS_PW */ -/* +++++++++++++++++++++++++ struct group +++++++++++++++++++++++++ */ - -/*% - * int irp_marshall_gr(const struct group *gr, char **buffer, size_t *len) - * - * notes: \li - * - * See irpmarshall.h. - * - * return: \li - * - * 0 on success, -1 on failure - */ - -int -irp_marshall_gr(const struct group *gr, char **buffer, size_t *len) { - size_t need = 1; /*%< for null byte */ - char grGid[24]; - const char *fieldsep = COLONSTR; - - if (gr == NULL || len == NULL) { - errno = EINVAL; - return (-1); - } - - sprintf(grGid, "%ld", (long)gr->gr_gid); - - need += strlen(gr->gr_name) + 1; -#ifndef MISSING_GR_PASSWD - need += strlen(gr->gr_passwd) + 1; -#else - need++; -#endif - need += strlen(grGid) + 1; - need += joinlength(gr->gr_mem) + 1; - - if (buffer == NULL) { - *len = need; - return (0); - } - - if (*buffer != NULL && need > *len) { - errno = EINVAL; - return (-1); - } - - if (*buffer == NULL) { - need += 2; /*%< for CRLF */ - *buffer = memget(need); - if (*buffer == NULL) { - errno = ENOMEM; - return (-1); - } - - *len = need; - } - - strcpy(*buffer, gr->gr_name); strcat(*buffer, fieldsep); -#ifndef MISSING_GR_PASSWD - strcat(*buffer, gr->gr_passwd); -#endif - strcat(*buffer, fieldsep); - strcat(*buffer, grGid); strcat(*buffer, fieldsep); - joinarray(gr->gr_mem, *buffer, COMMA) ; strcat(*buffer, fieldsep); - - return (0); -} - -/*% - * int irp_unmarshall_gr(struct group *gr, char *buffer) - * - * notes: \li - * - * See irpmarshall.h - * - * return: \li - * - * 0 on success and -1 on failure. - * - */ - -int -irp_unmarshall_gr(struct group *gr, char *buffer) { - char *p, *q; - gid_t grgid; - long t; - char *name = NULL; - char *pass = NULL; - char **members = NULL; - char tmpbuf[24]; - char *tb; - char fieldsep = ':'; - int myerrno = EINVAL; - - if (gr == NULL || buffer == NULL) { - errno = EINVAL; - return (-1); - } - - p = buffer; - - /* gr_name field */ - name = NULL; - if (getfield(&name, 0, &p, fieldsep) == NULL || strlen(name) == 0U) { - goto error; - } - - - /* gr_passwd field */ - pass = NULL; - if (getfield(&pass, 0, &p, fieldsep) == NULL) { - goto error; - } - - - /* gr_gid field */ - tb = tmpbuf; - if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL || - strlen(tb) == 0U) { - goto error; - } - t = strtol(tmpbuf, &tb, 10); - if (*tb) { - goto error; /*%< junk in value */ - } - grgid = (gid_t)t; - if ((long) grgid != t) { /*%< value must have been too big. */ - goto error; - } - - - /* gr_mem field. Member names are separated by commas */ - q = strchr(p, fieldsep); - if (q == NULL) { - goto error; - } - members = splitarray(p, q, COMMA); - if (members == NULL) { - myerrno = errno; - goto error; - } - p = q + 1; - - - gr->gr_name = name; -#ifndef MISSING_GR_PASSWD - gr->gr_passwd = pass; -#endif - gr->gr_gid = grgid; - gr->gr_mem = members; - - return (0); - - error: - errno = myerrno; - - if (name != NULL) free(name); - if (pass != NULL) free(pass); - - return (-1); -} - - -/* ------------------------- struct group ------------------------- */ - - - - -/* +++++++++++++++++++++++++ struct servent +++++++++++++++++++++++++ */ - -/*% - * int irp_marshall_sv(const struct servent *sv, char **buffer, size_t *len) - * - * notes: \li - * - * See irpmarshall.h - * - * return: \li - * - * 0 on success, -1 on failure. - * - */ - -int -irp_marshall_sv(const struct servent *sv, char **buffer, size_t *len) { - size_t need = 1; /*%< for null byte */ - char svPort[24]; - const char *fieldsep = COLONSTR; - short realport; - - if (sv == NULL || len == NULL) { - errno = EINVAL; - return (-1); - } - - /* the int s_port field is actually a short in network order. We - want host order to make the marshalled data look correct */ - realport = ntohs((short)sv->s_port); - sprintf(svPort, "%d", realport); - - need += strlen(sv->s_name) + 1; - need += joinlength(sv->s_aliases) + 1; - need += strlen(svPort) + 1; - need += strlen(sv->s_proto) + 1; - - if (buffer == NULL) { - *len = need; - return (0); - } - - if (*buffer != NULL && need > *len) { - errno = EINVAL; - return (-1); - } - - if (*buffer == NULL) { - need += 2; /*%< for CRLF */ - *buffer = memget(need); - if (*buffer == NULL) { - errno = ENOMEM; - return (-1); - } - - *len = need; - } - - strcpy(*buffer, sv->s_name); strcat(*buffer, fieldsep); - joinarray(sv->s_aliases, *buffer, COMMA); strcat(*buffer, fieldsep); - strcat(*buffer, svPort); strcat(*buffer, fieldsep); - strcat(*buffer, sv->s_proto); strcat(*buffer, fieldsep); - - return (0); -} - -/*% - * int irp_unmarshall_sv(struct servent *sv, char *buffer) - * - * notes: \li - * - * See irpmarshall.h - * - * return: \li - * - * 0 on success, -1 on failure. - * - */ - -int -irp_unmarshall_sv(struct servent *sv, char *buffer) { - char *p, *q; - short svport; - long t; - char *name = NULL; - char *proto = NULL; - char **aliases = NULL; - char tmpbuf[24]; - char *tb; - char fieldsep = ':'; - int myerrno = EINVAL; - - if (sv == NULL || buffer == NULL) - return (-1); - - p = buffer; - - - /* s_name field */ - name = NULL; - if (getfield(&name, 0, &p, fieldsep) == NULL || strlen(name) == 0U) { - goto error; - } - - - /* s_aliases field */ - q = strchr(p, fieldsep); - if (q == NULL) { - goto error; - } - aliases = splitarray(p, q, COMMA); - if (aliases == NULL) { - myerrno = errno; - goto error; - } - p = q + 1; - - - /* s_port field */ - tb = tmpbuf; - if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL || - strlen(tb) == 0U) { - goto error; - } - t = strtol(tmpbuf, &tb, 10); - if (*tb) { - goto error; /*%< junk in value */ - } - svport = (short)t; - if ((long) svport != t) { /*%< value must have been too big. */ - goto error; - } - svport = htons(svport); - - /* s_proto field */ - proto = NULL; - if (getfield(&proto, 0, &p, fieldsep) == NULL) { - goto error; - } - - sv->s_name = name; - sv->s_aliases = aliases; - sv->s_port = svport; - sv->s_proto = proto; - - return (0); - - error: - errno = myerrno; - - if (name != NULL) free(name); - if (proto != NULL) free(proto); - free_array(aliases, 0); - - return (-1); -} - - -/* ------------------------- struct servent ------------------------- */ - -/* +++++++++++++++++++++++++ struct protoent +++++++++++++++++++++++++ */ - -/*% - * int irp_marshall_pr(struct protoent *pr, char **buffer, size_t *len) - * - * notes: \li - * - * See irpmarshall.h - * - * return: \li - * - * 0 on success and -1 on failure. - * - */ - -int -irp_marshall_pr(struct protoent *pr, char **buffer, size_t *len) { - size_t need = 1; /*%< for null byte */ - char prProto[24]; - const char *fieldsep = COLONSTR; - - if (pr == NULL || len == NULL) { - errno = EINVAL; - return (-1); - } - - sprintf(prProto, "%d", (int)pr->p_proto); - - need += strlen(pr->p_name) + 1; - need += joinlength(pr->p_aliases) + 1; - need += strlen(prProto) + 1; - - if (buffer == NULL) { - *len = need; - return (0); - } - - if (*buffer != NULL && need > *len) { - errno = EINVAL; - return (-1); - } - - if (*buffer == NULL) { - need += 2; /*%< for CRLF */ - *buffer = memget(need); - if (*buffer == NULL) { - errno = ENOMEM; - return (-1); - } - - *len = need; - } - - strcpy(*buffer, pr->p_name); strcat(*buffer, fieldsep); - joinarray(pr->p_aliases, *buffer, COMMA); strcat(*buffer, fieldsep); - strcat(*buffer, prProto); strcat(*buffer, fieldsep); - - return (0); - -} - -/*% - * int irp_unmarshall_pr(struct protoent *pr, char *buffer) - * - * notes: \li - * - * See irpmarshall.h - * - * return: \li - * - * 0 on success, -1 on failure - * - */ - -int irp_unmarshall_pr(struct protoent *pr, char *buffer) { - char *p, *q; - int prproto; - long t; - char *name = NULL; - char **aliases = NULL; - char tmpbuf[24]; - char *tb; - char fieldsep = ':'; - int myerrno = EINVAL; - - if (pr == NULL || buffer == NULL) { - errno = EINVAL; - return (-1); - } - - p = buffer; - - /* p_name field */ - name = NULL; - if (getfield(&name, 0, &p, fieldsep) == NULL || strlen(name) == 0U) { - goto error; - } - - - /* p_aliases field */ - q = strchr(p, fieldsep); - if (q == NULL) { - goto error; - } - aliases = splitarray(p, q, COMMA); - if (aliases == NULL) { - myerrno = errno; - goto error; - } - p = q + 1; - - - /* p_proto field */ - tb = tmpbuf; - if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL || - strlen(tb) == 0U) { - goto error; - } - t = strtol(tmpbuf, &tb, 10); - if (*tb) { - goto error; /*%< junk in value */ - } - prproto = (int)t; - if ((long) prproto != t) { /*%< value must have been too big. */ - goto error; - } - - pr->p_name = name; - pr->p_aliases = aliases; - pr->p_proto = prproto; - - return (0); - - error: - errno = myerrno; - - if (name != NULL) free(name); - free_array(aliases, 0); - - return (-1); -} - -/* ------------------------- struct protoent ------------------------- */ - - - -/* +++++++++++++++++++++++++ struct hostent +++++++++++++++++++++++++ */ - -/*% - * int irp_marshall_ho(struct hostent *ho, char **buffer, size_t *len) - * - * notes: \li - * - * See irpmarshall.h. - * - * return: \li - * - * 0 on success, -1 on failure. - * - */ - -int -irp_marshall_ho(struct hostent *ho, char **buffer, size_t *len) { - size_t need = 1; /*%< for null byte */ - char hoaddrtype[24]; - char holength[24]; - char **av; - char *p; - int addrlen; - int malloced = 0; - size_t remlen; - const char *fieldsep = "@"; - - if (ho == NULL || len == NULL) { - errno = EINVAL; - return (-1); - } - - switch(ho->h_addrtype) { - case AF_INET: - strcpy(hoaddrtype, "AF_INET"); - break; - - case AF_INET6: - strcpy(hoaddrtype, "AF_INET6"); - break; - - default: - errno = EINVAL; - return (-1); - } - - sprintf(holength, "%d", ho->h_length); - - need += strlen(ho->h_name) + 1; - need += joinlength(ho->h_aliases) + 1; - need += strlen(hoaddrtype) + 1; - need += strlen(holength) + 1; - - /* we determine an upper bound on the string length needed, not an - exact length. */ - addrlen = (ho->h_addrtype == AF_INET ? 16 : 46) ; /*%< XX other AF's?? */ - for (av = ho->h_addr_list; av != NULL && *av != NULL ; av++) - need += addrlen; - - if (buffer == NULL) { - *len = need; - return (0); - } - - if (*buffer != NULL && need > *len) { - errno = EINVAL; - return (-1); - } - - if (*buffer == NULL) { - need += 2; /*%< for CRLF */ - *buffer = memget(need); - if (*buffer == NULL) { - errno = ENOMEM; - return (-1); - } - - *len = need; - malloced = 1; - } - - strcpy(*buffer, ho->h_name); strcat(*buffer, fieldsep); - joinarray(ho->h_aliases, *buffer, COMMA); strcat(*buffer, fieldsep); - strcat(*buffer, hoaddrtype); strcat(*buffer, fieldsep); - strcat(*buffer, holength); strcat(*buffer, fieldsep); - - p = *buffer + strlen(*buffer); - remlen = need - strlen(*buffer); - for (av = ho->h_addr_list ; av != NULL && *av != NULL ; av++) { - if (inet_ntop(ho->h_addrtype, *av, p, remlen) == NULL) { - goto error; - } - if (*(av + 1) != NULL) - strcat(p, COMMASTR); - remlen -= strlen(p); - p += strlen(p); - } - strcat(*buffer, fieldsep); - - return (0); - - error: - if (malloced) { - memput(*buffer, need); - } - - return (-1); -} - -/*% - * int irp_unmarshall_ho(struct hostent *ho, char *buffer) - * - * notes: \li - * - * See irpmarshall.h. - * - * return: \li - * - * 0 on success, -1 on failure. - * - */ - -int -irp_unmarshall_ho(struct hostent *ho, char *buffer) { - char *p, *q, *r; - int hoaddrtype; - int holength; - long t; - char *name; - char **aliases = NULL; - char **hohaddrlist = NULL; - size_t hoaddrsize; - char tmpbuf[24]; - char *tb; - char **alist; - int addrcount; - char fieldsep = '@'; - int myerrno = EINVAL; - - if (ho == NULL || buffer == NULL) { - errno = EINVAL; - return (-1); - } - - p = buffer; - - /* h_name field */ - name = NULL; - if (getfield(&name, 0, &p, fieldsep) == NULL || strlen(name) == 0U) { - goto error; - } - - - /* h_aliases field */ - q = strchr(p, fieldsep); - if (q == NULL) { - goto error; - } - aliases = splitarray(p, q, COMMA); - if (aliases == NULL) { - myerrno = errno; - goto error; - } - p = q + 1; - - - /* h_addrtype field */ - tb = tmpbuf; - if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL || - strlen(tb) == 0U) { - goto error; - } - if (strcmp(tmpbuf, "AF_INET") == 0) - hoaddrtype = AF_INET; - else if (strcmp(tmpbuf, "AF_INET6") == 0) - hoaddrtype = AF_INET6; - else - goto error; - - - /* h_length field */ - tb = tmpbuf; - if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL || - strlen(tb) == 0U) { - goto error; - } - t = strtol(tmpbuf, &tb, 10); - if (*tb) { - goto error; /*%< junk in value */ - } - holength = (int)t; - if ((long) holength != t) { /*%< value must have been too big. */ - goto error; - } - - - /* h_addr_list field */ - q = strchr(p, fieldsep); - if (q == NULL) - goto error; - - /* count how many addresss are in there */ - if (q > p + 1) { - for (addrcount = 1, r = p ; r != q ; r++) { - if (*r == COMMA) - addrcount++; - } - } else { - addrcount = 0; - } - - hoaddrsize = (addrcount + 1) * sizeof (char *); - hohaddrlist = malloc(hoaddrsize); - if (hohaddrlist == NULL) { - myerrno = ENOMEM; - goto error; - } - - memset(hohaddrlist, 0x0, hoaddrsize); - - alist = hohaddrlist; - for (t = 0, r = p ; r != q ; p = r + 1, t++) { - char saved; - while (r != q && *r != COMMA) r++; - saved = *r; - *r = 0x0; - - alist[t] = malloc(hoaddrtype == AF_INET ? 4 : 16); - if (alist[t] == NULL) { - myerrno = ENOMEM; - goto error; - } - - if (inet_pton(hoaddrtype, p, alist[t]) == -1) - goto error; - *r = saved; - } - alist[t] = NULL; - - ho->h_name = name; - ho->h_aliases = aliases; - ho->h_addrtype = hoaddrtype; - ho->h_length = holength; - ho->h_addr_list = hohaddrlist; - - return (0); - - error: - errno = myerrno; - - if (name != NULL) free(name); - free_array(hohaddrlist, 0); - free_array(aliases, 0); - - return (-1); -} - -/* ------------------------- struct hostent------------------------- */ - - - -/* +++++++++++++++++++++++++ struct netgrp +++++++++++++++++++++++++ */ - -/*% - * int irp_marshall_ng(const char *host, const char *user, - * const char *domain, char *buffer, size_t *len) - * - * notes: \li - * - * See note for irp_marshall_ng_start - * - * return: \li - * - * 0 on success, 0 on failure. - * - */ - -int -irp_marshall_ng(const char *host, const char *user, const char *domain, - char **buffer, size_t *len) { - size_t need = 1; /*%< for nul byte */ - const char *fieldsep = ","; - - if (len == NULL) { - errno = EINVAL; - return (-1); - } - - need += 4; /*%< two parens and two commas */ - need += (host == NULL ? 0 : strlen(host)); - need += (user == NULL ? 0 : strlen(user)); - need += (domain == NULL ? 0 : strlen(domain)); - - if (buffer == NULL) { - *len = need; - return (0); - } else if (*buffer != NULL && need > *len) { - errno = EINVAL; - return (-1); - } - - if (*buffer == NULL) { - need += 2; /*%< for CRLF */ - *buffer = memget(need); - if (*buffer == NULL) { - errno = ENOMEM; - return (-1); - } - - *len = need; - } - - (*buffer)[0] = '('; - (*buffer)[1] = '\0'; - - if (host != NULL) - strcat(*buffer, host); - strcat(*buffer, fieldsep); - - if (user != NULL) - strcat(*buffer, user); - strcat(*buffer, fieldsep); - - if (domain != NULL) - strcat(*buffer, domain); - strcat(*buffer, ")"); - - return (0); -} - - - -/* ---------- */ - -/*% - * int irp_unmarshall_ng(const char **host, const char **user, - * const char **domain, char *buffer) - * - * notes: \li - * - * Unpacks the BUFFER into 3 character arrays it allocates and assigns - * to *HOST, *USER and *DOMAIN. If any field of the value is empty, - * then the corresponding paramater value will be set to NULL. - * - * return: \li - * - * 0 on success and -1 on failure. - */ - -int -irp_unmarshall_ng(const char **hostp, const char **userp, const char **domainp, - char *buffer) -{ - char *p, *q; - char fieldsep = ','; - int myerrno = EINVAL; - char *host, *user, *domain; - - if (userp == NULL || hostp == NULL || - domainp == NULL || buffer == NULL) { - errno = EINVAL; - return (-1); - } - - host = user = domain = NULL; - - p = buffer; - while (isspace((unsigned char)*p)) { - p++; - } - if (*p != '(') { - goto error; - } - - q = p + 1; - while (*q && *q != fieldsep) - q++; - if (!*q) { - goto error; - } else if (q > p + 1) { - host = strndup(p, q - p); - } - - p = q + 1; - if (!*p) { - goto error; - } else if (*p != fieldsep) { - q = p + 1; - while (*q && *q != fieldsep) - q++; - if (!*q) { - goto error; - } - user = strndup(p, q - p); - } else { - p++; - } - - if (!*p) { - goto error; - } else if (*p != ')') { - q = p + 1; - while (*q && *q != ')') - q++; - if (!*q) { - goto error; - } - domain = strndup(p, q - p); - } - *hostp = host; - *userp = user; - *domainp = domain; - - return (0); - - error: - errno = myerrno; - - if (host != NULL) free(host); - if (user != NULL) free(user); - - return (-1); -} - -/* ------------------------- struct netgrp ------------------------- */ - - - - -/* +++++++++++++++++++++++++ struct nwent +++++++++++++++++++++++++ */ - -/*% - * int irp_marshall_nw(struct nwent *ne, char **buffer, size_t *len) - * - * notes: \li - * - * See at top. - * - * return: \li - * - * 0 on success and -1 on failure. - * - */ - -int -irp_marshall_nw(struct nwent *ne, char **buffer, size_t *len) { - size_t need = 1; /*%< for null byte */ - char nAddrType[24]; - char nNet[MAXPADDRSIZE]; - const char *fieldsep = COLONSTR; - - if (ne == NULL || len == NULL) { - return (-1); - } - - strcpy(nAddrType, ADDR_T_STR(ne->n_addrtype)); - - if (inet_net_ntop(ne->n_addrtype, ne->n_addr, ne->n_length, - nNet, sizeof nNet) == NULL) { - return (-1); - } - - - need += strlen(ne->n_name) + 1; - need += joinlength(ne->n_aliases) + 1; - need += strlen(nAddrType) + 1; - need += strlen(nNet) + 1; - - if (buffer == NULL) { - *len = need; - return (0); - } - - if (*buffer != NULL && need > *len) { - errno = EINVAL; - return (-1); - } - - if (*buffer == NULL) { - need += 2; /*%< for CRLF */ - *buffer = memget(need); - if (*buffer == NULL) { - errno = ENOMEM; - return (-1); - } - - *len = need; - } - - strcpy(*buffer, ne->n_name); strcat(*buffer, fieldsep); - joinarray(ne->n_aliases, *buffer, COMMA) ; strcat(*buffer, fieldsep); - strcat(*buffer, nAddrType); strcat(*buffer, fieldsep); - strcat(*buffer, nNet); strcat(*buffer, fieldsep); - - return (0); -} - -/*% - * int irp_unmarshall_nw(struct nwent *ne, char *buffer) - * - * notes: \li - * - * See note up top. - * - * return: \li - * - * 0 on success and -1 on failure. - * - */ - -int -irp_unmarshall_nw(struct nwent *ne, char *buffer) { - char *p, *q; - int naddrtype; - long nnet; - int bits; - char *name = NULL; - char **aliases = NULL; - char tmpbuf[24]; - char *tb; - char fieldsep = ':'; - int myerrno = EINVAL; - - if (ne == NULL || buffer == NULL) { - goto error; - } - - p = buffer; - - /* n_name field */ - name = NULL; - if (getfield(&name, 0, &p, fieldsep) == NULL || strlen(name) == 0U) { - goto error; - } - - - /* n_aliases field. Aliases are separated by commas */ - q = strchr(p, fieldsep); - if (q == NULL) { - goto error; - } - aliases = splitarray(p, q, COMMA); - if (aliases == NULL) { - myerrno = errno; - goto error; - } - p = q + 1; - - - /* h_addrtype field */ - tb = tmpbuf; - if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL || - strlen(tb) == 0U) { - goto error; - } - if (strcmp(tmpbuf, "AF_INET") == 0) - naddrtype = AF_INET; - else if (strcmp(tmpbuf, "AF_INET6") == 0) - naddrtype = AF_INET6; - else - goto error; - - - /* n_net field */ - tb = tmpbuf; - if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL || - strlen(tb) == 0U) { - goto error; - } - nnet = 0; - bits = inet_net_pton(naddrtype, tmpbuf, &nnet, sizeof nnet); - if (bits < 0) { - goto error; - } - - /* nnet = ntohl(nnet); */ /* keep in network order for nwent */ - - ne->n_name = name; - ne->n_aliases = aliases; - ne->n_addrtype = naddrtype; - ne->n_length = bits; - ne->n_addr = malloc(sizeof nnet); - if (ne->n_addr == NULL) { - goto error; - } - - memcpy(ne->n_addr, &nnet, sizeof nnet); - - return (0); - - error: - errno = myerrno; - - if (name != NULL) free(name); - free_array(aliases, 0); - - return (-1); -} - - -/* ------------------------- struct nwent ------------------------- */ - - -/* +++++++++++++++++++++++++ struct netent +++++++++++++++++++++++++ */ - -/*% - * int irp_marshall_ne(struct netent *ne, char **buffer, size_t *len) - * - * notes: \li - * - * See at top. - * - * return: \li - * - * 0 on success and -1 on failure. - * - */ - -int -irp_marshall_ne(struct netent *ne, char **buffer, size_t *len) { - size_t need = 1; /*%< for null byte */ - char nAddrType[24]; - char nNet[MAXPADDRSIZE]; - const char *fieldsep = COLONSTR; - long nval; - - if (ne == NULL || len == NULL) { - return (-1); - } - - strcpy(nAddrType, ADDR_T_STR(ne->n_addrtype)); - - nval = htonl(ne->n_net); - if (inet_ntop(ne->n_addrtype, &nval, nNet, sizeof nNet) == NULL) { - return (-1); - } - - need += strlen(ne->n_name) + 1; - need += joinlength(ne->n_aliases) + 1; - need += strlen(nAddrType) + 1; - need += strlen(nNet) + 1; - - if (buffer == NULL) { - *len = need; - return (0); - } - - if (*buffer != NULL && need > *len) { - errno = EINVAL; - return (-1); - } - - if (*buffer == NULL) { - need += 2; /*%< for CRLF */ - *buffer = memget(need); - if (*buffer == NULL) { - errno = ENOMEM; - return (-1); - } - - *len = need; - } - - strcpy(*buffer, ne->n_name); strcat(*buffer, fieldsep); - joinarray(ne->n_aliases, *buffer, COMMA) ; strcat(*buffer, fieldsep); - strcat(*buffer, nAddrType); strcat(*buffer, fieldsep); - strcat(*buffer, nNet); strcat(*buffer, fieldsep); - - return (0); -} - -/*% - * int irp_unmarshall_ne(struct netent *ne, char *buffer) - * - * notes: \li - * - * See note up top. - * - * return: \li - * - * 0 on success and -1 on failure. - * - */ - -int -irp_unmarshall_ne(struct netent *ne, char *buffer) { - char *p, *q; - int naddrtype; - long nnet; - int bits; - char *name = NULL; - char **aliases = NULL; - char tmpbuf[24]; - char *tb; - char fieldsep = ':'; - int myerrno = EINVAL; - - if (ne == NULL || buffer == NULL) { - goto error; - } - - p = buffer; - - /* n_name field */ - name = NULL; - if (getfield(&name, 0, &p, fieldsep) == NULL || strlen(name) == 0U) { - goto error; - } - - - /* n_aliases field. Aliases are separated by commas */ - q = strchr(p, fieldsep); - if (q == NULL) { - goto error; - } - aliases = splitarray(p, q, COMMA); - if (aliases == NULL) { - myerrno = errno; - goto error; - } - p = q + 1; - - - /* h_addrtype field */ - tb = tmpbuf; - if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL || - strlen(tb) == 0U) { - goto error; - } - if (strcmp(tmpbuf, "AF_INET") == 0) - naddrtype = AF_INET; - else if (strcmp(tmpbuf, "AF_INET6") == 0) - naddrtype = AF_INET6; - else - goto error; - - - /* n_net field */ - tb = tmpbuf; - if (getfield(&tb, sizeof tmpbuf, &p, fieldsep) == NULL || - strlen(tb) == 0U) { - goto error; - } - bits = inet_net_pton(naddrtype, tmpbuf, &nnet, sizeof nnet); - if (bits < 0) { - goto error; - } - nnet = ntohl(nnet); - - ne->n_name = name; - ne->n_aliases = aliases; - ne->n_addrtype = naddrtype; - ne->n_net = nnet; - - return (0); - - error: - errno = myerrno; - - if (name != NULL) free(name); - free_array(aliases, 0); - - return (-1); -} - - -/* ------------------------- struct netent ------------------------- */ - - -/* =========================================================================== */ - -/*% - * static char ** splitarray(const char *buffer, const char *buffend, char delim) - * - * notes: \li - * - * Split a delim separated astring. Not allowed - * to have two delims next to each other. BUFFER points to begining of - * string, BUFFEND points to one past the end of the string - * (i.e. points at where the null byte would be if null - * terminated). - * - * return: \li - * - * Returns a malloced array of pointers, each pointer pointing to a - * malloced string. If BUFEER is an empty string, then return values is - * array of 1 pointer that is NULL. Returns NULL on failure. - * - */ - -static char ** -splitarray(const char *buffer, const char *buffend, char delim) { - const char *p, *q; - int count = 0; - char **arr = NULL; - char **aptr; - - if (buffend < buffer) - return (NULL); - else if (buffend > buffer && *buffer == delim) - return (NULL); - else if (buffend > buffer && *(buffend - 1) == delim) - return (NULL); - - /* count the number of field and make sure none are empty */ - if (buffend > buffer + 1) { - for (count = 1, q = buffer ; q != buffend ; q++) { - if (*q == delim) { - if (q > buffer && (*(q - 1) == delim)) { - errno = EINVAL; - return (NULL); - } - count++; - } - } - } - - if (count > 0) { - count++ ; /*%< for NULL at end */ - aptr = arr = malloc(count * sizeof (char *)); - if (aptr == NULL) { - errno = ENOMEM; - return (NULL); - } - - memset(arr, 0x0, count * sizeof (char *)); - for (p = buffer ; p < buffend ; p++) { - for (q = p ; *q != delim && q != buffend ; q++) - /* nothing */; - *aptr = strndup(p, q - p); - - p = q; - aptr++; - } - *aptr = NULL; - } else { - arr = malloc(sizeof (char *)); - if (arr == NULL) { - errno = ENOMEM; - return (NULL); - } - - *arr = NULL; - } - - return (arr); -} - -/*% - * static size_t joinlength(char * const *argv) - * - * return: \li - * - * the number of bytes in all the arrays pointed at - * by argv, including their null bytes(which will usually be turned - * into commas). - * - * - */ - -static size_t -joinlength(char * const *argv) { - int len = 0; - - while (argv && *argv) { - len += (strlen(*argv) + 1); - argv++; - } - - return (len); -} - -/*% - * int joinarray(char * const *argv, char *buffer, char delim) - * - * notes: \li - * - * Copy all the ARGV strings into the end of BUFFER - * separating them with DELIM. BUFFER is assumed to have - * enough space to hold everything and to be already null-terminated. - * - * return: \li - * - * 0 unless argv or buffer is NULL. - * - * - */ - -static int -joinarray(char * const *argv, char *buffer, char delim) { - char * const *p; - char sep[2]; - - if (argv == NULL || buffer == NULL) { - errno = EINVAL; - return (-1); - } - - sep[0] = delim; - sep[1] = 0x0; - - for (p = argv ; *p != NULL ; p++) { - strcat(buffer, *p); - if (*(p + 1) != NULL) { - strcat(buffer, sep); - } - } - - return (0); -} - -/*% - * static char * getfield(char **res, size_t reslen, char **ptr, char delim) - * - * notes: \li - * - * Stores in *RES, which is a buffer of length RESLEN, a - * copy of the bytes from *PTR up to and including the first - * instance of DELIM. If *RES is NULL, then it will be - * assigned a malloced buffer to hold the copy. *PTR is - * modified to point at the found delimiter. - * - * return: \li - * - * If there was no delimiter, then NULL is returned, - * otherewise *RES is returned. - * - */ - -static char * -getfield(char **res, size_t reslen, char **ptr, char delim) { - char *q; - - if (res == NULL || ptr == NULL || *ptr == NULL) { - errno = EINVAL; - return (NULL); - } - - q = strchr(*ptr, delim); - - if (q == NULL) { - errno = EINVAL; - return (NULL); - } else { - if (*res == NULL) { - *res = strndup(*ptr, q - *ptr); - } else { - if ((size_t)(q - *ptr + 1) > reslen) { /*%< to big for res */ - errno = EINVAL; - return (NULL); - } else { - strncpy(*res, *ptr, q - *ptr); - (*res)[q - *ptr] = 0x0; - } - } - *ptr = q + 1; - } - - return (*res); -} - - - - - -#ifndef HAVE_STRNDUP -/* - * static char * strndup(const char *str, size_t len) - * - * notes: \li - * - * like strdup, except do len bytes instead of the whole string. Always - * null-terminates. - * - * return: \li - * - * The newly malloced string. - * - */ - -static char * -strndup(const char *str, size_t len) { - char *p = malloc(len + 1); - - if (p == NULL) - return (NULL); - strncpy(p, str, len); - p[len] = 0x0; - return (p); -} -#endif - -#if WANT_MAIN - -/*% - * static int strcmp_nws(const char *a, const char *b) - * - * notes: \li - * - * do a strcmp, except uneven lengths of whitespace compare the same - * - * return: \li - * - */ - -static int -strcmp_nws(const char *a, const char *b) { - while (*a && *b) { - if (isspace(*a) && isspace(*b)) { - do { - a++; - } while (isspace(*a)); - do { - b++; - } while (isspace(*b)); - } - if (*a < *b) - return (-1); - else if (*a > *b) - return (1); - - a++; - b++;; - } - - if (*a == *b) - return (0); - else if (*a > *b) - return (1); - else - return (-1); -} - -#endif - -/*% - * static void free_array(char **argv, size_t entries) - * - * notes: \li - * - * Free argv and each of the pointers inside it. The end of - * the array is when a NULL pointer is found inside. If - * entries is > 0, then NULL pointers inside the array do - * not indicate the end of the array. - * - */ - -static void -free_array(char **argv, size_t entries) { - char **p = argv; - int useEntries = (entries > 0U); - - if (argv == NULL) - return; - - while ((useEntries && entries > 0U) || *p) { - if (*p) - free(*p); - p++; - if (useEntries) - entries--; - } - free(argv); -} - - - - - -/* ************************************************** */ - -#if WANT_MAIN - -/*% takes an option to indicate what sort of marshalling(read the code) and - an argument. If the argument looks like a marshalled buffer(has a ':' - embedded) then it's unmarshalled and the remarshalled and the new string - is compared to the old one. -*/ - -int -main(int argc, char **argv) { - char buffer[1024]; - char *b = &buffer[0]; - size_t len = sizeof buffer; - char option; - - if (argc < 2 || argv[1][0] != '-') - exit(1); - - option = argv[1][1]; - argv++; - argc--; - - -#if 0 - { - char buff[10]; - char *p = argv[1], *q = &buff[0]; - - while (getfield(&q, sizeof buff, &p, ':') != NULL) { - printf("field: \"%s\"\n", q); - p++; - } - printf("p is now \"%s\"\n", p); - } -#endif - -#if 0 - { - char **x = splitarray(argv[1], argv[1] + strlen(argv[1]), - argv[2][0]); - char **p; - - if (x == NULL) - printf("split failed\n"); - - for (p = x ; p != NULL && *p != NULL ; p++) { - printf("\"%s\"\n", *p); - } - } -#endif - -#if 1 - switch(option) { - case 'n': { - struct nwent ne; - int i; - - if (strchr(argv[1], ':') != NULL) { - if (irp_unmarshall_nw(&ne, argv[1]) != 0) { - printf("Unmarhsalling failed\n"); - exit(1); - } - - printf("Name: \"%s\"\n", ne.n_name); - printf("Aliases:"); - for (i = 0 ; ne.n_aliases[i] != NULL ; i++) - printf("\n\t\"%s\"", ne.n_aliases[i]); - printf("\nAddrtype: %s\n", ADDR_T_STR(ne.n_addrtype)); - inet_net_ntop(ne.n_addrtype, ne.n_addr, ne.n_length, - buffer, sizeof buffer); - printf("Net: \"%s\"\n", buffer); - *((long*)ne.n_addr) = htonl(*((long*)ne.n_addr)); - inet_net_ntop(ne.n_addrtype, ne.n_addr, ne.n_length, - buffer, sizeof buffer); - printf("Corrected Net: \"%s\"\n", buffer); - } else { - struct netent *np1 = getnetbyname(argv[1]); - ne.n_name = np1->n_name; - ne.n_aliases = np1->n_aliases; - ne.n_addrtype = np1->n_addrtype; - ne.n_addr = &np1->n_net; - ne.n_length = (IN_CLASSA(np1->n_net) ? - 8 : - (IN_CLASSB(np1->n_net) ? - 16 : - (IN_CLASSC(np1->n_net) ? - 24 : -1))); - np1->n_net = htonl(np1->n_net); - if (irp_marshall_nw(&ne, &b, &len) != 0) { - printf("Marshalling failed\n"); - } - printf("%s\n", b); - } - break; - } - - - case 'r': { - char **hosts, **users, **domains; - size_t entries; - int i; - char *buff; - size_t size; - char *ngname; - - if (strchr(argv[1], '(') != NULL) { - if (irp_unmarshall_ng(&ngname, &entries, - &hosts, &users, &domains, - argv[1]) != 0) { - printf("unmarshall failed\n"); - exit(1); - } - -#define STRVAL(x) (x == NULL ? "*" : x) - - printf("%s {\n", ngname); - for (i = 0 ; i < entries ; i++) - printf("\t\"%s\" : \"%s\" : \"%s\"\n", - STRVAL(hosts[i]), - STRVAL(users[i]), - STRVAL(domains[i])); - printf("}\n\n\n"); - - - irp_marshall_ng_start(ngname, NULL, &size); - for (i = 0 ; i < entries ; i++) - irp_marshall_ng_next(hosts[i], users[i], - domains[i], NULL, &size); - irp_marshall_ng_end(NULL, &size); - - buff = malloc(size); - - irp_marshall_ng_start(ngname, buff, &size); - for (i = 0 ; i < entries ; i++) { - if (irp_marshall_ng_next(hosts[i], users[i], - domains[i], buff, - &size) != 0) - printf("next marshalling failed.\n"); - } - irp_marshall_ng_end(buff, &size); - - if (strcmp_nws(argv[1], buff) != 0) { - printf("compare failed:\n\t%s\n\t%s\n", - buffer, argv[1]); - } else { - printf("compare ok\n"); - } - } else { - char *h, *u, *d, *buff; - size_t size; - - /* run through two times. First to figure out how - much of a buffer we need. Second to do the - actual marshalling */ - - setnetgrent(argv[1]); - irp_marshall_ng_start(argv[1], NULL, &size); - while (getnetgrent(&h, &u, &d) == 1) - irp_marshall_ng_next(h, u, d, NULL, &size); - irp_marshall_ng_end(NULL, &size); - endnetgrent(argv[1]); - - buff = malloc(size); - - setnetgrent(argv[1]); - if (irp_marshall_ng_start(argv[1], buff, &size) != 0) - printf("Marshalling start failed\n"); - - while (getnetgrent(&h, &u, &d) == 1) { - if (irp_marshall_ng_next(h, u, d, buff, &size) - != 0) { - printf("Marshalling failed\n"); - } - } - - irp_marshall_ng_end(buff, &size); - endnetgrent(); - - printf("success: %s\n", buff); - } - break; - } - - - - case 'h': { - struct hostent he, *hp; - int i; - - - if (strchr(argv[1], '@') != NULL) { - if (irp_unmarshall_ho(&he, argv[1]) != 0) { - printf("unmarshall failed\n"); - exit(1); - } - - printf("Host: \"%s\"\nAliases:", he.h_name); - for (i = 0 ; he.h_aliases[i] != NULL ; i++) - printf("\n\t\t\"%s\"", he.h_aliases[i]); - printf("\nAddr Type: \"%s\"\n", - ADDR_T_STR(he.h_addrtype)); - printf("Length: %d\nAddresses:", he.h_length); - for (i = 0 ; he.h_addr_list[i] != 0 ; i++) { - inet_ntop(he.h_addrtype, he.h_addr_list[i], - buffer, sizeof buffer); - printf("\n\t\"%s\"\n", buffer); - } - printf("\n\n"); - - irp_marshall_ho(&he, &b, &len); - if (strcmp(argv[1], buffer) != 0) { - printf("compare failed:\n\t\"%s\"\n\t\"%s\"\n", - buffer, argv[1]); - } else { - printf("compare ok\n"); - } - } else { - if ((hp = gethostbyname(argv[1])) == NULL) { - perror("gethostbyname"); - printf("\"%s\"\n", argv[1]); - exit(1); - } - - if (irp_marshall_ho(hp, &b, &len) != 0) { - printf("irp_marshall_ho failed\n"); - exit(1); - } - - printf("success: \"%s\"\n", buffer); - } - break; - } - - - case 's': { - struct servent *sv; - struct servent sv1; - - if (strchr(argv[1], ':') != NULL) { - sv = &sv1; - memset(sv, 0xef, sizeof (struct servent)); - if (irp_unmarshall_sv(sv, argv[1]) != 0) { - printf("unmarshall failed\n"); - - } - - irp_marshall_sv(sv, &b, &len); - if (strcmp(argv[1], buffer) != 0) { - printf("compare failed:\n\t\"%s\"\n\t\"%s\"\n", - buffer, argv[1]); - } else { - printf("compare ok\n"); - } - } else { - if ((sv = getservbyname(argv[1], argv[2])) == NULL) { - perror("getservent"); - exit(1); - } - - if (irp_marshall_sv(sv, &b, &len) != 0) { - printf("irp_marshall_sv failed\n"); - exit(1); - } - - printf("success: \"%s\"\n", buffer); - } - break; - } - - case 'g': { - struct group *gr; - struct group gr1; - - if (strchr(argv[1], ':') != NULL) { - gr = &gr1; - memset(gr, 0xef, sizeof (struct group)); - if (irp_unmarshall_gr(gr, argv[1]) != 0) { - printf("unmarshall failed\n"); - - } - - irp_marshall_gr(gr, &b, &len); - if (strcmp(argv[1], buffer) != 0) { - printf("compare failed:\n\t\"%s\"\n\t\"%s\"\n", - buffer, argv[1]); - } else { - printf("compare ok\n"); - } - } else { - if ((gr = getgrnam(argv[1])) == NULL) { - perror("getgrnam"); - exit(1); - } - - if (irp_marshall_gr(gr, &b, &len) != 0) { - printf("irp_marshall_gr failed\n"); - exit(1); - } - - printf("success: \"%s\"\n", buffer); - } - break; - } - - - case 'p': { - struct passwd *pw; - struct passwd pw1; - - if (strchr(argv[1], ':') != NULL) { - pw = &pw1; - memset(pw, 0xef, sizeof (*pw)); - if (irp_unmarshall_pw(pw, argv[1]) != 0) { - printf("unmarshall failed\n"); - exit(1); - } - - printf("User: \"%s\"\nPasswd: \"%s\"\nUid: %ld\nGid: %ld\n", - pw->pw_name, pw->pw_passwd, (long)pw->pw_uid, - (long)pw->pw_gid); - printf("Class: \"%s\"\nChange: %ld\nGecos: \"%s\"\n", - pw->pw_class, (long)pw->pw_change, pw->pw_gecos); - printf("Shell: \"%s\"\nDirectory: \"%s\"\n", - pw->pw_shell, pw->pw_dir); - - pw = getpwnam(pw->pw_name); - irp_marshall_pw(pw, &b, &len); - if (strcmp(argv[1], buffer) != 0) { - printf("compare failed:\n\t\"%s\"\n\t\"%s\"\n", - buffer, argv[1]); - } else { - printf("compare ok\n"); - } - } else { - if ((pw = getpwnam(argv[1])) == NULL) { - perror("getpwnam"); - exit(1); - } - - if (irp_marshall_pw(pw, &b, &len) != 0) { - printf("irp_marshall_pw failed\n"); - exit(1); - } - - printf("success: \"%s\"\n", buffer); - } - break; - } - - default: - printf("Wrong option: %c\n", option); - break; - } - -#endif - - return (0); -} - -#endif - -/*! \file */ diff --git a/src/kits/network/libbind/irs/irs_data.c b/src/kits/network/libbind/irs/irs_data.c deleted file mode 100644 index cd8ba00c50..0000000000 --- a/src/kits/network/libbind/irs/irs_data.c +++ /dev/null @@ -1,246 +0,0 @@ -/* - * 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. - */ - -#if !defined(LINT) && !defined(CODECENTER) -static const char rcsid[] = "$Id: irs_data.c,v 1.12 2007/08/27 03:32:26 marka Exp $"; -#endif - -#include "port_before.h" - -#ifndef __BIND_NOSTATIC - -#include - -#include -#include - -#include -#include -#include -#include - -#ifdef DO_PTHREADS -#include -#endif - -#include -#include - -#include "port_after.h" - -#include "irs_data.h" -#undef _res -#if !(__GLIBC__ > 2 || __GLIBC__ == 2 && __GLIBC_MINOR__ >= 3) -#undef h_errno -extern int h_errno; -#endif - -extern struct __res_state _res; - -#ifdef DO_PTHREADS -static pthread_key_t key; -static int once = 0; -#else -static struct net_data *net_data; -#endif - -void -irs_destroy(void) { -#ifndef DO_PTHREADS - if (net_data != NULL) - net_data_destroy(net_data); - net_data = NULL; -#endif -} - -void -net_data_destroy(void *p) { - struct net_data *net_data = p; - - res_ndestroy(net_data->res); - if (net_data->gr != NULL) { - (*net_data->gr->close)(net_data->gr); - net_data->gr = NULL; - } - if (net_data->pw != NULL) { - (*net_data->pw->close)(net_data->pw); - net_data->pw = NULL; - } - if (net_data->sv != NULL) { - (*net_data->sv->close)(net_data->sv); - net_data->sv = NULL; - } - if (net_data->pr != NULL) { - (*net_data->pr->close)(net_data->pr); - net_data->pr = NULL; - } - if (net_data->ho != NULL) { - (*net_data->ho->close)(net_data->ho); - net_data->ho = NULL; - } - if (net_data->nw != NULL) { - (*net_data->nw->close)(net_data->nw); - net_data->nw = NULL; - } - if (net_data->ng != NULL) { - (*net_data->ng->close)(net_data->ng); - net_data->ng = NULL; - } - if (net_data->ho_data != NULL) { - free(net_data->ho_data); - net_data->ho_data = NULL; - } - if (net_data->nw_data != NULL) { - free(net_data->nw_data); - net_data->nw_data = NULL; - } - - (*net_data->irs->close)(net_data->irs); - memput(net_data, sizeof *net_data); -} - -/*% - * applications that need a specific config file other than - * _PATH_IRS_CONF should call net_data_init directly rather than letting - * the various wrapper functions make the first call. - brister - */ - -struct net_data * -net_data_init(const char *conf_file) { -#ifdef DO_PTHREADS -#ifndef LIBBIND_MUTEX_INITIALIZER -#define LIBBIND_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER -#endif - static pthread_mutex_t keylock = LIBBIND_MUTEX_INITIALIZER; - struct net_data *net_data; - - if (!once) { - if (pthread_mutex_lock(&keylock) != 0) - return (NULL); - if (!once) { - if (pthread_key_create(&key, net_data_destroy) != 0) { - (void)pthread_mutex_unlock(&keylock); - return (NULL); - } - once = 1; - } - if (pthread_mutex_unlock(&keylock) != 0) - return (NULL); - } - net_data = pthread_getspecific(key); -#endif - - if (net_data == NULL) { - net_data = net_data_create(conf_file); - if (net_data == NULL) - return (NULL); -#ifdef DO_PTHREADS - if (pthread_setspecific(key, net_data) != 0) { - net_data_destroy(net_data); - return (NULL); - } -#endif - } - - return (net_data); -} - -struct net_data * -net_data_create(const char *conf_file) { - struct net_data *net_data; - - net_data = memget(sizeof (struct net_data)); - if (net_data == NULL) - return (NULL); - memset(net_data, 0, sizeof (struct net_data)); - - if ((net_data->irs = irs_gen_acc("", conf_file)) == NULL) { - memput(net_data, sizeof (struct net_data)); - return (NULL); - } -#ifndef DO_PTHREADS - (*net_data->irs->res_set)(net_data->irs, &_res, NULL); -#endif - - net_data->res = (*net_data->irs->res_get)(net_data->irs); - if (net_data->res == NULL) { - (*net_data->irs->close)(net_data->irs); - memput(net_data, sizeof (struct net_data)); - return (NULL); - } - - if ((net_data->res->options & RES_INIT) == 0U && - res_ninit(net_data->res) == -1) { - (*net_data->irs->close)(net_data->irs); - memput(net_data, sizeof (struct net_data)); - return (NULL); - } - - return (net_data); -} - -void -net_data_minimize(struct net_data *net_data) { - res_nclose(net_data->res); -} - -#ifdef _REENTRANT -struct __res_state * -__res_state(void) { - /* NULL param here means use the default config file. */ - struct net_data *net_data = net_data_init(NULL); - if (net_data && net_data->res) - return (net_data->res); - - return (&_res); -} -#else -#ifdef __linux -struct __res_state * -__res_state(void) { - return (&_res); -} -#endif -#endif - -int * -__h_errno(void) { - /* NULL param here means use the default config file. */ - struct net_data *net_data = net_data_init(NULL); - if (net_data && net_data->res) - return (&net_data->res->res_h_errno); -#if !(__GLIBC__ > 2 || __GLIBC__ == 2 && __GLIBC_MINOR__ >= 3) - return(&_res.res_h_errno); -#else - return (&h_errno); -#endif -} - -void -__h_errno_set(struct __res_state *res, int err) { - - -#if (__GLIBC__ > 2 || __GLIBC__ == 2 && __GLIBC_MINOR__ >= 3) - res->res_h_errno = err; -#else - h_errno = res->res_h_errno = err; -#endif -} - -#endif /*__BIND_NOSTATIC*/ - -/*! \file */ diff --git a/src/kits/network/libbind/irs/irs_data.h b/src/kits/network/libbind/irs/irs_data.h deleted file mode 100644 index cb814fd8b1..0000000000 --- a/src/kits/network/libbind/irs/irs_data.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * 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. - */ - -/* - * $Id: irs_data.h,v 1.3 2005/04/27 04:56:30 sra Exp $ - */ - -#ifndef __BIND_NOSTATIC - -#define net_data_init __net_data_init - -struct net_data { - struct irs_acc * irs; - - struct irs_gr * gr; - struct irs_pw * pw; - struct irs_sv * sv; - struct irs_pr * pr; - struct irs_ho * ho; - struct irs_nw * nw; - struct irs_ng * ng; - - struct group * gr_last; - struct passwd * pw_last; - struct servent * sv_last; - struct protoent * pr_last; - struct netent * nw_last; /*%< should have been ne_last */ - struct nwent * nww_last; - struct hostent * ho_last; - - unsigned int gr_stayopen :1; - unsigned int pw_stayopen :1; - unsigned int sv_stayopen :1; - unsigned int pr_stayopen :1; - unsigned int ho_stayopen :1; - unsigned int nw_stayopen :1; - - void * nw_data; - void * ho_data; - - struct __res_state * res; /*%< for gethostent.c */ -}; - -extern struct net_data * net_data_init(const char *conf_file); -extern void net_data_minimize(struct net_data *); - -#endif /*__BIND_NOSTATIC*/ - -/*! \file */ diff --git a/src/kits/network/libbind/irs/irs_p.h b/src/kits/network/libbind/irs/irs_p.h deleted file mode 100644 index 2d00887e6c..0000000000 --- a/src/kits/network/libbind/irs/irs_p.h +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 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 _IRS_P_H_INCLUDED -#define _IRS_P_H_INCLUDED - -#include -#include - -#include "pathnames.h" - -#define IRS_SV_MAXALIASES 35 - -struct lcl_sv { - FILE * fp; - char line[BUFSIZ+1]; - struct servent serv; - char * serv_aliases[IRS_SV_MAXALIASES]; -}; - -#define irs_nul_ng __irs_nul_ng -#define map_v4v6_address __map_v4v6_address -#define make_group_list __make_group_list -#define irs_lclsv_fnxt __irs_lclsv_fnxt - -extern void map_v4v6_address(const char *src, char *dst); -extern int make_group_list(struct irs_gr *, const char *, - gid_t, gid_t *, int *); -extern struct irs_ng * irs_nul_ng(struct irs_acc *); -extern struct servent * irs_lclsv_fnxt(struct lcl_sv *); - -#endif diff --git a/src/kits/network/libbind/irs/lcl.c b/src/kits/network/libbind/irs/lcl.c deleted file mode 100644 index ea78a258a6..0000000000 --- a/src/kits/network/libbind/irs/lcl.c +++ /dev/null @@ -1,142 +0,0 @@ -/* - * 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. - */ - -#if !defined(LINT) && !defined(CODECENTER) -static const char rcsid[] = "$Id: lcl.c,v 1.4 2005/04/27 04:56:30 sra Exp $"; -#endif - -/* Imports */ - -#include "port_before.h" - -#include -#include -#include - -#include -#include -#include -#include - -#include - -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "lcl_p.h" - -/* Forward. */ - -static void lcl_close(struct irs_acc *); -static struct __res_state * lcl_res_get(struct irs_acc *); -static void lcl_res_set(struct irs_acc *, struct __res_state *, - void (*)(void *)); - -/* Public */ - -struct irs_acc * -irs_lcl_acc(const char *options) { - struct irs_acc *acc; - struct lcl_p *lcl; - - UNUSED(options); - - if (!(acc = memget(sizeof *acc))) { - errno = ENOMEM; - return (NULL); - } - memset(acc, 0x5e, sizeof *acc); - if (!(lcl = memget(sizeof *lcl))) { - errno = ENOMEM; - free(acc); - return (NULL); - } - memset(lcl, 0x5e, sizeof *lcl); - lcl->res = NULL; - lcl->free_res = NULL; - acc->private = lcl; -#ifdef WANT_IRS_GR - acc->gr_map = irs_lcl_gr; -#else - acc->gr_map = NULL; -#endif -#ifdef WANT_IRS_PW - acc->pw_map = irs_lcl_pw; -#else - acc->pw_map = NULL; -#endif - acc->sv_map = irs_lcl_sv; - acc->pr_map = irs_lcl_pr; - acc->ho_map = irs_lcl_ho; - acc->nw_map = irs_lcl_nw; - acc->ng_map = irs_lcl_ng; - acc->res_get = lcl_res_get; - acc->res_set = lcl_res_set; - acc->close = lcl_close; - return (acc); -} - -/* Methods */ -static struct __res_state * -lcl_res_get(struct irs_acc *this) { - struct lcl_p *lcl = (struct lcl_p *)this->private; - - if (lcl->res == NULL) { - struct __res_state *res; - res = (struct __res_state *)malloc(sizeof *res); - if (res == NULL) - return (NULL); - memset(res, 0, sizeof *res); - lcl_res_set(this, res, free); - } - - if ((lcl->res->options & RES_INIT) == 0U && - res_ninit(lcl->res) < 0) - return (NULL); - - return (lcl->res); -} - -static void -lcl_res_set(struct irs_acc *this, struct __res_state *res, - void (*free_res)(void *)) { - struct lcl_p *lcl = (struct lcl_p *)this->private; - - if (lcl->res && lcl->free_res) { - res_nclose(lcl->res); - (*lcl->free_res)(lcl->res); - } - - lcl->res = res; - lcl->free_res = free_res; -} - -static void -lcl_close(struct irs_acc *this) { - struct lcl_p *lcl = (struct lcl_p *)this->private; - - if (lcl) { - if (lcl->free_res) - (*lcl->free_res)(lcl->res); - memput(lcl, sizeof *lcl); - } - memput(this, sizeof *this); -} - -/*! \file */ diff --git a/src/kits/network/libbind/irs/lcl_gr.c b/src/kits/network/libbind/irs/lcl_gr.c deleted file mode 100644 index ce7e347b2d..0000000000 --- a/src/kits/network/libbind/irs/lcl_gr.c +++ /dev/null @@ -1,354 +0,0 @@ -/* - * Copyright (c) 1989, 1993, 1995 - * 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: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University 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 REGENTS 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. - */ - -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Portions 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: lcl_gr.c,v 1.3 2005/04/27 04:56:30 sra Exp $"; -/* from getgrent.c 8.2 (Berkeley) 3/21/94"; */ -/* from BSDI Id: getgrent.c,v 2.8 1996/05/28 18:15:14 bostic Exp $ */ -#endif /* LIBC_SCCS and not lint */ - -/* extern */ - -#include "port_before.h" - -#ifndef WANT_IRS_PW -static int __bind_irs_gr_unneeded; -#else - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "irs_p.h" -#include "lcl_p.h" -#include "irp_p.h" - -#include "port_after.h" - - -/* Types. */ - -struct pvt { - FILE * fp; - /*%< - * Need space to store the entries read from the group file. - * The members list also needs space per member, and the - * strings making up the user names must be allocated - * somewhere. Rather than doing lots of small allocations, - * we keep one buffer and resize it as needed. - */ - struct group group; - size_t nmemb; /*%< Malloc'd max index of gr_mem[]. */ - char * membuf; - size_t membufsize; -}; - -/* Forward. */ - -static void gr_close(struct irs_gr *); -static struct group * gr_next(struct irs_gr *); -static struct group * gr_byname(struct irs_gr *, const char *); -static struct group * gr_bygid(struct irs_gr *, gid_t); -static void gr_rewind(struct irs_gr *); -static void gr_minimize(struct irs_gr *); - -static int grstart(struct pvt *); -static char * grnext(struct pvt *); -static struct group * grscan(struct irs_gr *, int, gid_t, const char *); - -/* Portability. */ - -#ifndef SEEK_SET -# define SEEK_SET 0 -#endif - -/* Public. */ - -struct irs_gr * -irs_lcl_gr(struct irs_acc *this) { - struct irs_gr *gr; - struct pvt *pvt; - - UNUSED(this); - - if (!(gr = memget(sizeof *gr))) { - errno = ENOMEM; - return (NULL); - } - memset(gr, 0x5e, sizeof *gr); - if (!(pvt = memget(sizeof *pvt))) { - memput(gr, sizeof *gr); - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - gr->private = pvt; - gr->close = gr_close; - gr->next = gr_next; - gr->byname = gr_byname; - gr->bygid = gr_bygid; - gr->rewind = gr_rewind; - gr->list = make_group_list; - gr->minimize = gr_minimize; - gr->res_get = NULL; - gr->res_set = NULL; - return (gr); -} - -/* Methods. */ - -static void -gr_close(struct irs_gr *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->fp) - (void)fclose(pvt->fp); - if (pvt->group.gr_mem) - free(pvt->group.gr_mem); - if (pvt->membuf) - free(pvt->membuf); - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct group * -gr_next(struct irs_gr *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->fp && !grstart(pvt)) - return (NULL); - return (grscan(this, 0, 0, NULL)); -} - -static struct group * -gr_byname(struct irs_gr *this, const char *name) { - if (!grstart((struct pvt *)this->private)) - return (NULL); - return (grscan(this, 1, 0, name)); -} - -static struct group * -gr_bygid(struct irs_gr *this, gid_t gid) { - if (!grstart((struct pvt *)this->private)) - return (NULL); - return (grscan(this, 1, gid, NULL)); -} - -static void -gr_rewind(struct irs_gr *this) { - (void) grstart((struct pvt *)this->private); -} - -static void -gr_minimize(struct irs_gr *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->fp != NULL) { - (void)fclose(pvt->fp); - pvt->fp = NULL; - } -} - -/* Private. */ - -static int -grstart(struct pvt *pvt) { - if (pvt->fp) { - if (fseek(pvt->fp, 0L, SEEK_SET) == 0) - return (1); - (void)fclose(pvt->fp); - } - if (!(pvt->fp = fopen(_PATH_GROUP, "r"))) - return (0); - if (fcntl(fileno(pvt->fp), F_SETFD, 1) < 0) { - fclose(pvt->fp); - return (0); - } - return (1); -} - -#define INITIAL_NMEMB 30 /*%< about 120 bytes */ -#define INITIAL_BUFSIZ (INITIAL_NMEMB * 8) /*%< about 240 bytes */ -static char * -grnext(struct pvt *pvt) { - char *w, *e; - int ch; - - /* Make sure we have a buffer. */ - if (pvt->membuf == NULL) { - pvt->membuf = malloc(INITIAL_BUFSIZ); - if (pvt->membuf == NULL) { - enomem: - errno = ENOMEM; - return (NULL); - } - pvt->membufsize = INITIAL_BUFSIZ; - } - - /* Read until EOF or EOL. */ - w = pvt->membuf; - e = pvt->membuf + pvt->membufsize; - while ((ch = fgetc(pvt->fp)) != EOF && ch != '\n') { - /* Make sure we have room for this character and a \0. */ - if (w + 1 == e) { - size_t o = w - pvt->membuf; - size_t n = pvt->membufsize * 2; - char *t = realloc(pvt->membuf, n); - - if (t == NULL) - goto enomem; - pvt->membuf = t; - pvt->membufsize = n; - w = pvt->membuf + o; - e = pvt->membuf + pvt->membufsize; - } - /* Store it. */ - *w++ = (char)ch; - } - - /* Hitting EOF on the first character really does mean EOF. */ - if (w == pvt->membuf && ch == EOF) { - errno = ENOENT; - return (NULL); - } - - /* Last line of /etc/group need not end with \n; we don't care. */ - *w = '\0'; - return (pvt->membuf); -} - -static struct group * -grscan(struct irs_gr *this, int search, gid_t gid, const char *name) { - struct pvt *pvt = (struct pvt *)this->private; - size_t n; - char *bp, **m, *p; - - /* Read lines until we find one that matches our search criteria. */ - for (;;) { - if ((bp = grnext(pvt)) == NULL) - return (NULL); - - /* Optimize the usual case of searching for a name. */ - pvt->group.gr_name = strsep(&bp, ":"); - if (search && name != NULL && - strcmp(pvt->group.gr_name, name) != 0) - continue; - if (bp == NULL || *bp == '\0') - goto corrupt; - - /* Skip past the password field. */ - pvt->group.gr_passwd = strsep(&bp, ":"); - if (bp == NULL || *bp == '\0') - goto corrupt; - - /* Checking for a gid. */ - if ((p = strsep(&bp, ":")) == NULL) - continue; - /* - * Unlike the tests above, the test below is supposed to be - * testing 'p' and not 'bp', in case you think it's a typo. - */ - if (p == NULL || *p == '\0') { - corrupt: - /* warning: corrupted %s file!", _PATH_GROUP */ - continue; - } - pvt->group.gr_gid = atoi(p); - if (search && name == NULL && (gid_t)pvt->group.gr_gid != gid) - continue; - - /* We want this record. */ - break; - } - - /* - * Count commas to find out how many members there might be. - * Note that commas separate, so if there is one comma there - * can be two members (group:*:id:user1,user2). Add another - * to account for the NULL terminator. As above, allocate - * largest of INITIAL_NMEMB, or 2*n. - */ - n = 1; - if (bp != NULL) - for (n = 2, p = bp; (p = strpbrk(p, ", ")) != NULL; ++n) - p += strspn(p, ", "); - if (n > pvt->nmemb || pvt->group.gr_mem == NULL) { - if ((n *= 2) < INITIAL_NMEMB) - n = INITIAL_NMEMB; - if ((m = realloc(pvt->group.gr_mem, n * sizeof *m)) == NULL) - return (NULL); - pvt->group.gr_mem = m; - pvt->nmemb = n; - } - - /* Set the name pointers. */ - for (m = pvt->group.gr_mem; (p = strsep(&bp, ", ")) != NULL;) - if (p[0] != '\0') - *m++ = p; - *m = NULL; - - return (&pvt->group); -} - -#endif /* WANT_IRS_GR */ -/*! \file */ diff --git a/src/kits/network/libbind/irs/lcl_ho.c b/src/kits/network/libbind/irs/lcl_ho.c deleted file mode 100644 index 8d254084f5..0000000000 --- a/src/kits/network/libbind/irs/lcl_ho.c +++ /dev/null @@ -1,599 +0,0 @@ -/* - * Copyright 2007-2009, Haiku, Inc. All Rights Reserved. - * Distributed under the terms of the MIT License. - */ - -/* - * Copyright (c) 1985, 1988, 1993 - * 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: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University 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 REGENTS 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. - */ - -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Portions 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 "port_before.h" - -#include -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include - -#include "irs_p.h" -#include "dns_p.h" -#include "lcl_p.h" - -#ifdef SPRINTF_CHAR -# define SPRINTF(x) strlen(sprintf/**/x) -#else -# define SPRINTF(x) sprintf x -#endif - -/* Definitions. */ - -#define MAXALIASES 35 -#define MAXADDRS 35 -#define Max(a,b) ((a) > (b) ? (a) : (b)) - -#if PACKETSZ > 1024 -#define MAXPACKET PACKETSZ -#else -#define MAXPACKET 1024 -#endif - -struct pvt { - FILE * fp; - int index; - struct hostent host; - char * h_addr_ptrs[MAXADDRS + 1]; - char * host_aliases[MAXALIASES]; - char hostbuf[8*1024]; - u_char host_addr[16]; /* IPv4 or IPv6 */ - struct __res_state *res; - void (*free_res)(void *); -}; - -typedef union { - int32_t al; - char ac; -} align; - -static const u_char mapped[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0xff,0xff }; -static const u_char tunnelled[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 }; - -/* Forward. */ - -static void ho_close(struct irs_ho *this); -static struct hostent * ho_byname(struct irs_ho *this, const char *name); -static struct hostent * ho_byname2(struct irs_ho *this, const char *name, - int af); -static struct hostent * ho_byaddr(struct irs_ho *this, const void *addr, - int len, int af); -static struct hostent * ho_next(struct irs_ho *this); -static void ho_rewind(struct irs_ho *this); -static void ho_minimize(struct irs_ho *this); -static struct __res_state * ho_res_get(struct irs_ho *this); -static void ho_res_set(struct irs_ho *this, - struct __res_state *res, - void (*free_res)(void *)); -static struct addrinfo * ho_addrinfo(struct irs_ho *this, const char *name, - const struct addrinfo *pai); - -static size_t ns_namelen(const char *); -static int init(struct irs_ho *this); - -/* Portability. */ - -#ifndef SEEK_SET -# define SEEK_SET 0 -#endif - -/* Public. */ - -struct irs_ho * -irs_lcl_ho(struct irs_acc *this) { - struct irs_ho *ho; - struct pvt *pvt; - - UNUSED(this); - - if (!(pvt = memget(sizeof *pvt))) { - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - if (!(ho = memget(sizeof *ho))) { - memput(pvt, sizeof *pvt); - errno = ENOMEM; - return (NULL); - } - memset(ho, 0x5e, sizeof *ho); - ho->private = pvt; - ho->close = ho_close; - ho->byname = ho_byname; - ho->byname2 = ho_byname2; - ho->byaddr = ho_byaddr; - ho->next = ho_next; - ho->rewind = ho_rewind; - ho->minimize = ho_minimize; - ho->res_get = ho_res_get; - ho->res_set = ho_res_set; - ho->addrinfo = ho_addrinfo; - return (ho); -} - -/* Methods. */ - -static void -ho_close(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - - ho_minimize(this); - if (pvt->fp) - (void) fclose(pvt->fp); - if (pvt->res && pvt->free_res) - (*pvt->free_res)(pvt->res); - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct hostent * -ho_byname(struct irs_ho *this, const char *name) { - struct pvt *pvt = (struct pvt *)this->private; - struct hostent *hp; - - if (init(this) == -1) - return (NULL); - - if (pvt->res->options & RES_USE_INET6) { - hp = ho_byname2(this, name, AF_INET6); - if (hp) - return (hp); - } - return (ho_byname2(this, name, AF_INET)); -} - -static struct hostent * -ho_byname2(struct irs_ho *this, const char *name, int af) { - struct pvt *pvt = (struct pvt *)this->private; - struct hostent *hp; - char **hap; - size_t n; - - if (init(this) == -1) - return (NULL); - - ho_rewind(this); - n = ns_namelen(name); - while ((hp = ho_next(this)) != NULL) { - size_t nn; - - if (hp->h_addrtype != af) - continue; - nn = ns_namelen(hp->h_name); - if (strncasecmp(hp->h_name, name, Max(n, nn)) == 0) - goto found; - for (hap = hp->h_aliases; *hap; hap++) { - nn = ns_namelen(*hap); - if (strncasecmp(*hap, name, Max(n, nn)) == 0) - goto found; - } - } - found: - if (!hp) { - RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND); - return (NULL); - } - RES_SET_H_ERRNO(pvt->res, NETDB_SUCCESS); - return (hp); -} - -static struct hostent * -ho_byaddr(struct irs_ho *this, const void *addr, int len, int af) { - struct pvt *pvt = (struct pvt *)this->private; - const u_char *uaddr = addr; - struct hostent *hp; - int size; - - if (init(this) == -1) - return (NULL); - - if (af == AF_INET6 && len == IN6ADDRSZ && - (!memcmp(uaddr, mapped, sizeof mapped) || - !memcmp(uaddr, tunnelled, sizeof tunnelled))) { - /* Unmap. */ - addr = (const u_char *)addr + sizeof mapped; - uaddr += sizeof mapped; - af = AF_INET; - len = INADDRSZ; - } - switch (af) { - case AF_INET: - size = INADDRSZ; - break; - case AF_INET6: - size = IN6ADDRSZ; - break; - default: - errno = EAFNOSUPPORT; - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - return (NULL); - } - if (size > len) { - errno = EINVAL; - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - return (NULL); - } - - /* - * Do the search. - */ - ho_rewind(this); - while ((hp = ho_next(this)) != NULL) { - char **hap; - - for (hap = hp->h_addr_list; *hap; hap++) { - const u_char *taddr = (const u_char *)*hap; - int taf = hp->h_addrtype; - int tlen = hp->h_length; - - if (taf == AF_INET6 && tlen == IN6ADDRSZ && - (!memcmp(taddr, mapped, sizeof mapped) || - !memcmp(taddr, tunnelled, sizeof tunnelled))) { - /* Unmap. */ - taddr += sizeof mapped; - taf = AF_INET; - tlen = INADDRSZ; - } - if (taf == af && tlen == len && - !memcmp(taddr, uaddr, tlen)) - goto found; - } - } - found: - if (!hp) { - RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND); - return (NULL); - } - RES_SET_H_ERRNO(pvt->res, NETDB_SUCCESS); - return (hp); -} - -static struct hostent * -ho_next(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - char *cp, **q, *p; - char *bufp, *ndbuf, *dbuf = NULL; - int c, af, len, bufsiz, offset; - - if (init(this) == -1) - return (NULL); - - if (pvt->index > 0) - return (NULL); - if (!pvt->fp) - ho_rewind(this); - if (!pvt->fp) { - strcpy(pvt->hostbuf, "localhost"); - pvt->host_aliases[0] = NULL; - pvt->h_addr_ptrs[0] = (char *)pvt->host_addr; - pvt->h_addr_ptrs[1] = NULL; - pvt->host.h_addr_list = pvt->h_addr_ptrs; - pvt->host.h_length = INADDRSZ; - pvt->host.h_addrtype = AF_INET; - pvt->host.h_aliases = pvt->host_aliases; - pvt->host.h_name = pvt->hostbuf; - ((struct in_addr *)pvt->host_addr)->s_addr = htonl(INADDR_LOOPBACK); - pvt->index++; - - RES_SET_H_ERRNO(pvt->res, NETDB_SUCCESS); - return (&pvt->host); - } - - bufp = pvt->hostbuf; - bufsiz = sizeof pvt->hostbuf; - offset = 0; - again: - if (!(p = fgets(bufp + offset, bufsiz - offset, pvt->fp))) { - RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND); - if (dbuf) - free(dbuf); - return (NULL); - } - if (!strchr(p, '\n') && !feof(pvt->fp)) { -#define GROWBUF 1024 - /* allocate space for longer line */ - if (dbuf == NULL) { - if ((ndbuf = malloc(bufsiz + GROWBUF)) != NULL) - strcpy(ndbuf, bufp); - } else - ndbuf = realloc(dbuf, bufsiz + GROWBUF); - if (ndbuf) { - dbuf = ndbuf; - bufp = dbuf; - bufsiz += GROWBUF; - offset = strlen(dbuf); - } else { - /* allocation failed; skip this long line */ - while ((c = getc(pvt->fp)) != EOF) - if (c == '\n') - break; - if (c != EOF) - ungetc(c, pvt->fp); - } - goto again; - } - - p -= offset; - offset = 0; - - if (*p == '#') - goto again; - if ((cp = strpbrk(p, "#\n")) != NULL) - *cp = '\0'; - if (!(cp = strpbrk(p, " \t"))) - goto again; - *cp++ = '\0'; - if (inet_pton(AF_INET6, p, pvt->host_addr) > 0) { - af = AF_INET6; - len = IN6ADDRSZ; - } else if (inet_aton(p, (struct in_addr *)pvt->host_addr) > 0) { - if (pvt->res->options & RES_USE_INET6) { - map_v4v6_address((char*)pvt->host_addr, - (char*)pvt->host_addr); - af = AF_INET6; - len = IN6ADDRSZ; - } else { - af = AF_INET; - len = INADDRSZ; - } - } else { - goto again; - } - pvt->h_addr_ptrs[0] = (char *)pvt->host_addr; - pvt->h_addr_ptrs[1] = NULL; - pvt->host.h_addr_list = pvt->h_addr_ptrs; - pvt->host.h_length = len; - pvt->host.h_addrtype = af; - while (*cp == ' ' || *cp == '\t') - cp++; - pvt->host.h_name = cp; - q = pvt->host.h_aliases = pvt->host_aliases; - if ((cp = strpbrk(cp, " \t")) != NULL) - *cp++ = '\0'; - while (cp && *cp) { - if (*cp == ' ' || *cp == '\t') { - cp++; - continue; - } - if (q < &pvt->host_aliases[MAXALIASES - 1]) - *q++ = cp; - if ((cp = strpbrk(cp, " \t")) != NULL) - *cp++ = '\0'; - } - *q = NULL; - if (dbuf) - free(dbuf); - RES_SET_H_ERRNO(pvt->res, NETDB_SUCCESS); - return (&pvt->host); -} - -static void -ho_rewind(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - char path[PATH_MAX]; - - if (pvt->fp) { - if (fseek(pvt->fp, 0L, SEEK_SET) == 0) - return; - (void)fclose(pvt->fp); - } - - if (find_directory(B_SYSTEM_SETTINGS_DIRECTORY, -1, false, path, - sizeof(path)) == B_OK) { - strlcat(path, "/network/hosts", sizeof(path)); - - if (!(pvt->fp = fopen(path, "r"))) { - pvt->index = 0; - return; - } - } - if (fcntl(fileno(pvt->fp), F_SETFD, 1) < 0) { - (void)fclose(pvt->fp); - pvt->fp = NULL; - } -} - -static void -ho_minimize(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->fp != NULL) { - (void)fclose(pvt->fp); - pvt->fp = NULL; - } - if (pvt->res) - res_nclose(pvt->res); -} - -static struct __res_state * -ho_res_get(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->res) { - struct __res_state *res; - res = (struct __res_state *)malloc(sizeof *res); - if (!res) { - errno = ENOMEM; - return (NULL); - } - memset(res, 0, sizeof *res); - ho_res_set(this, res, free); - } - - return (pvt->res); -} - -static void -ho_res_set(struct irs_ho *this, struct __res_state *res, - void (*free_res)(void *)) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->res && pvt->free_res) { - res_nclose(pvt->res); - (*pvt->free_res)(pvt->res); - } - - pvt->res = res; - pvt->free_res = free_res; -} - -struct lcl_res_target { - struct lcl_res_target *next; - int family; -}; - -/* XXX */ -extern struct addrinfo *hostent2addrinfo __P((struct hostent *, - const struct addrinfo *pai)); - -static struct addrinfo * -ho_addrinfo(struct irs_ho *this, const char *name, const struct addrinfo *pai) -{ - struct pvt *pvt = (struct pvt *)this->private; - struct hostent *hp; - struct lcl_res_target q, q2, *p; - struct addrinfo sentinel, *cur; - - memset(&q, 0, sizeof(q2)); - memset(&q2, 0, sizeof(q2)); - memset(&sentinel, 0, sizeof(sentinel)); - cur = &sentinel; - - switch(pai->ai_family) { - case AF_UNSPEC: /* INET6 then INET4 */ - q.family = AF_INET6; - q.next = &q2; - q2.family = AF_INET; - break; - case AF_INET6: - q.family = AF_INET6; - break; - case AF_INET: - q.family = AF_INET; - break; - default: - RES_SET_H_ERRNO(pvt->res, NO_RECOVERY); /* ??? */ - return(NULL); - } - - for (p = &q; p; p = p->next) { - struct addrinfo *ai; - - hp = (*this->byname2)(this, name, p->family); - if (hp == NULL) { - /* byname2 should've set an appropriate error */ - continue; - } - if ((hp->h_name == NULL) || (hp->h_name[0] == 0) || - (hp->h_addr_list[0] == NULL)) { - RES_SET_H_ERRNO(pvt->res, NO_RECOVERY); - continue; - } - - ai = hostent2addrinfo(hp, pai); - if (ai) { - cur->ai_next = ai; - while (cur->ai_next) - cur = cur->ai_next; - } - } - - if (sentinel.ai_next == NULL) - RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND); - - return(sentinel.ai_next); -} - -/* Private. */ - -static size_t -ns_namelen(const char *s) { - int i; - - for (i = strlen(s); i > 0 && s[i-1] == '.'; i--) - (void)NULL; - return ((size_t) i); -} - -static int -init(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->res && !ho_res_get(this)) - return (-1); - if (((pvt->res->options & RES_INIT) == 0U) && - res_ninit(pvt->res) == -1) - return (-1); - return (0); -} diff --git a/src/kits/network/libbind/irs/lcl_ng.c b/src/kits/network/libbind/irs/lcl_ng.c deleted file mode 100644 index 70e0b4563f..0000000000 --- a/src/kits/network/libbind/irs/lcl_ng.c +++ /dev/null @@ -1,446 +0,0 @@ -/* - * 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. - */ - -#if !defined(LINT) && !defined(CODECENTER) -static const char rcsid[] = "$Id: lcl_ng.c,v 1.3 2005/04/27 04:56:31 sra Exp $"; -#endif - -/* Imports */ - -#include "port_before.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "lcl_p.h" - -/* Definitions */ - -#define NG_HOST 0 /*%< Host name */ -#define NG_USER 1 /*%< User name */ -#define NG_DOM 2 /*%< and Domain name */ -#define LINSIZ 1024 /*%< Length of netgroup file line */ -/* - * XXX Warning XXX - * This code is a hack-and-slash special. It realy needs to be - * rewritten with things like strdup, and realloc in mind. - * More reasonable data structures would not be a bad thing. - */ - -/*% - * Static Variables and functions used by setnetgrent(), getnetgrent() and - * endnetgrent(). - * - * There are two linked lists: - * \li linelist is just used by setnetgrent() to parse the net group file via. - * parse_netgrp() - * \li netgrp is the list of entries for the current netgroup - */ -struct linelist { - struct linelist *l_next; /*%< Chain ptr. */ - int l_parsed; /*%< Flag for cycles */ - char * l_groupname; /*%< Name of netgroup */ - char * l_line; /*%< Netgroup entrie(s) to be parsed */ -}; - -struct ng_old_struct { - struct ng_old_struct *ng_next; /*%< Chain ptr */ - char * ng_str[3]; /*%< Field pointers, see below */ -}; - -struct pvt { - FILE *fp; - struct linelist *linehead; - struct ng_old_struct *nextgrp; - struct { - struct ng_old_struct *gr; - char *grname; - } grouphead; -}; - -/* Forward */ - -static void ng_rewind(struct irs_ng *, const char*); -static void ng_close(struct irs_ng *); -static int ng_next(struct irs_ng *, const char **, - const char **, const char **); -static int ng_test(struct irs_ng *, const char *, - const char *, const char *, - const char *); -static void ng_minimize(struct irs_ng *); - -static int parse_netgrp(struct irs_ng *, const char*); -static struct linelist *read_for_group(struct irs_ng *, const char *); -static void freelists(struct irs_ng *); - -/* Public */ - -struct irs_ng * -irs_lcl_ng(struct irs_acc *this) { - struct irs_ng *ng; - struct pvt *pvt; - - UNUSED(this); - - if (!(ng = memget(sizeof *ng))) { - errno = ENOMEM; - return (NULL); - } - memset(ng, 0x5e, sizeof *ng); - if (!(pvt = memget(sizeof *pvt))) { - memput(ng, sizeof *ng); - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - ng->private = pvt; - ng->close = ng_close; - ng->next = ng_next; - ng->test = ng_test; - ng->rewind = ng_rewind; - ng->minimize = ng_minimize; - return (ng); -} - -/* Methods */ - -static void -ng_close(struct irs_ng *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->fp != NULL) - fclose(pvt->fp); - freelists(this); - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -/*% - * Parse the netgroup file looking for the netgroup and build the list - * of netgrp structures. Let parse_netgrp() and read_for_group() do - * most of the work. - */ -static void -ng_rewind(struct irs_ng *this, const char *group) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->fp != NULL && fseek(pvt->fp, SEEK_CUR, 0L) == -1) { - fclose(pvt->fp); - pvt->fp = NULL; - } - - if (pvt->fp == NULL || pvt->grouphead.gr == NULL || - strcmp(group, pvt->grouphead.grname)) { - freelists(this); - if (pvt->fp != NULL) - fclose(pvt->fp); - pvt->fp = fopen(_PATH_NETGROUP, "r"); - if (pvt->fp != NULL) { - if (parse_netgrp(this, group)) - freelists(this); - if (!(pvt->grouphead.grname = strdup(group))) - freelists(this); - fclose(pvt->fp); - pvt->fp = NULL; - } - } - pvt->nextgrp = pvt->grouphead.gr; -} - -/*% - * Get the next netgroup off the list. - */ -static int -ng_next(struct irs_ng *this, const char **host, const char **user, - const char **domain) -{ - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->nextgrp) { - *host = pvt->nextgrp->ng_str[NG_HOST]; - *user = pvt->nextgrp->ng_str[NG_USER]; - *domain = pvt->nextgrp->ng_str[NG_DOM]; - pvt->nextgrp = pvt->nextgrp->ng_next; - return (1); - } - return (0); -} - -/*% - * Search for a match in a netgroup. - */ -static int -ng_test(struct irs_ng *this, const char *name, - const char *host, const char *user, const char *domain) -{ - const char *ng_host, *ng_user, *ng_domain; - - ng_rewind(this, name); - while (ng_next(this, &ng_host, &ng_user, &ng_domain)) - if ((host == NULL || ng_host == NULL || - !strcmp(host, ng_host)) && - (user == NULL || ng_user == NULL || - !strcmp(user, ng_user)) && - (domain == NULL || ng_domain == NULL || - !strcmp(domain, ng_domain))) { - freelists(this); - return (1); - } - freelists(this); - return (0); -} - -static void -ng_minimize(struct irs_ng *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->fp != NULL) { - (void)fclose(pvt->fp); - pvt->fp = NULL; - } -} - -/* Private */ - -/*% - * endnetgrent() - cleanup - */ -static void -freelists(struct irs_ng *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct linelist *lp, *olp; - struct ng_old_struct *gp, *ogp; - - lp = pvt->linehead; - while (lp) { - olp = lp; - lp = lp->l_next; - free(olp->l_groupname); - free(olp->l_line); - free((char *)olp); - } - pvt->linehead = NULL; - if (pvt->grouphead.grname) { - free(pvt->grouphead.grname); - pvt->grouphead.grname = NULL; - } - gp = pvt->grouphead.gr; - while (gp) { - ogp = gp; - gp = gp->ng_next; - if (ogp->ng_str[NG_HOST]) - free(ogp->ng_str[NG_HOST]); - if (ogp->ng_str[NG_USER]) - free(ogp->ng_str[NG_USER]); - if (ogp->ng_str[NG_DOM]) - free(ogp->ng_str[NG_DOM]); - free((char *)ogp); - } - pvt->grouphead.gr = NULL; -} - -/*% - * Parse the netgroup file setting up the linked lists. - */ -static int -parse_netgrp(struct irs_ng *this, const char *group) { - struct pvt *pvt = (struct pvt *)this->private; - char *spos, *epos; - int len, strpos; - char *pos, *gpos; - struct ng_old_struct *grp; - struct linelist *lp = pvt->linehead; - - /* - * First, see if the line has already been read in. - */ - while (lp) { - if (!strcmp(group, lp->l_groupname)) - break; - lp = lp->l_next; - } - if (lp == NULL && - (lp = read_for_group(this, group)) == NULL) - return (1); - if (lp->l_parsed) { - /*fprintf(stderr, "Cycle in netgroup %s\n", lp->l_groupname);*/ - return (1); - } else - lp->l_parsed = 1; - pos = lp->l_line; - while (*pos != '\0') { - if (*pos == '(') { - if (!(grp = malloc(sizeof (struct ng_old_struct)))) { - freelists(this); - errno = ENOMEM; - return (1); - } - memset(grp, 0, sizeof (struct ng_old_struct)); - grp->ng_next = pvt->grouphead.gr; - pvt->grouphead.gr = grp; - pos++; - gpos = strsep(&pos, ")"); - for (strpos = 0; strpos < 3; strpos++) { - if ((spos = strsep(&gpos, ","))) { - while (*spos == ' ' || *spos == '\t') - spos++; - if ((epos = strpbrk(spos, " \t"))) { - *epos = '\0'; - len = epos - spos; - } else - len = strlen(spos); - if (len > 0) { - if(!(grp->ng_str[strpos] - = (char *) - malloc(len + 1))) { - freelists(this); - return (1); - } - memcpy(grp->ng_str[strpos], - spos, - len + 1); - } - } else - goto errout; - } - } else { - spos = strsep(&pos, ", \t"); - if (spos != NULL && parse_netgrp(this, spos)) { - freelists(this); - return (1); - } - } - if (pos == NULL) - break; - while (*pos == ' ' || *pos == ',' || *pos == '\t') - pos++; - } - return (0); - errout: - /*fprintf(stderr, "Bad netgroup %s at ..%s\n", lp->l_groupname, - spos);*/ - return (1); -} - -/*% - * Read the netgroup file and save lines until the line for the netgroup - * is found. Return 1 if eof is encountered. - */ -static struct linelist * -read_for_group(struct irs_ng *this, const char *group) { - struct pvt *pvt = (struct pvt *)this->private; - char *pos, *spos, *linep = NULL, *olinep; - int len, olen, cont; - struct linelist *lp; - char line[LINSIZ + 1]; - - while (fgets(line, LINSIZ, pvt->fp) != NULL) { - pos = line; - if (*pos == '#') - continue; - while (*pos == ' ' || *pos == '\t') - pos++; - spos = pos; - while (*pos != ' ' && *pos != '\t' && *pos != '\n' && - *pos != '\0') - pos++; - len = pos - spos; - while (*pos == ' ' || *pos == '\t') - pos++; - if (*pos != '\n' && *pos != '\0') { - if (!(lp = malloc(sizeof (*lp)))) { - freelists(this); - return (NULL); - } - lp->l_parsed = 0; - if (!(lp->l_groupname = malloc(len + 1))) { - free(lp); - freelists(this); - return (NULL); - } - memcpy(lp->l_groupname, spos, len); - *(lp->l_groupname + len) = '\0'; - len = strlen(pos); - olen = 0; - olinep = NULL; - - /* - * Loop around handling line continuations. - */ - do { - if (*(pos + len - 1) == '\n') - len--; - if (*(pos + len - 1) == '\\') { - len--; - cont = 1; - } else - cont = 0; - if (len > 0) { - if (!(linep = malloc(olen + len + 1))){ - if (olen > 0) - free(olinep); - free(lp->l_groupname); - free(lp); - freelists(this); - errno = ENOMEM; - return (NULL); - } - if (olen > 0) { - memcpy(linep, olinep, olen); - free(olinep); - } - memcpy(linep + olen, pos, len); - olen += len; - *(linep + olen) = '\0'; - olinep = linep; - } - if (cont) { - if (fgets(line, LINSIZ, pvt->fp)) { - pos = line; - len = strlen(pos); - } else - cont = 0; - } - } while (cont); - lp->l_line = linep; - lp->l_next = pvt->linehead; - pvt->linehead = lp; - - /* - * If this is the one we wanted, we are done. - */ - if (!strcmp(lp->l_groupname, group)) - return (lp); - } - } - return (NULL); -} - -/*! \file */ diff --git a/src/kits/network/libbind/irs/lcl_nw.c b/src/kits/network/libbind/irs/lcl_nw.c deleted file mode 100644 index 79b55a0c04..0000000000 --- a/src/kits/network/libbind/irs/lcl_nw.c +++ /dev/null @@ -1,373 +0,0 @@ -/* - * Copyright (c) 1989, 1993, 1995 - * 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: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University 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 REGENTS 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. - */ - -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Portions 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: lcl_nw.c,v 1.4 2005/04/27 04:56:31 sra Exp $"; -/* from getgrent.c 8.2 (Berkeley) 3/21/94"; */ -/* from BSDI Id: getgrent.c,v 2.8 1996/05/28 18:15:14 bostic Exp $ */ -#endif /* LIBC_SCCS and not lint */ - -/* Imports */ - -#include "port_before.h" - -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include -#include "irs_p.h" -#include "lcl_p.h" - -#define MAXALIASES 35 -#define MAXADDRSIZE 4 - -struct pvt { - FILE * fp; - char line[BUFSIZ+1]; - struct nwent net; - char * aliases[MAXALIASES]; - char addr[MAXADDRSIZE]; - struct __res_state * res; - void (*free_res)(void *); -}; - -/* Forward */ - -static void nw_close(struct irs_nw *); -static struct nwent * nw_byname(struct irs_nw *, const char *, int); -static struct nwent * nw_byaddr(struct irs_nw *, void *, int, int); -static struct nwent * nw_next(struct irs_nw *); -static void nw_rewind(struct irs_nw *); -static void nw_minimize(struct irs_nw *); -static struct __res_state * nw_res_get(struct irs_nw *this); -static void nw_res_set(struct irs_nw *this, - struct __res_state *res, - void (*free_res)(void *)); - -static int init(struct irs_nw *this); - -/* Portability. */ - -#ifndef SEEK_SET -# define SEEK_SET 0 -#endif - -/* Public */ - -struct irs_nw * -irs_lcl_nw(struct irs_acc *this) { - struct irs_nw *nw; - struct pvt *pvt; - - UNUSED(this); - - if (!(pvt = memget(sizeof *pvt))) { - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - if (!(nw = memget(sizeof *nw))) { - memput(pvt, sizeof *pvt); - errno = ENOMEM; - return (NULL); - } - memset(nw, 0x5e, sizeof *nw); - nw->private = pvt; - nw->close = nw_close; - nw->byname = nw_byname; - nw->byaddr = nw_byaddr; - nw->next = nw_next; - nw->rewind = nw_rewind; - nw->minimize = nw_minimize; - nw->res_get = nw_res_get; - nw->res_set = nw_res_set; - return (nw); -} - -/* Methods */ - -static void -nw_close(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - nw_minimize(this); - if (pvt->res && pvt->free_res) - (*pvt->free_res)(pvt->res); - if (pvt->fp) - (void)fclose(pvt->fp); - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct nwent * -nw_byaddr(struct irs_nw *this, void *net, int length, int type) { - struct nwent *p; - - if (init(this) == -1) - return(NULL); - - nw_rewind(this); - while ((p = nw_next(this)) != NULL) - if (p->n_addrtype == type && p->n_length == length) - if (bitncmp(p->n_addr, net, length) == 0) - break; - return (p); -} - -static struct nwent * -nw_byname(struct irs_nw *this, const char *name, int type) { - struct nwent *p; - char **ap; - - if (init(this) == -1) - return(NULL); - - nw_rewind(this); - while ((p = nw_next(this)) != NULL) { - if (ns_samename(p->n_name, name) == 1 && - p->n_addrtype == type) - break; - for (ap = p->n_aliases; *ap; ap++) - if ((ns_samename(*ap, name) == 1) && - (p->n_addrtype == type)) - goto found; - } - found: - return (p); -} - -static void -nw_rewind(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->fp) { - if (fseek(pvt->fp, 0L, SEEK_SET) == 0) - return; - (void)fclose(pvt->fp); - } - if (!(pvt->fp = fopen(_PATH_NETWORKS, "r"))) - return; - if (fcntl(fileno(pvt->fp), F_SETFD, 1) < 0) { - (void)fclose(pvt->fp); - pvt->fp = NULL; - } -} - -static struct nwent * -nw_next(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct nwent *ret = NULL; - char *p, *cp, **q; - char *bufp, *ndbuf, *dbuf = NULL; - int c, bufsiz, offset = 0; - - if (init(this) == -1) - return(NULL); - - if (pvt->fp == NULL) - nw_rewind(this); - if (pvt->fp == NULL) { - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - return (NULL); - } - bufp = pvt->line; - bufsiz = sizeof(pvt->line); - - again: - p = fgets(bufp + offset, bufsiz - offset, pvt->fp); - if (p == NULL) - goto cleanup; - if (!strchr(p, '\n') && !feof(pvt->fp)) { -#define GROWBUF 1024 - /* allocate space for longer line */ - if (dbuf == NULL) { - if ((ndbuf = malloc(bufsiz + GROWBUF)) != NULL) - strcpy(ndbuf, bufp); - } else - ndbuf = realloc(dbuf, bufsiz + GROWBUF); - if (ndbuf) { - dbuf = ndbuf; - bufp = dbuf; - bufsiz += GROWBUF; - offset = strlen(dbuf); - } else { - /* allocation failed; skip this long line */ - while ((c = getc(pvt->fp)) != EOF) - if (c == '\n') - break; - if (c != EOF) - ungetc(c, pvt->fp); - } - goto again; - } - - p -= offset; - offset = 0; - - if (*p == '#') - goto again; - - cp = strpbrk(p, "#\n"); - if (cp != NULL) - *cp = '\0'; - pvt->net.n_name = p; - cp = strpbrk(p, " \t"); - if (cp == NULL) - goto again; - *cp++ = '\0'; - while (*cp == ' ' || *cp == '\t') - cp++; - p = strpbrk(cp, " \t"); - if (p != NULL) - *p++ = '\0'; - pvt->net.n_length = inet_net_pton(AF_INET, cp, pvt->addr, - sizeof pvt->addr); - if (pvt->net.n_length < 0) - goto again; - pvt->net.n_addrtype = AF_INET; - pvt->net.n_addr = pvt->addr; - q = pvt->net.n_aliases = pvt->aliases; - if (p != NULL) { - cp = p; - while (cp && *cp) { - if (*cp == ' ' || *cp == '\t') { - cp++; - continue; - } - if (q < &pvt->aliases[MAXALIASES - 1]) - *q++ = cp; - cp = strpbrk(cp, " \t"); - if (cp != NULL) - *cp++ = '\0'; - } - } - *q = NULL; - ret = &pvt->net; - - cleanup: - if (dbuf) - free(dbuf); - - return (ret); -} - -static void -nw_minimize(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->res) - res_nclose(pvt->res); - if (pvt->fp != NULL) { - (void)fclose(pvt->fp); - pvt->fp = NULL; - } -} - -static struct __res_state * -nw_res_get(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->res) { - struct __res_state *res; - res = (struct __res_state *)malloc(sizeof *res); - if (!res) { - errno = ENOMEM; - return (NULL); - } - memset(res, 0, sizeof *res); - nw_res_set(this, res, free); - } - - return (pvt->res); -} - -static void -nw_res_set(struct irs_nw *this, struct __res_state *res, - void (*free_res)(void *)) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->res && pvt->free_res) { - res_nclose(pvt->res); - (*pvt->free_res)(pvt->res); - } - - pvt->res = res; - pvt->free_res = free_res; -} - -static int -init(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->res && !nw_res_get(this)) - return (-1); - if (((pvt->res->options & RES_INIT) == 0U) && - res_ninit(pvt->res) == -1) - return (-1); - return (0); -} - -/*! \file */ diff --git a/src/kits/network/libbind/irs/lcl_p.h b/src/kits/network/libbind/irs/lcl_p.h deleted file mode 100644 index e3f4f009cb..0000000000 --- a/src/kits/network/libbind/irs/lcl_p.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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. - */ - -/* - * $Id: lcl_p.h,v 1.3 2005/04/27 04:56:31 sra Exp $ - */ - -/*! \file - * \brief - * lcl_p.h - private include file for the local accessor functions. - */ - -#ifndef _LCL_P_H_INCLUDED -#define _LCL_P_H_INCLUDED - -/*% - * Object state. - */ -struct lcl_p { - struct __res_state * res; - void (*free_res) __P((void *)); -}; - -/* - * Externs. - */ - -extern struct irs_acc * irs_lcl_acc __P((const char *)); -extern struct irs_gr * irs_lcl_gr __P((struct irs_acc *)); -extern struct irs_pw * irs_lcl_pw __P((struct irs_acc *)); -extern struct irs_sv * irs_lcl_sv __P((struct irs_acc *)); -extern struct irs_pr * irs_lcl_pr __P((struct irs_acc *)); -extern struct irs_ho * irs_lcl_ho __P((struct irs_acc *)); -extern struct irs_nw * irs_lcl_nw __P((struct irs_acc *)); -extern struct irs_ng * irs_lcl_ng __P((struct irs_acc *)); - -#endif /*_LCL_P_H_INCLUDED*/ diff --git a/src/kits/network/libbind/irs/lcl_pr.c b/src/kits/network/libbind/irs/lcl_pr.c deleted file mode 100644 index 441fef83a5..0000000000 --- a/src/kits/network/libbind/irs/lcl_pr.c +++ /dev/null @@ -1,209 +0,0 @@ -/* - * Copyright 2006, Haiku, Inc. All Rights Reserved. - * Distributed under the terms of the MIT License. - */ - -/* - * Copyright (c) 1989, 1993, 1995 - * 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: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University 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 REGENTS 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. - */ - -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Portions 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 "port_before.h" - -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "lcl_p.h" - -#define MAXALIASES 35 - -struct private_data { - struct protoent proto; - char *proto_aliases[MAXALIASES]; - int index; -}; - -// TODO: for now, this should later be exported dynamically by the stack -const struct protocol { - const char *name; - const char *alias; - int number; -} kProtocols[] = { - {"ip", "IP", 0}, // internet protocol, pseudo protocol number - {"icmp", "ICMP", 1}, // internet control message protocol - {"tcp", "TCP", 6}, // transmission control protocol - {"udp", "UDP", 17}, // user datagram protocol" -}; -const size_t kProtocolsCount = sizeof(kProtocols) / sizeof(kProtocols[0]); - - -static void -pr_close(struct irs_pr *this) -{ - struct private_data *data = (struct private_data *)this->private; - - memput(data, sizeof *data); - memput(this, sizeof *this); -} - - -static void -pr_rewind(struct irs_pr *this) -{ - struct private_data *data = (struct private_data *)this->private; - data->index = 0; -} - - -static struct protoent * -pr_next(struct irs_pr *this) -{ - struct private_data *data = (struct private_data *)this->private; - struct protoent *entry = &data->proto; - size_t i = data->index++; - if (i >= kProtocolsCount) - return NULL; - - data->proto_aliases[0] = (char *)kProtocols[i].alias; - data->proto_aliases[1] = NULL; - - entry->p_proto = kProtocols[i].number; - entry->p_name = (char *)kProtocols[i].name; - entry->p_aliases = data->proto_aliases; - - return entry; -} - - -static struct protoent * -pr_byname(struct irs_pr *this, const char *name) -{ - struct protoent *p; - char **cp; - - pr_rewind(this); - while ((p = pr_next(this))) { - if (!strcmp(p->p_name, name)) - return p; - for (cp = p->p_aliases; *cp; cp++) { - if (!strcmp(*cp, name)) - return p; - } - } - - return NULL; -} - - -static struct protoent * -pr_bynumber(struct irs_pr *this, int proto) -{ - struct protoent *p; - - pr_rewind(this); - while ((p = pr_next(this))) { - if (p->p_proto == proto) - break; - } - - return p; -} - - -static void -pr_minimize(struct irs_pr *this) -{ -} - - -// #pragma mark - - - -struct irs_pr * -irs_lcl_pr(struct irs_acc *this) -{ - struct irs_pr *pr; - struct private_data *data; - - if (!(pr = memget(sizeof *pr))) { - errno = ENOMEM; - return (NULL); - } - if (!(data = memget(sizeof *data))) { - memput(pr, sizeof *this); - errno = ENOMEM; - return (NULL); - } - memset(data, 0, sizeof *data); - - pr->private = data; - pr->close = pr_close; - pr->byname = pr_byname; - pr->bynumber = pr_bynumber; - pr->next = pr_next; - pr->rewind = pr_rewind; - pr->minimize = pr_minimize; - pr->res_get = NULL; - pr->res_set = NULL; - return pr; -} - diff --git a/src/kits/network/libbind/irs/lcl_pw.c b/src/kits/network/libbind/irs/lcl_pw.c deleted file mode 100644 index ffca5541bb..0000000000 --- a/src/kits/network/libbind/irs/lcl_pw.c +++ /dev/null @@ -1,309 +0,0 @@ -/* - * Copyright (c) 1989, 1993, 1995 - * 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: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University 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 REGENTS 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. - */ - -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Portions 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: lcl_pw.c,v 1.3 2005/04/27 04:56:31 sra Exp $"; -#endif /* LIBC_SCCS and not lint */ - -/* Extern */ - -#include "port_before.h" - -#ifndef WANT_IRS_PW -static int __bind_irs_pw_unneeded; -#else - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "lcl_p.h" - -/*! \file - * \brief - * The lookup techniques and data extraction code here must be kept - * in sync with that in `pwd_mkdb'. - */ - - -/* Types */ - -struct pvt { - struct passwd passwd; /*%< password structure */ - DB *pw_db; /*%< password database */ - int pw_keynum; /*%< key counter */ - int warned; - u_int max; - char * line; -}; - -/* Forward */ - -static void pw_close(struct irs_pw *); -static struct passwd * pw_next(struct irs_pw *); -static struct passwd * pw_byname(struct irs_pw *, const char *); -static struct passwd * pw_byuid(struct irs_pw *, uid_t); -static void pw_rewind(struct irs_pw *); -static void pw_minimize(struct irs_pw *); - -static int initdb(struct pvt *); -static int hashpw(struct irs_pw *, DBT *); - -/* Public */ -struct irs_pw * -irs_lcl_pw(struct irs_acc *this) { - struct irs_pw *pw; - struct pvt *pvt; - - UNUSED(this); - - if (!(pw = memget(sizeof *pw))) { - errno = ENOMEM; - return (NULL); - } - memset(pw, 0x5e, sizeof *pw); - if (!(pvt = memget(sizeof *pvt))) { - free(pw); - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - pw->private = pvt; - pw->close = pw_close; - pw->next = pw_next; - pw->byname = pw_byname; - pw->byuid = pw_byuid; - pw->rewind = pw_rewind; - pw->minimize = pw_minimize; - pw->res_get = NULL; - pw->res_set = NULL; - return (pw); -} - -/* Methods */ - -static void -pw_close(struct irs_pw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->pw_db) { - (void)(pvt->pw_db->close)(pvt->pw_db); - pvt->pw_db = NULL; - } - if (pvt->line) - memput(pvt->line, pvt->max); - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct passwd * -pw_next(struct irs_pw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - DBT key; - char bf[sizeof(pvt->pw_keynum) + 1]; - - if (!initdb(pvt)) - return (NULL); - - ++pvt->pw_keynum; - bf[0] = _PW_KEYBYNUM; - memcpy(bf + 1, (char *)&pvt->pw_keynum, sizeof(pvt->pw_keynum)); - key.data = (u_char *)bf; - key.size = sizeof(pvt->pw_keynum) + 1; - return (hashpw(this, &key) ? &pvt->passwd : NULL); -} - -static struct passwd * -pw_byname(struct irs_pw *this, const char *name) { - struct pvt *pvt = (struct pvt *)this->private; - DBT key; - int len, rval; - char bf[UT_NAMESIZE + 1]; - - if (!initdb(pvt)) - return (NULL); - - bf[0] = _PW_KEYBYNAME; - len = strlen(name); - memcpy(bf + 1, name, MIN(len, UT_NAMESIZE)); - key.data = (u_char *)bf; - key.size = len + 1; - rval = hashpw(this, &key); - - return (rval ? &pvt->passwd : NULL); -} - - -static struct passwd * -pw_byuid(struct irs_pw *this, uid_t uid) { - struct pvt *pvt = (struct pvt *)this->private; - DBT key; - int keyuid, rval; - char bf[sizeof(keyuid) + 1]; - - if (!initdb(pvt)) - return (NULL); - - bf[0] = _PW_KEYBYUID; - keyuid = uid; - memcpy(bf + 1, &keyuid, sizeof(keyuid)); - key.data = (u_char *)bf; - key.size = sizeof(keyuid) + 1; - rval = hashpw(this, &key); - - return (rval ? &pvt->passwd : NULL); -} - -static void -pw_rewind(struct irs_pw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - pvt->pw_keynum = 0; -} - -static void -pw_minimize(struct irs_pw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->pw_db != NULL) { - (void) (*pvt->pw_db->close)(pvt->pw_db); - pvt->pw_db = NULL; - } -} - -/* Private. */ - -static int -initdb(struct pvt *pvt) { - const char *p; - - if (pvt->pw_db) { - if (lseek((*pvt->pw_db->fd)(pvt->pw_db), 0L, SEEK_CUR) >= 0L) - return (1); - else - (void) (*pvt->pw_db->close)(pvt->pw_db); - } - pvt->pw_db = dbopen((p = _PATH_SMP_DB), O_RDONLY, 0, DB_HASH, NULL); - if (!pvt->pw_db) - pvt->pw_db = dbopen((p =_PATH_MP_DB), O_RDONLY, - 0, DB_HASH, NULL); - if (pvt->pw_db) - return (1); - if (!pvt->warned) { - syslog(LOG_ERR, "%s: %m", p); - pvt->warned++; - } - return (0); -} - -static int -hashpw(struct irs_pw *this, DBT *key) { - struct pvt *pvt = (struct pvt *)this->private; - char *p, *t, *l; - DBT data; - - if ((pvt->pw_db->get)(pvt->pw_db, key, &data, 0)) - return (0); - p = (char *)data.data; - if (data.size > pvt->max) { - size_t newlen = pvt->max + 1024; - char *p = memget(newlen); - if (p == NULL) { - return (0); - } - if (pvt->line != NULL) { - memcpy(p, pvt->line, pvt->max); - memput(pvt->line, pvt->max); - } - pvt->max = newlen; - pvt->line = p; - } - - /* THIS CODE MUST MATCH THAT IN pwd_mkdb. */ - t = pvt->line; - l = pvt->line + pvt->max; -#define EXPAND(e) if ((e = t) == NULL) return (0); else \ - do if (t >= l) return (0); while ((*t++ = *p++) != '\0') -#define SCALAR(v) if (t + sizeof v >= l) return (0); else \ - (memmove(&(v), p, sizeof v), p += sizeof v) - EXPAND(pvt->passwd.pw_name); - EXPAND(pvt->passwd.pw_passwd); - SCALAR(pvt->passwd.pw_uid); - SCALAR(pvt->passwd.pw_gid); - SCALAR(pvt->passwd.pw_change); - EXPAND(pvt->passwd.pw_class); - EXPAND(pvt->passwd.pw_gecos); - EXPAND(pvt->passwd.pw_dir); - EXPAND(pvt->passwd.pw_shell); - SCALAR(pvt->passwd.pw_expire); - return (1); -} - -#endif /* WANT_IRS_PW */ diff --git a/src/kits/network/libbind/irs/nis.c b/src/kits/network/libbind/irs/nis.c deleted file mode 100644 index 9abc47403a..0000000000 --- a/src/kits/network/libbind/irs/nis.c +++ /dev/null @@ -1,156 +0,0 @@ -/* - * 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: nis.c,v 1.3 2005/04/27 04:56:32 sra Exp $"; -#endif - -/* Imports */ - -#include "port_before.h" - -#ifdef WANT_IRS_NIS - -#include -#include -#include -#include - -#include -#include -#include - -#include -#include -#ifdef T_NULL -#undef T_NULL /* Silence re-definition warning of T_NULL. */ -#endif -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "hesiod.h" -#include "nis_p.h" - -/* Forward */ - -static void nis_close(struct irs_acc *); -static struct __res_state * nis_res_get(struct irs_acc *); -static void nis_res_set(struct irs_acc *, struct __res_state *, - void (*)(void *)); - -/* Public */ - -struct irs_acc * -irs_nis_acc(const char *options) { - struct nis_p *nis; - struct irs_acc *acc; - char *domain; - - UNUSED(options); - - if (yp_get_default_domain(&domain) != 0) - return (NULL); - if (!(nis = memget(sizeof *nis))) { - errno = ENOMEM; - return (NULL); - } - memset(nis, 0, sizeof *nis); - if (!(acc = memget(sizeof *acc))) { - memput(nis, sizeof *nis); - errno = ENOMEM; - return (NULL); - } - memset(acc, 0x5e, sizeof *acc); - acc->private = nis; - nis->domain = strdup(domain); -#ifdef WANT_IRS_GR - acc->gr_map = irs_nis_gr; -#else - acc->gr_map = NULL; -#endif -#ifdef WANT_IRS_PW - acc->pw_map = irs_nis_pw; -#else - acc->pw_map = NULL; -#endif - acc->sv_map = irs_nis_sv; - acc->pr_map = irs_nis_pr; - acc->ho_map = irs_nis_ho; - acc->nw_map = irs_nis_nw; - acc->ng_map = irs_nis_ng; - acc->res_get = nis_res_get; - acc->res_set = nis_res_set; - acc->close = nis_close; - return (acc); -} - -/* Methods */ - -static struct __res_state * -nis_res_get(struct irs_acc *this) { - struct nis_p *nis = (struct nis_p *)this->private; - - if (nis->res == NULL) { - struct __res_state *res; - res = (struct __res_state *)malloc(sizeof *res); - if (res == NULL) - return (NULL); - memset(res, 0, sizeof *res); - nis_res_set(this, res, free); - } - - if ((nis->res->options & RES_INIT) == 0 && - res_ninit(nis->res) < 0) - return (NULL); - - return (nis->res); -} - -static void -nis_res_set(struct irs_acc *this, struct __res_state *res, - void (*free_res)(void *)) { - struct nis_p *nis = (struct nis_p *)this->private; - - if (nis->res && nis->free_res) { - res_nclose(nis->res); - (*nis->free_res)(nis->res); - } - - nis->res = res; - nis->free_res = free_res; -} - -static void -nis_close(struct irs_acc *this) { - struct nis_p *nis = (struct nis_p *)this->private; - - if (nis->res && nis->free_res) - (*nis->free_res)(nis->res); - free(nis->domain); - memput(nis, sizeof *nis); - memput(this, sizeof *this); -} - -#endif /*WANT_IRS_NIS*/ - -/*! \file */ diff --git a/src/kits/network/libbind/irs/nis_gr.c b/src/kits/network/libbind/irs/nis_gr.c deleted file mode 100644 index c7c8d83043..0000000000 --- a/src/kits/network/libbind/irs/nis_gr.c +++ /dev/null @@ -1,354 +0,0 @@ -/* - * Copyright (c) 1989, 1993, 1995 - * 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: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. 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. - * 3. All advertising materials mentioning features or use of this software - * must display the following acknowledgement: - * This product includes software developed by the University of - * California, Berkeley and its contributors. - * 4. Neither the name of the University 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 REGENTS 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. - */ - -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Portions 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: nis_gr.c,v 1.4 2005/04/27 04:56:32 sra Exp $"; -/* from getgrent.c 8.2 (Berkeley) 3/21/94"; */ -/* from BSDI Id: getgrent.c,v 2.8 1996/05/28 18:15:14 bostic Exp $ */ -#endif /* LIBC_SCCS and not lint */ - -/* Imports */ - -#include "port_before.h" - -#if !defined(WANT_IRS_GR) || !defined(WANT_IRS_NIS) -static int __bind_irs_gr_unneeded; -#else - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include - -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "nis_p.h" - -/* Definitions */ - -struct pvt { - int needrewind; - char * nis_domain; - char * curkey_data; - int curkey_len; - char * curval_data; - int curval_len; - /*%< - * Need space to store the entries read from the group file. - * The members list also needs space per member, and the - * strings making up the user names must be allocated - * somewhere. Rather than doing lots of small allocations, - * we keep one buffer and resize it as needed. - */ - struct group group; - size_t nmemb; /*%< Malloc'd max index of gr_mem[]. */ - char * membuf; - size_t membufsize; -}; - -enum do_what { do_none = 0x0, do_key = 0x1, do_val = 0x2, do_all = 0x3 }; - -static /*const*/ char group_bygid[] = "group.bygid"; -static /*const*/ char group_byname[] = "group.byname"; - -/* Forward */ - -static void gr_close(struct irs_gr *); -static struct group * gr_next(struct irs_gr *); -static struct group * gr_byname(struct irs_gr *, const char *); -static struct group * gr_bygid(struct irs_gr *, gid_t); -static void gr_rewind(struct irs_gr *); -static void gr_minimize(struct irs_gr *); - -static struct group * makegroupent(struct irs_gr *); -static void nisfree(struct pvt *, enum do_what); - -/* Public */ - -struct irs_gr * -irs_nis_gr(struct irs_acc *this) { - struct irs_gr *gr; - struct pvt *pvt; - - if (!(gr = memget(sizeof *gr))) { - errno = ENOMEM; - return (NULL); - } - memset(gr, 0x5e, sizeof *gr); - if (!(pvt = memget(sizeof *pvt))) { - memput(gr, sizeof *gr); - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - pvt->needrewind = 1; - pvt->nis_domain = ((struct nis_p *)this->private)->domain; - gr->private = pvt; - gr->close = gr_close; - gr->next = gr_next; - gr->byname = gr_byname; - gr->bygid = gr_bygid; - gr->rewind = gr_rewind; - gr->list = make_group_list; - gr->minimize = gr_minimize; - gr->res_get = NULL; - gr->res_set = NULL; - return (gr); -} - -/* Methods */ - -static void -gr_close(struct irs_gr *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->group.gr_mem) - free(pvt->group.gr_mem); - if (pvt->membuf) - free(pvt->membuf); - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct group * -gr_next(struct irs_gr *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct group *rval; - int r; - - do { - if (pvt->needrewind) { - nisfree(pvt, do_all); - r = yp_first(pvt->nis_domain, group_byname, - &pvt->curkey_data, &pvt->curkey_len, - &pvt->curval_data, &pvt->curval_len); - pvt->needrewind = 0; - } else { - char *newkey_data; - int newkey_len; - - nisfree(pvt, do_val); - r = yp_next(pvt->nis_domain, group_byname, - pvt->curkey_data, pvt->curkey_len, - &newkey_data, &newkey_len, - &pvt->curval_data, &pvt->curval_len); - nisfree(pvt, do_key); - pvt->curkey_data = newkey_data; - pvt->curkey_len = newkey_len; - } - if (r != 0) { - errno = ENOENT; - return (NULL); - } - rval = makegroupent(this); - } while (rval == NULL); - return (rval); -} - -static struct group * -gr_byname(struct irs_gr *this, const char *name) { - struct pvt *pvt = (struct pvt *)this->private; - int r; - - nisfree(pvt, do_val); - r = yp_match(pvt->nis_domain, group_byname, name, strlen(name), - &pvt->curval_data, &pvt->curval_len); - if (r != 0) { - errno = ENOENT; - return (NULL); - } - return (makegroupent(this)); -} - -static struct group * -gr_bygid(struct irs_gr *this, gid_t gid) { - struct pvt *pvt = (struct pvt *)this->private; - char tmp[sizeof "4294967295"]; - int r; - - nisfree(pvt, do_val); - (void) sprintf(tmp, "%u", (unsigned int)gid); - r = yp_match(pvt->nis_domain, group_bygid, tmp, strlen(tmp), - &pvt->curval_data, &pvt->curval_len); - if (r != 0) { - errno = ENOENT; - return (NULL); - } - return (makegroupent(this)); -} - -static void -gr_rewind(struct irs_gr *this) { - struct pvt *pvt = (struct pvt *)this->private; - - pvt->needrewind = 1; -} - -static void -gr_minimize(struct irs_gr *this) { - UNUSED(this); - /* NOOP */ -} - -/* Private */ - -static struct group * -makegroupent(struct irs_gr *this) { - struct pvt *pvt = (struct pvt *)this->private; - unsigned int num_members = 0; - char *cp, **new; - u_long t; - - if (pvt->group.gr_mem) { - free(pvt->group.gr_mem); - pvt->group.gr_mem = NULL; - pvt->nmemb = 0; - } - if (pvt->membuf) - free(pvt->membuf); - pvt->membuf = pvt->curval_data; - pvt->curval_data = NULL; - - cp = pvt->membuf; - pvt->group.gr_name = cp; - if (!(cp = strchr(cp, ':'))) - goto cleanup; - *cp++ = '\0'; - - pvt->group.gr_passwd = cp; - if (!(cp = strchr(cp, ':'))) - goto cleanup; - *cp++ = '\0'; - - errno = 0; - t = strtoul(cp, NULL, 10); - if (errno == ERANGE) - goto cleanup; - pvt->group.gr_gid = (gid_t) t; - if (!(cp = strchr(cp, ':'))) - goto cleanup; - cp++; - - if (*cp && cp[strlen(cp)-1] == '\n') - cp[strlen(cp)-1] = '\0'; - - /* - * Parse the members out. - */ - while (*cp) { - if (num_members+1 >= pvt->nmemb || pvt->group.gr_mem == NULL) { - pvt->nmemb += 10; - new = realloc(pvt->group.gr_mem, - pvt->nmemb * sizeof(char *)); - if (new == NULL) - goto cleanup; - pvt->group.gr_mem = new; - } - pvt->group.gr_mem[num_members++] = cp; - if (!(cp = strchr(cp, ','))) - break; - *cp++ = '\0'; - } - if (pvt->group.gr_mem == NULL) { - pvt->group.gr_mem = malloc(sizeof(char*)); - if (!pvt->group.gr_mem) - goto cleanup; - pvt->nmemb = 1; - } - pvt->group.gr_mem[num_members] = NULL; - - return (&pvt->group); - - cleanup: - if (pvt->group.gr_mem) { - free(pvt->group.gr_mem); - pvt->group.gr_mem = NULL; - pvt->nmemb = 0; - } - if (pvt->membuf) { - free(pvt->membuf); - pvt->membuf = NULL; - } - return (NULL); -} - -static void -nisfree(struct pvt *pvt, enum do_what do_what) { - if ((do_what & do_key) && pvt->curkey_data) { - free(pvt->curkey_data); - pvt->curkey_data = NULL; - } - if ((do_what & do_val) && pvt->curval_data) { - free(pvt->curval_data); - pvt->curval_data = NULL; - } -} - -#endif /* WANT_IRS_GR && WANT_IRS_NIS */ -/*! \file */ diff --git a/src/kits/network/libbind/irs/nis_ho.c b/src/kits/network/libbind/irs/nis_ho.c deleted file mode 100644 index 0799613f49..0000000000 --- a/src/kits/network/libbind/irs/nis_ho.c +++ /dev/null @@ -1,535 +0,0 @@ -/* - * 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: nis_ho.c,v 1.5 2005/04/27 04:56:32 sra Exp $"; -#endif /* LIBC_SCCS and not lint */ - -/* Imports */ - -#include "port_before.h" - -#ifndef WANT_IRS_NIS -static int __bind_irs_nis_unneeded; -#else - -#include -#include -#include -#include -#include -#include -#ifdef T_NULL -#undef T_NULL /* Silence re-definition warning of T_NULL. */ -#endif -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "nis_p.h" - -/* Definitions */ - -#define MAXALIASES 35 -#define MAXADDRS 35 - -#if PACKETSZ > 1024 -#define MAXPACKET PACKETSZ -#else -#define MAXPACKET 1024 -#endif - -struct pvt { - int needrewind; - char * nis_domain; - char * curkey_data; - int curkey_len; - char * curval_data; - int curval_len; - struct hostent host; - char * h_addr_ptrs[MAXADDRS + 1]; - char * host_aliases[MAXALIASES + 1]; - char hostbuf[8*1024]; - u_char host_addr[16]; /*%< IPv4 or IPv6 */ - struct __res_state *res; - void (*free_res)(void *); -}; - -enum do_what { do_none = 0x0, do_key = 0x1, do_val = 0x2, do_all = 0x3 }; - -static const u_char mapped[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0xff,0xff }; -static const u_char tunnelled[] = { 0,0, 0,0, 0,0, 0,0, 0,0, 0,0 }; -static /*const*/ char hosts_byname[] = "hosts.byname"; -static /*const*/ char hosts_byaddr[] = "hosts.byaddr"; -static /*const*/ char ipnode_byname[] = "ipnode.byname"; -static /*const*/ char ipnode_byaddr[] = "ipnode.byaddr"; -static /*const*/ char yp_multi[] = "YP_MULTI_"; - -/* Forwards */ - -static void ho_close(struct irs_ho *this); -static struct hostent * ho_byname(struct irs_ho *this, const char *name); -static struct hostent * ho_byname2(struct irs_ho *this, const char *name, - int af); -static struct hostent * ho_byaddr(struct irs_ho *this, const void *addr, - int len, int af); -static struct hostent * ho_next(struct irs_ho *this); -static void ho_rewind(struct irs_ho *this); -static void ho_minimize(struct irs_ho *this); -static struct __res_state * ho_res_get(struct irs_ho *this); -static void ho_res_set(struct irs_ho *this, - struct __res_state *res, - void (*free_res)(void *)); -static struct addrinfo * ho_addrinfo(struct irs_ho *this, const char *name, - const struct addrinfo *pai); - -static struct hostent * makehostent(struct irs_ho *this); -static void nisfree(struct pvt *, enum do_what); -static int init(struct irs_ho *this); - -/* Public */ - -struct irs_ho * -irs_nis_ho(struct irs_acc *this) { - struct irs_ho *ho; - struct pvt *pvt; - - if (!(pvt = memget(sizeof *pvt))) { - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - if (!(ho = memget(sizeof *ho))) { - memput(pvt, sizeof *pvt); - errno = ENOMEM; - return (NULL); - } - memset(ho, 0x5e, sizeof *ho); - pvt->needrewind = 1; - pvt->nis_domain = ((struct nis_p *)this->private)->domain; - ho->private = pvt; - ho->close = ho_close; - ho->byname = ho_byname; - ho->byname2 = ho_byname2; - ho->byaddr = ho_byaddr; - ho->next = ho_next; - ho->rewind = ho_rewind; - ho->minimize = ho_minimize; - ho->res_set = ho_res_set; - ho->res_get = ho_res_get; - ho->addrinfo = ho_addrinfo; - return (ho); -} - -/* Methods */ - -static void -ho_close(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - - ho_minimize(this); - nisfree(pvt, do_all); - if (pvt->res && pvt->free_res) - (*pvt->free_res)(pvt->res); - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct hostent * -ho_byname(struct irs_ho *this, const char *name) { - struct pvt *pvt = (struct pvt *)this->private; - struct hostent *hp; - - if (init(this) == -1) - return (NULL); - - if (pvt->res->options & RES_USE_INET6) { - hp = ho_byname2(this, name, AF_INET6); - if (hp) - return (hp); - } - return (ho_byname2(this, name, AF_INET)); -} - -static struct hostent * -ho_byname2(struct irs_ho *this, const char *name, int af) { - struct pvt *pvt = (struct pvt *)this->private; - int r; - char *tmp; - - UNUSED(af); - - if (init(this) == -1) - return (NULL); - - nisfree(pvt, do_val); - - strcpy(pvt->hostbuf, yp_multi); - strncat(pvt->hostbuf, name, sizeof(pvt->hostbuf) - sizeof(yp_multi)); - pvt->hostbuf[sizeof(pvt->hostbuf) - 1] = '\0'; - for (r = sizeof(yp_multi) - 1; pvt->hostbuf[r] != '\0'; r++) - if (isupper((unsigned char)pvt->hostbuf[r])) - tolower(pvt->hostbuf[r]); - - tmp = pvt->hostbuf; - r = yp_match(pvt->nis_domain, ipnode_byname, tmp, - strlen(tmp), &pvt->curval_data, &pvt->curval_len); - if (r != 0) { - tmp = pvt->hostbuf + sizeof(yp_multi) - 1; - r = yp_match(pvt->nis_domain, ipnode_byname, tmp, - strlen(tmp), &pvt->curval_data, &pvt->curval_len); - } - if (r != 0) { - tmp = pvt->hostbuf; - r = yp_match(pvt->nis_domain, hosts_byname, tmp, - strlen(tmp), &pvt->curval_data, &pvt->curval_len); - } - if (r != 0) { - tmp = pvt->hostbuf + sizeof(yp_multi) - 1; - r = yp_match(pvt->nis_domain, hosts_byname, tmp, - strlen(tmp), &pvt->curval_data, &pvt->curval_len); - } - if (r != 0) { - RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND); - return (NULL); - } - return (makehostent(this)); -} - -static struct hostent * -ho_byaddr(struct irs_ho *this, const void *addr, int len, int af) { - struct pvt *pvt = (struct pvt *)this->private; - char tmp[sizeof "ffff:ffff:ffff:ffff:ffff:ffff:255.255.255.255"]; - const u_char *uaddr = addr; - int r; - - if (init(this) == -1) - return (NULL); - - if (af == AF_INET6 && len == IN6ADDRSZ && - (!memcmp(uaddr, mapped, sizeof mapped) || - !memcmp(uaddr, tunnelled, sizeof tunnelled))) { - /* Unmap. */ - addr = (const u_char *)addr + sizeof mapped; - uaddr += sizeof mapped; - af = AF_INET; - len = INADDRSZ; - } - if (inet_ntop(af, uaddr, tmp, sizeof tmp) == NULL) { - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - return (NULL); - } - nisfree(pvt, do_val); - r = yp_match(pvt->nis_domain, ipnode_byaddr, tmp, strlen(tmp), - &pvt->curval_data, &pvt->curval_len); - if (r != 0) - r = yp_match(pvt->nis_domain, hosts_byaddr, tmp, strlen(tmp), - &pvt->curval_data, &pvt->curval_len); - if (r != 0) { - RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND); - return (NULL); - } - return (makehostent(this)); -} - -static struct hostent * -ho_next(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct hostent *rval; - int r; - - if (init(this) == -1) - return (NULL); - - do { - if (pvt->needrewind) { - nisfree(pvt, do_all); - r = yp_first(pvt->nis_domain, hosts_byaddr, - &pvt->curkey_data, &pvt->curkey_len, - &pvt->curval_data, &pvt->curval_len); - pvt->needrewind = 0; - } else { - char *newkey_data; - int newkey_len; - - nisfree(pvt, do_val); - r = yp_next(pvt->nis_domain, hosts_byaddr, - pvt->curkey_data, pvt->curkey_len, - &newkey_data, &newkey_len, - &pvt->curval_data, &pvt->curval_len); - nisfree(pvt, do_key); - pvt->curkey_data = newkey_data; - pvt->curkey_len = newkey_len; - } - if (r != 0) { - RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND); - return (NULL); - } - rval = makehostent(this); - } while (rval == NULL); - return (rval); -} - -static void -ho_rewind(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - - pvt->needrewind = 1; -} - -static void -ho_minimize(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->res) - res_nclose(pvt->res); -} - -static struct __res_state * -ho_res_get(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->res) { - struct __res_state *res; - res = (struct __res_state *)malloc(sizeof *res); - if (!res) { - errno = ENOMEM; - return (NULL); - } - memset(res, 0, sizeof *res); - ho_res_set(this, res, free); - } - - return (pvt->res); -} - -static void -ho_res_set(struct irs_ho *this, struct __res_state *res, - void (*free_res)(void *)) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->res && pvt->free_res) { - res_nclose(pvt->res); - (*pvt->free_res)(pvt->res); - } - - pvt->res = res; - pvt->free_res = free_res; -} - -struct nis_res_target { - struct nis_res_target *next; - int family; -}; - -/* XXX */ -extern struct addrinfo *hostent2addrinfo __P((struct hostent *, - const struct addrinfo *pai)); - -static struct addrinfo * -ho_addrinfo(struct irs_ho *this, const char *name, const struct addrinfo *pai) -{ - struct pvt *pvt = (struct pvt *)this->private; - struct hostent *hp; - struct nis_res_target q, q2, *p; - struct addrinfo sentinel, *cur; - - memset(&q, 0, sizeof(q2)); - memset(&q2, 0, sizeof(q2)); - memset(&sentinel, 0, sizeof(sentinel)); - cur = &sentinel; - - switch(pai->ai_family) { - case AF_UNSPEC: /*%< INET6 then INET4 */ - q.family = AF_INET6; - q.next = &q2; - q2.family = AF_INET; - break; - case AF_INET6: - q.family = AF_INET6; - break; - case AF_INET: - q.family = AF_INET; - break; - default: - RES_SET_H_ERRNO(pvt->res, NO_RECOVERY); /*%< ??? */ - return(NULL); - } - - for (p = &q; p; p = p->next) { - struct addrinfo *ai; - - hp = (*this->byname2)(this, name, p->family); - if (hp == NULL) { - /* byname2 should've set an appropriate error */ - continue; - } - if ((hp->h_name == NULL) || (hp->h_name[0] == 0) || - (hp->h_addr_list[0] == NULL)) { - RES_SET_H_ERRNO(pvt->res, NO_RECOVERY); - continue; - } - ai = hostent2addrinfo(hp, pai); - if (ai) { - cur->ai_next = ai; - while (cur && cur->ai_next) - cur = cur->ai_next; - } - } - - if (sentinel.ai_next == NULL) - RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND); - - return(sentinel.ai_next); -} - -/* Private */ - -/*% -ipnodes: -::1 localhost -127.0.0.1 localhost -1.2.3.4 FOO bar -1.2.6.4 FOO bar -1.2.6.5 host - -ipnodes.byname: -YP_MULTI_localhost ::1,127.0.0.1 localhost -YP_MULTI_foo 1.2.3.4,1.2.6.4 FOO bar -YP_MULTI_bar 1.2.3.4,1.2.6.4 FOO bar -host 1.2.6.5 host - -hosts.byname: -localhost 127.0.0.1 localhost -host 1.2.6.5 host -YP_MULTI_foo 1.2.3.4,1.2.6.4 FOO bar -YP_MULTI_bar 1.2.3.4,1.2.6.4 FOO bar -*/ - -static struct hostent * -makehostent(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - static const char spaces[] = " \t"; - char *cp, **q, *p, *comma, *ap; - int af = 0, len = 0; - int multi = 0; - int addr = 0; - - p = pvt->curval_data; - if ((cp = strpbrk(p, "#\n")) != NULL) - *cp = '\0'; - if (!(cp = strpbrk(p, spaces))) - return (NULL); - *cp++ = '\0'; - ap = pvt->hostbuf; - do { - if ((comma = strchr(p, ',')) != NULL) { - *comma++ = '\0'; - multi = 1; - } - if ((ap + IN6ADDRSZ) > (pvt->hostbuf + sizeof(pvt->hostbuf))) - break; - if ((pvt->res->options & RES_USE_INET6) && - inet_pton(AF_INET6, p, ap) > 0) { - af = AF_INET6; - len = IN6ADDRSZ; - } else if (inet_pton(AF_INET, p, pvt->host_addr) > 0) { - if (pvt->res->options & RES_USE_INET6) { - map_v4v6_address((char*)pvt->host_addr, ap); - af = AF_INET6; - len = IN6ADDRSZ; - } else { - af = AF_INET; - len = INADDRSZ; - } - } else { - if (!multi) - return (NULL); - continue; - } - if (addr < MAXADDRS) { - pvt->h_addr_ptrs[addr++] = ap; - pvt->h_addr_ptrs[addr] = NULL; - ap += len; - } - } while ((p = comma) != NULL); - if (ap == pvt->hostbuf) - return (NULL); - pvt->host.h_addr_list = pvt->h_addr_ptrs; - pvt->host.h_length = len; - pvt->host.h_addrtype = af; - cp += strspn(cp, spaces); - pvt->host.h_name = cp; - q = pvt->host.h_aliases = pvt->host_aliases; - if ((cp = strpbrk(cp, spaces)) != NULL) - *cp++ = '\0'; - while (cp && *cp) { - if (*cp == ' ' || *cp == '\t') { - cp++; - continue; - } - if (q < &pvt->host_aliases[MAXALIASES]) - *q++ = cp; - if ((cp = strpbrk(cp, spaces)) != NULL) - *cp++ = '\0'; - } - *q = NULL; - RES_SET_H_ERRNO(pvt->res, NETDB_SUCCESS); - return (&pvt->host); -} - -static void -nisfree(struct pvt *pvt, enum do_what do_what) { - if ((do_what & do_key) && pvt->curkey_data) { - free(pvt->curkey_data); - pvt->curkey_data = NULL; - } - if ((do_what & do_val) && pvt->curval_data) { - free(pvt->curval_data); - pvt->curval_data = NULL; - } -} - -static int -init(struct irs_ho *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->res && !ho_res_get(this)) - return (-1); - if (((pvt->res->options & RES_INIT) == 0) && - res_ninit(pvt->res) == -1) - return (-1); - return (0); -} -#endif /*WANT_IRS_NIS*/ - -/*! \file */ diff --git a/src/kits/network/libbind/irs/nis_ng.c b/src/kits/network/libbind/irs/nis_ng.c deleted file mode 100644 index ac6330536a..0000000000 --- a/src/kits/network/libbind/irs/nis_ng.c +++ /dev/null @@ -1,304 +0,0 @@ -/* - * 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: nis_ng.c,v 1.4 2005/04/27 04:56:32 sra Exp $"; -#endif - -/* Imports */ - -#include "port_before.h" - -#ifndef WANT_IRS_NIS -static int __bind_irs_nis_unneeded; -#else - -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include -#ifdef T_NULL -#undef T_NULL /* Silence re-definition warning of T_NULL. */ -#endif -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "nis_p.h" - -/* Definitions */ - -struct tmpgrp { - const char * name; - const char * host; - const char * user; - const char * domain; - struct tmpgrp * next; -}; - -struct pvt { - char * nis_domain; - struct tmpgrp * tmp; - struct tmpgrp * cur; - char * tmpgroup; -}; - -enum do_what { do_none = 0x0, do_key = 0x1, do_val = 0x2, do_all = 0x3 }; - -static /*const*/ char netgroup_map[] = "netgroup"; - -/* Forward */ - -static void ng_close(struct irs_ng *); -static int ng_next(struct irs_ng *, const char **, - const char **, const char **); -static int ng_test(struct irs_ng *, - const char *, const char *, - const char *, const char *); -static void ng_rewind(struct irs_ng *, const char *); -static void ng_minimize(struct irs_ng *); - -static void add_group_to_list(struct pvt *, const char *, int); -static void add_tuple_to_list(struct pvt *, const char *, char *); -static void tmpfree(struct pvt *); - -/* Public */ - -struct irs_ng * -irs_nis_ng(struct irs_acc *this) { - struct irs_ng *ng; - struct pvt *pvt; - - if (!(ng = memget(sizeof *ng))) { - errno = ENOMEM; - return (NULL); - } - memset(ng, 0x5e, sizeof *ng); - if (!(pvt = memget(sizeof *pvt))) { - memput(ng, sizeof *ng); - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - pvt->nis_domain = ((struct nis_p *)this->private)->domain; - ng->private = pvt; - ng->close = ng_close; - ng->next = ng_next; - ng->test = ng_test; - ng->rewind = ng_rewind; - ng->minimize = ng_minimize; - return (ng); -} - -/* Methods */ - -static void -ng_close(struct irs_ng *this) { - struct pvt *pvt = (struct pvt *)this->private; - - tmpfree(pvt); - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static int -ng_next(struct irs_ng *this, const char **host, const char **user, const char **domain) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->cur) - return (0); - *host = pvt->cur->host; - *user = pvt->cur->user; - *domain = pvt->cur->domain; - pvt->cur = pvt->cur->next; - return (1); -} - -static int -ng_test(struct irs_ng *this, const char *name, - const char *host, const char *user, const char *domain) -{ - struct pvt *pvt = (struct pvt *)this->private; - struct tmpgrp *cur; - - tmpfree(pvt); - add_group_to_list(pvt, name, strlen(name)); - for (cur = pvt->tmp; cur; cur = cur->next) { - if ((!host || !cur->host || !strcmp(host, cur->host)) && - (!user || !cur->user || !strcmp(user, cur->user)) && - (!domain || !cur->domain || !strcmp(domain, cur->domain))) - break; - } - tmpfree(pvt); - return ((cur == NULL) ? 0 : 1); -} - -static void -ng_rewind(struct irs_ng *this, const char *name) { - struct pvt *pvt = (struct pvt *)this->private; - - /* Either hand back or free the existing list. */ - if (pvt->tmpgroup) { - if (pvt->tmp && !strcmp(pvt->tmpgroup, name)) - goto reset; - tmpfree(pvt); - } - pvt->tmpgroup = strdup(name); - add_group_to_list(pvt, name, strlen(name)); - reset: - pvt->cur = pvt->tmp; -} - -static void -ng_minimize(struct irs_ng *this) { - UNUSED(this); - /* NOOP */ -} - -/* Private */ - -static void -add_group_to_list(struct pvt *pvt, const char *name, int len) { - char *vdata, *cp, *np; - struct tmpgrp *tmp; - int vlen, r; - char *nametmp; - - /* Don't add the same group to the list more than once. */ - for (tmp = pvt->tmp; tmp; tmp = tmp->next) - if (!strcmp(tmp->name, name)) - return; - - DE_CONST(name, nametmp); - r = yp_match(pvt->nis_domain, netgroup_map, nametmp, len, - &vdata, &vlen); - if (r == 0) { - cp = vdata; - if (*cp && cp[strlen(cp)-1] == '\n') - cp[strlen(cp)-1] = '\0'; - for ( ; cp; cp = np) { - np = strchr(cp, ' '); - if (np) - *np++ = '\0'; - if (*cp == '(') - add_tuple_to_list(pvt, name, cp); - else - add_group_to_list(pvt, cp, strlen(cp)); - } - free(vdata); - } -} - -static void -add_tuple_to_list(struct pvt *pvt, const char *name, char *cp) { - struct tmpgrp *tmp; - char *tp, *np; - - INSIST(*cp++ == '('); - - tmp = malloc(sizeof *tmp + strlen(name) + sizeof '\0' + - strlen(cp) - sizeof ')'); - if (!tmp) - return; - memset(tmp, 0, sizeof *tmp); - tp = ((char *)tmp) + sizeof *tmp; - - /* Name */ - strcpy(tp, name); - tmp->name = tp; - tp += strlen(tp) + 1; - - /* Host */ - if (!(np = strchr(cp, ','))) - goto cleanup; - *np++ = '\0'; - strcpy(tp, cp); - tmp->host = tp; - tp += strlen(tp) + 1; - cp = np; - - /* User */ - if (!(np = strchr(cp, ','))) - goto cleanup; - *np++ = '\0'; - strcpy(tp, cp); - tmp->user = tp; - tp += strlen(tp) + 1; - cp = np; - - /* Domain */ - if (!(np = strchr(cp, ')'))) - goto cleanup; - *np++ = '\0'; - strcpy(tp, cp); - tmp->domain = tp; - - /* - * Empty string in file means wildcard, but - * NULL string in return value means wildcard. - */ - if (!*tmp->host) - tmp->host = NULL; - if (!*tmp->user) - tmp->user = NULL; - if (!*tmp->domain) - tmp->domain = NULL; - - /* Add to list (LIFO). */ - tmp->next = pvt->tmp; - pvt->tmp = tmp; - return; - - cleanup: - free(tmp); -} - -static void -tmpfree(struct pvt *pvt) { - struct tmpgrp *cur, *next; - - if (pvt->tmpgroup) { - free(pvt->tmpgroup); - pvt->tmpgroup = NULL; - } - for (cur = pvt->tmp; cur; cur = next) { - next = cur->next; - free(cur); - } - pvt->tmp = NULL; -} - -#endif /*WANT_IRS_NIS*/ - -/*! \file */ diff --git a/src/kits/network/libbind/irs/nis_nw.c b/src/kits/network/libbind/irs/nis_nw.c deleted file mode 100644 index c61e871ea9..0000000000 --- a/src/kits/network/libbind/irs/nis_nw.c +++ /dev/null @@ -1,385 +0,0 @@ -/* - * 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: nis_nw.c,v 1.4 2005/04/27 04:56:33 sra Exp $"; -#endif /* LIBC_SCCS and not lint */ - -/* Imports */ - -#include "port_before.h" - -#ifndef WANT_IRS_NIS -static int __bind_irs_nis_unneeded; -#else - -#include -#include - -#include -#include -#include -#ifdef T_NULL -#undef T_NULL /* Silence re-definition warning of T_NULL. */ -#endif -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "nis_p.h" - -/* Definitions */ - -#define MAXALIASES 35 -#define MAXADDRSIZE 4 - -struct pvt { - int needrewind; - char * nis_domain; - char * curkey_data; - int curkey_len; - char * curval_data; - int curval_len; - - struct nwent nwent; - char * nwbuf; - - char * aliases[MAXALIASES + 1]; - u_char addr[MAXADDRSIZE]; - - struct __res_state * res; - void (*free_res)(void *); -}; - -enum do_what { do_none = 0x0, do_key = 0x1, do_val = 0x2, do_all = 0x3 }; - -static /*const*/ char networks_byname[] = "networks.byname"; -static /*const*/ char networks_byaddr[] = "networks.byaddr"; - -/* Forward */ - -static void nw_close(struct irs_nw *); -static struct nwent * nw_byname(struct irs_nw *, const char *, int); -static struct nwent * nw_byaddr(struct irs_nw *, void *, int, int); -static struct nwent * nw_next(struct irs_nw *); -static void nw_rewind(struct irs_nw *); -static void nw_minimize(struct irs_nw *); -static struct __res_state * nw_res_get(struct irs_nw *this); -static void nw_res_set(struct irs_nw *this, - struct __res_state *res, - void (*free_res)(void *)); - -static struct nwent * makenwent(struct irs_nw *this); -static void nisfree(struct pvt *, enum do_what); -static int init(struct irs_nw *this); - -/* Public */ - -struct irs_nw * -irs_nis_nw(struct irs_acc *this) { - struct irs_nw *nw; - struct pvt *pvt; - - if (!(pvt = memget(sizeof *pvt))) { - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - if (!(nw = memget(sizeof *nw))) { - memput(pvt, sizeof *pvt); - errno = ENOMEM; - return (NULL); - } - memset(nw, 0x5e, sizeof *nw); - pvt->needrewind = 1; - pvt->nis_domain = ((struct nis_p *)this->private)->domain; - nw->private = pvt; - nw->close = nw_close; - nw->byname = nw_byname; - nw->byaddr = nw_byaddr; - nw->next = nw_next; - nw->rewind = nw_rewind; - nw->minimize = nw_minimize; - nw->res_get = nw_res_get; - nw->res_set = nw_res_set; - return (nw); -} - -/* Methods */ - -static void -nw_close(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - nw_minimize(this); - if (pvt->res && pvt->free_res) - (*pvt->free_res)(pvt->res); - if (pvt->nwbuf) - free(pvt->nwbuf); - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct nwent * -nw_byaddr(struct irs_nw *this, void *net, int length, int af) { - struct pvt *pvt = (struct pvt *)this->private; - char tmp[sizeof "255.255.255.255/32"], *t; - int r; - - if (init(this) == -1) - return (NULL); - - if (af != AF_INET) { - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - errno = EAFNOSUPPORT; - return (NULL); - } - nisfree(pvt, do_val); - /* Try it with /CIDR first. */ - if (inet_net_ntop(AF_INET, net, length, tmp, sizeof tmp) == NULL) { - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - return (NULL); - } - r = yp_match(pvt->nis_domain, networks_byaddr, tmp, strlen(tmp), - &pvt->curval_data, &pvt->curval_len); - if (r != 0) { - /* Give it a shot without the /CIDR. */ - if ((t = strchr(tmp, '/')) != NULL) { - *t = '\0'; - r = yp_match(pvt->nis_domain, networks_byaddr, - tmp, strlen(tmp), - &pvt->curval_data, &pvt->curval_len); - } - if (r != 0) { - RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND); - return (NULL); - } - } - return (makenwent(this)); -} - -static struct nwent * -nw_byname(struct irs_nw *this, const char *name, int af) { - struct pvt *pvt = (struct pvt *)this->private; - int r; - char *tmp; - - if (init(this) == -1) - return (NULL); - - if (af != AF_INET) { - RES_SET_H_ERRNO(pvt->res, NETDB_INTERNAL); - errno = EAFNOSUPPORT; - return (NULL); - } - nisfree(pvt, do_val); - DE_CONST(name, tmp); - r = yp_match(pvt->nis_domain, networks_byname, tmp, - strlen(tmp), &pvt->curval_data, &pvt->curval_len); - if (r != 0) { - RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND); - return (NULL); - } - return (makenwent(this)); -} - -static void -nw_rewind(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - pvt->needrewind = 1; -} - -static struct nwent * -nw_next(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct nwent *rval; - int r; - - if (init(this) == -1) - return (NULL); - - do { - if (pvt->needrewind) { - nisfree(pvt, do_all); - r = yp_first(pvt->nis_domain, networks_byaddr, - &pvt->curkey_data, &pvt->curkey_len, - &pvt->curval_data, &pvt->curval_len); - pvt->needrewind = 0; - } else { - char *newkey_data; - int newkey_len; - - nisfree(pvt, do_val); - r = yp_next(pvt->nis_domain, networks_byaddr, - pvt->curkey_data, pvt->curkey_len, - &newkey_data, &newkey_len, - &pvt->curval_data, &pvt->curval_len); - nisfree(pvt, do_key); - pvt->curkey_data = newkey_data; - pvt->curkey_len = newkey_len; - } - if (r != 0) { - RES_SET_H_ERRNO(pvt->res, HOST_NOT_FOUND); - return (NULL); - } - rval = makenwent(this); - } while (rval == NULL); - return (rval); -} - -static void -nw_minimize(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->res) - res_nclose(pvt->res); -} - -static struct __res_state * -nw_res_get(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->res) { - struct __res_state *res; - res = (struct __res_state *)malloc(sizeof *res); - if (!res) { - errno = ENOMEM; - return (NULL); - } - memset(res, 0, sizeof *res); - nw_res_set(this, res, free); - } - - return (pvt->res); -} - -static void -nw_res_set(struct irs_nw *this, struct __res_state *res, - void (*free_res)(void *)) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->res && pvt->free_res) { - res_nclose(pvt->res); - (*pvt->free_res)(pvt->res); - } - - pvt->res = res; - pvt->free_res = free_res; -} - -/* Private */ - -static struct nwent * -makenwent(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - static const char spaces[] = " \t"; - char *t, *cp, **ap; - - if (pvt->nwbuf) - free(pvt->nwbuf); - pvt->nwbuf = pvt->curval_data; - pvt->curval_data = NULL; - - if ((cp = strpbrk(pvt->nwbuf, "#\n")) != NULL) - *cp = '\0'; - cp = pvt->nwbuf; - - /* Name */ - pvt->nwent.n_name = cp; - cp += strcspn(cp, spaces); - if (!*cp) - goto cleanup; - *cp++ = '\0'; - cp += strspn(cp, spaces); - - /* Network */ - pvt->nwent.n_addrtype = AF_INET; - t = cp + strcspn(cp, spaces); - if (*t) - *t++ = '\0'; - pvt->nwent.n_length = inet_net_pton(AF_INET, cp, - pvt->addr, sizeof pvt->addr); - if (pvt->nwent.n_length < 0) - goto cleanup; - pvt->nwent.n_addr = pvt->addr; - cp = t; - - /* Aliases */ - ap = pvt->nwent.n_aliases = pvt->aliases; - while (*cp) { - if (ap >= &pvt->aliases[MAXALIASES]) - break; - *ap++ = cp; - cp += strcspn(cp, spaces); - if (!*cp) - break; - *cp++ = '\0'; - cp += strspn(cp, spaces); - } - *ap = NULL; - - return (&pvt->nwent); - - cleanup: - if (pvt->nwbuf) { - free(pvt->nwbuf); - pvt->nwbuf = NULL; - } - return (NULL); -} - -static void -nisfree(struct pvt *pvt, enum do_what do_what) { - if ((do_what & do_key) && pvt->curkey_data) { - free(pvt->curkey_data); - pvt->curkey_data = NULL; - } - if ((do_what & do_val) && pvt->curval_data) { - free(pvt->curval_data); - pvt->curval_data = NULL; - } -} - -static int -init(struct irs_nw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (!pvt->res && !nw_res_get(this)) - return (-1); - if (((pvt->res->options & RES_INIT) == 0) && - res_ninit(pvt->res) == -1) - return (-1); - return (0); -} - -#endif /*WANT_IRS_NIS*/ - -/*! \file */ diff --git a/src/kits/network/libbind/irs/nis_p.h b/src/kits/network/libbind/irs/nis_p.h deleted file mode 100644 index 70e2948d67..0000000000 --- a/src/kits/network/libbind/irs/nis_p.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * 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. - */ - -/* - * $Id: nis_p.h,v 1.3 2005/04/27 04:56:33 sra Exp $ - */ - -/*! \file - * \brief - * nis_p.h - private include file for the NIS functions. - */ - -/*% - * Object state. - */ -struct nis_p { - char * domain; - struct __res_state * res; - void (*free_res) __P((void *)); -}; - - -/* - * Methods. - */ - -extern struct irs_gr * irs_nis_gr __P((struct irs_acc *)); -extern struct irs_pw * irs_nis_pw __P((struct irs_acc *)); -extern struct irs_sv * irs_nis_sv __P((struct irs_acc *)); -extern struct irs_pr * irs_nis_pr __P((struct irs_acc *)); -extern struct irs_ho * irs_nis_ho __P((struct irs_acc *)); -extern struct irs_nw * irs_nis_nw __P((struct irs_acc *)); -extern struct irs_ng * irs_nis_ng __P((struct irs_acc *)); diff --git a/src/kits/network/libbind/irs/nis_pr.c b/src/kits/network/libbind/irs/nis_pr.c deleted file mode 100644 index 4995550f82..0000000000 --- a/src/kits/network/libbind/irs/nis_pr.c +++ /dev/null @@ -1,302 +0,0 @@ -/* - * 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: nis_pr.c,v 1.4 2005/04/27 04:56:33 sra Exp $"; -#endif - -/* Imports */ - -#include "port_before.h" - -#ifndef WANT_IRS_NIS -static int __bind_irs_nis_unneeded; -#else - -#include -#include -#include -#include -#ifdef T_NULL -#undef T_NULL /* Silence re-definition warning of T_NULL. */ -#endif -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "nis_p.h" - -/* Definitions */ - -struct pvt { - int needrewind; - char * nis_domain; - char * curkey_data; - int curkey_len; - char * curval_data; - int curval_len; - struct protoent proto; - char * prbuf; -}; - -enum do_what { do_none = 0x0, do_key = 0x1, do_val = 0x2, do_all = 0x3 }; - -static /*const*/ char protocols_byname[] = "protocols.byname"; -static /*const*/ char protocols_bynumber[] = "protocols.bynumber"; - -/* Forward */ - -static void pr_close(struct irs_pr *); -static struct protoent * pr_byname(struct irs_pr *, const char *); -static struct protoent * pr_bynumber(struct irs_pr *, int); -static struct protoent * pr_next(struct irs_pr *); -static void pr_rewind(struct irs_pr *); -static void pr_minimize(struct irs_pr *); - -static struct protoent * makeprotoent(struct irs_pr *this); -static void nisfree(struct pvt *, enum do_what); - -/* Public */ - -struct irs_pr * -irs_nis_pr(struct irs_acc *this) { - struct irs_pr *pr; - struct pvt *pvt; - - if (!(pr = memget(sizeof *pr))) { - errno = ENOMEM; - return (NULL); - } - memset(pr, 0x5e, sizeof *pr); - if (!(pvt = memget(sizeof *pvt))) { - memput(pr, sizeof *pr); - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - pvt->needrewind = 1; - pvt->nis_domain = ((struct nis_p *)this->private)->domain; - pr->private = pvt; - pr->byname = pr_byname; - pr->bynumber = pr_bynumber; - pr->next = pr_next; - pr->rewind = pr_rewind; - pr->close = pr_close; - pr->minimize = pr_minimize; - pr->res_get = NULL; - pr->res_set = NULL; - return (pr); -} - -/* Methods. */ - -static void -pr_close(struct irs_pr *this) { - struct pvt *pvt = (struct pvt *)this->private; - - nisfree(pvt, do_all); - if (pvt->proto.p_aliases) - free(pvt->proto.p_aliases); - if (pvt->prbuf) - free(pvt->prbuf); - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct protoent * -pr_byname(struct irs_pr *this, const char *name) { - struct pvt *pvt = (struct pvt *)this->private; - int r; - char *tmp; - - nisfree(pvt, do_val); - DE_CONST(name, tmp); - r = yp_match(pvt->nis_domain, protocols_byname, tmp, - strlen(tmp), &pvt->curval_data, &pvt->curval_len); - if (r != 0) { - errno = ENOENT; - return (NULL); - } - return (makeprotoent(this)); -} - -static struct protoent * -pr_bynumber(struct irs_pr *this, int num) { - struct pvt *pvt = (struct pvt *)this->private; - char tmp[sizeof "-4294967295"]; - int r; - - nisfree(pvt, do_val); - (void) sprintf(tmp, "%d", num); - r = yp_match(pvt->nis_domain, protocols_bynumber, tmp, strlen(tmp), - &pvt->curval_data, &pvt->curval_len); - if (r != 0) { - errno = ENOENT; - return (NULL); - } - return (makeprotoent(this)); -} - -static struct protoent * -pr_next(struct irs_pr *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct protoent *rval; - int r; - - do { - if (pvt->needrewind) { - nisfree(pvt, do_all); - r = yp_first(pvt->nis_domain, protocols_bynumber, - &pvt->curkey_data, &pvt->curkey_len, - &pvt->curval_data, &pvt->curval_len); - pvt->needrewind = 0; - } else { - char *newkey_data; - int newkey_len; - - nisfree(pvt, do_val); - r = yp_next(pvt->nis_domain, protocols_bynumber, - pvt->curkey_data, pvt->curkey_len, - &newkey_data, &newkey_len, - &pvt->curval_data, &pvt->curval_len); - nisfree(pvt, do_key); - pvt->curkey_data = newkey_data; - pvt->curkey_len = newkey_len; - } - if (r != 0) { - errno = ENOENT; - return (NULL); - } - rval = makeprotoent(this); - } while (rval == NULL); - return (rval); -} - -static void -pr_rewind(struct irs_pr *this) { - struct pvt *pvt = (struct pvt *)this->private; - - pvt->needrewind = 1; -} - -static void -pr_minimize(struct irs_pr *this) { - UNUSED(this); - /* NOOP */ -} - -/* Private */ - -static struct protoent * -makeprotoent(struct irs_pr *this) { - struct pvt *pvt = (struct pvt *)this->private; - char *p, **t; - int n, m; - - if (pvt->prbuf) - free(pvt->prbuf); - pvt->prbuf = pvt->curval_data; - pvt->curval_data = NULL; - - for (p = pvt->prbuf; *p && *p != '#';) - p++; - while (p > pvt->prbuf && isspace((unsigned char)(p[-1]))) - p--; - *p = '\0'; - - p = pvt->prbuf; - n = m = 0; - - pvt->proto.p_name = p; - while (*p && !isspace((unsigned char)*p)) - p++; - if (!*p) - return (NULL); - *p++ = '\0'; - - while (*p && isspace((unsigned char)*p)) - p++; - pvt->proto.p_proto = atoi(p); - while (*p && !isspace((unsigned char)*p)) - p++; - *p++ = '\0'; - - while (*p) { - if ((n + 1) >= m || !pvt->proto.p_aliases) { - m += 10; - t = realloc(pvt->proto.p_aliases, - m * sizeof(char *)); - if (!t) { - errno = ENOMEM; - goto cleanup; - } - pvt->proto.p_aliases = t; - } - pvt->proto.p_aliases[n++] = p; - while (*p && !isspace((unsigned char)*p)) - p++; - if (*p) - *p++ = '\0'; - } - if (!pvt->proto.p_aliases) - pvt->proto.p_aliases = malloc(sizeof(char *)); - if (!pvt->proto.p_aliases) - goto cleanup; - pvt->proto.p_aliases[n] = NULL; - return (&pvt->proto); - - cleanup: - if (pvt->proto.p_aliases) { - free(pvt->proto.p_aliases); - pvt->proto.p_aliases = NULL; - } - if (pvt->prbuf) { - free(pvt->prbuf); - pvt->prbuf = NULL; - } - return (NULL); -} - -static void -nisfree(struct pvt *pvt, enum do_what do_what) { - if ((do_what & do_key) && pvt->curkey_data) { - free(pvt->curkey_data); - pvt->curkey_data = NULL; - } - if ((do_what & do_val) && pvt->curval_data) { - free(pvt->curval_data); - pvt->curval_data = NULL; - } -} - -#endif /*WANT_IRS_NIS*/ - -/*! \file */ diff --git a/src/kits/network/libbind/irs/nis_pw.c b/src/kits/network/libbind/irs/nis_pw.c deleted file mode 100644 index 8f27e4bd93..0000000000 --- a/src/kits/network/libbind/irs/nis_pw.c +++ /dev/null @@ -1,288 +0,0 @@ -/* - * 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: nis_pw.c,v 1.4 2005/04/27 04:56:33 sra Exp $"; -#endif /* LIBC_SCCS and not lint */ - -/* Imports */ - -#include "port_before.h" - -#if !defined(WANT_IRS_PW) || !defined(WANT_IRS_NIS) -static int __bind_irs_pw_unneeded; -#else - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include - -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "nis_p.h" - -/* Definitions */ - -struct pvt { - int needrewind; - char * nis_domain; - char * curkey_data; - int curkey_len; - char * curval_data; - int curval_len; - struct passwd passwd; - char * pwbuf; -}; - -enum do_what { do_none = 0x0, do_key = 0x1, do_val = 0x2, do_all = 0x3 }; - -static /*const*/ char passwd_byname[] = "passwd.byname"; -static /*const*/ char passwd_byuid[] = "passwd.byuid"; - -/* Forward */ - -static void pw_close(struct irs_pw *); -static struct passwd * pw_next(struct irs_pw *); -static struct passwd * pw_byname(struct irs_pw *, const char *); -static struct passwd * pw_byuid(struct irs_pw *, uid_t); -static void pw_rewind(struct irs_pw *); -static void pw_minimize(struct irs_pw *); - -static struct passwd * makepasswdent(struct irs_pw *); -static void nisfree(struct pvt *, enum do_what); - -/* Public */ - -struct irs_pw * -irs_nis_pw(struct irs_acc *this) { - struct irs_pw *pw; - struct pvt *pvt; - - if (!(pw = memget(sizeof *pw))) { - errno = ENOMEM; - return (NULL); - } - memset(pw, 0x5e, sizeof *pw); - if (!(pvt = memget(sizeof *pvt))) { - memput(pw, sizeof *pw); - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - pvt->needrewind = 1; - pvt->nis_domain = ((struct nis_p *)this->private)->domain; - pw->private = pvt; - pw->close = pw_close; - pw->next = pw_next; - pw->byname = pw_byname; - pw->byuid = pw_byuid; - pw->rewind = pw_rewind; - pw->minimize = pw_minimize; - pw->res_get = NULL; - pw->res_set = NULL; - return (pw); -} - -/* Methods */ - -static void -pw_close(struct irs_pw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - if (pvt->pwbuf) - free(pvt->pwbuf); - nisfree(pvt, do_all); - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct passwd * -pw_next(struct irs_pw *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct passwd *rval; - int r; - - do { - if (pvt->needrewind) { - nisfree(pvt, do_all); - r = yp_first(pvt->nis_domain, passwd_byname, - &pvt->curkey_data, &pvt->curkey_len, - &pvt->curval_data, &pvt->curval_len); - pvt->needrewind = 0; - } else { - char *newkey_data; - int newkey_len; - - nisfree(pvt, do_val); - r = yp_next(pvt->nis_domain, passwd_byname, - pvt->curkey_data, pvt->curkey_len, - &newkey_data, &newkey_len, - &pvt->curval_data, &pvt->curval_len); - nisfree(pvt, do_key); - pvt->curkey_data = newkey_data; - pvt->curkey_len = newkey_len; - } - if (r != 0) { - errno = ENOENT; - return (NULL); - } - rval = makepasswdent(this); - } while (rval == NULL); - return (rval); -} - -static struct passwd * -pw_byname(struct irs_pw *this, const char *name) { - struct pvt *pvt = (struct pvt *)this->private; - int r; - char *tmp; - - nisfree(pvt, do_val); - DE_CONST(name, tmp); - r = yp_match(pvt->nis_domain, passwd_byname, tmp, strlen(tmp), - &pvt->curval_data, &pvt->curval_len); - if (r != 0) { - errno = ENOENT; - return (NULL); - } - return (makepasswdent(this)); -} - -static struct passwd * -pw_byuid(struct irs_pw *this, uid_t uid) { - struct pvt *pvt = (struct pvt *)this->private; - char tmp[sizeof "4294967295"]; - int r; - - nisfree(pvt, do_val); - (void) sprintf(tmp, "%u", (unsigned int)uid); - r = yp_match(pvt->nis_domain, passwd_byuid, tmp, strlen(tmp), - &pvt->curval_data, &pvt->curval_len); - if (r != 0) { - errno = ENOENT; - return (NULL); - } - return (makepasswdent(this)); -} - -static void -pw_rewind(struct irs_pw *this) { - struct pvt *pvt = (struct pvt *)this->private; - - pvt->needrewind = 1; -} - -static void -pw_minimize(struct irs_pw *this) { - UNUSED(this); - /* NOOP */ -} - -/* Private */ - -static struct passwd * -makepasswdent(struct irs_pw *this) { - struct pvt *pvt = (struct pvt *)this->private; - char *cp; - - memset(&pvt->passwd, 0, sizeof pvt->passwd); - if (pvt->pwbuf) - free(pvt->pwbuf); - pvt->pwbuf = pvt->curval_data; - pvt->curval_data = NULL; - - cp = pvt->pwbuf; - pvt->passwd.pw_name = cp; - if (!(cp = strchr(cp, ':'))) - goto cleanup; -#ifdef HAS_PW_CLASS - pvt->passwd.pw_class = cp; /*%< Needs to point at a \0. */ -#endif - *cp++ = '\0'; - - pvt->passwd.pw_passwd = cp; - if (!(cp = strchr(cp, ':'))) - goto cleanup; - *cp++ = '\0'; - - pvt->passwd.pw_uid = atoi(cp); - if (!(cp = strchr(cp, ':'))) - goto cleanup; - *cp++ = '\0'; - - pvt->passwd.pw_gid = atoi(cp); - if (!(cp = strchr(cp, ':'))) - goto cleanup; - *cp++ = '\0'; - - pvt->passwd.pw_gecos = cp; - if (!(cp = strchr(cp, ':'))) - goto cleanup; - *cp++ = '\0'; - - pvt->passwd.pw_dir = cp; - if (!(cp = strchr(cp, ':'))) - goto cleanup; - *cp++ = '\0'; - - pvt->passwd.pw_shell = cp; - - if ((cp = strchr(cp, '\n')) != NULL) - *cp = '\0'; - - return (&pvt->passwd); - - cleanup: - free(pvt->pwbuf); - pvt->pwbuf = NULL; - return (NULL); -} - -static void -nisfree(struct pvt *pvt, enum do_what do_what) { - if ((do_what & do_key) && pvt->curkey_data) { - free(pvt->curkey_data); - pvt->curkey_data = NULL; - } - if ((do_what & do_val) && pvt->curval_data) { - free(pvt->curval_data); - pvt->curval_data = NULL; - } -} - -#endif /* WANT_IRS_PW && WANT_IRS_NIS */ -/*! \file */ diff --git a/src/kits/network/libbind/irs/nis_sv.c b/src/kits/network/libbind/irs/nis_sv.c deleted file mode 100644 index bb24600f0d..0000000000 --- a/src/kits/network/libbind/irs/nis_sv.c +++ /dev/null @@ -1,310 +0,0 @@ -/* - * 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: nis_sv.c,v 1.4 2005/04/27 04:56:34 sra Exp $"; -#endif /* LIBC_SCCS and not lint */ - -/* Imports */ - -#include "port_before.h" - -#ifndef WANT_IRS_NIS -static int __bind_irs_nis_unneeded; -#else - -#include -#include -#include -#include -#include -#ifdef T_NULL -#undef T_NULL /* Silence re-definition warning of T_NULL. */ -#endif -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "nis_p.h" - -/* Definitions */ - -struct pvt { - int needrewind; - char * nis_domain; - char * curkey_data; - int curkey_len; - char * curval_data; - int curval_len; - char line[BUFSIZ+1]; - struct servent serv; - char * svbuf; -}; - -enum do_what { do_none = 0x0, do_key = 0x1, do_val = 0x2, do_all = 0x3 }; - -static /*const*/ char services_byname[] = "services.byname"; - -/* Forward */ - -static void sv_close(struct irs_sv*); -static struct servent * sv_next(struct irs_sv *); -static struct servent * sv_byname(struct irs_sv *, const char *, - const char *); -static struct servent * sv_byport(struct irs_sv *, int, const char *); -static void sv_rewind(struct irs_sv *); -static void sv_minimize(struct irs_sv *); - -static struct servent * makeservent(struct irs_sv *this); -static void nisfree(struct pvt *, enum do_what); - -/* Public */ - -struct irs_sv * -irs_nis_sv(struct irs_acc *this) { - struct irs_sv *sv; - struct pvt *pvt; - - if (!(sv = memget(sizeof *sv))) { - errno = ENOMEM; - return (NULL); - } - memset(sv, 0x5e, sizeof *sv); - if (!(pvt = memget(sizeof *pvt))) { - memput(sv, sizeof *sv); - errno = ENOMEM; - return (NULL); - } - memset(pvt, 0, sizeof *pvt); - pvt->needrewind = 1; - pvt->nis_domain = ((struct nis_p *)this->private)->domain; - sv->private = pvt; - sv->close = sv_close; - sv->next = sv_next; - sv->byname = sv_byname; - sv->byport = sv_byport; - sv->rewind = sv_rewind; - sv->minimize = sv_minimize; - sv->res_get = NULL; - sv->res_set = NULL; - return (sv); -} - -/* Methods */ - -static void -sv_close(struct irs_sv *this) { - struct pvt *pvt = (struct pvt *)this->private; - - nisfree(pvt, do_all); - if (pvt->serv.s_aliases) - free(pvt->serv.s_aliases); - if (pvt->svbuf) - free(pvt->svbuf); - memput(pvt, sizeof *pvt); - memput(this, sizeof *this); -} - -static struct servent * -sv_byname(struct irs_sv *this, const char *name, const char *proto) { - struct servent *serv; - char **sap; - - sv_rewind(this); - while ((serv = sv_next(this)) != NULL) { - if (proto != NULL && strcmp(proto, serv->s_proto)) - continue; - if (!strcmp(name, serv->s_name)) - break; - for (sap = serv->s_aliases; sap && *sap; sap++) - if (!strcmp(name, *sap)) - break; - } - return (serv); -} - -static struct servent * -sv_byport(struct irs_sv *this, int port, const char *proto) { - struct servent *serv; - - sv_rewind(this); - while ((serv = sv_next(this)) != NULL) { - if (proto != NULL && strcmp(proto, serv->s_proto)) - continue; - if (serv->s_port == port) - break; - } - return (serv); -} - -static void -sv_rewind(struct irs_sv *this) { - struct pvt *pvt = (struct pvt *)this->private; - - pvt->needrewind = 1; -} - -static struct servent * -sv_next(struct irs_sv *this) { - struct pvt *pvt = (struct pvt *)this->private; - struct servent *rval; - int r; - - do { - if (pvt->needrewind) { - nisfree(pvt, do_all); - r = yp_first(pvt->nis_domain, services_byname, - &pvt->curkey_data, &pvt->curkey_len, - &pvt->curval_data, &pvt->curval_len); - pvt->needrewind = 0; - } else { - char *newkey_data; - int newkey_len; - - nisfree(pvt, do_val); - r = yp_next(pvt->nis_domain, services_byname, - pvt->curkey_data, pvt->curkey_len, - &newkey_data, &newkey_len, - &pvt->curval_data, &pvt->curval_len); - nisfree(pvt, do_key); - pvt->curkey_data = newkey_data; - pvt->curkey_len = newkey_len; - } - if (r != 0) { - errno = ENOENT; - return (NULL); - } - rval = makeservent(this); - } while (rval == NULL); - return (rval); -} - -static void -sv_minimize(struct irs_sv *this) { - UNUSED(this); - /* NOOP */ -} - -/* Private */ - -static struct servent * -makeservent(struct irs_sv *this) { - struct pvt *pvt = (struct pvt *)this->private; - static const char spaces[] = " \t"; - char *p, **t; - int n, m; - - if (pvt->svbuf) - free(pvt->svbuf); - pvt->svbuf = pvt->curval_data; - pvt->curval_data = NULL; - - if (pvt->serv.s_aliases) { - free(pvt->serv.s_aliases); - pvt->serv.s_aliases = NULL; - } - - if ((p = strpbrk(pvt->svbuf, "#\n"))) - *p = '\0'; - - p = pvt->svbuf; - - pvt->serv.s_name = p; - p += strcspn(p, spaces); - if (!*p) - goto cleanup; - *p++ = '\0'; - p += strspn(p, spaces); - - pvt->serv.s_port = htons((u_short) atoi(p)); - pvt->serv.s_proto = NULL; - - while (*p && !isspace((unsigned char)*p)) - if (*p++ == '/') - pvt->serv.s_proto = p; - if (!pvt->serv.s_proto) - goto cleanup; - if (*p) { - *p++ = '\0'; - p += strspn(p, spaces); - } - - n = m = 0; - while (*p) { - if ((n + 1) >= m || !pvt->serv.s_aliases) { - m += 10; - t = realloc(pvt->serv.s_aliases, m * sizeof(char *)); - if (!t) { - errno = ENOMEM; - goto cleanup; - } - pvt->serv.s_aliases = t; - } - pvt->serv.s_aliases[n++] = p; - p += strcspn(p, spaces); - if (!*p) - break; - *p++ = '\0'; - p += strspn(p, spaces); - } - if (!pvt->serv.s_aliases) - pvt->serv.s_aliases = malloc(sizeof(char *)); - if (!pvt->serv.s_aliases) - goto cleanup; - pvt->serv.s_aliases[n] = NULL; - return (&pvt->serv); - - cleanup: - if (pvt->serv.s_aliases) { - free(pvt->serv.s_aliases); - pvt->serv.s_aliases = NULL; - } - if (pvt->svbuf) { - free(pvt->svbuf); - pvt->svbuf = NULL; - } - return (NULL); -} - -static void -nisfree(struct pvt *pvt, enum do_what do_what) { - if ((do_what & do_key) && pvt->curkey_data) { - free(pvt->curkey_data); - pvt->curkey_data = NULL; - } - if ((do_what & do_val) && pvt->curval_data) { - free(pvt->curval_data); - pvt->curval_data = NULL; - } -} - -#endif /*WANT_IRS_NIS*/ - -/*! \file */ diff --git a/src/kits/network/libbind/irs/nsdispatch.c b/src/kits/network/libbind/irs/nsdispatch.c new file mode 100644 index 0000000000..5169886a7f --- /dev/null +++ b/src/kits/network/libbind/irs/nsdispatch.c @@ -0,0 +1,696 @@ +/* $NetBSD: nsdispatch.c,v 1.37 2012/03/13 21:13:42 christos Exp $ */ + +/*- + * Copyright (c) 1997, 1998, 1999, 2004 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Luke Mewburn; and by Jason R. Thorpe. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. + */ + +/*- + * Copyright (c) 2003 Networks Associates Technology, Inc. + * All rights reserved. + * + * Portions of this software were developed for the FreeBSD Project by + * Jacques A. Vidrine, Safeport Network Services, and Network + * Associates Laboratories, the Security Research Division of Network + * Associates, Inc. under DARPA/SPAWAR contract N66001-01-C-8035 + * ("CBOSS"), as part of the DARPA CHATS research program. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY THE AUTHOR 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 AUTHOR 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. + */ + +#include +#if defined(LIBC_SCCS) && !defined(lint) +__RCSID("$NetBSD: nsdispatch.c,v 1.37 2012/03/13 21:13:42 christos Exp $"); +#endif /* LIBC_SCCS and not lint */ + +#include +#include +#include +#include + +#include +#ifdef __ELF__ +#include +#endif /* __ELF__ */ +#include +#define _NS_PRIVATE +#include +#include +#include +#include +#include +#include +#include + +#include + +#define __isthreaded 1 + +extern FILE *_nsyyin; +extern int _nsyyparse(void); + + +#ifdef __weak_alias +__weak_alias(nsdispatch,_nsdispatch) +#endif + + +/* + * default sourcelist: `files' + */ +const ns_src __nsdefaultsrc[] = { + { NSSRC_FILES, NS_SUCCESS }, + { 0, 0 }, +}; + +const ns_src __nsdefaultcompat[] = { + { NSSRC_COMPAT, NS_SUCCESS }, + { 0, 0 } +}; + +const ns_src __nsdefaultcompat_forceall[] = { + { NSSRC_COMPAT, NS_SUCCESS | NS_FORCEALL }, + { 0, 0 } +}; + +const ns_src __nsdefaultfiles[] = { + { NSSRC_FILES, NS_SUCCESS }, + { 0, 0 }, +}; + +const ns_src __nsdefaultfiles_forceall[] = { + { NSSRC_FILES, NS_SUCCESS | NS_FORCEALL }, + { 0, 0 }, +}; + +const ns_src __nsdefaultnis[] = { + { NSSRC_NIS, NS_SUCCESS }, + { 0, 0 } +}; + +const ns_src __nsdefaultnis_forceall[] = { + { NSSRC_NIS, NS_SUCCESS | NS_FORCEALL }, + { 0, 0 } +}; + + +/* Database, source mappings. */ +static u_int _nsmapsize; +static ns_dbt *_nsmap; + +/* Nsswitch modules. */ +static u_int _nsmodsize; +static ns_mod *_nsmod; + +/* Placeholder for built-in modules' dlopen() handles. */ +static void *_nsbuiltin = &_nsbuiltin; + +#ifdef _REENTRANT +/* + * Global nsswitch data structures are mostly read-only, but we update them + * when we read or re-read nsswitch.conf. + */ +static pthread_rwlock_t _nslock; +static pthread_once_t _nslockinit = PTHREAD_ONCE_INIT; + +static void lockinit() +{ + pthread_rwlock_init(&_nslock, NULL); +} + +/* + * List of threads currently in nsdispatch(). We use this to detect + * recursive calls and avoid reloading configuration in such cases, + * which could cause deadlock. + */ +struct _ns_drec { + LIST_ENTRY(_ns_drec) list; + pthread_t thr; +}; +static LIST_HEAD(, _ns_drec) _ns_drec = LIST_HEAD_INITIALIZER(&_ns_drec); +static pthread_mutex_t _ns_drec_lock = PTHREAD_MUTEX_INITIALIZER; +#endif /* _REENTRANT */ + + +/* + * Runtime determination of whether we are dynamically linked or not. + */ +#define is_dynamic() (0) /* don't bother - switch to ELF! */ + + +/* + * size of dynamic array chunk for _nsmap and _nsmap[x].srclist (and other + * growing arrays). + */ +#define NSELEMSPERCHUNK 8 + +/* + * Dynamically growable arrays are used for lists of databases, sources, + * and modules. The following "vector" API is used to isolate the + * common operations. + */ +typedef void (*_nsvect_free_elem)(void *); + +static void * +_nsvect_append(const void *elem, void *vec, u_int *count, size_t esize) +{ + void *p; + + if ((*count % NSELEMSPERCHUNK) == 0) { + p = realloc(vec, (*count + NSELEMSPERCHUNK) * esize); + if (p == NULL) + return (NULL); + vec = p; + } + memmove((void *)(((uintptr_t)vec) + (*count * esize)), elem, esize); + (*count)++; + return (vec); +} + +static void * +_nsvect_elem(u_int i, void *vec, u_int count, size_t esize) +{ + + if (i < count) + return ((void *)((uintptr_t)vec + (i * esize))); + else + return (NULL); +} + +static void +_nsvect_free(void *vec, u_int *count, size_t esize, _nsvect_free_elem free_elem) +{ + void *elem; + u_int i; + + for (i = 0; i < *count; i++) { + elem = _nsvect_elem(i, vec, *count, esize); + if (elem != NULL) + (*free_elem)(elem); + } + if (vec != NULL) + free(vec); + *count = 0; +} +#define _NSVECT_FREE(v, c, s, f) \ +do { \ + _nsvect_free((v), (c), (s), (f)); \ + (v) = NULL; \ +} while (/*CONSTCOND*/0) + +static int +_nsdbtcmp(const void *a, const void *b) +{ + + return (strcasecmp(((const ns_dbt *)a)->name, + ((const ns_dbt *)b)->name)); +} + +static int +_nsmodcmp(const void *a, const void *b) +{ + + return (strcasecmp(((const ns_mod *)a)->name, + ((const ns_mod *)b)->name)); +} + +static int +_nsmtabcmp(const void *a, const void *b) +{ + int cmp; + + cmp = strcmp(((const ns_mtab *)a)->name, + ((const ns_mtab *)b)->name); + if (cmp) + return (cmp); + + return (strcasecmp(((const ns_mtab *)a)->database, + ((const ns_mtab *)b)->database)); +} + +static void +_nsmodfree(ns_mod *mod) +{ + + free(__UNCONST(mod->name)); + if (mod->handle == NULL) + return; + if (mod->unregister != NULL) + (*mod->unregister)(mod->mtab, mod->mtabsize); +#ifdef __ELF__ + if (mod->handle != _nsbuiltin) + (void) dlclose(mod->handle); +#endif /* __ELF__ */ +} + +/* + * Load a built-in or dyanamically linked module. If the `reg_fn' + * argument is non-NULL, assume a built-in module and use `reg_fn' + * to register it. Otherwise, search for a dynamic nsswitch module. + */ +static int +_nsloadmod(const char *source, nss_module_register_fn reg_fn) +{ +#ifdef __ELF__ + char buf[PATH_MAX]; +#endif + ns_mod mod, *new; + + memset(&mod, 0, sizeof(mod)); + mod.name = strdup(source); + if (mod.name == NULL) + return (-1); + + if (reg_fn != NULL) { + /* + * The placeholder is required, as a NULL handle + * represents an invalid module. + */ + mod.handle = _nsbuiltin; + } else if (!is_dynamic()) { + goto out; + } else { +#ifdef __ELF__ + if (snprintf(buf, sizeof(buf), "nss_%s.so.%d", mod.name, + NSS_MODULE_INTERFACE_VERSION) >= (int)sizeof(buf)) + goto out; + mod.handle = dlopen(buf, RTLD_LOCAL | RTLD_LAZY); + if (mod.handle == NULL) { +#ifdef _NSS_DEBUG + /* + * This gets pretty annoying, since the built-in + * sources are not yet modules. + */ + /* XXX log some error? */ +#endif + goto out; + } + reg_fn = (nss_module_register_fn) dlsym(mod.handle, + "nss_module_register"); + if (reg_fn == NULL) { + (void) dlclose(mod.handle); + mod.handle = NULL; + /* XXX log some error? */ + goto out; + } +#else /* ! __ELF__ */ + mod.handle = NULL; +#endif /* __ELF__ */ + } + mod.mtab = (*reg_fn)(mod.name, &mod.mtabsize, &mod.unregister); + if (mod.mtab == NULL || mod.mtabsize == 0) { +#ifdef __ELF__ + if (mod.handle != _nsbuiltin) + (void) dlclose(mod.handle); +#endif /* __ELF__ */ + mod.handle = NULL; + /* XXX log some error? */ + goto out; + } + if (mod.mtabsize > 1) + qsort(mod.mtab, mod.mtabsize, sizeof(mod.mtab[0]), + _nsmtabcmp); + out: + new = _nsvect_append(&mod, _nsmod, &_nsmodsize, sizeof(*_nsmod)); + if (new == NULL) { + _nsmodfree(&mod); + return (-1); + } + _nsmod = new; + /* _nsmodsize already incremented */ + + qsort(_nsmod, _nsmodsize, sizeof(*_nsmod), _nsmodcmp); + return (0); +} + +static void +_nsloadbuiltin(void) +{ + + /* Do nothing, for now. */ +} + +int +_nsdbtaddsrc(ns_dbt *dbt, const ns_src *src) +{ + void *new; + const ns_mod *mod; + ns_mod modkey; + + assert(dbt != NULL); + assert(src != NULL); + + new = _nsvect_append(src, dbt->srclist, &dbt->srclistsize, + sizeof(*src)); + if (new == NULL) + return (-1); + dbt->srclist = new; + /* dbt->srclistsize already incremented */ + + modkey.name = src->name; + mod = bsearch(&modkey, _nsmod, _nsmodsize, sizeof(*_nsmod), _nsmodcmp); + if (mod == NULL) + return (_nsloadmod(src->name, NULL)); + + return (0); +} + +void +_nsdbtdump(const ns_dbt *dbt) +{ + unsigned int i; + + assert(dbt != NULL); + + printf("%s (%d source%s):", dbt->name, dbt->srclistsize, + dbt->srclistsize == 1 ? "" : "s"); + for (i = 0; i < dbt->srclistsize; i++) { + printf(" %s", dbt->srclist[i].name); + if (!(dbt->srclist[i].flags & + (NS_UNAVAIL|NS_NOTFOUND|NS_TRYAGAIN)) && + (dbt->srclist[i].flags & NS_SUCCESS)) + continue; + printf(" ["); + if (!(dbt->srclist[i].flags & NS_SUCCESS)) + printf(" SUCCESS=continue"); + if (dbt->srclist[i].flags & NS_UNAVAIL) + printf(" UNAVAIL=return"); + if (dbt->srclist[i].flags & NS_NOTFOUND) + printf(" NOTFOUND=return"); + if (dbt->srclist[i].flags & NS_TRYAGAIN) + printf(" TRYAGAIN=return"); + printf(" ]"); + } + printf("\n"); +} + +static void +_nssrclist_free(ns_src **src, u_int srclistsize) +{ + u_int i; + + for (i = 0; i < srclistsize; i++) { + if ((*src)[i].name != NULL) + free(__UNCONST((*src)[i].name)); + } + free(*src); + *src = NULL; +} + +static void +_nsdbtfree(ns_dbt *dbt) +{ + + _nssrclist_free(&dbt->srclist, dbt->srclistsize); + if (dbt->name != NULL) + free(__UNCONST(dbt->name)); +} + +int +_nsdbtput(const ns_dbt *dbt) +{ + ns_dbt *p; + void *new; + u_int i; + + assert(dbt != NULL); + + for (i = 0; i < _nsmapsize; i++) { + p = _nsvect_elem(i, _nsmap, _nsmapsize, sizeof(*_nsmap)); + if (strcasecmp(dbt->name, p->name) == 0) { + /* overwrite existing entry */ + if (p->srclist != NULL) + _nssrclist_free(&p->srclist, p->srclistsize); + memmove(p, dbt, sizeof(*dbt)); + return (0); + } + } + new = _nsvect_append(dbt, _nsmap, &_nsmapsize, sizeof(*_nsmap)); + if (new == NULL) + return (-1); + _nsmap = new; + /* _nsmapsize already incremented */ + + return (0); +} + +/* + * This function is called each time nsdispatch() is called. If this + * is the first call, or if the configuration has changed, (re-)prepare + * the global data used by NSS. + */ +static int +_nsconfigure(void) +{ +#ifdef _REENTRANT + static pthread_mutex_t _nsconflock = PTHREAD_MUTEX_INITIALIZER; +#endif + static time_t _nsconfmod; + struct stat statbuf; + + pthread_mutex_lock(&_nsconflock); + + if (stat(_PATH_NS_CONF, &statbuf) == -1) { + /* + * No nsswitch.conf; just use whatever configuration we + * currently have, or fall back on the defaults specified + * by the caller. + */ + pthread_mutex_unlock(&_nsconflock); + return (0); + } + + if (statbuf.st_mtime <= _nsconfmod) { + /* Internal state is up-to-date with nsswitch.conf. */ + pthread_mutex_unlock(&_nsconflock); + return (0); + } + + pthread_once(&_nslockinit, lockinit); + + /* + * Ok, we've decided we need to update the nsswitch configuration + * structures. Acquire a write-lock on _nslock while continuing + * to hold _nsconflock. Acquiring a write-lock blocks while + * waiting for other threads already holding a read-lock to clear. + * We hold _nsconflock for the duration, and update the time stamp + * at the end of the update operation, at which time we release + * both locks. + */ + pthread_rwlock_wrlock(&_nslock); + + _nsyyin = fopen(_PATH_NS_CONF, "r"); + if (_nsyyin == NULL) { + /* + * Unable to open nsswitch.conf; behave as though the + * stat() above failed. Even though we have already + * updated _nsconfmod, if the file reappears, the + * mtime will change. + */ + goto out; + } + + _NSVECT_FREE(_nsmap, &_nsmapsize, sizeof(*_nsmap), + (_nsvect_free_elem) _nsdbtfree); + _NSVECT_FREE(_nsmod, &_nsmodsize, sizeof(*_nsmod), + (_nsvect_free_elem) _nsmodfree); + + _nsloadbuiltin(); + + _nsyyparse(); + (void) fclose(_nsyyin); + if (_nsmapsize != 0) + qsort(_nsmap, _nsmapsize, sizeof(*_nsmap), _nsdbtcmp); + + _nsconfmod = statbuf.st_mtime; + + out: + pthread_rwlock_unlock(&_nslock); + pthread_mutex_unlock(&_nsconflock); + return (0); +} + +static nss_method +_nsmethod(const char *source, const char *database, const char *method, + const ns_dtab disp_tab[], void **cb_data) +{ + int curdisp; + ns_mod *mod, modkey; + ns_mtab *mtab, mtabkey; + + if (disp_tab != NULL) { + for (curdisp = 0; disp_tab[curdisp].src != NULL; curdisp++) { + if (strcasecmp(source, disp_tab[curdisp].src) == 0) { + *cb_data = disp_tab[curdisp].cb_data; + return (disp_tab[curdisp].callback); + } + } + } + + modkey.name = source; + mod = bsearch(&modkey, _nsmod, _nsmodsize, sizeof(*_nsmod), + _nsmodcmp); + if (mod != NULL && mod->handle != NULL) { + mtabkey.database = database; + mtabkey.name = method; + mtab = bsearch(&mtabkey, mod->mtab, mod->mtabsize, + sizeof(mod->mtab[0]), _nsmtabcmp); + if (mtab != NULL) { + *cb_data = mtab->mdata; + return (mtab->method); + } + } + + *cb_data = NULL; + return (NULL); +} + +int +/*ARGSUSED*/ +nsdispatch(void *retval, const ns_dtab disp_tab[], const char *database, + const char *method, const ns_src defaults[], ...) +{ + static int _nsdispatching; +#ifdef _REENTRANT + struct _ns_drec drec, *ldrec; +#endif + va_list ap; + int i, result; + ns_dbt key; + const ns_dbt *dbt; + const ns_src *srclist; + int srclistsize; + nss_method cb; + void *cb_data; + + /* retval may be NULL */ + /* disp_tab may be NULL */ + assert(database != NULL); + assert(method != NULL); + assert(defaults != NULL); + if (database == NULL || method == NULL || defaults == NULL) + return (NS_UNAVAIL); + + /* + * In both the threaded and non-threaded cases, avoid reloading + * the configuration if the current thread is already running + * nsdispatch() (i.e. recursive call). + * + * In the non-threaded case, this avoids changing the data structures + * while we're using them. + * + * In the threaded case, this avoids trying to take a write lock + * while the current thread holds a read lock (which would result + * in deadlock). + */ +#ifdef _REENTRANT + if (__isthreaded) { + drec.thr = pthread_self(); + pthread_mutex_lock(&_ns_drec_lock); + LIST_FOREACH(ldrec, &_ns_drec, list) { + if (ldrec->thr == drec.thr) + break; + } + LIST_INSERT_HEAD(&_ns_drec, &drec, list); + pthread_mutex_unlock(&_ns_drec_lock); + if (ldrec == NULL && _nsconfigure()) { + pthread_mutex_lock(&_ns_drec_lock); + LIST_REMOVE(&drec, list); + pthread_mutex_unlock(&_ns_drec_lock); + return (NS_UNAVAIL); + } + } else +#endif /* _REENTRANT */ + + if (_nsdispatching++ == 0 && _nsconfigure()) { + _nsdispatching--; + return (NS_UNAVAIL); + } + + pthread_rwlock_rdlock(&_nslock); + + key.name = database; + dbt = bsearch(&key, _nsmap, _nsmapsize, sizeof(*_nsmap), _nsdbtcmp); + if (dbt != NULL) { + srclist = dbt->srclist; + srclistsize = dbt->srclistsize; + } else { + srclist = defaults; + srclistsize = 0; + while (srclist[srclistsize].name != NULL) + srclistsize++; + } + result = 0; + + for (i = 0; i < srclistsize; i++) { + cb = _nsmethod(srclist[i].name, database, method, + disp_tab, &cb_data); + result = 0; + if (cb != NULL) { + va_start(ap, defaults); + result = (*cb)(retval, cb_data, ap); + va_end(ap); + if (defaults[0].flags & NS_FORCEALL) + continue; + if (result & srclist[i].flags) + break; + } + } + result &= NS_STATUSMASK; /* clear private flags in result */ + + pthread_rwlock_unlock(&_nslock); + +#ifdef _REENTRANT + if (__isthreaded) { + pthread_mutex_lock(&_ns_drec_lock); + LIST_REMOVE(&drec, list); + pthread_mutex_unlock(&_ns_drec_lock); + } else +#endif /* _REENTRANT */ + _nsdispatching--; + + return (result ? result : NS_NOTFOUND); +} diff --git a/src/kits/network/libbind/irs/nslexer.l b/src/kits/network/libbind/irs/nslexer.l new file mode 100644 index 0000000000..c3b8bfdfd6 --- /dev/null +++ b/src/kits/network/libbind/irs/nslexer.l @@ -0,0 +1,108 @@ +%{ +/* $NetBSD: nslexer.l,v 1.13 2012/06/25 22:32:45 abs Exp $ */ + +/*- + * Copyright (c) 1997, 1998, 1999 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Luke Mewburn. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. + */ + +#include +#if defined(LIBC_SCCS) && !defined(lint) +__RCSID("$NetBSD: nslexer.l,v 1.13 2012/06/25 22:32:45 abs Exp $"); +#endif /* LIBC_SCCS and not lint */ + +#include +#define _NS_PRIVATE +#include +#include +#include + +#include "nsparser.h" + +%} + +%option prefix="_nsyy" +%option yylineno nounput noinput +%option never-interactive + +BLANK [ \t] +CR \n +STRING [a-zA-Z][a-zA-Z0-9_]* + +%% + +{BLANK}+ ; /* skip whitespace */ + +#.* ; /* skip comments */ + +\\{CR} ; /* allow continuation */ + +{CR} return NL; + +[sS][uU][cC][cC][eE][sS][sS] return SUCCESS; +[uU][nN][aA][vV][aA][iI][lL] return UNAVAIL; +[nN][oO][tT][fF][oO][uU][nN][dD] return NOTFOUND; +[tT][rR][yY][aA][gG][aA][iI][nN] return TRYAGAIN; + +[rR][eE][tT][uU][rR][nN] return RETURN; +[cC][oO][nN][tT][iI][nN][uU][eE] return CONTINUE; + +{STRING} { + char *p; + size_t i; + + if ((p = strdup(yytext)) == NULL) { + syslog(LOG_ERR, "libc nsdispatch: %m"); + return NL; + } + + for (i = 0; i < strlen(p); i++) { + if (isupper((unsigned char)p[i])) + p[i] = tolower((unsigned char)p[i]); + } + _nsyylval.str = p; + return STRING; + } + +. return yytext[0]; + +%% + +#undef _nsyywrap +int +_nsyywrap(void) +{ + return 1; +} /* _nsyywrap */ + +void +_nsyyerror(const char *msg) +{ + + syslog(LOG_WARNING, "libc nsdispatch: %s line %d: %s at '%s'", + _PATH_NS_CONF, yylineno, msg, yytext); +} /* _nsyyerror */ diff --git a/src/kits/network/libbind/irs/nsparser.y b/src/kits/network/libbind/irs/nsparser.y new file mode 100644 index 0000000000..124426cb22 --- /dev/null +++ b/src/kits/network/libbind/irs/nsparser.y @@ -0,0 +1,193 @@ +%{ +/* $NetBSD: nsparser.y,v 1.12 2012/03/20 17:44:18 matt Exp $ */ + +/*- + * Copyright (c) 1997, 1998, 1999 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Luke Mewburn. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. + */ + +#include +#if defined(LIBC_SCCS) && !defined(lint) +__RCSID("$NetBSD: nsparser.y,v 1.12 2012/03/20 17:44:18 matt Exp $"); +#endif /* LIBC_SCCS and not lint */ + +#include +#define _NS_PRIVATE +#include +#include +#include +#include + +int yylex(); +void yyerror(const char *s); + +static void _nsaddsrctomap(const char *); + +static ns_dbt curdbt; +static ns_src cursrc; + +extern char * _nsyytext; +extern int _nsyylineno; +%} + +%name-prefix "_nsyy" + +%union { + char *str; + int mapval; +} + +%token NL +%token SUCCESS UNAVAIL NOTFOUND TRYAGAIN +%token RETURN CONTINUE +%token STRING + +%type Status Action + +%% + +File + : /* empty */ + | Lines + ; + +Lines + : Entry + | Lines Entry + ; + +Entry + : NL + | Database ':' NL + | Database ':' Srclist NL + { + int lineno; + + lineno = _nsyylineno - (*_nsyytext == '\n' ? 1 : 0); + if (_nsdbtput(&curdbt) == -1) + syslog(LOG_WARNING, + "libc nsdispatch: %s line %d: %s", + _PATH_NS_CONF, lineno, + "error adding entry"); + } + | error NL + { + yyerrok; + } + ; + +Database + : STRING + { + curdbt.name = yylval.str; + curdbt.srclist = NULL; + curdbt.srclistsize = 0; + } + ; + +Srclist + : Item + | Srclist Item + ; + +Item + : STRING + { + cursrc.flags = NS_SUCCESS; + _nsaddsrctomap($1); + } + | STRING '[' { cursrc.flags = NS_SUCCESS; } Criteria ']' + { + _nsaddsrctomap($1); + } + ; + +Criteria + : Criterion + | Criteria Criterion + ; + +Criterion + : Status '=' Action + { + if ($3) /* if action == RETURN set RETURN bit */ + cursrc.flags |= $1; + else /* else unset it */ + cursrc.flags &= ~$1; + } + ; + +Status + : SUCCESS { $$ = NS_SUCCESS; } + | UNAVAIL { $$ = NS_UNAVAIL; } + | NOTFOUND { $$ = NS_NOTFOUND; } + | TRYAGAIN { $$ = NS_TRYAGAIN; } + ; + +Action + : RETURN { $$ = 1L; } + | CONTINUE { $$ = 0L; } + ; + +%% + +static void +_nsaddsrctomap(const char *elem) +{ + unsigned int i; + int lineno; + + assert(elem != NULL); + + lineno = _nsyylineno - (*_nsyytext == '\n' ? 1 : 0); + if (curdbt.srclistsize > 0) { + if ((strcasecmp(elem, NSSRC_COMPAT) == 0) || + (strcasecmp(curdbt.srclist[0].name, NSSRC_COMPAT) == 0)) { + syslog(LOG_WARNING, + "libc nsdispatch: %s line %d: %s", + _PATH_NS_CONF, lineno, + "'compat' used with other sources"); + return; + } + } + for (i = 0; i < curdbt.srclistsize; i++) { + if (strcasecmp(curdbt.srclist[i].name, elem) == 0) { + syslog(LOG_WARNING, + "libc nsdispatch: %s line %d: %s '%s'", + _PATH_NS_CONF, lineno, + "duplicate source", elem); + return; + } + } + cursrc.name = elem; + if (_nsdbtaddsrc(&curdbt, &cursrc) == -1) { + syslog(LOG_WARNING, + "libc nsdispatch: %s line %d: %s '%s'", + _PATH_NS_CONF, lineno, + "error adding", elem); + } +} diff --git a/src/kits/network/libbind/irs/nul_ng.c b/src/kits/network/libbind/irs/nul_ng.c deleted file mode 100644 index e5811b563c..0000000000 --- a/src/kits/network/libbind/irs/nul_ng.c +++ /dev/null @@ -1,127 +0,0 @@ -/* - * 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: nul_ng.c,v 1.3 2005/04/27 04:56:34 sra Exp $"; -#endif - -/*! \file - * \brief - * nul_ng.c - the netgroup accessor null map - */ - -#include "port_before.h" - -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#include "irs_p.h" -#include "hesiod.h" -#include "dns_p.h" - -/* Forward. */ - -static void ng_close(struct irs_ng *); -static int ng_next(struct irs_ng *, const char **, - const char **, const char **); -static int ng_test(struct irs_ng *, - const char *, const char *, - const char *, const char *); -static void ng_rewind(struct irs_ng *, const char *); -static void ng_minimize(struct irs_ng *); - -/* Public. */ - -struct irs_ng * -irs_nul_ng(struct irs_acc *this) { - struct irs_ng *ng; - - UNUSED(this); - - if (!(ng = memget(sizeof *ng))) { - errno = ENOMEM; - return (NULL); - } - memset(ng, 0x5e, sizeof *ng); - ng->private = NULL; - ng->close = ng_close; - ng->next = ng_next; - ng->test = ng_test; - ng->rewind = ng_rewind; - ng->minimize = ng_minimize; - return (ng); -} - -/* Methods. */ - -static void -ng_close(struct irs_ng *this) { - memput(this, sizeof *this); -} - -/* ARGSUSED */ -static int -ng_next(struct irs_ng *this, const char **host, const char **user, - const char **domain) -{ - UNUSED(this); - UNUSED(host); - UNUSED(user); - UNUSED(domain); - errno = ENOENT; - return (-1); -} - -static int -ng_test(struct irs_ng *this, const char *name, - const char *user, const char *host, const char *domain) -{ - UNUSED(this); - UNUSED(name); - UNUSED(user); - UNUSED(host); - UNUSED(domain); - errno = ENODEV; - return (-1); -} - -static void -ng_rewind(struct irs_ng *this, const char *netgroup) { - UNUSED(this); - UNUSED(netgroup); - /* NOOP */ -} - -static void -ng_minimize(struct irs_ng *this) { - UNUSED(this); - /* NOOP */ -} diff --git a/src/kits/network/libbind/irs/pathnames.h b/src/kits/network/libbind/irs/pathnames.h deleted file mode 100644 index c95580286c..0000000000 --- a/src/kits/network/libbind/irs/pathnames.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * 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. - */ - -/* - * $Id: pathnames.h,v 1.3 2005/04/27 04:56:34 sra Exp $ - */ - -#ifndef _PATH_IRS_CONF -#define _PATH_IRS_CONF "/etc/irs.conf" -#endif - -#ifndef _PATH_NETWORKS -#define _PATH_NETWORKS "/etc/networks" -#endif - -#ifndef _PATH_GROUP -#define _PATH_GROUP "/etc/group" -#endif - -#ifndef _PATH_NETGROUP -#define _PATH_NETGROUP "/etc/netgroup" -#endif - -#ifdef IRS_LCL_SV_DB -#ifndef _PATH_SERVICES_DB -#define _PATH_SERVICES_DB _PATH_SERVICES ".db" -#endif -#endif - -#ifndef _PATH_HESIOD_CONF -#define _PATH_HESIOD_CONF "/etc/hesiod.conf" -#endif - -/*! \file */ diff --git a/src/kits/network/libbind/irs/protoent.h b/src/kits/network/libbind/irs/protoent.h new file mode 100644 index 0000000000..7179feb4be --- /dev/null +++ b/src/kits/network/libbind/irs/protoent.h @@ -0,0 +1,50 @@ +/* $NetBSD: protoent.h,v 1.2 2008/04/28 20:23:00 martin Exp $ */ + +/*- + * Copyright (c) 2004 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Christos Zoulas. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. + */ + +#include + +struct protoent_data { + FILE *fp; + struct protoent proto; + char **aliases; + size_t maxaliases; + int stayopen; + char *line; + void *dummy; +}; + +struct protoent *getprotoent_r(struct protoent *, struct protoent_data *); +struct protoent *getprotobyname_r(const char *, +struct protoent *, struct protoent_data *); +struct protoent *getprotobynumber_r(int, +struct protoent *, struct protoent_data *); +void setprotoent_r(int, struct protoent_data *); +void endprotoent_r(struct protoent_data *); diff --git a/src/kits/network/libbind/irs/servent.h b/src/kits/network/libbind/irs/servent.h new file mode 100644 index 0000000000..c7dfcc214b --- /dev/null +++ b/src/kits/network/libbind/irs/servent.h @@ -0,0 +1,65 @@ +/* $NetBSD: servent.h,v 1.4 2010/04/25 00:54:46 joerg Exp $ */ + +/*- + * Copyright (c) 2004 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Christos Zoulas. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. + */ + +#include + +struct servent_data { + FILE *plainfile; + struct cdbr *cdb; + struct servent serv; + char **aliases; + size_t maxaliases; + int flags; +#define _SV_STAYOPEN 1 +#define _SV_CDB 2 +#define _SV_PLAINFILE 4 +#define _SV_FIRST 8 + uint32_t cdb_index; + uint8_t *cdb_buf; + size_t cdb_buf_len; + char *line; + void *dummy; +}; + +struct servent *getservent_r(struct servent *, struct servent_data *); +struct servent *getservbyname_r(const char *, const char *, + struct servent *, struct servent_data *); +struct servent *getservbyport_r(int, const char *, + struct servent *, struct servent_data *); +void setservent_r(int, struct servent_data *); +void endservent_r(struct servent_data *); + +int _servent_open(struct servent_data *); +void _servent_close(struct servent_data *); +int _servent_getline(struct servent_data *); +struct servent *_servent_parseline(struct servent_data *, struct servent *); +struct servent *_servent_parsedb(struct servent_data *, struct servent *, + const uint8_t *, size_t); diff --git a/src/kits/network/libbind/irs/sethostent.c b/src/kits/network/libbind/irs/sethostent.c new file mode 100644 index 0000000000..806265f0f7 --- /dev/null +++ b/src/kits/network/libbind/irs/sethostent.c @@ -0,0 +1,80 @@ +/* $NetBSD: sethostent.c,v 1.17 2012/03/20 17:44:18 matt Exp $ */ + +/* + * Copyright (c) 1985, 1993 + * 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: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * 3. Neither the name of the University 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 REGENTS 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. + */ + +#include +#if defined(LIBC_SCCS) && !defined(lint) +#if 0 +static char sccsid[] = "@(#)sethostent.c 8.1 (Berkeley) 6/4/93"; +static char rcsid[] = "Id: sethostent.c,v 8.5 1996/09/28 06:51:07 vixie Exp "; +#else +__RCSID("$NetBSD: sethostent.c,v 1.17 2012/03/20 17:44:18 matt Exp $"); +#endif +#endif /* LIBC_SCCS and not lint */ + +#include +#include +#include +#include +#include + +#ifdef __weak_alias +__weak_alias(sethostent,_sethostent) +__weak_alias(endhostent,_endhostent) +#endif + +void _endhtent(void); +#ifndef _REENTRANT +void res_close(void); +#endif +void _sethtent(int); + +void +/*ARGSUSED*/ +sethostent(int stayopen) +{ +#ifndef _REENTRANT + if ((_res.options & RES_INIT) == 0 && res_init() == -1) + return; + if (stayopen) + _res.options |= RES_STAYOPEN | RES_USEVC; +#endif + _sethtent(stayopen); +} + +void +endhostent(void) +{ +#ifndef _REENTRANT + _res.options &= ~(RES_STAYOPEN | RES_USEVC); + res_close(); +#endif + _endhtent(); +} diff --git a/src/kits/network/libbind/irs/util.c b/src/kits/network/libbind/irs/util.c deleted file mode 100644 index 794c10b107..0000000000 --- a/src/kits/network/libbind/irs/util.c +++ /dev/null @@ -1,109 +0,0 @@ -/* - * 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. - */ - -#if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: util.c,v 1.3 2005/04/27 04:56:34 sra Exp $"; -#endif - -#include "port_before.h" - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include - -#include - -#include "port_after.h" - -#include "irs_p.h" - -#ifdef SPRINTF_CHAR -# define SPRINTF(x) strlen(sprintf/**/x) -#else -# define SPRINTF(x) sprintf x -#endif - -void -map_v4v6_address(const char *src, char *dst) { - u_char *p = (u_char *)dst; - char tmp[NS_INADDRSZ]; - int i; - - /* Stash a temporary copy so our caller can update in place. */ - memcpy(tmp, src, NS_INADDRSZ); - /* Mark this ipv6 addr as a mapped ipv4. */ - for (i = 0; i < 10; i++) - *p++ = 0x00; - *p++ = 0xff; - *p++ = 0xff; - /* Retrieve the saved copy and we're done. */ - memcpy((void*)p, tmp, NS_INADDRSZ); -} - -int -make_group_list(struct irs_gr *this, const char *name, - gid_t basegid, gid_t *groups, int *ngroups) -{ - struct group *grp; - int i, ng; - int ret, maxgroups; - - ret = -1; - ng = 0; - maxgroups = *ngroups; - /* - * When installing primary group, duplicate it; - * the first element of groups is the effective gid - * and will be overwritten when a setgid file is executed. - */ - if (ng >= maxgroups) - goto done; - groups[ng++] = basegid; - if (ng >= maxgroups) - goto done; - groups[ng++] = basegid; - /* - * Scan the group file to find additional groups. - */ - (*this->rewind)(this); - while ((grp = (*this->next)(this)) != NULL) { - if ((gid_t)grp->gr_gid == basegid) - continue; - for (i = 0; grp->gr_mem[i]; i++) { - if (!strcmp(grp->gr_mem[i], name)) { - if (ng >= maxgroups) - goto done; - groups[ng++] = grp->gr_gid; - break; - } - } - } - ret = 0; - done: - *ngroups = ng; - return (ret); -} - -/*! \file */ diff --git a/src/kits/network/libbind/irs/vars6.c b/src/kits/network/libbind/irs/vars6.c new file mode 100644 index 0000000000..83d572ccc0 --- /dev/null +++ b/src/kits/network/libbind/irs/vars6.c @@ -0,0 +1,56 @@ +/* $NetBSD: vars6.c,v 1.7 2005/08/07 16:00:01 christos Exp $ */ + +/* + * Copyright (C) 1995, 1996, 1997, and 1998 WIDE Project. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * 3. Neither the name of the project 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 PROJECT 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 PROJECT 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. + */ + +#include +#if defined(LIBC_SCCS) && !defined(lint) +__RCSID("$NetBSD: vars6.c,v 1.7 2005/08/07 16:00:01 christos Exp $"); +#endif /* LIBC_SCCS and not lint */ + +#include +#include + +#ifdef __weak_alias +__weak_alias(in6addr_any, _in6addr_any) +__weak_alias(in6addr_loopback, _in6addr_loopback) +__weak_alias(in6addr_nodelocal_allnodes, _in6addr_nodelocal_allnodes) +__weak_alias(in6addr_linklocal_allnodes, _in6addr_linklocal_allnodes) +__weak_alias(in6addr_linklocal_allrouters, _in6addr_linklocal_allrouters) +#endif + +/* + * Definitions of some constant IPv6 addresses. + */ +const struct in6_addr in6addr_any = IN6ADDR_ANY_INIT; +const struct in6_addr in6addr_loopback = IN6ADDR_LOOPBACK_INIT; +const struct in6_addr in6addr_nodelocal_allnodes = IN6ADDR_NODELOCAL_ALLNODES_INIT; +const struct in6_addr in6addr_linklocal_allnodes = IN6ADDR_LINKLOCAL_ALLNODES_INIT; +const struct in6_addr in6addr_linklocal_allrouters = IN6ADDR_LINKLOCAL_ALLROUTERS_INIT; + diff --git a/src/kits/network/libbind/isc/eventlib.c b/src/kits/network/libbind/isc/eventlib.c index be4a7848b9..6daf8e1a1a 100644 --- a/src/kits/network/libbind/isc/eventlib.c +++ b/src/kits/network/libbind/isc/eventlib.c @@ -741,7 +741,7 @@ pselect(int nfds, void *rfds, void *wfds, void *efds, sigset_t sigs; int n; #ifdef USE_POLL - int polltimeout = INFTIM; + int polltimeout = INT_MAX; evContext_p *ctx; struct pollfd *fds; nfds_t pnfds; diff --git a/src/kits/network/libbind/nameser/ns_date.c b/src/kits/network/libbind/nameser/ns_date.c deleted file mode 100644 index 292375af63..0000000000 --- a/src/kits/network/libbind/nameser/ns_date.c +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 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 lint -static const char rcsid[] = "$Id: ns_date.c,v 1.6 2005/04/27 04:56:39 sra Exp $"; -#endif - -/* Import. */ - -#include "port_before.h" - -#include - -#include -#include -#include -#include -#include - -#include "port_after.h" - -#ifdef SPRINTF_CHAR -# define SPRINTF(x) strlen(sprintf/**/x) -#else -# define SPRINTF(x) ((size_t)sprintf x) -#endif - -/* Forward. */ - -static int datepart(const char *, int, int, int, int *); - -/* Public. */ - -/*% - * Convert a date in ASCII into the number of seconds since - * 1 January 1970 (GMT assumed). Format is yyyymmddhhmmss, all - * digits required, no spaces allowed. - */ - -u_int32_t -ns_datetosecs(const char *cp, int *errp) { - struct tm time; - u_int32_t result; - int mdays, i; - static const int days_per_month[12] = - {31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; - - if (strlen(cp) != 14U) { - *errp = 1; - return (0); - } - *errp = 0; - - memset(&time, 0, sizeof time); - time.tm_year = datepart(cp + 0, 4, 1990, 9999, errp) - 1900; - time.tm_mon = datepart(cp + 4, 2, 01, 12, errp) - 1; - time.tm_mday = datepart(cp + 6, 2, 01, 31, errp); - time.tm_hour = datepart(cp + 8, 2, 00, 23, errp); - time.tm_min = datepart(cp + 10, 2, 00, 59, errp); - time.tm_sec = datepart(cp + 12, 2, 00, 59, errp); - if (*errp) /*%< Any parse errors? */ - return (0); - - /* - * OK, now because timegm() is not available in all environments, - * we will do it by hand. Roll up sleeves, curse the gods, begin! - */ - -#define SECS_PER_DAY ((u_int32_t)24*60*60) -#define isleap(y) ((((y) % 4) == 0 && ((y) % 100) != 0) || ((y) % 400) == 0) - - result = time.tm_sec; /*%< Seconds */ - result += time.tm_min * 60; /*%< Minutes */ - result += time.tm_hour * (60*60); /*%< Hours */ - result += (time.tm_mday - 1) * SECS_PER_DAY; /*%< Days */ - /* Months are trickier. Look without leaping, then leap */ - mdays = 0; - for (i = 0; i < time.tm_mon; i++) - mdays += days_per_month[i]; - result += mdays * SECS_PER_DAY; /*%< Months */ - if (time.tm_mon > 1 && isleap(1900+time.tm_year)) - result += SECS_PER_DAY; /*%< Add leapday for this year */ - /* First figure years without leapdays, then add them in. */ - /* The loop is slow, FIXME, but simple and accurate. */ - result += (time.tm_year - 70) * (SECS_PER_DAY*365); /*%< Years */ - for (i = 70; i < time.tm_year; i++) - if (isleap(1900+i)) - result += SECS_PER_DAY; /*%< Add leapday for prev year */ - return (result); -} - -/* Private. */ - -/*% - * Parse part of a date. Set error flag if any error. - * Don't reset the flag if there is no error. - */ -static int -datepart(const char *buf, int size, int min, int max, int *errp) { - int result = 0; - int i; - - for (i = 0; i < size; i++) { - if (!isdigit((unsigned char)(buf[i]))) - *errp = 1; - result = (result * 10) + buf[i] - '0'; - } - if (result < min) - *errp = 1; - if (result > max) - *errp = 1; - return (result); -} - -/*! \file */ diff --git a/src/kits/network/libbind/nameser/ns_name.c b/src/kits/network/libbind/nameser/ns_name.c index 0c1f93c066..75afb0802b 100644 --- a/src/kits/network/libbind/nameser/ns_name.c +++ b/src/kits/network/libbind/nameser/ns_name.c @@ -1,3 +1,5 @@ +/* $NetBSD: ns_name.c,v 1.9 2012/03/13 21:13:39 christos Exp $ */ + /* * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1996,1999 by Internet Software Consortium. @@ -26,6 +28,7 @@ static const char rcsid[] = "$Id: ns_name.c,v 1.11 2009/01/23 19:59:16 each Exp #include #include +#include #include #include #include @@ -36,9 +39,9 @@ static const char rcsid[] = "$Id: ns_name.c,v 1.11 2009/01/23 19:59:16 each Exp #include "port_after.h" #ifdef SPRINTF_CHAR -# define SPRINTF(x) strlen(sprintf/**/x) +# define SPRINTF(x) ((int)strlen(sprintf/**/x)) #else -# define SPRINTF(x) ((size_t)sprintf x) +# define SPRINTF(x) (sprintf x) #endif #define NS_TYPE_ELT 0x40 /*%< EDNS0 extended label type */ @@ -143,7 +146,7 @@ ns_name_ntop(const u_char *src, char *dst, size_t dstsiz) dn += m; continue; } - for ((void)NULL; l > 0; l--) { + for (; l > 0; l--) { c = *cp++; if (special(c)) { if (dn + 1 >= eom) { @@ -182,7 +185,8 @@ ns_name_ntop(const u_char *src, char *dst, size_t dstsiz) return (-1); } *dn++ = '\0'; - return (dn - dst); + assert(INT_MIN <= (dn - dst) && (dn - dst) <= INT_MAX); + return (int)(dn - dst); } /*% @@ -249,19 +253,19 @@ ns_name_pton2(const char *src, u_char *dst, size_t dstsiz, size_t *dstlen) { continue; } else if ((cp = strchr(digits, c)) != NULL) { - n = (cp - digits) * 100; + n = (int)(cp - digits) * 100; if ((c = *src++) == 0 || (cp = strchr(digits, c)) == NULL) { errno = EMSGSIZE; return (-1); } - n += (cp - digits) * 10; + n += (int)(cp - digits) * 10; if ((c = *src++) == 0 || (cp = strchr(digits, c)) == NULL) { errno = EMSGSIZE; return (-1); } - n += (cp - digits); + n += (int)(cp - digits); if (n > 255) { errno = EMSGSIZE; return (-1); @@ -273,7 +277,7 @@ ns_name_pton2(const char *src, u_char *dst, size_t dstsiz, size_t *dstlen) { escaped = 1; continue; } else if (c == '.') { - c = (bp - label - 1); + c = (int)(bp - label - 1); if ((c & NS_CMPRSFLGS) != 0) { /*%< Label too big. */ errno = EMSGSIZE; return (-1); @@ -313,7 +317,7 @@ ns_name_pton2(const char *src, u_char *dst, size_t dstsiz, size_t *dstlen) { } *bp++ = (u_char)c; } - c = (bp - label - 1); + c = (int)(bp - label - 1); if ((c & NS_CMPRSFLGS) != 0) { /*%< Label too big. */ errno = EMSGSIZE; return (-1); @@ -382,7 +386,7 @@ ns_name_ntol(const u_char *src, u_char *dst, size_t dstsiz) errno = EMSGSIZE; return (-1); } - for ((void)NULL; l > 0; l--) { + for (; l > 0; l--) { c = *cp++; if (isascii(c) && isupper(c)) *dn++ = tolower(c); @@ -391,7 +395,8 @@ ns_name_ntol(const u_char *src, u_char *dst, size_t dstsiz) } } *dn++ = '\0'; - return (dn - dst); + assert(INT_MIN <= (dn - dst) && (dn - dst) <= INT_MAX); + return (int)(dn - dst); } /*% @@ -449,7 +454,7 @@ ns_name_unpack2(const u_char *msg, const u_char *eom, const u_char *src, } checked += l + 1; *dstp++ = n; - memcpy(dstp, srcp, l); + memcpy(dstp, srcp, (size_t)l); dstp += l; srcp += l; break; @@ -459,8 +464,10 @@ ns_name_unpack2(const u_char *msg, const u_char *eom, const u_char *src, errno = EMSGSIZE; return (-1); } - if (len < 0) - len = srcp - src + 1; + if (len < 0) { + assert(INT_MIN <= (srcp - src + 1) && (srcp - src + 1) <= INT_MAX); + len = (int)(srcp - src + 1); + } srcp = msg + (((n & 0x3f) << 8) | (*srcp & 0xff)); if (srcp < msg || srcp >= eom) { /*%< Out of range. */ errno = EMSGSIZE; @@ -486,9 +493,11 @@ ns_name_unpack2(const u_char *msg, const u_char *eom, const u_char *src, *dstp++ = 0; if (dstlen != NULL) *dstlen = dstp - dst; - if (len < 0) - len = srcp - src; - return (len); + if (len < 0) { + assert(INT_MIN <= (srcp - src) && (srcp - src) <= INT_MAX); + len = (int)(srcp - src); + } + return len; } /*% @@ -526,7 +535,7 @@ ns_name_pack(const u_char *src, u_char *dst, int dstsiz, if (dnptrs != NULL) { if ((msg = *dnptrs++) != NULL) { for (cpp = dnptrs; *cpp != NULL; cpp++) - (void)NULL; + continue; lpp = cpp; /*%< end of list to search */ } } else @@ -566,9 +575,10 @@ ns_name_pack(const u_char *src, u_char *dst, int dstsiz, if (dstp + 1 >= eob) { goto cleanup; } - *dstp++ = (l >> 8) | NS_CMPRSFLGS; + *dstp++ = ((u_int32_t)l >> 8) | NS_CMPRSFLGS; *dstp++ = l % 256; - return (dstp - dst); + assert(INT_MIN <= (dstp - dst) && (dstp - dst) <= INT_MAX); + return (int)(dstp - dst); } /* Not found, save it. */ if (lastdnptr != NULL && cpp < lastdnptr - 1 && @@ -587,7 +597,7 @@ ns_name_pack(const u_char *src, u_char *dst, int dstsiz, if (dstp + 1 + n >= eob) { goto cleanup; } - memcpy(dstp, srcp, n + 1); + memcpy(dstp, srcp, (size_t)(n + 1)); srcp += n + 1; dstp += n + 1; } while (n != 0); @@ -599,7 +609,8 @@ cleanup: errno = EMSGSIZE; return (-1); } - return (dstp - dst); + assert(INT_MIN <= (dstp - dst) && (dstp - dst) <= INT_MAX); + return (int)(dstp - dst); } /*% @@ -648,7 +659,7 @@ ns_name_compress(const char *src, u_char *dst, size_t dstsiz, if (ns_name_pton(src, tmp, sizeof tmp) == -1) return (-1); - return (ns_name_pack(tmp, dst, dstsiz, dnptrs, lastdnptr)); + return (ns_name_pack(tmp, dst, (int)dstsiz, dnptrs, lastdnptr)); } /*% @@ -753,7 +764,8 @@ ns_name_eq(ns_nname_ct a, size_t as, ns_nname_ct b, size_t bs) { return (-1); } if (ac != bc || strncasecmp((const char *) ++a, - (const char *) ++b, ac) != 0) + (const char *) ++b, + (size_t)ac) != 0) return (0); a += ac, b += bc; } @@ -772,7 +784,7 @@ ns_name_owned(ns_namemap_ct a, int an, ns_namemap_ct b, int bn) { while (bn > 0) { if (a->len != b->len || strncasecmp((const char *) a->base, - (const char *) b->base, a->len) != 0) + (const char *) b->base, (size_t)a->len) != 0) return (0); a++, an--; b++, bn--; @@ -947,13 +959,15 @@ dn_find(const u_char *domain, const u_char *msg, if (n != *dn++) goto next; - for ((void)NULL; n > 0; n--) + for (; n > 0; n--) if (mklower(*dn++) != mklower(*cp++)) goto next; /* Is next root for both ? */ - if (*dn == '\0' && *cp == '\0') - return (sp - msg); + if (*dn == '\0' && *cp == '\0') { + assert(INT_MIN <= (sp - msg) && (sp - msg) <= INT_MAX); + return (int)(sp - msg); + } if (*dn) continue; goto next; @@ -984,7 +998,7 @@ decode_bitstring(const unsigned char **cpp, char *dn, const char *eom) if ((blen = (*cp & 0xff)) == 0) blen = 256; plen = (blen + 3) / 4; - plen += sizeof("\\[x/]") + (blen > 99 ? 3 : (blen > 9) ? 2 : 1); + plen += (int)sizeof("\\[x/]") + (blen > 99 ? 3 : (blen > 9) ? 2 : 1); if (dn + plen >= eom) return (-1); @@ -1008,7 +1022,7 @@ decode_bitstring(const unsigned char **cpp, char *dn, const char *eom) } else if (b > 0) { tc = *cp++; i = SPRINTF((dn, "%1x", - ((tc >> 4) & 0x0f) & (0x0f << (4 - b)))); + (((u_int32_t)tc >> 4) & 0x0f) & (0x0f << (4 - b)))); if (i < 0) return (-1); dn += i; @@ -1019,7 +1033,8 @@ decode_bitstring(const unsigned char **cpp, char *dn, const char *eom) dn += i; *cpp = cp; - return (dn - beg); + assert(INT_MIN <= (dn - beg) && (dn - beg) <= INT_MAX); + return (int)(dn - beg); } static int diff --git a/src/kits/network/libbind/nameser/ns_netint.c b/src/kits/network/libbind/nameser/ns_netint.c index 559c9d5bd5..d7aa806b98 100644 --- a/src/kits/network/libbind/nameser/ns_netint.c +++ b/src/kits/network/libbind/nameser/ns_netint.c @@ -1,3 +1,5 @@ +/* $NetBSD: ns_netint.c,v 1.7 2012/03/13 21:13:39 christos Exp $ */ + /* * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1996,1999 by Internet Software Consortium. @@ -15,8 +17,13 @@ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include #ifndef lint -static const char rcsid[] = "$Id: ns_netint.c,v 1.3 2005/04/27 04:56:40 sra Exp $"; +#ifdef notdef +static const char rcsid[] = "Id: ns_netint.c,v 1.3 2005/04/27 04:56:40 sra Exp"; +#else +//__RCSID("$NetBSD: ns_netint.c,v 1.7 2012/03/13 21:13:39 christos Exp $"); +#endif #endif /* Import. */ @@ -29,29 +36,29 @@ static const char rcsid[] = "$Id: ns_netint.c,v 1.3 2005/04/27 04:56:40 sra Exp /* Public. */ -u_int +uint16_t ns_get16(const u_char *src) { - u_int dst; + uint16_t dst; NS_GET16(dst, src); - return (dst); + return dst; } -u_long +uint32_t ns_get32(const u_char *src) { - u_long dst; + u_int32_t dst; NS_GET32(dst, src); - return (dst); + return dst; } void -ns_put16(u_int src, u_char *dst) { +ns_put16(uint16_t src, u_char *dst) { NS_PUT16(src, dst); } void -ns_put32(u_long src, u_char *dst) { +ns_put32(uint32_t src, u_char *dst) { NS_PUT32(src, dst); } diff --git a/src/kits/network/libbind/nameser/ns_newmsg.c b/src/kits/network/libbind/nameser/ns_newmsg.c deleted file mode 100644 index 8abd2422f8..0000000000 --- a/src/kits/network/libbind/nameser/ns_newmsg.c +++ /dev/null @@ -1,263 +0,0 @@ -/* - * Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC") - * - * Permission to use, copy, modify, and/or 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 lint -static const char rcsid[] = "$Id: ns_newmsg.c,v 1.3 2009/02/26 10:48:57 marka Exp $"; -#endif - -#include - -#include -#include -#include - -static int rdcpy(ns_newmsg *, ns_type, const u_char *, size_t); - -/* Initialize a "newmsg" object to empty. - */ -int -ns_newmsg_init(u_char *buffer, size_t bufsiz, ns_newmsg *handle) { - ns_msg *msg = &handle->msg; - - memset(handle, 0, sizeof *handle); - msg->_msg = buffer; - msg->_eom = buffer + bufsiz; - msg->_sect = ns_s_qd; - msg->_rrnum = 0; - msg->_msg_ptr = buffer + NS_HFIXEDSZ; - handle->dnptrs[0] = msg->_msg; - handle->dnptrs[1] = NULL; - handle->lastdnptr = &handle->dnptrs[sizeof handle->dnptrs / - sizeof handle->dnptrs[0] - 1]; - return (0); -} - -/* Initialize a "newmsg" object by copying an existing parsed message. - */ -int -ns_newmsg_copy(ns_newmsg *handle, ns_msg *msg) { - ns_flag flag; - ns_sect sect; - - ns_newmsg_id(handle, ns_msg_id(*msg)); - for (flag = ns_f_qr; flag < ns_f_max; flag++) - ns_newmsg_flag(handle, flag, ns_msg_getflag(*msg, flag)); - for (sect = ns_s_qd; sect < ns_s_max; sect++) { - int i, count; - - count = ns_msg_count(*msg, sect); - for (i = 0; i < count; i++) { - ns_rr2 rr; - int x; - - if (ns_parserr2(msg, sect, i, &rr) < 0) - return (-1); - if (sect == ns_s_qd) - x = ns_newmsg_q(handle, - ns_rr_nname(rr), - ns_rr_type(rr), - ns_rr_class(rr)); - else - x = ns_newmsg_rr(handle, sect, - ns_rr_nname(rr), - ns_rr_type(rr), - ns_rr_class(rr), - ns_rr_ttl(rr), - ns_rr_rdlen(rr), - ns_rr_rdata(rr)); - if (x < 0) - return (-1); - } - } - return (0); -} - -/* Set the message-ID in a "newmsg" object. - */ -void -ns_newmsg_id(ns_newmsg *handle, u_int16_t id) { - ns_msg *msg = &handle->msg; - - msg->_id = id; -} - -/* Set a flag (including rcode or opcode) in a "newmsg" object. - */ -void -ns_newmsg_flag(ns_newmsg *handle, ns_flag flag, u_int value) { - extern struct _ns_flagdata _ns_flagdata[16]; - struct _ns_flagdata *fd = &_ns_flagdata[flag]; - ns_msg *msg = &handle->msg; - - assert(flag < ns_f_max); - msg->_flags &= (~fd->mask); - msg->_flags |= (value << fd->shift); -} - -/* Add a question (or zone, if it's an update) to a "newmsg" object. - */ -int -ns_newmsg_q(ns_newmsg *handle, ns_nname_ct qname, - ns_type qtype, ns_class qclass) -{ - ns_msg *msg = &handle->msg; - u_char *t; - int n; - - if (msg->_sect != ns_s_qd) { - errno = ENODEV; - return (-1); - } - t = (u_char *) (unsigned long) msg->_msg_ptr; - if (msg->_rrnum == 0) - msg->_sections[ns_s_qd] = t; - n = ns_name_pack(qname, t, msg->_eom - t, - handle->dnptrs, handle->lastdnptr); - if (n < 0) - return (-1); - t += n; - if (t + QFIXEDSZ >= msg->_eom) { - errno = EMSGSIZE; - return (-1); - } - NS_PUT16(qtype, t); - NS_PUT16(qclass, t); - msg->_msg_ptr = t; - msg->_counts[ns_s_qd] = ++msg->_rrnum; - return (0); -} - -/* Add an RR to a "newmsg" object. - */ -int -ns_newmsg_rr(ns_newmsg *handle, ns_sect sect, - ns_nname_ct name, ns_type type, - ns_class rr_class, u_int32_t ttl, - u_int16_t rdlen, const u_char *rdata) -{ - ns_msg *msg = &handle->msg; - u_char *t; - int n; - - if (sect < msg->_sect) { - errno = ENODEV; - return (-1); - } - t = (u_char *) (unsigned long) msg->_msg_ptr; - if (sect > msg->_sect) { - msg->_sect = sect; - msg->_sections[sect] = t; - msg->_rrnum = 0; - } - n = ns_name_pack(name, t, msg->_eom - t, - handle->dnptrs, handle->lastdnptr); - if (n < 0) - return (-1); - t += n; - if (t + RRFIXEDSZ + rdlen >= msg->_eom) { - errno = EMSGSIZE; - return (-1); - } - NS_PUT16(type, t); - NS_PUT16(rr_class, t); - NS_PUT32(ttl, t); - msg->_msg_ptr = t; - if (rdcpy(handle, type, rdata, rdlen) < 0) - return (-1); - msg->_counts[sect] = ++msg->_rrnum; - return (0); -} - -/* Complete a "newmsg" object and return its size for use in write(). - * (Note: the "newmsg" object is also made ready for ns_parserr() etc.) - */ -size_t -ns_newmsg_done(ns_newmsg *handle) { - ns_msg *msg = &handle->msg; - ns_sect sect; - u_char *t; - - t = (u_char *) (unsigned long) msg->_msg; - NS_PUT16(msg->_id, t); - NS_PUT16(msg->_flags, t); - for (sect = 0; sect < ns_s_max; sect++) - NS_PUT16(msg->_counts[sect], t); - msg->_eom = msg->_msg_ptr; - msg->_sect = ns_s_max; - msg->_rrnum = -1; - msg->_msg_ptr = NULL; - return (msg->_eom - msg->_msg); -} - -/* Private. */ - -/* Copy an RDATA, using compression pointers where RFC1035 permits. - */ -static int -rdcpy(ns_newmsg *handle, ns_type type, const u_char *rdata, size_t rdlen) { - ns_msg *msg = &handle->msg; - u_char *p = (u_char *) (unsigned long) msg->_msg_ptr; - u_char *t = p + NS_INT16SZ; - u_char *s = t; - int n; - - switch (type) { - case ns_t_soa: - /* MNAME. */ - n = ns_name_pack(rdata, t, msg->_eom - t, - handle->dnptrs, handle->lastdnptr); - if (n < 0) - return (-1); - t += n; - if (ns_name_skip(&rdata, msg->_eom) < 0) - return (-1); - - /* ANAME. */ - n = ns_name_pack(rdata, t, msg->_eom - t, - handle->dnptrs, handle->lastdnptr); - if (n < 0) - return (-1); - t += n; - if (ns_name_skip(&rdata, msg->_eom) < 0) - return (-1); - - /* Serial, Refresh, Retry, Expiry, and Minimum. */ - if ((msg->_eom - t) < (NS_INT32SZ * 5)) { - errno = EMSGSIZE; - return (-1); - } - memcpy(t, rdata, NS_INT32SZ * 5); - t += (NS_INT32SZ * 5); - break; - case ns_t_ptr: - case ns_t_cname: - case ns_t_ns: - /* PTRDNAME, CNAME, or NSDNAME. */ - n = ns_name_pack(rdata, t, msg->_eom - t, - handle->dnptrs, handle->lastdnptr); - if (n < 0) - return (-1); - t += n; - break; - default: - memcpy(t, rdata, rdlen); - t += rdlen; - } - NS_PUT16(t - s, p); - msg->_msg_ptr = t; - return (0); -} - diff --git a/src/kits/network/libbind/nameser/ns_parse.c b/src/kits/network/libbind/nameser/ns_parse.c index 1e92d3c9ac..a0527a363d 100644 --- a/src/kits/network/libbind/nameser/ns_parse.c +++ b/src/kits/network/libbind/nameser/ns_parse.c @@ -1,3 +1,5 @@ +/* $NetBSD: ns_parse.c,v 1.9 2012/03/13 21:13:39 christos Exp $ */ + /* * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1996,1999 by Internet Software Consortium. @@ -15,8 +17,13 @@ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include #ifndef lint -static const char rcsid[] = "$Id: ns_parse.c,v 1.10 2009/01/23 19:59:16 each Exp $"; +#ifdef notdef +static const char rcsid[] = "Id: ns_parse.c,v 1.10 2009/01/23 19:59:16 each Exp"; +#else +//__RCSID("$NetBSD: ns_parse.c,v 1.9 2012/03/13 21:13:39 christos Exp $"); +#endif #endif /* Import. */ @@ -28,6 +35,7 @@ static const char rcsid[] = "$Id: ns_parse.c,v 1.10 2009/01/23 19:59:16 each Exp #include #include +#include #include #include #include @@ -41,7 +49,7 @@ static void setsection(ns_msg *msg, ns_sect sect); /* Macros. */ #if !defined(SOLARIS2) || defined(__COVERITY__) -#define RETERR(err) do { errno = (err); return (-1); } while (0) +#define RETERR(err) do { errno = (err); return (-1); } while (/*NOTREACHED*//*CONSTCOND*/0) #else #define RETERR(err) \ do { errno = (err); if (errno == errno) return (-1); } while (0) @@ -73,14 +81,14 @@ struct _ns_flagdata _ns_flagdata[16] = { }; int ns_msg_getflag(ns_msg handle, int flag) { - return(((handle)._flags & _ns_flagdata[flag].mask) >> _ns_flagdata[flag].shift); + return((u_int32_t)((handle)._flags & _ns_flagdata[flag].mask) >> _ns_flagdata[flag].shift); } int ns_skiprr(const u_char *ptr, const u_char *eom, ns_sect section, int count) { const u_char *optr = ptr; - for ((void)NULL; count > 0; count--) { + for (; count > 0; count--) { int b, rdlength; b = dn_skipname(ptr, eom); @@ -97,7 +105,8 @@ ns_skiprr(const u_char *ptr, const u_char *eom, ns_sect section, int count) { } if (ptr > eom) RETERR(EMSGSIZE); - return (ptr - optr); + assert(INT_MIN <= (ptr - optr) && (ptr - optr) <= INT_MAX); + return (int)(ptr - optr); } int @@ -205,7 +214,8 @@ ns_parserr2(ns_msg *handle, ns_sect section, int rrnum, ns_rr2 *rr) { int tmp; /* Make section right. */ - if ((tmp = section) < 0 || section >= ns_s_max) + tmp = section; + if (tmp < 0 || section >= ns_s_max) RETERR(ENODEV); if (section != handle->_sect) setsection(handle, section); diff --git a/src/kits/network/libbind/nameser/ns_print.c b/src/kits/network/libbind/nameser/ns_print.c index 2103b92961..135c4f18fe 100644 --- a/src/kits/network/libbind/nameser/ns_print.c +++ b/src/kits/network/libbind/nameser/ns_print.c @@ -1,3 +1,5 @@ +/* $NetBSD: ns_print.c,v 1.11 2012/03/13 21:13:39 christos Exp $ */ + /* * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1996-1999 by Internet Software Consortium. @@ -15,8 +17,13 @@ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include #ifndef lint -static const char rcsid[] = "$Id: ns_print.c,v 1.12 2009/03/03 05:29:58 each Exp $"; +#ifdef notdef +static const char rcsid[] = "Id: ns_print.c,v 1.12 2009/03/03 05:29:58 each Exp"; +#else +//__RCSID("$NetBSD: ns_print.c,v 1.11 2012/03/13 21:13:39 christos Exp $"); +#endif #endif /* Import. */ @@ -32,17 +39,19 @@ static const char rcsid[] = "$Id: ns_print.c,v 1.12 2009/03/03 05:29:58 each Exp #include #include +#include #include #include +#include #include #include #include "port_after.h" #ifdef SPRINTF_CHAR -# define SPRINTF(x) strlen(sprintf/**/x) +# define SPRINTF(x) ((int)strlen(sprintf/**/x)) #else -# define SPRINTF(x) ((size_t)sprintf x) +# define SPRINTF(x) (sprintf x) #endif /* Forward. */ @@ -65,7 +74,7 @@ static int addtab(size_t len, size_t target, int spaced, do { \ if ((x) < 0) \ return (-1); \ - } while (0) + } while (/*CONSTCOND*/0) static const char base32hex[] = "0123456789ABCDEFGHIJKLMNOPQRSTUV=0123456789abcdefghijklmnopqrstuv"; @@ -117,24 +126,24 @@ ns_sprintrrf(const u_char *msg, size_t msglen, * Owner. */ if (name_ctx != NULL && ns_samename(name_ctx, name) == 1) { - T(addstr("\t\t\t", 3, &buf, &buflen)); + T(addstr("\t\t\t", (size_t)3, &buf, &buflen)); } else { - len = prune_origin(name, origin); + len = (int)prune_origin(name, origin); if (*name == '\0') { goto root; } else if (len == 0) { - T(addstr("@\t\t\t", 4, &buf, &buflen)); + T(addstr("@\t\t\t", (size_t)4, &buf, &buflen)); } else { - T(addstr(name, len, &buf, &buflen)); + T(addstr(name, (size_t)len, &buf, &buflen)); /* Origin not used or not root, and no trailing dot? */ if (((origin == NULL || origin[0] == '\0') || (origin[0] != '.' && origin[1] != '\0' && name[len] == '\0')) && name[len - 1] != '.') { root: - T(addstr(".", 1, &buf, &buflen)); + T(addstr(".", (size_t)1, &buf, &buflen)); len++; } - T(spaced = addtab(len, 24, spaced, &buf, &buflen)); + T(spaced = addtab((size_t)len, 24, spaced, &buf, &buflen)); } } @@ -142,10 +151,10 @@ ns_sprintrrf(const u_char *msg, size_t msglen, * TTL, Class, Type. */ T(x = ns_format_ttl(ttl, buf, buflen)); - addlen(x, &buf, &buflen); + addlen((size_t)x, &buf, &buflen); len = SPRINTF((tmp, " %s %s", p_class(class), p_type(type))); - T(addstr(tmp, len, &buf, &buflen)); - T(spaced = addtab(x + len, 16, spaced, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); + T(spaced = addtab((size_t)(x + len), (size_t)16, spaced, &buf, &buflen)); /* * RData. @@ -154,7 +163,7 @@ ns_sprintrrf(const u_char *msg, size_t msglen, case ns_t_a: if (rdlen != (size_t)NS_INADDRSZ) goto formerr; - (void) inet_ntop(AF_INET, rdata, buf, buflen); + (void) inet_ntop(AF_INET, rdata, buf, (socklen_t)buflen); addlen(strlen(buf), &buf, &buflen); break; @@ -175,7 +184,7 @@ ns_sprintrrf(const u_char *msg, size_t msglen, if (len == 0) goto formerr; rdata += len; - T(addstr(" ", 1, &buf, &buflen)); + T(addstr(" ", (size_t)1, &buf, &buflen)); /* Second word, optional in ISDN records. */ @@ -193,11 +202,11 @@ ns_sprintrrf(const u_char *msg, size_t msglen, /* Server name. */ T(addname(msg, msglen, &rdata, origin, &buf, &buflen)); - T(addstr(" ", 1, &buf, &buflen)); + T(addstr(" ", (size_t)1, &buf, &buflen)); /* Administrator name. */ T(addname(msg, msglen, &rdata, origin, &buf, &buflen)); - T(addstr(" (\n", 3, &buf, &buflen)); + T(addstr(" (\n", (size_t)3, &buf, &buflen)); spaced = 0; if ((edata - rdata) != 5*NS_INT32SZ) @@ -205,48 +214,48 @@ ns_sprintrrf(const u_char *msg, size_t msglen, /* Serial number. */ t = ns_get32(rdata); rdata += NS_INT32SZ; - T(addstr("\t\t\t\t\t", 5, &buf, &buflen)); + T(addstr("\t\t\t\t\t", (size_t)5, &buf, &buflen)); len = SPRINTF((tmp, "%lu", t)); - T(addstr(tmp, len, &buf, &buflen)); - T(spaced = addtab(len, 16, spaced, &buf, &buflen)); - T(addstr("; serial\n", 9, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); + T(spaced = addtab((size_t)len, (size_t)16, spaced, &buf, &buflen)); + T(addstr("; serial\n", (size_t)9, &buf, &buflen)); spaced = 0; /* Refresh interval. */ t = ns_get32(rdata); rdata += NS_INT32SZ; - T(addstr("\t\t\t\t\t", 5, &buf, &buflen)); + T(addstr("\t\t\t\t\t", (size_t)5, &buf, &buflen)); T(len = ns_format_ttl(t, buf, buflen)); - addlen(len, &buf, &buflen); - T(spaced = addtab(len, 16, spaced, &buf, &buflen)); - T(addstr("; refresh\n", 10, &buf, &buflen)); + addlen((size_t)len, &buf, &buflen); + T(spaced = addtab((size_t)len, (size_t)16, spaced, &buf, &buflen)); + T(addstr("; refresh\n", (size_t)10, &buf, &buflen)); spaced = 0; /* Retry interval. */ t = ns_get32(rdata); rdata += NS_INT32SZ; - T(addstr("\t\t\t\t\t", 5, &buf, &buflen)); + T(addstr("\t\t\t\t\t", (size_t)5, &buf, &buflen)); T(len = ns_format_ttl(t, buf, buflen)); - addlen(len, &buf, &buflen); - T(spaced = addtab(len, 16, spaced, &buf, &buflen)); - T(addstr("; retry\n", 8, &buf, &buflen)); + addlen((size_t)len, &buf, &buflen); + T(spaced = addtab((size_t)len, (size_t)16, spaced, &buf, &buflen)); + T(addstr("; retry\n", (size_t)8, &buf, &buflen)); spaced = 0; /* Expiry. */ t = ns_get32(rdata); rdata += NS_INT32SZ; - T(addstr("\t\t\t\t\t", 5, &buf, &buflen)); + T(addstr("\t\t\t\t\t", (size_t)5, &buf, &buflen)); T(len = ns_format_ttl(t, buf, buflen)); - addlen(len, &buf, &buflen); - T(spaced = addtab(len, 16, spaced, &buf, &buflen)); - T(addstr("; expiry\n", 9, &buf, &buflen)); + addlen((size_t)len, &buf, &buflen); + T(spaced = addtab((size_t)len, (size_t)16, spaced, &buf, &buflen)); + T(addstr("; expiry\n", (size_t)9, &buf, &buflen)); spaced = 0; /* Minimum TTL. */ t = ns_get32(rdata); rdata += NS_INT32SZ; - T(addstr("\t\t\t\t\t", 5, &buf, &buflen)); + T(addstr("\t\t\t\t\t", (size_t)5, &buf, &buflen)); T(len = ns_format_ttl(t, buf, buflen)); - addlen(len, &buf, &buflen); - T(addstr(" )", 2, &buf, &buflen)); - T(spaced = addtab(len, 16, spaced, &buf, &buflen)); - T(addstr("; minimum\n", 10, &buf, &buflen)); + addlen((size_t)len, &buf, &buflen); + T(addstr(" )", (size_t)2, &buf, &buflen)); + T(spaced = addtab((size_t)len, (size_t)16, spaced, &buf, &buflen)); + T(addstr("; minimum\n", (size_t)10, &buf, &buflen)); break; } @@ -264,7 +273,7 @@ ns_sprintrrf(const u_char *msg, size_t msglen, t = ns_get16(rdata); rdata += NS_INT16SZ; len = SPRINTF((tmp, "%u ", t)); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); /* Target. */ T(addname(msg, msglen, &rdata, origin, &buf, &buflen)); @@ -282,11 +291,11 @@ ns_sprintrrf(const u_char *msg, size_t msglen, t = ns_get16(rdata); rdata += NS_INT16SZ; len = SPRINTF((tmp, "%u ", t)); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); /* Name1. */ T(addname(msg, msglen, &rdata, origin, &buf, &buflen)); - T(addstr(" ", 1, &buf, &buflen)); + T(addstr(" ", (size_t)1, &buf, &buflen)); /* Name2. */ T(addname(msg, msglen, &rdata, origin, &buf, &buflen)); @@ -309,14 +318,14 @@ ns_sprintrrf(const u_char *msg, size_t msglen, goto formerr; rdata += len; if (rdata < edata) - T(addstr(" ", 1, &buf, &buflen)); + T(addstr(" ", (size_t)1, &buf, &buflen)); } break; case ns_t_nsap: { char t[2+255*3]; - (void) inet_nsap_ntoa(rdlen, rdata, t); + (void) inet_nsap_ntoa((int)rdlen, rdata, t); T(addstr(t, strlen(t), &buf, &buflen)); break; } @@ -324,7 +333,7 @@ ns_sprintrrf(const u_char *msg, size_t msglen, case ns_t_aaaa: if (rdlen != (size_t)NS_IN6ADDRSZ) goto formerr; - (void) inet_ntop(AF_INET6, rdata, buf, buflen); + (void) inet_ntop(AF_INET6, rdata, buf, (socklen_t)buflen); addlen(strlen(buf), &buf, &buflen); break; @@ -348,21 +357,21 @@ ns_sprintrrf(const u_char *msg, size_t msglen, order = ns_get16(rdata); rdata += NS_INT16SZ; preference = ns_get16(rdata); rdata += NS_INT16SZ; len = SPRINTF((t, "%u %u ", order, preference)); - T(addstr(t, len, &buf, &buflen)); + T(addstr(t, (size_t)len, &buf, &buflen)); /* Flags. */ T(len = charstr(rdata, edata, &buf, &buflen)); if (len == 0) goto formerr; rdata += len; - T(addstr(" ", 1, &buf, &buflen)); + T(addstr(" ", (size_t)1, &buf, &buflen)); /* Service. */ T(len = charstr(rdata, edata, &buf, &buflen)); if (len == 0) goto formerr; rdata += len; - T(addstr(" ", 1, &buf, &buflen)); + T(addstr(" ", (size_t)1, &buf, &buflen)); /* Regexp. */ T(len = charstr(rdata, edata, &buf, &buflen)); @@ -371,7 +380,7 @@ ns_sprintrrf(const u_char *msg, size_t msglen, if (len == 0) goto formerr; rdata += len; - T(addstr(" ", 1, &buf, &buflen)); + T(addstr(" ", (size_t)1, &buf, &buflen)); /* Server. */ T(addname(msg, msglen, &rdata, origin, &buf, &buflen)); @@ -390,7 +399,7 @@ ns_sprintrrf(const u_char *msg, size_t msglen, weight = ns_get16(rdata); rdata += NS_INT16SZ; port = ns_get16(rdata); rdata += NS_INT16SZ; len = SPRINTF((t, "%u %u %u ", priority, weight, port)); - T(addstr(t, len, &buf, &buflen)); + T(addstr(t, (size_t)len, &buf, &buflen)); /* Server. */ T(addname(msg, msglen, &rdata, origin, &buf, &buflen)); @@ -401,7 +410,7 @@ ns_sprintrrf(const u_char *msg, size_t msglen, case ns_t_rp: /* Name1. */ T(addname(msg, msglen, &rdata, origin, &buf, &buflen)); - T(addstr(" ", 1, &buf, &buflen)); + T(addstr(" ", (size_t)1, &buf, &buflen)); /* Name2. */ T(addname(msg, msglen, &rdata, origin, &buf, &buflen)); @@ -415,13 +424,13 @@ ns_sprintrrf(const u_char *msg, size_t msglen, goto formerr; /* Address. */ - (void) inet_ntop(AF_INET, rdata, buf, buflen); + (void) inet_ntop(AF_INET, rdata, buf, (socklen_t)buflen); addlen(strlen(buf), &buf, &buflen); rdata += NS_INADDRSZ; /* Protocol. */ len = SPRINTF((tmp, " %u ( ", *rdata)); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); rdata += NS_INT8SZ; /* Bit map. */ @@ -432,19 +441,19 @@ ns_sprintrrf(const u_char *msg, size_t msglen, do { if (c & 0200) { if (lcnt == 0) { - T(addstr("\n\t\t\t\t", 5, + T(addstr("\n\t\t\t\t", (size_t)5, &buf, &buflen)); lcnt = 10; spaced = 0; } len = SPRINTF((tmp, "%d ", n)); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); lcnt--; } c <<= 1; } while (++n & 07); } - T(addstr(")", 1, &buf, &buflen)); + T(addstr(")", (size_t)1, &buf, &buflen)); break; } @@ -460,34 +469,38 @@ ns_sprintrrf(const u_char *msg, size_t msglen, goto formerr; /* Key flags, Protocol, Algorithm. */ +#ifndef _LIBC key_id = dst_s_dns_key_id(rdata, edata-rdata); +#else + key_id = 0; +#endif keyflags = ns_get16(rdata); rdata += NS_INT16SZ; protocol = *rdata++; algorithm = *rdata++; len = SPRINTF((tmp, "0x%04x %u %u", keyflags, protocol, algorithm)); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); /* Public key data. */ - len = b64_ntop(rdata, edata - rdata, + len = b64_ntop(rdata, (size_t)(edata - rdata), base64_key, sizeof base64_key); if (len < 0) goto formerr; if (len > 15) { - T(addstr(" (", 2, &buf, &buflen)); + T(addstr(" (", (size_t)2, &buf, &buflen)); leader = "\n\t\t"; spaced = 0; } else leader = " "; for (n = 0; n < len; n += 48) { T(addstr(leader, strlen(leader), &buf, &buflen)); - T(addstr(base64_key + n, MIN(len - n, 48), + T(addstr(base64_key + n, (size_t)MIN(len - n, 48), &buf, &buflen)); } if (len > 15) - T(addstr(" )", 2, &buf, &buflen)); + T(addstr(" )", (size_t)2, &buf, &buflen)); n = SPRINTF((tmp, " ; key_tag= %u", key_id)); - T(addstr(tmp, n, &buf, &buflen)); + T(addstr(tmp, (size_t)n, &buf, &buflen)); break; } @@ -495,7 +508,7 @@ ns_sprintrrf(const u_char *msg, size_t msglen, case ns_t_sig: case ns_t_rrsig: { char base64_key[NS_MD5RSA_MAX_BASE64]; - u_int type, algorithm, labels, footprint; + u_int typ, algorithm, labels, footprint; const char *leader; u_long t; int n; @@ -504,39 +517,39 @@ ns_sprintrrf(const u_char *msg, size_t msglen, goto formerr; /* Type covered, Algorithm, Label count, Original TTL. */ - type = ns_get16(rdata); rdata += NS_INT16SZ; + typ = ns_get16(rdata); rdata += NS_INT16SZ; algorithm = *rdata++; labels = *rdata++; t = ns_get32(rdata); rdata += NS_INT32SZ; len = SPRINTF((tmp, "%s %d %d %lu ", - p_type(type), algorithm, labels, t)); - T(addstr(tmp, len, &buf, &buflen)); + p_type((int)typ), algorithm, labels, t)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); if (labels > (u_int)dn_count_labels(name)) goto formerr; /* Signature expiry. */ t = ns_get32(rdata); rdata += NS_INT32SZ; len = SPRINTF((tmp, "%s ", p_secstodate(t))); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); /* Time signed. */ t = ns_get32(rdata); rdata += NS_INT32SZ; len = SPRINTF((tmp, "%s ", p_secstodate(t))); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); /* Signature Footprint. */ footprint = ns_get16(rdata); rdata += NS_INT16SZ; len = SPRINTF((tmp, "%u ", footprint)); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); /* Signer's name. */ T(addname(msg, msglen, &rdata, origin, &buf, &buflen)); /* Signature. */ - len = b64_ntop(rdata, edata - rdata, + len = b64_ntop(rdata, (size_t)(edata - rdata), base64_key, sizeof base64_key); if (len > 15) { - T(addstr(" (", 2, &buf, &buflen)); + T(addstr(" (", (size_t)2, &buf, &buflen)); leader = "\n\t\t"; spaced = 0; } else @@ -545,16 +558,16 @@ ns_sprintrrf(const u_char *msg, size_t msglen, goto formerr; for (n = 0; n < len; n += 48) { T(addstr(leader, strlen(leader), &buf, &buflen)); - T(addstr(base64_key + n, MIN(len - n, 48), + T(addstr(base64_key + n, (size_t)MIN(len - n, 48), &buf, &buflen)); } if (len > 15) - T(addstr(" )", 2, &buf, &buflen)); + T(addstr(" )", (size_t)2, &buf, &buflen)); break; } case ns_t_nxt: { - int n, c; + ptrdiff_t n, c; /* Next domain name. */ T(addname(msg, msglen, &rdata, origin, &buf, &buflen)); @@ -563,8 +576,8 @@ ns_sprintrrf(const u_char *msg, size_t msglen, n = edata - rdata; for (c = 0; c < n*8; c++) if (NS_NXT_BIT_ISSET(c, rdata)) { - len = SPRINTF((tmp, " %s", p_type(c))); - T(addstr(tmp, len, &buf, &buflen)); + len = SPRINTF((tmp, " %s", p_type((int)c))); + T(addstr(tmp, (size_t)len, &buf, &buflen)); } break; } @@ -572,28 +585,29 @@ ns_sprintrrf(const u_char *msg, size_t msglen, case ns_t_cert: { u_int c_type, key_tag, alg; int n; - unsigned int siz; - char base64_cert[8192], tmp[40]; + size_t siz; + char base64_cert[8192], tmp1[40]; const char *leader; c_type = ns_get16(rdata); rdata += NS_INT16SZ; key_tag = ns_get16(rdata); rdata += NS_INT16SZ; alg = (u_int) *rdata++; - len = SPRINTF((tmp, "%d %d %d ", c_type, key_tag, alg)); - T(addstr(tmp, len, &buf, &buflen)); + len = SPRINTF((tmp1, "%d %d %d ", c_type, key_tag, alg)); + T(addstr(tmp1, (size_t)len, &buf, &buflen)); siz = (edata-rdata)*4/3 + 4; /* "+4" accounts for trailing \0 */ if (siz > sizeof(base64_cert) * 3/4) { const char *str = "record too long to print"; T(addstr(str, strlen(str), &buf, &buflen)); } else { - len = b64_ntop(rdata, edata-rdata, base64_cert, siz); + len = b64_ntop(rdata, (size_t)(edata-rdata), + base64_cert, siz); if (len < 0) goto formerr; else if (len > 15) { - T(addstr(" (", 2, &buf, &buflen)); + T(addstr(" (", (size_t)2, &buf, &buflen)); leader = "\n\t\t"; spaced = 0; } @@ -603,11 +617,11 @@ ns_sprintrrf(const u_char *msg, size_t msglen, for (n = 0; n < len; n += 48) { T(addstr(leader, strlen(leader), &buf, &buflen)); - T(addstr(base64_cert + n, MIN(len - n, 48), + T(addstr(base64_cert + n, (size_t)MIN(len - n, 48), &buf, &buflen)); } if (len > 15) - T(addstr(" )", 2, &buf, &buflen)); + T(addstr(" )", (size_t)2, &buf, &buflen)); } break; } @@ -619,17 +633,17 @@ ns_sprintrrf(const u_char *msg, size_t msglen, /* Algorithm name. */ T(addname(msg, msglen, &rdata, origin, &buf, &buflen)); - T(addstr(" ", 1, &buf, &buflen)); + T(addstr(" ", (size_t)1, &buf, &buflen)); /* Inception. */ t = ns_get32(rdata); rdata += NS_INT32SZ; len = SPRINTF((tmp, "%s ", p_secstodate(t))); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); /* Experation. */ t = ns_get32(rdata); rdata += NS_INT32SZ; len = SPRINTF((tmp, "%s ", p_secstodate(t))); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); /* Mode , Error, Key Size. */ /* Priority, Weight, Port. */ @@ -637,7 +651,7 @@ ns_sprintrrf(const u_char *msg, size_t msglen, err = ns_get16(rdata); rdata += NS_INT16SZ; keysize = ns_get16(rdata); rdata += NS_INT16SZ; len = SPRINTF((tmp, "%u %u %u ", mode, err, keysize)); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); /* XXX need to dump key, print otherdata length & other data */ break; @@ -648,7 +662,7 @@ ns_sprintrrf(const u_char *msg, size_t msglen, int n; T(len = addname(msg, msglen, &rdata, origin, &buf, &buflen)); - T(addstr(" ", 1, &buf, &buflen)); + T(addstr(" ", (size_t)1, &buf, &buflen)); rdata += 8; /*%< time */ n = ns_get16(rdata); rdata += INT16SZ; rdata += n; /*%< sig */ @@ -666,7 +680,7 @@ ns_sprintrrf(const u_char *msg, size_t msglen, /* prefix length */ if (rdlen == 0U) goto formerr; len = SPRINTF((tmp, "%d ", *rdata)); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); pbit = *rdata; if (pbit > 128) goto formerr; pbyte = (pbit & ~7) / 8; @@ -677,7 +691,7 @@ ns_sprintrrf(const u_char *msg, size_t msglen, if (rdata + pbyte >= edata) goto formerr; memset(&a, 0, sizeof(a)); memcpy(&a.s6_addr[pbyte], rdata, sizeof(a) - pbyte); - (void) inet_ntop(AF_INET6, &a, buf, buflen); + (void) inet_ntop(AF_INET6, &a, buf, (socklen_t)buflen); addlen(strlen(buf), &buf, &buflen); rdata += sizeof(a) - pbyte; } @@ -686,7 +700,7 @@ ns_sprintrrf(const u_char *msg, size_t msglen, if (pbit == 0) break; if (rdata >= edata) goto formerr; - T(addstr(" ", 1, &buf, &buflen)); + T(addstr(" ", (size_t)1, &buf, &buflen)); T(addname(msg, msglen, &rdata, origin, &buf, &buflen)); break; @@ -694,7 +708,7 @@ ns_sprintrrf(const u_char *msg, size_t msglen, case ns_t_opt: { len = SPRINTF((tmp, "%u bytes", class)); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); break; } @@ -708,21 +722,21 @@ ns_sprintrrf(const u_char *msg, size_t msglen, t = ns_get16(rdata); rdata += NS_INT16SZ; len = SPRINTF((tmp, "%u ", t)); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); } else if (rdlen < 2U) goto formerr; len = SPRINTF((tmp, "%u ", *rdata)); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); rdata++; len = SPRINTF((tmp, "%u ", *rdata)); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); rdata++; while (rdata < edata) { len = SPRINTF((tmp, "%02X", *rdata)); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); rdata++; } break; @@ -733,17 +747,17 @@ ns_sprintrrf(const u_char *msg, size_t msglen, u_int t, w, l, j, k, c; len = SPRINTF((tmp, "%u ", *rdata)); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); rdata++; len = SPRINTF((tmp, "%u ", *rdata)); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); rdata++; t = ns_get16(rdata); rdata += NS_INT16SZ; len = SPRINTF((tmp, "%u ", t)); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); t = *rdata++; if (t == 0) { @@ -751,7 +765,7 @@ ns_sprintrrf(const u_char *msg, size_t msglen, } else { while (t-- > 0) { len = SPRINTF((tmp, "%02X", *rdata)); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); rdata++; } } @@ -763,54 +777,54 @@ ns_sprintrrf(const u_char *msg, size_t msglen, while (t > 0) { switch (t) { case 1: - tmp[0] = base32hex[((rdata[0]>>3)&0x1f)]; - tmp[1] = base32hex[((rdata[0]<<2)&0x1c)]; + tmp[0] = base32hex[(((uint32_t)rdata[0]>>3)&0x1f)]; + tmp[1] = base32hex[(((uint32_t)rdata[0]<<2)&0x1c)]; tmp[2] = tmp[3] = tmp[4] = '='; tmp[5] = tmp[6] = tmp[7] = '='; break; case 2: - tmp[0] = base32hex[((rdata[0]>>3)&0x1f)]; - tmp[1] = base32hex[((rdata[0]<<2)&0x1c)| - ((rdata[1]>>6)&0x03)]; - tmp[2] = base32hex[((rdata[1]>>1)&0x1f)]; - tmp[3] = base32hex[((rdata[1]<<4)&0x10)]; + tmp[0] = base32hex[(((uint32_t)rdata[0]>>3)&0x1f)]; + tmp[1] = base32hex[(((uint32_t)rdata[0]<<2)&0x1c)| + (((uint32_t)rdata[1]>>6)&0x03)]; + tmp[2] = base32hex[(((uint32_t)rdata[1]>>1)&0x1f)]; + tmp[3] = base32hex[(((uint32_t)rdata[1]<<4)&0x10)]; tmp[4] = tmp[5] = tmp[6] = tmp[7] = '='; break; case 3: - tmp[0] = base32hex[((rdata[0]>>3)&0x1f)]; - tmp[1] = base32hex[((rdata[0]<<2)&0x1c)| - ((rdata[1]>>6)&0x03)]; - tmp[2] = base32hex[((rdata[1]>>1)&0x1f)]; - tmp[3] = base32hex[((rdata[1]<<4)&0x10)| - ((rdata[2]>>4)&0x0f)]; - tmp[4] = base32hex[((rdata[2]<<1)&0x1e)]; + tmp[0] = base32hex[(((uint32_t)rdata[0]>>3)&0x1f)]; + tmp[1] = base32hex[(((uint32_t)rdata[0]<<2)&0x1c)| + (((uint32_t)rdata[1]>>6)&0x03)]; + tmp[2] = base32hex[(((uint32_t)rdata[1]>>1)&0x1f)]; + tmp[3] = base32hex[(((uint32_t)rdata[1]<<4)&0x10)| + (((uint32_t)rdata[2]>>4)&0x0f)]; + tmp[4] = base32hex[(((uint32_t)rdata[2]<<1)&0x1e)]; tmp[5] = tmp[6] = tmp[7] = '='; break; case 4: - tmp[0] = base32hex[((rdata[0]>>3)&0x1f)]; - tmp[1] = base32hex[((rdata[0]<<2)&0x1c)| - ((rdata[1]>>6)&0x03)]; - tmp[2] = base32hex[((rdata[1]>>1)&0x1f)]; - tmp[3] = base32hex[((rdata[1]<<4)&0x10)| - ((rdata[2]>>4)&0x0f)]; - tmp[4] = base32hex[((rdata[2]<<1)&0x1e)| - ((rdata[3]>>7)&0x01)]; - tmp[5] = base32hex[((rdata[3]>>2)&0x1f)]; - tmp[6] = base32hex[(rdata[3]<<3)&0x18]; + tmp[0] = base32hex[(((uint32_t)rdata[0]>>3)&0x1f)]; + tmp[1] = base32hex[(((uint32_t)rdata[0]<<2)&0x1c)| + (((uint32_t)rdata[1]>>6)&0x03)]; + tmp[2] = base32hex[(((uint32_t)rdata[1]>>1)&0x1f)]; + tmp[3] = base32hex[(((uint32_t)rdata[1]<<4)&0x10)| + (((uint32_t)rdata[2]>>4)&0x0f)]; + tmp[4] = base32hex[(((uint32_t)rdata[2]<<1)&0x1e)| + (((uint32_t)rdata[3]>>7)&0x01)]; + tmp[5] = base32hex[(((uint32_t)rdata[3]>>2)&0x1f)]; + tmp[6] = base32hex[((uint32_t)rdata[3]<<3)&0x18]; tmp[7] = '='; break; default: - tmp[0] = base32hex[((rdata[0]>>3)&0x1f)]; - tmp[1] = base32hex[((rdata[0]<<2)&0x1c)| - ((rdata[1]>>6)&0x03)]; - tmp[2] = base32hex[((rdata[1]>>1)&0x1f)]; - tmp[3] = base32hex[((rdata[1]<<4)&0x10)| - ((rdata[2]>>4)&0x0f)]; - tmp[4] = base32hex[((rdata[2]<<1)&0x1e)| - ((rdata[3]>>7)&0x01)]; - tmp[5] = base32hex[((rdata[3]>>2)&0x1f)]; - tmp[6] = base32hex[((rdata[3]<<3)&0x18)| - ((rdata[4]>>5)&0x07)]; + tmp[0] = base32hex[(((uint32_t)rdata[0]>>3)&0x1f)]; + tmp[1] = base32hex[(((uint32_t)rdata[0]<<2)&0x1c)| + (((uint32_t)rdata[1]>>6)&0x03)]; + tmp[2] = base32hex[(((uint32_t)rdata[1]>>1)&0x1f)]; + tmp[3] = base32hex[(((uint32_t)rdata[1]<<4)&0x10)| + (((uint32_t)rdata[2]>>4)&0x0f)]; + tmp[4] = base32hex[(((uint32_t)rdata[2]<<1)&0x1e)| + (((uint32_t)rdata[3]>>7)&0x01)]; + tmp[5] = base32hex[(((uint32_t)rdata[3]>>2)&0x1f)]; + tmp[6] = base32hex[(((uint32_t)rdata[3]<<3)&0x18)| + (((uint32_t)rdata[4]>>5)&0x07)]; tmp[7] = base32hex[(rdata[4]&0x1f)]; break; } @@ -834,8 +848,8 @@ ns_sprintrrf(const u_char *msg, size_t msglen, if ((rdata[j] & (0x80 >> k)) == 0) continue; c = w * 256 + j * 8 + k; - len = SPRINTF((tmp, " %s", p_type(c))); - T(addstr(tmp, len, &buf, &buflen)); + len = SPRINTF((tmp, " %s", p_type((ns_type)c))); + T(addstr(tmp, (size_t)len, &buf, &buflen)); } } rdata += l; @@ -858,8 +872,8 @@ ns_sprintrrf(const u_char *msg, size_t msglen, if ((rdata[j] & (0x80 >> k)) == 0) continue; c = w * 256 + j * 8 + k; - len = SPRINTF((tmp, " %s", p_type(c))); - T(addstr(tmp, len, &buf, &buflen)); + len = SPRINTF((tmp, " %s", p_type((ns_type)c))); + T(addstr(tmp, (size_t)len, &buf, &buflen)); } } rdata += l; @@ -873,12 +887,13 @@ ns_sprintrrf(const u_char *msg, size_t msglen, char base64_dhcid[8192]; const char *leader; - siz = (edata-rdata)*4/3 + 4; /* "+4" accounts for trailing \0 */ + siz = (int)(edata-rdata)*4/3 + 4; /* "+4" accounts for trailing \0 */ if (siz > sizeof(base64_dhcid) * 3/4) { const char *str = "record too long to print"; T(addstr(str, strlen(str), &buf, &buflen)); } else { - len = b64_ntop(rdata, edata-rdata, base64_dhcid, siz); + len = b64_ntop(rdata, (size_t)(edata-rdata), + base64_dhcid, siz); if (len < 0) goto formerr; @@ -894,8 +909,6 @@ ns_sprintrrf(const u_char *msg, size_t msglen, for (n = 0; n < len; n += 48) { T(addstr(leader, strlen(leader), &buf, &buflen)); - T(addstr(base64_dhcid + n, MIN(len - n, 48), - &buf, &buflen)); } if (len > 15) T(addstr(" )", 2, &buf, &buflen)); @@ -932,15 +945,15 @@ ns_sprintrrf(const u_char *msg, size_t msglen, } len = SPRINTF((tmp, "%u ", *rdata)); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); rdata++; len = SPRINTF((tmp, "%u ", *rdata)); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); rdata++; len = SPRINTF((tmp, "%u ", *rdata)); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); rdata++; switch (rdata[-2]) { @@ -948,12 +961,12 @@ ns_sprintrrf(const u_char *msg, size_t msglen, T(addstr(".", 1, &buf, &buflen)); break; case 1: - (void) inet_ntop(AF_INET, rdata, buf, buflen); + (void) inet_ntop(AF_INET, rdata, buf, (socklen_t)buflen); addlen(strlen(buf), &buf, &buflen); rdata += 4; break; case 2: - (void) inet_ntop(AF_INET6, rdata, buf, buflen); + (void) inet_ntop(AF_INET6, rdata, buf, (socklen_t)buflen); addlen(strlen(buf), &buf, &buflen); rdata += 16; break; @@ -965,12 +978,13 @@ ns_sprintrrf(const u_char *msg, size_t msglen, if (rdata >= edata) break; - siz = (edata-rdata)*4/3 + 4; /* "+4" accounts for trailing \0 */ + siz = (int)(edata-rdata)*4/3 + 4; /* "+4" accounts for trailing \0 */ if (siz > sizeof(base64_key) * 3/4) { const char *str = "record too long to print"; T(addstr(str, strlen(str), &buf, &buflen)); } else { - len = b64_ntop(rdata, edata-rdata, base64_key, siz); + len = b64_ntop(rdata, (size_t)(edata-rdata), + base64_key, siz); if (len < 0) goto formerr; @@ -986,12 +1000,13 @@ ns_sprintrrf(const u_char *msg, size_t msglen, for (n = 0; n < len; n += 48) { T(addstr(leader, strlen(leader), &buf, &buflen)); - T(addstr(base64_key + n, MIN(len - n, 48), - &buf, &buflen)); + T(addstr(base64_key + n, + (size_t)MIN(len - n, 48), &buf, &buflen)); } if (len > 15) T(addstr(" )", 2, &buf, &buflen)); } + break; } case ns_t_hip: { @@ -1011,11 +1026,11 @@ ns_sprintrrf(const u_char *msg, size_t msglen, T(addstr(str, strlen(str), &buf, &buflen)); } else { len = sprintf(tmp, "( %u ", algorithm); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); for (i = 0; i < hip_len; i++) { len = sprintf(tmp, "%02X", *rdata); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); rdata++; } T(addstr(leader, strlen(leader), &buf, &buflen)); @@ -1024,7 +1039,7 @@ ns_sprintrrf(const u_char *msg, size_t msglen, if (len < 0) goto formerr; - T(addstr(base64_key, len, &buf, &buflen)); + T(addstr(base64_key, (size_t)len, &buf, &buflen)); rdata += key_len; while (rdata < edata) { @@ -1041,7 +1056,8 @@ ns_sprintrrf(const u_char *msg, size_t msglen, comment = "unknown RR type"; goto hexify; } - return (buf - obuf); + assert(INT_MIN <= (buf - obuf) && (buf - obuf) <= INT_MAX); + return (int)(buf - obuf); formerr: comment = "RR format error"; hexify: { @@ -1050,18 +1066,18 @@ ns_sprintrrf(const u_char *msg, size_t msglen, len = SPRINTF((tmp, "\\# %u%s\t; %s", (unsigned)(edata - rdata), rdlen != 0U ? " (" : "", comment)); - T(addstr(tmp, len, &buf, &buflen)); + T(addstr(tmp, (size_t)len, &buf, &buflen)); while (rdata < edata) { p = tmp; p += SPRINTF((p, "\n\t")); spaced = 0; - n = MIN(16, edata - rdata); + n = MIN(16, (int)(edata - rdata)); for (m = 0; m < n; m++) p += SPRINTF((p, "%02x ", rdata[m])); - T(addstr(tmp, p - tmp, &buf, &buflen)); + T(addstr(tmp, (size_t)(p - tmp), &buf, &buflen)); if (n < 16) { - T(addstr(")", 1, &buf, &buflen)); - T(addtab(p - tmp + 1, 48, spaced, &buf, &buflen)); + T(addstr(")", (size_t)1, &buf, &buflen)); + T(addtab((size_t)(p - tmp + 1), (size_t)48, spaced, &buf, &buflen)); } p = tmp; p += SPRINTF((p, "; ")); @@ -1069,10 +1085,11 @@ ns_sprintrrf(const u_char *msg, size_t msglen, *p++ = (isascii(rdata[m]) && isprint(rdata[m])) ? rdata[m] : '.'; - T(addstr(tmp, p - tmp, &buf, &buflen)); + T(addstr(tmp, (size_t)(p - tmp), &buf, &buflen)); rdata += n; } - return (buf - obuf); + assert(INT_MIN <= (buf - obuf) && (buf - obuf) <= INT_MAX); + return (int)(buf - obuf); } } @@ -1128,7 +1145,7 @@ charstr(const u_char *rdata, const u_char *edata, char **buf, size_t *buflen) { size_t save_buflen = *buflen; char *save_buf = *buf; - if (addstr("\"", 1, buf, buflen) < 0) + if (addstr("\"", (size_t)1, buf, buflen) < 0) goto enospc; if (rdata < edata) { int n = *rdata; @@ -1137,18 +1154,19 @@ charstr(const u_char *rdata, const u_char *edata, char **buf, size_t *buflen) { rdata++; while (n-- > 0) { if (strchr("\n\"\\", *rdata) != NULL) - if (addstr("\\", 1, buf, buflen) < 0) + if (addstr("\\", (size_t)1, buf, buflen) < 0) goto enospc; - if (addstr((const char *)rdata, 1, + if (addstr((const char *)rdata, (size_t)1, buf, buflen) < 0) goto enospc; rdata++; } } } - if (addstr("\"", 1, buf, buflen) < 0) + if (addstr("\"", (size_t)1, buf, buflen) < 0) goto enospc; - return (rdata - odata); + assert(INT_MIN <= (rdata - odata) && (rdata - odata) <= INT_MAX); + return (int)(rdata - odata); enospc: errno = ENOSPC; *buf = save_buf; @@ -1165,7 +1183,7 @@ addname(const u_char *msg, size_t msglen, char *save_buf = *buf; int n; - n = dn_expand(msg, msg + msglen, *pp, *buf, *buflen); + n = dn_expand(msg, msg + msglen, *pp, *buf, (int)*buflen); if (n < 0) goto enospc; /*%< Guess. */ newlen = prune_origin(*buf, origin); @@ -1192,7 +1210,8 @@ addname(const u_char *msg, size_t msglen, *pp += n; addlen(newlen, buf, buflen); **buf = '\0'; - return (newlen); + assert(newlen <= INT_MAX); + return (int)newlen; enospc: errno = ENOSPC; *buf = save_buf; @@ -1223,14 +1242,14 @@ static int addtab(size_t len, size_t target, int spaced, char **buf, size_t *buflen) { size_t save_buflen = *buflen; char *save_buf = *buf; - int t; + ptrdiff_t t; if (spaced || len >= target - 1) { - T(addstr(" ", 2, buf, buflen)); + T(addstr(" ", (size_t)2, buf, buflen)); spaced = 1; } else { for (t = (target - len - 1) / 8; t >= 0; t--) - if (addstr("\t", 1, buf, buflen) < 0) { + if (addstr("\t", (size_t)1, buf, buflen) < 0) { *buflen = save_buflen; *buf = save_buf; return (-1); diff --git a/src/kits/network/libbind/nameser/ns_rdata.c b/src/kits/network/libbind/nameser/ns_rdata.c deleted file mode 100644 index cd14bd7cf4..0000000000 --- a/src/kits/network/libbind/nameser/ns_rdata.c +++ /dev/null @@ -1,294 +0,0 @@ -/* - * Copyright (C) 2009 Internet Systems Consortium, Inc. ("ISC") - * - * Permission to use, copy, modify, and/or 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 lint -static const char rcsid[] = "$Id: ns_rdata.c,v 1.2 2009/01/23 23:49:15 tbox Exp $"; -#endif - -#include "port_before.h" - -#if __OpenBSD__ -#include -#endif -#include -#include - -#include -#include -#include - -#include "port_after.h" - -#define CONSUME_SRC \ - do { \ - rdata += n, rdlen -= n; \ - } while (0) - -#define CONSUME_DST \ - do { \ - nrdata += n, nrdsiz -= n, nrdlen += n; \ - } while (0) - -#define UNPACK_DNAME \ - do { \ - size_t t; \ - \ - if ((n = ns_name_unpack2(msg,eom,rdata,nrdata,nrdsiz,&t))<0) {\ - errno = EMSGSIZE; \ - return (-1); \ - } \ - CONSUME_SRC; \ - n = t; \ - CONSUME_DST; \ - } while (0) - -#define UNPACK_SOME(x) \ - do { \ - n = (x); \ - if ((size_t)n > rdlen || (size_t)n > nrdsiz) { \ - errno = EMSGSIZE; \ - return (-1); \ - } \ - memcpy(nrdata, rdata, n); \ - CONSUME_SRC; CONSUME_DST; \ - } while (0) - -#define UNPACK_REST(x) \ - do { \ - n = (x); \ - if ((size_t)n != rdlen) { \ - errno = EMSGSIZE; \ - return (-1); \ - } \ - memcpy(nrdata, rdata, n); \ - CONSUME_SRC; CONSUME_DST; \ - } while (0) - -ssize_t -ns_rdata_unpack(const u_char *msg, const u_char *eom, - ns_type type, const u_char *rdata, size_t rdlen, - u_char *nrdata, size_t nrdsiz) -{ - size_t nrdlen = 0; - int n; - - switch (type) { - case ns_t_a: - UNPACK_REST(NS_INADDRSZ); - break; - case ns_t_aaaa: - UNPACK_REST(NS_IN6ADDRSZ); - break; - case ns_t_cname: - case ns_t_mb: - case ns_t_mg: - case ns_t_mr: - case ns_t_ns: - case ns_t_ptr: - case ns_t_dname: - UNPACK_DNAME; - break; - case ns_t_soa: - UNPACK_DNAME; - UNPACK_DNAME; - UNPACK_SOME(NS_INT32SZ * 5); - break; - case ns_t_mx: - case ns_t_afsdb: - case ns_t_rt: - UNPACK_SOME(NS_INT16SZ); - UNPACK_DNAME; - break; - case ns_t_px: - UNPACK_SOME(NS_INT16SZ); - UNPACK_DNAME; - UNPACK_DNAME; - break; - case ns_t_srv: - UNPACK_SOME(NS_INT16SZ * 3); - UNPACK_DNAME; - break; - case ns_t_minfo: - case ns_t_rp: - UNPACK_DNAME; - UNPACK_DNAME; - break; - default: - UNPACK_SOME(rdlen); - break; - } - if (rdlen > 0) { - errno = EMSGSIZE; - return (-1); - } - return (nrdlen); -} - -#define EQUAL_CONSUME \ - do { \ - rdata1 += n, rdlen1 -= n; \ - rdata2 += n, rdlen2 -= n; \ - } while (0) - -#define EQUAL_DNAME \ - do { \ - ssize_t n; \ - \ - if (rdlen1 != rdlen2) \ - return (0); \ - n = ns_name_eq(rdata1, rdlen1, rdata2, rdlen2); \ - if (n <= 0) \ - return (n); \ - n = rdlen1; \ - EQUAL_CONSUME; \ - } while (0) - -#define EQUAL_SOME(x) \ - do { \ - size_t n = (x); \ - \ - if (n > rdlen1 || n > rdlen2) { \ - errno = EMSGSIZE; \ - return (-1); \ - } \ - if (memcmp(rdata1, rdata2, n) != 0) \ - return (0); \ - EQUAL_CONSUME; \ - } while (0) - -int -ns_rdata_equal(ns_type type, - const u_char *rdata1, size_t rdlen1, - const u_char *rdata2, size_t rdlen2) -{ - switch (type) { - case ns_t_cname: - case ns_t_mb: - case ns_t_mg: - case ns_t_mr: - case ns_t_ns: - case ns_t_ptr: - case ns_t_dname: - EQUAL_DNAME; - break; - case ns_t_soa: - /* "There can be only one." --Highlander */ - break; - case ns_t_mx: - case ns_t_afsdb: - case ns_t_rt: - EQUAL_SOME(NS_INT16SZ); - EQUAL_DNAME; - break; - case ns_t_px: - EQUAL_SOME(NS_INT16SZ); - EQUAL_DNAME; - EQUAL_DNAME; - break; - case ns_t_srv: - EQUAL_SOME(NS_INT16SZ * 3); - EQUAL_DNAME; - break; - case ns_t_minfo: - case ns_t_rp: - EQUAL_DNAME; - EQUAL_DNAME; - break; - default: - EQUAL_SOME(rdlen1); - break; - } - if (rdlen1 != 0 || rdlen2 != 0) - return (0); - return (1); -} - -#define REFERS_DNAME \ - do { \ - int n; \ - \ - n = ns_name_eq(rdata, rdlen, nname, NS_MAXNNAME); \ - if (n < 0) \ - return (-1); \ - if (n > 0) \ - return (1); \ - n = dn_skipname(rdata, rdata + rdlen); \ - if (n < 0) \ - return (-1); \ - CONSUME_SRC; \ - } while (0) - -#define REFERS_SOME(x) \ - do { \ - size_t n = (x); \ - \ - if (n > rdlen) { \ - errno = EMSGSIZE; \ - return (-1); \ - } \ - CONSUME_SRC; \ - } while (0) - -int -ns_rdata_refers(ns_type type, - const u_char *rdata, size_t rdlen, - const u_char *nname) -{ - switch (type) { - case ns_t_cname: - case ns_t_mb: - case ns_t_mg: - case ns_t_mr: - case ns_t_ns: - case ns_t_ptr: - case ns_t_dname: - REFERS_DNAME; - break; - case ns_t_soa: - REFERS_DNAME; - REFERS_DNAME; - REFERS_SOME(NS_INT32SZ * 5); - break; - case ns_t_mx: - case ns_t_afsdb: - case ns_t_rt: - REFERS_SOME(NS_INT16SZ); - REFERS_DNAME; - break; - case ns_t_px: - REFERS_SOME(NS_INT16SZ); - REFERS_DNAME; - REFERS_DNAME; - break; - case ns_t_srv: - REFERS_SOME(NS_INT16SZ * 3); - REFERS_DNAME; - break; - case ns_t_minfo: - case ns_t_rp: - REFERS_DNAME; - REFERS_DNAME; - break; - default: - REFERS_SOME(rdlen); - break; - } - if (rdlen != 0) { - errno = EMSGSIZE; - return (-1); - } - return (0); -} diff --git a/src/kits/network/libbind/nameser/ns_samedomain.c b/src/kits/network/libbind/nameser/ns_samedomain.c index 5e9f5cab54..8eac7d8fff 100644 --- a/src/kits/network/libbind/nameser/ns_samedomain.c +++ b/src/kits/network/libbind/nameser/ns_samedomain.c @@ -1,3 +1,5 @@ +/* $NetBSD: ns_samedomain.c,v 1.8 2012/11/22 20:22:31 christos Exp $ */ + /* * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1995,1999 by Internet Software Consortium. @@ -15,8 +17,13 @@ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include #ifndef lint -static const char rcsid[] = "$Id: ns_samedomain.c,v 1.6 2005/04/27 04:56:40 sra Exp $"; +#ifdef notdef +static const char rcsid[] = "Id: ns_samedomain.c,v 1.6 2005/04/27 04:56:40 sra Exp"; +#else +//__RCSID("$NetBSD: ns_samedomain.c,v 1.8 2012/11/22 20:22:31 christos Exp $"); +#endif #endif #include "port_before.h" @@ -28,6 +35,7 @@ static const char rcsid[] = "$Id: ns_samedomain.c,v 1.6 2005/04/27 04:56:40 sra #include "port_after.h" +#ifdef _LIBRESOLV /*% * Check whether a name belongs to a domain. * @@ -49,8 +57,8 @@ static const char rcsid[] = "$Id: ns_samedomain.c,v 1.6 2005/04/27 04:56:40 sra int ns_samedomain(const char *a, const char *b) { - size_t la, lb; - int diff, i, escaped; + size_t la, lb, i; + int diff, escaped; const char *cp; la = strlen(a); @@ -60,8 +68,8 @@ ns_samedomain(const char *a, const char *b) { if (la != 0U && a[la - 1] == '.') { escaped = 0; /* Note this loop doesn't get executed if la==1. */ - for (i = la - 2; i >= 0; i--) - if (a[i] == '\\') { + for (i = la - 1; i > 0; i--) + if (a[i - 1] == '\\') { if (escaped) escaped = 0; else @@ -76,8 +84,8 @@ ns_samedomain(const char *a, const char *b) { if (lb != 0U && b[lb - 1] == '.') { escaped = 0; /* note this loop doesn't get executed if lb==1 */ - for (i = lb - 2; i >= 0; i--) - if (b[i] == '\\') { + for (i = lb - 1; i > 0; i--) + if (b[i - 1] == '\\') { if (escaped) escaped = 0; else @@ -102,7 +110,7 @@ ns_samedomain(const char *a, const char *b) { /* Ok, we know la > lb. */ - diff = la - lb; + diff = (int)(la - lb); /* * If 'a' is only 1 character longer than 'b', then it can't be @@ -125,8 +133,8 @@ ns_samedomain(const char *a, const char *b) { * and thus not a really a label separator. */ escaped = 0; - for (i = diff - 2; i >= 0; i--) - if (a[i] == '\\') { + for (i = diff - 1; i > 0; i--) + if (a[i - 1] == '\\') { if (escaped) escaped = 0; else @@ -148,7 +156,9 @@ int ns_subdomain(const char *a, const char *b) { return (ns_samename(a, b) != 1 && ns_samedomain(a, b)); } - +#endif +#define _LIBC +#ifdef _LIBC /*% * make a canonical copy of domain name "src" * @@ -203,5 +213,5 @@ ns_samename(const char *a, const char *b) { else return (0); } - +#endif /*! \file */ diff --git a/src/kits/network/libbind/nameser/ns_sign.c b/src/kits/network/libbind/nameser/ns_sign.c deleted file mode 100644 index 5748a090d9..0000000000 --- a/src/kits/network/libbind/nameser/ns_sign.c +++ /dev/null @@ -1,387 +0,0 @@ -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 1999 by Internet Software Consortium, Inc. - * - * 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 lint -static const char rcsid[] = "$Id: ns_sign.c,v 1.6 2006/03/09 23:57:56 marka Exp $"; -#endif - -/* Import. */ - -#include "port_before.h" -#include "fd_setsize.h" - -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "port_after.h" - -#define BOUNDS_CHECK(ptr, count) \ - do { \ - if ((ptr) + (count) > eob) { \ - errno = EMSGSIZE; \ - return(NS_TSIG_ERROR_NO_SPACE); \ - } \ - } while (0) - -/*% - * ns_sign - * - * Parameters: - *\li msg message to be sent - *\li msglen input - length of message - * output - length of signed message - *\li msgsize length of buffer containing message - *\li error value to put in the error field - *\li key tsig key used for signing - *\li querysig (response), the signature in the query - *\li querysiglen (response), the length of the signature in the query - *\li sig a buffer to hold the generated signature - *\li siglen input - length of signature buffer - * output - length of signature - * - * Errors: - *\li - bad input data (-1) - *\li - bad key / sign failed (-BADKEY) - *\li - not enough space (NS_TSIG_ERROR_NO_SPACE) - */ -int -ns_sign(u_char *msg, int *msglen, int msgsize, int error, void *k, - const u_char *querysig, int querysiglen, u_char *sig, int *siglen, - time_t in_timesigned) -{ - return(ns_sign2(msg, msglen, msgsize, error, k, - querysig, querysiglen, sig, siglen, - in_timesigned, NULL, NULL)); -} - -int -ns_sign2(u_char *msg, int *msglen, int msgsize, int error, void *k, - const u_char *querysig, int querysiglen, u_char *sig, int *siglen, - time_t in_timesigned, u_char **dnptrs, u_char **lastdnptr) -{ - HEADER *hp = (HEADER *)msg; - DST_KEY *key = (DST_KEY *)k; - u_char *cp, *eob; - u_char *lenp; - u_char *alg; - int n; - time_t timesigned; - u_char name[NS_MAXCDNAME]; - - dst_init(); - if (msg == NULL || msglen == NULL || sig == NULL || siglen == NULL) - return (-1); - - cp = msg + *msglen; - eob = msg + msgsize; - - /* Name. */ - if (key != NULL && error != ns_r_badsig && error != ns_r_badkey) { - n = ns_name_pton(key->dk_key_name, name, sizeof name); - if (n != -1) - n = ns_name_pack(name, cp, eob - cp, - (const u_char **)dnptrs, - (const u_char **)lastdnptr); - - } else { - n = ns_name_pton("", name, sizeof name); - if (n != -1) - n = ns_name_pack(name, cp, eob - cp, NULL, NULL); - } - if (n < 0) - return (NS_TSIG_ERROR_NO_SPACE); - cp += n; - - /* Type, class, ttl, length (not filled in yet). */ - BOUNDS_CHECK(cp, INT16SZ + INT16SZ + INT32SZ + INT16SZ); - PUTSHORT(ns_t_tsig, cp); - PUTSHORT(ns_c_any, cp); - PUTLONG(0, cp); /*%< TTL */ - lenp = cp; - cp += 2; - - /* Alg. */ - if (key != NULL && error != ns_r_badsig && error != ns_r_badkey) { - if (key->dk_alg != KEY_HMAC_MD5) - return (-ns_r_badkey); - n = dn_comp(NS_TSIG_ALG_HMAC_MD5, cp, eob - cp, NULL, NULL); - } - else - n = dn_comp("", cp, eob - cp, NULL, NULL); - if (n < 0) - return (NS_TSIG_ERROR_NO_SPACE); - alg = cp; - cp += n; - - /* Time. */ - BOUNDS_CHECK(cp, INT16SZ + INT32SZ + INT16SZ); - PUTSHORT(0, cp); - timesigned = time(NULL); - if (error != ns_r_badtime) - PUTLONG(timesigned, cp); - else - PUTLONG(in_timesigned, cp); - PUTSHORT(NS_TSIG_FUDGE, cp); - - /* Compute the signature. */ - if (key != NULL && error != ns_r_badsig && error != ns_r_badkey) { - void *ctx; - u_char buf[NS_MAXCDNAME], *cp2; - int n; - - dst_sign_data(SIG_MODE_INIT, key, &ctx, NULL, 0, NULL, 0); - - /* Digest the query signature, if this is a response. */ - if (querysiglen > 0 && querysig != NULL) { - u_int16_t len_n = htons(querysiglen); - dst_sign_data(SIG_MODE_UPDATE, key, &ctx, - (u_char *)&len_n, INT16SZ, NULL, 0); - dst_sign_data(SIG_MODE_UPDATE, key, &ctx, - querysig, querysiglen, NULL, 0); - } - - /* Digest the message. */ - dst_sign_data(SIG_MODE_UPDATE, key, &ctx, msg, *msglen, - NULL, 0); - - /* Digest the key name. */ - n = ns_name_ntol(name, buf, sizeof(buf)); - INSIST(n > 0); - dst_sign_data(SIG_MODE_UPDATE, key, &ctx, buf, n, NULL, 0); - - /* Digest the class and TTL. */ - cp2 = buf; - PUTSHORT(ns_c_any, cp2); - PUTLONG(0, cp2); - dst_sign_data(SIG_MODE_UPDATE, key, &ctx, buf, cp2-buf, - NULL, 0); - - /* Digest the algorithm. */ - n = ns_name_ntol(alg, buf, sizeof(buf)); - INSIST(n > 0); - dst_sign_data(SIG_MODE_UPDATE, key, &ctx, buf, n, NULL, 0); - - /* Digest the time signed, fudge, error, and other data */ - cp2 = buf; - PUTSHORT(0, cp2); /*%< Top 16 bits of time */ - if (error != ns_r_badtime) - PUTLONG(timesigned, cp2); - else - PUTLONG(in_timesigned, cp2); - PUTSHORT(NS_TSIG_FUDGE, cp2); - PUTSHORT(error, cp2); /*%< Error */ - if (error != ns_r_badtime) - PUTSHORT(0, cp2); /*%< Other data length */ - else { - PUTSHORT(INT16SZ+INT32SZ, cp2); /*%< Other data length */ - PUTSHORT(0, cp2); /*%< Top 16 bits of time */ - PUTLONG(timesigned, cp2); - } - dst_sign_data(SIG_MODE_UPDATE, key, &ctx, buf, cp2-buf, - NULL, 0); - - n = dst_sign_data(SIG_MODE_FINAL, key, &ctx, NULL, 0, - sig, *siglen); - if (n < 0) - return (-ns_r_badkey); - *siglen = n; - } else - *siglen = 0; - - /* Add the signature. */ - BOUNDS_CHECK(cp, INT16SZ + (*siglen)); - PUTSHORT(*siglen, cp); - memcpy(cp, sig, *siglen); - cp += (*siglen); - - /* The original message ID & error. */ - BOUNDS_CHECK(cp, INT16SZ + INT16SZ); - PUTSHORT(ntohs(hp->id), cp); /*%< already in network order */ - PUTSHORT(error, cp); - - /* Other data. */ - BOUNDS_CHECK(cp, INT16SZ); - if (error != ns_r_badtime) - PUTSHORT(0, cp); /*%< Other data length */ - else { - PUTSHORT(INT16SZ+INT32SZ, cp); /*%< Other data length */ - BOUNDS_CHECK(cp, INT32SZ+INT16SZ); - PUTSHORT(0, cp); /*%< Top 16 bits of time */ - PUTLONG(timesigned, cp); - } - - /* Go back and fill in the length. */ - PUTSHORT(cp - lenp - INT16SZ, lenp); - - hp->arcount = htons(ntohs(hp->arcount) + 1); - *msglen = (cp - msg); - return (0); -} - -int -ns_sign_tcp_init(void *k, const u_char *querysig, int querysiglen, - ns_tcp_tsig_state *state) -{ - dst_init(); - if (state == NULL || k == NULL || querysig == NULL || querysiglen < 0) - return (-1); - state->counter = -1; - state->key = k; - if (state->key->dk_alg != KEY_HMAC_MD5) - return (-ns_r_badkey); - if (querysiglen > (int)sizeof(state->sig)) - return (-1); - memcpy(state->sig, querysig, querysiglen); - state->siglen = querysiglen; - return (0); -} - -int -ns_sign_tcp(u_char *msg, int *msglen, int msgsize, int error, - ns_tcp_tsig_state *state, int done) -{ - return (ns_sign_tcp2(msg, msglen, msgsize, error, state, - done, NULL, NULL)); -} - -int -ns_sign_tcp2(u_char *msg, int *msglen, int msgsize, int error, - ns_tcp_tsig_state *state, int done, - u_char **dnptrs, u_char **lastdnptr) -{ - u_char *cp, *eob, *lenp; - u_char buf[MAXDNAME], *cp2; - HEADER *hp = (HEADER *)msg; - time_t timesigned; - int n; - - if (msg == NULL || msglen == NULL || state == NULL) - return (-1); - - state->counter++; - if (state->counter == 0) - return (ns_sign2(msg, msglen, msgsize, error, state->key, - state->sig, state->siglen, - state->sig, &state->siglen, 0, - dnptrs, lastdnptr)); - - if (state->siglen > 0) { - u_int16_t siglen_n = htons(state->siglen); - dst_sign_data(SIG_MODE_INIT, state->key, &state->ctx, - NULL, 0, NULL, 0); - dst_sign_data(SIG_MODE_UPDATE, state->key, &state->ctx, - (u_char *)&siglen_n, INT16SZ, NULL, 0); - dst_sign_data(SIG_MODE_UPDATE, state->key, &state->ctx, - state->sig, state->siglen, NULL, 0); - state->siglen = 0; - } - - dst_sign_data(SIG_MODE_UPDATE, state->key, &state->ctx, msg, *msglen, - NULL, 0); - - if (done == 0 && (state->counter % 100 != 0)) - return (0); - - cp = msg + *msglen; - eob = msg + msgsize; - - /* Name. */ - n = dn_comp(state->key->dk_key_name, cp, eob - cp, dnptrs, lastdnptr); - if (n < 0) - return (NS_TSIG_ERROR_NO_SPACE); - cp += n; - - /* Type, class, ttl, length (not filled in yet). */ - BOUNDS_CHECK(cp, INT16SZ + INT16SZ + INT32SZ + INT16SZ); - PUTSHORT(ns_t_tsig, cp); - PUTSHORT(ns_c_any, cp); - PUTLONG(0, cp); /*%< TTL */ - lenp = cp; - cp += 2; - - /* Alg. */ - n = dn_comp(NS_TSIG_ALG_HMAC_MD5, cp, eob - cp, NULL, NULL); - if (n < 0) - return (NS_TSIG_ERROR_NO_SPACE); - cp += n; - - /* Time. */ - BOUNDS_CHECK(cp, INT16SZ + INT32SZ + INT16SZ); - PUTSHORT(0, cp); - timesigned = time(NULL); - PUTLONG(timesigned, cp); - PUTSHORT(NS_TSIG_FUDGE, cp); - - /* - * Compute the signature. - */ - - /* Digest the time signed and fudge. */ - cp2 = buf; - PUTSHORT(0, cp2); /*%< Top 16 bits of time */ - PUTLONG(timesigned, cp2); - PUTSHORT(NS_TSIG_FUDGE, cp2); - - dst_sign_data(SIG_MODE_UPDATE, state->key, &state->ctx, - buf, cp2 - buf, NULL, 0); - - n = dst_sign_data(SIG_MODE_FINAL, state->key, &state->ctx, NULL, 0, - state->sig, sizeof(state->sig)); - if (n < 0) - return (-ns_r_badkey); - state->siglen = n; - - /* Add the signature. */ - BOUNDS_CHECK(cp, INT16SZ + state->siglen); - PUTSHORT(state->siglen, cp); - memcpy(cp, state->sig, state->siglen); - cp += state->siglen; - - /* The original message ID & error. */ - BOUNDS_CHECK(cp, INT16SZ + INT16SZ); - PUTSHORT(ntohs(hp->id), cp); /*%< already in network order */ - PUTSHORT(error, cp); - - /* Other data. */ - BOUNDS_CHECK(cp, INT16SZ); - PUTSHORT(0, cp); - - /* Go back and fill in the length. */ - PUTSHORT(cp - lenp - INT16SZ, lenp); - - hp->arcount = htons(ntohs(hp->arcount) + 1); - *msglen = (cp - msg); - return (0); -} - -/*! \file */ diff --git a/src/kits/network/libbind/nameser/ns_ttl.c b/src/kits/network/libbind/nameser/ns_ttl.c index 69c2f83f57..0cd9a1f1ce 100644 --- a/src/kits/network/libbind/nameser/ns_ttl.c +++ b/src/kits/network/libbind/nameser/ns_ttl.c @@ -1,3 +1,5 @@ +/* $NetBSD: ns_ttl.c,v 1.8 2012/03/13 21:13:39 christos Exp $ */ + /* * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1996,1999 by Internet Software Consortium. @@ -15,8 +17,13 @@ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include #ifndef lint -static const char rcsid[] = "$Id: ns_ttl.c,v 1.4 2005/07/28 06:51:49 marka Exp $"; +#ifdef notdef +static const char rcsid[] = "Id: ns_ttl.c,v 1.4 2005/07/28 06:51:49 marka Exp"; +#else +//__RCSID("$NetBSD: ns_ttl.c,v 1.8 2012/03/13 21:13:39 christos Exp $"); +#endif #endif /* Import. */ @@ -25,6 +32,7 @@ static const char rcsid[] = "$Id: ns_ttl.c,v 1.4 2005/07/28 06:51:49 marka Exp $ #include +#include #include #include #include @@ -44,7 +52,7 @@ static int fmt1(int t, char s, char **buf, size_t *buflen); /* Macros. */ -#define T(x) if ((x) < 0) return (-1); else (void)NULL +#define T(x) if ((x) < 0) return (-1) /* Public. */ @@ -54,11 +62,11 @@ ns_format_ttl(u_long src, char *dst, size_t dstlen) { int secs, mins, hours, days, weeks, x; char *p; - secs = src % 60; src /= 60; - mins = src % 60; src /= 60; - hours = src % 24; src /= 24; - days = src % 7; src /= 7; - weeks = src; src = 0; + secs = (int)(src % 60); src /= 60; + mins = (int)(src % 60); src /= 60; + hours = (int)(src % 24); src /= 24; + days = (int)(src % 7); src /= 7; + weeks = (int)src; src = 0; x = 0; if (weeks) { @@ -90,9 +98,11 @@ ns_format_ttl(u_long src, char *dst, size_t dstlen) { *p = tolower(ch); } - return (dst - odst); + assert(INT_MIN <= (dst - odst) && (dst - odst) <= INT_MAX); + return (int)(dst - odst); } +#ifndef _LIBC int ns_parse_ttl(const char *src, u_long *dst) { u_long ttl, tmp; @@ -116,10 +126,10 @@ ns_parse_ttl(const char *src, u_long *dst) { if (islower(ch)) ch = toupper(ch); switch (ch) { - case 'W': tmp *= 7; - case 'D': tmp *= 24; - case 'H': tmp *= 60; - case 'M': tmp *= 60; + case 'W': tmp *= 7; /*FALLTHROUGH*/ + case 'D': tmp *= 24; /*FALLTHROUGH*/ + case 'H': tmp *= 60; /*FALLTHROUGH*/ + case 'M': tmp *= 60; /*FALLTHROUGH*/ case 'S': break; default: goto einval; } @@ -142,6 +152,7 @@ ns_parse_ttl(const char *src, u_long *dst) { errno = EINVAL; return (-1); } +#endif /* Private. */ diff --git a/src/kits/network/libbind/nameser/ns_verify.c b/src/kits/network/libbind/nameser/ns_verify.c deleted file mode 100644 index 97c012db8f..0000000000 --- a/src/kits/network/libbind/nameser/ns_verify.c +++ /dev/null @@ -1,484 +0,0 @@ -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 1999 by Internet Software Consortium, Inc. - * - * 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 lint -static const char rcsid[] = "$Id: ns_verify.c,v 1.5 2006/03/09 23:57:56 marka Exp $"; -#endif - -/* Import. */ - -#include "port_before.h" -#include "fd_setsize.h" - -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "port_after.h" - -/* Private. */ - -#define BOUNDS_CHECK(ptr, count) \ - do { \ - if ((ptr) + (count) > eom) { \ - return (NS_TSIG_ERROR_FORMERR); \ - } \ - } while (0) - -/* Public. */ - -u_char * -ns_find_tsig(u_char *msg, u_char *eom) { - HEADER *hp = (HEADER *)msg; - int n, type; - u_char *cp = msg, *start; - - if (msg == NULL || eom == NULL || msg > eom) - return (NULL); - - if (cp + HFIXEDSZ >= eom) - return (NULL); - - if (hp->arcount == 0) - return (NULL); - - cp += HFIXEDSZ; - - n = ns_skiprr(cp, eom, ns_s_qd, ntohs(hp->qdcount)); - if (n < 0) - return (NULL); - cp += n; - - n = ns_skiprr(cp, eom, ns_s_an, ntohs(hp->ancount)); - if (n < 0) - return (NULL); - cp += n; - - n = ns_skiprr(cp, eom, ns_s_ns, ntohs(hp->nscount)); - if (n < 0) - return (NULL); - cp += n; - - n = ns_skiprr(cp, eom, ns_s_ar, ntohs(hp->arcount) - 1); - if (n < 0) - return (NULL); - cp += n; - - start = cp; - n = dn_skipname(cp, eom); - if (n < 0) - return (NULL); - cp += n; - if (cp + INT16SZ >= eom) - return (NULL); - - GETSHORT(type, cp); - if (type != ns_t_tsig) - return (NULL); - return (start); -} - -/* ns_verify - * - * Parameters: - *\li statp res stuff - *\li msg received message - *\li msglen length of message - *\li key tsig key used for verifying. - *\li querysig (response), the signature in the query - *\li querysiglen (response), the length of the signature in the query - *\li sig (query), a buffer to hold the signature - *\li siglen (query), input - length of signature buffer - * output - length of signature - * - * Errors: - *\li - bad input (-1) - *\li - invalid dns message (NS_TSIG_ERROR_FORMERR) - *\li - TSIG is not present (NS_TSIG_ERROR_NO_TSIG) - *\li - key doesn't match (-ns_r_badkey) - *\li - TSIG verification fails with BADKEY (-ns_r_badkey) - *\li - TSIG verification fails with BADSIG (-ns_r_badsig) - *\li - TSIG verification fails with BADTIME (-ns_r_badtime) - *\li - TSIG verification succeeds, error set to BAKEY (ns_r_badkey) - *\li - TSIG verification succeeds, error set to BADSIG (ns_r_badsig) - *\li - TSIG verification succeeds, error set to BADTIME (ns_r_badtime) - */ -int -ns_verify(u_char *msg, int *msglen, void *k, - const u_char *querysig, int querysiglen, u_char *sig, int *siglen, - time_t *timesigned, int nostrip) -{ - HEADER *hp = (HEADER *)msg; - DST_KEY *key = (DST_KEY *)k; - u_char *cp = msg, *eom; - char name[MAXDNAME], alg[MAXDNAME]; - u_char *recstart, *rdatastart; - u_char *sigstart, *otherstart; - int n; - int error; - u_int16_t type, length; - u_int16_t fudge, sigfieldlen, otherfieldlen; - - dst_init(); - if (msg == NULL || msglen == NULL || *msglen < 0) - return (-1); - - eom = msg + *msglen; - - recstart = ns_find_tsig(msg, eom); - if (recstart == NULL) - return (NS_TSIG_ERROR_NO_TSIG); - - cp = recstart; - - /* Read the key name. */ - n = dn_expand(msg, eom, cp, name, MAXDNAME); - if (n < 0) - return (NS_TSIG_ERROR_FORMERR); - cp += n; - - /* Read the type. */ - BOUNDS_CHECK(cp, 2*INT16SZ + INT32SZ + INT16SZ); - GETSHORT(type, cp); - if (type != ns_t_tsig) - return (NS_TSIG_ERROR_NO_TSIG); - - /* Skip the class and TTL, save the length. */ - cp += INT16SZ + INT32SZ; - GETSHORT(length, cp); - if (eom - cp != length) - return (NS_TSIG_ERROR_FORMERR); - - /* Read the algorithm name. */ - rdatastart = cp; - n = dn_expand(msg, eom, cp, alg, MAXDNAME); - if (n < 0) - return (NS_TSIG_ERROR_FORMERR); - if (ns_samename(alg, NS_TSIG_ALG_HMAC_MD5) != 1) - return (-ns_r_badkey); - cp += n; - - /* Read the time signed and fudge. */ - BOUNDS_CHECK(cp, INT16SZ + INT32SZ + INT16SZ); - cp += INT16SZ; - GETLONG((*timesigned), cp); - GETSHORT(fudge, cp); - - /* Read the signature. */ - BOUNDS_CHECK(cp, INT16SZ); - GETSHORT(sigfieldlen, cp); - BOUNDS_CHECK(cp, sigfieldlen); - sigstart = cp; - cp += sigfieldlen; - - /* Skip id and read error. */ - BOUNDS_CHECK(cp, 2*INT16SZ); - cp += INT16SZ; - GETSHORT(error, cp); - - /* Parse the other data. */ - BOUNDS_CHECK(cp, INT16SZ); - GETSHORT(otherfieldlen, cp); - BOUNDS_CHECK(cp, otherfieldlen); - otherstart = cp; - cp += otherfieldlen; - - if (cp != eom) - return (NS_TSIG_ERROR_FORMERR); - - /* Verify that the key used is OK. */ - if (key != NULL) { - if (key->dk_alg != KEY_HMAC_MD5) - return (-ns_r_badkey); - if (error != ns_r_badsig && error != ns_r_badkey) { - if (ns_samename(key->dk_key_name, name) != 1) - return (-ns_r_badkey); - } - } - - hp->arcount = htons(ntohs(hp->arcount) - 1); - - /* - * Do the verification. - */ - - if (key != NULL && error != ns_r_badsig && error != ns_r_badkey) { - void *ctx; - u_char buf[MAXDNAME]; - u_char buf2[MAXDNAME]; - - /* Digest the query signature, if this is a response. */ - dst_verify_data(SIG_MODE_INIT, key, &ctx, NULL, 0, NULL, 0); - if (querysiglen > 0 && querysig != NULL) { - u_int16_t len_n = htons(querysiglen); - dst_verify_data(SIG_MODE_UPDATE, key, &ctx, - (u_char *)&len_n, INT16SZ, NULL, 0); - dst_verify_data(SIG_MODE_UPDATE, key, &ctx, - querysig, querysiglen, NULL, 0); - } - - /* Digest the message. */ - dst_verify_data(SIG_MODE_UPDATE, key, &ctx, msg, recstart - msg, - NULL, 0); - - /* Digest the key name. */ - n = ns_name_pton(name, buf2, sizeof(buf2)); - if (n < 0) - return (-1); - n = ns_name_ntol(buf2, buf, sizeof(buf)); - if (n < 0) - return (-1); - dst_verify_data(SIG_MODE_UPDATE, key, &ctx, buf, n, NULL, 0); - - /* Digest the class and TTL. */ - dst_verify_data(SIG_MODE_UPDATE, key, &ctx, - recstart + dn_skipname(recstart, eom) + INT16SZ, - INT16SZ + INT32SZ, NULL, 0); - - /* Digest the algorithm. */ - n = ns_name_pton(alg, buf2, sizeof(buf2)); - if (n < 0) - return (-1); - n = ns_name_ntol(buf2, buf, sizeof(buf)); - if (n < 0) - return (-1); - dst_verify_data(SIG_MODE_UPDATE, key, &ctx, buf, n, NULL, 0); - - /* Digest the time signed and fudge. */ - dst_verify_data(SIG_MODE_UPDATE, key, &ctx, - rdatastart + dn_skipname(rdatastart, eom), - INT16SZ + INT32SZ + INT16SZ, NULL, 0); - - /* Digest the error and other data. */ - dst_verify_data(SIG_MODE_UPDATE, key, &ctx, - otherstart - INT16SZ - INT16SZ, - otherfieldlen + INT16SZ + INT16SZ, NULL, 0); - - n = dst_verify_data(SIG_MODE_FINAL, key, &ctx, NULL, 0, - sigstart, sigfieldlen); - - if (n < 0) - return (-ns_r_badsig); - - if (sig != NULL && siglen != NULL) { - if (*siglen < sigfieldlen) - return (NS_TSIG_ERROR_NO_SPACE); - memcpy(sig, sigstart, sigfieldlen); - *siglen = sigfieldlen; - } - } else { - if (sigfieldlen > 0) - return (NS_TSIG_ERROR_FORMERR); - if (sig != NULL && siglen != NULL) - *siglen = 0; - } - - /* Reset the counter, since we still need to check for badtime. */ - hp->arcount = htons(ntohs(hp->arcount) + 1); - - /* Verify the time. */ - if (abs((*timesigned) - time(NULL)) > fudge) - return (-ns_r_badtime); - - if (nostrip == 0) { - *msglen = recstart - msg; - hp->arcount = htons(ntohs(hp->arcount) - 1); - } - - if (error != NOERROR) - return (error); - - return (0); -} - -int -ns_verify_tcp_init(void *k, const u_char *querysig, int querysiglen, - ns_tcp_tsig_state *state) -{ - dst_init(); - if (state == NULL || k == NULL || querysig == NULL || querysiglen < 0) - return (-1); - state->counter = -1; - state->key = k; - if (state->key->dk_alg != KEY_HMAC_MD5) - return (-ns_r_badkey); - if (querysiglen > (int)sizeof(state->sig)) - return (-1); - memcpy(state->sig, querysig, querysiglen); - state->siglen = querysiglen; - return (0); -} - -int -ns_verify_tcp(u_char *msg, int *msglen, ns_tcp_tsig_state *state, - int required) -{ - HEADER *hp = (HEADER *)msg; - u_char *recstart, *sigstart; - unsigned int sigfieldlen, otherfieldlen; - u_char *cp, *eom, *cp2; - char name[MAXDNAME], alg[MAXDNAME]; - u_char buf[MAXDNAME]; - int n, type, length, fudge, error; - time_t timesigned; - - if (msg == NULL || msglen == NULL || state == NULL) - return (-1); - - eom = msg + *msglen; - - state->counter++; - if (state->counter == 0) - return (ns_verify(msg, msglen, state->key, - state->sig, state->siglen, - state->sig, &state->siglen, ×igned, 0)); - - if (state->siglen > 0) { - u_int16_t siglen_n = htons(state->siglen); - - dst_verify_data(SIG_MODE_INIT, state->key, &state->ctx, - NULL, 0, NULL, 0); - dst_verify_data(SIG_MODE_UPDATE, state->key, &state->ctx, - (u_char *)&siglen_n, INT16SZ, NULL, 0); - dst_verify_data(SIG_MODE_UPDATE, state->key, &state->ctx, - state->sig, state->siglen, NULL, 0); - state->siglen = 0; - } - - cp = recstart = ns_find_tsig(msg, eom); - - if (recstart == NULL) { - if (required) - return (NS_TSIG_ERROR_NO_TSIG); - dst_verify_data(SIG_MODE_UPDATE, state->key, &state->ctx, - msg, *msglen, NULL, 0); - return (0); - } - - hp->arcount = htons(ntohs(hp->arcount) - 1); - dst_verify_data(SIG_MODE_UPDATE, state->key, &state->ctx, - msg, recstart - msg, NULL, 0); - - /* Read the key name. */ - n = dn_expand(msg, eom, cp, name, MAXDNAME); - if (n < 0) - return (NS_TSIG_ERROR_FORMERR); - cp += n; - - /* Read the type. */ - BOUNDS_CHECK(cp, 2*INT16SZ + INT32SZ + INT16SZ); - GETSHORT(type, cp); - if (type != ns_t_tsig) - return (NS_TSIG_ERROR_NO_TSIG); - - /* Skip the class and TTL, save the length. */ - cp += INT16SZ + INT32SZ; - GETSHORT(length, cp); - if (eom - cp != length) - return (NS_TSIG_ERROR_FORMERR); - - /* Read the algorithm name. */ - n = dn_expand(msg, eom, cp, alg, MAXDNAME); - if (n < 0) - return (NS_TSIG_ERROR_FORMERR); - if (ns_samename(alg, NS_TSIG_ALG_HMAC_MD5) != 1) - return (-ns_r_badkey); - cp += n; - - /* Verify that the key used is OK. */ - if ((ns_samename(state->key->dk_key_name, name) != 1 || - state->key->dk_alg != KEY_HMAC_MD5)) - return (-ns_r_badkey); - - /* Read the time signed and fudge. */ - BOUNDS_CHECK(cp, INT16SZ + INT32SZ + INT16SZ); - cp += INT16SZ; - GETLONG(timesigned, cp); - GETSHORT(fudge, cp); - - /* Read the signature. */ - BOUNDS_CHECK(cp, INT16SZ); - GETSHORT(sigfieldlen, cp); - BOUNDS_CHECK(cp, sigfieldlen); - sigstart = cp; - cp += sigfieldlen; - - /* Skip id and read error. */ - BOUNDS_CHECK(cp, 2*INT16SZ); - cp += INT16SZ; - GETSHORT(error, cp); - - /* Parse the other data. */ - BOUNDS_CHECK(cp, INT16SZ); - GETSHORT(otherfieldlen, cp); - BOUNDS_CHECK(cp, otherfieldlen); - cp += otherfieldlen; - - if (cp != eom) - return (NS_TSIG_ERROR_FORMERR); - - /* - * Do the verification. - */ - - /* Digest the time signed and fudge. */ - cp2 = buf; - PUTSHORT(0, cp2); /*%< Top 16 bits of time. */ - PUTLONG(timesigned, cp2); - PUTSHORT(NS_TSIG_FUDGE, cp2); - - dst_verify_data(SIG_MODE_UPDATE, state->key, &state->ctx, - buf, cp2 - buf, NULL, 0); - - n = dst_verify_data(SIG_MODE_FINAL, state->key, &state->ctx, NULL, 0, - sigstart, sigfieldlen); - if (n < 0) - return (-ns_r_badsig); - - if (sigfieldlen > sizeof(state->sig)) - return (NS_TSIG_ERROR_NO_SPACE); - - memcpy(state->sig, sigstart, sigfieldlen); - state->siglen = sigfieldlen; - - /* Verify the time. */ - if (abs(timesigned - time(NULL)) > fudge) - return (-ns_r_badtime); - - *msglen = recstart - msg; - - if (error != NOERROR) - return (error); - - return (0); -} - -/*! \file */ diff --git a/src/kits/network/libbind/resolv/h_errno.c b/src/kits/network/libbind/resolv/h_errno.c new file mode 100644 index 0000000000..ec18d35f72 --- /dev/null +++ b/src/kits/network/libbind/resolv/h_errno.c @@ -0,0 +1,58 @@ +/* $NetBSD: h_errno.c,v 1.3 2008/06/21 20:41:48 christos Exp $ */ + +/*- + * Copyright (c) 2004 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Christos Zoulas. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. + */ + +#include +#if defined(LIBC_SCCS) && !defined(lint) +__RCSID("$NetBSD: h_errno.c,v 1.3 2008/06/21 20:41:48 christos Exp $"); +#endif + +#include +#include +#include +#include +#include + +#undef h_errno + +extern int h_errno; +extern struct __res_state _nres; + +int * +__h_errno(void) +{ + return &_nres.res_h_errno; +} + +void +__h_errno_set(res_state res, int err) +{ + h_errno = res->res_h_errno = err; +} diff --git a/src/kits/network/libbind/resolv/herror.c b/src/kits/network/libbind/resolv/herror.c index 703ab8fe4d..bd6255d5f2 100644 --- a/src/kits/network/libbind/resolv/herror.c +++ b/src/kits/network/libbind/resolv/herror.c @@ -1,3 +1,5 @@ +/* $NetBSD: herror.c,v 1.9 2012/03/13 21:13:43 christos Exp $ */ + /* * Copyright (c) 1987, 1993 * The Regents of the University of California. All rights reserved. @@ -66,7 +68,6 @@ static const char rcsid[] = "$Id: herror.c,v 1.4 2005/04/27 04:56:41 sra Exp $"; #include #include #include -#include #include "port_after.h" @@ -84,6 +85,10 @@ int h_nerr = { sizeof h_errlist / sizeof h_errlist[0] }; int h_errno; #endif +#ifdef __weak_alias +__weak_alias(herror,_herror) +#endif + /*% * herror -- * print the error indicated by the h_errno value. @@ -110,7 +115,7 @@ herror(const char *s) { DE_CONST("\n", t); v->iov_base = t; v->iov_len = 1; - writev(STDERR_FILENO, iov, (v - iov) + 1); + (void)writev(STDERR_FILENO, iov, (int)((v - iov) + 1)); } /*% diff --git a/src/kits/network/libbind/resolv/mtctxres.c b/src/kits/network/libbind/resolv/mtctxres.c index 635bbd4400..6e3281a75d 100644 --- a/src/kits/network/libbind/resolv/mtctxres.c +++ b/src/kits/network/libbind/resolv/mtctxres.c @@ -1,3 +1,5 @@ +/* $NetBSD: mtctxres.c,v 1.4 2007/03/30 20:40:52 ghen Exp $ */ + #include #ifdef DO_PTHREADS #include @@ -7,7 +9,6 @@ #include #include #include -#include #include #ifdef DO_PTHREADS diff --git a/src/kits/network/libbind/resolv/res_comp.c b/src/kits/network/libbind/resolv/res_comp.c index 2c8d0fecd9..4557ac15fa 100644 --- a/src/kits/network/libbind/resolv/res_comp.c +++ b/src/kits/network/libbind/resolv/res_comp.c @@ -1,3 +1,5 @@ +/* $NetBSD: res_comp.c,v 1.12 2012/03/13 21:13:43 christos Exp $ */ + /* * Copyright (c) 1985, 1993 * The Regents of the University of California. All rights reserved. @@ -78,6 +80,7 @@ static const char rcsid[] = "$Id: res_comp.c,v 1.5 2005/07/28 06:51:50 marka Exp #include #include #include +#include #include #include #include @@ -85,6 +88,18 @@ static const char rcsid[] = "$Id: res_comp.c,v 1.5 2005/07/28 06:51:50 marka Exp #include #include "port_after.h" +#ifdef __weak_alias +__weak_alias(dn_expand,_dn_expand) +__weak_alias(dn_comp,__dn_comp) +#if 0 +__weak_alias(dn_skipname,__dn_skipname) +__weak_alias(res_hnok,__res_hnok) +__weak_alias(res_ownok,__res_ownok) +__weak_alias(res_mailok,__res_mailok) +__weak_alias(res_dnok,__res_dnok) +#endif +#endif + /*% * Expand compressed domain name 'src' to full domain name. * @@ -115,8 +130,8 @@ dn_comp(const char *src, u_char *dst, int dstsiz, u_char **dnptrs, u_char **lastdnptr) { return (ns_name_compress(src, dst, (size_t)dstsiz, - (const u_char **)dnptrs, - (const u_char **)lastdnptr)); + (void *)dnptrs, + (void *)lastdnptr)); } /*% @@ -128,7 +143,8 @@ dn_skipname(const u_char *ptr, const u_char *eom) { if (ns_name_skip(&ptr, eom) == -1) return (-1); - return (ptr - saveptr); + assert(INT_MIN <= (ptr - saveptr) && (ptr - saveptr) <= INT_MAX); + return (int)(ptr - saveptr); } /*% @@ -160,7 +176,7 @@ res_hnok(const char *dn) { int nch = *dn++; if (periodchar(ch)) { - (void)NULL; + ; } else if (periodchar(pch)) { if (!borderchar(ch)) return (0); @@ -256,10 +272,11 @@ res_dnok(const char *dn) { void __putlong(u_int32_t src, u_char *dst) { ns_put32(src, dst); } void __putshort(u_int16_t src, u_char *dst) { ns_put16(src, dst); } +#endif /*BIND_4_COMPAT*/ + #ifndef __ultrix__ u_int32_t _getlong(const u_char *src) { return (ns_get32(src)); } u_int16_t _getshort(const u_char *src) { return (ns_get16(src)); } #endif /*__ultrix__*/ -#endif /*BIND_4_COMPAT*/ /*! \file */ diff --git a/src/kits/network/libbind/resolv/res_data.c b/src/kits/network/libbind/resolv/res_data.c index 0ec9c6fcef..c3080ef45f 100644 --- a/src/kits/network/libbind/resolv/res_data.c +++ b/src/kits/network/libbind/resolv/res_data.c @@ -1,3 +1,5 @@ +/* $NetBSD: res_data.c,v 1.14 2009/10/24 05:35:37 christos Exp $ */ + /* * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1995-1999 by Internet Software Consortium. @@ -15,8 +17,13 @@ * OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ +#include #if defined(LIBC_SCCS) && !defined(lint) -static const char rcsid[] = "$Id: res_data.c,v 1.7 2008/12/11 09:59:00 marka Exp $"; +#ifdef notdef +static const char rcsid[] = "Id: res_data.c,v 1.7 2008/12/11 09:59:00 marka Exp"; +#else +__RCSID("$NetBSD: res_data.c,v 1.14 2009/10/24 05:35:37 christos Exp $"); +#endif #endif /* LIBC_SCCS and not lint */ #include "port_before.h" @@ -41,6 +48,28 @@ static const char rcsid[] = "$Id: res_data.c,v 1.7 2008/12/11 09:59:00 marka Exp #include "port_after.h" +#include "res_private.h" + +#ifdef __weak_alias +__weak_alias(res_init,_res_init) +__weak_alias(res_mkquery,_res_mkquery) +__weak_alias(res_query,_res_query) +__weak_alias(res_search,_res_search) +__weak_alias(res_send,__res_send) +__weak_alias(res_close,__res_close) +/* XXX: these leaked in the old bind8 libc */ +__weak_alias(res_querydomain,__res_querydomain) +__weak_alias(res_send_setqhook,__res_send_setqhook) +__weak_alias(res_send_setrhook,__res_send_setrhook) +#if 0 +__weak_alias(p_query,__p_query) +__weak_alias(fp_query,__fp_query) +__weak_alias(fp_nquery,__fp_nquery) +__weak_alias(res_isourserver,__res_isourserver) +__weak_alias(hostalias,__hostalias) +#endif +#endif + const char *_res_opcodes[] = { "QUERY", "IQUERY", @@ -69,25 +98,34 @@ const char *_res_sectioncodes[] = { }; #endif -#undef _res -#ifndef __BIND_NOSTATIC -struct __res_state _res -# if defined(__BIND_RES_TEXT) - = { RES_TIMEOUT, } /*%< Motorola, et al. */ -# endif - ; - -#if defined(DO_PTHREADS) || defined(__linux) -#define _res (*__res_state()) -#endif +#ifndef __BIND_NOSTATIC +extern struct __res_state _nres; /* Proto. */ -int res_ourserver_p(const res_state, const struct sockaddr_in *); +int res_ourserver_p(const res_state, const struct sockaddr *); int res_init(void) { - extern int __res_vinit(res_state, int); + int rv; +#ifdef COMPAT__RES + /* + * Compatibility with program that were accessing _res directly + * to set options. We keep another struct res that is the same + * size as the original res structure, and then copy fields to + * it so that we achieve the same initialization + */ + extern void *__res_get_old_state(void); + extern void __res_put_old_state(void *); + res_state ores = __res_get_old_state(); + + if (ores->options != 0) + _nres.options = ores->options; + if (ores->retrans != 0) + _nres.retrans = ores->retrans; + if (ores->retry != 0) + _nres.retry = ores->retry; +#endif /* * These three fields used to be statically initialized. This made @@ -102,27 +140,31 @@ res_init(void) { * so one can safely assume that the applications were already getting * unexpected results. * - * _res.options is tricky since some apps were known to diddle the bits + * _nres.options is tricky since some apps were known to diddle the bits * before res_init() was first called. We can't replicate that semantic * with dynamic initialization (they may have turned bits off that are * set in RES_DEFAULT). Our solution is to declare such applications * "broken". They could fool us by setting RES_INIT but none do (yet). */ - if (!_res.retrans) - _res.retrans = RES_TIMEOUT; - if (!_res.retry) - _res.retry = 4; - if (!(_res.options & RES_INIT)) - _res.options = RES_DEFAULT; + if (!_nres.retrans) + _nres.retrans = RES_TIMEOUT; + if (!_nres.retry) + _nres.retry = 4; + if (!(_nres.options & RES_INIT)) + _nres.options = RES_DEFAULT; /* * This one used to initialize implicitly to zero, so unless the app * has set it to something in particular, we can randomize it now. */ - if (!_res.id) - _res.id = res_nrandomid(&_res); + if (!_nres.id) + _nres.id = res_nrandomid(&_nres); - return (__res_vinit(&_res, 1)); + rv = __res_vinit(&_nres, 1); +#ifdef COMPAT__RES + __res_put_old_state(&_nres); +#endif + return rv; } void @@ -137,10 +179,10 @@ fp_query(const u_char *msg, FILE *file) { void fp_nquery(const u_char *msg, int len, FILE *file) { - if ((_res.options & RES_INIT) == 0U && res_init() == -1) + if ((_nres.options & RES_INIT) == 0U && res_init() == -1) return; - res_pquery(&_res, msg, len, file); + res_pquery(&_nres, msg, len, file); } int @@ -153,24 +195,26 @@ res_mkquery(int op, /*!< opcode of query */ u_char *buf, /*!< buffer to put query */ int buflen) /*!< size of buffer */ { - if ((_res.options & RES_INIT) == 0U && res_init() == -1) { - RES_SET_H_ERRNO(&_res, NETDB_INTERNAL); + if ((_nres.options & RES_INIT) == 0U && res_init() == -1) { + RES_SET_H_ERRNO(&_nres, NETDB_INTERNAL); return (-1); } - return (res_nmkquery(&_res, op, dname, class, type, + return (res_nmkquery(&_nres, op, dname, class, type, data, datalen, newrr_in, buf, buflen)); } +#ifdef _LIBRESOLV int res_mkupdate(ns_updrec *rrecp_in, u_char *buf, int buflen) { - if ((_res.options & RES_INIT) == 0U && res_init() == -1) { - RES_SET_H_ERRNO(&_res, NETDB_INTERNAL); + if ((_nres.options & RES_INIT) == 0U && res_init() == -1) { + RES_SET_H_ERRNO(&_nres, NETDB_INTERNAL); return (-1); } - return (res_nmkupdate(&_res, rrecp_in, buf, buflen)); + return (res_nmkupdate(&_nres, rrecp_in, buf, buflen)); } +#endif int res_query(const char *name, /*!< domain name */ @@ -178,64 +222,68 @@ res_query(const char *name, /*!< domain name */ u_char *answer, /*!< buffer to put answer */ int anslen) /*!< size of answer buffer */ { - if ((_res.options & RES_INIT) == 0U && res_init() == -1) { - RES_SET_H_ERRNO(&_res, NETDB_INTERNAL); + if ((_nres.options & RES_INIT) == 0U && res_init() == -1) { + RES_SET_H_ERRNO(&_nres, NETDB_INTERNAL); return (-1); } - return (res_nquery(&_res, name, class, type, answer, anslen)); + return (res_nquery(&_nres, name, class, type, answer, anslen)); } void res_send_setqhook(res_send_qhook hook) { - _res.qhook = hook; + _nres.qhook = hook; } void res_send_setrhook(res_send_rhook hook) { - _res.rhook = hook; + _nres.rhook = hook; } int res_isourserver(const struct sockaddr_in *inp) { - return (res_ourserver_p(&_res, inp)); + return (res_ourserver_p(&_nres, (const struct sockaddr *)(const void *)inp)); } int res_send(const u_char *buf, int buflen, u_char *ans, int anssiz) { - if ((_res.options & RES_INIT) == 0U && res_init() == -1) { + if ((_nres.options & RES_INIT) == 0U && res_init() == -1) { /* errno should have been set by res_init() in this case. */ return (-1); } - return (res_nsend(&_res, buf, buflen, ans, anssiz)); + return (res_nsend(&_nres, buf, buflen, ans, anssiz)); } +#ifdef _LIBRESOLV int res_sendsigned(const u_char *buf, int buflen, ns_tsig_key *key, u_char *ans, int anssiz) { - if ((_res.options & RES_INIT) == 0U && res_init() == -1) { + if ((_nres.options & RES_INIT) == 0U && res_init() == -1) { /* errno should have been set by res_init() in this case. */ return (-1); } - return (res_nsendsigned(&_res, buf, buflen, key, ans, anssiz)); + return (res_nsendsigned(&_nres, buf, buflen, key, ans, anssiz)); } +#endif void res_close(void) { - res_nclose(&_res); + res_nclose(&_nres); } +#ifdef _LIBRESOLV int res_update(ns_updrec *rrecp_in) { - if ((_res.options & RES_INIT) == 0U && res_init() == -1) { - RES_SET_H_ERRNO(&_res, NETDB_INTERNAL); + if ((_nres.options & RES_INIT) == 0U && res_init() == -1) { + RES_SET_H_ERRNO(&_nres, NETDB_INTERNAL); return (-1); } - return (res_nupdate(&_res, rrecp_in, NULL)); + return (res_nupdate(&_nres, rrecp_in, NULL)); } +#endif int res_search(const char *name, /*!< domain name */ @@ -243,12 +291,12 @@ res_search(const char *name, /*!< domain name */ u_char *answer, /*!< buffer to put answer */ int anslen) /*!< size of answer */ { - if ((_res.options & RES_INIT) == 0U && res_init() == -1) { - RES_SET_H_ERRNO(&_res, NETDB_INTERNAL); + if ((_nres.options & RES_INIT) == 0U && res_init() == -1) { + RES_SET_H_ERRNO(&_nres, NETDB_INTERNAL); return (-1); } - return (res_nsearch(&_res, name, class, type, answer, anslen)); + return (res_nsearch(&_nres, name, class, type, answer, anslen)); } int @@ -258,31 +306,31 @@ res_querydomain(const char *name, u_char *answer, /*!< buffer to put answer */ int anslen) /*!< size of answer */ { - if ((_res.options & RES_INIT) == 0U && res_init() == -1) { - RES_SET_H_ERRNO(&_res, NETDB_INTERNAL); + if ((_nres.options & RES_INIT) == 0U && res_init() == -1) { + RES_SET_H_ERRNO(&_nres, NETDB_INTERNAL); return (-1); } - return (res_nquerydomain(&_res, name, domain, + return (res_nquerydomain(&_nres, name, domain, class, type, answer, anslen)); } u_int res_randomid(void) { - if ((_res.options & RES_INIT) == 0U && res_init() == -1) { + if ((_nres.options & RES_INIT) == 0U && res_init() == -1) { RES_SET_H_ERRNO(&_res, NETDB_INTERNAL); - return (-1); + return (u_int)-1; } - return (res_nrandomid(&_res)); + return (res_nrandomid(&_nres)); } const char * hostalias(const char *name) { static char abuf[MAXDNAME]; - return (res_hostalias(&_res, name, abuf, sizeof abuf)); + return (res_hostalias(&_nres, name, abuf, sizeof abuf)); } #ifdef ultrix @@ -290,12 +338,12 @@ int local_hostname_length(const char *hostname) { int len_host, len_domain; - if (!*_res.defdname) + if (!*_nres.defdname) res_init(); len_host = strlen(hostname); - len_domain = strlen(_res.defdname); + len_domain = strlen(_nres.defdname); if (len_host > len_domain && - !strcasecmp(hostname + len_host - len_domain, _res.defdname) && + !strcasecmp(hostname + len_host - len_domain, _nres.defdname) && hostname[len_host - len_domain - 1] == '.') return (len_host - len_domain - 1); return (0); diff --git a/src/kits/network/libbind/resolv/res_debug.c b/src/kits/network/libbind/resolv/res_debug.c index 3e1d2c687c..7d096bcf70 100644 --- a/src/kits/network/libbind/resolv/res_debug.c +++ b/src/kits/network/libbind/resolv/res_debug.c @@ -1,3 +1,5 @@ +/* $NetBSD: res_debug.c,v 1.13 2012/06/25 22:32:45 abs Exp $ */ + /* * Portions Copyright (C) 2004, 2005, 2008, 2009 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 1996-2003 Internet Software Consortium. @@ -108,6 +110,7 @@ static const char rcsid[] = "$Id: res_debug.c,v 1.19 2009/02/26 11:20:20 tbox Ex #include #include +#include #include #include #include @@ -130,6 +133,15 @@ static const char rcsid[] = "$Id: res_debug.c,v 1.19 2009/02/26 11:20:20 tbox Ex extern const char *_res_opcodes[]; extern const char *_res_sectioncodes[]; +#if 0 +#ifdef __weak_alias +__weak_alias(res_pquery,__res_pquery) +__weak_alias(res_nametoclass,__res_nametoclass) +__weak_alias(res_nametotype,__res_nametotype) +#endif +#endif + +#ifndef _LIBC /*% * Print the current options. */ @@ -143,6 +155,7 @@ fp_resstat(const res_state statp, FILE *file) { fprintf(file, " %s", p_option(mask)); putc('\n', file); } +#endif static void do_section(const res_state statp, @@ -158,11 +171,11 @@ do_section(const res_state statp, /* * Print answer records. */ - sflag = (statp->pfcode & pflag); + sflag = (int)(statp->pfcode & pflag); if (statp->pfcode && !sflag) return; - buf = malloc(buflen); + buf = malloc((size_t)buflen); if (buf == NULL) { fprintf(file, ";; memory allocation failure\n"); return; @@ -189,11 +202,14 @@ do_section(const res_state statp, p_type(ns_rr_type(rr)), p_class(ns_rr_class(rr))); else if (section == ns_s_ar && ns_rr_type(rr) == ns_t_opt) { - u_int16_t optcode, optlen, rdatalen = ns_rr_rdlen(rr); - u_int32_t ttl = ns_rr_ttl(rr); + size_t rdatalen, ttl; + uint16_t optcode, optlen; + + rdatalen = ns_rr_rdlen(rr); + ttl = ns_rr_ttl(rr); fprintf(file, - "; EDNS: version: %u, udp=%u, flags=%04x\n", + "; EDNS: version: %zu, udp=%u, flags=%04zx\n", (ttl>>16)&0xff, ns_rr_class(rr), ttl&0xffff); while (rdatalen >= 4) { @@ -241,13 +257,13 @@ do_section(const res_state statp, } } else { n = ns_sprintrr(handle, &rr, NULL, NULL, - buf, buflen); + buf, (u_int)buflen); if (n < 0) { if (errno == ENOSPC) { free(buf); buf = NULL; if (buflen < 131072) - buf = malloc(buflen += 1024); + buf = malloc((size_t)(buflen += 1024)); if (buf == NULL) { fprintf(file, ";; memory allocation failure\n"); @@ -297,7 +313,7 @@ res_pquery(const res_state statp, const u_char *msg, int len, FILE *file) { if ((!statp->pfcode) || (statp->pfcode & RES_PRF_HEADX) || rcode) fprintf(file, ";; ->>HEADER<<- opcode: %s, status: %s, id: %d\n", - _res_opcodes[opcode], p_rcode(rcode), id); + _res_opcodes[opcode], p_rcode((int)rcode), id); if ((!statp->pfcode) || (statp->pfcode & RES_PRF_HEADX)) putc(';', file); if ((!statp->pfcode) || (statp->pfcode & RES_PRF_HEAD2)) { @@ -321,13 +337,13 @@ res_pquery(const res_state statp, const u_char *msg, int len, FILE *file) { } if ((!statp->pfcode) || (statp->pfcode & RES_PRF_HEAD1)) { fprintf(file, "; %s: %d", - p_section(ns_s_qd, opcode), qdcount); + p_section(ns_s_qd, (int)opcode), qdcount); fprintf(file, ", %s: %d", - p_section(ns_s_an, opcode), ancount); + p_section(ns_s_an, (int)opcode), ancount); fprintf(file, ", %s: %d", - p_section(ns_s_ns, opcode), nscount); + p_section(ns_s_ns, (int)opcode), nscount); fprintf(file, ", %s: %d", - p_section(ns_s_ar, opcode), arcount); + p_section(ns_s_ar, (int)opcode), arcount); } if ((!statp->pfcode) || (statp->pfcode & (RES_PRF_HEADX | RES_PRF_HEAD2 | RES_PRF_HEAD1))) { @@ -350,7 +366,7 @@ p_cdnname(const u_char *cp, const u_char *msg, int len, FILE *file) { char name[MAXDNAME]; int n; - if ((n = dn_expand(msg, msg + len, cp, name, sizeof name)) < 0) + if ((n = dn_expand(msg, msg + len, cp, name, (int)sizeof name)) < 0) return (NULL); if (name[0] == '\0') putc('.', file); @@ -369,19 +385,17 @@ p_cdname(const u_char *cp, const u_char *msg, FILE *file) { length supplied). */ const u_char * -p_fqnname(cp, msg, msglen, name, namelen) - const u_char *cp, *msg; - int msglen; - char *name; - int namelen; +p_fqnname(const u_char *cp, const u_char *msg, int msglen, char *name, + int namelen) { - int n, newlen; + int n; + size_t newlen; if ((n = dn_expand(msg, cp + msglen, cp, name, namelen)) < 0) return (NULL); newlen = strlen(name); if (newlen == 0 || name[newlen - 1] != '.') { - if (newlen + 1 >= namelen) /*%< Lack space for final dot */ + if ((int)newlen + 1 >= namelen) /*%< Lack space for final dot */ return (NULL); else strcpy(name + newlen, "."); @@ -396,7 +410,7 @@ p_fqname(const u_char *cp, const u_char *msg, FILE *file) { char name[MAXDNAME]; const u_char *n; - n = p_fqnname(cp, msg, MAXCDNAME, name, sizeof name); + n = p_fqnname(cp, msg, MAXCDNAME, name, (int)sizeof name); if (n == NULL) return (NULL); fputs(name, file); @@ -557,7 +571,7 @@ const struct res_sym __p_rcode_syms[] = { int sym_ston(const struct res_sym *syms, const char *name, int *success) { - for ((void)NULL; syms->name != 0; syms++) { + for (; syms->name != 0; syms++) { if (strcasecmp (name, syms->name) == 0) { if (success) *success = 1; @@ -573,7 +587,7 @@ const char * sym_ntos(const struct res_sym *syms, int number, int *success) { char *unname = sym_ntos_unname; - for ((void)NULL; syms->name != 0; syms++) { + for (; syms->name != 0; syms++) { if (number == syms->number) { if (success) *success = 1; @@ -591,7 +605,7 @@ const char * sym_ntop(const struct res_sym *syms, int number, int *success) { char *unname = sym_ntop_unname; - for ((void)NULL; syms->name != 0; syms++) { + for (; syms->name != 0; syms++) { if (number == syms->number) { if (success) *success = 1; @@ -710,7 +724,7 @@ const char * p_time(u_int32_t value) { char *nbuf = p_time_nbuf; - if (ns_format_ttl(value, nbuf, sizeof nbuf) < 0) + if (ns_format_ttl((u_long)value, nbuf, sizeof nbuf) < 0) sprintf(nbuf, "%u", value); return (nbuf); } @@ -732,7 +746,7 @@ p_sockun(union res_sockaddr_union u, char *buf, size_t size) { switch (u.sin.sin_family) { case AF_INET: - inet_ntop(AF_INET, &u.sin.sin_addr, ret, sizeof ret); + inet_ntop(AF_INET, &u.sin.sin_addr, ret, (socklen_t)sizeof ret); break; #ifdef HAS_INET6_STRUCTS case AF_INET6: @@ -761,8 +775,7 @@ static unsigned int poweroften[10] = {1, 10, 100, 1000, 10000, 100000, /*% takes an XeY precision/size value, returns a string representation. */ static const char * -precsize_ntoa(prec) - u_int8_t prec; +precsize_ntoa(u_int32_t prec) { char *retbuf = precsize_ntoa_retbuf; unsigned long val; @@ -915,9 +928,7 @@ latlon2ul(const char **latlonstrptr, int *which) { * converts a zone file representation in a string to an RDATA on-the-wire * representation. */ int -loc_aton(ascii, binary) - const char *ascii; - u_char *binary; +loc_aton(const char *ascii, u_char *binary) { const char *cp, *maxcp; u_char *bcp; @@ -1026,9 +1037,7 @@ loc_aton(ascii, binary) /*% takes an on-the-wire LOC RR and formats it in a human readable format. */ const char * -loc_ntoa(binary, ascii) - const u_char *binary; - char *ascii; +loc_ntoa(const u_char *binary, char *ascii) { static const char *error = "?"; static char tmpbuf[sizeof @@ -1110,9 +1119,9 @@ loc_ntoa(binary, ascii) altfrac = altval % 100; altmeters = (altval / 100); - sizestr = strdup(precsize_ntoa(sizeval)); - hpstr = strdup(precsize_ntoa(hpval)); - vpstr = strdup(precsize_ntoa(vpval)); + sizestr = strdup(precsize_ntoa((u_int32_t)sizeval)); + hpstr = strdup(precsize_ntoa((u_int32_t)hpval)); + vpstr = strdup(precsize_ntoa((u_int32_t)vpval)); sprintf(ascii, "%d %.2d %.2d.%.3d %c %d %.2d %.2d.%.3d %c %s%d.%.2dm %sm %sm %sm", @@ -1137,7 +1146,7 @@ loc_ntoa(binary, ascii) /*% Return the number of DNS hierarchy levels in the name. */ int dn_count_labels(const char *name) { - int i, len, count; + size_t len, i, count; len = strlen(name); for (i = 0, count = 0; i < len; i++) { @@ -1156,7 +1165,8 @@ dn_count_labels(const char *name) { /* count to include last label */ if (len > 0 && name[len-1] != '.') count++; - return (count); + assert(count <= (size_t)INT_MAX); + return (int)count; } /*% @@ -1165,21 +1175,22 @@ dn_count_labels(const char *name) { */ char * p_secstodate (u_long secs) { + /* XXX nonreentrant */ char *output = p_secstodate_output; - time_t clock = secs; - struct tm *time; + time_t myclock = secs; + struct tm *mytime; #ifdef HAVE_TIME_R struct tm res; - - time = gmtime_r(&clock, &res); + + mytime = gmtime_r(&myclock, &res); #else - time = gmtime(&clock); + mytime = gmtime(&myclock); #endif - time->tm_year += 1900; - time->tm_mon += 1; + mytime->tm_year += 1900; + mytime->tm_mon += 1; sprintf(output, "%04d%02d%02d%02d%02d%02d", - time->tm_year, time->tm_mon, time->tm_mday, - time->tm_hour, time->tm_min, time->tm_sec); + mytime->tm_year, mytime->tm_mon, mytime->tm_mday, + mytime->tm_hour, mytime->tm_min, mytime->tm_sec); return (output); } @@ -1203,7 +1214,7 @@ res_nametoclass(const char *buf, int *successp) { done: if (successp) *successp = success; - return (result); + return (u_int16_t)(result); } u_int16_t @@ -1226,7 +1237,7 @@ res_nametotype(const char *buf, int *successp) { done: if (successp) *successp = success; - return (result); + return (u_int16_t)(result); } /*! \file */ diff --git a/src/kits/network/libbind/resolv/res_debug.h b/src/kits/network/libbind/resolv/res_debug.h index fa69452d29..9ad7c865d7 100644 --- a/src/kits/network/libbind/resolv/res_debug.h +++ b/src/kits/network/libbind/resolv/res_debug.h @@ -1,3 +1,5 @@ +/* $NetBSD: res_debug.h,v 1.2 2012/03/13 21:13:43 christos Exp $ */ + /* * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") * Copyright (c) 1999 by Internet Software Consortium. @@ -27,7 +29,7 @@ # define Dprint(cond, args) if (cond) {fprintf args;} else {} # define DprintQ(cond, args, query, size) if (cond) {\ fprintf args;\ - res_pquery(statp, query, size, stdout);\ + res_pquery(statp, (query), (int)(size), stdout);\ } else {} #endif diff --git a/src/kits/network/libbind/resolv/res_findzonecut.c b/src/kits/network/libbind/resolv/res_findzonecut.c deleted file mode 100644 index 933169e3ab..0000000000 --- a/src/kits/network/libbind/resolv/res_findzonecut.c +++ /dev/null @@ -1,722 +0,0 @@ -#if !defined(lint) && !defined(SABER) -static const char rcsid[] = "$Id: res_findzonecut.c,v 1.10 2005/10/11 00:10:16 marka Exp $"; -#endif /* not lint */ - -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 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. - */ - -/* Import. */ - -#include "port_before.h" - -#include -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include - -#include - -#include "port_after.h" - -#include - -/* Data structures. */ - -typedef struct rr_a { - LINK(struct rr_a) link; - union res_sockaddr_union addr; -} rr_a; -typedef LIST(rr_a) rrset_a; - -typedef struct rr_ns { - LINK(struct rr_ns) link; - const char * name; - unsigned int flags; - rrset_a addrs; -} rr_ns; -typedef LIST(rr_ns) rrset_ns; - -#define RR_NS_HAVE_V4 0x01 -#define RR_NS_HAVE_V6 0x02 - -/* Forward. */ - -static int satisfy(res_state, const char *, rrset_ns *, - union res_sockaddr_union *, int); -static int add_addrs(res_state, rr_ns *, - union res_sockaddr_union *, int); -static int get_soa(res_state, const char *, ns_class, int, - char *, size_t, char *, size_t, - rrset_ns *); -static int get_ns(res_state, const char *, ns_class, int, rrset_ns *); -static int get_glue(res_state, ns_class, int, rrset_ns *); -static int save_ns(res_state, ns_msg *, ns_sect, - const char *, ns_class, int, rrset_ns *); -static int save_a(res_state, ns_msg *, ns_sect, - const char *, ns_class, int, rr_ns *); -static void free_nsrrset(rrset_ns *); -static void free_nsrr(rrset_ns *, rr_ns *); -static rr_ns * find_ns(rrset_ns *, const char *); -static int do_query(res_state, const char *, ns_class, ns_type, - u_char *, ns_msg *); -static void res_dprintf(const char *, ...) ISC_FORMAT_PRINTF(1, 2); - -/* Macros. */ - -#define DPRINTF(x) do {\ - int save_errno = errno; \ - if ((statp->options & RES_DEBUG) != 0U) res_dprintf x; \ - errno = save_errno; \ - } while (0) - -/* Public. */ - -/*% - * find enclosing zone for a , and some server addresses - * - * parameters: - *\li res - resolver context to work within (is modified) - *\li dname - domain name whose enclosing zone is desired - *\li class - class of dname (and its enclosing zone) - *\li zname - found zone name - *\li zsize - allocated size of zname - *\li addrs - found server addresses - *\li naddrs - max number of addrs - * - * return values: - *\li < 0 - an error occurred (check errno) - *\li = 0 - zname is now valid, but addrs[] wasn't changed - *\li > 0 - zname is now valid, and return value is number of addrs[] found - * - * notes: - *\li this function calls res_nsend() which means it depends on correctly - * functioning recursive nameservers (usually defined in /etc/resolv.conf - * or its local equivilent). - * - *\li we start by asking for an SOA. if we get one as an - * answer, that just means is a zone top, which is fine. - * more than likely we'll be told to go pound sand, in the form of a - * negative answer. - * - *\li note that we are not prepared to deal with referrals since that would - * only come from authority servers and our correctly functioning local - * recursive server would have followed the referral and got us something - * more definite. - * - *\li if the authority section contains an SOA, this SOA should also be the - * closest enclosing zone, since any intermediary zone cuts would've been - * returned as referrals and dealt with by our correctly functioning local - * recursive name server. but an SOA in the authority section should NOT - * match our dname (since that would have been returned in the answer - * section). an authority section SOA has to be "above" our dname. - * - *\li however, since authority section SOA's were once optional, it's - * possible that we'll have to go hunting for the enclosing SOA by - * ripping labels off the front of our dname -- this is known as "doing - * it the hard way." - * - *\li ultimately we want some server addresses, which are ideally the ones - * pertaining to the SOA.MNAME, but only if there is a matching NS RR. - * so the second phase (after we find an SOA) is to go looking for the - * NS RRset for that SOA's zone. - * - *\li no answer section processed by this code is allowed to contain CNAME - * or DNAME RR's. for the SOA query this means we strip a label and - * keep going. for the NS and A queries this means we just give up. - */ - -int -res_findzonecut(res_state statp, const char *dname, ns_class class, int opts, - char *zname, size_t zsize, struct in_addr *addrs, int naddrs) -{ - int result, i; - union res_sockaddr_union *u; - - - opts |= RES_IPV4ONLY; - opts &= ~RES_IPV6ONLY; - - u = calloc(naddrs, sizeof(*u)); - if (u == NULL) - return(-1); - - result = res_findzonecut2(statp, dname, class, opts, zname, zsize, - u, naddrs); - - for (i = 0; i < result; i++) { - addrs[i] = u[i].sin.sin_addr; - } - free(u); - return (result); -} - -int -res_findzonecut2(res_state statp, const char *dname, ns_class class, int opts, - char *zname, size_t zsize, union res_sockaddr_union *addrs, - int naddrs) -{ - char mname[NS_MAXDNAME]; - u_long save_pfcode; - rrset_ns nsrrs; - int n; - - DPRINTF(("START dname='%s' class=%s, zsize=%ld, naddrs=%d", - dname, p_class(class), (long)zsize, naddrs)); - save_pfcode = statp->pfcode; - statp->pfcode |= RES_PRF_HEAD2 | RES_PRF_HEAD1 | RES_PRF_HEADX | - RES_PRF_QUES | RES_PRF_ANS | - RES_PRF_AUTH | RES_PRF_ADD; - INIT_LIST(nsrrs); - - DPRINTF(("get the soa, and see if it has enough glue")); - if ((n = get_soa(statp, dname, class, opts, zname, zsize, - mname, sizeof mname, &nsrrs)) < 0 || - ((opts & RES_EXHAUSTIVE) == 0 && - (n = satisfy(statp, mname, &nsrrs, addrs, naddrs)) > 0)) - goto done; - - DPRINTF(("get the ns rrset and see if it has enough glue")); - if ((n = get_ns(statp, zname, class, opts, &nsrrs)) < 0 || - ((opts & RES_EXHAUSTIVE) == 0 && - (n = satisfy(statp, mname, &nsrrs, addrs, naddrs)) > 0)) - goto done; - - DPRINTF(("get the missing glue and see if it's finally enough")); - if ((n = get_glue(statp, class, opts, &nsrrs)) >= 0) - n = satisfy(statp, mname, &nsrrs, addrs, naddrs); - - done: - DPRINTF(("FINISH n=%d (%s)", n, (n < 0) ? strerror(errno) : "OK")); - free_nsrrset(&nsrrs); - statp->pfcode = save_pfcode; - return (n); -} - -/* Private. */ - -static int -satisfy(res_state statp, const char *mname, rrset_ns *nsrrsp, - union res_sockaddr_union *addrs, int naddrs) -{ - rr_ns *nsrr; - int n, x; - - n = 0; - nsrr = find_ns(nsrrsp, mname); - if (nsrr != NULL) { - x = add_addrs(statp, nsrr, addrs, naddrs); - addrs += x; - naddrs -= x; - n += x; - } - for (nsrr = HEAD(*nsrrsp); - nsrr != NULL && naddrs > 0; - nsrr = NEXT(nsrr, link)) - if (ns_samename(nsrr->name, mname) != 1) { - x = add_addrs(statp, nsrr, addrs, naddrs); - addrs += x; - naddrs -= x; - n += x; - } - DPRINTF(("satisfy(%s): %d", mname, n)); - return (n); -} - -static int -add_addrs(res_state statp, rr_ns *nsrr, - union res_sockaddr_union *addrs, int naddrs) -{ - rr_a *arr; - int n = 0; - - for (arr = HEAD(nsrr->addrs); arr != NULL; arr = NEXT(arr, link)) { - if (naddrs <= 0) - return (0); - *addrs++ = arr->addr; - naddrs--; - n++; - } - DPRINTF(("add_addrs: %d", n)); - return (n); -} - -static int -get_soa(res_state statp, const char *dname, ns_class class, int opts, - char *zname, size_t zsize, char *mname, size_t msize, - rrset_ns *nsrrsp) -{ - char tname[NS_MAXDNAME]; - u_char *resp = NULL; - int n, i, ancount, nscount; - ns_sect sect; - ns_msg msg; - u_int rcode; - - /* - * Find closest enclosing SOA, even if it's for the root zone. - */ - - /* First canonicalize dname (exactly one unescaped trailing "."). */ - if (ns_makecanon(dname, tname, sizeof tname) < 0) - goto cleanup; - dname = tname; - - resp = malloc(NS_MAXMSG); - if (resp == NULL) - goto cleanup; - - /* Now grovel the subdomains, hunting for an SOA answer or auth. */ - for (;;) { - /* Leading or inter-label '.' are skipped here. */ - while (*dname == '.') - dname++; - - /* Is there an SOA? */ - n = do_query(statp, dname, class, ns_t_soa, resp, &msg); - if (n < 0) { - DPRINTF(("get_soa: do_query('%s', %s) failed (%d)", - dname, p_class(class), n)); - goto cleanup; - } - if (n > 0) { - DPRINTF(("get_soa: CNAME or DNAME found")); - sect = ns_s_max, n = 0; - } else { - rcode = ns_msg_getflag(msg, ns_f_rcode); - ancount = ns_msg_count(msg, ns_s_an); - nscount = ns_msg_count(msg, ns_s_ns); - if (ancount > 0 && rcode == ns_r_noerror) - sect = ns_s_an, n = ancount; - else if (nscount > 0) - sect = ns_s_ns, n = nscount; - else - sect = ns_s_max, n = 0; - } - for (i = 0; i < n; i++) { - const char *t; - const u_char *rdata; - ns_rr rr; - - if (ns_parserr(&msg, sect, i, &rr) < 0) { - DPRINTF(("get_soa: ns_parserr(%s, %d) failed", - p_section(sect, ns_o_query), i)); - goto cleanup; - } - if (ns_rr_type(rr) == ns_t_cname || - ns_rr_type(rr) == ns_t_dname) - break; - if (ns_rr_type(rr) != ns_t_soa || - ns_rr_class(rr) != class) - continue; - t = ns_rr_name(rr); - switch (sect) { - case ns_s_an: - if (ns_samedomain(dname, t) == 0) { - DPRINTF( - ("get_soa: ns_samedomain('%s', '%s') == 0", - dname, t) - ); - errno = EPROTOTYPE; - goto cleanup; - } - break; - case ns_s_ns: - if (ns_samename(dname, t) == 1 || - ns_samedomain(dname, t) == 0) { - DPRINTF( - ("get_soa: ns_samename() || !ns_samedomain('%s', '%s')", - dname, t) - ); - errno = EPROTOTYPE; - goto cleanup; - } - break; - default: - abort(); - } - if (strlen(t) + 1 > zsize) { - DPRINTF(("get_soa: zname(%lu) too small (%lu)", - (unsigned long)zsize, - (unsigned long)strlen(t) + 1)); - errno = EMSGSIZE; - goto cleanup; - } - strcpy(zname, t); - rdata = ns_rr_rdata(rr); - if (ns_name_uncompress(resp, ns_msg_end(msg), rdata, - mname, msize) < 0) { - DPRINTF(("get_soa: ns_name_uncompress failed") - ); - goto cleanup; - } - if (save_ns(statp, &msg, ns_s_ns, - zname, class, opts, nsrrsp) < 0) { - DPRINTF(("get_soa: save_ns failed")); - goto cleanup; - } - free(resp); - return (0); - } - - /* If we're out of labels, then not even "." has an SOA! */ - if (*dname == '\0') - break; - - /* Find label-terminating "."; top of loop will skip it. */ - while (*dname != '.') { - if (*dname == '\\') - if (*++dname == '\0') { - errno = EMSGSIZE; - goto cleanup; - } - dname++; - } - } - DPRINTF(("get_soa: out of labels")); - errno = EDESTADDRREQ; - cleanup: - if (resp != NULL) - free(resp); - return (-1); -} - -static int -get_ns(res_state statp, const char *zname, ns_class class, int opts, - rrset_ns *nsrrsp) -{ - u_char *resp; - ns_msg msg; - int n; - - resp = malloc(NS_MAXMSG); - if (resp == NULL) - return (-1); - - /* Go and get the NS RRs for this zone. */ - n = do_query(statp, zname, class, ns_t_ns, resp, &msg); - if (n != 0) { - DPRINTF(("get_ns: do_query('%s', %s) failed (%d)", - zname, p_class(class), n)); - free(resp); - return (-1); - } - - /* Remember the NS RRs and associated A RRs that came back. */ - if (save_ns(statp, &msg, ns_s_an, zname, class, opts, nsrrsp) < 0) { - DPRINTF(("get_ns save_ns('%s', %s) failed", - zname, p_class(class))); - free(resp); - return (-1); - } - - free(resp); - return (0); -} - -static int -get_glue(res_state statp, ns_class class, int opts, rrset_ns *nsrrsp) { - rr_ns *nsrr, *nsrr_n; - u_char *resp; - - resp = malloc(NS_MAXMSG); - if (resp == NULL) - return(-1); - - /* Go and get the A RRs for each empty NS RR on our list. */ - for (nsrr = HEAD(*nsrrsp); nsrr != NULL; nsrr = nsrr_n) { - ns_msg msg; - int n; - - nsrr_n = NEXT(nsrr, link); - - if ((nsrr->flags & RR_NS_HAVE_V4) == 0) { - n = do_query(statp, nsrr->name, class, ns_t_a, - resp, &msg); - if (n < 0) { - DPRINTF( - ("get_glue: do_query('%s', %s') failed", - nsrr->name, p_class(class))); - goto cleanup; - } - if (n > 0) { - DPRINTF(( - "get_glue: do_query('%s', %s') CNAME or DNAME found", - nsrr->name, p_class(class))); - } - if (save_a(statp, &msg, ns_s_an, nsrr->name, class, - opts, nsrr) < 0) { - DPRINTF(("get_glue: save_r('%s', %s) failed", - nsrr->name, p_class(class))); - goto cleanup; - } - } - - if ((nsrr->flags & RR_NS_HAVE_V6) == 0) { - n = do_query(statp, nsrr->name, class, ns_t_aaaa, - resp, &msg); - if (n < 0) { - DPRINTF( - ("get_glue: do_query('%s', %s') failed", - nsrr->name, p_class(class))); - goto cleanup; - } - if (n > 0) { - DPRINTF(( - "get_glue: do_query('%s', %s') CNAME or DNAME found", - nsrr->name, p_class(class))); - } - if (save_a(statp, &msg, ns_s_an, nsrr->name, class, - opts, nsrr) < 0) { - DPRINTF(("get_glue: save_r('%s', %s) failed", - nsrr->name, p_class(class))); - goto cleanup; - } - } - - /* If it's still empty, it's just chaff. */ - if (EMPTY(nsrr->addrs)) { - DPRINTF(("get_glue: removing empty '%s' NS", - nsrr->name)); - free_nsrr(nsrrsp, nsrr); - } - } - free(resp); - return (0); - - cleanup: - free(resp); - return (-1); -} - -static int -save_ns(res_state statp, ns_msg *msg, ns_sect sect, - const char *owner, ns_class class, int opts, - rrset_ns *nsrrsp) -{ - int i; - - for (i = 0; i < ns_msg_count(*msg, sect); i++) { - char tname[MAXDNAME]; - const u_char *rdata; - rr_ns *nsrr; - ns_rr rr; - - if (ns_parserr(msg, sect, i, &rr) < 0) { - DPRINTF(("save_ns: ns_parserr(%s, %d) failed", - p_section(sect, ns_o_query), i)); - return (-1); - } - if (ns_rr_type(rr) != ns_t_ns || - ns_rr_class(rr) != class || - ns_samename(ns_rr_name(rr), owner) != 1) - continue; - nsrr = find_ns(nsrrsp, ns_rr_name(rr)); - if (nsrr == NULL) { - nsrr = malloc(sizeof *nsrr); - if (nsrr == NULL) { - DPRINTF(("save_ns: malloc failed")); - return (-1); - } - rdata = ns_rr_rdata(rr); - if (ns_name_uncompress(ns_msg_base(*msg), - ns_msg_end(*msg), rdata, - tname, sizeof tname) < 0) { - DPRINTF(("save_ns: ns_name_uncompress failed") - ); - free(nsrr); - return (-1); - } - nsrr->name = strdup(tname); - if (nsrr->name == NULL) { - DPRINTF(("save_ns: strdup failed")); - free(nsrr); - return (-1); - } - INIT_LINK(nsrr, link); - INIT_LIST(nsrr->addrs); - nsrr->flags = 0; - APPEND(*nsrrsp, nsrr, link); - } - if (save_a(statp, msg, ns_s_ar, - nsrr->name, class, opts, nsrr) < 0) { - DPRINTF(("save_ns: save_r('%s', %s) failed", - nsrr->name, p_class(class))); - return (-1); - } - } - return (0); -} - -static int -save_a(res_state statp, ns_msg *msg, ns_sect sect, - const char *owner, ns_class class, int opts, - rr_ns *nsrr) -{ - int i; - - for (i = 0; i < ns_msg_count(*msg, sect); i++) { - ns_rr rr; - rr_a *arr; - - if (ns_parserr(msg, sect, i, &rr) < 0) { - DPRINTF(("save_a: ns_parserr(%s, %d) failed", - p_section(sect, ns_o_query), i)); - return (-1); - } - if ((ns_rr_type(rr) != ns_t_a && - ns_rr_type(rr) != ns_t_aaaa) || - ns_rr_class(rr) != class || - ns_samename(ns_rr_name(rr), owner) != 1 || - ns_rr_rdlen(rr) != NS_INADDRSZ) - continue; - if ((opts & RES_IPV6ONLY) != 0 && ns_rr_type(rr) != ns_t_aaaa) - continue; - if ((opts & RES_IPV4ONLY) != 0 && ns_rr_type(rr) != ns_t_a) - continue; - arr = malloc(sizeof *arr); - if (arr == NULL) { - DPRINTF(("save_a: malloc failed")); - return (-1); - } - INIT_LINK(arr, link); - memset(&arr->addr, 0, sizeof(arr->addr)); - switch (ns_rr_type(rr)) { - case ns_t_a: - arr->addr.sin.sin_family = AF_INET; -#ifdef HAVE_SA_LEN - arr->addr.sin.sin_len = sizeof(arr->addr.sin); -#endif - memcpy(&arr->addr.sin.sin_addr, ns_rr_rdata(rr), - NS_INADDRSZ); - arr->addr.sin.sin_port = htons(NAMESERVER_PORT); - nsrr->flags |= RR_NS_HAVE_V4; - break; - case ns_t_aaaa: - arr->addr.sin6.sin6_family = AF_INET6; -#ifdef HAVE_SA_LEN - arr->addr.sin6.sin6_len = sizeof(arr->addr.sin6); -#endif - memcpy(&arr->addr.sin6.sin6_addr, ns_rr_rdata(rr), 16); - arr->addr.sin.sin_port = htons(NAMESERVER_PORT); - nsrr->flags |= RR_NS_HAVE_V6; - break; - default: - abort(); - } - APPEND(nsrr->addrs, arr, link); - } - return (0); -} - -static void -free_nsrrset(rrset_ns *nsrrsp) { - rr_ns *nsrr; - - while ((nsrr = HEAD(*nsrrsp)) != NULL) - free_nsrr(nsrrsp, nsrr); -} - -static void -free_nsrr(rrset_ns *nsrrsp, rr_ns *nsrr) { - rr_a *arr; - char *tmp; - - while ((arr = HEAD(nsrr->addrs)) != NULL) { - UNLINK(nsrr->addrs, arr, link); - free(arr); - } - DE_CONST(nsrr->name, tmp); - free(tmp); - UNLINK(*nsrrsp, nsrr, link); - free(nsrr); -} - -static rr_ns * -find_ns(rrset_ns *nsrrsp, const char *dname) { - rr_ns *nsrr; - - for (nsrr = HEAD(*nsrrsp); nsrr != NULL; nsrr = NEXT(nsrr, link)) - if (ns_samename(nsrr->name, dname) == 1) - return (nsrr); - return (NULL); -} - -static int -do_query(res_state statp, const char *dname, ns_class class, ns_type qtype, - u_char *resp, ns_msg *msg) -{ - u_char req[NS_PACKETSZ]; - int i, n; - - n = res_nmkquery(statp, ns_o_query, dname, class, qtype, - NULL, 0, NULL, req, NS_PACKETSZ); - if (n < 0) { - DPRINTF(("do_query: res_nmkquery failed")); - return (-1); - } - n = res_nsend(statp, req, n, resp, NS_MAXMSG); - if (n < 0) { - DPRINTF(("do_query: res_nsend failed")); - return (-1); - } - if (n == 0) { - DPRINTF(("do_query: res_nsend returned 0")); - errno = EMSGSIZE; - return (-1); - } - if (ns_initparse(resp, n, msg) < 0) { - DPRINTF(("do_query: ns_initparse failed")); - return (-1); - } - n = 0; - for (i = 0; i < ns_msg_count(*msg, ns_s_an); i++) { - ns_rr rr; - - if (ns_parserr(msg, ns_s_an, i, &rr) < 0) { - DPRINTF(("do_query: ns_parserr failed")); - return (-1); - } - n += (ns_rr_class(rr) == class && - (ns_rr_type(rr) == ns_t_cname || - ns_rr_type(rr) == ns_t_dname)); - } - return (n); -} - -static void -res_dprintf(const char *fmt, ...) { - va_list ap; - - va_start(ap, fmt); - fputs(";; res_findzonecut: ", stderr); - vfprintf(stderr, fmt, ap); - fputc('\n', stderr); - va_end(ap); -} - -/*! \file */ diff --git a/src/kits/network/libbind/resolv/res_init.c b/src/kits/network/libbind/resolv/res_init.c index f488739846..0e218f6009 100644 --- a/src/kits/network/libbind/resolv/res_init.c +++ b/src/kits/network/libbind/resolv/res_init.c @@ -1,3 +1,5 @@ +/* $NetBSD: res_init.c,v 1.26 2012/09/09 18:04:26 christos Exp $ */ + /* * Copyright (c) 1985, 1989, 1993 * The Regents of the University of California. All rights reserved. @@ -84,6 +86,7 @@ #include #include #include +#include #include #ifndef HAVE_MD5 @@ -106,26 +109,30 @@ #include "res_private.h" -/*% Options. Should all be left alone. */ #define RESOLVSORT +/*% Options. Should all be left alone. */ +#ifndef DEBUG //#define DEBUG +#endif #ifdef SOLARIS2 #include #endif -static void res_setoptions __P((res_state, const char *, const char *)); +static void res_setoptions(res_state, const char *, const char *); #ifdef RESOLVSORT static const char sort_mask[] = "/&"; #define ISSORTMASK(ch) (strchr(sort_mask, ch) != NULL) -static u_int32_t net_mask __P((struct in_addr)); +static uint32_t net_mask __P((struct in_addr)); #endif #if !defined(isascii) /*%< XXX - could be a function */ # define isascii(c) (!(c & 0200)) #endif +static const struct timespec ts = { 0, 0 }; + /* * Resolver state default settings. */ @@ -153,8 +160,6 @@ static u_int32_t net_mask __P((struct in_addr)); */ int res_ninit(res_state statp) { - extern int __res_vinit(res_state, int); - return (__res_vinit(statp, 0)); } @@ -178,16 +183,17 @@ __res_vinit(res_state statp, int preinit) { int maxns = MAXNS; RES_SET_H_ERRNO(statp, 0); - if (statp->_u._ext.ext != NULL) + + if ((statp->options & RES_INIT) != 0U) res_ndestroy(statp); if (!preinit) { statp->retrans = RES_TIMEOUT; statp->retry = RES_DFLRETRY; statp->options = RES_DEFAULT; - res_rndinit(statp); - statp->id = res_nrandomid(statp); } + res_rndinit(statp); + statp->id = res_nrandomid(statp); memset(u, 0, sizeof(u)); #ifdef USELOOPBACK @@ -264,9 +270,8 @@ __res_vinit(res_state statp, int preinit) { buf[0] = '.'; cp = strchr(buf, '.'); cp = (cp == NULL) ? buf : (cp + 1); - strncpy(statp->defdname, cp, - sizeof(statp->defdname) - 1); - statp->defdname[sizeof(statp->defdname) - 1] = '\0'; + (void)strlcpy(statp->defdname, cp, + sizeof(statp->defdname)); } } #endif /* SOLARIS2 */ @@ -316,9 +321,9 @@ __res_vinit(res_state statp, int preinit) { strlcat(path, "/network/resolv.conf", sizeof(path)); nserv = 0; - if ((fp = fopen(path, "r")) != NULL) { + if ((fp = fopen(path, "re")) != NULL) { /* read the config file */ - while (fgets(buf, sizeof(buf), fp) != NULL) { + while (fgets(buf, (int)sizeof(buf), fp) != NULL) { /* skip comments */ if (*buf == ';' || *buf == '#') continue; @@ -520,6 +525,7 @@ res_setoptions(res_state statp, const char *options, const char *source) { const char *cp = options; int i; + size_t j; struct __res_state_ext *ext = statp->_u._ext.ext; #ifdef DEBUG @@ -614,17 +620,17 @@ res_setoptions(res_state statp, const char *options, const char *source) if (ext == NULL) goto skip; cp += sizeof("nibble:") - 1; - i = MIN(strcspn(cp, " \t"), sizeof(ext->nsuffix) - 1); - strncpy(ext->nsuffix, cp, i); - ext->nsuffix[i] = '\0'; + j = MIN(strcspn(cp, " \t"), sizeof(ext->nsuffix) - 1); + strncpy(ext->nsuffix, cp, j); + ext->nsuffix[j] = '\0'; } else if (!strncmp(cp, "nibble2:", sizeof("nibble2:") - 1)) { if (ext == NULL) goto skip; cp += sizeof("nibble2:") - 1; - i = MIN(strcspn(cp, " \t"), sizeof(ext->nsuffix2) - 1); - strncpy(ext->nsuffix2, cp, i); - ext->nsuffix2[i] = '\0'; + j = MIN(strcspn(cp, " \t"), sizeof(ext->nsuffix2) - 1); + strncpy(ext->nsuffix2, cp, j); + ext->nsuffix2[j] = '\0'; } else if (!strncmp(cp, "v6revmode:", sizeof("v6revmode:") - 1)) { cp += sizeof("v6revmode:") - 1; @@ -648,11 +654,10 @@ res_setoptions(res_state statp, const char *options, const char *source) #ifdef RESOLVSORT /* XXX - should really support CIDR which means explicit masks always. */ -static u_int32_t -net_mask(in) /*!< XXX - should really use system's version of this */ - struct in_addr in; +static uint32_t +net_mask(struct in_addr in) /*!< XXX - should really use system's version of this */ { - register u_int32_t i = ntohl(in.s_addr); + register uint32_t i = ntohl(in.s_addr); if (IN_CLASSA(i)) return (htonl(IN_CLASSA_NET)); @@ -666,39 +671,42 @@ void res_rndinit(res_state statp) { struct timeval now; - u_int32_t u32; - u_int16_t u16; + uint32_t u32; + uint16_t u16; + u_char *rnd = statp->_rnd; gettimeofday(&now, NULL); - u32 = now.tv_sec; - memcpy(statp->_rnd, &u32, 4); + u32 = (uint32_t)now.tv_sec; + memcpy(rnd, &u32, 4); u32 = now.tv_usec; - memcpy(statp->_rnd + 4, &u32, 4); - u32 += now.tv_sec; - memcpy(statp->_rnd + 8, &u32, 4); + memcpy(rnd + 4, &u32, 4); + u32 += (uint32_t)now.tv_sec; + memcpy(rnd + 8, &u32, 4); u16 = getpid(); - memcpy(statp->_rnd + 12, &u16, 2); + memcpy(rnd + 12, &u16, 2); } u_int -res_nrandomid(res_state statp) { +res_nrandomid(res_state statp) +{ struct timeval now; - u_int16_t u16; + uint16_t u16; MD5_CTX ctx; + u_char *rnd = statp->_rnd; gettimeofday(&now, NULL); - u16 = (u_int16_t) (now.tv_sec ^ now.tv_usec); - memcpy(statp->_rnd + 14, &u16, 2); + u16 = (uint16_t) (now.tv_sec ^ now.tv_usec); + memcpy(rnd + 14, &u16, 2); #ifndef HAVE_MD5 MD5_Init(&ctx); - MD5_Update(&ctx, statp->_rnd, 16); - MD5_Final(statp->_rnd, &ctx); + MD5_Update(&ctx, rnd, 16); + MD5_Final(rnd, &ctx); #else MD5Init(&ctx); - MD5Update(&ctx, statp->_rnd, 16); - MD5Final(statp->_rnd, &ctx); + MD5Update(&ctx, rnd, 16); + MD5Final(rnd, &ctx); #endif - memcpy(&u16, statp->_rnd + 14, 2); + memcpy(&u16, rnd + 14, 2); return ((u_int) u16); } @@ -710,7 +718,8 @@ res_nrandomid(res_state statp) { * This routine is not expected to be user visible. */ void -res_nclose(res_state statp) { +res_nclose(res_state statp) +{ int ns; if (statp->_vcsock >= 0) { @@ -727,30 +736,39 @@ res_nclose(res_state statp) { } void -res_ndestroy(res_state statp) { +res_ndestroy(res_state statp) +{ res_nclose(statp); - if (statp->_u._ext.ext != NULL) + if (statp->_u._ext.ext != NULL) { + if (statp->_u._ext.ext->kq != -1) + (void)close(statp->_u._ext.ext->kq); + if (statp->_u._ext.ext->resfd != -1) + (void)close(statp->_u._ext.ext->resfd); free(statp->_u._ext.ext); + statp->_u._ext.ext = NULL; + } statp->options &= ~RES_INIT; - statp->_u._ext.ext = NULL; } const char * -res_get_nibblesuffix(res_state statp) { +res_get_nibblesuffix(res_state statp) +{ if (statp->_u._ext.ext) return (statp->_u._ext.ext->nsuffix); return ("ip6.arpa"); } const char * -res_get_nibblesuffix2(res_state statp) { +res_get_nibblesuffix2(res_state statp) +{ if (statp->_u._ext.ext) return (statp->_u._ext.ext->nsuffix2); return ("ip6.int"); } void -res_setservers(res_state statp, const union res_sockaddr_union *set, int cnt) { +res_setservers(res_state statp, const union res_sockaddr_union *set, int cnt) +{ int i, nserv; size_t size; @@ -801,10 +819,11 @@ res_setservers(res_state statp, const union res_sockaddr_union *set, int cnt) { } int -res_getservers(res_state statp, union res_sockaddr_union *set, int cnt) { +res_getservers(res_state statp, union res_sockaddr_union *set, int cnt) +{ int i; size_t size; - u_int16_t family; + uint16_t family; for (i = 0; i < statp->nscount && i < cnt; i++) { if (statp->_u._ext.ext) diff --git a/src/kits/network/libbind/resolv/res_mkquery.c b/src/kits/network/libbind/resolv/res_mkquery.c index fc57e27148..6e7b394433 100644 --- a/src/kits/network/libbind/resolv/res_mkquery.c +++ b/src/kits/network/libbind/resolv/res_mkquery.c @@ -1,3 +1,5 @@ +/* $NetBSD: res_mkquery.c,v 1.13 2012/03/13 21:13:43 christos Exp $ */ + /* * Portions Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 1996, 1997, 1988, 1999, 2001, 2003 Internet Software Consortium. @@ -78,6 +80,7 @@ static const char rcsid[] = "$Id: res_mkquery.c,v 1.10 2008/12/11 09:59:00 marka #include #include #include +#include #include #include #include @@ -122,7 +125,7 @@ res_nmkquery(res_state statp, if ((buf == NULL) || (buflen < HFIXEDSZ)) return (-1); memset(buf, 0, HFIXEDSZ); - hp = (HEADER *) buf; + hp = (HEADER *)(void *)buf; statp->id = res_nrandomid(statp); hp->id = htons(statp->id); hp->opcode = op; @@ -142,7 +145,7 @@ res_nmkquery(res_state statp, case NS_NOTIFY_OP: if (ep - cp < QFIXEDSZ) return (-1); - if ((n = dn_comp(dname, cp, ep - cp - QFIXEDSZ, dnptrs, + if ((n = dn_comp(dname, cp, (int)(ep - cp - QFIXEDSZ), dnptrs, lastdnptr)) < 0) return (-1); cp += n; @@ -158,7 +161,7 @@ res_nmkquery(res_state statp, */ if ((ep - cp) < RRFIXEDSZ) return (-1); - n = dn_comp((const char *)data, cp, ep - cp - RRFIXEDSZ, + n = dn_comp((const char *)data, cp, (int)(ep - cp - RRFIXEDSZ), dnptrs, lastdnptr); if (n < 0) return (-1); @@ -190,7 +193,7 @@ res_nmkquery(res_state statp, ns_put16(datalen, cp); cp += INT16SZ; if (datalen) { - memcpy(cp, data, datalen); + memcpy(cp, data, (size_t)datalen); cp += datalen; } hp->ancount = htons(1); @@ -199,7 +202,8 @@ res_nmkquery(res_state statp, default: return (-1); } - return (cp - buf); + assert(INT_MIN <= (cp - buf) && (cp - buf) <= INT_MAX); + return (int)(cp - buf); } #ifdef RES_USE_EDNS0 @@ -221,7 +225,7 @@ res_nopt(res_state statp, printf(";; res_nopt()\n"); #endif - hp = (HEADER *) buf; + hp = (HEADER *)(void *)buf; cp = buf + n0; ep = buf + buflen; @@ -251,7 +255,8 @@ res_nopt(res_state statp, hp->arcount = htons(ntohs(hp->arcount) + 1); - return (cp - buf); + assert(INT_MIN <= (cp - buf) && (cp - buf) <= INT_MAX); + return (int)(cp - buf); } /* @@ -291,13 +296,15 @@ res_nopt_rdata(res_state statp, ns_put16(len, cp); cp += INT16SZ; - memcpy(cp, data, len); + memcpy(cp, data, (size_t)len); cp += len; - len = cp - rdata; + assert(0 <= (cp - rdata) && (cp - rdata) <= USHRT_MAX); + len = (u_short)(cp - rdata); ns_put16(len, rdata - 2); /* Update RDLEN field */ - return (cp - buf); + assert(INT_MIN <= (cp - buf) && (cp - buf) <= INT_MAX); + return (int)(cp - buf); } #endif diff --git a/src/kits/network/libbind/resolv/res_mkupdate.c b/src/kits/network/libbind/resolv/res_mkupdate.c deleted file mode 100644 index 02a6ad10ba..0000000000 --- a/src/kits/network/libbind/resolv/res_mkupdate.c +++ /dev/null @@ -1,1163 +0,0 @@ -/* - * 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. - */ - -/*! \file - * \brief - * Based on the Dynamic DNS reference implementation by Viraj Bais - * <viraj_bais@ccm.fm.intel.com> - */ - -#if !defined(lint) && !defined(SABER) -static const char rcsid[] = "$Id: res_mkupdate.c,v 1.10 2008/12/11 09:59:00 marka Exp $"; -#endif /* not lint */ - -#include "port_before.h" - -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "port_after.h" - -/* Options. Leave them on. */ -//#define DEBUG -#define MAXPORT 1024 - -static int getnum_str(u_char **, u_char *); -static int gethexnum_str(u_char **, u_char *); -static int getword_str(char *, int, u_char **, u_char *); -static int getstr_str(char *, int, u_char **, u_char *); - -#define ShrinkBuffer(x) if ((buflen -= x) < 0) return (-2); - -/* Forward. */ - -int res_protocolnumber(const char *); -int res_servicenumber(const char *); - -/*% - * Form update packets. - * Returns the size of the resulting packet if no error - * - * On error, - * returns - *\li -1 if error in reading a word/number in rdata - * portion for update packets - *\li -2 if length of buffer passed is insufficient - *\li -3 if zone section is not the first section in - * the linked list, or section order has a problem - *\li -4 on a number overflow - *\li -5 unknown operation or no records - */ -int -res_nmkupdate(res_state statp, ns_updrec *rrecp_in, u_char *buf, int buflen) { - ns_updrec *rrecp_start = rrecp_in; - HEADER *hp; - u_char *cp, *sp2, *startp, *endp; - int n, i, soanum, multiline; - ns_updrec *rrecp; - struct in_addr ina; - struct in6_addr in6a; - char buf2[MAXDNAME]; - u_char buf3[MAXDNAME]; - int section, numrrs = 0, counts[ns_s_max]; - u_int16_t rtype, rclass; - u_int32_t n1, rttl; - u_char *dnptrs[20], **dpp, **lastdnptr; - int siglen, keylen, certlen; - - /* - * Initialize header fields. - */ - if ((buf == NULL) || (buflen < HFIXEDSZ)) - return (-1); - memset(buf, 0, HFIXEDSZ); - hp = (HEADER *) buf; - statp->id = res_nrandomid(statp); - hp->id = htons(statp->id); - hp->opcode = ns_o_update; - hp->rcode = NOERROR; - cp = buf + HFIXEDSZ; - buflen -= HFIXEDSZ; - dpp = dnptrs; - *dpp++ = buf; - *dpp++ = NULL; - lastdnptr = dnptrs + sizeof dnptrs / sizeof dnptrs[0]; - - if (rrecp_start == NULL) - return (-5); - else if (rrecp_start->r_section != S_ZONE) - return (-3); - - memset(counts, 0, sizeof counts); - for (rrecp = rrecp_start; rrecp; rrecp = NEXT(rrecp, r_glink)) { - numrrs++; - section = rrecp->r_section; - if (section < 0 || section >= ns_s_max) - return (-1); - counts[section]++; - for (i = section + 1; i < ns_s_max; i++) - if (counts[i]) - return (-3); - rtype = rrecp->r_type; - rclass = rrecp->r_class; - rttl = rrecp->r_ttl; - /* overload class and type */ - if (section == S_PREREQ) { - rttl = 0; - switch (rrecp->r_opcode) { - case YXDOMAIN: - rclass = C_ANY; - rtype = T_ANY; - rrecp->r_size = 0; - break; - case NXDOMAIN: - rclass = C_NONE; - rtype = T_ANY; - rrecp->r_size = 0; - break; - case NXRRSET: - rclass = C_NONE; - rrecp->r_size = 0; - break; - case YXRRSET: - if (rrecp->r_size == 0) - rclass = C_ANY; - break; - default: - fprintf(stderr, - "res_mkupdate: incorrect opcode: %d\n", - rrecp->r_opcode); - fflush(stderr); - return (-1); - } - } else if (section == S_UPDATE) { - switch (rrecp->r_opcode) { - case DELETE: - rclass = rrecp->r_size == 0 ? C_ANY : C_NONE; - break; - case ADD: - break; - default: - fprintf(stderr, - "res_mkupdate: incorrect opcode: %d\n", - rrecp->r_opcode); - fflush(stderr); - return (-1); - } - } - - /* - * XXX appending default domain to owner name is omitted, - * fqdn must be provided - */ - if ((n = dn_comp(rrecp->r_dname, cp, buflen, dnptrs, - lastdnptr)) < 0) - return (-1); - cp += n; - ShrinkBuffer(n + 2*INT16SZ); - PUTSHORT(rtype, cp); - PUTSHORT(rclass, cp); - if (section == S_ZONE) { - if (numrrs != 1 || rrecp->r_type != T_SOA) - return (-3); - continue; - } - ShrinkBuffer(INT32SZ + INT16SZ); - PUTLONG(rttl, cp); - sp2 = cp; /*%< save pointer to length byte */ - cp += INT16SZ; - if (rrecp->r_size == 0) { - if (section == S_UPDATE && rclass != C_ANY) - return (-1); - else { - PUTSHORT(0, sp2); - continue; - } - } - startp = rrecp->r_data; - endp = startp + rrecp->r_size - 1; - /* XXX this should be done centrally. */ - switch (rrecp->r_type) { - case T_A: - if (!getword_str(buf2, sizeof buf2, &startp, endp)) - return (-1); - if (!inet_aton(buf2, &ina)) - return (-1); - n1 = ntohl(ina.s_addr); - ShrinkBuffer(INT32SZ); - PUTLONG(n1, cp); - break; - case T_CNAME: - case T_MB: - case T_MG: - case T_MR: - case T_NS: - case T_PTR: - case ns_t_dname: - if (!getword_str(buf2, sizeof buf2, &startp, endp)) - return (-1); - n = dn_comp(buf2, cp, buflen, dnptrs, lastdnptr); - if (n < 0) - return (-1); - cp += n; - ShrinkBuffer(n); - break; - case T_MINFO: - case T_SOA: - case T_RP: - for (i = 0; i < 2; i++) { - if (!getword_str(buf2, sizeof buf2, &startp, - endp)) - return (-1); - n = dn_comp(buf2, cp, buflen, - dnptrs, lastdnptr); - if (n < 0) - return (-1); - cp += n; - ShrinkBuffer(n); - } - if (rrecp->r_type == T_SOA) { - ShrinkBuffer(5 * INT32SZ); - while (isspace(*startp) || !*startp) - startp++; - if (*startp == '(') { - multiline = 1; - startp++; - } else - multiline = 0; - /* serial, refresh, retry, expire, minimum */ - for (i = 0; i < 5; i++) { - soanum = getnum_str(&startp, endp); - if (soanum < 0) - return (-1); - PUTLONG(soanum, cp); - } - if (multiline) { - while (isspace(*startp) || !*startp) - startp++; - if (*startp != ')') - return (-1); - } - } - break; - case T_MX: - case T_AFSDB: - case T_RT: - n = getnum_str(&startp, endp); - if (n < 0) - return (-1); - ShrinkBuffer(INT16SZ); - PUTSHORT(n, cp); - if (!getword_str(buf2, sizeof buf2, &startp, endp)) - return (-1); - n = dn_comp(buf2, cp, buflen, dnptrs, lastdnptr); - if (n < 0) - return (-1); - cp += n; - ShrinkBuffer(n); - break; - case T_SRV: - n = getnum_str(&startp, endp); - if (n < 0) - return (-1); - ShrinkBuffer(INT16SZ); - PUTSHORT(n, cp); - - n = getnum_str(&startp, endp); - if (n < 0) - return (-1); - ShrinkBuffer(INT16SZ); - PUTSHORT(n, cp); - - n = getnum_str(&startp, endp); - if (n < 0) - return (-1); - ShrinkBuffer(INT16SZ); - PUTSHORT(n, cp); - - if (!getword_str(buf2, sizeof buf2, &startp, endp)) - return (-1); - n = dn_comp(buf2, cp, buflen, NULL, NULL); - if (n < 0) - return (-1); - cp += n; - ShrinkBuffer(n); - break; - case T_PX: - n = getnum_str(&startp, endp); - if (n < 0) - return (-1); - PUTSHORT(n, cp); - ShrinkBuffer(INT16SZ); - for (i = 0; i < 2; i++) { - if (!getword_str(buf2, sizeof buf2, &startp, - endp)) - return (-1); - n = dn_comp(buf2, cp, buflen, dnptrs, - lastdnptr); - if (n < 0) - return (-1); - cp += n; - ShrinkBuffer(n); - } - break; - case T_WKS: { - char bm[MAXPORT/8]; - unsigned int maxbm = 0; - - if (!getword_str(buf2, sizeof buf2, &startp, endp)) - return (-1); - if (!inet_aton(buf2, &ina)) - return (-1); - n1 = ntohl(ina.s_addr); - ShrinkBuffer(INT32SZ); - PUTLONG(n1, cp); - - if (!getword_str(buf2, sizeof buf2, &startp, endp)) - return (-1); - if ((i = res_protocolnumber(buf2)) < 0) - return (-1); - ShrinkBuffer(1); - *cp++ = i & 0xff; - - for (i = 0; i < MAXPORT/8 ; i++) - bm[i] = 0; - - while (getword_str(buf2, sizeof buf2, &startp, endp)) { - if ((n = res_servicenumber(buf2)) <= 0) - return (-1); - - if (n < MAXPORT) { - bm[n/8] |= (0x80>>(n%8)); - if ((unsigned)n > maxbm) - maxbm = n; - } else - return (-1); - } - maxbm = maxbm/8 + 1; - ShrinkBuffer(maxbm); - memcpy(cp, bm, maxbm); - cp += maxbm; - break; - } - case T_HINFO: - for (i = 0; i < 2; i++) { - if ((n = getstr_str(buf2, sizeof buf2, - &startp, endp)) < 0) - return (-1); - if (n > 255) - return (-1); - ShrinkBuffer(n+1); - *cp++ = n; - memcpy(cp, buf2, n); - cp += n; - } - break; - case T_TXT: - for (;;) { - if ((n = getstr_str(buf2, sizeof buf2, - &startp, endp)) < 0) { - if (cp != (sp2 + INT16SZ)) - break; - return (-1); - } - if (n > 255) - return (-1); - ShrinkBuffer(n+1); - *cp++ = n; - memcpy(cp, buf2, n); - cp += n; - } - break; - case T_X25: - /* RFC1183 */ - if ((n = getstr_str(buf2, sizeof buf2, &startp, - endp)) < 0) - return (-1); - if (n > 255) - return (-1); - ShrinkBuffer(n+1); - *cp++ = n; - memcpy(cp, buf2, n); - cp += n; - break; - case T_ISDN: - /* RFC1183 */ - if ((n = getstr_str(buf2, sizeof buf2, &startp, - endp)) < 0) - return (-1); - if ((n > 255) || (n == 0)) - return (-1); - ShrinkBuffer(n+1); - *cp++ = n; - memcpy(cp, buf2, n); - cp += n; - if ((n = getstr_str(buf2, sizeof buf2, &startp, - endp)) < 0) - n = 0; - if (n > 255) - return (-1); - ShrinkBuffer(n+1); - *cp++ = n; - memcpy(cp, buf2, n); - cp += n; - break; - case T_NSAP: - if ((n = inet_nsap_addr((char *)startp, (u_char *)buf2, sizeof(buf2))) != 0) { - ShrinkBuffer(n); - memcpy(cp, buf2, n); - cp += n; - } else { - return (-1); - } - break; - case T_LOC: - if ((n = loc_aton((char *)startp, (u_char *)buf2)) != 0) { - ShrinkBuffer(n); - memcpy(cp, buf2, n); - cp += n; - } else - return (-1); - break; - case ns_t_sig: - { - int sig_type, success, dateerror; - u_int32_t exptime, timesigned; - - /* type */ - if ((n = getword_str(buf2, sizeof buf2, - &startp, endp)) < 0) - return (-1); - sig_type = sym_ston(__p_type_syms, buf2, &success); - if (!success || sig_type == ns_t_any) - return (-1); - ShrinkBuffer(INT16SZ); - PUTSHORT(sig_type, cp); - /* alg */ - n = getnum_str(&startp, endp); - if (n < 0) - return (-1); - ShrinkBuffer(1); - *cp++ = n; - /* labels */ - n = getnum_str(&startp, endp); - if (n <= 0 || n > 255) - return (-1); - ShrinkBuffer(1); - *cp++ = n; - /* ottl & expire */ - if (!getword_str(buf2, sizeof buf2, &startp, endp)) - return (-1); - exptime = ns_datetosecs(buf2, &dateerror); - if (!dateerror) { - ShrinkBuffer(INT32SZ); - PUTLONG(rttl, cp); - } - else { - char *ulendp; - u_int32_t ottl; - - errno = 0; - ottl = strtoul(buf2, &ulendp, 10); - if (errno != 0 || - (ulendp != NULL && *ulendp != '\0')) - return (-1); - ShrinkBuffer(INT32SZ); - PUTLONG(ottl, cp); - if (!getword_str(buf2, sizeof buf2, &startp, - endp)) - return (-1); - exptime = ns_datetosecs(buf2, &dateerror); - if (dateerror) - return (-1); - } - /* expire */ - ShrinkBuffer(INT32SZ); - PUTLONG(exptime, cp); - /* timesigned */ - if (!getword_str(buf2, sizeof buf2, &startp, endp)) - return (-1); - timesigned = ns_datetosecs(buf2, &dateerror); - if (!dateerror) { - ShrinkBuffer(INT32SZ); - PUTLONG(timesigned, cp); - } - else - return (-1); - /* footprint */ - n = getnum_str(&startp, endp); - if (n < 0) - return (-1); - ShrinkBuffer(INT16SZ); - PUTSHORT(n, cp); - /* signer name */ - if (!getword_str(buf2, sizeof buf2, &startp, endp)) - return (-1); - n = dn_comp(buf2, cp, buflen, dnptrs, lastdnptr); - if (n < 0) - return (-1); - cp += n; - ShrinkBuffer(n); - /* sig */ - if ((n = getword_str(buf2, sizeof buf2, - &startp, endp)) < 0) - return (-1); - siglen = b64_pton(buf2, buf3, sizeof(buf3)); - if (siglen < 0) - return (-1); - ShrinkBuffer(siglen); - memcpy(cp, buf3, siglen); - cp += siglen; - break; - } - case ns_t_key: - /* flags */ - n = gethexnum_str(&startp, endp); - if (n < 0) - return (-1); - ShrinkBuffer(INT16SZ); - PUTSHORT(n, cp); - /* proto */ - n = getnum_str(&startp, endp); - if (n < 0) - return (-1); - ShrinkBuffer(1); - *cp++ = n; - /* alg */ - n = getnum_str(&startp, endp); - if (n < 0) - return (-1); - ShrinkBuffer(1); - *cp++ = n; - /* key */ - if ((n = getword_str(buf2, sizeof buf2, - &startp, endp)) < 0) - return (-1); - keylen = b64_pton(buf2, buf3, sizeof(buf3)); - if (keylen < 0) - return (-1); - ShrinkBuffer(keylen); - memcpy(cp, buf3, keylen); - cp += keylen; - break; - case ns_t_nxt: - { - int success, nxt_type; - u_char data[32]; - int maxtype; - - /* next name */ - if (!getword_str(buf2, sizeof buf2, &startp, endp)) - return (-1); - n = dn_comp(buf2, cp, buflen, NULL, NULL); - if (n < 0) - return (-1); - cp += n; - ShrinkBuffer(n); - maxtype = 0; - memset(data, 0, sizeof data); - for (;;) { - if (!getword_str(buf2, sizeof buf2, &startp, - endp)) - break; - nxt_type = sym_ston(__p_type_syms, buf2, - &success); - if (!success || !ns_t_rr_p(nxt_type)) - return (-1); - NS_NXT_BIT_SET(nxt_type, data); - if (nxt_type > maxtype) - maxtype = nxt_type; - } - n = maxtype/NS_NXT_BITS+1; - ShrinkBuffer(n); - memcpy(cp, data, n); - cp += n; - break; - } - case ns_t_cert: - /* type */ - n = getnum_str(&startp, endp); - if (n < 0) - return (-1); - ShrinkBuffer(INT16SZ); - PUTSHORT(n, cp); - /* key tag */ - n = getnum_str(&startp, endp); - if (n < 0) - return (-1); - ShrinkBuffer(INT16SZ); - PUTSHORT(n, cp); - /* alg */ - n = getnum_str(&startp, endp); - if (n < 0) - return (-1); - ShrinkBuffer(1); - *cp++ = n; - /* cert */ - if ((n = getword_str(buf2, sizeof buf2, - &startp, endp)) < 0) - return (-1); - certlen = b64_pton(buf2, buf3, sizeof(buf3)); - if (certlen < 0) - return (-1); - ShrinkBuffer(certlen); - memcpy(cp, buf3, certlen); - cp += certlen; - break; - case ns_t_aaaa: - if (!getword_str(buf2, sizeof buf2, &startp, endp)) - return (-1); - if (inet_pton(AF_INET6, buf2, &in6a) <= 0) - return (-1); - ShrinkBuffer(NS_IN6ADDRSZ); - memcpy(cp, &in6a, NS_IN6ADDRSZ); - cp += NS_IN6ADDRSZ; - break; - case ns_t_naptr: - /* Order Preference Flags Service Replacement Regexp */ - /* Order */ - n = getnum_str(&startp, endp); - if (n < 0 || n > 65535) - return (-1); - ShrinkBuffer(INT16SZ); - PUTSHORT(n, cp); - /* Preference */ - n = getnum_str(&startp, endp); - if (n < 0 || n > 65535) - return (-1); - ShrinkBuffer(INT16SZ); - PUTSHORT(n, cp); - /* Flags */ - if ((n = getstr_str(buf2, sizeof buf2, - &startp, endp)) < 0) { - return (-1); - } - if (n > 255) - return (-1); - ShrinkBuffer(n+1); - *cp++ = n; - memcpy(cp, buf2, n); - cp += n; - /* Service Classes */ - if ((n = getstr_str(buf2, sizeof buf2, - &startp, endp)) < 0) { - return (-1); - } - if (n > 255) - return (-1); - ShrinkBuffer(n+1); - *cp++ = n; - memcpy(cp, buf2, n); - cp += n; - /* Pattern */ - if ((n = getstr_str(buf2, sizeof buf2, - &startp, endp)) < 0) { - return (-1); - } - if (n > 255) - return (-1); - ShrinkBuffer(n+1); - *cp++ = n; - memcpy(cp, buf2, n); - cp += n; - /* Replacement */ - if (!getword_str(buf2, sizeof buf2, &startp, endp)) - return (-1); - n = dn_comp(buf2, cp, buflen, NULL, NULL); - if (n < 0) - return (-1); - cp += n; - ShrinkBuffer(n); - break; - default: - return (-1); - } /*switch*/ - n = (u_int16_t)((cp - sp2) - INT16SZ); - PUTSHORT(n, sp2); - } /*for*/ - - hp->qdcount = htons(counts[0]); - hp->ancount = htons(counts[1]); - hp->nscount = htons(counts[2]); - hp->arcount = htons(counts[3]); - return (cp - buf); -} - -/*% - * Get a whitespace delimited word from a string (not file) - * into buf. modify the start pointer to point after the - * word in the string. - */ -static int -getword_str(char *buf, int size, u_char **startpp, u_char *endp) { - char *cp; - int c; - - for (cp = buf; *startpp <= endp; ) { - c = **startpp; - if (isspace(c) || c == '\0') { - if (cp != buf) /*%< trailing whitespace */ - break; - else { /*%< leading whitespace */ - (*startpp)++; - continue; - } - } - (*startpp)++; - if (cp >= buf+size-1) - break; - *cp++ = (u_char)c; - } - *cp = '\0'; - return (cp != buf); -} - -/*% - * get a white spae delimited string from memory. Process quoted strings - * and \\DDD escapes. Return length or -1 on error. Returned string may - * contain nulls. - */ -static char digits[] = "0123456789"; -static int -getstr_str(char *buf, int size, u_char **startpp, u_char *endp) { - char *cp; - int c, c1 = 0; - int inquote = 0; - int seen_quote = 0; - int escape = 0; - int dig = 0; - - for (cp = buf; *startpp <= endp; ) { - if ((c = **startpp) == '\0') - break; - /* leading white space */ - if ((cp == buf) && !seen_quote && isspace(c)) { - (*startpp)++; - continue; - } - - switch (c) { - case '\\': - if (!escape) { - escape = 1; - dig = 0; - c1 = 0; - (*startpp)++; - continue; - } - goto do_escape; - case '"': - if (!escape) { - inquote = !inquote; - seen_quote = 1; - (*startpp)++; - continue; - } - /* fall through */ - default: - do_escape: - if (escape) { - switch (c) { - case '0': - case '1': - case '2': - case '3': - case '4': - case '5': - case '6': - case '7': - case '8': - case '9': - c1 = c1 * 10 + - (strchr(digits, c) - digits); - - if (++dig == 3) { - c = c1 &0xff; - break; - } - (*startpp)++; - continue; - } - escape = 0; - } else if (!inquote && isspace(c)) - goto done; - if (cp >= buf+size-1) - goto done; - *cp++ = (u_char)c; - (*startpp)++; - } - } - done: - *cp = '\0'; - return ((cp == buf)? (seen_quote? 0: -1): (cp - buf)); -} - -/*% - * Get a whitespace delimited base 16 number from a string (not file) into buf - * update the start pointer to point after the number in the string. - */ -static int -gethexnum_str(u_char **startpp, u_char *endp) { - int c, n; - int seendigit = 0; - int m = 0; - - if (*startpp + 2 >= endp || strncasecmp((char *)*startpp, "0x", 2) != 0) - return getnum_str(startpp, endp); - (*startpp)+=2; - for (n = 0; *startpp <= endp; ) { - c = **startpp; - if (isspace(c) || c == '\0') { - if (seendigit) /*%< trailing whitespace */ - break; - else { /*%< leading whitespace */ - (*startpp)++; - continue; - } - } - if (c == ';') { - while ((*startpp <= endp) && - ((c = **startpp) != '\n')) - (*startpp)++; - if (seendigit) - break; - continue; - } - if (!isxdigit(c)) { - if (c == ')' && seendigit) { - (*startpp)--; - break; - } - return (-1); - } - (*startpp)++; - if (isdigit(c)) - n = n * 16 + (c - '0'); - else - n = n * 16 + (tolower(c) - 'a' + 10); - seendigit = 1; - } - return (n + m); -} - -/*% - * Get a whitespace delimited base 10 number from a string (not file) into buf - * update the start pointer to point after the number in the string. - */ -static int -getnum_str(u_char **startpp, u_char *endp) { - int c, n; - int seendigit = 0; - int m = 0; - - for (n = 0; *startpp <= endp; ) { - c = **startpp; - if (isspace(c) || c == '\0') { - if (seendigit) /*%< trailing whitespace */ - break; - else { /*%< leading whitespace */ - (*startpp)++; - continue; - } - } - if (c == ';') { - while ((*startpp <= endp) && - ((c = **startpp) != '\n')) - (*startpp)++; - if (seendigit) - break; - continue; - } - if (!isdigit(c)) { - if (c == ')' && seendigit) { - (*startpp)--; - break; - } - return (-1); - } - (*startpp)++; - n = n * 10 + (c - '0'); - seendigit = 1; - } - return (n + m); -} - -/*% - * Allocate a resource record buffer & save rr info. - */ -ns_updrec * -res_mkupdrec(int section, const char *dname, - u_int class, u_int type, u_long ttl) { - ns_updrec *rrecp = (ns_updrec *)calloc(1, sizeof(ns_updrec)); - - if (!rrecp || !(rrecp->r_dname = strdup(dname))) { - if (rrecp) - free((char *)rrecp); - return (NULL); - } - INIT_LINK(rrecp, r_link); - INIT_LINK(rrecp, r_glink); - rrecp->r_class = (ns_class)class; - rrecp->r_type = (ns_type)type; - rrecp->r_ttl = ttl; - rrecp->r_section = (ns_sect)section; - return (rrecp); -} - -/*% - * Free a resource record buffer created by res_mkupdrec. - */ -void -res_freeupdrec(ns_updrec *rrecp) { - /* Note: freeing r_dp is the caller's responsibility. */ - if (rrecp->r_dname != NULL) - free(rrecp->r_dname); - free(rrecp); -} - -struct valuelist { - struct valuelist * next; - struct valuelist * prev; - char * name; - char * proto; - int port; -}; -static struct valuelist *servicelist, *protolist; - -static void -res_buildservicelist() { - struct servent *sp; - struct valuelist *slp; - -#ifdef MAYBE_HESIOD - setservent(0); -#else - setservent(1); -#endif - while ((sp = getservent()) != NULL) { - slp = (struct valuelist *)malloc(sizeof(struct valuelist)); - if (!slp) - break; - slp->name = strdup(sp->s_name); - slp->proto = strdup(sp->s_proto); - if ((slp->name == NULL) || (slp->proto == NULL)) { - if (slp->name) free(slp->name); - if (slp->proto) free(slp->proto); - free(slp); - break; - } - slp->port = ntohs((u_int16_t)sp->s_port); /*%< host byt order */ - slp->next = servicelist; - slp->prev = NULL; - if (servicelist) - servicelist->prev = slp; - servicelist = slp; - } - endservent(); -} - -void -res_destroyservicelist() { - struct valuelist *slp, *slp_next; - - for (slp = servicelist; slp != NULL; slp = slp_next) { - slp_next = slp->next; - free(slp->name); - free(slp->proto); - free(slp); - } - servicelist = (struct valuelist *)0; -} - -void -res_buildprotolist(void) { - struct protoent *pp; - struct valuelist *slp; - -#ifdef MAYBE_HESIOD - setprotoent(0); -#else - setprotoent(1); -#endif - while ((pp = getprotoent()) != NULL) { - slp = (struct valuelist *)malloc(sizeof(struct valuelist)); - if (!slp) - break; - slp->name = strdup(pp->p_name); - if (slp->name == NULL) { - free(slp); - break; - } - slp->port = pp->p_proto; /*%< host byte order */ - slp->next = protolist; - slp->prev = NULL; - if (protolist) - protolist->prev = slp; - protolist = slp; - } - endprotoent(); -} - -void -res_destroyprotolist(void) { - struct valuelist *plp, *plp_next; - - for (plp = protolist; plp != NULL; plp = plp_next) { - plp_next = plp->next; - free(plp->name); - free(plp); - } - protolist = (struct valuelist *)0; -} - -static int -findservice(const char *s, struct valuelist **list) { - struct valuelist *lp = *list; - int n; - - for (; lp != NULL; lp = lp->next) - if (strcasecmp(lp->name, s) == 0) { - if (lp != *list) { - lp->prev->next = lp->next; - if (lp->next) - lp->next->prev = lp->prev; - (*list)->prev = lp; - lp->next = *list; - *list = lp; - } - return (lp->port); /*%< host byte order */ - } - if (sscanf(s, "%d", &n) != 1 || n <= 0) - n = -1; - return (n); -} - -/*% - * Convert service name or (ascii) number to int. - */ -int -res_servicenumber(const char *p) { - if (servicelist == (struct valuelist *)0) - res_buildservicelist(); - return (findservice(p, &servicelist)); -} - -/*% - * Convert protocol name or (ascii) number to int. - */ -int -res_protocolnumber(const char *p) { - if (protolist == (struct valuelist *)0) - res_buildprotolist(); - return (findservice(p, &protolist)); -} - -static struct servent * -cgetservbyport(u_int16_t port, const char *proto) { /*%< Host byte order. */ - struct valuelist **list = &servicelist; - struct valuelist *lp = *list; - static struct servent serv; - - port = ntohs(port); - for (; lp != NULL; lp = lp->next) { - if (port != (u_int16_t)lp->port) /*%< Host byte order. */ - continue; - if (strcasecmp(lp->proto, proto) == 0) { - if (lp != *list) { - lp->prev->next = lp->next; - if (lp->next) - lp->next->prev = lp->prev; - (*list)->prev = lp; - lp->next = *list; - *list = lp; - } - serv.s_name = lp->name; - serv.s_port = htons((u_int16_t)lp->port); - serv.s_proto = lp->proto; - return (&serv); - } - } - return (0); -} - -static struct protoent * -cgetprotobynumber(int proto) { /*%< Host byte order. */ - struct valuelist **list = &protolist; - struct valuelist *lp = *list; - static struct protoent prot; - - for (; lp != NULL; lp = lp->next) - if (lp->port == proto) { /*%< Host byte order. */ - if (lp != *list) { - lp->prev->next = lp->next; - if (lp->next) - lp->next->prev = lp->prev; - (*list)->prev = lp; - lp->next = *list; - *list = lp; - } - prot.p_name = lp->name; - prot.p_proto = lp->port; /*%< Host byte order. */ - return (&prot); - } - return (0); -} - -const char * -res_protocolname(int num) { - static char number[8]; - struct protoent *pp; - - if (protolist == (struct valuelist *)0) - res_buildprotolist(); - pp = cgetprotobynumber(num); - if (pp == 0) { - (void) sprintf(number, "%d", num); - return (number); - } - return (pp->p_name); -} - -const char * -res_servicename(u_int16_t port, const char *proto) { /*%< Host byte order. */ - static char number[8]; - struct servent *ss; - - if (servicelist == (struct valuelist *)0) - res_buildservicelist(); - ss = cgetservbyport(htons(port), proto); - if (ss == 0) { - (void) sprintf(number, "%d", port); - return (number); - } - return (ss->s_name); -} diff --git a/src/kits/network/libbind/resolv/res_mkupdate.h b/src/kits/network/libbind/resolv/res_mkupdate.h deleted file mode 100644 index 96c452d89e..0000000000 --- a/src/kits/network/libbind/resolv/res_mkupdate.h +++ /dev/null @@ -1,25 +0,0 @@ -/* - * Copyright (c) 2004 by Internet Systems Consortium, Inc. ("ISC") - * Copyright (c) 1998,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 _RES_MKUPDATE_H_ -#define _RES_MKUPDATE_H_ - -__BEGIN_DECLS -__END_DECLS - -#endif /* _RES_MKUPDATE_H_ */ -/*! \file */ diff --git a/src/kits/network/libbind/resolv/res_private.h b/src/kits/network/libbind/resolv/res_private.h index 4e98157ced..6f78bc0e7e 100644 --- a/src/kits/network/libbind/resolv/res_private.h +++ b/src/kits/network/libbind/resolv/res_private.h @@ -1,3 +1,5 @@ +/* $NetBSD: res_private.h,v 1.3 2009/10/24 17:24:01 christos Exp $ */ + #ifndef res_private_h #define res_private_h @@ -12,10 +14,12 @@ struct __res_state_ext { } sort_list[MAXRESOLVSORT]; char nsuffix[64]; char nsuffix2[64]; + struct timespec res_conf_time; + int kq, resfd; }; -extern int -res_ourserver_p(const res_state statp, const struct sockaddr *sa); +extern int res_ourserver_p(const res_state, const struct sockaddr *); +extern int __res_vinit(res_state, int); #endif diff --git a/src/kits/network/libbind/resolv/res_query.c b/src/kits/network/libbind/resolv/res_query.c index a8ec89ce8f..0590b937ab 100644 --- a/src/kits/network/libbind/resolv/res_query.c +++ b/src/kits/network/libbind/resolv/res_query.c @@ -1,3 +1,5 @@ +/* $NetBSD: res_query.c,v 1.14 2012/03/13 21:13:44 christos Exp $ */ + /* * Portions Copyright (C) 2004, 2005, 2008 Internet Systems Consortium, Inc. ("ISC") * Portions Copyright (C) 1996-2001, 2003 Internet Software Consortium. @@ -115,7 +117,7 @@ res_nquery(res_state statp, int anslen) /*%< size of answer buffer */ { u_char buf[MAXPACKET]; - HEADER *hp = (HEADER *) answer; + HEADER *hp = (HEADER *)(void *)answer; u_int oflags; u_char *rdata; int n; @@ -216,7 +218,7 @@ res_nsearch(res_state statp, int anslen) /*%< size of answer */ { const char *cp, * const *domain; - HEADER *hp = (HEADER *) answer; + HEADER *hp = (HEADER *)(void *)answer; char tmp[NS_MAXDNAME]; u_int dots; int trailing_dot, ret, saved_herrno; @@ -364,7 +366,7 @@ res_nquerydomain(res_state statp, { char nbuf[MAXDNAME]; const char *longname = nbuf; - int n, d; + size_t n, d; #ifdef DEBUG if (statp->options & RES_DEBUG) @@ -381,8 +383,7 @@ res_nquerydomain(res_state statp, RES_SET_H_ERRNO(statp, NO_RECOVERY); return (-1); } - n--; - if (n >= 0 && name[n] == '.') { + if (n && name[--n] == '.') { strncpy(nbuf, name, n); nbuf[n] = '\0'; } else @@ -407,12 +408,12 @@ res_hostalias(const res_state statp, const char *name, char *dst, size_t siz) { if (statp->options & RES_NOALIASES) return (NULL); + file = getenv("HOSTALIASES"); if (file == NULL || (fp = fopen(file, "r")) == NULL) return (NULL); - setbuf(fp, NULL); buf[sizeof(buf) - 1] = '\0'; - while (fgets(buf, sizeof(buf), fp)) { + while (fgets(buf, (int)sizeof(buf), fp)) { for (cp1 = buf; *cp1 && !isspace((unsigned char)*cp1); ++cp1) ; if (!*cp1) diff --git a/src/kits/network/libbind/resolv/res_send.c b/src/kits/network/libbind/resolv/res_send.c index e131396e29..5c591c0bb7 100644 --- a/src/kits/network/libbind/resolv/res_send.c +++ b/src/kits/network/libbind/resolv/res_send.c @@ -68,9 +68,14 @@ * SOFTWARE. */ +#include #if defined(LIBC_SCCS) && !defined(lint) +#ifdef notdef static const char sccsid[] = "@(#)res_send.c 8.1 (Berkeley) 6/4/93"; static const char rcsid[] = "$Id: res_send.c,v 1.22 2009/01/22 23:49:23 tbox Exp $"; +#else +__RCSID("$NetBSD: res_send.c,v 1.29 2013/02/16 13:45:45 para Exp $"); +#endif #endif /* LIBC_SCCS and not lint */ /*! \file @@ -79,23 +84,30 @@ static const char rcsid[] = "$Id: res_send.c,v 1.22 2009/01/22 23:49:23 tbox Exp */ #include "port_before.h" +#ifndef USE_KQUEUE #include "fd_setsize.h" +#endif /* USE_KQUEUE */ #include #include #include #include #include +#ifdef USE_KQUEUE +#include +#endif /* USE_KQUEUE */ #include #include #include +#include #include #include #include #include #include +#include #include #include #include @@ -104,6 +116,22 @@ static const char rcsid[] = "$Id: res_send.c,v 1.22 2009/01/22 23:49:23 tbox Exp #include "port_after.h" +#if 0 +#ifdef __weak_alias +__weak_alias(res_ourserver_p,__res_ourserver_p) +__weak_alias(res_nameinquery,__res_nameinquery) +__weak_alias(res_queriesmatch,__res_queriesmatch) +__weak_alias(res_nsend,__res_nsend) +#endif +#endif + +#ifndef SOCK_NOSIGPIPE +#define SOCK_NOSIGPIPE 0 +#endif +#ifndef SOCK_NOCLOEXEC +#define SOCK_NOCLOEXEC 0 +#endif + #ifdef USE_POLL #ifdef HAVE_STROPTS_H #include @@ -112,34 +140,38 @@ static const char rcsid[] = "$Id: res_send.c,v 1.22 2009/01/22 23:49:23 tbox Exp #endif /* USE_POLL */ /* Options. Leave them on. */ +#ifndef DEBUG //#define DEBUG +#endif #include "res_debug.h" #include "res_private.h" #define EXT(res) ((res)->_u._ext) -#ifndef USE_POLL +#if !defined(USE_POLL) && !defined(USE_KQUEUE) static const int highestFD = FD_SETSIZE - 1; -#else -static int highestFD = 0; #endif /* Forward. */ -static int get_salen __P((const struct sockaddr *)); -static struct sockaddr * get_nsaddr __P((res_state, size_t)); -static int send_vc(res_state, const u_char *, int, +static socklen_t get_salen(const struct sockaddr *); +static struct sockaddr * get_nsaddr(res_state, size_t); +static int send_vc(res_state, const void *, size_t, u_char *, int, int *, int); -static int send_dg(res_state, const u_char *, int, +static int send_dg(res_state, +#ifdef USE_KQUEUE + int kq, +#endif + const void *, size_t, u_char *, int, int *, int, int, int *, int *); #ifdef DEBUG static void Aerror(const res_state, FILE *, const char *, int, - const struct sockaddr *, int); + const struct sockaddr *, socklen_t); static void Perror(const res_state, FILE *, const char *, int); #endif // DEBUG static int sock_eq(struct sockaddr *, struct sockaddr *); -#if defined(NEED_PSELECT) && !defined(USE_POLL) +#if defined(NEED_PSELECT) && !defined(USE_POLL) && !defined(USE_KQUEUE) static int pselect(int, void *, void *, void *, struct timespec *, const sigset_t *); @@ -168,9 +200,9 @@ res_ourserver_p(const res_state statp, const struct sockaddr *sa) { switch (sa->sa_family) { case AF_INET: - inp = (const struct sockaddr_in *)sa; + inp = (const struct sockaddr_in *)(const void *)sa; for (ns = 0; ns < statp->nscount; ns++) { - srv = (struct sockaddr_in *)get_nsaddr(statp, ns); + srv = (struct sockaddr_in *)(void *)get_nsaddr(statp, (size_t)ns); if (srv->sin_family == inp->sin_family && srv->sin_port == inp->sin_port && (srv->sin_addr.s_addr == INADDR_ANY || @@ -181,9 +213,9 @@ res_ourserver_p(const res_state statp, const struct sockaddr *sa) { case AF_INET6: if (EXT(statp).ext == NULL) break; - in6p = (const struct sockaddr_in6 *)sa; + in6p = (const struct sockaddr_in6 *)(const void *)sa; for (ns = 0; ns < statp->nscount; ns++) { - srv6 = (struct sockaddr_in6 *)get_nsaddr(statp, ns); + srv6 = (struct sockaddr_in6 *)(void *)get_nsaddr(statp, (size_t)ns); if (srv6->sin6_family == in6p->sin6_family && srv6->sin6_port == in6p->sin6_port && #ifdef HAVE_SIN6_SCOPE_ID @@ -220,13 +252,13 @@ res_nameinquery(const char *name, int type, int class, const u_char *buf, const u_char *eom) { const u_char *cp = buf + HFIXEDSZ; - int qdcount = ntohs(((const HEADER*)buf)->qdcount); + int qdcount = ntohs(((const HEADER*)(const void *)buf)->qdcount); while (qdcount-- > 0) { char tname[MAXDNAME+1]; int n, ttype, tclass; - n = dn_expand(buf, eom, cp, tname, sizeof tname); + n = dn_expand(buf, eom, cp, tname, (int)sizeof tname); if (n < 0) return (-1); cp += n; @@ -258,7 +290,7 @@ res_queriesmatch(const u_char *buf1, const u_char *eom1, const u_char *buf2, const u_char *eom2) { const u_char *cp = buf1 + HFIXEDSZ; - int qdcount = ntohs(((const HEADER*)buf1)->qdcount); + int qdcount = ntohs(((const HEADER*)(const void *)buf1)->qdcount); if (buf1 + HFIXEDSZ > eom1 || buf2 + HFIXEDSZ > eom2) return (-1); @@ -267,17 +299,17 @@ res_queriesmatch(const u_char *buf1, const u_char *eom1, * Only header section present in replies to * dynamic update packets. */ - if ((((const HEADER *)buf1)->opcode == ns_o_update) && - (((const HEADER *)buf2)->opcode == ns_o_update)) + if ((((const HEADER *)(const void *)buf1)->opcode == ns_o_update) && + (((const HEADER *)(const void *)buf2)->opcode == ns_o_update)) return (1); - if (qdcount != ntohs(((const HEADER*)buf2)->qdcount)) + if (qdcount != ntohs(((const HEADER*)(const void *)buf2)->qdcount)) return (0); while (qdcount-- > 0) { char tname[MAXDNAME+1]; int n, ttype, tclass; - n = dn_expand(buf1, eom1, cp, tname, sizeof tname); + n = dn_expand(buf1, eom1, cp, tname, (int)sizeof tname); if (n < 0) return (-1); cp += n; @@ -296,14 +328,13 @@ res_nsend(res_state statp, const u_char *buf, int buflen, u_char *ans, int anssiz) { int gotsomewhere, terrno, tries, v_circuit, resplen, ns, n; +#ifdef USE_KQUEUE + int kq; +#endif #ifdef DEBUG char abuf[NI_MAXHOST]; #endif -#ifdef USE_POLL - highestFD = sysconf(_SC_OPEN_MAX) - 1; -#endif - /* No name servers or res_init() failure */ if (statp->nscount == 0 || EXT(statp).ext == NULL) { errno = ESRCH; @@ -319,6 +350,12 @@ res_nsend(res_state statp, gotsomewhere = 0; terrno = ETIMEDOUT; +#ifdef USE_KQUEUE + if ((kq = kqueue1(O_CLOEXEC)) == -1) { + return (-1); + } +#endif + /* * If the ns_addr_list in the resolver context has changed, then * invalidate our cached copy and the associated timing data. @@ -333,8 +370,8 @@ res_nsend(res_state statp, else for (ns = 0; ns < statp->nscount; ns++) { if (statp->nsaddr_list[ns].sin_family && - !sock_eq((struct sockaddr *)&statp->nsaddr_list[ns], - (struct sockaddr *)&EXT(statp).ext->nsaddrs[ns])) { + !sock_eq((struct sockaddr *)(void *)&statp->nsaddr_list[ns], + (struct sockaddr *)(void *)&EXT(statp).ext->nsaddrs[ns])) { needclose++; break; } @@ -343,12 +380,12 @@ res_nsend(res_state statp, continue; peerlen = sizeof(peer); if (getpeername(EXT(statp).nssocks[ns], - (struct sockaddr *)&peer, &peerlen) < 0) { + (struct sockaddr *)(void *)&peer, &peerlen) < 0) { needclose++; break; } - if (!sock_eq((struct sockaddr *)&peer, - get_nsaddr(statp, ns))) { + if (!sock_eq((struct sockaddr *)(void *)&peer, + get_nsaddr(statp, (size_t)ns))) { needclose++; break; } @@ -412,8 +449,8 @@ res_nsend(res_state statp, for (tries = 0; tries < statp->retry; tries++) { for (ns = 0; ns < statp->nscount; ns++) { struct sockaddr *nsap; - int nsaplen; - nsap = get_nsaddr(statp, ns); + socklen_t nsaplen; + nsap = get_nsaddr(statp, (size_t)ns); nsaplen = get_salen(nsap); statp->_flags &= ~RES_F_LASTMASK; statp->_flags |= (ns << RES_F_LASTSHIFT); @@ -434,6 +471,9 @@ res_nsend(res_state statp, res_nclose(statp); goto next_ns; case res_done: +#ifdef USE_KQUEUE + close(kq); +#endif return (resplen); case res_modified: /* give the hook another try */ @@ -449,8 +489,8 @@ res_nsend(res_state statp, } Dprint(((statp->options & RES_DEBUG) && - getnameinfo(nsap, nsaplen, abuf, sizeof(abuf), - NULL, 0, niflags) == 0), + getnameinfo(nsap, nsaplen, abuf, + (socklen_t)sizeof(abuf), NULL, 0, niflags) == 0), (stdout, ";; Querying server (# %d) address = %s\n", ns + 1, abuf)); @@ -458,7 +498,7 @@ res_nsend(res_state statp, if (v_circuit) { /* Use VC; at most one attempt per server. */ tries = statp->retry; - n = send_vc(statp, buf, buflen, ans, anssiz, &terrno, + n = send_vc(statp, buf, (size_t)buflen, ans, anssiz, &terrno, ns); if (n < 0) goto fail; @@ -467,8 +507,12 @@ res_nsend(res_state statp, resplen = n; } else { /* Use datagrams. */ - n = send_dg(statp, buf, buflen, ans, anssiz, &terrno, - ns, tries, &v_circuit, &gotsomewhere); + n = send_dg(statp, +#ifdef USE_KQUEUE + kq, +#endif + buf, (size_t)buflen, ans, anssiz, &terrno, + ns, tries, &v_circuit, &gotsomewhere); if (n < 0) goto fail; if (n == 0) @@ -526,11 +570,17 @@ res_nsend(res_state statp, } while (!done); } +#ifdef USE_KQUEUE + close(kq); +#endif return (resplen); next_ns: ; } /*foreach ns*/ } /*foreach retry*/ res_nclose(statp); +#ifdef USE_KQUEUE + close(kq); +#endif if (!v_circuit) { if (!gotsomewhere) errno = ECONNREFUSED; /*%< no nameservers found */ @@ -541,37 +591,37 @@ res_nsend(res_state statp, return (-1); fail: res_nclose(statp); +#ifdef USE_KQUEUE + close(kq); +#endif return (-1); } /* Private */ -static int -get_salen(sa) - const struct sockaddr *sa; +static socklen_t +get_salen(const struct sockaddr *sa) { #ifdef HAVE_SA_LEN /* There are people do not set sa_len. Be forgiving to them. */ if (sa->sa_len) - return (sa->sa_len); + return (socklen_t)sa->sa_len; #endif if (sa->sa_family == AF_INET) - return (sizeof(struct sockaddr_in)); + return (socklen_t)sizeof(struct sockaddr_in); else if (sa->sa_family == AF_INET6) - return (sizeof(struct sockaddr_in6)); + return (socklen_t)sizeof(struct sockaddr_in6); else - return (0); /*%< unknown, die on connect */ + return 0; /*%< unknown, die on connect */ } /*% * pick appropriate nsaddr_list for use. see res_init() for initialization. */ static struct sockaddr * -get_nsaddr(statp, n) - res_state statp; - size_t n; +get_nsaddr(res_state statp, size_t n) { if (!statp->nsaddr_list[n].sin_family && EXT(statp).ext) { @@ -593,23 +643,24 @@ get_nsaddr(statp, n) static int send_vc(res_state statp, - const u_char *buf, int buflen, u_char *ans, int anssiz, + const void *buf, size_t buflen, u_char *ans, int anssiz, int *terrno, int ns) { - const HEADER *hp = (const HEADER *) buf; - HEADER *anhp = (HEADER *) ans; + const HEADER *hp = (const HEADER *)(const void *)buf; + HEADER *anhp = (HEADER *)(void *)ans; struct sockaddr *nsap; - int nsaplen; - int truncating, connreset, resplen, n; + socklen_t nsaplen; + int truncating, connreset, resplen; + ssize_t n; struct iovec iov[2]; u_short len; u_char *cp; void *tmp; -#ifdef SO_NOSIGPIPE +#if defined(SO_NOSIGPIPE) && SOCK_NOSIGPIPE == 0 int on = 1; #endif - nsap = get_nsaddr(statp, ns); + nsap = get_nsaddr(statp, (size_t)ns); nsaplen = get_salen(nsap); connreset = 0; @@ -622,8 +673,8 @@ send_vc(res_state statp, ISC_SOCKLEN_T size = sizeof peer; if (getpeername(statp->_vcsock, - (struct sockaddr *)&peer, &size) < 0 || - !sock_eq((struct sockaddr *)&peer, nsap)) { + (struct sockaddr *)(void *)&peer, &size) < 0 || + !sock_eq((struct sockaddr *)(void *)&peer, nsap)) { res_nclose(statp); statp->_flags &= ~RES_F_VC; } @@ -633,11 +684,21 @@ send_vc(res_state statp, if (statp->_vcsock >= 0) res_nclose(statp); - statp->_vcsock = socket(nsap->sa_family, SOCK_STREAM, 0); +#ifndef SOCK_CLOEXEC +#define SOCK_CLOEXEC 0 +#endif + + statp->_vcsock = socket(nsap->sa_family, SOCK_STREAM + | SOCK_NOSIGPIPE | SOCK_CLOEXEC, 0); +#if SOCK_CLOEXEC == 0 + fcntl(statp->_vcsock, F_SETFD, FD_CLOEXEC); +#endif +#if !defined(USE_POLL) && !defined(USE_KQUEUE) if (statp->_vcsock > highestFD) { res_nclose(statp); errno = ENOTSOCK; } +#endif if (statp->_vcsock < 0) { switch (errno) { case EPROTONOSUPPORT: @@ -653,7 +714,7 @@ send_vc(res_state statp, return (-1); } } -#ifdef SO_NOSIGPIPE +#if defined(SO_NOSIGPIPE) && SOCK_NOSIGPIPE == 0 /* * Disable generation of SIGPIPE when writing to a closed * socket. Write should return -1 and set errno to EPIPE @@ -662,7 +723,7 @@ send_vc(res_state statp, * Push on even if setsockopt(SO_NOSIGPIPE) fails. */ (void)setsockopt(statp->_vcsock, SOL_SOCKET, SO_NOSIGPIPE, &on, - sizeof(on)); + (socklen_t)sizeof(on)); #endif errno = 0; if (connect(statp->_vcsock, nsap, nsaplen) < 0) { @@ -678,11 +739,11 @@ send_vc(res_state statp, /* * Send length & message */ - ns_put16((u_short)buflen, (u_char*)&len); + ns_put16((u_short)buflen, (u_char*)(void *)&len); iov[0] = evConsIovec(&len, INT16SZ); DE_CONST(buf, tmp); - iov[1] = evConsIovec(tmp, buflen); - if (writev(statp->_vcsock, iov, 2) != (INT16SZ + buflen)) { + iov[1] = evConsIovec(tmp, (size_t)buflen); + if (writev(statp->_vcsock, iov, 2) != (ssize_t)(INT16SZ + buflen)) { *terrno = errno; Perror(statp, stderr, "write failed", errno); res_nclose(statp); @@ -694,9 +755,9 @@ send_vc(res_state statp, read_len: cp = ans; len = INT16SZ; - while ((n = read(statp->_vcsock, (char *)cp, (int)len)) > 0) { + while ((n = read(statp->_vcsock, (char *)cp, (size_t)len)) > 0) { cp += n; - if ((len -= n) == 0) + if ((len -= (u_short)n) == 0) break; } if (n <= 0) { @@ -740,9 +801,9 @@ send_vc(res_state statp, return (0); } cp = ans; - while (len != 0 && (n = read(statp->_vcsock, (char *)cp, (int)len)) > 0){ + while (len != 0 && (n = read(statp->_vcsock, (char *)cp, (size_t)len)) > 0){ cp += n; - len -= n; + len -= (u_short)n; } if (n <= 0) { *terrno = errno; @@ -762,7 +823,7 @@ send_vc(res_state statp, n = read(statp->_vcsock, junk, (len > sizeof junk) ? sizeof junk : len); if (n > 0) - len -= n; + len -= (u_short)n; else break; } @@ -790,33 +851,48 @@ send_vc(res_state statp, } static int -send_dg(res_state statp, const u_char *buf, int buflen, u_char *ans, +send_dg(res_state statp, +#ifdef USE_KQUEUE + int kq, +#endif + const void *buf, size_t buflen, u_char *ans, int anssiz, int *terrno, int ns, int tries, int *v_circuit, int *gotsomewhere) { - const HEADER *hp = (const HEADER *) buf; - HEADER *anhp = (HEADER *) ans; + const HEADER *hp = (const HEADER *)(const void *)buf; + HEADER *anhp = (HEADER *)(void *)ans; const struct sockaddr *nsap; - int nsaplen; + socklen_t nsaplen; struct timespec now, timeout, finish; struct sockaddr_storage from; ISC_SOCKLEN_T fromlen; - int resplen, seconds, n, s; + ssize_t resplen; + int seconds, n, s; +#ifdef USE_KQUEUE + struct kevent kv; +#else #ifdef USE_POLL int polltimeout; struct pollfd pollfd; #else fd_set dsmask; +#endif #endif - nsap = get_nsaddr(statp, ns); + nsap = get_nsaddr(statp, (size_t)ns); nsaplen = get_salen(nsap); if (EXT(statp).nssocks[ns] == -1) { - EXT(statp).nssocks[ns] = socket(nsap->sa_family, SOCK_DGRAM, 0); + EXT(statp).nssocks[ns] = socket(nsap->sa_family, SOCK_DGRAM + | SOCK_CLOEXEC, 0); +#if SOCK_CLOEXEC == 0 + fcntl(EXT(statp).nssocks[ns], F_SETFD, FD_CLOEXEC); +#endif +#if !defined(USE_POLL) && !defined(USE_KQUEUE) if (EXT(statp).nssocks[ns] > highestFD) { res_nclose(statp); errno = ENOTSOCK; } +#endif if (EXT(statp).nssocks[ns] < 0) { switch (errno) { case EPROTONOSUPPORT: @@ -843,8 +919,16 @@ send_dg(res_state statp, const u_char *buf, int buflen, u_char *ans, * socket operation, and select returns if the * error message is received. We can thus detect * the absence of a nameserver without timing out. - */ - if (connect(EXT(statp).nssocks[ns], nsap, nsaplen) < 0) { + * + * When the option "insecure1" is specified, we'd + * rather expect to see responses from an "unknown" + * address. In order to let the kernel accept such + * responses, do not connect the socket here. + * XXX: or do we need an explicit option to disable + * connecting? + */ + if (!(statp->options & RES_INSECURE1) && + connect(EXT(statp).nssocks[ns], nsap, nsaplen) < 0) { Aerror(statp, stderr, "connect(dg)", errno, nsap, nsaplen); res_nclose(statp); @@ -856,13 +940,20 @@ send_dg(res_state statp, const u_char *buf, int buflen, u_char *ans, } s = EXT(statp).nssocks[ns]; #ifndef CANNOT_CONNECT_DGRAM - if (send(s, (const char*)buf, buflen, 0) != buflen) { + if (statp->options & RES_INSECURE1) { + if (sendto(s, buf, buflen, 0, nsap, nsaplen) != + (ssize_t)buflen) { + Aerror(statp, stderr, "sendto", errno, nsap, nsaplen); + res_nclose(statp); + return (0); + } + } else if (send(s, buf, buflen, 0) != (ssize_t)buflen) { Perror(statp, stderr, "send", errno); res_nclose(statp); return (0); } #else /* !CANNOT_CONNECT_DGRAM */ - if (sendto(s, (const char*)buf, buflen, 0, nsap, nsaplen) != buflen) + if (sendto(s, buf, buflen, 0, nsap, nsaplen) != (ssize_t)buflen) { Aerror(statp, stderr, "sendto", errno, nsap, nsaplen); res_nclose(statp); @@ -879,26 +970,31 @@ send_dg(res_state statp, const u_char *buf, int buflen, u_char *ans, if (seconds <= 0) seconds = 1; now = evNowTime(); - timeout = evConsTime(seconds, 0); + timeout = evConsTime((time_t)seconds, 0L); finish = evAddTime(now, timeout); goto nonow; wait: now = evNowTime(); nonow: #ifndef USE_POLL - FD_ZERO(&dsmask); - FD_SET(s, &dsmask); if (evCmpTime(finish, now) > 0) timeout = evSubTime(finish, now); else - timeout = evConsTime(0, 0); + timeout = evConsTime(0L, 0L); +#ifdef USE_KQUEUE + EV_SET(&kv, s, EVFILT_READ, EV_ADD | EV_ONESHOT, 0, 0, 0); + n = kevent(kq, &kv, 1, &kv, 1, &timeout); +#else + FD_ZERO(&dsmask); + FD_SET(s, &dsmask); n = pselect(s + 1, &dsmask, NULL, NULL, &timeout, NULL); +#endif #else timeout = evSubTime(finish, now); if (timeout.tv_sec < 0) - timeout = evConsTime(0, 0); - polltimeout = 1000*timeout.tv_sec + - timeout.tv_nsec/1000000; + timeout = evConsTime((time_t)0, 0L); + polltimeout = 1000*(int)timeout.tv_sec + + (int)timeout.tv_nsec/1000000; pollfd.fd = s; pollfd.events = POLLRDNORM; n = poll(&pollfd, 1, polltimeout); @@ -910,20 +1006,29 @@ send_dg(res_state statp, const u_char *buf, int buflen, u_char *ans, return (0); } if (n < 0) { +#if DEBUG +#if defined(USE_POLL) + static const char *fun = "poll"; +#elif defined(USE_KQUEUE) + static const char *fun = "kevent"; +#else + static const char *fun = "select"; +#endif +#endif if (errno == EINTR) goto wait; -#ifndef USE_POLL - Perror(statp, stderr, "select", errno); -#else - Perror(statp, stderr, "poll", errno); -#endif /* USE_POLL */ + Perror(statp, stderr, fun, errno); res_nclose(statp); return (0); } +#ifdef USE_KQUEUE + if ((int)kv.ident != s) + goto wait; +#endif errno = 0; fromlen = sizeof(from); - resplen = recvfrom(s, (char*)ans, anssiz,0, - (struct sockaddr *)&from, &fromlen); + resplen = recvfrom(s, (char*)ans, (size_t)anssiz,0, + (struct sockaddr *)(void *)&from, &fromlen); if (resplen <= 0) { Perror(statp, stderr, "recvfrom", errno); res_nclose(statp); @@ -935,7 +1040,7 @@ send_dg(res_state statp, const u_char *buf, int buflen, u_char *ans, * Undersized message. */ Dprint(statp->options & RES_DEBUG, - (stdout, ";; undersized: %d\n", + (stdout, ";; undersized: %zd\n", resplen)); *terrno = EMSGSIZE; res_nclose(statp); @@ -954,7 +1059,7 @@ send_dg(res_state statp, const u_char *buf, int buflen, u_char *ans, goto wait; } if (!(statp->options & RES_INSECURE1) && - !res_ourserver_p(statp, (struct sockaddr *)&from)) { + !res_ourserver_p(statp, (struct sockaddr *)(void *)&from)) { /* * response from wrong server? ignore it. * XXX - potential security hazard could @@ -983,7 +1088,7 @@ send_dg(res_state statp, const u_char *buf, int buflen, u_char *ans, } #endif if (!(statp->options & RES_INSECURE2) && - !res_queriesmatch(buf, buf + buflen, + !res_queriesmatch(buf, (const u_char *)buf + buflen, ans, ans + anssiz)) { /* * response contains wrong query? ignore it. @@ -993,7 +1098,7 @@ send_dg(res_state statp, const u_char *buf, int buflen, u_char *ans, DprintQ((statp->options & RES_DEBUG) || (statp->pfcode & RES_PRF_REPLY), (stdout, ";; wrong query name:\n"), - ans, (resplen > anssiz) ? anssiz : resplen); + ans, (int)(resplen > anssiz) ? anssiz : resplen); goto wait; } if (anhp->rcode == SERVFAIL || @@ -1001,7 +1106,7 @@ send_dg(res_state statp, const u_char *buf, int buflen, u_char *ans, anhp->rcode == REFUSED) { DprintQ(statp->options & RES_DEBUG, (stdout, "server rejected query:\n"), - ans, (resplen > anssiz) ? anssiz : resplen); + ans, (int)(resplen > anssiz) ? anssiz : resplen); res_nclose(statp); /* don't retry if called from dig */ if (!statp->pfcode) @@ -1022,14 +1127,15 @@ send_dg(res_state statp, const u_char *buf, int buflen, u_char *ans, * All is well, or the error is fatal. Signal that the * next nameserver ought not be tried. */ - return (resplen); + assert(INT_MIN <= resplen && resplen <= INT_MAX); + return (int)resplen; } #ifdef DEBUG static void Aerror(const res_state statp, FILE *file, const char *string, int error, - const struct sockaddr *address, int alen) + const struct sockaddr *address, socklen_t alen) { int save = errno; char hbuf[NI_MAXHOST]; @@ -1038,8 +1144,9 @@ Aerror(const res_state statp, FILE *file, const char *string, int error, alen = alen; if ((statp->options & RES_DEBUG) != 0U) { - if (getnameinfo(address, alen, hbuf, sizeof(hbuf), - sbuf, sizeof(sbuf), niflags)) { + if (getnameinfo(address, alen, hbuf, + (socklen_t)sizeof(hbuf), sbuf, (socklen_t)sizeof(sbuf), + niflags)) { strncpy(hbuf, "?", sizeof(hbuf) - 1); hbuf[sizeof(hbuf) - 1] = '\0'; strncpy(sbuf, "?", sizeof(sbuf) - 1); @@ -1072,13 +1179,13 @@ sock_eq(struct sockaddr *a, struct sockaddr *b) { return 0; switch (a->sa_family) { case AF_INET: - a4 = (struct sockaddr_in *)a; - b4 = (struct sockaddr_in *)b; + a4 = (struct sockaddr_in *)(void *)a; + b4 = (struct sockaddr_in *)(void *)b; return a4->sin_port == b4->sin_port && a4->sin_addr.s_addr == b4->sin_addr.s_addr; case AF_INET6: - a6 = (struct sockaddr_in6 *)a; - b6 = (struct sockaddr_in6 *)b; + a6 = (struct sockaddr_in6 *)(void *)a; + b6 = (struct sockaddr_in6 *)(void *)b; return a6->sin6_port == b6->sin6_port && #ifdef HAVE_SIN6_SCOPE_ID a6->sin6_scope_id == b6->sin6_scope_id && @@ -1089,7 +1196,7 @@ sock_eq(struct sockaddr *a, struct sockaddr *b) { } } -#if defined(NEED_PSELECT) && !defined(USE_POLL) +#if defined(NEED_PSELECT) && !defined(USE_POLL) && !defined(USE_KQUEUE) /* XXX needs to move to the porting library. */ static int pselect(int nfds, void *rfds, void *wfds, void *efds, diff --git a/src/kits/network/libbind/resolv/res_sendsigned.c b/src/kits/network/libbind/resolv/res_sendsigned.c deleted file mode 100644 index 712a4d5fb4..0000000000 --- a/src/kits/network/libbind/resolv/res_sendsigned.c +++ /dev/null @@ -1,170 +0,0 @@ -#include "port_before.h" -#include "fd_setsize.h" - -#include -#include - -#include -#include -#include - -#include - -#include -#include -#include -#include -#include -#include -#include - -#include "port_after.h" - -//#define DEBUG -#include "res_debug.h" - - -/*% res_nsendsigned */ -int -res_nsendsigned(res_state statp, const u_char *msg, int msglen, - ns_tsig_key *key, u_char *answer, int anslen) -{ - res_state nstatp; - DST_KEY *dstkey; - int usingTCP = 0; - u_char *newmsg; - int newmsglen, bufsize, siglen; - u_char sig[64]; - HEADER *hp; - time_t tsig_time; - int ret; - int len; - - dst_init(); - - nstatp = (res_state) malloc(sizeof(*statp)); - if (nstatp == NULL) { - errno = ENOMEM; - return (-1); - } - memcpy(nstatp, statp, sizeof(*statp)); - - bufsize = msglen + 1024; - newmsg = (u_char *) malloc(bufsize); - if (newmsg == NULL) { - free(nstatp); - errno = ENOMEM; - return (-1); - } - memcpy(newmsg, msg, msglen); - newmsglen = msglen; - - if (ns_samename(key->alg, NS_TSIG_ALG_HMAC_MD5) != 1) - dstkey = NULL; - else - dstkey = dst_buffer_to_key(key->name, KEY_HMAC_MD5, - NS_KEY_TYPE_AUTH_ONLY, - NS_KEY_PROT_ANY, - key->data, key->len); - if (dstkey == NULL) { - errno = EINVAL; - free(nstatp); - free(newmsg); - return (-1); - } - - nstatp->nscount = 1; - siglen = sizeof(sig); - ret = ns_sign(newmsg, &newmsglen, bufsize, NOERROR, dstkey, NULL, 0, - sig, &siglen, 0); - if (ret < 0) { - free (nstatp); - free (newmsg); - dst_free_key(dstkey); - if (ret == NS_TSIG_ERROR_NO_SPACE) - errno = EMSGSIZE; - else if (ret == -1) - errno = EINVAL; - return (ret); - } - - if (newmsglen > PACKETSZ || nstatp->options & RES_USEVC) - usingTCP = 1; - if (usingTCP == 0) - nstatp->options |= RES_IGNTC; - else - nstatp->options |= RES_USEVC; - /* - * Stop res_send printing the answer. - */ - nstatp->options &= ~RES_DEBUG; - nstatp->pfcode &= ~RES_PRF_REPLY; - -retry: - - len = res_nsend(nstatp, newmsg, newmsglen, answer, anslen); - if (len < 0) { - free (nstatp); - free (newmsg); - dst_free_key(dstkey); - return (len); - } - - ret = ns_verify(answer, &len, dstkey, sig, siglen, - NULL, NULL, &tsig_time, nstatp->options & RES_KEEPTSIG); - if (ret != 0) { - Dprint((statp->options & RES_DEBUG) || - ((statp->pfcode & RES_PRF_REPLY) && - (statp->pfcode & RES_PRF_HEAD1)), - (stdout, ";; got answer:\n")); - - DprintQ((statp->options & RES_DEBUG) || - (statp->pfcode & RES_PRF_REPLY), - (stdout, "%s", ""), - answer, (anslen > len) ? len : anslen); - - if (ret > 0) { - Dprint(statp->pfcode & RES_PRF_REPLY, - (stdout, ";; server rejected TSIG (%s)\n", - p_rcode(ret))); - } else { - Dprint(statp->pfcode & RES_PRF_REPLY, - (stdout, ";; TSIG invalid (%s)\n", - p_rcode(-ret))); - } - - free (nstatp); - free (newmsg); - dst_free_key(dstkey); - if (ret == -1) - errno = EINVAL; - else - errno = ENOTTY; - return (-1); - } - - hp = (HEADER *) answer; - if (hp->tc && !usingTCP && (statp->options & RES_IGNTC) == 0U) { - nstatp->options &= ~RES_IGNTC; - usingTCP = 1; - goto retry; - } - Dprint((statp->options & RES_DEBUG) || - ((statp->pfcode & RES_PRF_REPLY) && - (statp->pfcode & RES_PRF_HEAD1)), - (stdout, ";; got answer:\n")); - - DprintQ((statp->options & RES_DEBUG) || - (statp->pfcode & RES_PRF_REPLY), - (stdout, "%s", ""), - answer, (anslen > len) ? len : anslen); - - Dprint(statp->pfcode & RES_PRF_REPLY, (stdout, ";; TSIG ok\n")); - - free (nstatp); - free (newmsg); - dst_free_key(dstkey); - return (len); -} - -/*! \file */ diff --git a/src/kits/network/libbind/resolv/res_state.c b/src/kits/network/libbind/resolv/res_state.c new file mode 100644 index 0000000000..2f4cfe8367 --- /dev/null +++ b/src/kits/network/libbind/resolv/res_state.c @@ -0,0 +1,75 @@ +/* $NetBSD: res_state.c,v 1.8 2009/01/11 02:46:29 christos Exp $ */ + +/*- + * Copyright (c) 2004 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Christos Zoulas. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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. + */ + +#include +#if defined(LIBC_SCCS) && !defined(lint) +__RCSID("$NetBSD: res_state.c,v 1.8 2009/01/11 02:46:29 christos Exp $"); +#endif + +#include +#include +#include +#include +#include + +struct __res_state _nres +# if defined(__BIND_RES_TEXT) + = { .retrans = RES_TIMEOUT, } /*%< Motorola, et al. */ +# endif + ; + +res_state __res_get_state_nothread(void); +void __res_put_state_nothread(res_state); + +#define __weak_alias(from, to) B_DEFINE_WEAK_ALIAS(to, from); + +#ifdef __weak_alias +__weak_alias(__res_get_state, __res_get_state_nothread) +__weak_alias(__res_put_state, __res_put_state_nothread) +/* Source compatibility; only for single threaded programs */ +__weak_alias(__res_state, __res_get_state_nothread) +#endif + +res_state +__res_get_state_nothread(void) +{ + if ((_nres.options & RES_INIT) == 0 && res_ninit(&_nres) == -1) { + h_errno = NETDB_INTERNAL; + return NULL; + } + return &_nres; +} + +void +/*ARGSUSED*/ +__res_put_state_nothread(res_state res) +{ +} diff --git a/src/kits/network/libbind/resolv/res_update.c b/src/kits/network/libbind/resolv/res_update.c deleted file mode 100644 index 5b2ecb1a35..0000000000 --- a/src/kits/network/libbind/resolv/res_update.c +++ /dev/null @@ -1,213 +0,0 @@ -#if !defined(lint) && !defined(SABER) -static const char rcsid[] = "$Id: res_update.c,v 1.13 2005/04/27 04:56:43 sra Exp $"; -#endif /* not lint */ - -/* - * 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. - */ - -/*! \file - * \brief - * Based on the Dynamic DNS reference implementation by Viraj Bais - * <viraj_bais@ccm.fm.intel.com> - */ - -#include "port_before.h" - -#include -#include -#include - -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -#include "port_after.h" -#include "res_private.h" - -/*% - * Separate a linked list of records into groups so that all records - * in a group will belong to a single zone on the nameserver. - * Create a dynamic update packet for each zone and send it to the - * nameservers for that zone, and await answer. - * Abort if error occurs in updating any zone. - * Return the number of zones updated on success, < 0 on error. - * - * On error, caller must deal with the unsynchronized zones - * eg. an A record might have been successfully added to the forward - * zone but the corresponding PTR record would be missing if error - * was encountered while updating the reverse zone. - */ - -struct zonegrp { - char z_origin[MAXDNAME]; - ns_class z_class; - union res_sockaddr_union z_nsaddrs[MAXNS]; - int z_nscount; - int z_flags; - LIST(ns_updrec) z_rrlist; - LINK(struct zonegrp) z_link; -}; - -#define ZG_F_ZONESECTADDED 0x0001 - -/* Forward. */ - -static void res_dprintf(const char *, ...) ISC_FORMAT_PRINTF(1, 2); - -/* Macros. */ - -#define DPRINTF(x) do {\ - int save_errno = errno; \ - if ((statp->options & RES_DEBUG) != 0U) res_dprintf x; \ - errno = save_errno; \ - } while (0) - -/* Public. */ - -int -res_nupdate(res_state statp, ns_updrec *rrecp_in, ns_tsig_key *key) { - ns_updrec *rrecp; - u_char answer[PACKETSZ]; - u_char *packet; - struct zonegrp *zptr, tgrp; - LIST(struct zonegrp) zgrps; - int nzones = 0, nscount = 0, n; - union res_sockaddr_union nsaddrs[MAXNS]; - - packet = malloc(NS_MAXMSG); - if (packet == NULL) { - DPRINTF(("malloc failed")); - return (0); - } - /* Thread all of the updates onto a list of groups. */ - INIT_LIST(zgrps); - memset(&tgrp, 0, sizeof (tgrp)); - for (rrecp = rrecp_in; rrecp; - rrecp = LINKED(rrecp, r_link) ? NEXT(rrecp, r_link) : NULL) { - int nscnt; - /* Find the origin for it if there is one. */ - tgrp.z_class = rrecp->r_class; - nscnt = res_findzonecut2(statp, rrecp->r_dname, tgrp.z_class, - RES_EXHAUSTIVE, tgrp.z_origin, - sizeof tgrp.z_origin, - tgrp.z_nsaddrs, MAXNS); - if (nscnt <= 0) { - DPRINTF(("res_findzonecut failed (%d)", nscnt)); - goto done; - } - tgrp.z_nscount = nscnt; - /* Find the group for it if there is one. */ - for (zptr = HEAD(zgrps); zptr != NULL; zptr = NEXT(zptr, z_link)) - if (ns_samename(tgrp.z_origin, zptr->z_origin) == 1 && - tgrp.z_class == zptr->z_class) - break; - /* Make a group for it if there isn't one. */ - if (zptr == NULL) { - zptr = malloc(sizeof *zptr); - if (zptr == NULL) { - DPRINTF(("malloc failed")); - goto done; - } - *zptr = tgrp; - zptr->z_flags = 0; - INIT_LINK(zptr, z_link); - INIT_LIST(zptr->z_rrlist); - APPEND(zgrps, zptr, z_link); - } - /* Thread this rrecp onto the right group. */ - APPEND(zptr->z_rrlist, rrecp, r_glink); - } - - for (zptr = HEAD(zgrps); zptr != NULL; zptr = NEXT(zptr, z_link)) { - /* Construct zone section and prepend it. */ - rrecp = res_mkupdrec(ns_s_zn, zptr->z_origin, - zptr->z_class, ns_t_soa, 0); - if (rrecp == NULL) { - DPRINTF(("res_mkupdrec failed")); - goto done; - } - PREPEND(zptr->z_rrlist, rrecp, r_glink); - zptr->z_flags |= ZG_F_ZONESECTADDED; - - /* Marshall the update message. */ - n = res_nmkupdate(statp, HEAD(zptr->z_rrlist), - packet, NS_MAXMSG); - DPRINTF(("res_mkupdate -> %d", n)); - if (n < 0) - goto done; - - /* Temporarily replace the resolver's nameserver set. */ - nscount = res_getservers(statp, nsaddrs, MAXNS); - res_setservers(statp, zptr->z_nsaddrs, zptr->z_nscount); - - /* Send the update and remember the result. */ - if (key != NULL) - n = res_nsendsigned(statp, packet, n, key, - answer, sizeof answer); - else - n = res_nsend(statp, packet, n, answer, sizeof answer); - if (n < 0) { - DPRINTF(("res_nsend: send error, n=%d (%s)\n", - n, strerror(errno))); - goto done; - } - if (((HEADER *)answer)->rcode == NOERROR) - nzones++; - - /* Restore resolver's nameserver set. */ - res_setservers(statp, nsaddrs, nscount); - nscount = 0; - } - done: - while (!EMPTY(zgrps)) { - zptr = HEAD(zgrps); - if ((zptr->z_flags & ZG_F_ZONESECTADDED) != 0) - res_freeupdrec(HEAD(zptr->z_rrlist)); - UNLINK(zgrps, zptr, z_link); - free(zptr); - } - if (nscount != 0) - res_setservers(statp, nsaddrs, nscount); - - free(packet); - return (nzones); -} - -/* Private. */ - -static void -res_dprintf(const char *fmt, ...) { - va_list ap; - - va_start(ap, fmt); - fputs(";; res_nupdate: ", stderr); - vfprintf(stderr, fmt, ap); - fputc('\n', stderr); - va_end(ap); -} diff --git a/src/kits/network/libnetapi/Jamfile b/src/kits/network/libnetapi/Jamfile index c0039e215a..a0d606c171 100644 --- a/src/kits/network/libnetapi/Jamfile +++ b/src/kits/network/libnetapi/Jamfile @@ -84,7 +84,6 @@ for architectureObject in [ MultiArchSubDirSetup ] { HttpResult.cpp HttpTime.cpp - getifaddrs.cpp notifications.cpp $(md5Sources) diff --git a/src/kits/network/libnetapi/getifaddrs.cpp b/src/kits/network/libnetapi/getifaddrs.cpp deleted file mode 100644 index 575bdd5117..0000000000 --- a/src/kits/network/libnetapi/getifaddrs.cpp +++ /dev/null @@ -1,103 +0,0 @@ -/* - * Copyright 2015, Haiku, Inc. All Rights Reserved. - * Distributed under the terms of the MIT License. - * - * Authors: - * Adrien Destugues, pulkomandy@pulkomandy.tk - */ - - -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "compatibility/bsd/ifaddrs.h" - - -int getifaddrs(struct ifaddrs **ifap) -{ - if (ifap == NULL) { - errno = B_BAD_VALUE; - return -1; - } - - BNetworkRoster& roster = BNetworkRoster::Default(); - - uint32 cookie; - - struct ifaddrs* previous = NULL; - struct ifaddrs* current = NULL; - BNetworkInterface* interface = new(std::nothrow) BNetworkInterface(); - if (interface == NULL) { - errno = B_NO_MEMORY; - return -1; - } - - while (roster.GetNextInterface(&cookie, *interface) == B_OK) { - BNetworkInterfaceAddress address; - int32 i = 0; - while (interface->GetAddressAt(i++, address) == B_OK) { - if (interface == NULL) { - freeifaddrs(previous); - errno = B_NO_MEMORY; - return -1; - } - - current = new(std::nothrow) ifaddrs(); - if (current == NULL) { - freeifaddrs(previous); - errno = B_NO_MEMORY; - return -1; - } - - // Chain this interface with the next one - current->ifa_next = previous; - previous = current; - - current->ifa_data = interface; - current->ifa_name = interface->Name(); - // Points to the name in the BNetworkInterface instance, which - // is added as ifa_data so freeifaddrs can release it. - current->ifa_flags = address.Flags(); - current->ifa_addr = new sockaddr(address.Address().SockAddr()); - current->ifa_netmask = new sockaddr(address.Mask().SockAddr()); - current->ifa_dstaddr = new sockaddr(address.Destination().SockAddr()); - } - - interface = new(std::nothrow) BNetworkInterface(); - } - - delete interface; - *ifap = current; - - return 0; -} - - -void -freeifaddrs(struct ifaddrs *ifa) -{ - struct ifaddrs* next; - BNetworkInterface* interface = NULL; - while (ifa != NULL) { - if (ifa->ifa_data != interface) { - interface = (BNetworkInterface*)ifa->ifa_data; - delete interface; - } - - delete ifa->ifa_addr; - delete ifa->ifa_netmask; - delete ifa->ifa_dstaddr; - - next = ifa->ifa_next; - delete ifa; - ifa = next; - } -} -