]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/inspircd.cpp
Added support for <options customversion> to customize the second part of VERSION
[user/henk/code/inspircd.git] / src / inspircd.cpp
index b690c2d878e9ba93496973cee32d0c324ffb040f..b7324a167ec4ae5876f018747c5f9df961f38c47 100644 (file)
@@ -2,7 +2,7 @@
  *       | Inspire Internet Relay Chat Daemon |
  *       +------------------------------------+
  *
- *  Inspire is copyright (C) 2002-2005 ChatSpike-Dev.
+ *  InspIRCd is copyright (C) 2002-2006 ChatSpike-Dev.
  *                       E-mail:
  *                <brain@chatspike.net>
  *               <Craig@chatspike.net>
@@ -225,7 +225,14 @@ std::string InspIRCd::GetVersionString()
 #else
        char dnsengine[] = "singlethread";
 #endif
-       snprintf(versiondata,MAXBUF,"%s Rev. %s %s :%s [FLAGS=%lu,%s,%s]",VERSION,GetRevision().c_str(),Config->ServerName,SYSTEM,(unsigned long)OPTIMISATION,SE->GetName().c_str(),dnsengine);
+       if (*Config->CustomVersion)
+       {
+               snprintf(versiondata,MAXBUF,"%s Rev. %s %s :%s",VERSION,GetRevision().c_str(),Config->ServerName,Config->CustomVersion);
+       }
+       else
+       {
+               snprintf(versiondata,MAXBUF,"%s Rev. %s %s :%s [FLAGS=%lu,%s,%s]",VERSION,GetRevision().c_str(),Config->ServerName,SYSTEM,(unsigned long)OPTIMISATION,SE->GetName().c_str(),dnsengine);
+       }
        return versiondata;
 }
 
@@ -646,7 +653,8 @@ int InspIRCd::Run()
                                        uslen = sizeof(sock_us);
                                        length = sizeof(client);
                                        incomingSockfd = accept (activefds[activefd],(struct sockaddr*)&client,&length);
-                                       if (!getsockname(incomingSockfd,(sockaddr*)&sock_us,&uslen))
+                                       
+                                       if ((incomingSockfd > -1) && (!getsockname(incomingSockfd,(sockaddr*)&sock_us,&uslen)))
                                        {
                                                in_port = ntohs(sock_us.sin_port);
                                                log(DEBUG,"Accepted socket %d",incomingSockfd);
@@ -655,29 +663,21 @@ int InspIRCd::Run()
                                                 * using gethostbyaddr(). That is sucky and we
                                                 * don't do that any more...
                                                 */
-                                               if (incomingSockfd >= 0)
-                                               {
-                                                       NonBlocking(incomingSockfd);
-                                                       if (Config->GetIOHook(in_port))
-                                                       {
-                                                               Config->GetIOHook(in_port)->OnRawSocketAccept(incomingSockfd, target, in_port);
-                                                       }
-                                                       stats->statsAccept++;
-                                                       AddClient(incomingSockfd, target, in_port, false, target);
-                                                       log(DEBUG,"Adding client on port %lu fd=%lu",(unsigned long)in_port,(unsigned long)incomingSockfd);
-                                               }
-                                               else
+                                               NonBlocking(incomingSockfd);
+                                               if (Config->GetIOHook(in_port))
                                                {
-                                                       WriteOpers("*** WARNING: accept() failed on port %lu (%s)",(unsigned long)in_port,target);
-                                                       log(DEBUG,"accept failed: %lu",(unsigned long)in_port);
-                                                       stats->statsRefused++;
+                                                       Config->GetIOHook(in_port)->OnRawSocketAccept(incomingSockfd, target, in_port);
                                                }
+                                               stats->statsAccept++;
+                                               AddClient(incomingSockfd, target, in_port, false, target);
+                                               log(DEBUG,"Adding client on port %lu fd=%lu",(unsigned long)in_port,(unsigned long)incomingSockfd);
                                        }
                                        else
                                        {
-                                               log(DEBUG,"Couldnt look up the port number for fd %lu (OS BROKEN?!)",incomingSockfd);
+                                               log(DEBUG,"Accept failed on fd %lu: %s",(unsigned long)incomingSockfd,strerror(errno));
                                                shutdown(incomingSockfd,2);
                                                close(incomingSockfd);
+                                               stats->statsRefused++;
                                        }
                                break;