Ejemplo n.º 1
0
static void session_terminate_transfer(struct session_data *session,
					struct transfer_data *transfer,
					GError *gerr)
{
	struct session_callback *callback = session->callback;

	if (callback) {
		callback->func(session, gerr, callback->data);
		return;
	}

	session_ref(session);

	transfer_unregister(transfer);

	if (session->pending)
		session_request(session, session_prepare_put,
				session->pending->data);

	session_unref(session);
}
Ejemplo n.º 2
0
void secc_tester(const char* iface) {
    evcc_conn_t conn;
    ev_session_t s;
    struct sockaddr_in6 secc_tlsaddr, secc_tcpaddr;
    int err;
    memset(&conn, 0, sizeof(conn));
    memset(&s, 0, sizeof(s));

    err = load_contract("../../certs/contractchain.pem", "../../certs/contract.key", &s);
    if (err != 0) {
        printf("ev_example: load_contract error\n");
        return;
    }
    printf("Test %d: SDP with TLS enabled (Security = 0x00)... ", ++n);
    err = ev_sdp_discover_evse(iface, &secc_tlsaddr, true);
    if (err != 0) {
        printf("Test Failed\n");
    } else {
        printf("Success: SDP found TLS on port %u\n", secc_tlsaddr.sin6_port);
        succeses++;
    }
    printf("Test %d: SDP with TLS disabled (Security = 0x10... ", ++n);
    err = ev_sdp_discover_evse(iface, &secc_tcpaddr, false);
    if (err != 0) {
        printf("Test Failed\n");
    } else {
        test_validate_port(&secc_tcpaddr);
    }
    printf("Test %d: TLS serving & 15118 Protocol Handshake\n", ++n);
    if (USE_TLS && secc_tlsaddr.sin6_port != 0) {
        memcpy(&conn.addr, &secc_tlsaddr, sizeof(conn.addr));
        err = evcc_connect_tls(&conn, "../../certs/ev.pem", "../../certs/ev.key");
    } else if (!USE_TLS && secc_tlsaddr.sin6_port != 0) {
        memcpy(&conn.addr, &secc_tcpaddr, sizeof(conn.addr));
        err = evcc_connect_tcp(&conn);
    } else {
        printf("Unable to proceed as SDP found no viable port for chosen security\n");
        return;
    }
    if (err != 0) {
        printf("Connect failed, unable to proceed\n");
        return;
    }
    succeses++;
    printf("Test %d: Session Response\n", ++n);
    err = session_request(&conn, &s);
    if (err != 0 || s.id == 0) {
        printf("Test Failed: Session Setup. Unable to proceed.\n");
        return;
    }
    succeses++;
    printf("Test %d: Service Discovery Response\n", ++n);
    err = service_discovery_request(&conn, &s);
    if (err != 0) {
        printf("Test Failed: Service Discovery to proceed.\n");
        return;
    }
    succeses++;
   err = payment_selection_request(&conn, &s);
    if (err != 0) {
        printf("ev_example: payment_selection_request err\n");
        return;
    }
    err = payment_details_request(&conn, &s);
    if (err != 0) {
        printf("ev_example: payment_details_request err\n");
        return;
    }
    err = authorization_request(&conn, &s);
    if (err != 0) {
        printf("ev_example: authorization_request err\n");
        return;
    }
    err = charge_parameter_request(&conn, &s);
    if (err != 0) {
        printf("ev_example: charge_parameter_request err\n");
        return;
    }
    printf("Test %d: Power Delivery Response\n", ++n);
    err = test_power_delivery_request1(&conn, &s);
    if (err != 0) {
        printf("Test Failed: test_power_delivery_request1.\n");
        return;
    }
    succeses++;
    printf("Test %d: Power Delivery Response\n", ++n);
    err = test_power_delivery_request2(&conn, &s);
    if (err != 0) {
        printf("Test Failed: test_power_delivery_request2.\n");
        return;
    }
    succeses++;
    printf("Test %d: Power Delivery Response\n", ++n);
    err = test_power_delivery_request3(&conn, &s);
    if (err != 0) {
        printf("Test Failed: test_power_delivery_request3.\n");
        return;
    }
    succeses++;
    printf("Test %d: Power Delivery Response\n", ++n);
    err = test_power_delivery_request4(&conn, &s);
    if (err != 0) {
        printf("Test Failed: test_power_delivery_request4.\n");
        return;
    }
    succeses++;
    printf("Test %d: Power Delivery Response\n", ++n);
    err = test_power_delivery_request5(&conn, &s);
    if (err != 0) {
        printf("Test Failed: test_power_delivery_request5.\n");
        return;
    }
    succeses++;
}