b16600ce749ab06ed2bbce301faddc99049d4d5a
10 default_proto_free(struct interface_proto_state
*proto
)
16 default_proto_handler(struct interface_proto_state
*proto
,
17 enum interface_proto_cmd cmd
, bool force
)
22 struct interface_proto_state
*get_default_proto(void)
24 struct interface_proto_state
*proto
;
26 proto
= calloc(1, sizeof(*proto
));
27 proto
->handler
= default_proto_handler
;
28 proto
->free
= default_proto_free
;
29 proto
->flags
= PROTO_FLAG_IMMEDIATE
;
34 int interface_proto_event(struct interface_proto_state
*proto
,
35 enum interface_proto_cmd cmd
, bool force
)
37 enum interface_event ev
;
40 ret
= proto
->handler(proto
, cmd
, force
);
41 if (ret
|| !(proto
->flags
& PROTO_FLAG_IMMEDIATE
))
48 case PROTO_CMD_TEARDOWN
:
54 proto
->proto_event(proto
, ev
);