glocal_unix.cpp
Go to the documentation of this file.
1 //
2 // Copyright (C) 2001-2013 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 // glocal_unix.cpp
19 //
20 
21 #include "gdef.h"
22 #include "glocal.h"
23 #include "gresolver.h"
24 #include "glog.h"
25 
26 GNet::Address GNet::Local::canonicalAddressImp()
27 {
28  ResolverInfo info( hostname() , "0" ) ;
29  std::string error = Resolver::resolve( info ) ;
30  if( !error.empty() )
31  throw Error(error) ;
32  return info.address() ;
33 }
34 
35 std::string GNet::Local::fqdnImp()
36 {
37  ResolverInfo info( hostname() , "0" ) ;
38  std::string error = Resolver::resolve( info ) ;
39  if( !error.empty() )
40  throw Error(error) ;
41  G_DEBUG( "GNet::Local::fqdnImp: \"" << info.name() << "\"" ) ;
42  return info.name() ;
43 }
44 
static std::string hostname()
Returns the hostname.
Definition: glocal.cpp:33
The Address class encapsulates an IP transport address.
Definition: gaddress.h:48
std::string hostname()
Returns the hostname.
static std::string resolve(ResolverInfo &host_and_service, bool udp=false)
Does syncronous name resolution.
Definition: gresolver.cpp:27
#define G_DEBUG(expr)
Definition: glog.h:95