Skip to content
Snippets Groups Projects
Commit 39087f0c authored by hoelscher's avatar hoelscher
Browse files

Add for sctp_status symbolic names for sstat_state

parent 31a2685f
No related branches found
No related tags found
No related merge requests found
...@@ -514,7 +514,20 @@ static int evaluate_sctp_status_expression(struct expression *in, ...@@ -514,7 +514,20 @@ static int evaluate_sctp_status_expression(struct expression *in,
in_status = in->value.sctp_status; in_status = in->value.sctp_status;
out_status = out->value.sctp_status; out_status = out->value.sctp_status;
if (evaluate(in_status->sstat_state, if (in_status->sstat_state->type == EXPR_WORD) {
s64 val_state = 0;
if (symbol_to_int(in_status->sstat_state->value.string,
&val_state, error) == STATUS_OK) {
out_status->sstat_state = (struct expression*)
calloc(1, sizeof(struct expression));
out_status->sstat_state->type = EXPR_INTEGER;
out_status->sstat_state->value.num = val_state;
} else {
asprintf(error, "bad expression unknown symbol for sstat_state %s",
in_status->sstat_state->value.string);
return STATUS_ERR;
}
} else if (evaluate(in_status->sstat_state,
&out_status->sstat_state, &out_status->sstat_state,
error)) error))
return STATUS_ERR; return STATUS_ERR;
...@@ -624,11 +637,11 @@ static int evaluate(struct expression *in, ...@@ -624,11 +637,11 @@ static int evaluate(struct expression *in,
#endif #endif
#ifdef SCTP_STATUS #ifdef SCTP_STATUS
case EXPR_SCTP_PADDRINFO: case EXPR_SCTP_PADDRINFO:
result = evaluate_sctp_status_expression(in, out, error); memcpy(&out->value.sctp_paddrinfo, &in->value.sctp_paddrinfo,
sizeof(in->value.sctp_paddrinfo));
break; break;
case EXPR_SCTP_STATUS: /* copy as-is */ case EXPR_SCTP_STATUS: /* copy as-is */
memcpy(&out->value.sctp_status, &in->value.sctp_status, result = evaluate_sctp_status_expression(in, out, error);
sizeof(in->value.sctp_status));
break; break;
#endif #endif
#ifdef SCTP_PEER_ADDR_PARAMS #ifdef SCTP_PEER_ADDR_PARAMS
......
...@@ -11,7 +11,7 @@ ...@@ -11,7 +11,7 @@
//+0.0 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0 //+0.0 getsockopt(3, SOL_SOCKET, SO_ERROR, [0], [4]) = 0
+0 getsockopt(3, IPPROTO_SCTP, SCTP_STATUS, {sstat_state=..., sstat_rwnd=1500, +0 getsockopt(3, IPPROTO_SCTP, SCTP_STATUS, {sstat_state=SCTP_ESTABLISHED, sstat_rwnd=1500,
sstat_unackdata=0, sstat_penddata=0, sstat_instrms=1, sstat_outstrms=1, sstat_fragmentation_point=1452, sstat_primary=...}, [176])= 0 sstat_unackdata=0, sstat_penddata=0, sstat_instrms=1, sstat_outstrms=1, sstat_fragmentation_point=1452, sstat_primary=...}, [176])= 0
+0 getsockopt(3, IPPROTO_SCTP, SCTP_STATUS, {sstat_state=..., sstat_rwnd=1500, sstat_unackdata=0, +0 getsockopt(3, IPPROTO_SCTP, SCTP_STATUS, {sstat_state=..., sstat_rwnd=1500, sstat_unackdata=0,
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment