10#define WHO "tls_start"
12static void die_nomem() { logmsg(
WHO,111,FATAL,
"out of memory"); }
19 if (!(fdstr = env_get(
"SSLCTLFD")))
return 0;
20 if (!scan_ulong(fdstr,&
fd))
return 0;
21 if (
write((
int)
fd,
"Y",1) < 1)
return 0;
23 if (!(fdstr = env_get(
"SSLREADFD")))
return 0;
24 if (!scan_ulong(fdstr,&
fd))
return 0;
25 if (fd_move(0,(
int)
fd) == -1)
return 0;
27 if (!(fdstr = env_get(
"SSLWRITEFD")))
return 0;
28 if (!scan_ulong(fdstr,&
fd))
return 0;
29 if (fd_move(1,(
int)
fd) == -1)
return 0;
42 stralloc ssl_env = {0};
43 stralloc ssl_parm = {0};
44 stralloc ssl_value = {0};
46 if (!(fdstr = env_get(
"SSLCTLFD")))
return 0;
47 if (!scan_ulong(fdstr,&
fd))
return 0;
50 if (!stralloc_catb(&ssl_env,envbuf,
j))
die_nomem();
51 if (ssl_env.len >= 2 && ssl_env.s[ssl_env.len - 2] == 0 && ssl_env.s[ssl_env.len - 1] == 0)
58 for (
j = 0;
j < ssl_env.len - 1; ++
j) {
60 if (!stralloc_catb(&ssl_parm,x,1))
die_nomem();
66 for (;
j < ssl_env.len -
j - 1; ++
j) {
68 if (!stralloc_catb(&ssl_value,x,1))
die_nomem();
73 if (!env_put(ssl_parm.s,ssl_value.s))
die_nomem();