[IPSEC]: Add xfrm_init_state
[safe/jmp/linux-2.6] / net / xfrm / xfrm_state.c
index 2537f26..1845b73 100644 (file)
@@ -1055,6 +1055,27 @@ int xfrm_state_mtu(struct xfrm_state *x, int mtu)
 }
 
 EXPORT_SYMBOL(xfrm_state_mtu);
+
+int xfrm_init_state(struct xfrm_state *x)
+{
+       int err;
+
+       err = -ENOENT;
+       x->type = xfrm_get_type(x->id.proto, x->props.family);
+       if (x->type == NULL)
+               goto error;
+
+       err = x->type->init_state(x);
+       if (err)
+               goto error;
+
+       x->km.state = XFRM_STATE_VALID;
+
+error:
+       return err;
+}
+
+EXPORT_SYMBOL(xfrm_init_state);
  
 void __init xfrm_state_init(void)
 {