diff --git a/sap/server.c b/sap/server.c
index a671235..d50a241 100644
--- a/sap/server.c
+++ b/sap/server.c
switch (disc_type) {
case SAP_DISCONNECTION_TYPE_GRACEFUL:
- if (conn->state == SAP_STATE_DISCONNECTED)
- goto error_req;
-
- if (conn->state == SAP_STATE_CONNECT_IN_PROGRESS)
- goto error_req;
+ if (conn->state == SAP_STATE_DISCONNECTED ||
+ conn->state == SAP_STATE_CONNECT_IN_PROGRESS)
+ return -EPERM;
if (conn->state == SAP_STATE_CONNECTED) {
conn->state = SAP_STATE_GRACEFUL_DISCONNECT;
return 0;
case SAP_DISCONNECTION_TYPE_IMMEDIATE:
- if (conn->state == SAP_STATE_DISCONNECTED)
- goto error_req;
-
- if (conn->state == SAP_STATE_CONNECT_IN_PROGRESS)
- goto error_req;
+ if (conn->state == SAP_STATE_DISCONNECTED ||
+ conn->state == SAP_STATE_CONNECT_IN_PROGRESS)
+ return -EPERM;
if (conn->state == SAP_STATE_CONNECTED ||
conn->state == SAP_STATE_GRACEFUL_DISCONNECT) {
if (conn->state != SAP_STATE_CONNECTED &&
conn->state != SAP_STATE_GRACEFUL_DISCONNECT) {
sap_error_rsp(conn);
- goto error_req;
+ return -EPERM;
}
conn->state = SAP_STATE_CLIENT_DISCONNECT;
error("Unknown disconnection type (0x%02x).", disc_type);
return -EINVAL;
}
-
-error_req:
- return -EPERM;
}
static void transfer_apdu_req(struct sap_connection *conn,