| #include <string.h> |
| #include <osmocom/core/utils.h> |
| |
| #include "sccp_sap.h" |
| |
| const struct value_string osmo_scu_prim_names[] = { |
| { OSMO_SCU_PRIM_N_CONNECT, "N-CONNECT" }, |
| { OSMO_SCU_PRIM_N_DATA, "N-DATA" }, |
| { OSMO_SCU_PRIM_N_EXPEDITED_DATA, "N-EXPEDITED-DATA" }, |
| { OSMO_SCU_PRIM_N_DISCONNECT, "N-DISCONNECT" }, |
| { OSMO_SCU_PRIM_N_RESET, "N-RESET" }, |
| { OSMO_SCU_PRIM_N_INFORM, "N-INFORM" }, |
| { OSMO_SCU_PRIM_N_UNITDATA, "N-UNITDATA" }, |
| { OSMO_SCU_PRIM_N_NOTICE, "N-NOTICE" }, |
| /* management */ |
| { OSMO_SCU_PRIM_N_COORD, "N-COORD" }, |
| { OSMO_SCU_PRIM_N_STATE, "N-STATE" }, |
| { OSMO_SCU_PRIM_N_PCSTATE, "N-PCSATE" }, |
| { 0, NULL } |
| }; |
| |
| const struct value_string osmo_prim_op_names[] = { |
| { PRIM_OP_REQUEST, "request" }, |
| { PRIM_OP_RESPONSE, "response" }, |
| { PRIM_OP_INDICATION, "indication" }, |
| { PRIM_OP_CONFIRM, "confirm" }, |
| { 0, NULL } |
| }; |
| |
| static char prim_name_buf[128]; |
| |
| char *osmo_sccp_prim_name(struct osmo_prim_hdr *oph) |
| { |
| const char *name = get_value_string(osmo_scu_prim_names, oph->primitive); |
| |
| prim_name_buf[0] = '\0'; |
| strncpy(prim_name_buf, name, sizeof(prim_name_buf)-1); |
| prim_name_buf[sizeof(prim_name_buf)-1] = '\0'; |
| name = get_value_string(osmo_prim_op_names, oph->operation); |
| strncat(prim_name_buf, name, sizeof(prim_name_buf)-strlen(prim_name_buf)-2); |
| |
| return prim_name_buf; |
| } |