E-MailRelay
glocal_win32.cpp
Go to the documentation of this file.
1//
2// Copyright (C) 2001-2024 Graeme Walker <graeme_walker@users.sourceforge.net>
3//
4// This program is free software: you can redistribute it and/or modify
5// it under the terms of the GNU General Public License as published by
6// the Free Software Foundation, either version 3 of the License, or
7// (at your option) any later version.
8//
9// This program is distributed in the hope that it will be useful,
10// but WITHOUT ANY WARRANTY; without even the implied warranty of
11// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12// GNU General Public License for more details.
13//
14// You should have received a copy of the GNU General Public License
15// along with this program. If not, see <http://www.gnu.org/licenses/>.
16// ===
17///
18/// \file glocal_win32.cpp
19///
20
21#include "gdef.h"
22#include "glocal.h"
23#include "ghostname.h"
24#include "gidn.h"
25#include "gnowide.h"
26
27std::string GNet::Local::hostname()
28{
29 std::string name = G::hostname() ; // ie. GetComputerNameEx(ComputerNamePhysicalDnsHostname)
30 if( name.empty() )
31 return "localhost" ;
32 return name ;
33}
34
36{
37 static std::string result ;
38 static bool first = true ;
39 if( first )
40 {
41 first = false ;
42 result = G::Idn::encode( G::nowide::getComputerNameEx( ComputerNameDnsFullyQualified ) ) ;
43 if( result.empty() )
44 result = G::Idn::encode(hostname()) + ".localnet" ;
45 }
46 return result ;
47}
48
static std::string canonicalName()
Returns the ASCII fully qualified domain name associated with hostname().
Definition: glocal_unix.cpp:35
static std::string hostname()
Returns the local hostname. Returns "localhost" on error.
Definition: glocal_unix.cpp:27
Contains inline functions that convert to and from UTF-8 strings in order to call wide-character "W()...
std::string encode(std::string_view domain)
Returns the given domain with A-lables.
Definition: gidn.cpp:89
std::string hostname()
Returns the hostname.