Added the '-C' flag for CA chain and code to set conn accordingly before invoking tlsServer. Reference: /n/sources/patch/applied/httpdcertchain Date: Thu Jan 11 00:35:54 CET 2007 Signed-off-by: 9nut@9netics.com --- /sys/src/cmd/ip/httpd/httpd.c Thu Jan 11 00:31:58 2007 +++ /sys/src/cmd/ip/httpd/httpd.c Thu Jan 11 00:31:55 2007 @@ -32,12 +32,13 @@ static int notfound(HConnect *c, char *url); uchar *certificate; -int certlen; +int certlen; +PEMChain *certchain; void usage(void) { - fprint(2, "usage: httpd [-a srvaddress] [-d domain] [-n namespace] [-w webroot]\n"); + fprint(2, "usage: httpd [-c certificate] [-C CAchain] [-a srvaddress] [-d domain] [-n namespace] [-w webroot]\n"); exits("usage"); } @@ -59,6 +60,11 @@ if(certificate == nil) sysfatal("reading certificate: %r"); break; + case 'C': + certchain = readcertchain(ARGF()); + if (certchain == nil) + sysfatal("reading certificate chain: %r"); + break; case 'n': namespace = ARGF(); break; @@ -212,6 +218,8 @@ memset(&conn, 0, sizeof(conn)); conn.cert = certificate; conn.certlen = certlen; + if (certchain != nil) + conn.chain = certchain; data = tlsServer(data, &conn); } if(data < 0){