OSDN Git Service

Class D(Multicast)をリジェクト IM0028-2
authoreru <eru01@users.sourceforge.jp>
Thu, 4 Sep 2008 13:10:16 +0000 (13:10 +0000)
committereru <eru01@users.sourceforge.jp>
Thu, 4 Sep 2008 13:10:16 +0000 (13:10 +0000)
PeerCast.root/PeerCast/core/common/servent.cpp
PeerCast.root/PeerCast/core/common/version2.h
c:/Git/PeerCast.root/PeerCast/core/common/servent.cpp
c:/Git/PeerCast.root/PeerCast/core/common/version2.h

index 573b8be..c394d4c 100644 (file)
@@ -3015,6 +3015,16 @@ int Servent::serverProc(ThreadInfo *thread)
                        if (servMgr->numActiveOnPort(sv->sock->host.port) < servMgr->maxServIn)
                        {
                                ClientSocket *cs = sv->sock->accept();
+
+                               // \95s\90³\82È\83\\81[\83X\83A\83h\83\8c\83X(IPv4\83}\83\8b\83`\83L\83\83\83X\83g)\82ð\8f\9c\8aO
+                               if (cs && (((cs->host.ip >> 24) & 0xF0) == 0xE0))
+                               {
+                                       char ip[64];
+                                       cs->host.toStr(ip);
+                                       cs->close();
+                                       LOG_ERROR("reject incoming multicast address: %s", ip);
+                                       peercastApp->notifyMessage(ServMgr::NT_PEERCAST, "reject multicast address");
+                               } else
                                if (cs)
                                {       
                                        LOG_DEBUG("accepted incoming");
index ee7a87f..2d6f929 100644 (file)
@@ -45,8 +45,8 @@ extern int version_ex; // PP
 //#define VERSION_EX 1
 static const char *PCP_CLIENT_VERSION_EX_PREFIX = "IM"; // 2bytes only
 static const int  PCP_CLIENT_VERSION_EX_NUMBER = 28;
-static const char *PCX_AGENTEX = "PeerCast/0.1218(IM0028)";
-static const char *PCX_VERSTRING_EX = "v0.1218(IM0028)";
+static const char *PCX_AGENTEX = "PeerCast/0.1218(IM0028-2)";
+static const char *PCX_VERSTRING_EX = "v0.1218(IM0028-2)";
 #endif
 
 // ------------------------------------------------
index 573b8be..c394d4c 100644 (file)
@@ -3015,6 +3015,16 @@ int Servent::serverProc(ThreadInfo *thread)
                        if (servMgr->numActiveOnPort(sv->sock->host.port) < servMgr->maxServIn)
                        {
                                ClientSocket *cs = sv->sock->accept();
+
+                               // \95s\90³\82È\83\\81[\83X\83A\83h\83\8c\83X(IPv4\83}\83\8b\83`\83L\83\83\83X\83g)\82ð\8f\9c\8aO
+                               if (cs && (((cs->host.ip >> 24) & 0xF0) == 0xE0))
+                               {
+                                       char ip[64];
+                                       cs->host.toStr(ip);
+                                       cs->close();
+                                       LOG_ERROR("reject incoming multicast address: %s", ip);
+                                       peercastApp->notifyMessage(ServMgr::NT_PEERCAST, "reject multicast address");
+                               } else
                                if (cs)
                                {       
                                        LOG_DEBUG("accepted incoming");
index ee7a87f..2d6f929 100644 (file)
@@ -45,8 +45,8 @@ extern int version_ex; // PP
 //#define VERSION_EX 1
 static const char *PCP_CLIENT_VERSION_EX_PREFIX = "IM"; // 2bytes only
 static const int  PCP_CLIENT_VERSION_EX_NUMBER = 28;
-static const char *PCX_AGENTEX = "PeerCast/0.1218(IM0028)";
-static const char *PCX_VERSTRING_EX = "v0.1218(IM0028)";
+static const char *PCX_AGENTEX = "PeerCast/0.1218(IM0028-2)";
+static const char *PCX_VERSTRING_EX = "v0.1218(IM0028-2)";
 #endif
 
 // ------------------------------------------------