13static void die_nomem() { logmsg(
WHO,111,FATAL,
"out of memory"); }
14static void die_tlsenv() { logmsg(
WHO,111,FATAL,
"no UCSPITLS environment to read"); }
21 if (!(fdstr = env_get(
"SSLCTLFD")))
return 0;
22 if (!scan_ulong(fdstr,&
fd))
return 0;
23 if (
write((
int)
fd,
"Y",1) < 1)
return 0;
25 if (!(fdstr = env_get(
"SSLREADFD")))
return 0;
26 if (!scan_ulong(fdstr,&
fd))
return 0;
27 if (fd_move(0,(
int)
fd) == -1)
return 0;
29 if (!(fdstr = env_get(
"SSLWRITEFD")))
return 0;
30 if (!scan_ulong(fdstr,&
fd))
return 0;
31 if (fd_move(1,(
int)
fd) == -1)
return 0;
44 stralloc ssl_env = {0};
45 stralloc ssl_parm = {0};
46 stralloc ssl_value = {0};
48 if (!(fdstr = env_get(
"SSLCTLFD")))
return 0;
49 if (!scan_ulong(fdstr,&
fd))
return 0;
52 if (!stralloc_catb(&ssl_env,envbuf,
j))
die_nomem();
53 if (ssl_env.len >= 2 && ssl_env.s[ssl_env.len - 2] == 0 && ssl_env.s[ssl_env.len - 1] == 0)
56 if (
j <= 0) { die_tlsenv();
return 0; }
60 for (
j = 0;
j < ssl_env.len - 1; ++
j) {
62 if (!stralloc_catb(&ssl_parm,x,1))
die_nomem();
68 for (;
j < ssl_env.len -
j - 1; ++
j) {
70 if (!stralloc_catb(&ssl_value,x,1))
die_nomem();
75 if (!env_put(ssl_parm.s,ssl_value.s))
die_nomem();