From b9d77288243aeab306b99ff72a71d8490a91e0a8 Mon Sep 17 00:00:00 2001 From: zhenwei pi Date: Wed, 27 Jul 2022 09:39:37 +0800 Subject: [PATCH] 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: zhenwei pi --- src/connection.h | 17 +++++++++++++---- src/socket.c | 17 +++++++++++++---- src/tls.c | 45 +++++++++++++++++++++++++++------------------ 3 files changed, 53 insertions(+), 26 deletions(-) diff --git a/src/connection.h b/src/connection.h index efcc8d7f6d..8539032081 100644 --- a/src/connection.h +++ b/src/connection.h @@ -57,21 +57,30 @@ typedef enum { typedef void (*ConnectionCallbackFunc)(struct connection *conn); 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); + + /* 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 (*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 (*writev)(struct connection *conn, const struct iovec *iov, int iovcnt); 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_read_handler)(struct connection *conn, ConnectionCallbackFunc handler); 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_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); - int (*get_type)(struct connection *conn); } ConnectionType; struct connection { diff --git a/src/socket.c b/src/socket.c index 25b909475b..989192c3a0 100644 --- a/src/socket.c +++ b/src/socket.c @@ -341,21 +341,30 @@ static int connSocketGetType(connection *conn) { } ConnectionType CT_Socket = { + /* connection type */ + .get_type = connSocketGetType, + + /* ae & accept & listen & error & address handler */ .ae_handler = connSocketEventHandler, + + /* create/close connection */ .close = connSocketClose, + + /* connect & accept */ + .connect = connSocketConnect, + .blocking_connect = connSocketBlockingConnect, + .accept = connSocketAccept, + + /* IO */ .write = connSocketWrite, .writev = connSocketWritev, .read = connSocketRead, - .accept = connSocketAccept, - .connect = connSocketConnect, .set_write_handler = connSocketSetWriteHandler, .set_read_handler = connSocketSetReadHandler, .get_last_error = connSocketGetLastError, - .blocking_connect = connSocketBlockingConnect, .sync_write = connSocketSyncWrite, .sync_read = connSocketSyncRead, .sync_readline = connSocketSyncReadLine, - .get_type = connSocketGetType }; int connPeerToString(connection *conn, char *ip, size_t ip_len, int *port) { diff --git a/src/tls.c b/src/tls.c index 52b22d4550..019f5a9d82 100644 --- a/src/tls.c +++ b/src/tls.c @@ -1015,24 +1015,6 @@ static int connTLSGetType(connection *conn_) { 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() { if (!pending_list) return 0; @@ -1076,6 +1058,33 @@ sds connTLSGetPeerCert(connection *conn_) { 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 */ void tlsInit(void) {