#ifndef _SMPP_SMSC_H #define _SMPP_SMSC_H #include #include #include #include #include #include #include #include enum esme_read_state { READ_ST_IN_LEN = 0, READ_ST_IN_MSG = 1, }; struct osmo_esme { struct llist_head list; struct smsc *smsc; struct osmo_wqueue wqueue; struct sockaddr_storage sa; socklen_t sa_len; enum esme_read_state read_state; uint32_t read_len; uint32_t read_idx; struct msgb *read_msg; uint8_t smpp_version; char system_id[16+1]; uint8_t bind_flags; }; struct smsc { struct osmo_fd listen_ofd; struct llist_head esme_list; char system_id[16+1]; void *priv; }; int smpp_smsc_init(struct smsc *smsc, uint16_t port); int handle_smpp_submit(struct osmo_esme *esme, struct submit_sm_t *submit, struct submit_sm_resp_t *submit_r); #endif