]> git.proxmox.com Git - mirror_edk2.git/blob - AppPkg/Applications/Sockets/GetServByPort/GetServByPort.c
BaseTools/BinToPcd: Fix Python 2.7.x compatibility issue
[mirror_edk2.git] / AppPkg / Applications / Sockets / GetServByPort / GetServByPort.c
1 /** @file
2 Translate the port number into a service name
3
4 Copyright (c) 2011 - 2014, Intel Corporation. All rights reserved.<BR>
5 This program and the accompanying materials are licensed and made available under
6 the terms and conditions of the BSD License that accompanies this distribution.
7 The full text of the license may be found at
8 http://opensource.org/licenses/bsd-license.php.
9
10 THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
12 **/
13 #include <errno.h>
14 #include <netdb.h>
15 #include <stdio.h>
16 #include <string.h>
17 #include <Uefi.h>
18 #include <unistd.h>
19
20 #include <Library/DebugLib.h>
21 #include <Library/UefiLib.h>
22
23 #include <sys/socket.h>
24
25 char mBuffer[65536];
26
27
28 /** Translate the port number into a service name
29
30 @param[in] Argc The number of arguments
31 @param[in] Argv The argument value array
32
33 @retval 0 The application exited normally.
34 @retval Other An error occurred.
35 **/
36 int
37 main (
38 IN int Argc,
39 IN char **Argv
40 )
41 {
42 int PortNumber;
43 struct servent * pService;
44
45 // Determine if the service name is specified
46 if (( 2 != Argc )
47 || ( 1 != sscanf ( Argv[1], "%d", &PortNumber ))) {
48 Print ( L"%a <port number>\r\n", Argv[0]);
49 }
50 else {
51 // Translate the port number
52 pService = getservbyport ( htons ( PortNumber ), NULL );
53 if ( NULL == pService ) {
54 Print ( L"ERROR - service not found, errno: %d\r\n", errno );
55 }
56 else {
57 Print ( L"%a: %d, %a\r\n",
58 pService->s_name,
59 PortNumber,
60 pService->s_proto );
61 }
62 }
63 // All done
64 return errno;
65 }