示例#1
0
//////////////////////////////////////////////////////////////////
// Generate the get requests to the PHP script to get the time info 
// and to post status information
//////////////////////////////////////////////////////////////////
void web_php_interface(enum PHP_IF_TYPE msgtype){
	web_connect();
	if (uart_state != CONNECTED) { return ;}

	printf("GET /micro/webtmr.php?msg=");

	switch (msgtype) {
	case REQUEST_TIME:
		printf("time");
		break;
	case REPORT_CLOCK_SET:
		printf("clk_set");
		break;
	case REPORT_SWITCH_STATE:
		printf("%01d", output);
		break;
	case REQUEST_SETTINGS:
		printf("req");
		break;
	case SETTINGS_RETRIEVED:
		printf("store");
		break;
	}
	printf(" HTTP/1.1\nHost: lika.be\n\n");
	
}
示例#2
0
s32 ws__SocketApiOpen( WS_ENV *ws_env, s32 *ret )
{   
    s32 err = 0;
	s32 vrfid = 0;
	s32 litevrfid = 0;
	s32 vrf_sw = 0;
	s32 litevrf_sw = 0;
    s8 zebra_path[64]={0};

    vrf_getvrfswitch(&vrf_sw);
    vrf_getlitevrfswitch(&litevrf_sw);   

    err = zebra_get_current_litevrfid(&vrfid, &litevrfid, web_log_get_client_user(), vrf_sw, litevrf_sw);
	if(0 != err)
	{
	    return ws_send_soap_error(ws_env,"connecting server error");
	}   
    
    litevrf_id = litevrfid;

    /*web socket path*/
    if (0 == vrf_sw)
        sprintf(zebra_path, "%s%u", ZEBRA_UNIX_PATH, 0);
    else
	    sprintf(zebra_path, "%s%u", ZEBRA_UNIX_PATH, vrfid);

    zebra_sockfd = web_connect (zebra_path);
    if (-1 == zebra_sockfd)
    {
        /*Socket error*/
        return ERROR_FAIL;
    }

    return WS_OK;
}
示例#3
0
s32 ws__staticRouteIpv6Upload(WS_ENV *ws_env)
{
    u32 num = 0;
    u16 head = WEB_ROUTE_IPV6_UPLOAD;
    u8  value[WEB_ZEBRA_WRITE_BUFFER_SIZE] = {0};

    if(zebra_sockfd > 0)
    {
        close(zebra_sockfd);
        zebra_sockfd = -1;
    }
    zebra_sockfd = web_connect (WEB_ZEBRA_UNIX_PATH);
    if (-1 == zebra_sockfd)
    {
        /*Socket error*/
        return ERROR_FAIL;
    }

    /* 加入报文头*/
    memcpy(value, &head, sizeof(head));

    /*将命令发送给zebra,如果返回值小于0,则关闭该fd,并将zebra_sockfd置为0,返回ERR_FAIL*/
    num = writen (zebra_sockfd, value, WEB_ZEBRA_WRITE_BUFFER_SIZE);
    if (num < 0)
    {
        close(zebra_sockfd);
        zebra_sockfd = -1;
        return ERROR_FAIL;
    }

    return ERROR_SUCCESS;
}
示例#4
0
s32 ws__staticRouteIpv6Save(WS_ENV *ws_env, s32 *ret)
{
	s32 num = -1;
    u16 head = WEB_ROUTE_IPV6_SAVE;
    u8  value[WEB_ZEBRA_WRITE_BUFFER_SIZE] = {0};
    
    if(zebra_sockfd > 0)
    {
        close(zebra_sockfd);
        zebra_sockfd = -1;
    }
    zebra_sockfd = web_connect (WEB_ZEBRA_UNIX_PATH);
    if (-1 == zebra_sockfd)
    {
        /*Socket error*/
        return ERROR_FAIL;
    }
    memcpy(value, &head, sizeof(head));

    num = writen (zebra_sockfd, value, WEB_ZEBRA_WRITE_BUFFER_SIZE);
    if (num < 0)
    {
        close(zebra_sockfd);
        zebra_sockfd = -1;
        return ERROR_FAIL;
    }
    *ret = 0;

    return ERROR_SUCCESS;
}
示例#5
0
s32 ws__staticRouteIpv6Export()
{
    s32 num = 0;
    u16 head = WEB_ROUTE_IPV6_EXPORT;
    u8 value[WEB_ZEBRA_WRITE_BUFFER_SIZE] = {0};
    u8 flag = 0;

    if(zebra_sockfd < 0)
    {
        zebra_sockfd = web_connect ("/var/usock/.zweb0");
        if (-1 == zebra_sockfd)
        {
            /*Socket error*/
            return ERROR_FAIL;
        }
    }

    memcpy(value, &head, sizeof(head));

    num = writen(zebra_sockfd, value, WEB_ZEBRA_WRITE_BUFFER_SIZE);
    if (num < 0)
    {
        close(zebra_sockfd);
        zebra_sockfd = -1;
        return ERROR_FAIL;
    }
    
    num = readn(zebra_sockfd, &flag, 1);
    if (num < 0)
    {
        close(zebra_sockfd);
        zebra_sockfd = -1;
        return ERROR_FAIL;
    }

    if (1 != flag)
        return ERROR_FAIL;

    WEB_SEND_EX_OPERLOG_QUICK(ERROR_FAIL, "Export ipv6 static route.");

    return ERROR_SUCCESS;
}