ustream_init_defaults(s);
}
-void *ustream_ssl_context_new(bool server)
+static void *_ustream_ssl_context_new(bool server)
{
#ifdef CYASSL_OPENSSL_H_
SSL_METHOD *m;
return c;
}
-int ustream_ssl_context_set_crt_file(void *ctx, const char *file)
+static int _ustream_ssl_context_set_crt_file(void *ctx, const char *file)
{
int ret;
return ret;
}
-int ustream_ssl_context_set_key_file(void *ctx, const char *file)
+static int _ustream_ssl_context_set_key_file(void *ctx, const char *file)
{
int ret;
return ret;
}
-void ustream_ssl_context_free(void *ctx)
+static void _ustream_ssl_context_free(void *ctx)
{
SSL_CTX_free(ctx);
}
-int ustream_ssl_init(struct ustream_ssl *us, struct ustream *conn, void *ctx, bool server)
+static int _ustream_ssl_init(struct ustream_ssl *us, struct ustream *conn, void *ctx, bool server)
{
us->error_timer.cb = ustream_ssl_error_cb;
us->server = server;
return 0;
}
+
+const struct ustream_ssl_ops ustream_ssl_ops = {
+ .context_new = _ustream_ssl_context_new,
+ .context_set_crt_file = _ustream_ssl_context_set_crt_file,
+ .context_set_key_file = _ustream_ssl_context_set_key_file,
+ .context_free = _ustream_ssl_context_free,
+ .init = _ustream_ssl_init,
+};
bool server;
};
-void *ustream_ssl_context_new(bool server);
-int ustream_ssl_context_set_crt_file(void *ctx, const char *file);
-int ustream_ssl_context_set_key_file(void *ctx, const char *file);
-void ustream_ssl_context_free(void *ctx);
+struct ustream_ssl_ops {
+ void *(*context_new)(bool server);
+ int (*context_set_crt_file)(void *ctx, const char *file);
+ int (*context_set_key_file)(void *ctx, const char *file);
+ void (*context_free)(void *ctx);
-int ustream_ssl_init(struct ustream_ssl *us, struct ustream *conn, void *ctx, bool server);
+ int (*init)(struct ustream_ssl *us, struct ustream *conn, void *ctx, bool server);
+};
+
+extern const struct ustream_ssl_ops ustream_ssl_ops;
+
+#define ustream_ssl_context_new ustream_ssl_ops.context_new
+#define ustream_ssl_context_set_crt_file ustream_ssl_ops.context_set_crt_file
+#define ustream_ssl_context_set_key_file ustream_ssl_ops.context_set_key_file
+#define ustream_ssl_context_free ustream_ssl_ops.context_free
+#define ustream_ssl_init ustream_ssl_ops.init
#endif