diff options
Diffstat (limited to 'openbsc/src/libmsc/smpp_smsc.h')
-rw-r--r-- | openbsc/src/libmsc/smpp_smsc.h | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/openbsc/src/libmsc/smpp_smsc.h b/openbsc/src/libmsc/smpp_smsc.h index bd20137ef..b95a1f509 100644 --- a/openbsc/src/libmsc/smpp_smsc.h +++ b/openbsc/src/libmsc/smpp_smsc.h @@ -7,6 +7,7 @@ #include <osmocom/core/utils.h> #include <osmocom/core/msgb.h> #include <osmocom/core/write_queue.h> +#include <osmocom/core/timer.h> #include <smpp34.h> #include <smpp34_structs.h> @@ -37,6 +38,8 @@ struct osmo_esme { struct osmo_smpp_acl *acl; int use; + struct llist_head smpp_cmd_list; + uint32_t own_seq_nr; struct osmo_wqueue wqueue; @@ -83,6 +86,19 @@ struct osmo_smpp_route { } u; }; +struct osmo_smpp_cmd { + struct llist_head list; + struct gsm_subscriber *subscr; + struct gsm_sms *sms; + uint32_t sequence_nr; + struct osmo_timer_list response_timer; +}; + +struct osmo_smpp_cmd *smpp_cmd_find_by_seqnum(struct osmo_esme *esme, + uint32_t sequence_number); +void smpp_cmd_ack(struct osmo_smpp_cmd *cmd); +void smpp_cmd_err(struct osmo_smpp_cmd *cmd); +void smpp_cmd_flush_pending(struct osmo_esme *esme); struct smsc { struct osmo_fd listen_ofd; @@ -146,5 +162,5 @@ struct gsm_subscriber_connection; int smpp_route_smpp_first(struct gsm_sms *sms, struct gsm_subscriber_connection *conn); int smpp_try_deliver(struct gsm_sms *sms, - struct gsm_subscriber_connection *conn); + struct gsm_subscriber_connection *conn, bool *deferred); #endif |