Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
No results found
Show changes
Commits on Source (7)
......@@ -417,8 +417,8 @@ dap_chain_net_srv_t* dap_chain_net_srv_add(dap_chain_net_srv_uid_t a_uid,dap_cha
l_srv->callback_receipt_next_success = a_callback_receipt_next_success;
l_sdata = DAP_NEW_Z(service_list_t);
memcpy(&l_sdata->uid, &l_uid, sizeof(l_uid));
l_sdata->srv = DAP_NEW(dap_chain_net_srv_t);
memcpy(&l_sdata->srv, l_srv, sizeof(dap_chain_net_srv_t));
l_sdata->srv = l_srv;//DAP_NEW(dap_chain_net_srv_t);
//memcpy(l_sdata->srv, l_srv, sizeof(dap_chain_net_srv_t));
HASH_ADD(hh, s_srv_list, uid, sizeof(l_srv->uid), l_sdata);
}else{
log_it(L_ERROR, "Already present service with 0x%016llX ", a_uid.uint64);
......@@ -535,12 +535,13 @@ const dap_chain_net_srv_uid_t * dap_chain_net_srv_list(void)
*/
dap_chain_datum_tx_receipt_t * dap_chain_net_srv_issue_receipt(dap_chain_net_srv_t *a_srv,
dap_chain_net_srv_usage_t * a_usage,
dap_chain_net_srv_price_t * a_price
dap_chain_net_srv_price_t * a_price,
const void * a_ext, size_t a_ext_size
)
{
dap_chain_datum_tx_receipt_t * l_receipt = dap_chain_datum_tx_receipt_create(
a_srv->uid, a_price->units_uid, a_price->units, a_price->value_datoshi);
size_t l_receipt_size = sizeof(dap_chain_receipt_info_t)+1; // nested receipt plus 8 bits for type
a_srv->uid, a_price->units_uid, a_price->units, a_price->value_datoshi, a_ext, a_ext_size);
size_t l_receipt_size = l_receipt->size; // nested receipt plus 8 bits for type
// Sign with our wallet
l_receipt_size = dap_chain_datum_tx_receipt_sign_add(l_receipt,l_receipt_size , dap_chain_wallet_get_key( a_usage->wallet,0) );
......
......@@ -63,6 +63,6 @@ size_t dap_chain_net_srv_count(void);
const dap_chain_net_srv_uid_t * dap_chain_net_srv_list(void);
dap_chain_datum_tx_receipt_t * dap_chain_net_srv_issue_receipt(dap_chain_net_srv_t *a_srv,
dap_chain_net_srv_usage_t * a_usage,
dap_chain_net_srv_price_t * a_price
dap_chain_net_srv_price_t * a_price, const void * a_ext, size_t a_ext_size
);
......@@ -108,7 +108,7 @@ typedef struct dap_chain_net_srv_price
#define DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR_CODE_TX_COND_NOT_ENOUGH 0x00000402
#define DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR_CODE_TX_COND_NOT_ACCEPT_TOKEN 0x00000403
#define DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR_CODE_TX_COND_WRONG_SRV_UID 0x00000404
#define DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR_CODE_TX_COND_WRONG_SIZE 0x00000404
#define DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR_CODE_TX_COND_WRONG_SIZE 0x00000405
#define DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR_CODE_RECEIPT_CANT_FIND 0x00000500
#define DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR_CODE_RECEIPT_NO_SIGN 0x00000501
#define DAP_STREAM_CH_CHAIN_NET_SRV_PKT_TYPE_RESPONSE_ERROR_CODE_PRICE_NOT_FOUND 0x00000600
......
......@@ -42,6 +42,7 @@ dap_chain_net_srv_stream_session_t * dap_chain_net_srv_stream_session_create( da
}
dap_chain_net_srv_stream_session_t * l_session_srv= DAP_NEW_Z(dap_chain_net_srv_stream_session_t);
a_session->_inheritor = l_session_srv;
l_session_srv->parent = a_session;
log_it(L_NOTICE, "created service session");
return l_session_srv;
}
......
......@@ -58,6 +58,8 @@ typedef struct dap_chain_net_srv_usage{
UT_hash_handle hh; //
} dap_chain_net_srv_usage_t;
typedef void (*dap_response_success_callback_t) (dap_stream_ch_chain_net_srv_pkt_success_t*, void*);
typedef struct dap_chain_net_srv_stream_session {
dap_stream_session_t * parent;
dap_chain_net_srv_usage_t * usages;
......@@ -69,6 +71,10 @@ typedef struct dap_chain_net_srv_stream_session {
time_t ts_activated;
dap_sign_t* user_sign; // User's signature for auth if reconnect
dap_response_success_callback_t response_success_callback;
void *response_success_callback_data;
} dap_chain_net_srv_stream_session_t;
#define DAP_CHAIN_NET_SRV_STREAM_SESSION(a) ((dap_chain_net_srv_stream_session_t *) (a)->_inheritor )
......