From 4684b66f261ffb74fa7575ed10df43cc0645a42f Mon Sep 17 00:00:00 2001 From: darylm503 Date: Sat, 30 Jul 2011 00:32:15 +0000 Subject: Add Socket Library applications. Modify AppPkg.dsc file to include StdLib.inc which contains the Boilerplate text for Standard Library based Applications. git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@12062 6f19259b-4bc3-4df7-8a09-765794883524 --- .../Sockets/GetHostByDns/GetHostByDns.c | 85 ++++++++++++++++++++++ .../Sockets/GetHostByDns/GetHostByDns.inf | 65 +++++++++++++++++ 2 files changed, 150 insertions(+) create mode 100644 AppPkg/Applications/Sockets/GetHostByDns/GetHostByDns.c create mode 100644 AppPkg/Applications/Sockets/GetHostByDns/GetHostByDns.inf (limited to 'AppPkg/Applications/Sockets/GetHostByDns') diff --git a/AppPkg/Applications/Sockets/GetHostByDns/GetHostByDns.c b/AppPkg/Applications/Sockets/GetHostByDns/GetHostByDns.c new file mode 100644 index 0000000000..47453aced2 --- /dev/null +++ b/AppPkg/Applications/Sockets/GetHostByDns/GetHostByDns.c @@ -0,0 +1,85 @@ +/** @file + Translate the host name into an IP address + + Copyright (c) 2011, Intel Corporation + All rights reserved. This program and the accompanying materials + are licensed and made available under the terms and conditions of the BSD License + which accompanies this distribution. The full text of the license may be found at + http://opensource.org/licenses/bsd-license.php + + THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, + WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. + +**/ + +#include +#include +#include +#include +#include + +#include +#include + +#include + +struct hostent * _gethostbydnsname(const char *, int); + +char mBuffer [65536]; + + +/** + Translate the host name into an IP address + + @param [in] Argc The number of arguments + @param [in] Argv The argument value array + + @retval 0 The application exited normally. + @retval Other An error occurred. +**/ +int +main ( + IN int Argc, + IN char **Argv + ) +{ + int AppStatus; + UINT8 * pIpAddress; + struct hostent * pHost; + + DEBUG (( DEBUG_INFO, + "%a starting\r\n", + Argv[0])); + + // + // Determine if the host name is specified + // + AppStatus = 0; + if ( 1 == Argc ) { + Print ( L"%a \r\n", Argv[0]); + } + else { + // + // Translate the host name + // + pHost = _gethostbydnsname ( Argv[1], AF_INET ); + if ( NULL == pHost ) { + Print ( L"ERROR - host not found, errno: %d\r\n", errno ); + } + else { + pIpAddress = (UINT8 *)pHost->h_addr; + Print ( L"%a: Type %d, %d.%d.%d.%d\r\n", + pHost->h_name, + pHost->h_addrtype, + pIpAddress[0], + pIpAddress[1], + pIpAddress[2], + pIpAddress[3]); + } + } + + // + // All done + // + return errno; +} diff --git a/AppPkg/Applications/Sockets/GetHostByDns/GetHostByDns.inf b/AppPkg/Applications/Sockets/GetHostByDns/GetHostByDns.inf new file mode 100644 index 0000000000..417eb5e228 --- /dev/null +++ b/AppPkg/Applications/Sockets/GetHostByDns/GetHostByDns.inf @@ -0,0 +1,65 @@ +#/** @file +# GetHostByDns Application +# +# This file contains an 'Intel Peripheral Driver' and is +# licensed for Intel CPUs and chipsets under the terms of your +# license agreement with Intel or your vendor. This file may +# be modified by the user, subject to additional terms of the +# license agreement +# +# +# Copyright (c) 20011 Intel Corporation. All rights reserved +# This software and associated documentation (if any) is furnished +# under a license and may only be used or copied in accordance +# with the terms of the license. Except as permitted by such +# license, no part of this software or documentation may be +# reproduced, stored in a retrieval system, or transmitted in any +# form or by any means without the express written consent of +# Intel Corporation. +# +## + + +[Defines] + INF_VERSION = 0x00010005 + BASE_NAME = GetHostByDns + FILE_GUID = 3698D2B0-E727-4537-A636-A8770736ABFB + MODULE_TYPE = UEFI_APPLICATION + VERSION_STRING = 1.0 + ENTRY_POINT = ShellCEntryLib + +# +# The following information is for reference only and not required by the build tools. +# +# VALID_ARCHITECTURES = IA32 X64 IPF EBC +# + +[Sources] + GetHostByDns.c + + +[Packages] + MdePkg/MdePkg.dec + ShellPkg/ShellPkg.dec + StdLib/StdLib.dec + + +[LibraryClasses] + BaseMemoryLib + BsdSocketLib + DebugLib + DevShell + EfiSocketLib + LibC + LibMath + LibNetUtil + ShellCEntryLib + UefiBootServicesTableLib + UefiLib +# UseSocketDxe + +[BuildOptions] + INTEL:*_*_*_CC_FLAGS = /Qdiag-disable:181,186 + MSFT:*_*_*_CC_FLAGS = /Od + GCC:*_*_*_CC_FLAGS = -O0 -Wno-unused-variable + -- cgit v1.2.3