Пример #1
0
int main(int argc, char **argv)
{
	int portNumber;
	int listenedFD;

	checkArgument(argc, argv);
	Signal(SIGCHLD, sigChildHandler);

	portNumber = getPortNumber(argc, argv);

	listenedFD = Open_listenfd(portNumber);

	for (;;) 
		serveClients(listenedFD);
}
Пример #2
0
int main(int argc, char **argv)
{
    char *portNumber = getPortNumber(argc, argv);
    if (NULL == portNumber)
    {
        return -1;
    }
    if (checkPortNumber(portNumber) != 0)
    {
        help();
        return -1;
    }

    if (argc > 1) server(atoi(portNumber));
    else server(0);
    return 0;
}
Пример #3
0
Logger *LoggerManager::CreateLoggerInstance() {
	if (loggerInstance == NULL) {
		switch(loggerStyle) {
		case LoggerManager::DEFAULT:
			loggerInstance = new LoggerDefault(getLoggerLvl());
			break;
		case LoggerManager::LOGFILE:
			loggerInstance = new LoggerLogFile(getLogfileName(), getWritemode(), getLoggerLvl());
			break;
		case LoggerManager::COLOR:
			loggerInstance = new LoggerColor(getLoggerLvl(), colors);
			break;
		case LoggerManager::NETWORKSTREAM:
			loggerInstance = new LoggerNetworkStream(getProtocol(), getIpAddress(),
					getPortNumber(), getLoggerLvl());
			break;
		}
	}
	return loggerInstance;
}
Пример #4
0
void	setPortAdcon( unsigned int num_port )
{
    unsigned char	port, number;

    getPortNumber( num_port, &port, &number );

    switch( port ) {
    case	PORTNUM_A:
        TRISA	|= number;
        ANSELA	|= number;
        break;

    case	PORTNUM_C:
        TRISC	|= number;
        ANSELC	|= number;
        break;

    default:
        break;
    }
}
Пример #5
0
int zmq::norm_address_t::to_string_raw (std::string &addr_)
{
    std::string id, iface, host, port;
    host = std::string (hostName);

    std::stringstream s1;
    s1 << ":" << (uint32_t)getPortNumber ();
    port = s1.str ();

    if (localId != NORM_NODE_NONE && localId != NORM_NODE_ANY) {
        std::stringstream s2;
        s2 << (uint32_t)localId << ",";
        id = s2.str ();
    }

    if (ifaceName[0] != '\0') {
        iface = std::string (ifaceName) + ";";
    }

    addr_ = std::string ("norm://") + id + iface + host + port;
    // There should at least be a non-empty host name - compose address anyway
    return (hostName[0] == '\0' ? -1 : 0);
}
Пример #6
0
void	resetPortAdcon( unsigned int num_port )
{
    unsigned char	port, number;

    if( isPortReadyAdcon( num_port ) == TRUE ) {
        getPortNumber( num_port, &port, &number );

        switch( port ) {
        case	PORTNUM_A:
            ANSELA	&= ~number;
            TRISA	&= ~number;
            break;

        case	PORTNUM_C:
            ANSELC	&= ~number;
            TRISC	&= ~number;
            break;

        default:
            break;
        }
    }
}
Пример #7
0
/*init_add_interface功能:初始化了4个网口的mac地址等信息*/
void init_add_interface(struct sr_instance* sr, struct sr_vns_if* vns_if) {
	/* do not add any of the cpu interfaces */
	if (strstr(vns_if->name, "cpu")) {//函数功能是查name里面是否有cpu这个字符串,没有返回NULL
		return;
	}

	router_state* rs = (router_state*)sr->interface_subsystem;
	node* n = node_create();

	iface_entry* ie = (iface_entry*)malloc(sizeof(iface_entry));
	bzero(ie, sizeof(iface_entry));
	ie->is_active = 1;
	ie->ip = vns_if->ip;
	ie->mask = vns_if->mask;
	ie->speed = vns_if->speed;
	ie->is_wan = 0;
	memcpy(ie->addr, vns_if->addr, ETH_ADDR_LEN);
	memcpy(ie->name, vns_if->name, IF_LEN);
//	ie->hello_interval = PWOSPF_NEIGHBOR_TIMEOUT;


	/* router id is the same as the ip of the 0th iface */
	if(strncmp(ie->name, "eth0", IF_LEN) == 0) {
		rs->router_id = ie->ip;
	}

	n->data = ie;

	if (rs->if_list == NULL) {
		rs->if_list = n;
	} else {
		node_push_back(rs->if_list, n);
	}

	if (rs->is_netfpga) {
		/* set this on hardware */
		unsigned int mac_hi = 0;
		mac_hi |= ((unsigned int)vns_if->addr[0]) << 8;
		mac_hi |= ((unsigned int)vns_if->addr[1]);
		unsigned int mac_lo = 0;
		mac_lo |= ((unsigned int)vns_if->addr[2]) << 24;
		mac_lo |= ((unsigned int)vns_if->addr[3]) << 16;
		mac_lo |= ((unsigned int)vns_if->addr[4]) << 8;
		mac_lo |= ((unsigned int)vns_if->addr[5]);

		switch (getPortNumber(vns_if->name)) {
			case 0:
				writeReg(&rs->netfpga, ROUTER_OP_LUT_MAC_0_HI_REG, mac_hi);
				writeReg(&rs->netfpga, ROUTER_OP_LUT_MAC_0_LO_REG, mac_lo);
				break;
			case 1:
				writeReg(&rs->netfpga, ROUTER_OP_LUT_MAC_1_HI_REG, mac_hi);
				writeReg(&rs->netfpga, ROUTER_OP_LUT_MAC_1_LO_REG, mac_lo);
				break;
			case 2:
				writeReg(&rs->netfpga, ROUTER_OP_LUT_MAC_2_HI_REG, mac_hi);
				writeReg(&rs->netfpga, ROUTER_OP_LUT_MAC_2_LO_REG, mac_lo);
				break;
			case 3:
				writeReg(&rs->netfpga, ROUTER_OP_LUT_MAC_3_HI_REG, mac_hi);
				writeReg(&rs->netfpga, ROUTER_OP_LUT_MAC_3_LO_REG, mac_lo);
				break;
		}
	}

	/* add a local ip filter as well */
	struct in_addr ip;
	ip.s_addr = vns_if->ip;
	add_local_ip_filter(rs, &ip, vns_if->name);
}
Пример #8
0
Socket::Socket(const int sockfd)
	:m_sockfd(sockfd) {
	m_portnum = getPortNumber();
}
Пример #9
0
int main(int argc, char *argv[]){
	//Variable definitions that are socket related
	int serverSock, clientSock, sizeOfSockAddr;
	struct sockaddr_in server, client;
	if(argc != 4) //./server myPort otherPort1 otherPort2
	{
		perror("Wrong number of arguments");
		exit(INVALID_ARGS);
	}
	
	//Port numbers from command line
	MY_PORT = getPortNumber(argv[1]);
	OTHER_PORT1 = getPortNumber(argv[2]);
	OTHER_PORT2 = getPortNumber(argv[3]);
	
	//Create Socket for the server
	if((serverSock = socket(AF_INET, SOCK_STREAM, 0)) == -1){
		perror("Failed to create a socket");
		exit(SOCKET_FAILED);
	}
	puts("Created server socket.");
	
	//Prepare sockAddr struct
	server.sin_family = AF_INET;
	server.sin_port = htons((short)MY_PORT); 
	server.sin_addr.s_addr = htonl(INADDR_ANY);
	
	//Bind socket to  port
	if(bind(serverSock, (struct sockaddr *)&server, sizeof(server)) == -1){
		perror("Failed to bind a socket to a port");
		exit(BIND_FAILED);
	}
	puts("Binded a socket to port.");

	//Who is the primary?
	setPrimary();
	if(IS_PRIMARY)
	{
		printf("Primary: %i\n", MY_PORT);
	}
	else
	{
		printf("Back-up: %i\n", MY_PORT);
	} 
	while(1)
	{
		//Listen on a socket
		if(listen(serverSock, BACKLOG) == -1){
			perror("Failed listening on a socket.");
			exit(LISTEN_FAILED);
		}
		puts("Listening on a socket.");
		
		//Accept client connection
		sizeOfSockAddr = sizeof(struct sockaddr_in);
		if((clientSock = accept(serverSock, (struct sockaddr *)&client, (socklen_t*)&sizeOfSockAddr)) == -1)
		{
			perror("Failed to accept a connection.");
			exit(ACCEPT_FAILED);
		}
		printf("My Client: %i\n", clientSock);
		puts("Connection established with a client.");
		//Receive request
		pthread_t tid1;
		//pthread_create(&tid1, NULL, getInput, &connBundle);
		//1. Request: The front end issues the request, containing a unique identifier, to the primary replica manager.
		pthread_create(&tid1, NULL, getInput, (void*)clientSock);
		
	}
	return 0;
}