renaming;

v0.5.xx
Alexander Vdolainen 9 years ago
parent e749301178
commit a61f1bbd83

@ -42,13 +42,13 @@
#include <sexpr/sexp.h> #include <sexpr/sexp.h>
#include <sxmp/limits.h> #include <sxmp/limits.h>
#include <sxmp/sxmplv2.h> #include <sxmp/sxmp.h>
#include "internal.h" #include "internal.h"
typedef struct __sxmpl_bundle_type { typedef struct __sxmpl_bundle_type {
void *buf; void *buf;
conn_t *conn; sxlink_t *conn;
} sxmplv2_bundle_t; } sxmplv2_bundle_t;
/* networking helpers */ /* networking helpers */
@ -73,7 +73,7 @@ int __resolvehost(const char *hostname, char *buf, int buf_len,
} }
#endif #endif
static int __conn_read(conn_t *co, void *buf, size_t buf_len) static int __conn_read(sxlink_t *co, void *buf, size_t buf_len)
{ {
int rfd = SSL_get_fd(co->ssl), r; int rfd = SSL_get_fd(co->ssl), r;
fd_set readset, writeset; fd_set readset, writeset;
@ -169,7 +169,7 @@ static int __conn_read(conn_t *co, void *buf, size_t buf_len)
return r; return r;
} }
static int __conn_write(conn_t *co, void *buf, size_t buf_len) static int __conn_write(sxlink_t *co, void *buf, size_t buf_len)
{ {
int r, rfd = SSL_get_fd(co->ssl); int r, rfd = SSL_get_fd(co->ssl);
fd_set writeset; fd_set writeset;
@ -207,7 +207,7 @@ static int __conn_write(conn_t *co, void *buf, size_t buf_len)
return r; return r;
} }
int _sxmpl_writemsg(conn_t *co, sxmsg_t *msg) int _sxmpl_writemsg(sxlink_t *co, sxmsg_t *msg)
{ {
sxmplv2_head_t *head; sxmplv2_head_t *head;
size_t rd; size_t rd;
@ -242,7 +242,7 @@ int _sxmpl_writemsg(conn_t *co, sxmsg_t *msg)
return r; return r;
} }
static sxmplv2_bundle_t *__sxmpl_bundle_create(conn_t *co) static sxmplv2_bundle_t *__sxmpl_bundle_create(sxlink_t *co)
{ {
sxmplv2_bundle_t *n = malloc(sizeof(sxmplv2_bundle_t)); sxmplv2_bundle_t *n = malloc(sizeof(sxmplv2_bundle_t));
@ -294,7 +294,7 @@ static int __verify_certcall(int preverify_ok, X509_STORE_CTX *ctx)
// X509 *cert = X509_STORE_CTX_get_current_cert(ctx); // X509 *cert = X509_STORE_CTX_get_current_cert(ctx);
int err = X509_STORE_CTX_get_error(ctx), depth = X509_STORE_CTX_get_error_depth(ctx); int err = X509_STORE_CTX_get_error(ctx), depth = X509_STORE_CTX_get_error_depth(ctx);
SSL *ssl = X509_STORE_CTX_get_ex_data(ctx, SSL_get_ex_data_X509_STORE_CTX_idx()); SSL *ssl = X509_STORE_CTX_get_ex_data(ctx, SSL_get_ex_data_X509_STORE_CTX_idx());
conn_t *co = SSL_get_ex_data(ssl, ex_ssldata_index); /* this is a custom data we're set before */ sxlink_t *co = SSL_get_ex_data(ssl, ex_ssldata_index); /* this is a custom data we're set before */
conn_sys_t *ssys = co->ssys; conn_sys_t *ssys = co->ssys;
/* now we need to check for certificates with a long chain, /* now we need to check for certificates with a long chain,
@ -398,13 +398,13 @@ void sxmp_finalize(void)
return; return;
} }
conn_t *__connection_minimal_alloc(struct in_addr *addr) sxlink_t *__link_minimal_alloc(struct in_addr *addr)
{ {
conn_t *co = malloc(sizeof(conn_t)); sxlink_t *co = malloc(sizeof(sxlink_t));
int r; int r;
if(!co) { r = ENOMEM; goto __fail; } if(!co) { r = ENOMEM; goto __fail; }
else memset(co, 0, sizeof(conn_t)); else memset(co, 0, sizeof(sxlink_t));
if(!(co->messages = malloc(sizeof(uintptr_t)*1024))) { r = ENOMEM; goto __fail; } if(!(co->messages = malloc(sizeof(uintptr_t)*1024))) { r = ENOMEM; goto __fail; }
else memset(co->messages, 0, sizeof(uintptr_t)*1024); else memset(co->messages, 0, sizeof(uintptr_t)*1024);
@ -434,7 +434,7 @@ conn_t *__connection_minimal_alloc(struct in_addr *addr)
return NULL; return NULL;
} }
static int __connection_second_alloc(conn_t *co) static int __link_second_alloc(sxlink_t *co)
{ {
usrtc_node_init(&co->csnode, co); usrtc_node_init(&co->csnode, co);
@ -464,7 +464,7 @@ static int __connection_second_alloc(conn_t *co)
return SNE_ENOMEM; return SNE_ENOMEM;
} }
static void __connection_second_free(conn_t *co) static void __link_second_free(sxlink_t *co)
{ {
if(co->channels) free(co->channels); if(co->channels) free(co->channels);
idx_allocator_destroy(&co->idx_msg); idx_allocator_destroy(&co->idx_msg);
@ -479,7 +479,7 @@ static void __connection_second_free(conn_t *co)
return; return;
} }
static void __connection_minimal_free(conn_t *co) static void __link_minimal_free(sxlink_t *co)
{ {
if(co) { if(co) {
if(co->pctx) { if(co->pctx) {
@ -494,7 +494,7 @@ static void __connection_minimal_free(conn_t *co)
return; return;
} }
static int __eval_syssexp(conn_t *co, sexp_t *sx) static int __eval_syssexp(sxlink_t *co, sexp_t *sx)
{ {
cx_rpc_list_t *rpc_list = co->ssys->system_rpc; cx_rpc_list_t *rpc_list = co->ssys->system_rpc;
usrtc_node_t *node; usrtc_node_t *node;
@ -520,19 +520,19 @@ static int __eval_syssexp(conn_t *co, sexp_t *sx)
#define _CONN_NOTINUSE(co) (co)->usecount--; #define _CONN_NOTINUSE(co) (co)->usecount--;
#define _CONN_UCOUNT(co) (co)->usecount #define _CONN_UCOUNT(co) (co)->usecount
#else #else
static inline void _CONN_INUSE(conn_t *co) { static inline void _CONN_INUSE(sxlink_t *co) {
pthread_rwlock_wrlock(&co->ssys->rwlock); pthread_rwlock_wrlock(&co->ssys->rwlock);
co->usecount++; co->usecount++;
pthread_rwlock_unlock(&co->ssys->rwlock); pthread_rwlock_unlock(&co->ssys->rwlock);
} }
static inline void _CONN_NOTINUSE(conn_t *co) { static inline void _CONN_NOTINUSE(sxlink_t *co) {
pthread_rwlock_wrlock(&co->ssys->rwlock); pthread_rwlock_wrlock(&co->ssys->rwlock);
co->usecount--; co->usecount--;
pthread_rwlock_unlock(&co->ssys->rwlock); pthread_rwlock_unlock(&co->ssys->rwlock);
} }
static inline int _CONN_UCOUNT(conn_t *co) { static inline int _CONN_UCOUNT(sxlink_t *co) {
int r; int r;
pthread_rwlock_rdlock(&co->ssys->rwlock); pthread_rwlock_rdlock(&co->ssys->rwlock);
r = co->usecount; r = co->usecount;
@ -541,7 +541,7 @@ static inline int _CONN_UCOUNT(conn_t *co) {
} }
#endif #endif
static void __connection_destroy(conn_t *co) static void __link_destroy(sxlink_t *co)
{ {
int i = 0, fd; int i = 0, fd;
sxmsg_t *msg, *omsg; sxmsg_t *msg, *omsg;
@ -627,8 +627,8 @@ static void __connection_destroy(conn_t *co)
ERR_free_strings(); ERR_free_strings();
close(fd); close(fd);
__connection_second_free(co); __link_second_free(co);
__connection_minimal_free(co); __link_minimal_free(co);
} }
return; return;
@ -637,7 +637,7 @@ static void __connection_destroy(conn_t *co)
static void *__sxmpl_thread(void *b) static void *__sxmpl_thread(void *b)
{ {
sxmplv2_bundle_t *bun = (sxmplv2_bundle_t *)b; sxmplv2_bundle_t *bun = (sxmplv2_bundle_t *)b;
conn_t *co = bun->conn; sxlink_t *co = bun->conn;
void *buf = bun->buf; void *buf = bun->buf;
char *bbuf = (char*)buf; char *bbuf = (char*)buf;
sxmplv2_head_t *mhead = (sxmplv2_head_t *)buf; sxmplv2_head_t *mhead = (sxmplv2_head_t *)buf;
@ -951,21 +951,22 @@ static void *__sxmpl_thread(void *b)
__finish: __finish:
co->flags |= SNSX_CLOSED; co->flags |= SNSX_CLOSED;
__connection_destroy(co); __link_destroy(co);
__sxmpl_bundle_destroy(b); /* destroy bundle */ __sxmpl_bundle_destroy(b); /* destroy bundle */
return NULL; return NULL;
} }
conn_t *connection_master_link(conn_sys_t *ssys, int sck, struct in_addr *addr) sxlink_t *sxlink_master_accept(conn_sys_t *ssys, int sck, struct in_addr *addr)
{ {
void *buf = NULL; void *buf = NULL;
char *bbuf; char *bbuf;
conn_t *co = __connection_minimal_alloc(addr); sxlink_t *co = __link_minimal_alloc(addr);
sxmsg_t *msg = NULL; sxmsg_t *msg = NULL;
sxmplv2_head_t *head; sxmplv2_head_t *head;
sxmplv2_bundle_t *bundle; sxmplv2_bundle_t *bundle;
sexp_t *sx;
size_t rd; size_t rd;
int r = SNE_FAILED; int r = SNE_FAILED, i;
if(!co) { if(!co) {
errno = SNE_ENOMEM; errno = SNE_ENOMEM;
@ -1040,7 +1041,6 @@ conn_t *connection_master_link(conn_sys_t *ssys, int sck, struct in_addr *addr)
bbuf = (char *)buf; bbuf = (char *)buf;
bbuf += sizeof(sxmplv2_head_t); bbuf += sizeof(sxmplv2_head_t);
sexp_t *sx;
while(co->flags & SNSX_BATCHMODE) { while(co->flags & SNSX_BATCHMODE) {
rd = __conn_read(co, buf, sizeof(sxmplv2_head_t)); rd = __conn_read(co, buf, sizeof(sxmplv2_head_t));
if(rd == sizeof(sxmplv2_head_t)) { if(rd == sizeof(sxmplv2_head_t)) {
@ -1090,7 +1090,7 @@ conn_t *connection_master_link(conn_sys_t *ssys, int sck, struct in_addr *addr)
} }
/* if we're there - negotiation is done, going to init messaging mode */ /* if we're there - negotiation is done, going to init messaging mode */
r = __connection_second_alloc(co); r = __link_second_alloc(co);
if(r != SNE_SUCCESS) goto __fail3; if(r != SNE_SUCCESS) goto __fail3;
/* free message */ /* free message */
@ -1103,7 +1103,7 @@ conn_t *connection_master_link(conn_sys_t *ssys, int sck, struct in_addr *addr)
bundle->buf = buf; bundle->buf = buf;
bundle->conn = co; bundle->conn = co;
} }
int i;
for(i = 0; i < MAX_SNTLLTHREADS; i++) { for(i = 0; i < MAX_SNTLLTHREADS; i++) {
if(bundle == (void *)0xdead) bundle = __sxmpl_bundle_create(co); if(bundle == (void *)0xdead) bundle = __sxmpl_bundle_create(co);
if(!bundle) goto __fail5; if(!bundle) goto __fail5;
@ -1130,7 +1130,7 @@ conn_t *connection_master_link(conn_sys_t *ssys, int sck, struct in_addr *addr)
r = SNE_ENOMEM; r = SNE_ENOMEM;
/* bundles will be freed by the threads when SSL_read will fails. */ /* bundles will be freed by the threads when SSL_read will fails. */
__fail4: __fail4:
__connection_second_free(co); __link_second_free(co);
__fail3: __fail3:
if(ssys->on_destroy) ssys->on_destroy(co); if(ssys->on_destroy) ssys->on_destroy(co);
__fail2: __fail2:
@ -1143,10 +1143,10 @@ conn_t *connection_master_link(conn_sys_t *ssys, int sck, struct in_addr *addr)
ERR_remove_thread_state(0); ERR_remove_thread_state(0);
ERR_remove_state(0); ERR_remove_state(0);
ERR_free_strings(); ERR_free_strings();
SSL_free(co->ssl); SSL_free(co->ssl);
} }
__connection_minimal_free(co); __link_minimal_free(co);
} }
close(sck); close(sck);
errno = r; errno = r;
@ -1154,11 +1154,11 @@ conn_t *connection_master_link(conn_sys_t *ssys, int sck, struct in_addr *addr)
return NULL; return NULL;
} }
conn_t *connection_link(conn_sys_t *ssys, const char *host, sxlink_t *sxlink_connect(conn_sys_t *ssys, const char *host,
int port, const char *SSL_cert, const char *login, int port, const char *SSL_cert, const char *login,
const char *passwd) const char *passwd)
{ {
conn_t *co = __connection_minimal_alloc(NULL); sxlink_t *co = __link_minimal_alloc(NULL);
struct hostent *host_; struct hostent *host_;
struct sockaddr_in addr; struct sockaddr_in addr;
int r = SNE_SUCCESS, sck; int r = SNE_SUCCESS, sck;
@ -1344,7 +1344,7 @@ conn_t *connection_link(conn_sys_t *ssys, const char *host,
} }
/* if we're there - negotiation is done, going to init messaging mode */ /* if we're there - negotiation is done, going to init messaging mode */
r = __connection_second_alloc(co); r = __link_second_alloc(co);
if(r != SNE_SUCCESS) goto __fail3; if(r != SNE_SUCCESS) goto __fail3;
/* free message */ /* free message */
@ -1377,7 +1377,7 @@ conn_t *connection_link(conn_sys_t *ssys, const char *host,
r = SNE_ENOMEM; r = SNE_ENOMEM;
/* bundles will be freed by the threads when SSL_read will fails. */ /* bundles will be freed by the threads when SSL_read will fails. */
__fail4: __fail4:
__connection_second_free(co); __link_second_free(co);
__fail3: __fail3:
if(ssys->on_destroy) ssys->on_destroy(co); if(ssys->on_destroy) ssys->on_destroy(co);
__fail2: __fail2:
@ -1390,13 +1390,13 @@ conn_t *connection_link(conn_sys_t *ssys, const char *host,
__fail: __fail:
if(co) { if(co) {
if(co->ssl) SSL_free(co->ssl); if(co->ssl) SSL_free(co->ssl);
__connection_minimal_free(co); __link_minimal_free(co);
} }
errno = r; errno = r;
return NULL; return NULL;
} }
int connection_close(conn_t *co) int sxlink_close(sxlink_t *co)
{ {
sxmplv2_head_t mhead; sxmplv2_head_t mhead;

Loading…
Cancel
Save