update it

This commit is contained in:
Sukchan Lee 2017-04-03 13:06:56 +09:00
parent b0611e9bef
commit a3df11fca2
2 changed files with 9 additions and 10 deletions

View File

@ -157,10 +157,10 @@ gtp_xact_t *gtp_xact_local_create(gtp_xact_ctx_t *context,
} }
gtp_xact_t *gtp_xact_remote_create(gtp_xact_ctx_t *context, gtp_xact_t *gtp_xact_remote_create(gtp_xact_ctx_t *context,
net_sock_t *sock, gtp_node_t *gnode, c_uint32_t xid) net_sock_t *sock, gtp_node_t *gnode, c_uint32_t sqn)
{ {
return gtp_xact_create(context, sock, gnode, return gtp_xact_create(context, sock, gnode,
GTP_REMOTE_ORIGINATOR, xid, GTP_REMOTE_ORIGINATOR, GTP_SQN_TO_XID(sqn),
GTP_XACT_REMOTE_DURATION, GTP_XACT_REMOTE_RETRY_COUNT); GTP_XACT_REMOTE_DURATION, GTP_XACT_REMOTE_RETRY_COUNT);
} }
@ -250,11 +250,7 @@ status_t gtp_xact_timeout(gtp_xact_t *xact)
xact->org == GTP_LOCAL_ORIGINATOR ? "LOCAL " : "REMOTE", xact->org == GTP_LOCAL_ORIGINATOR ? "LOCAL " : "REMOTE",
xact->xid); xact->xid);
if (xact->org == GTP_REMOTE_ORIGINATOR) if (xact->org == GTP_LOCAL_ORIGINATOR)
{
gtp_xact_delete(xact);
}
else
{ {
if (--xact->retry_count > 0) if (--xact->retry_count > 0)
{ {
@ -272,6 +268,10 @@ status_t gtp_xact_timeout(gtp_xact_t *xact)
gtp_xact_delete(xact); gtp_xact_delete(xact);
} }
} }
else
{
gtp_xact_delete(xact);
}
return CORE_OK; return CORE_OK;
@ -359,8 +359,7 @@ gtp_xact_t *gtp_xact_recv(
xact = gtp_xact_find(gnode, pkbuf); xact = gtp_xact_find(gnode, pkbuf);
if (!xact) if (!xact)
{ {
xact = gtp_xact_remote_create(context, sock, gnode, xact = gtp_xact_remote_create(context, sock, gnode, h->sqn);
GTP_SQN_TO_XID(h->sqn));
} }
if (h->teid_presence) if (h->teid_presence)

View File

@ -57,7 +57,7 @@ CORE_DECLARE(gtp_xact_t *) gtp_xact_create(gtp_xact_ctx_t *context,
CORE_DECLARE(gtp_xact_t *)gtp_xact_local_create(gtp_xact_ctx_t *context, CORE_DECLARE(gtp_xact_t *)gtp_xact_local_create(gtp_xact_ctx_t *context,
net_sock_t *sock, gtp_node_t *gnode, gtp_message_t *gtp_message); net_sock_t *sock, gtp_node_t *gnode, gtp_message_t *gtp_message);
CORE_DECLARE(gtp_xact_t *) gtp_xact_remote_create(gtp_xact_ctx_t *context, CORE_DECLARE(gtp_xact_t *) gtp_xact_remote_create(gtp_xact_ctx_t *context,
net_sock_t *sock, gtp_node_t *gnode, c_uint32_t xid); net_sock_t *sock, gtp_node_t *gnode, c_uint32_t sqn);
CORE_DECLARE(status_t) gtp_xact_delete(gtp_xact_t *xact); CORE_DECLARE(status_t) gtp_xact_delete(gtp_xact_t *xact);
CORE_DECLARE(status_t) gtp_xact_associate( CORE_DECLARE(status_t) gtp_xact_associate(