Commit b9d77288 authored by zhenwei pi's avatar zhenwei pi
Browse files

Reorder methods for ConnectionType



Reorder methods for CT_Socket & CT_TLS, also add comments to make the
methods clear.

Also move the CT_TLS to the end of file, other methods can be static
in the next step.
Signed-off-by: default avatarzhenwei pi <pizhenwei@bytedance.com>
parent 8045e26e
...@@ -57,21 +57,30 @@ typedef enum { ...@@ -57,21 +57,30 @@ typedef enum {
typedef void (*ConnectionCallbackFunc)(struct connection *conn); typedef void (*ConnectionCallbackFunc)(struct connection *conn);
typedef struct ConnectionType { typedef struct ConnectionType {
/* connection type */
int (*get_type)(struct connection *conn);
/* ae & accept & listen & error & address handler */
void (*ae_handler)(struct aeEventLoop *el, int fd, void *clientData, int mask); void (*ae_handler)(struct aeEventLoop *el, int fd, void *clientData, int mask);
/* create/close connection */
void (*close)(struct connection *conn);
/* connect & accept */
int (*connect)(struct connection *conn, const char *addr, int port, const char *source_addr, ConnectionCallbackFunc connect_handler); int (*connect)(struct connection *conn, const char *addr, int port, const char *source_addr, ConnectionCallbackFunc connect_handler);
int (*blocking_connect)(struct connection *conn, const char *addr, int port, long long timeout);
int (*accept)(struct connection *conn, ConnectionCallbackFunc accept_handler);
/* IO */
int (*write)(struct connection *conn, const void *data, size_t data_len); int (*write)(struct connection *conn, const void *data, size_t data_len);
int (*writev)(struct connection *conn, const struct iovec *iov, int iovcnt); int (*writev)(struct connection *conn, const struct iovec *iov, int iovcnt);
int (*read)(struct connection *conn, void *buf, size_t buf_len); int (*read)(struct connection *conn, void *buf, size_t buf_len);
void (*close)(struct connection *conn);
int (*accept)(struct connection *conn, ConnectionCallbackFunc accept_handler);
int (*set_write_handler)(struct connection *conn, ConnectionCallbackFunc handler, int barrier); int (*set_write_handler)(struct connection *conn, ConnectionCallbackFunc handler, int barrier);
int (*set_read_handler)(struct connection *conn, ConnectionCallbackFunc handler); int (*set_read_handler)(struct connection *conn, ConnectionCallbackFunc handler);
const char *(*get_last_error)(struct connection *conn); const char *(*get_last_error)(struct connection *conn);
int (*blocking_connect)(struct connection *conn, const char *addr, int port, long long timeout);
ssize_t (*sync_write)(struct connection *conn, char *ptr, ssize_t size, long long timeout); ssize_t (*sync_write)(struct connection *conn, char *ptr, ssize_t size, long long timeout);
ssize_t (*sync_read)(struct connection *conn, char *ptr, ssize_t size, long long timeout); ssize_t (*sync_read)(struct connection *conn, char *ptr, ssize_t size, long long timeout);
ssize_t (*sync_readline)(struct connection *conn, char *ptr, ssize_t size, long long timeout); ssize_t (*sync_readline)(struct connection *conn, char *ptr, ssize_t size, long long timeout);
int (*get_type)(struct connection *conn);
} ConnectionType; } ConnectionType;
struct connection { struct connection {
......
...@@ -341,21 +341,30 @@ static int connSocketGetType(connection *conn) { ...@@ -341,21 +341,30 @@ static int connSocketGetType(connection *conn) {
} }
ConnectionType CT_Socket = { ConnectionType CT_Socket = {
/* connection type */
.get_type = connSocketGetType,
/* ae & accept & listen & error & address handler */
.ae_handler = connSocketEventHandler, .ae_handler = connSocketEventHandler,
/* create/close connection */
.close = connSocketClose, .close = connSocketClose,
/* connect & accept */
.connect = connSocketConnect,
.blocking_connect = connSocketBlockingConnect,
.accept = connSocketAccept,
/* IO */
.write = connSocketWrite, .write = connSocketWrite,
.writev = connSocketWritev, .writev = connSocketWritev,
.read = connSocketRead, .read = connSocketRead,
.accept = connSocketAccept,
.connect = connSocketConnect,
.set_write_handler = connSocketSetWriteHandler, .set_write_handler = connSocketSetWriteHandler,
.set_read_handler = connSocketSetReadHandler, .set_read_handler = connSocketSetReadHandler,
.get_last_error = connSocketGetLastError, .get_last_error = connSocketGetLastError,
.blocking_connect = connSocketBlockingConnect,
.sync_write = connSocketSyncWrite, .sync_write = connSocketSyncWrite,
.sync_read = connSocketSyncRead, .sync_read = connSocketSyncRead,
.sync_readline = connSocketSyncReadLine, .sync_readline = connSocketSyncReadLine,
.get_type = connSocketGetType
}; };
int connPeerToString(connection *conn, char *ip, size_t ip_len, int *port) { int connPeerToString(connection *conn, char *ip, size_t ip_len, int *port) {
......
...@@ -1015,24 +1015,6 @@ static int connTLSGetType(connection *conn_) { ...@@ -1015,24 +1015,6 @@ static int connTLSGetType(connection *conn_) {
return CONN_TYPE_TLS; return CONN_TYPE_TLS;
} }
ConnectionType CT_TLS = {
.ae_handler = tlsEventHandler,
.accept = connTLSAccept,
.connect = connTLSConnect,
.blocking_connect = connTLSBlockingConnect,
.read = connTLSRead,
.write = connTLSWrite,
.writev = connTLSWritev,
.close = connTLSClose,
.set_write_handler = connTLSSetWriteHandler,
.set_read_handler = connTLSSetReadHandler,
.get_last_error = connTLSGetLastError,
.sync_write = connTLSSyncWrite,
.sync_read = connTLSSyncRead,
.sync_readline = connTLSSyncReadLine,
.get_type = connTLSGetType
};
int tlsHasPendingData() { int tlsHasPendingData() {
if (!pending_list) if (!pending_list)
return 0; return 0;
...@@ -1076,6 +1058,33 @@ sds connTLSGetPeerCert(connection *conn_) { ...@@ -1076,6 +1058,33 @@ sds connTLSGetPeerCert(connection *conn_) {
return cert_pem; return cert_pem;
} }
ConnectionType CT_TLS = {
/* connection type */
.get_type = connTLSGetType,
/* ae & accept & listen & error & address handler */
.ae_handler = tlsEventHandler,
/* create/close connection */
.close = connTLSClose,
/* connect & accept */
.connect = connTLSConnect,
.blocking_connect = connTLSBlockingConnect,
.accept = connTLSAccept,
/* IO */
.read = connTLSRead,
.write = connTLSWrite,
.writev = connTLSWritev,
.set_write_handler = connTLSSetWriteHandler,
.set_read_handler = connTLSSetReadHandler,
.get_last_error = connTLSGetLastError,
.sync_write = connTLSSyncWrite,
.sync_read = connTLSSyncRead,
.sync_readline = connTLSSyncReadLine,
};
#else /* USE_OPENSSL */ #else /* USE_OPENSSL */
void tlsInit(void) { void tlsInit(void) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment