mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-09 00:00:04 +01:00
cpd: pass up lws_ss_request_tx ret
This commit is contained in:
parent
f3d5b9b99a
commit
e644bb4a6e
17 changed files with 63 additions and 60 deletions
|
@ -447,7 +447,7 @@ typedef struct lws_ss_info {
|
|||
* formats, \p ppayload_fmt is set to point to the name of the needed payload
|
||||
* format from the policy database if non-NULL.
|
||||
*/
|
||||
LWS_VISIBLE LWS_EXTERN int
|
||||
LWS_VISIBLE LWS_EXTERN int LWS_WARN_UNUSED_RESULT
|
||||
lws_ss_create(struct lws_context *context, int tsi, const lws_ss_info_t *ssi,
|
||||
void *opaque_user_data, struct lws_ss_handle **ppss,
|
||||
struct lws_sequencer *seq_owner, const char **ppayload_fmt);
|
||||
|
@ -471,9 +471,9 @@ lws_ss_destroy(struct lws_ss_handle **ppss);
|
|||
* write on this stream, the \p *tx callback will occur with an empty buffer for
|
||||
* the stream owner to fill in.
|
||||
*
|
||||
* Returns 0 or LWSSSSRET_SS_HANDLE_DESTROYED
|
||||
* Returns 0 or LWSSSSRET_DESTROY_ME
|
||||
*/
|
||||
LWS_VISIBLE LWS_EXTERN lws_ss_state_return_t
|
||||
LWS_VISIBLE LWS_EXTERN lws_ss_state_return_t LWS_WARN_UNUSED_RESULT
|
||||
lws_ss_request_tx(struct lws_ss_handle *pss);
|
||||
|
||||
/**
|
||||
|
@ -489,7 +489,7 @@ lws_ss_request_tx(struct lws_ss_handle *pss);
|
|||
* This api variant should be used when it's possible the payload will go out
|
||||
* over h1 with x-web-form-urlencoded or similar Content-Type.
|
||||
*/
|
||||
LWS_VISIBLE LWS_EXTERN lws_ss_state_return_t
|
||||
LWS_VISIBLE LWS_EXTERN lws_ss_state_return_t LWS_WARN_UNUSED_RESULT
|
||||
lws_ss_request_tx_len(struct lws_ss_handle *pss, unsigned long len);
|
||||
|
||||
/**
|
||||
|
@ -505,7 +505,7 @@ lws_ss_request_tx_len(struct lws_ss_handle *pss, unsigned long len);
|
|||
* LWSSSSRET_OK means the connection is ongoing.
|
||||
*
|
||||
*/
|
||||
LWS_VISIBLE LWS_EXTERN lws_ss_state_return_t
|
||||
LWS_VISIBLE LWS_EXTERN lws_ss_state_return_t LWS_WARN_UNUSED_RESULT
|
||||
lws_ss_client_connect(struct lws_ss_handle *h);
|
||||
|
||||
/**
|
||||
|
|
|
@ -362,6 +362,7 @@ lws_ss_deserialize_parse(struct lws_ss_serialization_parser *par,
|
|||
lws_ss_conn_states_t *state, void *parconn,
|
||||
lws_ss_handle_t **pss, lws_ss_info_t *ssi, char client)
|
||||
{
|
||||
lws_ss_state_return_t r;
|
||||
lws_ss_metadata_t *pm;
|
||||
lws_sspc_handle_t *h;
|
||||
uint8_t pre[23];
|
||||
|
@ -1003,11 +1004,14 @@ payload_ff:
|
|||
lwsl_notice("%s: set payload len %u\n", __func__,
|
||||
par->temp32);
|
||||
|
||||
if (proxy_pss_to_ss_h(pss))
|
||||
lws_ss_request_tx_len(proxy_pss_to_ss_h(pss),
|
||||
(unsigned long)par->temp32);
|
||||
|
||||
par->ps = RPAR_TYPE;
|
||||
|
||||
if (proxy_pss_to_ss_h(pss)) {
|
||||
r = lws_ss_request_tx_len(proxy_pss_to_ss_h(pss),
|
||||
(unsigned long)par->temp32);
|
||||
if (r == LWSSSSRET_DESTROY_ME)
|
||||
goto hangup;
|
||||
}
|
||||
break;
|
||||
|
||||
case RPAR_METADATA_NAMELEN:
|
||||
|
|
|
@ -1512,7 +1512,7 @@ lws_ss_request_tx(lws_ss_handle_t *h)
|
|||
lws_ss_state_return_t r;
|
||||
|
||||
r = _lws_ss_request_tx(h);
|
||||
_lws_ss_handle_state_ret_CAN_DESTROY_HANDLE(r, NULL, &h);
|
||||
|
||||
return r;
|
||||
}
|
||||
|
||||
|
|
|
@ -227,9 +227,8 @@ ss_api_amazon_auth_state(void *userobj, void *sh, lws_ss_constate_t state,
|
|||
s = lws_system_blob_get_size(ab);
|
||||
if (!s)
|
||||
lwsl_debug("%s: no auth blob\n", __func__);
|
||||
lws_ss_request_tx_len(m->ss, (unsigned long)s);
|
||||
m->pos = 0;
|
||||
break;
|
||||
return lws_ss_request_tx_len(m->ss, (unsigned long)s);
|
||||
|
||||
case LWSSSCS_DISCONNECTED:
|
||||
/*
|
||||
|
|
|
@ -47,8 +47,7 @@ ss_cpd_state(void *userobj, void *sh, lws_ss_constate_t state,
|
|||
switch (state) {
|
||||
case LWSSSCS_CREATING:
|
||||
lws_ss_start_timeout(m->ss, 3 * LWS_US_PER_SEC);
|
||||
lws_ss_request_tx(m->ss);
|
||||
break;
|
||||
return lws_ss_request_tx(m->ss);
|
||||
|
||||
case LWSSSCS_QOS_ACK_REMOTE:
|
||||
lws_system_cpd_set(cx, LWS_CPD_INTERNET_OK);
|
||||
|
|
|
@ -102,8 +102,8 @@ ss_fetch_policy_state(void *userobj, void *sh, lws_ss_constate_t state,
|
|||
|
||||
switch (state) {
|
||||
case LWSSSCS_CREATING:
|
||||
lws_ss_request_tx(m->ss);
|
||||
break;
|
||||
return lws_ss_request_tx(m->ss);
|
||||
|
||||
case LWSSSCS_CONNECTING:
|
||||
break;
|
||||
|
||||
|
|
|
@ -169,8 +169,8 @@ notify:
|
|||
}
|
||||
|
||||
static const struct lws_protocols protocols[] = {
|
||||
{ "seq-test-http", callback_http, 0, 0, },
|
||||
{ NULL, NULL, 0, 0 }
|
||||
{ "seq-test-http", callback_http, 0, 0, 0, NULL, 0 },
|
||||
LWS_PROTOCOL_LIST_TERM
|
||||
};
|
||||
|
||||
|
||||
|
|
|
@ -183,11 +183,11 @@ myss_tx_post(void *userobj, lws_ss_tx_ordinal_t ord, uint8_t *buf, size_t *len,
|
|||
*len = budget;
|
||||
m->sent += budget;
|
||||
if (m->sent != next_test->send)
|
||||
lws_ss_request_tx(m->ss);
|
||||
else
|
||||
*flags |= LWSSS_FLAG_EOM;
|
||||
return lws_ss_request_tx(m->ss);
|
||||
|
||||
return 0;
|
||||
*flags |= LWSSS_FLAG_EOM;
|
||||
|
||||
return LWSSSSRET_OK;
|
||||
}
|
||||
|
||||
static lws_ss_state_return_t
|
||||
|
@ -195,15 +195,18 @@ myss_state(void *userobj, void *sh, lws_ss_constate_t state,
|
|||
lws_ss_tx_ordinal_t ack)
|
||||
{
|
||||
myss_t *m = (myss_t *)userobj;
|
||||
lws_ss_state_return_t r;
|
||||
|
||||
lwsl_notice("%s: %s, ord 0x%x\n", __func__, lws_ss_state_name((int)state),
|
||||
(unsigned int)ack);
|
||||
|
||||
switch (state) {
|
||||
case LWSSSCS_CREATING:
|
||||
lws_ss_client_connect(m->ss);
|
||||
r = lws_ss_client_connect(m->ss);
|
||||
if (r)
|
||||
return r;
|
||||
if (next_test->send)
|
||||
lws_ss_request_tx_len(m->ss, (unsigned long)next_test->send);
|
||||
return lws_ss_request_tx_len(m->ss, (unsigned long)next_test->send);
|
||||
break;
|
||||
case LWSSSCS_ALL_RETRIES_FAILED:
|
||||
lwsl_notice("%s: Connection failed\n", __func__);
|
||||
|
@ -258,7 +261,7 @@ happy:
|
|||
break;
|
||||
}
|
||||
|
||||
return 0;
|
||||
return LWSSSSRET_OK;
|
||||
}
|
||||
|
||||
static const lws_ss_info_t ssi_get = {
|
||||
|
|
|
@ -86,7 +86,7 @@ myss_state(void *userobj, void *sh, lws_ss_constate_t state,
|
|||
|
||||
switch (state) {
|
||||
case LWSSSCS_CREATING:
|
||||
lws_ss_client_connect(m->ss);
|
||||
return lws_ss_client_connect(m->ss);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
|
|
|
@ -187,7 +187,7 @@ ss_avs_metadata_tx(void *userobj, lws_ss_tx_ordinal_t ord, uint8_t *buf,
|
|||
lwsl_info("%s: tx done\n", __func__);
|
||||
m->pos = (size_t)-1l; /* ban subsequent until new stream */
|
||||
} else
|
||||
lws_ss_request_tx(m->ss);
|
||||
return lws_ss_request_tx(m->ss);
|
||||
|
||||
lwsl_hexdump_info(buf, *len);
|
||||
|
||||
|
@ -211,7 +211,7 @@ ss_avs_metadata_tx(void *userobj, lws_ss_tx_ordinal_t ord, uint8_t *buf,
|
|||
if (m->pos == tot) {
|
||||
*flags |= LWSSS_FLAG_EOM;
|
||||
m->pos = 0; /* for next time */
|
||||
lws_ss_request_tx(m->ss);
|
||||
return lws_ss_request_tx(m->ss);
|
||||
}
|
||||
|
||||
lwsl_hexdump_info(buf, *len);
|
||||
|
|
|
@ -318,13 +318,15 @@ myss_tx(void *userobj, lws_ss_tx_ordinal_t ord, uint8_t *buf, size_t *len,
|
|||
memcpy(buf, postbody + m->pos, *len);
|
||||
|
||||
m->pos += *len;
|
||||
|
||||
if (m->pos == m->len)
|
||||
*flags |= LWSSS_FLAG_EOM;
|
||||
else
|
||||
lws_ss_request_tx(m->ss);
|
||||
|
||||
lwsl_notice("%s: write %d flags %d\n", __func__, (int)*len, (int)*flags);
|
||||
|
||||
if (m->pos != m->len)
|
||||
return lws_ss_request_tx(m->ss);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -353,11 +355,12 @@ myss_state(void *userobj, void *sh, lws_ss_constate_t state,
|
|||
/* provide a hint about the payload size */
|
||||
m->pos = 0;
|
||||
m->len = strlen(postbody);
|
||||
lws_ss_request_tx_len(m->ss, (unsigned long)strlen(postbody));
|
||||
break;
|
||||
|
||||
return lws_ss_request_tx_len(m->ss, (unsigned long)strlen(postbody));
|
||||
|
||||
case LWSSSCS_CONNECTED:
|
||||
lws_ss_request_tx(m->ss);
|
||||
break;
|
||||
return lws_ss_request_tx(m->ss);
|
||||
|
||||
case LWSSSCS_ALL_RETRIES_FAILED:
|
||||
/* if we're out of retries, we want to close the app and FAIL */
|
||||
interrupted = 1;
|
||||
|
|
|
@ -182,8 +182,8 @@ myss_state(void *userobj, void *sh, lws_ss_constate_t state,
|
|||
|
||||
switch (state) {
|
||||
case LWSSSCS_CREATING:
|
||||
lws_ss_request_tx(m->ss);
|
||||
break;
|
||||
return lws_ss_request_tx(m->ss);
|
||||
|
||||
case LWSSSCS_ALL_RETRIES_FAILED:
|
||||
/* if we're out of retries, we want to close the app and FAIL */
|
||||
interrupted = 1;
|
||||
|
@ -266,7 +266,7 @@ min_sec_str_sequencer_cb(struct lws_sequencer *seq, void *user, int event,
|
|||
|
||||
case LWSSEQ_TIMED_OUT: /* current step timed out */
|
||||
if (s->state == SEQ_RECONNECT_WAIT)
|
||||
lws_ss_request_tx(s->ss);
|
||||
return lws_ss_request_tx(s->ss);
|
||||
break;
|
||||
|
||||
/*
|
||||
|
@ -277,8 +277,8 @@ min_sec_str_sequencer_cb(struct lws_sequencer *seq, void *user, int event,
|
|||
|
||||
case LWSSEQ_SS_STATE_BASE + LWSSSCS_CREATING:
|
||||
lwsl_info("%s: seq LWSSSCS_CREATING\n", __func__);
|
||||
lws_ss_request_tx(s->ss);
|
||||
break;
|
||||
return lws_ss_request_tx(s->ss);
|
||||
|
||||
case LWSSEQ_SS_STATE_BASE + LWSSSCS_DISCONNECTED:
|
||||
lwsl_info("%s: seq LWSSSCS_DISCONNECTED\n", __func__);
|
||||
break;
|
||||
|
|
|
@ -54,9 +54,8 @@ spam_sul_cb(struct lws_sorted_usec_list *sul)
|
|||
{
|
||||
myss_srv_t *m = lws_container_of(sul, myss_srv_t, sul);
|
||||
|
||||
lws_ss_request_tx(m->ss);
|
||||
|
||||
lws_sul_schedule(lws_ss_get_context(m->ss), 0, &m->sul, spam_sul_cb,
|
||||
if (!lws_ss_request_tx(m->ss))
|
||||
lws_sul_schedule(lws_ss_get_context(m->ss), 0, &m->sul, spam_sul_cb,
|
||||
100 * LWS_US_PER_MS);
|
||||
}
|
||||
|
||||
|
@ -90,8 +89,7 @@ myss_raw_state(void *userobj, void *sh, lws_ss_constate_t state,
|
|||
lws_sul_cancel(&m->sul);
|
||||
break;
|
||||
case LWSSSCS_CONNECTED:
|
||||
lws_ss_request_tx(m->ss);
|
||||
break;
|
||||
return lws_ss_request_tx(m->ss);
|
||||
|
||||
default:
|
||||
break;
|
||||
|
|
|
@ -62,7 +62,7 @@ myss_state(void *userobj, void *sh, lws_ss_constate_t state,
|
|||
|
||||
switch (state) {
|
||||
case LWSSSCS_CREATING:
|
||||
lws_ss_request_tx(m->ss);
|
||||
return lws_ss_request_tx(m->ss);
|
||||
break;
|
||||
case LWSSSCS_ALL_RETRIES_FAILED:
|
||||
/* if we're out of retries, we want to close the app and FAIL */
|
||||
|
|
|
@ -134,9 +134,8 @@ spam_sul_cb(struct lws_sorted_usec_list *sul)
|
|||
{
|
||||
myss_srv_t *m = lws_container_of(sul, myss_srv_t, sul);
|
||||
|
||||
lws_ss_request_tx(m->ss);
|
||||
|
||||
lws_sul_schedule(lws_ss_get_context(m->ss), 0, &m->sul, spam_sul_cb,
|
||||
if (!lws_ss_request_tx(m->ss))
|
||||
lws_sul_schedule(lws_ss_get_context(m->ss), 0, &m->sul, spam_sul_cb,
|
||||
100 * LWS_US_PER_MS);
|
||||
}
|
||||
|
||||
|
@ -170,8 +169,8 @@ myss_srv_state(void *userobj, void *sh, lws_ss_constate_t state,
|
|||
lws_sul_cancel(&m->sul);
|
||||
break;
|
||||
case LWSSSCS_CREATING:
|
||||
lws_ss_request_tx(m->ss);
|
||||
break;
|
||||
return lws_ss_request_tx(m->ss);
|
||||
|
||||
case LWSSSCS_ALL_RETRIES_FAILED:
|
||||
/* if we're out of retries, we want to close the app and FAIL */
|
||||
interrupted = 1;
|
||||
|
@ -201,10 +200,9 @@ myss_srv_state(void *userobj, void *sh, lws_ss_constate_t state,
|
|||
/*
|
||||
* ...it's going to be whatever size it is (and request tx)
|
||||
*/
|
||||
lws_ss_request_tx_len(m->ss, (unsigned long)
|
||||
return lws_ss_request_tx_len(m->ss, (unsigned long)
|
||||
(multipart ? strlen(multipart_html) :
|
||||
strlen(html)));
|
||||
break;
|
||||
|
||||
case LWSSSCS_SERVER_UPGRADE:
|
||||
|
||||
|
@ -217,8 +215,8 @@ myss_srv_state(void *userobj, void *sh, lws_ss_constate_t state,
|
|||
|
||||
m->upgraded = 1;
|
||||
lws_ss_change_handlers(m->ss, myss_ws_rx, myss_ws_tx, NULL);
|
||||
lws_ss_request_tx(m->ss); /* we want to start sending numbers */
|
||||
break;
|
||||
return lws_ss_request_tx(m->ss); /* we want to start sending numbers */
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
|
|
@ -57,7 +57,7 @@ ss_s3_tx(void *userobj, lws_ss_tx_ordinal_t ord, uint8_t *buf, size_t *len,
|
|||
*flags |= LWSSS_FLAG_EOM;
|
||||
// m->pos = 0; /* we only want to send once */
|
||||
} else
|
||||
lws_ss_request_tx(m->ss);
|
||||
return lws_ss_request_tx(m->ss);
|
||||
|
||||
return LWSSSSRET_OK;
|
||||
}
|
||||
|
@ -173,12 +173,10 @@ ss_s3_state(void *userobj, void *sh, lws_ss_constate_t state,
|
|||
timestamp, strlen(timestamp)))
|
||||
return LWSSSSRET_DESTROY_ME;
|
||||
|
||||
lws_ss_request_tx_len(m->ss, m->total);
|
||||
break;
|
||||
return lws_ss_request_tx_len(m->ss, m->total);
|
||||
|
||||
case LWSSSCS_CONNECTED:
|
||||
lws_ss_request_tx(m->ss);
|
||||
break;
|
||||
return lws_ss_request_tx(m->ss);
|
||||
|
||||
case LWSSSCS_DISCONNECTED:
|
||||
return LWSSSSRET_DESTROY_ME;
|
||||
|
|
|
@ -94,7 +94,8 @@ sul_tx_periodic_cb(lws_sorted_usec_list_t *sul)
|
|||
myss_t *m = lws_container_of(sul, myss_t, sul);
|
||||
|
||||
lwsl_info("%s: requesting TX\n", __func__);
|
||||
lws_ss_request_tx(m->ss);
|
||||
if (lws_ss_request_tx(m->ss))
|
||||
lwsl_info("%s: req failed\n", __func__);
|
||||
}
|
||||
|
||||
static lws_ss_state_return_t
|
||||
|
|
Loading…
Add table
Reference in a new issue