diff --git a/src/facilities.c b/src/facilities.c index bf29970..28f4dbf 100644 --- a/src/facilities.c +++ b/src/facilities.c @@ -226,7 +226,7 @@ static int transport_indication(facilities_t *facilities, void* responder, void* case 7011: if (facilities->tolling.enabled) { - tpm_recv(facilities, its_msg, security_socket, neighbour_cert, NULL, 0); + tpm_recv(facilities, its_msg, security_socket, neighbour_cert, NULL); } break; @@ -323,7 +323,7 @@ static int transport_indication(facilities_t *facilities, void* responder, void* goto cleanup; } if (!dec.code) { - tpm_recv(facilities, its_msg, security_socket, NULL, tpi->choice.tcp.sourceAddress->buf, tpi->choice.tcp.sourcePort); + tpm_recv(facilities, its_msg, security_socket, NULL, tpi->choice.tcp.sourceAddress->buf); } } } diff --git a/src/saem.c b/src/saem.c index bbef83f..b548313 100644 --- a/src/saem.c +++ b/src/saem.c @@ -389,13 +389,13 @@ void *sa_service(void *fc) { switch (facilities->tolling.protocol) { case TOLLING_PROTOCOL_SIMPLE: - tpm_pay(facilities, info, security_socket, bulletin->to_consume[a]->certificate_id, NULL, 0); + tpm_pay(facilities, info, security_socket, bulletin->to_consume[a]->certificate_id, NULL); ++bulletin->to_consume[a]->n_trigger; bulletin->to_consume[a]->t_trigger = now; break; case TOLLING_PROTOCOL_TLS: - tpm_pay(facilities, info, security_socket, NULL, bulletin->to_consume[a]->endpoint.ipv6_addr, bulletin->to_consume[a]->endpoint.port); + tpm_pay(facilities, info, security_socket, NULL, bulletin->to_consume[a]->endpoint.ipv6_addr); ++bulletin->to_consume[a]->n_trigger; bulletin->to_consume[a]->t_trigger = now; break; diff --git a/src/tpm.c b/src/tpm.c index a51c1cc..4e6f420 100644 --- a/src/tpm.c +++ b/src/tpm.c @@ -29,7 +29,7 @@ int tpm_is_inside_zone(void* fc, tolling_info_s* ti) { return 0; } -int tpm_pay(void* fc, tolling_info_s* info, void* security_socket, uint8_t* neighbour, uint8_t* dst_addr, uint16_t dst_port) { +int tpm_pay(void* fc, tolling_info_s* info, void* security_socket, uint8_t* neighbour, uint8_t* dst_addr) { int rv = 0; facilities_t* facilities = (facilities_t*) fc; @@ -212,7 +212,7 @@ int tpm_pay(void* fc, tolling_info_s* info, void* security_socket, uint8_t* neig tcp->destinationAddress->buf = malloc(16); tcp->destinationAddress->size = 16; memcpy(tcp->destinationAddress->buf, dst_addr, 16); - tcp->destinationPort = dst_port; + tcp->destinationPort = 7011; tcp->sourcePort = 7011; tcp->data.buf = malloc(srep->data->choice.tlsSend.data.size); @@ -273,7 +273,7 @@ cleanup: return rv; } -static void rsu_handle_recv(facilities_t* facilities, TPM_t* tpm_rx, void* security_socket, uint8_t* neighbour, uint8_t* dst_addr, uint16_t dst_port) { +static void rsu_handle_recv(facilities_t* facilities, TPM_t* tpm_rx, void* security_socket, uint8_t* neighbour, uint8_t* src_addr) { TollRequest_t* req = &tpm_rx->tpm.tollingFlow.choice.request; tolling_s* tolling = &facilities->tolling; @@ -520,8 +520,8 @@ static void rsu_handle_recv(facilities_t* facilities, TPM_t* tpm_rx, void* secur tcp->destinationAddress = calloc(1, sizeof(OCTET_STRING_t)); tcp->destinationAddress->buf = malloc(16); tcp->destinationAddress->size = 16; - memcpy(tcp->destinationAddress->buf, dst_addr, 16); - tcp->destinationPort = dst_port; + memcpy(tcp->destinationAddress->buf, src_addr, 16); + tcp->destinationPort = 7011; tcp->sourcePort = 7011; tcp->data.buf = malloc(srep->data->choice.tlsSend.data.size); @@ -664,7 +664,7 @@ cleanup: ASN_STRUCT_FREE(asn_DEF_SecurityReply, srep); } -int tpm_recv(void* fc, TPM_t* tpm_rx, void* security_socket, uint8_t* neighbour, uint8_t* src_addr, uint16_t src_port) { +int tpm_recv(void* fc, TPM_t* tpm_rx, void* security_socket, uint8_t* neighbour, uint8_t* src_addr) { int rv = 0; facilities_t* facilities = (facilities_t*) fc; @@ -681,7 +681,7 @@ int tpm_recv(void* fc, TPM_t* tpm_rx, void* security_socket, uint8_t* neighbour, syslog_debug("[facilities] [tolling] received TPM.request, ignoring"); goto cleanup; } - rsu_handle_recv(facilities, tpm_rx, security_socket, neighbour, src_addr, src_port); + rsu_handle_recv(facilities, tpm_rx, security_socket, neighbour, src_addr); break; case TollingFlow_PR_reply: diff --git a/src/tpm.h b/src/tpm.h index 967ccc4..ef3b2c0 100644 --- a/src/tpm.h +++ b/src/tpm.h @@ -50,8 +50,8 @@ typedef struct tolling { */ int tolling_init(tolling_s* tolling, void* zmq_ctx, char* security_address); -int tpm_pay(void* fc, tolling_info_s* info, void* security_socket, uint8_t* neighbour, uint8_t* src_addr, uint16_t src_port); -int tpm_recv(void* fc, TPM_t* tpm_rx, void* security_socket, uint8_t* neighbour, uint8_t* src_addr, uint16_t src_port); +int tpm_pay(void* fc, tolling_info_s* info, void* security_socket, uint8_t* neighbour, uint8_t* dst_addr); +int tpm_recv(void* fc, TPM_t* tpm_rx, void* security_socket, uint8_t* neighbour, uint8_t* src_addr); int tpm_is_inside_zone(void* fc, tolling_info_s* ti); tolling_info_s* tolling_info_new(it2s_tender_epv_t* epv, TollingPaymentInfo_t* tpi);