opalvoip-svn Mailing List for OpalVOIP (Page 12)
Brought to you by:
csoutheren,
rjongbloed
You can subscribe to this list here.
2007 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(71) |
Nov
(241) |
Dec
(143) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2008 |
Jan
(210) |
Feb
(263) |
Mar
(214) |
Apr
(290) |
May
(203) |
Jun
(160) |
Jul
(128) |
Aug
(158) |
Sep
(376) |
Oct
(234) |
Nov
(227) |
Dec
(216) |
2009 |
Jan
(99) |
Feb
(151) |
Mar
(234) |
Apr
(143) |
May
(271) |
Jun
(244) |
Jul
(173) |
Aug
(124) |
Sep
(246) |
Oct
(178) |
Nov
(85) |
Dec
(77) |
2010 |
Jan
(101) |
Feb
(79) |
Mar
(92) |
Apr
(134) |
May
(125) |
Jun
(121) |
Jul
(61) |
Aug
(70) |
Sep
(86) |
Oct
(81) |
Nov
(65) |
Dec
(75) |
2011 |
Jan
(110) |
Feb
(119) |
Mar
(267) |
Apr
(154) |
May
(296) |
Jun
(177) |
Jul
(149) |
Aug
(124) |
Sep
(120) |
Oct
(116) |
Nov
(99) |
Dec
(121) |
2012 |
Jan
(78) |
Feb
(161) |
Mar
(323) |
Apr
(154) |
May
(190) |
Jun
(207) |
Jul
(176) |
Aug
(165) |
Sep
(137) |
Oct
(85) |
Nov
(112) |
Dec
(100) |
2013 |
Jan
(341) |
Feb
(102) |
Mar
(240) |
Apr
(216) |
May
(233) |
Jun
(226) |
Jul
(139) |
Aug
(192) |
Sep
(183) |
Oct
(211) |
Nov
(220) |
Dec
(110) |
2014 |
Jan
(203) |
Feb
(205) |
Mar
(100) |
Apr
(178) |
May
(194) |
Jun
(249) |
Jul
(136) |
Aug
(241) |
Sep
(226) |
Oct
(200) |
Nov
(94) |
Dec
(46) |
2015 |
Jan
(94) |
Feb
(74) |
Mar
(89) |
Apr
(78) |
May
(65) |
Jun
(70) |
Jul
(113) |
Aug
(176) |
Sep
(140) |
Oct
(154) |
Nov
(99) |
Dec
(115) |
2016 |
Jan
(102) |
Feb
(69) |
Mar
(97) |
Apr
(53) |
May
(42) |
Jun
(13) |
Jul
(42) |
Aug
(30) |
Sep
|
Oct
|
Nov
|
Dec
|
From: <rjo...@us...> - 2016-03-01 19:45:54
|
Revision: 34651 http://sourceforge.net/p/opalvoip/code/34651 Author: rjongbloed Date: 2016-03-01 19:45:51 +0000 (Tue, 01 Mar 2016) Log Message: ----------- Allow override of version number during configure Modified Paths: -------------- ptlib/trunk/configure ptlib/trunk/make/my_macros.m4 Modified: ptlib/trunk/configure =================================================================== --- ptlib/trunk/configure 2016-03-01 15:51:27 UTC (rev 34650) +++ ptlib/trunk/configure 2016-03-01 19:45:51 UTC (rev 34651) @@ -7273,10 +7273,26 @@ - major=`cat $VERSION_DIR/version.h | grep MAJOR_VERSION | cut -f3 -d' '` - minor=`cat $VERSION_DIR/version.h | grep MINOR_VERSION | cut -f3 -d' '` - build=`cat $VERSION_DIR/version.h | grep BUILD_NUMBER | cut -f3 -d' '` - stage=`cat $VERSION_DIR/version.h | grep BUILD_TYPE | cut -f 3 -d ' ' | sed 's/BetaCode/-beta/' | sed 's/AlphaCode/-alpha/' | sed 's/ReleaseCode/\./'` + if ${PTLIB_MAJOR+:} false; then : + major=$PTLIB[_MAJOR] +else + major=`cat $VERSION_DIR/version.h | grep MAJOR_VERSION | cut -f3 -d' '` +fi + if ${PTLIB_MINOR+:} false; then : + minor=$PTLIB[_MINOR] +else + minor=`cat $VERSION_DIR/version.h | grep MINOR_VERSION | cut -f3 -d' '` +fi + if ${PTLIB_BUILD+:} false; then : + build=$PTLIB[_BUILD] +else + build=`cat $VERSION_DIR/version.h | grep BUILD_NUMBER | cut -f3 -d' '` +fi + if ${PTLIB_STAGE+:} false; then : + stage=$PTLIB[_STAGE] +else + stage=`cat $VERSION_DIR/version.h | grep BUILD_TYPE | cut -f 3 -d ' ' | sed 's/BetaCode/-beta/' | sed 's/AlphaCode/-alpha/' | sed 's/ReleaseCode/\./'` +fi version="${major}.${minor}.${build}" if test -z "$major" -o -z "$minor" -o -z "$build"; then : @@ -7291,7 +7307,7 @@ PTLIB_STAGE=$stage - PTLIB_VERSION="${major}.${minor}.${build}" + PTLIB_VERSION="${version}" Modified: ptlib/trunk/make/my_macros.m4 =================================================================== --- ptlib/trunk/make/my_macros.m4 2016-03-01 15:51:27 UTC (rev 34650) +++ ptlib/trunk/make/my_macros.m4 2016-03-01 19:45:51 UTC (rev 34651) @@ -302,10 +302,10 @@ dnl $1 file location dnl $2 variable prefix AC_DEFUN([MY_VERSION_FILE],[ - major=`cat $1 | grep MAJOR_VERSION | cut -f3 -d' '` - minor=`cat $1 | grep MINOR_VERSION | cut -f3 -d' '` - build=`cat $1 | grep BUILD_NUMBER | cut -f3 -d' '` - stage=`cat $1 | grep BUILD_TYPE | cut -f 3 -d ' ' | sed 's/BetaCode/-beta/' | sed 's/AlphaCode/-alpha/' | sed 's/ReleaseCode/\./'` + AS_VAR_SET_IF([$2[_MAJOR]],[major=$[$2[_MAJOR]]],[major=`cat $1 | grep MAJOR_VERSION | cut -f3 -d' '`]) + AS_VAR_SET_IF([$2[_MINOR]],[minor=$[$2[_MINOR]]],[minor=`cat $1 | grep MINOR_VERSION | cut -f3 -d' '`]) + AS_VAR_SET_IF([$2[_BUILD]],[build=$[$2[_BUILD]]],[build=`cat $1 | grep BUILD_NUMBER | cut -f3 -d' '`]) + AS_VAR_SET_IF([$2[_STAGE]],[stage=$[$2[_STAGE]]],[stage=`cat $1 | grep BUILD_TYPE | cut -f 3 -d ' ' | sed 's/BetaCode/-beta/' | sed 's/AlphaCode/-alpha/' | sed 's/ReleaseCode/\./'`]) version="${major}.${minor}.${build}" AS_IF([test -z "$major" -o -z "$minor" -o -z "$build"], AC_MSG_ERROR(Could not determine version number from $1)) @@ -314,7 +314,7 @@ AC_SUBST($2[_MINOR], $minor) AC_SUBST($2[_BUILD], $build) AC_SUBST($2[_STAGE], $stage) - AC_SUBST($2[_VERSION], "${major}.${minor}.${build}") + AC_SUBST($2[_VERSION], "${version}") AC_DEFINE_UNQUOTED([$2[_MAJOR]], [${major}], [Major version]) AC_DEFINE_UNQUOTED([$2[_MINOR]], [${minor}], [Minor version]) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-03-01 15:51:30
|
Revision: 34650 http://sourceforge.net/p/opalvoip/code/34650 Author: rjongbloed Date: 2016-03-01 15:51:27 +0000 (Tue, 01 Mar 2016) Log Message: ----------- Added SO_KEEPALIVE on TCP socket for Avaya H.323 mode. Modified Paths: -------------- opal/trunk/include/opal/transports.h opal/trunk/src/h323/h323.cxx opal/trunk/src/opal/transports.cxx Modified: opal/trunk/include/opal/transports.h =================================================================== --- opal/trunk/include/opal/transports.h 2016-02-29 12:08:27 UTC (rev 34649) +++ opal/trunk/include/opal/transports.h 2016-03-01 15:51:27 UTC (rev 34650) @@ -973,12 +973,17 @@ ); /**Set keep alive time and data. - The data is sent on the transport if no traffic has occurred for the + The \p data is sent on the transport if no traffic has occurred for the specified time. + + Setting a timeout of zero disables the keep alive. + + Setting a non-zero timeout, but an empty data array will enable the + socket level (SO_KEEPALIVE) version. */ void SetKeepAlive( - const PTimeInterval & timeout, - const PBYTEArray & data + const PTimeInterval & timeout, ///< Time of inactivity before sending data + const PBYTEArray & data ///< Data to send on inactivity ); /// Indicate keep alive is active Modified: opal/trunk/src/h323/h323.cxx =================================================================== --- opal/trunk/src/h323/h323.cxx 2016-02-29 12:08:27 UTC (rev 34649) +++ opal/trunk/src/h323/h323.cxx 2016-03-01 15:51:27 UTC (rev 34650) @@ -422,6 +422,9 @@ if (m_features != NULL && m_features->HasFeature(H460_FeatureStd18::ID())) channel->SetKeepAlive(endpoint.GetManager().GetNatKeepAliveTime(), PBYTEArray(EmptyTPKT, sizeof(EmptyTPKT), false)); #endif + + if (endpoint.GetProductInfo() == H323EndPoint::AvayaPhone()) + channel->SetKeepAlive(1000, PBYTEArray()); // Set SO_KEEPALIVE on socket } Modified: opal/trunk/src/opal/transports.cxx =================================================================== --- opal/trunk/src/opal/transports.cxx 2016-02-29 12:08:27 UTC (rev 34649) +++ opal/trunk/src/opal/transports.cxx 2016-03-01 15:51:27 UTC (rev 34650) @@ -1205,7 +1205,12 @@ m_keepAliveData = data; UnlockReadWrite(); - if (data.IsEmpty()) { + PSocket * socket = dynamic_cast<PSocket *>(m_channel); + if (socket != NULL && !socket->SetOption(SO_KEEPALIVE, timeout > 0)) { + PTRACE(1, "SetOption(SO_KEEPALIVE) failed: " << socket->GetErrorText()); + } + + if (timeout <= 0 || data.IsEmpty()) { m_keepAliveTimer.Stop(false); PTRACE(4, "Transport keep alive disabled on " << *this); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-29 12:08:30
|
Revision: 34649 http://sourceforge.net/p/opalvoip/code/34649 Author: rjongbloed Date: 2016-02-29 12:08:27 +0000 (Mon, 29 Feb 2016) Log Message: ----------- Fixed compiler warning Modified Paths: -------------- opal/trunk/src/rtp/rtp_session.cxx Modified: opal/trunk/src/rtp/rtp_session.cxx =================================================================== --- opal/trunk/src/rtp/rtp_session.cxx 2016-02-29 11:51:59 UTC (rev 34648) +++ opal/trunk/src/rtp/rtp_session.cxx 2016-02-29 12:08:27 UTC (rev 34649) @@ -1079,7 +1079,7 @@ PTRACE(m_throttleRxRR, &m_session, m_session << "OnReceiverReport: " << report << m_throttleRxRR); m_packetsLost = report.totalLost; - PTRACE_IF(m_throttleInvalidLost, m_packetsLost > m_packets, &m_session, + PTRACE_IF(m_throttleInvalidLost, (unsigned)m_packetsLost > m_packets, &m_session, m_session << "remote indicated packet loss (" << m_packetsLost << ")" " larger than number of packets we sent (" << m_packets << ')' << m_throttleInvalidLost); m_currentjitter = (report.jitter + m_session.m_timeUnits -1)/m_session.m_timeUnits; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-29 11:52:02
|
Revision: 34648 http://sourceforge.net/p/opalvoip/code/34648 Author: rjongbloed Date: 2016-02-29 11:51:59 +0000 (Mon, 29 Feb 2016) Log Message: ----------- Add some avoidance of crashes if have to pre-emptively terminate a thread. Modified Paths: -------------- ptlib/trunk/src/ptlib/common/osutils.cxx Modified: ptlib/trunk/src/ptlib/common/osutils.cxx =================================================================== --- ptlib/trunk/src/ptlib/common/osutils.cxx 2016-02-29 11:27:31 UTC (rev 34647) +++ ptlib/trunk/src/ptlib/common/osutils.cxx 2016-02-29 11:51:59 UTC (rev 34648) @@ -2827,8 +2827,10 @@ PThread::~PThread() { - if (m_type != e_IsProcess && m_type != e_IsExternal && !WaitForTermination(100)) + if (m_type != e_IsProcess && m_type != e_IsExternal && !WaitForTermination(1000)) { Terminate(); + WaitForTermination(1000); + } PTRACE(5, "Destroying thread " << this << ' ' << m_threadName << ", id=" << m_threadId); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-29 11:27:34
|
Revision: 34647 http://sourceforge.net/p/opalvoip/code/34647 Author: rjongbloed Date: 2016-02-29 11:27:31 +0000 (Mon, 29 Feb 2016) Log Message: ----------- Fixed trace log on RTCP RR packet loss indication Modified Paths: -------------- opal/trunk/src/rtp/rtp_session.cxx Modified: opal/trunk/src/rtp/rtp_session.cxx =================================================================== --- opal/trunk/src/rtp/rtp_session.cxx 2016-02-25 07:36:19 UTC (rev 34646) +++ opal/trunk/src/rtp/rtp_session.cxx 2016-02-29 11:27:31 UTC (rev 34647) @@ -1079,8 +1079,9 @@ PTRACE(m_throttleRxRR, &m_session, m_session << "OnReceiverReport: " << report << m_throttleRxRR); m_packetsLost = report.totalLost; - PTRACE(m_throttleInvalidLost, &m_session, m_session << "remote indicated packet loss (" << m_packetsLost << ")" - " larger than number of packets we sent (" << m_packets << ')' << m_throttleInvalidLost); + PTRACE_IF(m_throttleInvalidLost, m_packetsLost > m_packets, &m_session, + m_session << "remote indicated packet loss (" << m_packetsLost << ")" + " larger than number of packets we sent (" << m_packets << ')' << m_throttleInvalidLost); m_currentjitter = (report.jitter + m_session.m_timeUnits -1)/m_session.m_timeUnits; if (m_maximumJitter < m_currentjitter) m_maximumJitter = m_currentjitter; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-25 07:36:22
|
Revision: 34646 http://sourceforge.net/p/opalvoip/code/34646 Author: rjongbloed Date: 2016-02-25 07:36:19 +0000 (Thu, 25 Feb 2016) Log Message: ----------- Fixed skinny extra channel simulation, part 3. Modified Paths: -------------- opal/trunk/src/ep/skinnyep.cxx Modified: opal/trunk/src/ep/skinnyep.cxx =================================================================== --- opal/trunk/src/ep/skinnyep.cxx 2016-02-24 17:58:08 UTC (rev 34645) +++ opal/trunk/src/ep/skinnyep.cxx 2016-02-25 07:36:19 UTC (rev 34646) @@ -1229,6 +1229,9 @@ return; } + if (!info.m_receiver) + mediaSession->SetRemoteAddress(info.m_mediaAddress); + bool canSimulate = !info.m_receiver && !m_endpoint.GetSimulatedAudioFile().IsEmpty() && mediaType == OpalMediaType::Audio(); if (canSimulate && info.m_sessionId > 1 && m_endpoint.IsSecondaryAudioAlwaysSimulated()) { @@ -1255,8 +1258,6 @@ ack.m_port = ap.GetPort(); m_phoneDevice.SendSkinnyMsg(ack); } - else - mediaSession->SetRemoteAddress(info.m_mediaAddress); StartMediaStreams(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-24 17:58:10
|
Revision: 34645 http://sourceforge.net/p/opalvoip/code/34645 Author: rjongbloed Date: 2016-02-24 17:58:08 +0000 (Wed, 24 Feb 2016) Log Message: ----------- Added scripting language, if available, to VXML. Modified Paths: -------------- ptlib/branches/v2_16/include/ptclib/vxml.h ptlib/branches/v2_16/src/ptclib/vxml.cxx Modified: ptlib/branches/v2_16/include/ptclib/vxml.h =================================================================== --- ptlib/branches/v2_16/include/ptclib/vxml.h 2016-02-24 17:19:11 UTC (rev 34644) +++ ptlib/branches/v2_16/include/ptclib/vxml.h 2016-02-24 17:58:08 UTC (rev 34645) @@ -44,6 +44,7 @@ #include <ptclib/pwavfile.h> #include <ptclib/ptts.h> #include <ptclib/url.h> +#include <ptclib/script.h> #include <queue> @@ -329,6 +330,9 @@ PStringToString m_variables; PString m_variableScope; +#if P_SCRIPTS + PScriptLanguage *m_scriptContext; +#endif std::queue<char> m_userInputQueue; PDECLARE_MUTEX(m_userInputMutex); Modified: ptlib/branches/v2_16/src/ptclib/vxml.cxx =================================================================== --- ptlib/branches/v2_16/src/ptclib/vxml.cxx 2016-02-24 17:19:11 UTC (rev 34644) +++ ptlib/branches/v2_16/src/ptclib/vxml.cxx 2016-02-24 17:58:08 UTC (rev 34645) @@ -167,7 +167,11 @@ #define MEDIUM_BREAK_MSECS 2500 #define LARGE_BREAK_MSECS 5000 +static PConstString ApplicationScope("application"); +static PConstString DialogScope("dialog"); +static PConstString PropertyScope("property"); + ////////////////////////////////////////////////////////// PVXMLPlayable::PVXMLPlayable() @@ -759,6 +763,17 @@ , m_transferStatus(NotTransfering) , m_transferStartTime(0) { +#if P_SCRIPTS + m_scriptContext = PScriptLanguage::Create("Java"); + if (m_scriptContext == NULL) + m_scriptContext = PScriptLanguage::Create("Lua"); // Back up + if (m_scriptContext != NULL) { + m_scriptContext->CreateComposite(ApplicationScope); + m_scriptContext->CreateComposite(DialogScope); + m_scriptContext->CreateComposite(PropertyScope); + } +#endif + SetVar("property.timeout" , "10s"); SetVar("property.bargein", "true"); } @@ -770,6 +785,10 @@ if (m_autoDeleteTextToSpeech) delete m_textToSpeech; + +#if P_SCRIPTS + delete m_scriptContext; +#endif } @@ -913,7 +932,7 @@ return false; } - m_variableScope = m_variableScope.IsEmpty() ? "application" : "document"; + m_variableScope = m_variableScope.IsEmpty() ? ApplicationScope : "document"; PURL pathURL = m_rootURL; pathURL.ChangePath(PString::Empty()); // Remove last element of root URL @@ -1495,6 +1514,16 @@ PString PVXMLSession::EvaluateExpr(const PString & expr) { +#if P_SCRIPTS + if (m_scriptContext != NULL) { + static PConstString const EvalVarName("PTLibEvaluateExpressionResult"); + if (m_scriptContext->Run(PSTRSTRM(EvalVarName<<'='<<expr))) + return m_scriptContext->GetString(EvalVarName); + PTRACE(2, "VXML\tCould not evaluate expression \"" << expr << "\" with script language " << m_scriptContext->GetLanguageName()); + return PString::Empty(); + } +#endif + // Should be full ECMAScript but ... // We only support expressions of the form 'literal'+variable or all digits @@ -1544,6 +1573,11 @@ if (varName.Find('.') == P_MAX_INDEX) fullVarName = m_variableScope+'.'+varName; +#if P_SCRIPTS + if (m_scriptContext != NULL) + return m_scriptContext->GetString(fullVarName); +#endif + return m_variables(fullVarName); } @@ -1554,6 +1588,11 @@ if (varName.Find('.') == P_MAX_INDEX) fullVarName = m_variableScope+'.'+varName; +#if P_SCRIPTS + if (m_scriptContext != NULL) + m_scriptContext->SetString(fullVarName, value); +#endif + m_variables.SetAt(fullVarName, value); } @@ -2268,14 +2307,14 @@ PBoolean PVXMLSession::TraverseForm(PXMLElement &) { - m_variableScope = "dialog"; + m_variableScope = DialogScope; return true; } PBoolean PVXMLSession::TraversedForm(PXMLElement &) { - m_variableScope = "application"; + m_variableScope = ApplicationScope; return true; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-24 17:19:13
|
Revision: 34644 http://sourceforge.net/p/opalvoip/code/34644 Author: rjongbloed Date: 2016-02-24 17:19:11 +0000 (Wed, 24 Feb 2016) Log Message: ----------- Fixed PScriptLanguage::CreateCall() and various other minor bugs in scripting code. Also added functions to get the current language name for the PScriptLanguage instance. Modified Paths: -------------- opal/branches/v3_16/samples/server/main.cxx ptlib/branches/v2_16/include/ptclib/jscript.h ptlib/branches/v2_16/include/ptclib/lua.h ptlib/branches/v2_16/include/ptclib/script.h ptlib/branches/v2_16/src/ptclib/jscript.cxx ptlib/branches/v2_16/src/ptclib/lua.cxx ptlib/branches/v2_16/src/ptclib/script.cxx Modified: opal/branches/v3_16/samples/server/main.cxx =================================================================== --- opal/branches/v3_16/samples/server/main.cxx 2016-02-24 15:31:10 UTC (rev 34643) +++ opal/branches/v3_16/samples/server/main.cxx 2016-02-24 17:19:11 UTC (rev 34644) @@ -690,11 +690,8 @@ #endif #if OPAL_SCRIPT - PFactory<PScriptLanguage>::KeyList_T keys = PFactory<PScriptLanguage>::GetKeyList(); - if (!keys.empty()) { - PStringArray languages; - for (PFactory<PScriptLanguage>::KeyList_T::iterator it = keys.begin(); it != keys.end(); ++it) - languages.AppendString(*it); + PStringArray languages = PScriptLanguage::GetLanguages(); + if (!languages.empty()) { PCaselessString language = cfg.GetString(ScriptLanguageKey, languages[0]); rsrc->Add(new PHTTPRadioField(ScriptLanguageKey, languages, languages.GetValuesIndex(language),"Interpreter script language.")); Modified: ptlib/branches/v2_16/include/ptclib/jscript.h =================================================================== --- ptlib/branches/v2_16/include/ptclib/jscript.h 2016-02-24 15:31:10 UTC (rev 34643) +++ ptlib/branches/v2_16/include/ptclib/jscript.h 2016-02-24 17:19:11 UTC (rev 34644) @@ -62,8 +62,14 @@ ~PJavaScript(); //@} - /**@name Path addition functions */ + /**@name Scripting functions */ //@{ + /// Get the name of this scripting language + static PString LanguageName(); + + /// Get the name of this scripting language + virtual PString GetLanguageName() const; + /**Load a JavaScript script from a file. */ virtual bool LoadFile( Modified: ptlib/branches/v2_16/include/ptclib/lua.h =================================================================== --- ptlib/branches/v2_16/include/ptclib/lua.h 2016-02-24 15:31:10 UTC (rev 34643) +++ ptlib/branches/v2_16/include/ptclib/lua.h 2016-02-24 17:19:11 UTC (rev 34644) @@ -71,8 +71,14 @@ ~PLua(); //@} - /**@name Path addition functions */ + /**@name Scripting functions */ //@{ + /// Get the name of this scripting language + static PString LanguageName(); + + /// Get the name of this scripting language + virtual PString GetLanguageName() const; + /**Load a Lua script from a file. */ virtual bool LoadFile( Modified: ptlib/branches/v2_16/include/ptclib/script.h =================================================================== --- ptlib/branches/v2_16/include/ptclib/script.h 2016-02-24 15:31:10 UTC (rev 34643) +++ ptlib/branches/v2_16/include/ptclib/script.h 2016-02-24 17:19:11 UTC (rev 34644) @@ -48,7 +48,14 @@ { PCLASSINFO(PScriptLanguage, PObject) public: - static PScriptLanguage * Create(const PString & language); + static PScriptLanguage * Create(const PString & language) + { + return PFactory<PScriptLanguage>::CreateInstance(language); + } + static PStringList GetLanguages() + { + return PFactory<PScriptLanguage>::GetKeyList(); + } /**@name Construction */ //@{ @@ -60,8 +67,11 @@ ~PScriptLanguage(); //@} - /**@name Path addition functions */ + /**@name Scripting functions */ //@{ + /// Get the name of this scripting language + virtual PString GetLanguageName() const = 0; + /**Load a script from a file. */ virtual bool LoadFile( Modified: ptlib/branches/v2_16/src/ptclib/jscript.cxx =================================================================== --- ptlib/branches/v2_16/src/ptclib/jscript.cxx 2016-02-24 15:31:10 UTC (rev 34643) +++ ptlib/branches/v2_16/src/ptclib/jscript.cxx 2016-02-24 17:19:11 UTC (rev 34644) @@ -75,7 +75,8 @@ #define PTraceModule() "JavaScript" -PFACTORY_CREATE(PFactory<PScriptLanguage>, PJavaScript, "Java", false); +static PConstString const JavaName("Java"); +PFACTORY_CREATE(PFactory<PScriptLanguage>, PJavaScript, JavaName, false); static atomic<bool> V8_initialised; @@ -250,16 +251,16 @@ } - void SetMember(v8::Handle<v8::Object> object, const PString & name, v8::Handle<v8::Value> value) + bool SetMember(v8::Handle<v8::Object> object, const PString & name, v8::Handle<v8::Value> value) { if (m_isolate == NULL) - return; + return false; // set flags if array access if (name[0] == '[') - object->Set(name.Mid(1).AsInteger(), value); + return object->Set(name.Mid(1).AsInteger(), value); else - object->Set(NewString(name), value); + return object->Set(NewString(name), value); } @@ -346,6 +347,12 @@ } + bool NewObject(const PString & name) + { + return false; + } + + bool SetVar(const PString & key, const PVarType & var) { if (m_isolate == NULL) @@ -358,40 +365,34 @@ PStringArray tokens; if (ParseKey(key, tokens) < 1) { - PTRACE(5, "SetVar '" << key << " is too short"); + PTRACE(3, "SetVar \"" << key << "\" is too short"); return false; } v8::Handle<v8::Object> object = context->Global(); - int i = 0; - - while (i > 0) { - + PINDEX i; + for (i = 0; i < tokens.GetSize()-1; ++i) { // get the member variable v8::Handle<v8::Value> value = GetMember(object, tokens[i]); if (value.IsEmpty()) { - PTRACE(5, "Cannot get element '" << tokens[i] << "'"); + PTRACE(3, "Cannot get element \"" << tokens[i] << '"'); return false; } + // if path has ended, return error + object = value->ToObject(); + if (object.IsEmpty()) { + PTRACE(3, "SetVar intermediate element \"" << tokens[i] << "\" not found"); + return false; + } + // terminals must not be composites, internal nodes must be composites bool isObject = value->IsObject(); if (!isObject) { - tokens.SetSize(i + 1); - PTRACE(5, "GetVar intermediate node '" << setfill('.') << tokens << "' is not a composite"); + PTRACE(3, "SetVar intermediate element \"" << tokens[i] << "\" is not a composite"); return false; } - - // if path has ended, return error - object = value->ToObject(); - if (object->IsNull()) { - tokens.SetSize(i + 1); - PTRACE(5, "GetVar intermediate node '" << setfill('.') << tokens << " not found"); - return false; - } - - i++; } v8::Handle<v8::Value> value; @@ -439,11 +440,11 @@ case PVarType::VarStaticBinary: case PVarType::VarDynamicBinary: default: + value = v8::Object::New(m_isolate); break; } - SetMember(object, tokens[i], value); - return true; + return SetMember(object, tokens[i], value); } @@ -502,6 +503,18 @@ } +PString PJavaScript::LanguageName() +{ + return JavaName; +} + + +PString PJavaScript::GetLanguageName() const +{ + return JavaName; +} + + bool PJavaScript::LoadFile(const PFilePath & /*filename*/) { return false; @@ -520,9 +533,11 @@ } -bool PJavaScript::CreateComposite(const PString & /*name*/) +bool PJavaScript::CreateComposite(const PString & name) { - return false; + PVarType dummy; + dummy.SetType(PVarType::VarStaticBinary); + return m_private->SetVar(name, dummy); } Modified: ptlib/branches/v2_16/src/ptclib/lua.cxx =================================================================== --- ptlib/branches/v2_16/src/ptclib/lua.cxx 2016-02-24 15:31:10 UTC (rev 34643) +++ ptlib/branches/v2_16/src/ptclib/lua.cxx 2016-02-24 17:19:11 UTC (rev 34644) @@ -56,7 +56,8 @@ #define PTraceModule() "Lua" -PFACTORY_CREATE(PFactory<PScriptLanguage>, PLua, "Lua", false); +static PConstString const LuaName("Lua"); +PFACTORY_CREATE(PFactory<PScriptLanguage>, PLua, LuaName, false); #define new PNEW @@ -109,6 +110,18 @@ } +PString PLua::LanguageName() +{ + return LuaName; +} + + +PString PLua::GetLanguageName() const +{ + return LuaName; +} + + bool PLua::LoadFile(const PFilePath & filename) { PWaitAndSignal mutex(m_mutex); @@ -612,7 +625,7 @@ if (luaError.IsEmpty()) OnError(code, psprintf("Error code %i", code)); else - OnError(code, str); + OnError(code, luaError); } if (pop > 0) Modified: ptlib/branches/v2_16/src/ptclib/script.cxx =================================================================== --- ptlib/branches/v2_16/src/ptclib/script.cxx 2016-02-24 15:31:10 UTC (rev 34643) +++ ptlib/branches/v2_16/src/ptclib/script.cxx 2016-02-24 17:19:11 UTC (rev 34644) @@ -74,7 +74,7 @@ m_lastErrorText = str; m_mutex.Signal(); - PTRACE(2, GetClass(), "Error " << code << ": " << str); + PTRACE(2, GetLanguageName(), "Error " << code << ": " << str); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-24 15:31:12
|
Revision: 34643 http://sourceforge.net/p/opalvoip/code/34643 Author: rjongbloed Date: 2016-02-24 15:31:10 +0000 (Wed, 24 Feb 2016) Log Message: ----------- Fixed skinny extra channel simulation, part 2. Modified Paths: -------------- opal/trunk/include/ep/skinnyep.h opal/trunk/src/ep/skinnyep.cxx Modified: opal/trunk/include/ep/skinnyep.h =================================================================== --- opal/trunk/include/ep/skinnyep.h 2016-02-24 15:02:09 UTC (rev 34642) +++ opal/trunk/include/ep/skinnyep.h 2016-02-24 15:31:10 UTC (rev 34643) @@ -786,7 +786,7 @@ mutable unsigned m_sessionId; }; void OpenMediaChannel(const MediaInfo & info); - void OpenSimulatedMediaChannel(unsigned sessionId, const OpalMediaFormat & mediaFormat); + void OpenSimulatedMediaChannel(const MediaInfo & info, const OpalMediaFormat & mediaFormat); void DelayCloseMediaStream(OpalMediaStreamPtr mediaStream); OpalSkinnyEndPoint & m_endpoint; Modified: opal/trunk/src/ep/skinnyep.cxx =================================================================== --- opal/trunk/src/ep/skinnyep.cxx 2016-02-24 15:02:09 UTC (rev 34642) +++ opal/trunk/src/ep/skinnyep.cxx 2016-02-24 15:31:10 UTC (rev 34643) @@ -1229,20 +1229,17 @@ return; } - if (!info.m_receiver) - mediaSession->SetRemoteAddress(info.m_mediaAddress); - bool canSimulate = !info.m_receiver && !m_endpoint.GetSimulatedAudioFile().IsEmpty() && mediaType == OpalMediaType::Audio(); if (canSimulate && info.m_sessionId > 1 && m_endpoint.IsSecondaryAudioAlwaysSimulated()) { - OpenSimulatedMediaChannel(info.m_sessionId, mediaFormat); + OpenSimulatedMediaChannel(info, mediaFormat); return; } if (!ownerCall.OpenSourceMediaStreams(*con, mediaType, info.m_sessionId, mediaFormat)) { PTRACE(2, "Could not open " << (info.m_receiver ? 'r' : 't') << "x " << mediaType << " stream, session=" << info.m_sessionId); if (canSimulate) - OpenSimulatedMediaChannel(info.m_sessionId, mediaFormat); + OpenSimulatedMediaChannel(info, mediaFormat); return; } @@ -1258,32 +1255,40 @@ ack.m_port = ap.GetPort(); m_phoneDevice.SendSkinnyMsg(ack); } + else + mediaSession->SetRemoteAddress(info.m_mediaAddress); StartMediaStreams(); } -void OpalSkinnyConnection::OpenSimulatedMediaChannel(unsigned sessionId, const OpalMediaFormat & mediaFormat) +void OpalSkinnyConnection::OpenSimulatedMediaChannel(const MediaInfo & info, const OpalMediaFormat & mediaFormat) { - m_simulatedTransmitters.insert(sessionId); + m_simulatedTransmitters.insert(info.m_sessionId); - OpalMediaSession * mediaSession = GetMediaSession(sessionId); + OpalMediaSession * mediaSession = GetMediaSession(info.m_sessionId); if (mediaSession == NULL) { - PTRACE(2, "No session " << sessionId << " for " << mediaFormat << " to simulate"); + PTRACE(2, "No session " << info.m_sessionId << " for " << mediaFormat << " to simulate"); return; } - // If dummy session, replace with real RTP session - if (dynamic_cast<OpalRTPSession *>(mediaSession) == NULL) - ReplaceMediaSession(sessionId, new OpalRTPSession(OpalMediaSession::Init(*this, sessionId, mediaFormat.GetMediaType(), false))); + if (dynamic_cast<OpalRTPSession *>(mediaSession) == NULL) { + mediaSession = new OpalRTPSession(OpalMediaSession::Init(*this, info.m_sessionId, mediaFormat.GetMediaType(), false)); + if (!mediaSession->Open(m_phoneDevice.m_transport.GetInterface(), info.m_mediaAddress)) { + PTRACE(2, "Could not open RTP session " << info.m_sessionId << " for " << mediaFormat << " using " << info.m_mediaAddress); + delete mediaSession; + return; + } + mediaSession->SetRemoteAddress(info.m_mediaAddress); + m_sessions.SetAt(info.m_sessionId, mediaSession); + } - // Open the RTP stream - OpalMediaStreamPtr sinkStream = OpenMediaStream(mediaFormat, sessionId, false); + OpalMediaStreamPtr sinkStream = OpenMediaStream(mediaFormat, info.m_sessionId, false); if (sinkStream == NULL) return; +#if OPAL_PTLIB_WAVFILE std::auto_ptr<OpalMediaStream> sourceStream; -#if OPAL_PTLIB_WAVFILE { std::auto_ptr<OpalWAVFile> wavFile(new OpalWAVFile(m_endpoint.GetSimulatedAudioFile(), PFile::ReadOnly, @@ -1291,40 +1296,40 @@ PWAVFile::fmt_PCM, false)); if (!wavFile->IsOpen()) { - PTRACE(3, "Could not simulate transmit " << mediaFormat << " stream, session=" << sessionId + PTRACE(3, "Could not simulate transmit " << mediaFormat << " stream, session=" << info.m_sessionId << ", file=" << m_endpoint.GetSimulatedAudioFile() << ": " << wavFile->GetErrorText()); return; } if (wavFile->GetFormatString() == mediaFormat) - sourceStream.reset(new OpalFileMediaStream(*this, mediaFormat, sessionId, true, wavFile.release())); + sourceStream.reset(new OpalFileMediaStream(*this, mediaFormat, info.m_sessionId, true, wavFile.release())); else { if (!wavFile->SetAutoconvert()) { - PTRACE(3, "Could not simulate transmit " << mediaFormat << " stream, session=" << sessionId + PTRACE(3, "Could not simulate transmit " << mediaFormat << " stream, session=" << info.m_sessionId << ", file=" << m_endpoint.GetSimulatedAudioFile() << ": unsupported codec"); return; } - sourceStream.reset(new OpalFileMediaStream(*this, OpalPCM16, sessionId, true, wavFile.release())); + sourceStream.reset(new OpalFileMediaStream(*this, OpalPCM16, info.m_sessionId, true, wavFile.release())); } } #else - sourceStream.reset(new OpalNullMediaStream(*this, OpalPCM16, sessionId, true, true, true)); + sourceStream.reset(new OpalNullMediaStream(*this, OpalPCM16, info.m_sessionId, true, true)); #endif if (!sourceStream->Open()) { - PTRACE(2, "Could not open stream for simulated transmit " << mediaFormat << " stream, session=" << sessionId); + PTRACE(2, "Could not open stream for simulated transmit " << mediaFormat << " stream, session=" << info.m_sessionId); return; } OpalMediaPatchPtr patch = m_endpoint.GetManager().CreateMediaPatch(*sourceStream, true); if (patch == NULL || !patch->AddSink(sinkStream)) { - PTRACE(2, "Could not create patch for simulated transmit " << mediaFormat << " stream, session=" << sessionId); + PTRACE(2, "Could not create patch for simulated transmit " << mediaFormat << " stream, session=" << info.m_sessionId); return; } mediaStreams.Append(sourceStream.release()); - PTRACE(3, "Simulating transmit " << mediaFormat << " stream, session=" << sessionId << ", file=" << m_endpoint.GetSimulatedAudioFile()); + PTRACE(3, "Simulating transmit " << mediaFormat << " stream, session=" << info.m_sessionId << ", file=" << m_endpoint.GetSimulatedAudioFile()); StartMediaStreams(); } @@ -1387,8 +1392,12 @@ return; unsigned sessionId = stream.GetSessionID(); - if (m_simulatedTransmitters.find(sessionId) == m_simulatedTransmitters.end()) - OpenSimulatedMediaChannel(sessionId, stream.GetMediaFormat()); + if (m_simulatedTransmitters.find(sessionId) == m_simulatedTransmitters.end()) { + for (std::set<MediaInfo>::iterator it = m_passThruMedia.begin(); it != m_passThruMedia.end(); ++it) { + if (!it->m_receiver && it->m_sessionId == sessionId) + OpenSimulatedMediaChannel(*it, stream.GetMediaFormat()); + } + } else { PTRACE(4, "Session " << sessionId << " had already tried simulation, not trying again."); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-24 15:02:12
|
Revision: 34642 http://sourceforge.net/p/opalvoip/code/34642 Author: rjongbloed Date: 2016-02-24 15:02:09 +0000 (Wed, 24 Feb 2016) Log Message: ----------- Added ability to have separate passwords for each H.323 alias on gatekeeper registration, thanks Andrea Guardascione Modified Paths: -------------- opal/trunk/include/h323/h323ep.h opal/trunk/samples/server/h323serv.cxx opal/trunk/src/h323/h323ep.cxx Modified: opal/trunk/include/h323/h323ep.h =================================================================== --- opal/trunk/include/h323/h323ep.h 2016-02-22 12:13:39 UTC (rev 34641) +++ opal/trunk/include/h323/h323ep.h 2016-02-24 15:02:09 UTC (rev 34642) @@ -351,6 +351,13 @@ const PString & username = PString::Empty() ); + /** Set the password for specific alias. + */ + void SetAliasPasswords( + const PStringToString & aliasPasswords, + const PString & defaultAddress + ); + /**Get the H.235 username for the gatekeeper. */ virtual const PString & GetGatekeeperUsername() const { return m_gatekeeperUsername; } @@ -1354,6 +1361,7 @@ bool InternalStartGatekeeper(const H323TransportAddress & remoteAddress, const PString & localAddress); bool InternalRestartGatekeeper(bool adjustingRegistrations = true); bool InternalCreateGatekeeper(const H323TransportAddress & remoteAddress, const PStringList & aliases); + void InternalSetGatekeeperPassword(H323Gatekeeper& gatekeeper, const OpalTransportAddress& gatekeeperAddress) const; H323Connection * InternalMakeCall( OpalCall & call, @@ -1451,6 +1459,8 @@ bool m_gatekeeperSimulatePattern; bool m_gatekeeperRasRedirect; PTimedMutex m_gatekeeperMutex; + PStringToString m_aliasPasswords; + PString m_aliasPwdDefaultAddress; #if OPAL_H450 H323CallIdentityDict m_secondaryConnectionsActive; Modified: opal/trunk/samples/server/h323serv.cxx =================================================================== --- opal/trunk/samples/server/h323serv.cxx 2016-02-22 12:13:39 UTC (rev 34641) +++ opal/trunk/samples/server/h323serv.cxx 2016-02-24 15:02:09 UTC (rev 34642) @@ -82,12 +82,43 @@ static const char AliasRouteMapsName[] = "Gatekeeper Alias Route Maps"; static const char AliasRouteMapsKey[] = "Route Maps\\Mapping %u\\"; +#define H323RegistrationSection "H.323 Registration\\" +#define H323RegistrationNewSection H323RegistrationSection"New" +#define H323RegistrationEncryptedSection H323RegistrationSection"Encrypted" + +static const PINDEX H323GatekeeperPasswordSize = 30; + #define PTraceModule() "OpalServer" #define new PNEW /////////////////////////////////////////////////////////////// +static PStringToString GetMyAliasPasswords(PConfig & cfg) +{ + PStringToString clearPwd; + + PStringToString encryptedPwd = cfg.GetAllKeyValues(H323RegistrationEncryptedSection); + for (PStringToString::iterator encryptedPwdIter = encryptedPwd.begin(); encryptedPwdIter != encryptedPwd.end(); ++encryptedPwdIter) + { + clearPwd.SetAt(encryptedPwdIter->first, PHTTPPasswordField::Decrypt(encryptedPwdIter->second)); + } + + PStringToString newPwd = cfg.GetAllKeyValues(H323RegistrationNewSection); + for (PStringToString::iterator newPwdIter = newPwd.begin(); newPwdIter != newPwd.end(); ++newPwdIter) + { + PHTTPPasswordField encryptedValue("", H323GatekeeperPasswordSize, newPwdIter->second); + cfg.SetString(H323RegistrationEncryptedSection, newPwdIter->first, encryptedValue.GetValue()); + cfg.DeleteKey(H323RegistrationNewSection, newPwdIter->first); + } + + clearPwd.Merge(newPwd, PStringToString::MergeAction::e_MergeOverwrite); + return clearPwd; +} + + +/////////////////////////////////////////////////////////////// + MyH323EndPoint::MyH323EndPoint(MyManager & mgr) : H323ConsoleEndPoint(mgr) , m_manager(mgr) @@ -158,6 +189,8 @@ PString gkAddress = rsrc->AddStringField(GatekeeperAddressKey, 0, PString::Empty(), "IP/hostname of gatekeeper to register with, if blank a broadcast is used", 1, 30); + SetAliasPasswords(GetMyAliasPasswords(cfg), gkAddress); + PString gkIdentifier = rsrc->AddStringField(RemoteGatekeeperIdentifierKey, 0, PString::Empty(), "Gatekeeper identifier to register with, if blank any gatekeeper is used", 1, 30); @@ -167,7 +200,7 @@ PString gkPassword = PHTTPPasswordField::Decrypt(cfg.GetString(GatekeeperPasswordKey)); if (!gkPassword) SetGatekeeperPassword(gkPassword); - rsrc->Add(new PHTTPPasswordField(GatekeeperPasswordKey, 30, gkPassword, + rsrc->Add(new PHTTPPasswordField(GatekeeperPasswordKey, H323GatekeeperPasswordSize, gkPassword, "Password for gatekeeper authentication, user is the first alias")); SetGkAccessTokenOID(rsrc->AddStringField(GatekeeperTokenOIDKey, 0, GetGkAccessTokenOID(), Modified: opal/trunk/src/h323/h323ep.cxx =================================================================== --- opal/trunk/src/h323/h323ep.cxx 2016-02-22 12:13:39 UTC (rev 34641) +++ opal/trunk/src/h323/h323ep.cxx 2016-02-24 15:02:09 UTC (rev 34642) @@ -641,7 +641,8 @@ gatekeeper->m_aliases += alias->GetPointer(); // Don't make reference gatekeeper->m_aliasMutex.Signal(); - gatekeeper->SetPassword(GetGatekeeperPassword(), GetGatekeeperUsername()); + InternalSetGatekeeperPassword(*gatekeeper, remoteAddress); + m_gatekeepers.Append(gatekeeper); if (remoteAddress.IsEmpty()) @@ -720,10 +721,39 @@ m_gatekeeperPassword = password; for (GatekeeperList::iterator it = m_gatekeepers.begin(); it != m_gatekeepers.end(); ++it) - it->SetPassword(GetGatekeeperPassword(), GetGatekeeperUsername()); + InternalSetGatekeeperPassword(*it, it->transport->GetRemoteAddress()); } +void H323EndPoint::SetAliasPasswords(const PStringToString & aliasPasswords, const PString & defaultAddress) +{ + m_aliasPasswords = aliasPasswords; + m_aliasPwdDefaultAddress = defaultAddress; +} + + +void H323EndPoint::InternalSetGatekeeperPassword(H323Gatekeeper& gatekeeper, const OpalTransportAddress& gatekeeperAddress) const +{ + PString alias; + gatekeeper.m_aliasMutex.Wait(); + if (gatekeeper.m_aliases.size() == 1) + alias = gatekeeper.m_aliases[0]; + gatekeeper.m_aliasMutex.Signal(); + + if (!alias.IsEmpty()) { + PIPSocket::Address ip; + PString gkAddress = (gatekeeperAddress.GetIpAddress(ip) && !ip.IsAny()) ? ip.AsString() : m_aliasPwdDefaultAddress; + PStringToString::const_iterator pwdIter = m_aliasPasswords.find(alias + '@' + gkAddress); + if (pwdIter != m_aliasPasswords.end()) { + gatekeeper.SetPassword(pwdIter->second, GetGatekeeperUsername()); + return; + } + } + + gatekeeper.SetPassword(GetGatekeeperPassword(), GetGatekeeperUsername()); +} + + void H323EndPoint::SetGatekeeperAliasLimit(PINDEX limit) { PWaitAndSignal mutex(m_gatekeeperMutex); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-22 12:13:42
|
Revision: 34641 http://sourceforge.net/p/opalvoip/code/34641 Author: rjongbloed Date: 2016-02-22 12:13:39 +0000 (Mon, 22 Feb 2016) Log Message: ----------- Fixed skinny extra channel simulation. Modified Paths: -------------- opal/trunk/src/ep/skinnyep.cxx opal/trunk/src/opal/mediasession.cxx opal/trunk/src/rtp/rtpconn.cxx Modified: opal/trunk/src/ep/skinnyep.cxx =================================================================== --- opal/trunk/src/ep/skinnyep.cxx 2016-02-21 12:41:51 UTC (rev 34640) +++ opal/trunk/src/ep/skinnyep.cxx 2016-02-22 12:13:39 UTC (rev 34641) @@ -1273,23 +1273,17 @@ return; } - if (dynamic_cast<OpalRTPSession *>(mediaSession) == NULL) { - OpalTransportAddress mediaAddress = mediaSession->GetRemoteAddress(); - mediaSession = new OpalRTPSession(OpalMediaSession::Init(*this, sessionId, mediaFormat.GetMediaType(), false)); - if (!mediaSession->Open(m_phoneDevice.m_transport.GetInterface(), mediaAddress)) { - PTRACE(2, "Could not open RTP session " << sessionId << " for " << mediaFormat << " using " << mediaAddress); - delete mediaSession; - return; - } - m_sessions.SetAt(sessionId, mediaSession); - } + // If dummy session, replace with real RTP session + if (dynamic_cast<OpalRTPSession *>(mediaSession) == NULL) + ReplaceMediaSession(sessionId, new OpalRTPSession(OpalMediaSession::Init(*this, sessionId, mediaFormat.GetMediaType(), false))); + // Open the RTP stream OpalMediaStreamPtr sinkStream = OpenMediaStream(mediaFormat, sessionId, false); if (sinkStream == NULL) return; + std::auto_ptr<OpalMediaStream> sourceStream; #if OPAL_PTLIB_WAVFILE - std::auto_ptr<OpalMediaStream> sourceStream; { std::auto_ptr<OpalWAVFile> wavFile(new OpalWAVFile(m_endpoint.GetSimulatedAudioFile(), PFile::ReadOnly, @@ -1313,6 +1307,9 @@ sourceStream.reset(new OpalFileMediaStream(*this, OpalPCM16, sessionId, true, wavFile.release())); } } +#else + sourceStream.reset(new OpalNullMediaStream(*this, OpalPCM16, sessionId, true, true, true)); +#endif if (!sourceStream->Open()) { PTRACE(2, "Could not open stream for simulated transmit " << mediaFormat << " stream, session=" << sessionId); @@ -1329,9 +1326,6 @@ PTRACE(3, "Simulating transmit " << mediaFormat << " stream, session=" << sessionId << ", file=" << m_endpoint.GetSimulatedAudioFile()); StartMediaStreams(); -#else - PTRACE(3, "Cannot simulate transmit " << mediaFormat << " stream, session=" << sessionId << ", file=" << m_endpoint.GetSimulatedAudioFile()); -#endif } Modified: opal/trunk/src/opal/mediasession.cxx =================================================================== --- opal/trunk/src/opal/mediasession.cxx 2016-02-21 12:41:51 UTC (rev 34640) +++ opal/trunk/src/opal/mediasession.cxx 2016-02-22 12:13:39 UTC (rev 34641) @@ -1204,13 +1204,13 @@ , m_remoteBehindNAT(init.m_remoteBehindNAT) { PTRACE_CONTEXT_ID_FROM(init.m_connection); - PTRACE(5, *this << "created for " << m_mediaType); + PTRACE(5, *this << "created " << this << " for " << m_mediaType); } OpalMediaSession::~OpalMediaSession() { - PTRACE(5, *this << "destroyed."); + PTRACE(5, *this << "destroyed " << this); } Modified: opal/trunk/src/rtp/rtpconn.cxx =================================================================== --- opal/trunk/src/rtp/rtpconn.cxx 2016-02-21 12:41:51 UTC (rev 34640) +++ opal/trunk/src/rtp/rtpconn.cxx 2016-02-22 12:13:39 UTC (rev 34641) @@ -436,6 +436,7 @@ return; } + PTRACE(3, "Released session " << sessionID); it->second->Close(); OpalRTPSession * rtpSession = dynamic_cast<OpalRTPSession *>(&*it->second); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-21 12:41:53
|
Revision: 34640 http://sourceforge.net/p/opalvoip/code/34640 Author: rjongbloed Date: 2016-02-21 12:41:51 +0000 (Sun, 21 Feb 2016) Log Message: ----------- Disable all XML entity expansion, unless re-enabled via PCML::Option, to finally protect against "billion laughs" attack. The previous mothod did not protect against expansion within element attributes, only in data. Modified Paths: -------------- ptlib/branches/v2_16/include/ptclib/pxml.h ptlib/branches/v2_16/src/ptclib/pxml.cxx Modified: ptlib/branches/v2_16/include/ptclib/pxml.h =================================================================== --- ptlib/branches/v2_16/include/ptclib/pxml.h 2016-02-19 12:26:00 UTC (rev 34639) +++ ptlib/branches/v2_16/include/ptclib/pxml.h 2016-02-21 12:41:51 UTC (rev 34640) @@ -54,12 +54,12 @@ PCLASSINFO(PXMLBase, PObject); public: enum { - DEFAULT_MAX_ENTITY_LENGTH = 4096 + DEFAULT_MAX_ENTITY_LENGTH = 65536 }; P_DECLARE_BITWISE_ENUM_EX( Options, - 7, + 8, ( NoOptions, Indent, @@ -68,9 +68,10 @@ NoIgnoreWhiteSpace, CloseExtended, WithNS, - FragmentOnly + FragmentOnly, + ExpandEntities ), - AllOptions = (1<<(6+1))-1 + AllOptions = (1<<8)-1 ); enum StandAloneType { @@ -499,7 +500,7 @@ class PXMLParserBase { protected: - PXMLParserBase(bool withNS); + PXMLParserBase(PXMLBase::Options options); public: ~PXMLParserBase(); @@ -515,6 +516,14 @@ virtual void StartElement(const char * name, const char **attrs) = 0; virtual void EndElement(const char * name) = 0; virtual void AddCharacterData(const char * data, int len) = 0; + virtual void Entity(const char *entityName, + int is_parameter_entity, + const char *value, + int value_length, + const char *base, + const char *systemId, + const char *publicId, + const char *notationName); virtual bool Progress() { return true; } @@ -530,6 +539,7 @@ off_t m_consumed; unsigned m_percent; bool m_userAborted; + bool m_expandEntities; }; Modified: ptlib/branches/v2_16/src/ptclib/pxml.cxx =================================================================== --- ptlib/branches/v2_16/src/ptclib/pxml.cxx 2016-02-19 12:26:00 UTC (rev 34639) +++ ptlib/branches/v2_16/src/ptclib/pxml.cxx 2016-02-21 12:41:51 UTC (rev 34640) @@ -122,14 +122,29 @@ } -PXMLParserBase::PXMLParserBase(bool withNS) +static void PXML_EntityDeclHandler(void *userData, + const XML_Char *entityName, + int is_parameter_entity, + const XML_Char *value, + int value_length, + const XML_Char *base, + const XML_Char *systemId, + const XML_Char *publicId, + const XML_Char *notationName) +{ + ((PXMLParserBase *)userData)->Entity(entityName, is_parameter_entity, value, value_length, base, systemId, publicId, notationName); +} + + +PXMLParserBase::PXMLParserBase(PXMLBase::Options options) : m_parsing(true) , m_total(0) , m_consumed(0) , m_percent(0) , m_userAborted(false) + , m_expandEntities(options & PXMLBase::ExpandEntities) { - if (withNS) + if (options & PXMLBase::WithNS) m_context = XML_ParserCreateNS(NULL, '|'); else m_context = XML_ParserCreate(NULL); @@ -141,6 +156,7 @@ XML_SetXmlDeclHandler (MY_CONTEXT, PXML_XmlDeclHandler); XML_SetDoctypeDeclHandler (MY_CONTEXT, PXML_StartDocTypeDecl, PXML_EndDocTypeDecl); XML_SetNamespaceDeclHandler(MY_CONTEXT, PXML_StartNamespaceDeclHandler, PXML_EndNamespaceDeclHandler); + XML_SetEntityDeclHandler (MY_CONTEXT, PXML_EntityDeclHandler); } @@ -238,7 +254,7 @@ PXMLParser::PXMLParser(PXML & doc, Options options, off_t progressTotal) : PXMLBase(options) - , PXMLParserBase(options & WithNS) + , PXMLParserBase(options) , m_document(doc) , m_currentElement(NULL) , m_lastData(NULL) @@ -335,7 +351,7 @@ unsigned checkLen = len + ((m_lastData != NULL) ? m_lastData->GetString().GetLength() : 0); if (checkLen >= m_maxEntityLength) { PTRACE(2, "PXML\tAborting XML parse at size " << m_maxEntityLength << " - possible 'billion laugh' attack"); - XML_StopParser((XML_Parser)m_context, XML_FALSE); + XML_StopParser(MY_CONTEXT, XML_FALSE); return; } @@ -365,6 +381,24 @@ } +void PXMLParserBase::Entity(const char * /*entityName*/, + int /*is_parameter_entity*/, + const char * /*value*/, + int /*value_length*/, + const char * /*base*/, + const char * /*systemId*/, + const char * /*publicId*/, + const char * /*notationName*/) +{ + if (m_expandEntities) + return; + + // Disable entity expansion completely to prevent billion laughs attack + PTRACE(2, "PXML\tAborting XML parse at when expanding entity - possible 'billion laughs' attack"); + XML_StopParser(MY_CONTEXT, XML_FALSE); +} + + /////////////////////////////////////////////////////////////////////////////////////////////// PXML::PXML(Options options, const char * noIndentElementsParam) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-19 12:26:02
|
Revision: 34639 http://sourceforge.net/p/opalvoip/code/34639 Author: rjongbloed Date: 2016-02-19 12:26:00 +0000 (Fri, 19 Feb 2016) Log Message: ----------- Allow PJPEGConverter::Load() to resize output, if YUV420P, part 2. Modified Paths: -------------- ptlib/trunk/src/ptlib/common/vconvert.cxx Modified: ptlib/trunk/src/ptlib/common/vconvert.cxx =================================================================== --- ptlib/trunk/src/ptlib/common/vconvert.cxx 2016-02-19 12:20:17 UTC (rev 34638) +++ ptlib/trunk/src/ptlib/common/vconvert.cxx 2016-02-19 12:26:00 UTC (rev 34639) @@ -3227,7 +3227,7 @@ } PBYTEArray temporaryBuffer; - if (!Finish(frameBuffer.GetPointer(GetBufferSizeForColour(nativeWidth, nativeHeight)), nativeWidth, nativeHeight)) + if (!Finish(m_temporaryBuffer.GetPointer(GetBufferSizeForColour(nativeWidth, nativeHeight)), nativeWidth, nativeHeight)) return false; return CopyYUV420P(0, 0, nativeWidth, nativeHeight, nativeWidth, nativeHeight, m_temporaryBuffer, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-19 12:20:19
|
Revision: 34638 http://sourceforge.net/p/opalvoip/code/34638 Author: rjongbloed Date: 2016-02-19 12:20:17 +0000 (Fri, 19 Feb 2016) Log Message: ----------- Allow PJPEGConverter::Load() to resize output, if YUV420P Modified Paths: -------------- ptlib/trunk/src/ptlib/common/vconvert.cxx Modified: ptlib/trunk/src/ptlib/common/vconvert.cxx =================================================================== --- ptlib/trunk/src/ptlib/common/vconvert.cxx 2016-02-19 10:37:47 UTC (rev 34637) +++ ptlib/trunk/src/ptlib/common/vconvert.cxx 2016-02-19 12:20:17 UTC (rev 34638) @@ -3205,7 +3205,7 @@ } - bool Load(PFile & file, PBYTEArray & frameBuffer, unsigned & width, unsigned & height) + bool Load(PFile & file, PBYTEArray & frameBuffer, unsigned & width, unsigned & height, PVideoFrameInfo::ResizeMode resizeMode) { PBYTEArray jpegData; if (!PAssert(jpegData.SetSize(file.GetLength()),POutOfMemory)) @@ -3216,8 +3216,23 @@ return false; } - return Start(jpegData, jpegData.GetSize(), width, height) && - Finish(frameBuffer.GetPointer(GetBufferSizeForColour(width, height)), width, height); + unsigned nativeWidth = 0, nativeHeight = 0; + if (!Start(jpegData, jpegData.GetSize(), nativeWidth, nativeHeight)) + return false; + + if (m_colourSpace != MY_JPEG_YUV420P || width == 0 || width == 0 || (width == nativeWidth && height == nativeHeight)) { + width = nativeWidth; + height = nativeHeight; + return Finish(frameBuffer.GetPointer(GetBufferSizeForColour(width, height)), width, height); + } + + PBYTEArray temporaryBuffer; + if (!Finish(frameBuffer.GetPointer(GetBufferSizeForColour(nativeWidth, nativeHeight)), nativeWidth, nativeHeight)) + return false; + + return CopyYUV420P(0, 0, nativeWidth, nativeHeight, nativeWidth, nativeHeight, m_temporaryBuffer, + 0, 0, width, height, width, height, frameBuffer.GetPointer(GetBufferSizeForColour(width, height)), + resizeMode); } }; @@ -3285,7 +3300,7 @@ if (!m_context->SetColourSpace(m_dstColourFormat)) return false; - return m_context->Load(file, dstFrameBuffer, m_dstFrameWidth, m_dstFrameHeight); + return m_context->Load(file, dstFrameBuffer, m_dstFrameWidth, m_dstFrameHeight, m_resizeMode); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-19 10:37:49
|
Revision: 34637 http://sourceforge.net/p/opalvoip/code/34637 Author: rjongbloed Date: 2016-02-19 10:37:47 +0000 (Fri, 19 Feb 2016) Log Message: ----------- Added missing default constructor for PSyncNULL Modified Paths: -------------- ptlib/trunk/include/ptlib/psync.h Modified: ptlib/trunk/include/ptlib/psync.h =================================================================== --- ptlib/trunk/include/ptlib/psync.h 2016-02-19 10:37:06 UTC (rev 34636) +++ ptlib/trunk/include/ptlib/psync.h 2016-02-19 10:37:47 UTC (rev 34637) @@ -81,6 +81,7 @@ class PSyncNULL : public PSync { public: + PSyncNULL() { } virtual void Wait() { } virtual PBoolean Wait(const PTimeInterval &) { return true; } virtual void Signal() { } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-19 10:37:08
|
Revision: 34636 http://sourceforge.net/p/opalvoip/code/34636 Author: rjongbloed Date: 2016-02-19 10:37:06 +0000 (Fri, 19 Feb 2016) Log Message: ----------- Added some constructors to make PJPEGConverter easier to use. Also added some documentation. Modified Paths: -------------- ptlib/trunk/include/ptlib/vconvert.h ptlib/trunk/src/ptlib/common/vconvert.cxx Modified: ptlib/trunk/include/ptlib/vconvert.h =================================================================== --- ptlib/trunk/include/ptlib/vconvert.h 2016-02-18 12:30:26 UTC (rev 34635) +++ ptlib/trunk/include/ptlib/vconvert.h 2016-02-19 10:37:06 UTC (rev 34636) @@ -387,6 +387,14 @@ #if P_JPEG_DECODER +/**Class to convert a JPEG image to other formats. + Simplest usage is to load to a YUV420P buffer: + <code> + PBYTEArray yuv; + PJPEGConverter converter; + converter.Load(file, yuv) + </code> + */ class PJPEGConverter : public PColourConverter { protected: @@ -394,25 +402,53 @@ Context * m_context; public: + /**Construct a JPEG converter that outputs YUV420P at same resolution as the JPEG itself. + */ + PJPEGConverter(); + /**Construct a JPEG converter that outputs YUV420P at same resolution as the JPEG itself. + */ PJPEGConverter( + unsigned width, ///< Output width, zero indicates same is JPEG input + unsigned height, ///< Output height, zero indicates same is JPEG input + PVideoFrameInfo::ResizeMode resizeMode = PVideoFrameInfo::eScale, ///< How to produce output + const PString & colourFormat = "YUV420P" ///< Output colour format + ); + /**Construct a JPEG converter. + This is used for the PColourConverter factory. + */ + PJPEGConverter( const PColourPair & colours ); + + /**Deprecated, used for backward compatibility. + */ PJPEGConverter( const PVideoFrameInfo & src, const PVideoFrameInfo & dst ); + + /// Destroy the JPEG converter ~PJPEGConverter(); + /** Convert JPEG information in a memory buffer to another memory buffer. + Note if scaling is required + */ virtual PBoolean Convert( const BYTE * srcFrameBuffer, ///< Frame store for source pixels BYTE * dstFrameBuffer, ///< Frame store for destination pixels PINDEX * bytesReturned = NULL ///< Bytes written to dstFrameBuffer ); + /** Load a file and convert to the output format for the converter. + */ bool Load( - PFile & file, - PBYTEArray & dstFrameBuffer + const PFilePath & filename, ///< Name of file to load + PBYTEArray & dstFrameBuffer ///< Buffer to receive converted output ); + bool Load( + PFile & file, ///< File to read JPEG from. + PBYTEArray & dstFrameBuffer ///< Buffer to receive converted output + ); }; #endif // P_JPEG_DECODER Modified: ptlib/trunk/src/ptlib/common/vconvert.cxx =================================================================== --- ptlib/trunk/src/ptlib/common/vconvert.cxx 2016-02-18 12:30:26 UTC (rev 34635) +++ ptlib/trunk/src/ptlib/common/vconvert.cxx 2016-02-19 10:37:06 UTC (rev 34636) @@ -3222,6 +3222,22 @@ }; +PJPEGConverter::PJPEGConverter() + : PColourConverter(PColourPair("JPEG", "YUV420P")) + , m_context(new Context) +{ +} + + +PJPEGConverter::PJPEGConverter(unsigned width, unsigned height, PVideoFrameInfo::ResizeMode resizeMode, const PString & colourFormat) + : PColourConverter(PColourPair("JPEG", colourFormat)) + , m_context(new Context) +{ + SetResizeMode(resizeMode); + SetDstFrameSize(width, height); +} + + PJPEGConverter::PJPEGConverter(const PColourPair & colours) : PColourConverter(colours) , m_context(new Context) @@ -3257,6 +3273,13 @@ } +bool PJPEGConverter::Load(const PFilePath & filename, PBYTEArray & dstFrameBuffer) +{ + PFile file; + return file.Open(filename, PFile::ReadOnly) && Load(file, dstFrameBuffer); +} + + bool PJPEGConverter::Load(PFile & file, PBYTEArray & dstFrameBuffer) { if (!m_context->SetColourSpace(m_dstColourFormat)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-18 12:30:29
|
Revision: 34635 http://sourceforge.net/p/opalvoip/code/34635 Author: rjongbloed Date: 2016-02-18 12:30:26 +0000 (Thu, 18 Feb 2016) Log Message: ----------- Move wxWidgets make flags to PTLib make infrastructure. Tweak flags for silly warning on wxWidgets based apps. Modified Paths: -------------- opal/trunk/configure opal/trunk/make/my_macros.m4 opal/trunk/plugins/configure opal/trunk/samples/opalshark/Makefile opal/trunk/samples/openphone/Makefile Modified: opal/trunk/configure =================================================================== --- opal/trunk/configure 2016-02-18 12:23:12 UTC (rev 34634) +++ opal/trunk/configure 2016-02-18 12:30:26 UTC (rev 34635) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for OPAL 3.17beta1. +# Generated by GNU Autoconf 2.69 for OPAL 3.17alpha1. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -577,8 +577,8 @@ # Identity of this package. PACKAGE_NAME='OPAL' PACKAGE_TARNAME='opal' -PACKAGE_VERSION='3.17beta1' -PACKAGE_STRING='OPAL 3.17beta1' +PACKAGE_VERSION='3.17alpha1' +PACKAGE_STRING='OPAL 3.17alpha1' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -748,6 +748,7 @@ INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM +GIT SVN MKDIR_P RANLIB @@ -1451,7 +1452,7 @@ # 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 OPAL 3.17beta1 to adapt to many kinds of systems. +\`configure' configures OPAL 3.17alpha1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1517,7 +1518,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of OPAL 3.17beta1:";; + short | recursive ) echo "Configuration of OPAL 3.17alpha1:";; esac cat <<\_ACEOF @@ -1698,7 +1699,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -OPAL configure 3.17beta1 +OPAL configure 3.17alpha1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2314,7 +2315,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by OPAL $as_me 3.17beta1, which was +It was created by OPAL $as_me 3.17alpha1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -4208,7 +4209,47 @@ fi +# Extract the first word of "git", so it can be a program name with args. +set dummy git; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GIT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GIT="$GIT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GIT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + ;; +esac +fi +GIT=$ac_cv_path_GIT +if test -n "$GIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GIT" >&5 +$as_echo "$GIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: @@ -5532,7 +5573,7 @@ case "$target_os" in darwin* | iPhone* ) - SHARED_LDFLAGS="-dynamiclib" + SHARED_LDFLAGS='-dynamiclib -Wl,-install_name,@executable_path/$(LIB_SONAME)' SHAREDLIBEXT="dylib" DEBUGINFOEXT="dSYM" AR="libtool" @@ -5570,8 +5611,7 @@ target_os=Darwin target_release=`sw_vers -productVersion` - CPPFLAGS="-I/opt/local/include -mmacosx-version-min=10.8 $CPPFLAGS" - LDFLAGS="-L/opt/local/lib $LDFLAGS" + CPPFLAGS="-mmacosx-version-min=10.8 $CPPFLAGS" LIBS="-framework QTKit -framework CoreVideo -framework AudioUnit $LIBS" ;; @@ -6103,6 +6143,40 @@ + + oldCPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -Werror -Wno-potentially-evaluated-expression" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Disable potentially evaluated expression warning (-Wno-potentially-evaluated-expression)" >&5 +$as_echo_n "checking Disable potentially evaluated expression warning (-Wno-potentially-evaluated-expression)... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + usable=yes +else + usable=no + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $usable" >&5 +$as_echo "$usable" >&6; } + CPPFLAGS="$oldCPPFLAGS" + + if test "x$usable" = "xyes"; then : + CXXFLAGS="$CXXFLAGS -Wno-potentially-evaluated-expression" + +fi + + + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -11765,7 +11839,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by OPAL $as_me 3.17beta1, which was +This file was extended by OPAL $as_me 3.17alpha1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -11831,7 +11905,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -OPAL config.status 3.17beta1 +OPAL config.status 3.17alpha1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Modified: opal/trunk/make/my_macros.m4 =================================================================== --- opal/trunk/make/my_macros.m4 2016-02-18 12:23:12 UTC (rev 34634) +++ opal/trunk/make/my_macros.m4 2016-02-18 12:30:26 UTC (rev 34635) @@ -416,6 +416,7 @@ dnl AC_PROG_MKDIR_P() -- Doesn't work! AC_SUBST(MKDIR_P, "mkdir -p") AC_PATH_PROG(SVN, svn) +AC_PATH_PROG(GIT, git) AC_PROG_INSTALL() AC_MSG_CHECKING([install support for -C]) @@ -468,7 +469,7 @@ case "$target_os" in darwin* | iPhone* ) - SHARED_LDFLAGS="-dynamiclib" + SHARED_LDFLAGS='-dynamiclib -Wl,-install_name,@executable_path/$(LIB_SONAME)' SHAREDLIBEXT="dylib" DEBUGINFOEXT="dSYM" AR="libtool" @@ -503,8 +504,7 @@ target_os=Darwin target_release=`sw_vers -productVersion` - CPPFLAGS="-I/opt/local/include -mmacosx-version-min=10.8 $CPPFLAGS" - LDFLAGS="-L/opt/local/lib $LDFLAGS" + CPPFLAGS="-mmacosx-version-min=10.8 $CPPFLAGS" LIBS="-framework QTKit -framework CoreVideo -framework AudioUnit $LIBS" ;; @@ -717,6 +717,14 @@ [CXXFLAGS="$CXXFLAGS -Wno-deprecated-declarations"] ) +MY_COMPILE_IFELSE( + [Disable potentially evaluated expression warning (-Wno-potentially-evaluated-expression)], + [-Werror -Wno-potentially-evaluated-expression], + [], + [], + [CXXFLAGS="$CXXFLAGS -Wno-potentially-evaluated-expression"] +) + AC_LANG_POP(C++) MY_COMPILE_IFELSE( Modified: opal/trunk/plugins/configure =================================================================== --- opal/trunk/plugins/configure 2016-02-18 12:23:12 UTC (rev 34634) +++ opal/trunk/plugins/configure 2016-02-18 12:30:26 UTC (rev 34635) @@ -1,6 +1,6 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.69 for OPAL-Plugins 3.17beta1. +# Generated by GNU Autoconf 2.69 for OPAL-Plugins 3.17alpha1. # # # Copyright (C) 1992-1996, 1998-2012 Free Software Foundation, Inc. @@ -577,8 +577,8 @@ # Identity of this package. PACKAGE_NAME='OPAL-Plugins' PACKAGE_TARNAME='opal-plugins' -PACKAGE_VERSION='3.17beta1' -PACKAGE_STRING='OPAL-Plugins 3.17beta1' +PACKAGE_VERSION='3.17alpha1' +PACKAGE_STRING='OPAL-Plugins 3.17alpha1' PACKAGE_BUGREPORT='' PACKAGE_URL='' @@ -723,6 +723,7 @@ INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM +GIT SVN MKDIR_P RANLIB @@ -1432,7 +1433,7 @@ # 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 OPAL-Plugins 3.17beta1 to adapt to many kinds of systems. +\`configure' configures OPAL-Plugins 3.17alpha1 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1498,7 +1499,7 @@ if test -n "$ac_init_help"; then case $ac_init_help in - short | recursive ) echo "Configuration of OPAL-Plugins 3.17beta1:";; + short | recursive ) echo "Configuration of OPAL-Plugins 3.17alpha1:";; esac cat <<\_ACEOF @@ -1697,7 +1698,7 @@ test -n "$ac_init_help" && exit $ac_status if $ac_init_version; then cat <<\_ACEOF -OPAL-Plugins configure 3.17beta1 +OPAL-Plugins configure 3.17alpha1 generated by GNU Autoconf 2.69 Copyright (C) 2012 Free Software Foundation, Inc. @@ -2313,7 +2314,7 @@ This file contains any messages produced by compilers while running configure, to aid debugging if configure makes a mistake. -It was created by OPAL-Plugins $as_me 3.17beta1, which was +It was created by OPAL-Plugins $as_me 3.17alpha1, which was generated by GNU Autoconf 2.69. Invocation command line was $ $0 $@ @@ -4207,7 +4208,47 @@ fi +# Extract the first word of "git", so it can be a program name with args. +set dummy git; ac_word=$2 +{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 +$as_echo_n "checking for $ac_word... " >&6; } +if ${ac_cv_path_GIT+:} false; then : + $as_echo_n "(cached) " >&6 +else + case $GIT in + [\\/]* | ?:[\\/]*) + ac_cv_path_GIT="$GIT" # Let the user override the test with a path. + ;; + *) + as_save_IFS=$IFS; IFS=$PATH_SEPARATOR +for as_dir in $PATH +do + IFS=$as_save_IFS + test -z "$as_dir" && as_dir=. + for ac_exec_ext in '' $ac_executable_extensions; do + if as_fn_executable_p "$as_dir/$ac_word$ac_exec_ext"; then + ac_cv_path_GIT="$as_dir/$ac_word$ac_exec_ext" + $as_echo "$as_me:${as_lineno-$LINENO}: found $as_dir/$ac_word$ac_exec_ext" >&5 + break 2 + fi +done + done +IFS=$as_save_IFS + ;; +esac +fi +GIT=$ac_cv_path_GIT +if test -n "$GIT"; then + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GIT" >&5 +$as_echo "$GIT" >&6; } +else + { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5 +$as_echo "no" >&6; } +fi + + + # Find a good install program. We prefer a C program (faster), # so one script is as good as another. But avoid the broken or # incompatible versions: @@ -5531,7 +5572,7 @@ case "$target_os" in darwin* | iPhone* ) - SHARED_LDFLAGS="-dynamiclib" + SHARED_LDFLAGS='-dynamiclib -Wl,-install_name,@executable_path/$(LIB_SONAME)' SHAREDLIBEXT="dylib" DEBUGINFOEXT="dSYM" AR="libtool" @@ -5569,8 +5610,7 @@ target_os=Darwin target_release=`sw_vers -productVersion` - CPPFLAGS="-I/opt/local/include -mmacosx-version-min=10.8 $CPPFLAGS" - LDFLAGS="-L/opt/local/lib $LDFLAGS" + CPPFLAGS="-mmacosx-version-min=10.8 $CPPFLAGS" LIBS="-framework QTKit -framework CoreVideo -framework AudioUnit $LIBS" ;; @@ -6102,6 +6142,40 @@ + + oldCPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -Werror -Wno-potentially-evaluated-expression" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Disable potentially evaluated expression warning (-Wno-potentially-evaluated-expression)" >&5 +$as_echo_n "checking Disable potentially evaluated expression warning (-Wno-potentially-evaluated-expression)... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + usable=yes +else + usable=no + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $usable" >&5 +$as_echo "$usable" >&6; } + CPPFLAGS="$oldCPPFLAGS" + + if test "x$usable" = "xyes"; then : + CXXFLAGS="$CXXFLAGS -Wno-potentially-evaluated-expression" + +fi + + + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' @@ -12129,7 +12203,7 @@ # report actual input values of CONFIG_FILES etc. instead of their # values after options handling. ac_log=" -This file was extended by OPAL-Plugins $as_me 3.17beta1, which was +This file was extended by OPAL-Plugins $as_me 3.17alpha1, which was generated by GNU Autoconf 2.69. Invocation command line was CONFIG_FILES = $CONFIG_FILES @@ -12191,7 +12265,7 @@ cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`" ac_cs_version="\\ -OPAL-Plugins config.status 3.17beta1 +OPAL-Plugins config.status 3.17alpha1 configured by $0, generated by GNU Autoconf 2.69, with options \\"\$ac_cs_config\\" Modified: opal/trunk/samples/opalshark/Makefile =================================================================== --- opal/trunk/samples/opalshark/Makefile 2016-02-18 12:23:12 UTC (rev 34634) +++ opal/trunk/samples/opalshark/Makefile 2016-02-18 12:30:26 UTC (rev 34635) @@ -28,45 +28,10 @@ PROG := opalshark SOURCES := main.cxx opalshark.cxx - VERSION_FILE := version.h +USING_WX_WIDGETS:=yes -WX_CONFIG := $(firstword $(wildcard $(addsuffix /wx-config,$(subst :, ,$(PATH):/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.0/bin)))) -ifneq (,$(WX_CONFIG)) - WXRC := $(dir $(WX_CONFIG))/wxrc -else - WX_CONFIG := $(firstword $(wildcard $(addsuffix /wxgtk2u-2.8-config,$(subst :, ,$(PATH))))) - ifneq (,$(WX_CONFIG)) - WXRC := $(dir $(WX_CONFIG))/wxrc-gtk2u-2.8 - else - WX_CONFIG := wx-config-3.0 - ifneq (,$(shell which $(WX_CONFIG) 2>&1)) - WXRC := wxrc-3.0 - else - WX_CONFIG := wx-config - ifneq (,$(shell which $(WX_CONFIG) 2>&1)) - WXRC := wxrc - else - $(error Could not find wx-config) - endif - endif - endif -endif -ifneq (,$(DEBUG_BUILD)) - ifneq (,$(shell $(WX_CONFIG) --list | grep debug)) - WX_CONFIG += --debug=$(DEBUG_BUILD) - else - CPPFLAGS += -DOPAL_WX_DEBUG_HACK - endif -endif - -CPPFLAGS += $(shell $(WX_CONFIG) --cppflags) -CXXFLAGS += $(shell $(WX_CONFIG) --cxxflags) -CFLAGS += $(shell $(WX_CONFIG) --cflags) -LDFLAGS += $(shell $(WX_CONFIG) --libs) - - # Need this before the include of opal.mak .DEFAULT_GOAL := bundle Modified: opal/trunk/samples/openphone/Makefile =================================================================== --- opal/trunk/samples/openphone/Makefile 2016-02-18 12:23:12 UTC (rev 34634) +++ opal/trunk/samples/openphone/Makefile 2016-02-18 12:30:26 UTC (rev 34635) @@ -28,45 +28,10 @@ PROG := openphone SOURCES := main.cxx openphone.cxx - VERSION_FILE := version.h +USING_WX_WIDGETS:=yes -WX_CONFIG := $(firstword $(wildcard $(addsuffix /wx-config,$(subst :, ,$(PATH):/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.0/bin)))) -ifneq (,$(WX_CONFIG)) - WXRC := $(dir $(WX_CONFIG))/wxrc -else - WX_CONFIG := $(firstword $(wildcard $(addsuffix /wxgtk2u-2.8-config,$(subst :, ,$(PATH))))) - ifneq (,$(WX_CONFIG)) - WXRC := $(dir $(WX_CONFIG))/wxrc-gtk2u-2.8 - else - WX_CONFIG := wx-config-3.0 - ifneq (,$(shell which $(WX_CONFIG) 2>&1)) - WXRC := wxrc-3.0 - else - WX_CONFIG := wx-config - ifneq (,$(shell which $(WX_CONFIG) 2>&1)) - WXRC := wxrc - else - $(error Could not find wx-config) - endif - endif - endif -endif -ifneq (,$(DEBUG_BUILD)) - ifneq (,$(shell $(WX_CONFIG) --list | grep debug)) - WX_CONFIG += --debug=$(DEBUG_BUILD) - else - CPPFLAGS += -DOPAL_WX_DEBUG_HACK - endif -endif - -CPPFLAGS += $(shell $(WX_CONFIG) --cppflags) -CXXFLAGS += $(shell $(WX_CONFIG) --cxxflags) -CFLAGS += $(shell $(WX_CONFIG) --cflags) -LDFLAGS += $(shell $(WX_CONFIG) --libs) - - # Need this before the include of opal.mak .DEFAULT_GOAL := bundle This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-18 12:23:14
|
Revision: 34634 http://sourceforge.net/p/opalvoip/code/34634 Author: rjongbloed Date: 2016-02-18 12:23:12 +0000 (Thu, 18 Feb 2016) Log Message: ----------- Added wxWidgets build flags, if enabled with make variable. Modified Paths: -------------- ptlib/trunk/configure ptlib/trunk/make/my_macros.m4 ptlib/trunk/make/pre.mak Modified: ptlib/trunk/configure =================================================================== --- ptlib/trunk/configure 2016-02-18 11:21:56 UTC (rev 34633) +++ ptlib/trunk/configure 2016-02-18 12:23:12 UTC (rev 34634) @@ -6676,6 +6676,40 @@ + + oldCPPFLAGS="$CPPFLAGS" + CPPFLAGS="$CPPFLAGS -Werror -Wno-potentially-evaluated-expression" + { $as_echo "$as_me:${as_lineno-$LINENO}: checking Disable potentially evaluated expression warning (-Wno-potentially-evaluated-expression)" >&5 +$as_echo_n "checking Disable potentially evaluated expression warning (-Wno-potentially-evaluated-expression)... " >&6; } + cat confdefs.h - <<_ACEOF >conftest.$ac_ext +/* end confdefs.h. */ + +int +main () +{ + + ; + return 0; +} +_ACEOF +if ac_fn_cxx_try_compile "$LINENO"; then : + usable=yes +else + usable=no + +fi +rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext + { $as_echo "$as_me:${as_lineno-$LINENO}: result: $usable" >&5 +$as_echo "$usable" >&6; } + CPPFLAGS="$oldCPPFLAGS" + + if test "x$usable" = "xyes"; then : + CXXFLAGS="$CXXFLAGS -Wno-potentially-evaluated-expression" + +fi + + + ac_ext=c ac_cpp='$CPP $CPPFLAGS' ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' Modified: ptlib/trunk/make/my_macros.m4 =================================================================== --- ptlib/trunk/make/my_macros.m4 2016-02-18 11:21:56 UTC (rev 34633) +++ ptlib/trunk/make/my_macros.m4 2016-02-18 12:23:12 UTC (rev 34634) @@ -717,6 +717,14 @@ [CXXFLAGS="$CXXFLAGS -Wno-deprecated-declarations"] ) +MY_COMPILE_IFELSE( + [Disable potentially evaluated expression warning (-Wno-potentially-evaluated-expression)], + [-Werror -Wno-potentially-evaluated-expression], + [], + [], + [CXXFLAGS="$CXXFLAGS -Wno-potentially-evaluated-expression"] +) + AC_LANG_POP(C++) MY_COMPILE_IFELSE( Modified: ptlib/trunk/make/pre.mak =================================================================== --- ptlib/trunk/make/pre.mak 2016-02-18 11:21:56 UTC (rev 34633) +++ ptlib/trunk/make/pre.mak 2016-02-18 12:23:12 UTC (rev 34634) @@ -103,6 +103,47 @@ ############################################################################### + +ifeq ($(USING_WX_WIDGETS),yes) + + WX_CONFIG := $(firstword $(wildcard $(addsuffix /wx-config,$(subst :, ,$(PATH):/opt/local/Library/Frameworks/wxWidgets.framework/Versions/wxWidgets/3.0/bin)))) + ifneq (,$(WX_CONFIG)) + WXRC := $(dir $(WX_CONFIG))/wxrc + else + WX_CONFIG := $(firstword $(wildcard $(addsuffix /wxgtk2u-2.8-config,$(subst :, ,$(PATH))))) + ifneq (,$(WX_CONFIG)) + WXRC := $(dir $(WX_CONFIG))/wxrc-gtk2u-2.8 + else + WX_CONFIG := wx-config-3.0 + ifneq (,$(shell which $(WX_CONFIG) 2>&1)) + WXRC := wxrc-3.0 + else + WX_CONFIG := wx-config + ifneq (,$(shell which $(WX_CONFIG) 2>&1)) + WXRC := wxrc + else + $(error Could not find wx-config) + endif + endif + endif + endif + + ifeq ($(DEBUG_BUILD),yes) + ifneq (,$(shell $(WX_CONFIG) --list | grep debug)) + WX_CONFIG += --debug=$(DEBUG_BUILD) + else + CPPFLAGS += -DOPAL_WX_DEBUG_HACK + endif + endif + + CPPFLAGS += $(shell $(WX_CONFIG) --cppflags) + CXXFLAGS += $(shell $(WX_CONFIG) --cxxflags) + CFLAGS += $(shell $(WX_CONFIG) --cflags) + LDFLAGS += $(shell $(WX_CONFIG) --libs) +endif + + +############################################################################### # # Determine the library name # This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-18 11:21:58
|
Revision: 34633 http://sourceforge.net/p/opalvoip/code/34633 Author: rjongbloed Date: 2016-02-18 11:21:56 +0000 (Thu, 18 Feb 2016) Log Message: ----------- Aded magic link command to allow Mac OS dylib in same directory as executable to be used. Important when bundling Mac GUI application and being run direct from finder. Modified Paths: -------------- ptlib/trunk/configure ptlib/trunk/make/my_macros.m4 Modified: ptlib/trunk/configure =================================================================== --- ptlib/trunk/configure 2016-02-16 15:09:52 UTC (rev 34632) +++ ptlib/trunk/configure 2016-02-18 11:21:56 UTC (rev 34633) @@ -6106,7 +6106,7 @@ case "$target_os" in darwin* | iPhone* ) - SHARED_LDFLAGS="-dynamiclib" + SHARED_LDFLAGS='-dynamiclib -Wl,-install_name,@executable_path/$(LIB_SONAME)' SHAREDLIBEXT="dylib" DEBUGINFOEXT="dSYM" AR="libtool" Modified: ptlib/trunk/make/my_macros.m4 =================================================================== --- ptlib/trunk/make/my_macros.m4 2016-02-16 15:09:52 UTC (rev 34632) +++ ptlib/trunk/make/my_macros.m4 2016-02-18 11:21:56 UTC (rev 34633) @@ -469,7 +469,7 @@ case "$target_os" in darwin* | iPhone* ) - SHARED_LDFLAGS="-dynamiclib" + SHARED_LDFLAGS='-dynamiclib -Wl,-install_name,@executable_path/$(LIB_SONAME)' SHAREDLIBEXT="dylib" DEBUGINFOEXT="dSYM" AR="libtool" This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-16 15:09:54
|
Revision: 34632 http://sourceforge.net/p/opalvoip/code/34632 Author: rjongbloed Date: 2016-02-16 15:09:52 +0000 (Tue, 16 Feb 2016) Log Message: ----------- Added trace log for strange condition where remote indicates in RTCP Sender Report that the packets lost greater than the number of packets we sent. Modified Paths: -------------- opal/trunk/include/rtp/rtp_session.h opal/trunk/src/rtp/rtp_session.cxx Modified: opal/trunk/include/rtp/rtp_session.h =================================================================== --- opal/trunk/include/rtp/rtp_session.h 2016-02-16 14:40:34 UTC (rev 34631) +++ opal/trunk/include/rtp/rtp_session.h 2016-02-16 15:09:52 UTC (rev 34632) @@ -745,6 +745,7 @@ PTRACE_THROTTLE(m_throttleTxRED,3,60000); PTRACE_THROTTLE(m_throttleRxRED,3,60000); PTRACE_THROTTLE(m_throttleRxUnknownFEC,3,10000); + PTRACE_THROTTLE(m_throttleInvalidLost,2,60000); P_REMOVE_VIRTUAL(SendReceiveStatus, OnSendData(RTP_DataFrame &, bool), e_AbortTransport); }; Modified: opal/trunk/src/rtp/rtp_session.cxx =================================================================== --- opal/trunk/src/rtp/rtp_session.cxx 2016-02-16 14:40:34 UTC (rev 34631) +++ opal/trunk/src/rtp/rtp_session.cxx 2016-02-16 15:09:52 UTC (rev 34632) @@ -1079,6 +1079,8 @@ PTRACE(m_throttleRxRR, &m_session, m_session << "OnReceiverReport: " << report << m_throttleRxRR); m_packetsLost = report.totalLost; + PTRACE(m_throttleInvalidLost, &m_session, m_session << "remote indicated packet loss (" << m_packetsLost << ")" + " larger than number of packets we sent (" << m_packets << ')' << m_throttleInvalidLost); m_currentjitter = (report.jitter + m_session.m_timeUnits -1)/m_session.m_timeUnits; if (m_maximumJitter < m_currentjitter) m_maximumJitter = m_currentjitter; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-16 14:40:36
|
Revision: 34631 http://sourceforge.net/p/opalvoip/code/34631 Author: rjongbloed Date: 2016-02-16 14:40:34 +0000 (Tue, 16 Feb 2016) Log Message: ----------- Fixed last packet absolute time in media statistics, if not got RTCP from remote yet, then use local computer time. Modified Paths: -------------- opal/trunk/src/rtp/rtp_session.cxx Modified: opal/trunk/src/rtp/rtp_session.cxx =================================================================== --- opal/trunk/src/rtp/rtp_session.cxx 2016-02-16 10:41:04 UTC (rev 34630) +++ opal/trunk/src/rtp/rtp_session.cxx 2016-02-16 14:40:34 UTC (rev 34631) @@ -404,6 +404,8 @@ PTimeInterval tick = PTimer::Tick(); m_lastPacketTick = tick; m_lastPacketAbsTime = frame.GetAbsoluteTime(); + if (!m_lastPacketAbsTime.IsValid()) + m_lastPacketAbsTime.SetCurrentTime(); m_lastPacketTimestamp = frame.GetTimestamp(); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-16 10:41:06
|
Revision: 34630 http://sourceforge.net/p/opalvoip/code/34630 Author: rjongbloed Date: 2016-02-16 10:41:04 +0000 (Tue, 16 Feb 2016) Log Message: ----------- Fixed unsigned for negative numbers in OpenPhone statistics. Modified Paths: -------------- opal/trunk/samples/openphone/main.cxx Modified: opal/trunk/samples/openphone/main.cxx =================================================================== --- opal/trunk/samples/openphone/main.cxx 2016-02-16 10:23:36 UTC (rev 34629) +++ opal/trunk/samples/openphone/main.cxx 2016-02-16 10:41:04 UTC (rev 34630) @@ -2026,7 +2026,7 @@ " disguised or hidden in any way.\n" "\n" "Part of the Open Phone Abstraction Library, http://www.opalvoip.org\n" - " OPAL Version: " << OpalGetVersion() << "\n" + " OPAL Version: " << OpalGetVersion() << "\n" " PTLib Version: " << PProcess::GetLibVersion() << '\n'; wxMessageDialog dialog(this, text, wxT("About ..."), wxOK); dialog.ShowModal(); @@ -7987,7 +7987,10 @@ #define STATISTICS_FIELD_SPRINTF(type, name, field) \ STATISTICS_FIELD_BEG(type, name) \ - value.sprintf(m_printFormat, statistics.field); \ + if (statistics.field >= 0) \ + value.sprintf(m_printFormat, statistics.field); \ + else \ + value.clear(); \ STATISTICS_FIELD_END(type, name) #define STATISTICS_FIELD_SPRINTF_NZ(type, name, field) \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-16 10:23:39
|
Revision: 34629 http://sourceforge.net/p/opalvoip/code/34629 Author: rjongbloed Date: 2016-02-16 10:23:36 +0000 (Tue, 16 Feb 2016) Log Message: ----------- Changed version for trunk to AlphaCode Modified Paths: -------------- opal/trunk/version.h Modified: opal/trunk/version.h =================================================================== --- opal/trunk/version.h 2016-02-16 10:22:15 UTC (rev 34628) +++ opal/trunk/version.h 2016-02-16 10:23:36 UTC (rev 34629) @@ -36,7 +36,7 @@ #define MAJOR_VERSION 3 #define MINOR_VERSION 17 -#define BUILD_TYPE BetaCode +#define BUILD_TYPE AlphaCode #define BUILD_NUMBER 1 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-16 10:22:17
|
Revision: 34628 http://sourceforge.net/p/opalvoip/code/34628 Author: rjongbloed Date: 2016-02-16 10:22:15 +0000 (Tue, 16 Feb 2016) Log Message: ----------- Fixed version string generation for various options, including adding one for not having a build number. Modified Paths: -------------- ptlib/trunk/src/ptlib/common/osutils.cxx Modified: ptlib/trunk/src/ptlib/common/osutils.cxx =================================================================== --- ptlib/trunk/src/ptlib/common/osutils.cxx 2016-02-16 10:07:32 UTC (rev 34627) +++ ptlib/trunk/src/ptlib/common/osutils.cxx 2016-02-16 10:22:15 UTC (rev 34628) @@ -2471,17 +2471,24 @@ switch (m_status) { case PProcess::AlphaCode : str << "alpha"; + break; + case PProcess::BetaCode : str << "beta"; + break; + default: - str << '.'; + if (m_build != UINT_MAX) + str << '.'; } - str << " ("; + + if (m_build != UINT_MAX) + str << m_build; + if (m_git != NULL && *m_git != '\0') - str << "git:" << m_git; + str << " (git:" << m_git << ')'; else if (m_svn > 0) - str << "svn:" << m_svn; - str << ')'; + str << " (svn:" << m_svn << ')'; } return str; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <rjo...@us...> - 2016-02-16 10:07:34
|
Revision: 34627 http://sourceforge.net/p/opalvoip/code/34627 Author: rjongbloed Date: 2016-02-16 10:07:32 +0000 (Tue, 16 Feb 2016) Log Message: ----------- Use newly exposed version info handling form PTLib to include SVN/GIT in standardised manner in OPAL. Modified Paths: -------------- opal/trunk/revision.h.in opal/trunk/src/opal/manager.cxx Modified: opal/trunk/revision.h.in =================================================================== --- opal/trunk/revision.h.in 2016-02-16 10:06:31 UTC (rev 34626) +++ opal/trunk/revision.h.in 2016-02-16 10:07:32 UTC (rev 34627) @@ -29,6 +29,7 @@ #define _OPAL_REVISION_H #define SVN_REVISION $WCREV$ +#define GIT_COMMIT "" #endif // _OPAL_REVISION_H Modified: opal/trunk/src/opal/manager.cxx =================================================================== --- opal/trunk/src/opal/manager.cxx 2016-02-16 10:06:31 UTC (rev 34626) +++ opal/trunk/src/opal/manager.cxx 2016-02-16 10:07:32 UTC (rev 34627) @@ -155,11 +155,8 @@ PString OpalGetVersion() { -#define AlphaCode "alpha" -#define BetaCode "beta" -#define ReleaseCode "." - - return psprintf("%u.%u%s%u (svn:%u)", MAJOR_VERSION, MINOR_VERSION, BUILD_TYPE, BUILD_NUMBER, SVN_REVISION); + PProcess::VersionInfo ver = { MAJOR_VERSION, MINOR_VERSION, PProcess::BUILD_TYPE, BUILD_NUMBER, SVN_REVISION, GIT_COMMIT }; + return ver.AsString(); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |