aboutsummaryrefslogtreecommitdiff
path: root/jim-aio.c
diff options
context:
space:
mode:
authorSteve Bennett <steveb@workware.net.au>2016-01-25 09:33:38 +1000
committerSteve Bennett <steveb@workware.net.au>2016-02-01 10:47:13 +1000
commit79f9dc56a7bfb369e2556659603f99bc34700793 (patch)
tree814ac5871628ef7f234ffeccaf8c7e72af1c05e1 /jim-aio.c
parentb7dae50e44da0e637399d89fdedee25c41f28019 (diff)
downloadjimtcl-79f9dc56a7bfb369e2556659603f99bc34700793.zip
jimtcl-79f9dc56a7bfb369e2556659603f99bc34700793.tar.gz
jimtcl-79f9dc56a7bfb369e2556659603f99bc34700793.tar.bz2
aio: don't set ssl in make channel
It is simpler if af->ssl is handled after creating the channel Signed-off-by: Steve Bennett <steveb@workware.net.au>
Diffstat (limited to 'jim-aio.c')
-rw-r--r--jim-aio.c31
1 files changed, 14 insertions, 17 deletions
diff --git a/jim-aio.c b/jim-aio.c
index ed189c0..5791fed 100644
--- a/jim-aio.c
+++ b/jim-aio.c
@@ -274,7 +274,7 @@ static const JimAioFopsType ssl_fops = {
static int JimAioSubCmdProc(Jim_Interp *interp, int argc, Jim_Obj *const *argv);
static int JimMakeChannel(Jim_Interp *interp, FILE *fh, int fd, Jim_Obj *filename,
- const char *hdlfmt, int family, const char *mode, void *ssl);
+ const char *hdlfmt, int family, const char *mode);
#if !defined(JIM_ANSIC) && !defined(JIM_BOOTSTRAP)
static int JimParseIPv6Address(Jim_Interp *interp, const char *hostport, union sockaddr_any *sa, int *salen)
@@ -803,7 +803,7 @@ static int aio_cmd_accept(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
/* Create the file command */
return JimMakeChannel(interp, NULL, sock, Jim_NewStringObj(interp, "accept", -1),
- "aio.sockstream%ld", af->addr_family, "r+", NULL);
+ "aio.sockstream%ld", af->addr_family, "r+");
}
static int aio_cmd_listen(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
@@ -1119,10 +1119,13 @@ static int aio_cmd_ssl(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
}
}
- if (JimMakeChannel(interp, NULL, fd, NULL, "aio.sslstream%ld", af->addr_family, "r+", ssl) != JIM_OK) {
+ if (JimMakeChannel(interp, NULL, fd, NULL, "aio.sslstream%ld", af->addr_family, "r+") != JIM_OK) {
goto out;
}
+ af->ssl = ssl;
+ af->fops = &ssl_fops;
+
return JIM_OK;
out:
@@ -1356,7 +1359,7 @@ static int JimAioOpenCommand(Jim_Interp *interp, int argc,
}
}
#endif
- return JimMakeChannel(interp, NULL, -1, argv[1], "aio.handle%ld", 0, mode, NULL);
+ return JimMakeChannel(interp, NULL, -1, argv[1], "aio.handle%ld", 0, mode);
}
#if defined(JIM_SSL)
@@ -1397,7 +1400,7 @@ static SSL_CTX *JimAioSslCtx(Jim_Interp *interp)
* Creates the command and sets the name as the current result.
*/
static int JimMakeChannel(Jim_Interp *interp, FILE *fh, int fd, Jim_Obj *filename,
- const char *hdlfmt, int family, const char *mode, void *ssl)
+ const char *hdlfmt, int family, const char *mode)
{
AioFile *af;
char buf[AIO_CMD_LEN];
@@ -1451,12 +1454,6 @@ static int JimMakeChannel(Jim_Interp *interp, FILE *fh, int fd, Jim_Obj *filenam
af->openFlags = openFlags;
af->addr_family = family;
af->fops = &stdio_fops;
- af->ssl = ssl;
-#if defined(JIM_SSL)
- if (ssl) {
- af->fops = &ssl_fops;
- }
-#endif
Jim_CreateCommand(interp, buf, JimAioSubCmdProc, af, JimAioDelProc);
@@ -1475,11 +1472,11 @@ static int JimMakeChannel(Jim_Interp *interp, FILE *fh, int fd, Jim_Obj *filenam
static int JimMakeChannelPair(Jim_Interp *interp, int p[2], Jim_Obj *filename,
const char *hdlfmt, int family, const char *mode[2])
{
- if (JimMakeChannel(interp, NULL, p[0], filename, hdlfmt, family, mode[0], NULL) == JIM_OK) {
+ if (JimMakeChannel(interp, NULL, p[0], filename, hdlfmt, family, mode[0]) == JIM_OK) {
Jim_Obj *objPtr = Jim_NewListObj(interp, NULL, 0);
Jim_ListAppendElement(interp, objPtr, Jim_GetResult(interp));
- if (JimMakeChannel(interp, NULL, p[1], filename, hdlfmt, family, mode[1], NULL) == JIM_OK) {
+ if (JimMakeChannel(interp, NULL, p[1], filename, hdlfmt, family, mode[1]) == JIM_OK) {
Jim_ListAppendElement(interp, objPtr, Jim_GetResult(interp));
Jim_SetResult(interp, objPtr);
return JIM_OK;
@@ -1759,7 +1756,7 @@ static int JimAioSockCommand(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
return JIM_ERR;
}
- return JimMakeChannel(interp, NULL, sock, argv[1], hdlfmt, family, mode, NULL);
+ return JimMakeChannel(interp, NULL, sock, argv[1], hdlfmt, family, mode);
}
#endif /* JIM_BOOTSTRAP */
@@ -1848,9 +1845,9 @@ int Jim_aioInit(Jim_Interp *interp)
#endif
/* Create filehandles for stdin, stdout and stderr */
- JimMakeChannel(interp, stdin, -1, NULL, "stdin", 0, "r", NULL);
- JimMakeChannel(interp, stdout, -1, NULL, "stdout", 0, "w", NULL);
- JimMakeChannel(interp, stderr, -1, NULL, "stderr", 0, "w", NULL);
+ JimMakeChannel(interp, stdin, -1, NULL, "stdin", 0, "r");
+ JimMakeChannel(interp, stdout, -1, NULL, "stdout", 0, "w");
+ JimMakeChannel(interp, stderr, -1, NULL, "stderr", 0, "w");
return JIM_OK;
}