summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/lce.h4
-rw-r--r--src/lce.c27
2 files changed, 21 insertions, 10 deletions
diff --git a/include/lce.h b/include/lce.h
index 047646c..56e4b16 100644
--- a/include/lce.h
+++ b/include/lce.h
@@ -56,6 +56,10 @@ struct dect_transaction {
uint16_t tv;
};
+extern int dect_ddl_open_transaction(struct dect_handle *dh,
+ struct dect_transaction *ta,
+ struct dect_data_link *ddl,
+ enum dect_pds pd);
extern int dect_open_transaction(struct dect_handle *dh,
struct dect_transaction *ta,
const struct dect_ipui *ipui,
diff --git a/src/lce.c b/src/lce.c
index fc460f6..728cfa6 100644
--- a/src/lce.c
+++ b/src/lce.c
@@ -733,19 +733,11 @@ static int dect_transaction_alloc_tv(const struct dect_data_link *ddl,
return -1;
}
-int dect_open_transaction(struct dect_handle *dh, struct dect_transaction *ta,
- const struct dect_ipui *ipui, enum dect_pds pd)
+int dect_ddl_open_transaction(struct dect_handle *dh, struct dect_transaction *ta,
+ struct dect_data_link *ddl, enum dect_pds pd)
{
- struct dect_data_link *ddl;
int tv;
- ddl = dect_ddl_get_by_ipui(dh, ipui);
- if (ddl == NULL) {
- ddl = dect_ddl_establish(dh, ipui);
- if (ddl == NULL)
- return -1;
- }
-
ddl_debug(ddl, "open transaction");
tv = dect_transaction_alloc_tv(ddl, protocols[pd]);
if (tv < 0)
@@ -760,6 +752,21 @@ int dect_open_transaction(struct dect_handle *dh, struct dect_transaction *ta,
return 0;
}
+int dect_open_transaction(struct dect_handle *dh, struct dect_transaction *ta,
+ const struct dect_ipui *ipui, enum dect_pds pd)
+{
+ struct dect_data_link *ddl;
+
+ ddl = dect_ddl_get_by_ipui(dh, ipui);
+ if (ddl == NULL) {
+ ddl = dect_ddl_establish(dh, ipui);
+ if (ddl == NULL)
+ return -1;
+ }
+
+ return dect_ddl_open_transaction(dh, ta, ddl, pd);
+}
+
void dect_confirm_transaction(struct dect_handle *dh, struct dect_transaction *ta,
const struct dect_transaction *req)
{