From: ThorstenB Date: Sun, 28 Aug 2011 12:10:11 +0000 (+0200) Subject: Merge commit 'refs/merge-requests/9' of git://gitorious.org/fg/simgear into merge... X-Git-Url: https://git.mxchange.org/?a=commitdiff_plain;h=dc5af6674876c19e4f0d3996066eae2ba8ce2392;hp=1227bd48989adbd5d0b18f93da66323bb1ac26d4;p=simgear.git Merge commit 'refs/merge-requests/9' of git://gitorious.org/fg/simgear into merge-requests/9 --- diff --git a/simgear/io/raw_socket.cxx b/simgear/io/raw_socket.cxx index aaa7d871..d972c145 100644 --- a/simgear/io/raw_socket.cxx +++ b/simgear/io/raw_socket.cxx @@ -115,17 +115,33 @@ void IPAddress::set ( const char* host, int port ) return; } - struct addrinfo* result = NULL; - int err = getaddrinfo(host, NULL, NULL /* no hints */, &result); + struct addrinfo hints; + memset(&hints, 0, sizeof(struct addrinfo)); + hints.ai_family = AF_INET; + + struct addrinfo* result0 = NULL; + int err = getaddrinfo(host, NULL, &hints, &result0); if (err) { SG_LOG(SG_IO, SG_WARN, "getaddrinfo failed for '" << host << "' : " << gai_strerror(err)); - } else if (result->ai_addrlen != getAddrLen()) { - SG_LOG(SG_IO, SG_ALERT, "mismatch in socket address sizes"); } else { - memcpy(addr, result->ai_addr, result->ai_addrlen); - } - - freeaddrinfo(result); + struct addrinfo* result; + for (result = result0; result != NULL; result = result->ai_next) { + if (result->ai_family != AF_INET) { // only accept IP4 for the moment + continue; + } + + if (result->ai_addrlen != getAddrLen()) { + SG_LOG(SG_IO, SG_ALERT, "mismatch in socket address sizes: got " << + result->ai_addrlen << ", expected " << getAddrLen()); + continue; + } + + memcpy(addr, result->ai_addr, result->ai_addrlen); + break; + } // of getaddrinfo results iteration + } // of getaddrinfo succeeded + + freeaddrinfo(result0); addr->sin_port = htons (port); // fix up port after getaddrinfo } diff --git a/simgear/props/props_io.cxx b/simgear/props/props_io.cxx index 9fea4497..0877390e 100644 --- a/simgear/props/props_io.cxx +++ b/simgear/props/props_io.cxx @@ -21,6 +21,7 @@ #include #include #include +#include #include "props.hxx" #include "props_io.hxx" @@ -170,12 +171,15 @@ PropsVisitor::startElement (const char * name, const XMLAttributes &atts) // Check for an include. attval = atts.getValue("include"); if (attval != 0) { - SGPath path(SGPath(_base).dir()); - path.append(attval); try { - readProperties(path.str(), _root, 0, _extended); + SGPath path = simgear::ResourceManager::instance()->findPath(attval, SGPath(_base).dir()); + if (path.isNull()) + { + throw sg_io_exception("Cannot open file", sg_location(attval)); + } + readProperties(path.str(), _root, 0, _extended); } catch (sg_io_exception &e) { - setException(e); + setException(e); } } @@ -242,12 +246,15 @@ PropsVisitor::startElement (const char * name, const XMLAttributes &atts) bool omit = false; attval = atts.getValue("include"); if (attval != 0) { - SGPath path(SGPath(_base).dir()); - path.append(attval); try { - readProperties(path.str(), node, 0, _extended); + SGPath path = simgear::ResourceManager::instance()->findPath(attval, SGPath(_base).dir()); + if (path.isNull()) + { + throw sg_io_exception("Cannot open file", sg_location(attval)); + } + readProperties(path.str(), node, 0, _extended); } catch (sg_io_exception &e) { - setException(e); + setException(e); } attval = atts.getValue("omit-node"); diff --git a/simgear/sound/sample_openal.hxx b/simgear/sound/sample_openal.hxx index b2afba4f..b5267bb1 100644 --- a/simgear/sound/sample_openal.hxx +++ b/simgear/sound/sample_openal.hxx @@ -118,7 +118,7 @@ public: * @param _loop Define whether this sound should be played in a loop. */ void play( bool loop = false ) { - _playing = true; _loop = loop; _changed = true; + _playing = true; _loop = loop; _changed = true; _static_changed = true; } /**