Skip to content
Snippets Groups Projects
Commit 21787831 authored by Michael Tüxen's avatar Michael Tüxen
Browse files

Add print support for SUPPORTED_EXTENSIONS parameter.

parent ce2aa210
No related branches found
No related tags found
No related merge requests found
...@@ -219,6 +219,86 @@ static int sctp_ecn_capable_parameter_to_string( ...@@ -219,6 +219,86 @@ static int sctp_ecn_capable_parameter_to_string(
return STATUS_OK; return STATUS_OK;
} }
static int sctp_supported_extensions_parameter_to_string(
FILE *s,
struct sctp_supported_extensions_parameter *parameter,
char **error)
{
u16 length, nr_chunk_types, i;
length = ntohs(parameter->length);
if (length < sizeof(struct sctp_supported_extensions_parameter)) {
asprintf(error,
"SUPPORTED_EXTENSIONS parameter illegal (length=%u)",
length);
return STATUS_ERR;
}
nr_chunk_types = length - sizeof(struct sctp_supported_extensions_parameter);
fputs("SUPPORTED_EXTENSIONS[types=[", s);
for (i = 0; i < nr_chunk_types; i++) {
if (i > 0)
fputs(", ", s);
switch (parameter->chunk_type[i]) {
case SCTP_DATA_CHUNK_TYPE:
fputs("DATA", s);
break;
case SCTP_INIT_CHUNK_TYPE:
fputs("INIT", s);
break;
case SCTP_INIT_ACK_CHUNK_TYPE:
fputs("INIT-ACK", s);
break;
case SCTP_SACK_CHUNK_TYPE:
fputs("SACK", s);
break;
case SCTP_HEARTBEAT_CHUNK_TYPE:
fputs("HEARTBEAT", s);
break;
case SCTP_HEARTBEAT_ACK_CHUNK_TYPE:
fputs("HEARTBEAT-ACK", s);
break;
case SCTP_ABORT_CHUNK_TYPE:
fputs("ABORT", s);
break;
case SCTP_SHUTDOWN_CHUNK_TYPE:
fputs("SHUTDOWN", s);
break;
case SCTP_SHUTDOWN_ACK_CHUNK_TYPE:
fputs("SHUTDOWN-ACK", s);
break;
case SCTP_ERROR_CHUNK_TYPE:
fputs("ERROR", s);
break;
case SCTP_COOKIE_ECHO_CHUNK_TYPE:
fputs("COOKIE-ECHO", s);
break;
case SCTP_COOKIE_ACK_CHUNK_TYPE:
fputs("COOKIE-ACK", s);
break;
case SCTP_ECNE_CHUNK_TYPE:
fputs("ECNE", s);
break;
case SCTP_CWR_CHUNK_TYPE:
fputs("CWR", s);
break;
case SCTP_SHUTDOWN_COMPLETE_CHUNK_TYPE:
fputs("SHUTDOWN-COMPLETE", s);
break;
case SCTP_I_DATA_CHUNK_TYPE:
fputs("I-DATA", s);
break;
case SCTP_PAD_CHUNK_TYPE:
fputs("PAD", s);
break;
default:
fprintf(s, "0x%02x", parameter->chunk_type[i]);
break;
}
}
fputs("]]", s);
return STATUS_OK;
}
static int sctp_pad_parameter_to_string( static int sctp_pad_parameter_to_string(
FILE *s, FILE *s,
struct sctp_pad_parameter *parameter, struct sctp_pad_parameter *parameter,
...@@ -305,6 +385,11 @@ static int sctp_parameter_to_string(FILE *s, ...@@ -305,6 +385,11 @@ static int sctp_parameter_to_string(FILE *s,
result = sctp_ecn_capable_parameter_to_string(s, result = sctp_ecn_capable_parameter_to_string(s,
(struct sctp_ecn_capable_parameter *)parameter, error); (struct sctp_ecn_capable_parameter *)parameter, error);
break; break;
case SCTP_SUPPORTED_EXTENSIONS_PARAMETER_TYPE:
result = sctp_supported_extensions_parameter_to_string(s,
(struct sctp_supported_extensions_parameter *)parameter,
error);
break;
case SCTP_PAD_PARAMETER_TYPE: case SCTP_PAD_PARAMETER_TYPE:
result = sctp_pad_parameter_to_string(s, result = sctp_pad_parameter_to_string(s,
(struct sctp_pad_parameter *)parameter, error); (struct sctp_pad_parameter *)parameter, error);
......
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