• R/O
  • HTTP
  • SSH
  • HTTPS

PeerCastIM: Commit


Commit MetaInfo

Revisão90320d394c0a12f6d48cb710b5e7a91fd04402d5 (tree)
Hora2010-11-20 02:11:43
Autoreru <eru01@user...>
Commitereru

Mensagem de Log

チャンネル停止→チャンネル情報削除の間に再接続すると落ちるのを修正

Mudança Sumário

Diff

--- a/PeerCast.root/PeerCast/core/common/servmgr.cpp
+++ b/PeerCast.root/PeerCast/core/common/servmgr.cpp
@@ -1767,6 +1767,27 @@ bool ServMgr::getChannel(char *str,ChanInfo &info, bool relay)
17671767 info = ch->info; // get updated channel info
17681768
17691769 return true;
1770+ } else if (ch && ch->thread.finish)
1771+ {
1772+ // wait until deleting channel
1773+ do
1774+ {
1775+ sys->sleep(500);
1776+ ch = chanMgr->findChannelByNameID(info);
1777+ } while (ch);
1778+
1779+ // same as else block
1780+ if (relay)
1781+ {
1782+ wb.off();
1783+ ch = chanMgr->findAndRelay(info);
1784+ if (ch)
1785+ {
1786+ // ↓Exception point
1787+ info = ch->info; //get updated channel info
1788+ return true;
1789+ }
1790+ }
17701791 }else
17711792 {
17721793 if (relay)
--- a/PeerCast.root/PeerCast/core/common/version2.h
+++ b/PeerCast.root/PeerCast/core/common/version2.h
@@ -44,9 +44,9 @@ extern int version_ex; // VERSION_EX
4444 #if 1 /* for VP extend version */
4545 //#define VERSION_EX 1
4646 static const char *PCP_CLIENT_VERSION_EX_PREFIX = "IM"; // 2bytes only
47-static const int PCP_CLIENT_VERSION_EX_NUMBER = 41;
48-static const char *PCX_AGENTEX = "PeerCast/0.1218(IM0041)";
49-static const char *PCX_VERSTRING_EX = "v0.1218(IM0041)";
47+static const int PCP_CLIENT_VERSION_EX_NUMBER = 42;
48+static const char *PCX_AGENTEX = "PeerCast/0.1218(IM0042)";
49+static const char *PCX_VERSTRING_EX = "v0.1218(IM0042)";
5050
5151 static const char *PCP_CLIENT_DIST_URL = "http://pecaim.net/";
5252 static const char *PCP_CLIENT_VERSION_URL = "version.pecaim.net";
--- a/c:/Git/PeerCast.root/PeerCast/core/common/servmgr.cpp
+++ b/c:/Git/PeerCast.root/PeerCast/core/common/servmgr.cpp
@@ -1767,6 +1767,27 @@ bool ServMgr::getChannel(char *str,ChanInfo &info, bool relay)
17671767 info = ch->info; // get updated channel info
17681768
17691769 return true;
1770+ } else if (ch && ch->thread.finish)
1771+ {
1772+ // wait until deleting channel
1773+ do
1774+ {
1775+ sys->sleep(500);
1776+ ch = chanMgr->findChannelByNameID(info);
1777+ } while (ch);
1778+
1779+ // same as else block
1780+ if (relay)
1781+ {
1782+ wb.off();
1783+ ch = chanMgr->findAndRelay(info);
1784+ if (ch)
1785+ {
1786+ // ↓Exception point
1787+ info = ch->info; //get updated channel info
1788+ return true;
1789+ }
1790+ }
17701791 }else
17711792 {
17721793 if (relay)
--- a/c:/Git/PeerCast.root/PeerCast/core/common/version2.h
+++ b/c:/Git/PeerCast.root/PeerCast/core/common/version2.h
@@ -44,9 +44,9 @@ extern int version_ex; // VERSION_EX
4444 #if 1 /* for VP extend version */
4545 //#define VERSION_EX 1
4646 static const char *PCP_CLIENT_VERSION_EX_PREFIX = "IM"; // 2bytes only
47-static const int PCP_CLIENT_VERSION_EX_NUMBER = 41;
48-static const char *PCX_AGENTEX = "PeerCast/0.1218(IM0041)";
49-static const char *PCX_VERSTRING_EX = "v0.1218(IM0041)";
47+static const int PCP_CLIENT_VERSION_EX_NUMBER = 42;
48+static const char *PCX_AGENTEX = "PeerCast/0.1218(IM0042)";
49+static const char *PCX_VERSTRING_EX = "v0.1218(IM0042)";
5050
5151 static const char *PCP_CLIENT_DIST_URL = "http://pecaim.net/";
5252 static const char *PCP_CLIENT_VERSION_URL = "version.pecaim.net";
Show on old repository browser