Lines Matching full:ssh

343 	struct nfnl_subsys_handle *ssh;  in nfnl_subsys_open2()  local
353 ssh = &nfnlh->subsys[subsys_id]; in nfnl_subsys_open2()
354 if (ssh->cb) { in nfnl_subsys_open2()
359 ssh->cb = calloc(cb_count, sizeof(*(ssh->cb))); in nfnl_subsys_open2()
360 if (!ssh->cb) in nfnl_subsys_open2()
363 ssh->nfnlh = nfnlh; in nfnl_subsys_open2()
364 ssh->cb_count = cb_count; in nfnl_subsys_open2()
365 ssh->subscriptions = subscriptions; in nfnl_subsys_open2()
366 ssh->subsys_id = subsys_id; in nfnl_subsys_open2()
375 free(ssh->cb); in nfnl_subsys_open2()
376 ssh->cb = NULL; in nfnl_subsys_open2()
379 return ssh; in nfnl_subsys_open2()
384 * @ssh: nfnetlink subsystem handler
388 void nfnl_subsys_close(struct nfnl_subsys_handle *ssh) in nfnl_subsys_close() argument
390 assert(ssh); in nfnl_subsys_close()
392 ssh->subscriptions = 0; in nfnl_subsys_close()
393 ssh->cb_count = 0; in nfnl_subsys_close()
394 if (ssh->cb) { in nfnl_subsys_close()
395 free(ssh->cb); in nfnl_subsys_close()
396 ssh->cb = NULL; in nfnl_subsys_close()
518 void nfnl_fill_hdr(struct nfnl_subsys_handle *ssh, in nfnl_fill_hdr() argument
525 assert(ssh); in nfnl_fill_hdr()
531 nlh->nlmsg_type = (ssh->subsys_id<<8)|msg_type; in nfnl_fill_hdr()
535 if (ssh->nfnlh->flags & NFNL_F_SEQTRACK_ENABLED) { in nfnl_fill_hdr()
536 nlh->nlmsg_seq = ++ssh->nfnlh->seq; in nfnl_fill_hdr()
538 if (!ssh->nfnlh->seq) in nfnl_fill_hdr()
539 nlh->nlmsg_seq = ssh->nfnlh->seq = time(NULL); in nfnl_fill_hdr()
1191 * @ssh: nfnetlink subsys handler
1198 int nfnl_callback_register(struct nfnl_subsys_handle *ssh, in nfnl_callback_register() argument
1201 assert(ssh); in nfnl_callback_register()
1204 if (type >= ssh->cb_count) { in nfnl_callback_register()
1209 memcpy(&ssh->cb[type], cb, sizeof(*cb)); in nfnl_callback_register()
1216 * @ssh: nfnetlink subsys handler
1222 int nfnl_callback_unregister(struct nfnl_subsys_handle *ssh, u_int8_t type) in nfnl_callback_unregister() argument
1224 assert(ssh); in nfnl_callback_unregister()
1226 if (type >= ssh->cb_count) { in nfnl_callback_unregister()
1231 ssh->cb[type].call = NULL; in nfnl_callback_unregister()
1247 const struct nfnl_subsys_handle *ssh; in nfnl_check_attributes() local
1253 ssh = &h->subsys[subsys_id]; in nfnl_check_attributes()
1254 cb = &ssh->cb[type]; in nfnl_check_attributes()
1259 if (type >= ssh->cb_count) in nfnl_check_attributes()
1295 struct nfnl_subsys_handle *ssh; in __nfnl_handle_msg() local
1303 ssh = &h->subsys[subsys_id]; in __nfnl_handle_msg()
1308 if (type >= ssh->cb_count) in __nfnl_handle_msg()
1311 if (ssh->cb[type].attr_count) { in __nfnl_handle_msg()
1312 struct nfattr *nfa[ssh->cb[type].attr_count]; in __nfnl_handle_msg()
1317 if (ssh->cb[type].call) in __nfnl_handle_msg()
1318 return ssh->cb[type].call(nlh, nfa, ssh->cb[type].data); in __nfnl_handle_msg()
1368 struct nfnl_subsys_handle *ssh; in nfnl_step() local
1392 ssh = &h->subsys[subsys_id]; in nfnl_step()
1393 if (!ssh) { in nfnl_step()
1398 if (type >= ssh->cb_count) { in nfnl_step()
1403 if (ssh->cb[type].attr_count) { in nfnl_step()
1405 struct nfattr *tb[ssh->cb[type].attr_count]; in nfnl_step()
1410 err = nfnl_parse_attr(tb, ssh->cb[type].attr_count, attr, len); in nfnl_step()
1414 if (ssh->cb[type].call) { in nfnl_step()
1422 return ssh->cb[type].call(nlh, in nfnl_step()
1424 ssh->cb[type].data); in nfnl_step()