Skip to content

Commit 7a8c4c7

Browse files
committed
Feature OpenNebula#2245: New scons option, old_xmlrpc=yes
(cherry picked from commit e98dad2)
1 parent 4926f60 commit 7a8c4c7

File tree

3 files changed

+29
-0
lines changed

3 files changed

+29
-0
lines changed

SConstruct

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,14 @@ if mysql=='yes':
118118
else:
119119
main_env.Append(mysql='no')
120120

121+
# Flag to compile with xmlrpc-c versions prior to 1.31 (September 2012)
122+
old_xmlrpc=ARGUMENTS.get('old_xmlrpc', 'no')
123+
if old_xmlrpc=='yes':
124+
main_env.Append(old_xmlrpc='yes')
125+
main_env.Append(CPPFLAGS=["-DOLD_XMLRPC"])
126+
else:
127+
main_env.Append(old_xmlrpc='no')
128+
121129
# SysLog
122130
syslog=ARGUMENTS.get('syslog', 'no')
123131
if syslog=='yes':

src/nebula/Nebula.cc

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,17 @@ void Nebula::start()
353353
os << "Log level:" << clevel << " [0=ERROR,1=WARNING,2=INFO,3=DEBUG]";
354354

355355
NebulaLog::log("ONE",Log::INFO,os);
356+
357+
os.str("");
358+
os << "Support for xmlrpc-c > 1.31: ";
359+
360+
#ifdef OLD_XMLRPC
361+
os << "no. MAX_CONN and MAX_CONN_BACKLOG configuration will not be used";
362+
#else
363+
os << "yes";
364+
#endif
365+
366+
NebulaLog::log("ONE",Log::INFO,os);
356367
}
357368
catch(runtime_error&)
358369
{

src/rm/RequestManager.cc

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,15 @@ extern "C" void * rm_xml_server_loop(void *arg)
9494

9595
//Start the server
9696

97+
#ifdef OLD_XMLRPC
98+
rm->AbyssServer = new xmlrpc_c::serverAbyss(xmlrpc_c::serverAbyss::constrOpt()
99+
.registryP(&rm->RequestManagerRegistry)
100+
.logFileName(rm->xml_log_file)
101+
.keepaliveTimeout(rm->keepalive_timeout)
102+
.keepaliveMaxConn(rm->keepalive_max_conn)
103+
.timeout(rm->timeout)
104+
.socketFd(rm->socket_fd));
105+
#else
97106
rm->AbyssServer = new xmlrpc_c::serverAbyss(xmlrpc_c::serverAbyss::constrOpt()
98107
.registryP(&rm->RequestManagerRegistry)
99108
.logFileName(rm->xml_log_file)
@@ -103,6 +112,7 @@ extern "C" void * rm_xml_server_loop(void *arg)
103112
.keepaliveMaxConn(rm->keepalive_max_conn)
104113
.timeout(rm->timeout)
105114
.socketFd(rm->socket_fd));
115+
#endif /* OLD_XMLRPC */
106116

107117
rm->AbyssServer->run();
108118

0 commit comments

Comments
 (0)