static int numservers=4, debugmode;
static int check_interval=300;
+static struct sha256_ctx identsc;
+
const char *stage2;
void diee(const char *m) {
*ci->iassignto = v;
}
+static void ident_addstring(const struct cmdinfo *ci, const char *string) {
+ /* ci may be 0 and is provided so this can be .call */
+ sha256_update(&identsc,strlen(string)+1,string);
+}
+
#define MAX_OPTS 5
static const struct cmdinfo cmdinfos[]= {
int identlen = maxidentlen > 64 ? 64 : maxidentlen;
char *hexident = xmalloc(identlen + 2);
- struct sha256_ctx sc;
unsigned char bbuf[32];
int i;
- sha256_init(&sc);
- sha256_update(&sc,strlen(interp)+1,interp);
- sha256_update(&sc,strlen(script)+1,script);
- sha256_digest(&sc,sizeof(bbuf),bbuf);
+ ident_addstring(0,interp);
+ ident_addstring(0,script);
+ sha256_digest(&identsc,sizeof(bbuf),bbuf);
for (i=0; i<identlen; i += 2)
sprintf(hexident+i, "%02x", bbuf[i/2]);
else if (r!=1) errx(127,"open /dev/null for stdout gave bad fd %d",r);
}
+ sha256_init(&identsc);
+
if (argc>=2 &&
(smashedopt = argv[1]) &&
smashedopt[0]=='-' &&