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.
|