diff options
| author | David M. Syzdek <david@syzdek.net> | 2022-05-02 01:12:26 -0800 |
|---|---|---|
| committer | David M. Syzdek <david@syzdek.net> | 2022-05-02 01:12:26 -0800 |
| commit | 3b88e1fe80aac1033d6b8fc5365a771642b17524 (patch) | |
| tree | e406c4bb957d66eaa5e9d96e4d0d0514bf54ea3e | |
| parent | 361c72b47bd3c6ac763bcff06b1570bac7765bf2 (diff) | |
| download | tinytac-3b88e1fe80aac1033d6b8fc5365a771642b17524.tar.gz tinytac-3b88e1fe80aac1033d6b8fc5365a771642b17524.tar.bz2 tinytac-3b88e1fe80aac1033d6b8fc5365a771642b17524.tar.xz tinytac-3b88e1fe80aac1033d6b8fc5365a771642b17524.zip | |
libtinytac: adding tinytac_pckt_alloc()
| -rw-r--r-- | lib/libtinytac/lproto.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/libtinytac/lproto.c b/lib/libtinytac/lproto.c index 1f8049c..55a01fb 100644 --- a/lib/libtinytac/lproto.c +++ b/lib/libtinytac/lproto.c | |||
| @@ -62,6 +62,13 @@ | |||
| 62 | ////////////////// | 62 | ////////////////// |
| 63 | #pragma mark - Prototypes | 63 | #pragma mark - Prototypes |
| 64 | 64 | ||
| 65 | extern tinytac_pckt_t * | ||
| 66 | tinytac_pckt_alloc( | ||
| 67 | uint8_t pckt_type, | ||
| 68 | uint8_t seq_no, | ||
| 69 | uint32_t session_id, | ||
| 70 | size_t nbytes ); | ||
| 71 | |||
| 65 | 72 | ||
| 66 | ///////////////// | 73 | ///////////////// |
| 67 | // // | 74 | // // |
| @@ -75,6 +82,32 @@ | |||
| 75 | //------------------// | 82 | //------------------// |
| 76 | #pragma mark packet functions | 83 | #pragma mark packet functions |
| 77 | 84 | ||
| 85 | tinytac_pckt_t * | ||
| 86 | tinytac_pckt_alloc( | ||
| 87 | uint8_t pckt_type, | ||
| 88 | uint8_t seq_no, | ||
| 89 | uint32_t session_id, | ||
| 90 | size_t nbytes ) | ||
| 91 | { | ||
| 92 | tinytac_pckt_t * pckt; | ||
| 93 | size_t size; | ||
| 94 | |||
| 95 | size = sizeof(tinytac_pckt_t) + nbytes; | ||
| 96 | |||
| 97 | if ((pckt = malloc(size)) == NULL) | ||
| 98 | return(NULL); | ||
| 99 | memset(pckt, 0, size); | ||
| 100 | pckt->pckt_version = TTAC_VERSION(TAC_PLUS_MAJOR_VER, TAC_PLUS_MINOR_VER_DEFAULT); | ||
| 101 | pckt->pckt_type = pckt_type; | ||
| 102 | pckt->pckt_seq_no = seq_no; | ||
| 103 | pckt->pckt_flags = TAC_PLUS_UNENCRYPTED_FLAG | TAC_PLUS_SINGLE_CONNECT_FLAG; | ||
| 104 | pckt->pckt_length = htonl(nbytes); | ||
| 105 | pckt->pckt_session_id = session_id; | ||
| 106 | |||
| 107 | return(pckt); | ||
| 108 | } | ||
| 109 | |||
| 110 | |||
| 78 | void | 111 | void |
| 79 | tinytac_pckt_hexdump( | 112 | tinytac_pckt_hexdump( |
| 80 | FILE * fs, | 113 | FILE * fs, |
