[tango] 01/03: Imported Upstream version 9.2.2+dfsg

Frédéric-Emmanuel Picca picca at moszumanska.debian.org
Mon Mar 21 17:00:48 UTC 2016


This is an automated email from the git hooks/post-receive script.

picca pushed a commit to branch master
in repository tango.

commit 17ec4beb8e512a5107f108c4338c0aedfa9ad014
Author: Picca Frédéric-Emmanuel <picca at synchrotron-soleil.fr>
Date:   Fri Mar 18 09:50:08 2016 +0100

    Imported Upstream version 9.2.2+dfsg
---
 README                              |  11 ++--
 TANGO_CHANGES                       |  15 +++++
 configure                           |  22 +++----
 configure.ac                        |   4 +-
 lib/cpp/client/Database.h           |   1 +
 lib/cpp/client/DeviceProxy.h        |   3 +
 lib/cpp/client/dbapi_base.cpp       |   9 ++-
 lib/cpp/client/devapi_base.cpp      |  54 ++++++++++++++---
 lib/cpp/client/event.cpp            |   6 +-
 lib/cpp/client/zmqeventconsumer.cpp |   3 +-
 lib/cpp/server/attribute.cpp        |   6 +-
 lib/cpp/server/device_5.cpp         |   4 +-
 lib/cpp/server/tango_const.h        |   4 +-
 lib/cpp/server/utils.cpp            | 112 ++++++++++++++++++++++++++++++++----
 pogo/templates/cpp/Makefile         |   2 +-
 15 files changed, 204 insertions(+), 52 deletions(-)

diff --git a/README b/README
index 5aeeda1..16a9296 100644
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-		TANGO source code release version 9.2.1 - README (03/2016)
+		TANGO source code release version 9.2.2 - README (03/2016)
 		==========================================================
 
 
@@ -26,7 +26,7 @@ This is the README for the TANGO source code release. TANGO is a
 toolkit for building object oriented control systems based on CORBA ans ZMQ. 
 TANGO is a joint effort of the several European research institutes.
 
-This source code release is based on the latest version of TANGO 9 (9.2.1)
+This source code release is based on the latest version of TANGO 9 (9.2.2)
 and is intended for Unix platforms. A binary version for Windows of TANGO 
 is available. The source code contained in this package 
 runs on Windows but the Makefile don't.
@@ -211,7 +211,7 @@ ready to be installed.
 Example:								
         
 		Source code location:   ../..
-        Version:                9.2.1
+        Version:                9.2.2
         Compiler:               gcc,g++
 
         OMNIORB PATH:           /segfs/tango/ORB/omniORB4.2.1/ubuntu1404
@@ -527,10 +527,10 @@ documentation, news and to download add-on packages.
 See the file TANGO_CHANGES to get an overview of all modification
 between the different Tango library versions.
 
-Changes between Tango distribution 9.1.0 and 9.2.1
+Changes between Tango distribution 9.1.0 and 9.2.2
 --------------------------------------------------
 
-- Updated C++ library to						Release 9.2.1
+- Updated C++ library to						Release 9.2.2
 - Updated Jive to								Release 6.9
 - Updated atkpanel to							Release 5.4
 - Updated Pogo to								Release 9.2.4
@@ -549,6 +549,7 @@ Changes between Tango distribution 9.1.0 and 9.2.1
 - SourceForge bug 772 : Makefile dependencies to prevent unnecessary rebuilt
 - SourceForge bug 778 : tango.opt defines wrong LDFLAGS
 - SourceForge bug 782 : Bug in common_target.opt file
+
 - TangoTest : Memory not freed in delete_device() method
 - DBserver : Add command DbGetForwardedAttributeForDevice
 - DBserver : Change default value for accessed columns in 2 tables
diff --git a/TANGO_CHANGES b/TANGO_CHANGES
index 5a445b4..059c295 100644
--- a/TANGO_CHANGES
+++ b/TANGO_CHANGES
@@ -2,6 +2,21 @@ TANGO history file
 
 03/2016        *******************************************************
                *                                                     *
+               *  Tango release 9.2.2 : Changes since version 9.2.1  *
+               *                                                     *
+               *******************************************************
+
+Bug fixes
+---------
+
+Bug recorded in SourceForge:
+
+- 784 : DevULong memorized attribute
+- 785 : Db and DS crash in case no DNS is available
+
+
+03/2016        *******************************************************
+               *                                                     *
                *  Tango release 9.2.1 : Changes since version 9.1.0  *
                *                                                     *
                *******************************************************
diff --git a/configure b/configure
index d2c31cc..b2a7064 100755
--- a/configure
+++ b/configure
@@ -1,7 +1,7 @@
 #! /bin/sh
 # From configure.ac Revision.
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for Tango 9.2.1.
+# Generated by GNU Autoconf 2.69 for Tango 9.2.2.
 #
 # Report bugs to <tango at esrf.fr>.
 #
@@ -591,8 +591,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='Tango'
 PACKAGE_TARNAME='tango'
-PACKAGE_VERSION='9.2.1'
-PACKAGE_STRING='Tango 9.2.1'
+PACKAGE_VERSION='9.2.2'
+PACKAGE_STRING='Tango 9.2.2'
 PACKAGE_BUGREPORT='tango at esrf.fr'
 PACKAGE_URL=''
 
@@ -1433,7 +1433,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures Tango 9.2.1 to adapt to many kinds of systems.
+\`configure' configures Tango 9.2.2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1503,7 +1503,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of Tango 9.2.1:";;
+     short | recursive ) echo "Configuration of Tango 9.2.2:";;
    esac
   cat <<\_ACEOF
 
@@ -1657,7 +1657,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-Tango configure 9.2.1
+Tango configure 9.2.2
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -2292,7 +2292,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by Tango $as_me 9.2.1, which was
+It was created by Tango $as_me 9.2.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -3262,7 +3262,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='tango'
- VERSION='9.2.1'
+ VERSION='9.2.2'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -3418,7 +3418,7 @@ ac_config_headers="$ac_config_headers ac_config.h.tmp"
 #      interface numbers in the range from number `CURRENT - AGE' to
 #      `CURRENT'.
 
-VERSION_INFO=11:1:2
+VERSION_INFO=11:2:2
 
 # Checks for programs.
 
@@ -19721,7 +19721,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by Tango $as_me 9.2.1, which was
+This file was extended by Tango $as_me 9.2.2, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -19787,7 +19787,7 @@ _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-Tango config.status 9.2.1
+Tango config.status 9.2.2
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index f057358..a01ea07 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,7 +20,7 @@
 # packagename, the second is the version used for the tar file,
 # the third is an email address for bug reports (shouldn't be necessary),
 # and the fourth argument is                
-AC_INIT(Tango,9.2.1,tango at esrf.fr,tango)
+AC_INIT(Tango,9.2.2,tango at esrf.fr,tango)
 AC_CONFIG_AUX_DIR(config)
 AC_CONFIG_MACRO_DIR([m4])
 
@@ -63,7 +63,7 @@ AC_CONFIG_HEADERS(ac_config.h.tmp)
 #      interface numbers in the range from number `CURRENT - AGE' to
 #      `CURRENT'.
 
-VERSION_INFO=11:1:2
+VERSION_INFO=11:2:2
 	
 # Checks for programs.
 
diff --git a/lib/cpp/client/Database.h b/lib/cpp/client/Database.h
index f94205c..6368f60 100644
--- a/lib/cpp/client/Database.h
+++ b/lib/cpp/client/Database.h
@@ -1843,6 +1843,7 @@ public :
 
 	const string &get_file_name();
 	const string &get_orig_tango_host() {return ext->orig_tango_host;}
+	void set_orig_tango_host(const string &_s) {ext->orig_tango_host=_s;}
 
 #ifdef _TG_WINDOWS_
 	Database(CORBA::ORB *orb,string &,string &);
diff --git a/lib/cpp/client/DeviceProxy.h b/lib/cpp/client/DeviceProxy.h
index f462a38..bf7e723 100644
--- a/lib/cpp/client/DeviceProxy.h
+++ b/lib/cpp/client/DeviceProxy.h
@@ -124,6 +124,9 @@ private:
     {
     public:
         DeviceProxyExt() {};
+
+        bool            nethost_alias;
+        string          orig_tango_host;
     };
 
 #ifdef HAS_UNIQUE_PTR
diff --git a/lib/cpp/client/dbapi_base.cpp b/lib/cpp/client/dbapi_base.cpp
index 9d3e9b8..6c7a45b 100644
--- a/lib/cpp/client/dbapi_base.cpp
+++ b/lib/cpp/client/dbapi_base.cpp
@@ -1,4 +1,4 @@
-static const char *RcsId = "$Id: dbapi_base.cpp 29267 2016-02-24 16:59:11Z taurel $\n$Name$";
+static const char *RcsId = "$Id: dbapi_base.cpp 29477 2016-03-15 15:54:43Z taurel $\n$Name$";
 
 //
 // cpp 	- C++ source code file for TANGO dbapi class Database
@@ -278,8 +278,11 @@ void Database::check_tango_host(const char *tango_host_env_c_str)
 		{
 			get_fqdn(db_host);
 			string::size_type pos = db_host.find('.');
-			string fq = db_host.substr(pos);
-			ext->orig_tango_host = ext->orig_tango_host + fq;
+			if (pos != string::npos)
+            {
+                string fq = db_host.substr(pos);
+                ext->orig_tango_host = ext->orig_tango_host + fq;
+            }
 		}
 
 	}
diff --git a/lib/cpp/client/devapi_base.cpp b/lib/cpp/client/devapi_base.cpp
index d46e956..e441dfe 100644
--- a/lib/cpp/client/devapi_base.cpp
+++ b/lib/cpp/client/devapi_base.cpp
@@ -1,4 +1,4 @@
-static const char *RcsId = "$Id: devapi_base.cpp 29267 2016-02-24 16:59:11Z taurel $\n$Name$";
+static const char *RcsId = "$Id: devapi_base.cpp 29484 2016-03-16 07:55:20Z taurel $\n$Name$";
 
 //===================================================================================================================
 //
@@ -25,7 +25,7 @@ static const char *RcsId = "$Id: devapi_base.cpp 29267 2016-02-24 16:59:11Z taur
 // You should have received a copy of the GNU Lesser General Public License along with Tango.
 // If not, see <http://www.gnu.org/licenses/>.
 //
-// $Revision: 29267 $
+// $Revision: 29484 $
 //
 //===================================================================================================================
 
@@ -1056,7 +1056,7 @@ void Connection::get_fqdn(string &the_host)
 
             while (ptr != NULL)
             {
-                if (getnameinfo(ptr->ai_addr,ptr->ai_addrlen,tmp_host,512,0,0,0) == 0)
+                if (getnameinfo(ptr->ai_addr,ptr->ai_addrlen,tmp_host,512,0,0,NI_NAMEREQD) == 0)
                 {
                 	nb_loop++;
                     myhost = tmp_host;
@@ -1643,7 +1643,21 @@ void DeviceProxy::real_constructor (string &name,bool need_check_acc)
 			}
 			else
 			{
-				db_dev = new DbDevice(device_name,db_host,db_port);
+                db_dev = new DbDevice(device_name,db_host,db_port);
+			    if (ext_proxy->nethost_alias == true)
+			    {
+                    Database *tmp_db = db_dev->get_dbase();
+			        const string &orig = tmp_db->get_orig_tango_host();
+			        if (orig.empty() == true)
+                    {
+                        string orig_tg_host = ext_proxy->orig_tango_host;
+                        if (orig_tg_host.find('.') == string::npos)
+                        {
+                            get_fqdn(orig_tg_host);
+                        }
+                        tmp_db->set_orig_tango_host(ext_proxy->orig_tango_host);
+                    }
+			    }
 			}
 		}
 		catch (Tango::DevFailed &e)
@@ -1818,7 +1832,7 @@ DeviceProxy::DeviceProxy(const DeviceProxy &sou):Connection(sou),ext_proxy(Tango
     if (sou.ext_proxy.get() != NULL)
     {
         ext_proxy.reset(new DeviceProxyExt);
-//        *(ext_proxy.get()) = *(sou.ext_proxy.get());
+        *(ext_proxy.get()) = *(sou.ext_proxy.get());
     }
 #else
 	if (sou.ext_proxy == NULL)
@@ -1826,7 +1840,7 @@ DeviceProxy::DeviceProxy(const DeviceProxy &sou):Connection(sou),ext_proxy(Tango
 	else
 	{
 		ext_proxy = new DeviceProxyExt();
-//		*ext_proxy = *(sou.ext_proxy);
+		*ext_proxy = *(sou.ext_proxy);
 	}
 #endif
 
@@ -1886,7 +1900,7 @@ DeviceProxy &DeviceProxy::operator=(const DeviceProxy &rval)
         if (rval.ext_proxy.get() != NULL)
         {
             ext_proxy.reset(new DeviceProxyExt);
-//          *(ext_proxy.get()) = *(rval.ext_proxy.get());
+            *(ext_proxy.get()) = *(rval.ext_proxy.get());
         }
         else
             ext_proxy.reset();
@@ -1895,7 +1909,7 @@ DeviceProxy &DeviceProxy::operator=(const DeviceProxy &rval)
         if (rval.ext_proxy != NULL)
         {
             ext_proxy = new DeviceProxyExt;
-//		*ext_proxy = *(rval.ext_proxy);
+            *ext_proxy = *(rval.ext_proxy);
         }
         else
             ext_proxy = NULL;
@@ -2209,9 +2223,31 @@ void DeviceProxy::parse_name(string &full_name)
 			else
 			{
 				string tmp_host(bef_sep.substr(0,tmp));
+				string safe_tmp_host(tmp_host);
+
 				if (tmp_host.find('.') == string::npos)
 					get_fqdn(tmp_host);
-				db_host = tmp_host;
+
+                string::size_type pos2 = tmp_host.find('.');
+                bool alias_used = false;
+                string fq;
+                if (pos2 != string::npos)
+                {
+                    string h_name = tmp_host.substr(0,pos2);
+                    fq = tmp_host.substr(pos2);
+                    if (h_name != tmp_host)
+                        alias_used = true;
+                }
+
+                if (alias_used == true)
+                {
+                    ext_proxy->nethost_alias = true;
+                    ext_proxy->orig_tango_host = safe_tmp_host + fq;
+                }
+                else
+                    ext_proxy->nethost_alias = false;
+
+                db_host = tmp_host;
 				db_port = bef_sep.substr(tmp + 1);
 				TangoSys_MemStream s;
 				s << db_port << ends;
diff --git a/lib/cpp/client/event.cpp b/lib/cpp/client/event.cpp
index 3a5f2aa..890c43e 100644
--- a/lib/cpp/client/event.cpp
+++ b/lib/cpp/client/event.cpp
@@ -1,4 +1,4 @@
-static const char *RcsId = "$Id: event.cpp 29267 2016-02-24 16:59:11Z taurel $";
+static const char *RcsId = "$Id: event.cpp 29477 2016-03-15 15:54:43Z taurel $";
 
 //====================================================================================================================
 //
@@ -27,7 +27,7 @@ static const char *RcsId = "$Id: event.cpp 29267 2016-02-24 16:59:11Z taurel $";
 // You should have received a copy of the GNU Lesser General Public License along with Tango.
 // If not, see <http://www.gnu.org/licenses/>.
 //
-// $Revision: 29267 $
+// $Revision: 29477 $
 //
 //
 //====================================================================================================================
@@ -273,7 +273,7 @@ void EventConsumer::get_cs_tango_host(Database *db)
 			string tg_host(db->get_orig_tango_host());
 			transform(tg_host.begin(),tg_host.end(),tg_host.begin(),::tolower);
 
-			if (lower_vs != tg_host)
+			if (tg_host.empty() == false && lower_vs != tg_host)
 			{
 				if (alias_map.find(tg_host) == alias_map.end())
 				{
diff --git a/lib/cpp/client/zmqeventconsumer.cpp b/lib/cpp/client/zmqeventconsumer.cpp
index a7749ca..31b3fbd 100644
--- a/lib/cpp/client/zmqeventconsumer.cpp
+++ b/lib/cpp/client/zmqeventconsumer.cpp
@@ -2075,7 +2075,8 @@ void ZmqEventConsumer::push_zmq_event(string &ev_name,unsigned char endian,zmq::
 				string::size_type pos = full_att_name.find(':',8);
 				string host = full_att_name.substr(8,pos - 8);
 				map<string,string>::iterator ite = alias_map.find(host);
-				full_att_name.replace(8,pos - 8,ite->second);
+				if (ite != alias_map.end())
+                    full_att_name.replace(8,pos - 8,ite->second);
 			}
 			else
 			{
diff --git a/lib/cpp/server/attribute.cpp b/lib/cpp/server/attribute.cpp
index 53c183f..e370a32 100644
--- a/lib/cpp/server/attribute.cpp
+++ b/lib/cpp/server/attribute.cpp
@@ -1,4 +1,4 @@
-static const char *RcsId = "$Id: attribute.cpp 29039 2016-01-19 15:57:58Z taurel $\n$Name$";
+static const char *RcsId = "$Id: attribute.cpp 29476 2016-03-14 14:59:20Z taurel $\n$Name$";
 
 //====================================================================================================================
 //
@@ -30,7 +30,7 @@ static const char *RcsId = "$Id: attribute.cpp 29039 2016-01-19 15:57:58Z taurel
 // You should have received a copy of the GNU Lesser General Public License along with Tango.
 // If not, see <http://www.gnu.org/licenses/>.
 //
-// $Revision: 29039 $
+// $Revision: 29476 $
 //
 //====================================================================================================================
 
@@ -793,7 +793,7 @@ bool Attribute::init_check_val_prop (vector<AttrProperty> &prop_list,string &dev
             break;
 
         case Tango::DEV_ULONG:
-            is_err_format = !(str >> max_warning.db && str.eof());
+            is_err_format = !(str >> prop.db && str.eof());
             prop.ulg = (DevULong)prop.db;
             if (is_err_format == false)
             {
diff --git a/lib/cpp/server/device_5.cpp b/lib/cpp/server/device_5.cpp
index 708d237..ede8a7c 100644
--- a/lib/cpp/server/device_5.cpp
+++ b/lib/cpp/server/device_5.cpp
@@ -1065,8 +1065,6 @@ Tango::DevPipeData *Device_5Impl::read_pipe_5(const char* name,const Tango::Clnt
 		string pipe_name(name);
 		Pipe &pi = device_class->get_pipe_by_name(pipe_name,device_name_lower);
 
-		pi.set_value_flag(false);
-
 //
 // Allocate memory for the returned value
 //
@@ -1120,6 +1118,8 @@ Tango::DevPipeData *Device_5Impl::read_pipe_5(const char* name,const Tango::Clnt
 
 		try
 		{
+            pi.set_value_flag(false);
+
 			pi.set_time();
 			pi.set_returned_data_ptr(back);
 			pi.get_blob().reset_insert_ctr();
diff --git a/lib/cpp/server/tango_const.h b/lib/cpp/server/tango_const.h
index 2b67269..7f41616 100644
--- a/lib/cpp/server/tango_const.h
+++ b/lib/cpp/server/tango_const.h
@@ -25,7 +25,7 @@
 // You should have received a copy of the GNU Lesser General Public License along with Tango.
 // If not, see <http://www.gnu.org/licenses/>.
 //
-// $Revision: 29394 $
+// $Revision: 29481 $
 //
 //=====================================================================================================================
 
@@ -42,7 +42,7 @@ namespace Tango
 
 #define   TANGO_VERSION_MAJOR        9
 #define   TANGO_VERSION_MINOR        2
-#define   TANGO_VERSION_PATCH        1
+#define   TANGO_VERSION_PATCH        2
 
 #define   TANGO_BASE_CLASS           Tango::Device_5Impl
 
diff --git a/lib/cpp/server/utils.cpp b/lib/cpp/server/utils.cpp
index f6e8112..b8cbcd7 100644
--- a/lib/cpp/server/utils.cpp
+++ b/lib/cpp/server/utils.cpp
@@ -1,4 +1,4 @@
-static const char *RcsId = "$Id: utils.cpp 28373 2015-08-13 13:58:07Z taurel $\n$Name$";
+static const char *RcsId = "$Id: utils.cpp 29477 2016-03-15 15:54:43Z taurel $\n$Name$";
 
 //+===================================================================================================================
 //
@@ -28,7 +28,7 @@ static const char *RcsId = "$Id: utils.cpp 28373 2015-08-13 13:58:07Z taurel $\n
 // You should have received a copy of the GNU Lesser General Public License along with Tango.
 // If not, see <http://www.gnu.org/licenses/>.
 //
-// $Revision: 28373 $
+// $Revision: 29477 $
 //
 //-==================================================================================================================
 
@@ -1378,6 +1378,7 @@ void Util::init_host_name()
 			struct addrinfo	*info, *ptr;
 			char tmp_host[NI_MAXHOST];
 			bool host_found = false;
+			vector<string>  host_names;
 
 			ApiUtil *au = ApiUtil::instance();
 			vector<string> ip_list;
@@ -1390,7 +1391,7 @@ void Util::init_host_name()
 					ptr = info;
 					while(ptr != NULL)
 					{
-						if(getnameinfo(ptr->ai_addr,ptr->ai_addrlen,tmp_host,NI_MAXHOST,NULL,0,0) == 0)
+						if(getnameinfo(ptr->ai_addr,ptr->ai_addrlen,tmp_host,NI_MAXHOST,NULL,0,NI_NAMEREQD) == 0)
 						{
 							string myhost(tmp_host);
 #ifdef _TG_WINDOWS_
@@ -1402,13 +1403,7 @@ void Util::init_host_name()
 							string::size_type pos = myhost.find('.');
 							if (pos != string::npos)
 							{
-								string canon = myhost.substr(0,pos);
-								if (hostname == canon)
-								{
-									hostname = myhost;
-									host_found = true;
-									break;
-								}
+                                host_names.push_back(myhost);
 							}
 						}
 						ptr = ptr->ai_next;
@@ -1416,6 +1411,103 @@ void Util::init_host_name()
 					freeaddrinfo(info);
 				}
 			}
+
+//
+// Several cases to find out the real name of the network interface on which the server is running.
+// First be sure that we got at least one name from call(s) to getnameinfo()
+// Then, we have to know if the -ORBendPoint option was specified on the command line
+// If it was not, select the name which is the same than the computer hostname. If not found, select the first name
+// returned by getnameinfo()
+// If the endPoint option is used by the host name is not specified within the option (Db case for instance), do the
+// same than in previous case
+// If a host is specified in endPOint option:
+// If it is specified as a name, search for this name in the list returned by getnameinfo calls and select it
+// If it is specified as a IP address, search for this IP in ip_list vector and select this name in the result
+// of getnameinfo() call
+//
+
+			if (host_names.size() != 0)
+            {
+                if (get_endpoint_specified() == false)
+                {
+                    bool found = false;
+                    for (size_t loop = 0;loop < host_names.size();loop++)
+                    {
+                        string::size_type pos = host_names[loop].find('.');
+                        string canon = host_names[loop].substr(0,pos);
+                        if (hostname == canon)
+                        {
+                            found = true;
+                            hostname = host_names[loop];
+                            break;
+                        }
+                    }
+
+                    if (found == false)
+                        hostname = host_names[0];
+                }
+                else
+                {
+                    string &spec_ip = get_specified_ip();
+                    if (spec_ip.empty() == true)
+                    {
+                        bool found = false;
+                        for (size_t loop = 0;loop < host_names.size();loop++)
+                        {
+                            string::size_type pos = host_names[loop].find('.');
+                            string canon = host_names[loop].substr(0,pos);
+                            if (hostname == canon)
+                            {
+                                found = true;
+                                hostname = host_names[loop];
+                                break;
+                            }
+                        }
+
+                        if (found == false)
+                            hostname = host_names[0];
+                    }
+                    else
+                    {
+                        int nb_dot = count(spec_ip.begin(),spec_ip.end(),'.');
+                        if (nb_dot == 3)
+                        {
+                            int ind = -1;
+                            for (int loop = 0;loop < (int)ip_list.size();loop++)
+                            {
+                                if (ip_list[loop] == spec_ip)
+                                {
+                                    ind = loop;
+                                    break;
+                                }
+
+                                if (ind != -1 && (((int)host_names.size() - 1) >= ind))
+                                    hostname = host_names[ind];
+                            }
+                        }
+                        else
+                        {
+                            string::size_type pos = spec_ip.find('.');
+                            string canon_spec;
+                            if (pos != string::npos)
+                                canon_spec = spec_ip.substr(0,pos);
+                            else
+                                canon_spec = spec_ip;
+
+                            for (size_t loop = 0;loop < host_names.size();loop++)
+                            {
+                                string::size_type pos = host_names[loop].find('.');
+                                string canon = host_names[loop].substr(0,pos);
+                                if (canon_spec == canon)
+                                {
+                                    hostname = host_names[loop];
+                                    break;
+                                }
+                            }
+                        }
+                    }
+                }
+            }
 		}
 	}
 	else
diff --git a/pogo/templates/cpp/Makefile b/pogo/templates/cpp/Makefile
index db534d3..53a613f 100644
--- a/pogo/templates/cpp/Makefile
+++ b/pogo/templates/cpp/Makefile
@@ -32,7 +32,7 @@ RELEASE    = Release_$(MAJOR_VERS)_$(MINOR_VERS)
 #	Set default home directories
 #-----------------------------------------
 
-TANGO_HOME   =  /home/taurel/tmp/tango_921
+TANGO_HOME   =  /usr/local
 CPP_SERVERS  =  $(TANGO_HOME)/cppserver
 
 ifdef no_debug

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/debian-science/packages/tango.git



More information about the debian-science-commits mailing list