static void die_fatal(const char *trouble, const char *fn) { if (errno) { if (fn) die_7(111, FATAL, trouble, " ", fn, ": ", e_str(errno), "\n"); die_5(111, FATAL, trouble, ": ", e_str(errno), "\n"); } if (fn) die_5(111, FATAL, trouble, " ", fn, "\n"); die_3(111, FATAL, trouble, "\n"); }
void die_fatal(const char *trouble,const char *d,const char *fn) { if (!flagverbose) die_0(111); if (d) { if (fn) die_9(111,"curvecpserver: fatal: ",trouble," ",d,"/",fn,": ",e_str(errno),"\n"); die_7(111,"curvecpserver: fatal: ",trouble," ",d,": ",e_str(errno),"\n"); } die_5(111,"curvecpserver: fatal: ",trouble,": ",e_str(errno),"\n"); }
void die_fatal(const char *trouble,const char *d,const char *fn) { /* XXX: clean up? OS can do it much more reliably */ if (!flagverbose) die_0(111); if (d) { if (fn) die_9(111,"curvecpclient: fatal: ",trouble," ",d,"/",fn,": ",e_str(errno),"\n"); die_7(111,"curvecpclient: fatal: ",trouble," ",d,": ",e_str(errno),"\n"); } if (errno) die_5(111,"curvecpclient: fatal: ",trouble,": ",e_str(errno),"\n"); die_3(111,"curvecpclient: fatal: ",trouble,"\n"); }
void doanddie(char *user, unsigned int userlen /* including 0 byte */, char *pass) { int child; int wstat; int pi[2]; close(3); if (pipe(pi) == -1) die_pipe(); if (pi[0] != 3) die_pipe(); switch(child = fork()) { case -1: die_fork(); case 0: close(pi[1]); sig_pipedefault(); execvp(*childargs,childargs); _exit(1); } close(pi[0]); substdio_fdbuf(&ssup,subwrite,pi[1],upbuf,sizeof upbuf); if (substdio_put(&ssup,user,userlen) == -1) die_write(); if (substdio_put(&ssup,pass,str_len(pass) + 1) == -1) die_write(); if (substdio_puts(&ssup,"<") == -1) die_write(); if (substdio_puts(&ssup,unique) == -1) die_write(); if (substdio_puts(&ssup,hostname) == -1) die_write(); if (substdio_put(&ssup,">",2) == -1) die_write(); if (substdio_flush(&ssup) == -1) die_write(); close(pi[1]); byte_zero(pass,str_len(pass)); byte_zero(upbuf,sizeof upbuf); if (wait_pid(&wstat,child) == -1) die(); if (wait_crashed(wstat)) die_childcrashed(); switch (wait_exitcode(wstat)) { case 0: die(); case 1: die_1(); case 2: die_2(); case 25: die_25(); case 3: die_3(); case 4: die_4(); case 5: die_5(); case 6: die_6(); case 61: die_61(); case 62: die_62(); case 7: die_7(); case 8: die_nomem(); default: die_unknown(); } die(); }
void die_fatal(const char *trouble,const char *d,const char *fn) { if (fn) die_9(111,"curvecpmakekey: fatal: ",trouble," ",d,"/",fn,": ",e_str(errno),"\n"); die_7(111,"curvecpmakekey: fatal: ",trouble," ",d,": ",e_str(errno),"\n"); }