| 1084 | */ |
| 1085 | |
| 1086 | static int |
| 1087 | ng_ppp_comp_xmit(node_p node, item_p item, uint16_t proto) |
| 1088 | { |
| 1089 | const priv_p priv = NG_NODE_PRIVATE(node); |
| 1090 | |
| 1091 | if (priv->conf.enableCompression && |
| 1092 | proto < 0x4000 && |
| 1093 | proto != PROT_COMPD && |
| 1094 | proto != PROT_CRYPTD && |
| 1095 | priv->hooks[HOOK_INDEX_COMPRESS] != NULL) { |
| 1096 | struct mbuf *m; |
| 1097 | int error; |
| 1098 | |
| 1099 | NGI_GET_M(item, m); |
| 1100 | if ((m = ng_ppp_addproto(m, proto, 0)) == NULL) { |
| 1101 | NG_FREE_ITEM(item); |
| 1102 | return (ENOBUFS); |
| 1103 | } |
| 1104 | NGI_M(item) = m; |
| 1105 | |
| 1106 | /* Send packet out hook. */ |
| 1107 | NG_FWD_ITEM_HOOK(error, item, priv->hooks[HOOK_INDEX_COMPRESS]); |
| 1108 | return (error); |
| 1109 | } |
| 1110 | |
| 1111 | return (ng_ppp_crypt_xmit(node, item, proto)); |
| 1112 | } |
| 1113 | |
| 1114 | /* |
| 1115 | * Receive data on a hook compress. |
no test coverage detected