int main()
{
    const char *httprequest = "POST / HTTP/1.1\r\nContent-Length: 49\r\nAuthorization: Basic \r\n\r\n{\"params\": [], \"method\": \"getwork\", \"id\": \"json\"}";
    
    printf("Hello from Nios II!\n");
    
    if(!eth_init()) {
        fprintf(stderr, "Ethernet initialization failed.\n");
        return -1;
    }
    
    SOCKET sock = 0;
    
    if (socket(sock, 1234)) {
        fprintf(stderr, "Failed to create a socket for outbound connections.\n");
        return -1;
    }
    
    if (connect(sock, 74, 95, 106, 214, 8332)) {
        fprintf(stderr, "Failed to connect to Mining Pool.\n");
        return -1;
    }
    
    
    //uint16_t buf_len = 0;
    uint8_t conn_state = 0;
  
    while(1)
    {
        if(established(sock) == 1) {
            if(conn_state == 0) {
                send(sock, (const uint8_t *)httprequest, strlen(httprequest));
                conn_state = 1;
                read_getwork(sock);
            }
            
            //buf_len = recv(sock, buf, 32);
            
            /*if(buf_len > 0) {
                send(sock, buf, buf_len);
            }*/
            //send(sock, "Hello World", 12);
            //disconnect(sock); 
        }
    }
    

    return 0;
}
示例#2
0
void Session::onResponse(const SignOn::SessionData& data)
{
    qDebug() << Q_FUNC_INFO << data.propertyNames();
    m_data = data;
    emit established();
}
void IOSCfgParser::rule_ext() {
	
	try {      // for error handling
		{
		switch ( LA(1)) {
		case IP:
		case WORD:
		{
			ip_protocols();
			hostaddr_ext();
			if ( inputState->guessing==0 ) {
#line 320 "iosacl.g"
				importer->SaveTmpAddrToSrc(); *dbg << "(src) ";
#line 935 "IOSCfgParser.cpp"
			}
			hostaddr_ext();
			if ( inputState->guessing==0 ) {
#line 321 "iosacl.g"
				importer->SaveTmpAddrToDst(); *dbg << "(dst) ";
#line 941 "IOSCfgParser.cpp"
			}
			{
			switch ( LA(1)) {
			case TIME_RANGE:
			{
				time_range();
				break;
			}
			case ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE:
			case NEWLINE:
			case IP:
			case QUIT:
			case WORD:
			case CERTIFICATE:
			case IOSVERSION:
			case HOSTNAME:
			case ACCESS_LIST:
			case PERMIT:
			case DENY:
			case LOG:
			case LOG_INPUT:
			case FRAGMENTS:
			case VLAN:
			case CONTROLLER:
			case INTRFACE:
			case DESCRIPTION:
			case REMARK:
			case SHUTDOWN:
			case EXIT:
			case LINE_COMMENT:
			{
				break;
			}
			default:
			{
				throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
			}
			}
			}
			{
			switch ( LA(1)) {
			case FRAGMENTS:
			{
				fragments();
				break;
			}
			case ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE:
			case NEWLINE:
			case IP:
			case QUIT:
			case WORD:
			case CERTIFICATE:
			case IOSVERSION:
			case HOSTNAME:
			case ACCESS_LIST:
			case PERMIT:
			case DENY:
			case LOG:
			case LOG_INPUT:
			case VLAN:
			case CONTROLLER:
			case INTRFACE:
			case DESCRIPTION:
			case REMARK:
			case SHUTDOWN:
			case EXIT:
			case LINE_COMMENT:
			{
				break;
			}
			default:
			{
				throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
			}
			}
			}
			{
			switch ( LA(1)) {
			case LOG:
			case LOG_INPUT:
			{
				log();
				break;
			}
			case ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE:
			case NEWLINE:
			case IP:
			case QUIT:
			case WORD:
			case CERTIFICATE:
			case IOSVERSION:
			case HOSTNAME:
			case ACCESS_LIST:
			case PERMIT:
			case DENY:
			case VLAN:
			case CONTROLLER:
			case INTRFACE:
			case DESCRIPTION:
			case REMARK:
			case SHUTDOWN:
			case EXIT:
			case LINE_COMMENT:
			{
				break;
			}
			default:
			{
				throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
			}
			}
			}
			break;
		}
		case ICMP:
		{
			match(ICMP);
			if ( inputState->guessing==0 ) {
#line 327 "iosacl.g"
				
				importer->protocol = LT(0)->getText();
				*dbg << "protocol " << LT(0)->getText() << " ";
				
#line 1065 "IOSCfgParser.cpp"
			}
			hostaddr_ext();
			if ( inputState->guessing==0 ) {
#line 331 "iosacl.g"
				importer->SaveTmpAddrToSrc(); *dbg << "(src) ";
#line 1071 "IOSCfgParser.cpp"
			}
			hostaddr_ext();
			if ( inputState->guessing==0 ) {
#line 332 "iosacl.g"
				importer->SaveTmpAddrToDst(); *dbg << "(dst) ";
#line 1077 "IOSCfgParser.cpp"
			}
			{
			if ((LA(1) == WORD || LA(1) == INT_CONST) && (_tokenSet_4.member(LA(2)))) {
				icmp_spec();
			}
			else if ((_tokenSet_5.member(LA(1))) && (_tokenSet_6.member(LA(2)))) {
			}
			else {
				throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
			}
			
			}
			{
			switch ( LA(1)) {
			case TIME_RANGE:
			{
				time_range();
				break;
			}
			case ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE:
			case NEWLINE:
			case IP:
			case QUIT:
			case WORD:
			case CERTIFICATE:
			case IOSVERSION:
			case HOSTNAME:
			case ACCESS_LIST:
			case PERMIT:
			case DENY:
			case LOG:
			case LOG_INPUT:
			case FRAGMENTS:
			case VLAN:
			case CONTROLLER:
			case INTRFACE:
			case DESCRIPTION:
			case REMARK:
			case SHUTDOWN:
			case EXIT:
			case LINE_COMMENT:
			{
				break;
			}
			default:
			{
				throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
			}
			}
			}
			{
			switch ( LA(1)) {
			case FRAGMENTS:
			{
				fragments();
				break;
			}
			case ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE:
			case NEWLINE:
			case IP:
			case QUIT:
			case WORD:
			case CERTIFICATE:
			case IOSVERSION:
			case HOSTNAME:
			case ACCESS_LIST:
			case PERMIT:
			case DENY:
			case LOG:
			case LOG_INPUT:
			case VLAN:
			case CONTROLLER:
			case INTRFACE:
			case DESCRIPTION:
			case REMARK:
			case SHUTDOWN:
			case EXIT:
			case LINE_COMMENT:
			{
				break;
			}
			default:
			{
				throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
			}
			}
			}
			{
			switch ( LA(1)) {
			case LOG:
			case LOG_INPUT:
			{
				log();
				break;
			}
			case ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE:
			case NEWLINE:
			case IP:
			case QUIT:
			case WORD:
			case CERTIFICATE:
			case IOSVERSION:
			case HOSTNAME:
			case ACCESS_LIST:
			case PERMIT:
			case DENY:
			case VLAN:
			case CONTROLLER:
			case INTRFACE:
			case DESCRIPTION:
			case REMARK:
			case SHUTDOWN:
			case EXIT:
			case LINE_COMMENT:
			{
				break;
			}
			default:
			{
				throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
			}
			}
			}
			break;
		}
		case TCP:
		case UDP:
		{
			{
			switch ( LA(1)) {
			case TCP:
			{
				match(TCP);
				break;
			}
			case UDP:
			{
				match(UDP);
				break;
			}
			default:
			{
				throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
			}
			}
			}
			if ( inputState->guessing==0 ) {
#line 339 "iosacl.g"
				
				importer->protocol = LT(0)->getText();
				*dbg << "protocol " << LT(0)->getText() << " ";
				
#line 1230 "IOSCfgParser.cpp"
			}
			hostaddr_ext();
			if ( inputState->guessing==0 ) {
#line 343 "iosacl.g"
				importer->SaveTmpAddrToSrc(); *dbg << "(src) ";
#line 1236 "IOSCfgParser.cpp"
			}
			{
			switch ( LA(1)) {
			case P_EQ:
			case P_GT:
			case P_LT:
			case P_NEQ:
			case P_RANGE:
			{
				xoperator();
				if ( inputState->guessing==0 ) {
#line 344 "iosacl.g"
					importer->SaveTmpPortToSrc();
#line 1250 "IOSCfgParser.cpp"
				}
				break;
			}
			case HOST:
			case IPV4:
			case ANY:
			{
				break;
			}
			default:
			{
				throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
			}
			}
			}
			hostaddr_ext();
			if ( inputState->guessing==0 ) {
#line 345 "iosacl.g"
				importer->SaveTmpAddrToDst(); *dbg << "(dst) ";
#line 1270 "IOSCfgParser.cpp"
			}
			{
			switch ( LA(1)) {
			case P_EQ:
			case P_GT:
			case P_LT:
			case P_NEQ:
			case P_RANGE:
			{
				xoperator();
				if ( inputState->guessing==0 ) {
#line 346 "iosacl.g"
					importer->SaveTmpPortToDst();
#line 1284 "IOSCfgParser.cpp"
				}
				break;
			}
			case ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE:
			case NEWLINE:
			case IP:
			case QUIT:
			case WORD:
			case CERTIFICATE:
			case IOSVERSION:
			case HOSTNAME:
			case ACCESS_LIST:
			case PERMIT:
			case DENY:
			case LOG:
			case LOG_INPUT:
			case ESTABLISHED:
			case FRAGMENTS:
			case TIME_RANGE:
			case VLAN:
			case CONTROLLER:
			case INTRFACE:
			case DESCRIPTION:
			case REMARK:
			case SHUTDOWN:
			case EXIT:
			case LINE_COMMENT:
			{
				break;
			}
			default:
			{
				throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
			}
			}
			}
			{
			switch ( LA(1)) {
			case ESTABLISHED:
			{
				established();
				break;
			}
			case ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE:
			case NEWLINE:
			case IP:
			case QUIT:
			case WORD:
			case CERTIFICATE:
			case IOSVERSION:
			case HOSTNAME:
			case ACCESS_LIST:
			case PERMIT:
			case DENY:
			case LOG:
			case LOG_INPUT:
			case FRAGMENTS:
			case TIME_RANGE:
			case VLAN:
			case CONTROLLER:
			case INTRFACE:
			case DESCRIPTION:
			case REMARK:
			case SHUTDOWN:
			case EXIT:
			case LINE_COMMENT:
			{
				break;
			}
			default:
			{
				throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
			}
			}
			}
			{
			switch ( LA(1)) {
			case TIME_RANGE:
			{
				time_range();
				break;
			}
			case ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE:
			case NEWLINE:
			case IP:
			case QUIT:
			case WORD:
			case CERTIFICATE:
			case IOSVERSION:
			case HOSTNAME:
			case ACCESS_LIST:
			case PERMIT:
			case DENY:
			case LOG:
			case LOG_INPUT:
			case FRAGMENTS:
			case VLAN:
			case CONTROLLER:
			case INTRFACE:
			case DESCRIPTION:
			case REMARK:
			case SHUTDOWN:
			case EXIT:
			case LINE_COMMENT:
			{
				break;
			}
			default:
			{
				throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
			}
			}
			}
			{
			switch ( LA(1)) {
			case FRAGMENTS:
			{
				fragments();
				break;
			}
			case ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE:
			case NEWLINE:
			case IP:
			case QUIT:
			case WORD:
			case CERTIFICATE:
			case IOSVERSION:
			case HOSTNAME:
			case ACCESS_LIST:
			case PERMIT:
			case DENY:
			case LOG:
			case LOG_INPUT:
			case VLAN:
			case CONTROLLER:
			case INTRFACE:
			case DESCRIPTION:
			case REMARK:
			case SHUTDOWN:
			case EXIT:
			case LINE_COMMENT:
			{
				break;
			}
			default:
			{
				throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
			}
			}
			}
			{
			switch ( LA(1)) {
			case LOG:
			case LOG_INPUT:
			{
				log();
				break;
			}
			case ANTLR_USE_NAMESPACE(antlr)Token::EOF_TYPE:
			case NEWLINE:
			case IP:
			case QUIT:
			case WORD:
			case CERTIFICATE:
			case IOSVERSION:
			case HOSTNAME:
			case ACCESS_LIST:
			case PERMIT:
			case DENY:
			case VLAN:
			case CONTROLLER:
			case INTRFACE:
			case DESCRIPTION:
			case REMARK:
			case SHUTDOWN:
			case EXIT:
			case LINE_COMMENT:
			{
				break;
			}
			default:
			{
				throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
			}
			}
			}
			break;
		}
		default:
		{
			throw ANTLR_USE_NAMESPACE(antlr)NoViableAltException(LT(1), getFilename());
		}
		}
		}
		if ( inputState->guessing==0 ) {
#line 352 "iosacl.g"
			
			*dbg << std::endl;
			
#line 1484 "IOSCfgParser.cpp"
		}
	}
	catch (ANTLR_USE_NAMESPACE(antlr)RecognitionException& ex) {
		if( inputState->guessing == 0 ) {
			reportError(ex);
			recover(ex,_tokenSet_1);
		} else {
			throw;
		}
	}
}
void read_getwork(SOCKET s)
{
    uint16_t size, offset, start_address;
    uint16_t state = 0;
    uint8_t a = 0, b = 0, c = 0, d = 0, e = 0;
    uint8_t *write_ptr;
    uint16_t write_len = 0;
    
    while(1)
    {
        size = (read_sock_reg(s, Sn_RX_RSR) << 8) | read_sock_reg(s, Sn_RX_RSR+1);
    
        if (size == 0) {
            if (established(s) == 1)
                continue;
            break;
        }
    
        offset = (read_sock_reg(s, Sn_RX_RD) << 8) | read_sock_reg(s, Sn_RX_RD+1);
        offset &= 0x7FF;
    
        // TODO: RXBUF_BASE + s << 8???
        start_address = RXBUF_BASE + offset;
        
        a = b;
        b = c;
        c = d;
        d = e;
        eth_read(start_address, &e);
        
        printf("%c", e);
        
        offset = (read_sock_reg(s, Sn_RX_RD) << 8) | read_sock_reg(s, Sn_RX_RD+1);
        offset += 1;
    
        write_sock_reg(s, Sn_RX_RD, offset >> 8);
        write_sock_reg(s, Sn_RX_RD+1, offset & 0xFF);
        
        write_sock_reg(s, Sn_CR, RECV);
        
        /*if (write_len > 0 && ((e >= '0' && e <= '9') || (e >= 'a' && e <= 'f') || (e >= 'A' && e <= 'F')) ) {
            if (write_len & 1) {
                *write_ptr = (hex_to_nibble(d) << 4) | hex_to_nibble(e);
                write_ptr++;
            }
            write_len--;
            state++;
        }
        
        if(state == 152+64)
            break;
        
        if(a == 'a' && b == 't' && c == 'e' && d == '"' && e == ':') {
            write_ptr = midstate;
            write_len = 64;
        }*/
        
        /*if(a == 'a' && b == 't' && c == 'a' && d == '"' && e == ':') {
            write_ptr = hdata;
            write_len = 152;
        }*/
    }
    
    printf("\n\n");
    //send(s, midstate, 32);
    //send(s, hdata, 76);
}