summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryangwei <[email protected]>2024-04-27 00:56:53 +0800
committeryangwei <[email protected]>2024-04-27 00:56:53 +0800
commit513d4f178ff3aeb28684a4c2d584e34145e8ab7a (patch)
tree2ccb0b43e00aa411f4c86cecba6a6595b7e3c84c
parent7606823e8b08491627a76c62a08f62da0b11d989 (diff)
✨ feat(session ISN get): support tcp ISNv1.0.20dev-1.0-yangwei
-rw-r--r--include/stellar/session.h2
-rw-r--r--src/adapter/adapter.c20
2 files changed, 22 insertions, 0 deletions
diff --git a/include/stellar/session.h b/include/stellar/session.h
index 0d62a02..9726bdc 100644
--- a/include/stellar/session.h
+++ b/include/stellar/session.h
@@ -33,6 +33,8 @@ enum session_type session_get_type(struct session *sess);
int session_is_symmetric(struct session *sess, unsigned char *flag);
+long long session_get_client_isn(struct session *sess);
+long long session_get_server_isn(struct session *sess);
#define SESSION_IS_TUNNLE_NON (0) /* default is 0, not tunnel; */
#define SESSION_IS_TUNNLE_6OVER4 (1 << 0)
diff --git a/src/adapter/adapter.c b/src/adapter/adapter.c
index 5b2ad5b..86eb4f8 100644
--- a/src/adapter/adapter.c
+++ b/src/adapter/adapter.c
@@ -665,4 +665,24 @@ int session_get_current_thread_id(struct session *sess)
assert(pstream);
thread_id = pstream->threadnum;
return thread_id;
+}
+
+long long session_get_client_isn(struct session *sess)
+{
+ struct streaminfo *pstream=session_get_streaminfo(sess);
+ assert(pstream);
+ uint32_t client_isn=0;
+ int client_isn_sz=sizeof(client_isn);
+ if(MESA_get_stream_opt(pstream, MSO_TCP_ISN_C2S, &(client_isn), &client_isn_sz)!=0)return -1;
+ return client_isn;
+}
+
+long long session_get_server_isn(struct session *sess)
+{
+ struct streaminfo *pstream=session_get_streaminfo(sess);
+ assert(pstream);
+ uint32_t server_isn=0;
+ int server_isn_sz=sizeof(server_isn);
+ if(MESA_get_stream_opt(pstream, MSO_TCP_ISN_S2C, &(server_isn), &server_isn_sz)!=0)return -1;
+ return server_isn;
} \ No newline at end of file