Exemplo n.º 1
0
bool Server::start(Server::Service service){
    struct sockaddr_in addr = {AF_INET,htons(port),INADDR_ANY,0};
    if((listensock = ::socket(AF_INET,GetSockType((Type)type),0))<=0){
        printf("create listen socket failed!\n");
        return false;
    }
    if(::setsockopt(listensock,SOL_SOCKET,SO_REUSEADDR,&reuseaddr,sizeof(reuseaddr))){
        printf("setsockopt [SO_REUSEADDR] failed!\n");
        shutdown();
        return false;
    }
    if(::bind(listensock,(struct sockaddr*)&addr,sizeof(addr))){
        printf("bind listen socket failed!\n");
        shutdown();
        return false;
    }
    if(::listen(listensock,backlog)){
        printf("server listen failed!\n");
        shutdown();
        return false;
    }
    printf("tinycgi server's listening at %d\n",port);
    return true;
}
void CT_DataRSocketServ::DoCmdStopProtocolL(const TDesC& aSection, const TInt aAsyncErrorIndex)
	{
				
	TUint	addrFamily = iProtocolDesc.iAddrFamily;
	TPtrC	addrFamilyStr;
	if( GetStringFromConfig(aSection, KAddrFamily(), addrFamilyStr) )
		{
		if( GetAddrFamily( addrFamilyStr, addrFamily ) )
			{
			INFO_PRINTF3(_L("RSocketServ::StopProtocol() - Using addrFamily %S (%d)"), &addrFamilyStr, addrFamily);
			}
		else
			{
			TInt	addrFamilyInt;
			if( GetIntFromConfig(aSection, KAddrFamily(), addrFamilyInt) )
				{
				addrFamily = addrFamilyInt;
				INFO_PRINTF2(_L("RSocketServ::StopProtocol() - Using addrFamily %d"), addrFamily);
				}
			else
				{
				ERR_PRINTF2(_L("RSocketServ::StopProtocol() - Given addrFamily (%S) is invalid"), &addrFamilyStr);
				SetBlockResult(EFail);
				}
			}
		}

	TUint	sockType = iProtocolDesc.iSockType;
	TPtrC	sockTypeStr;
	if( GetStringFromConfig(aSection, KSockType(), sockTypeStr) )
		{
		if( GetSockType( sockTypeStr, sockType ) )
			{
			INFO_PRINTF3(_L("RSocketServ::StopProtocol() - Using sockType %S (%d)"), &sockTypeStr, sockType);
			}
		else
			{
			TInt	sockTypeInt;
			if( GetIntFromConfig(aSection, KSockType(), sockTypeInt) )
				{
				sockType = sockTypeInt;
				INFO_PRINTF2(_L("RSocketServ::StopProtocol() - Using sockType %d"), sockType);
				}
			else
				{
				ERR_PRINTF2(_L("RSocketServ::StopProtocol() - Given sockType (%S) is invalid"), &sockTypeStr);
				SetBlockResult(EFail);
				}
			}
		}

	TUint	protocol = iProtocolDesc.iProtocol;
	TPtrC	protocolStr;
	if( GetStringFromConfig(aSection, KProtocol(), protocolStr) )
		{
		if( GetProtocol( protocolStr, protocol ) )
			{
			INFO_PRINTF3(_L("RSocketServ::StopProtocol() - Using protocol %S (%d)"), &protocolStr, protocol);
			}
		else
			{
			TInt	protocolInt;
			if( GetIntFromConfig(aSection, KProtocol(), protocolInt) )
				{
				protocol = protocolInt;
				INFO_PRINTF2(_L("RSocketServ::StopProtocol() - Using protocol %d"), protocol);
				}
			else
				{
				ERR_PRINTF2(_L("RSocketServ::StopProtocol() - Given protocol (%S) is invalid"), &protocolStr);
				SetBlockResult(EFail);
				}
			}
		}

	INFO_PRINTF4(_L("Calling RSocketServ::StopProtocol(%d, %d, %d)"), addrFamily, sockType, protocol);
	iSocketServ->StopProtocol(addrFamily, sockType, protocol, iActiveStopProtocol->iStatus);
	iActiveStopProtocol->Activate(aAsyncErrorIndex);
	IncOutstanding();
	}
Exemplo n.º 3
0
Socket::Socket(Type type, bool nonBlocking)
    : SocketHolder(socket(AF_INET, GetSockType(type) | (nonBlocking ? SOCK_NONBLOCK : 0), 0))
{
}