您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ strerr_die2x函数代码示例

51自学网 2021-06-03 08:29:40
  C++
这篇教程C++ strerr_die2x函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中strerr_die2x函数的典型用法代码示例。如果您正苦于以下问题:C++ strerr_die2x函数的具体用法?C++ strerr_die2x怎么用?C++ strerr_die2x使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了strerr_die2x函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: didentd_init

void didentd_init(){  char *x;  unsigned long id;  x = env_get("ROOT");  if (!x)     strerr_die2x(111,FATAL,"$ROOT not set");  if (chdir(x) == -1)    strerr_die4sys(111,FATAL,"unable to chdir to ",x,": ");  x = env_get("GID");  if (!x)    strerr_die2x(111,FATAL,"$GID not set");  scan_ulong(x,&id);  if (prot_gid((int) id) == -1)    strerr_die2sys(111,FATAL,"unable to setgid: ");  x = env_get("UID");  if (!x)    strerr_die2x(111,FATAL,"$UID not set");  scan_ulong(x,&id);  if (prot_uid((int) id) == -1)    strerr_die2sys(111,FATAL,"unable to setuid: ");}
开发者ID:kjseefried,项目名称:didentd,代码行数:25,


示例2: do_list

static void do_list(int act){  unsigned int i;  if (!flaglist || (modsub.s == 0 && remote.s == 0))    strerr_die2x(100,FATAL,MSG(ERR_NOT_AVAILABLE));  if (!ismod)    strerr_die2x(100,FATAL,MSG(ERR_NOT_ALLOWED));  hdr_subject(MSG(SUB_LIST));  hdr_ctboundary();  copy(&qq,"text/top",flagcd);  if (act == AC_LIST) {    showsend("list");    (void) code_qputs("");    (void) code_qputs(MSG(TXT_LISTMEMBERS));    (void) code_qputs("/n");    i = putsubs(workdir,0L,52L,code_subto);  } else {			/* listn */    showsend("listn");    i = putsubs(workdir,0L,52L,dummy_to);  }  (void) code_qput("/n  ======> ",11);  (void) code_qput(strnum,fmt_ulong(strnum,i));  (void) code_qput("/n",1);  copybottom(0);  qmail_to(&qq,mod.s);}
开发者ID:chayapan-computing,项目名称:ezmlm-idx,代码行数:27,


示例3: didentd_init

void didentd_init(){  /* chroot() to /proc/net/ and switch to $UID:$GID */  char *x;  unsigned long id;  if (chdir("/proc/net/") == -1)    strerr_die2sys(111,FATAL,"unable to chdir to '/proc/net/': ");  if (chroot(".") == -1)    strerr_die2sys(111,FATAL,"unable to chdir to '/proc/net/': ");  x = env_get("GID");  if (!x)    strerr_die2x(111,FATAL,"$GID not set");  scan_ulong(x,&id);  if (prot_gid((int) id) == -1)    strerr_die2sys(111,FATAL,"unable to setgid: ");  x = env_get("UID");  if (!x)    strerr_die2x(111,FATAL,"$UID not set");  scan_ulong(x,&id);  if (prot_uid((int) id) == -1)    strerr_die2sys(111,FATAL,"unable to setuid: ");}
开发者ID:kjseefried,项目名称:didentd,代码行数:25,


示例4: geton

int geton(const char *action){  const char *fl;  int r;  unsigned int i;  unsigned char ch;  fl = get_from(target.s,action);		/* try to match up */  r = subscribe(workdir,target.s,1,fl,(*action == ACTION_RC[0]) ? "+mod" : "+",-1);  if (flagdig == FLD_DENY || flagdig == FLD_ALLOW)    strerr_die2x(0,INFO,MSG1(ERR_EXTRA_SUB,target.s));  switch (r) {    case 1:	    qmail_puts(&qq,"List-Unsubscribe: <mailto:");	/*rfc2369 */	    qmail_put(&qq,outlocal.s,outlocal.len);	    qmail_puts(&qq,"-unsubscribe-");		/* url-encode since verptarget is controlled by sender */		/* note &verptarget ends in '/0', hence len - 1! */	    for (i = 0; i < verptarget.len - 1; i++) {	      ch = verptarget.s[i];	      if (str_chr("/"?;<>&/:%+#",ch) < 10 ||			 (ch <= ' ') || (ch & 0x80)) {		urlstr[1] = hex[ch / 16];	        urlstr[2] = hex[ch & 0xf];		qmail_put(&qq,urlstr,3);	      } else {		qmail_put(&qq,verptarget.s + i, 1);	      }	    }	    qmail_puts(&qq,"@");	    qmail_put(&qq,outhost.s,outhost.len);	/* safe */	    qmail_puts(&qq,">/n");	    hdr_subject(MSG(SUB_WELCOME));            hdr_ctboundary();	    stralloc_copy(&confirm,&outlocal);	    stralloc_cats(&confirm,"-unsubscribe-");	    stralloc_cats(&confirm,verptarget.s);	    stralloc_append(&confirm,'@');	    stralloc_cat(&confirm,&outhost);	    stralloc_0(&confirm);	    set_cpconfirm(confirm.s,outlocal.len);	/* for !R in copy */            copy(&qq,"text/top",flagcd);            copy_act("text/sub-ok");            break;    default:            if (str_start(action,ACTION_TC))              strerr_die2x(0,INFO,MSG(ERR_SUB_NOP));	    hdr_subject(MSG(SUB_SUBSCRIBE_NOP));            hdr_ctboundary();            copy(&qq,"text/top",flagcd);            copy_act("text/sub-nop");            break;  }  return r;}
开发者ID:chayapan-computing,项目名称:ezmlm-idx,代码行数:55,


示例5: _searchlog

/* Searches the subscriber log and outputs via subwrite(s,len) any entry * that matches search. A '_' is search is a wildcard. Any other * non-alphanum/'.' char is replaced by a '_'. */static void _searchlog(struct subdbinfo *info,                       const char *table,                       char *search,		/* search string */                       int subwrite())		/* output fxn */{    sqlite3_stmt *stmt;    int res;    datetime_sec when;    struct datetime dt;    char date[DATE822FMT];    /* SELECT (*) FROM list_slog WHERE fromline LIKE '%search%' OR address   */    /* LIKE '%search%' ORDER BY tai; */    /* The '*' is formatted to look like the output of the non-mysql version */    /* This requires reading the entire table, since search fields are not   */    /* indexed, but this is a rare query and time is not of the essence.     */    if (!stralloc_copys(&line,"SELECT tai, edir||etype||' '||address||' '||fromline"                        " FROM ")) die_nomem();    if (!stralloc_cat_table(&line,info,table)) die_nomem();    if (!stralloc_cats(&line,"_slog")) die_nomem();    if (*search) {	/* We can afford to wait for LIKE '%xx%' */        if (!stralloc_cats(&line," WHERE fromline LIKE '%")) die_nomem();        if (!stralloc_cats(&line,search)) die_nomem();        if (!stralloc_cats(&line,"%' OR address LIKE '%")) die_nomem();        if (!stralloc_cats(&line,search)) die_nomem();        if (!stralloc_cats(&line,"%'")) die_nomem();    }	/* ordering by tai which is an index */    if (!stralloc_cats(&line," ORDER by tai")) die_nomem();    if (!stralloc_0(&line)) die_nomem();    if ((stmt = _sqlquery(info, &line)) == NULL)        strerr_die2x(111,FATAL,sqlite3_errmsg((sqlite3*)info->conn));    while ((res = sqlite3_step(stmt)) != SQLITE_DONE) {        if (res != SQLITE_ROW)            strerr_die2x(111,FATAL,sqlite3_errmsg((sqlite3*)info->conn));        (void)scan_ulong((const char*)sqlite3_column_text(stmt,0),&when);        datetime_tai(&dt,when);        if (!stralloc_copyb(&line,date,date822fmt(date,&dt)-1)) die_nomem();        if (!stralloc_cats(&line,": ")) die_nomem();        if (!stralloc_catb(&line,strnum,fmt_ulong(strnum,when))) die_nomem();        if (!stralloc_cats(&line," ")) die_nomem();        if (!stralloc_catb(&line,                           (const char*)sqlite3_column_text(stmt,1),                           sqlite3_column_bytes(stmt,1)))            die_nomem();        if (subwrite(line.s,line.len) == -1) die_write();    }    sqlite3_finalize(stmt);}
开发者ID:abh,项目名称:ezmlm-idx,代码行数:56,


示例6: main

void main(int argc,char **argv){  char *def;  int opt;  int dash;    while ((opt = getopt(argc,argv,"vV")) != opteof)    switch (opt) {    case 'v':    case 'V':      strerr_die2x(0, "ezmlm-dispatch version: ",auto_version);    default:      die_usage();    }  if (argv[optind] == 0)    die_usage();  wrap_chdir(argv[optind]);  if (!stralloc_copys(&basedir,argv[optind++])) die_nomem();  sender = env_get("SENDER");  if (!sender)    strerr_die2x(100,FATAL,ERR_NOSENDER);  def = env_get("DEFAULT");  if (argv[optind] != 0) {    wrap_chdir(argv[optind]);    dispatch(argv[optind],def);  }  else if (!def || !*def)    strerr_die2x(100,FATAL,ERR_NODEFAULT);  else {    if (def[str_chr(def,'/')] != 0)      strerr_die2x(100,FATAL,"Recipient address may not contain '/'");    if (chdir(def) == 0)      dispatch(def,0);    dash = str_len(def);    for (;;) {      while (--dash > 0)	if (def[dash] == '-')	  break;      if (dash <= 0)	break;      def[dash] = 0;      if (chdir(def) == 0)	dispatch(def,def+dash+1);      def[dash] = '-';    }    strerr_die3x(100,FATAL,"Could not match recipient name to any list: ",def);  }}
开发者ID:kunishi,项目名称:qmail-hg,代码行数:53,


示例7: show

/*void show(const char *desc, stralloc *s){  buffer_puts(buffer_2,desc);  buffer_puthex(buffer_2,s->s,s->len);  buffer_putsflush(buffer_2,"/n");}*/int main(int argc, char * argv[]){    int r;    const char* pk0;    const char* sk0;    /* Check args */    pk0 = ((argc<2) ? env_get("NACL_PUBLICKEY_FILE") : argv[1]);    sk0 = ((argc<3) ? env_get("NACL_SECRETKEY_FILE") : argv[2]);    if(pk0==0 || sk0==0)        strerr_die1x(100,"crypto-box: usage: crypto-box [ publickeyfile ] [ secretkeyfile ]");    /* Read public key */    if(openreadclose(argv[1],&pk,crypto_box_PUBLICKEYBYTES)<=0)        strerr_die2sys(111,FATAL,"unable to read public key: ");    /* Read secret key */    if(openreadclose(argv[2],&sk,crypto_box_SECRETKEYBYTES)<=0)        strerr_die2sys(111,FATAL,"unable to read secret key: ");    /* Create shared key */    if(crypto_str_box_beforenm(&k,&pk,&sk))        strerr_die2x(111,FATAL,"failed to create shared-key");    /* Decrypt each chunk */    for (;;) {        /* Read nonce */        if((r=netstring_read(buffer_0,&n))!=0)            strerr_die2x(111,FATAL,"failed to read nonce");        if(n.len==0) break;        if(n.len!=crypto_box_NONCEBYTES)            strerr_die2x(111,FATAL,"nonce was incorrect size");        /* Read cipher */        if(netstring_read(buffer_0,&c)!=0)            strerr_die2x(111,FATAL,"failed to read cipher");        /* Decrypt message */        if(crypto_str_box_open_afternm(&m,&c,&n,&k)!=0)            strerr_die2x(111,FATAL,"decryption failed");        /* Write message */        if(buffer_put(buffer_1,m.s,m.len)!=0)            strerr_die2sys(111,FATAL,"failed to output message: ");    }    buffer_flush(buffer_1);    return 0;}
开发者ID:notfed,项目名称:nacltools,代码行数:60,


示例8: _issub

static int _issub(struct subdbinfo *info,                  const char *table,                  const char *userhost,                  stralloc *recorded){    sqlite3_stmt *stmt;    unsigned int j;    int res;    /* SELECT address FROM list WHERE address = 'userhost' AND hash */    /* BETWEEN 0 AND 52. Without the hash restriction, we'd make it */    /* even easier to defeat. Just faking sender to the list name would*/    /* work. Since sender checks for posts are bogus anyway, I don't */    /* know if it's worth the cost of the "WHERE ...". */    if (!stralloc_copys(&addr,userhost)) die_nomem();    j = byte_rchr(addr.s,addr.len,'@');    if (j == addr.len) return 0;    case_lowerb(addr.s + j + 1,addr.len - j - 1);    if (!stralloc_copys(&line,"SELECT address FROM ")) die_nomem();    if (!stralloc_cat_table(&line,info,table)) die_nomem();    if (!stralloc_cats(&line," WHERE address LIKE '")) die_nomem();    if (!stralloc_cat(&line,&addr)) die_nomem();    if (!stralloc_cats(&line,"'")) die_nomem();    if (!stralloc_0(&line)) die_nomem();    if ((stmt = _sqlquery(info, &line)) == NULL)	/* select */        strerr_die2x(111,FATAL,sqlite3_errmsg((sqlite3*)info->conn));    /* No data returned in QUERY */    res = sqlite3_step(stmt);    if (res != SQLITE_ROW)    {        if (res != SQLITE_DONE)            strerr_die2x(111,FATAL,sqlite3_errmsg((sqlite3*)info->conn));        sqlite3_finalize(stmt);        return 0;    }    if (recorded)    {        if (!stralloc_copyb(recorded, (const char*)sqlite3_column_text(stmt, 0), sqlite3_column_bytes(stmt, 0)))            die_nomem();        if (!stralloc_0(recorded)) die_nomem();    }    sqlite3_finalize(stmt);    return 1;}
开发者ID:abh,项目名称:ezmlm-idx,代码行数:51,


示例9: do_log

static void do_log(char *action,unsigned int actlen){  action += actlen;  if (*action == '.' || *action == '_') ++action;  if (!flaglist || remote.s == 0)    strerr_die2x(100,FATAL,MSG(ERR_NOT_AVAILABLE));  if (!ismod)    strerr_die2x(100,FATAL,MSG(ERR_NOT_ALLOWED));  showsend("log");  hdr_subject((*action == 0) ? MSG(SUB_LOG) : MSG(SUB_LOG_SEARCH));  hdr_ctboundary();  searchlog(workdir,action,code_subto);  copybottom(0);  qmail_to(&qq,mod.s);}
开发者ID:chayapan-computing,项目名称:ezmlm-idx,代码行数:15,


示例10: passwd_cb

int passwd_cb(char *buff,int size,int rwflag,void *userdata) {  if (size < password.len)    strerr_die2x(111,FATAL,"password too long");  byte_copy(buff,password.len,password.s);  return password.len;}
开发者ID:giamteckchoon,项目名称:ucspi-ssl-0.73-ipv6,代码行数:7,


示例11: getoff

int getoff(const char *action){  int r;  r = subscribe(workdir,target.s,0,"",(*action == ACTION_WC[0]) ? "-mod" : "-",-1);  if (flagdig == FLD_DENY || flagdig == FLD_ALLOW)    strerr_die2x(0,INFO,MSG1(ERR_EXTRA_UNSUB,target.s));  switch (r) {			/* no comment for unsubscribe */    case 1:	    hdr_subject(MSG(SUB_GOODBYE));            qmail_puts(&qq,"/n");            hdr_ctboundary();            copy(&qq,"text/top",flagcd);            copy_act("text/unsub-ok");            break;    default:	    hdr_subject(MSG(SUB_UNSUBSCRIBE_NOP));            hdr_ctboundary();            copy(&qq,"text/top",flagcd);            copy_act("text/unsub-nop");            break;  }  return r;}
开发者ID:chayapan-computing,项目名称:ezmlm-idx,代码行数:25,


示例12: main

int main(int argc,char **argv){    int i;    dns_random_init(seed);    if (*argv) ++argv;    while (*argv) {        if (!stralloc_copys(&fqdn,*argv))            strerr_die2x(111,FATAL,"out of memory");        if (dns_ip4(&out,&fqdn) == -1)            strerr_die4sys(111,FATAL,"unable to find IP address for ",*argv,": ");        for (i = 0; i + 4 <= out.len; i += 4) {            buffer_put(buffer_1,str,ip4_fmt(str,out.s + i));            buffer_puts(buffer_1," ");        }        buffer_puts(buffer_1,"/n");        ++argv;    }    buffer_flush(buffer_1);    _exit(0);}
开发者ID:kunishi,项目名称:qmail-hg,代码行数:26,


示例13: f_init

void f_init(char **script){  int i;  int fd;  for (i = 0;script[i];++i)    ;  f = (int *) alloc(i * sizeof(*f));  if (!f) strerr_die2x(111,FATAL,"out of memory");  for (i = 0;script[i];++i) {    fd = -1;    if (script[i][0] == '=') {      if (fchdir(fdstartdir) == -1)        strerr_die2sys(111,FATAL,"unable to switch to starting directory: ");      fd = open_append(script[i] + 1);      if (fd == -1)        strerr_die4sys(111,FATAL,"unable to create ",script[i] + 1,": ");      close(fd);      fd = open_write(script[i] + 1);      if (fd == -1)        strerr_die4sys(111,FATAL,"unable to write ",script[i] + 1,": ");      coe(fd);    }    f[i] = fd;  }}
开发者ID:schmurfy,项目名称:daemontools,代码行数:28,


示例14: main

int main(int argc, char **argv, char **envp) {  uint8_t buf[1024];  cdb_t cdb;  char *key;  uint32_t len;  uint32_t r;  uint32_t pos;  uint32_t skip = 0;  char *skip_str;    if (!*argv || !*++argv)    usage();  key = *argv;    skip_str = *++argv;  if (skip_str) {    if (sscanf(skip_str, "%" PRIu32, &skip) != strlen(skip_str))      usage();  }    /* Initialize the cdb struct using stdin as it's file descriptor. */  if (cdb_init(&cdb, 0) == -1)    strerr_die2x(111, FATAL, "failed to initialize cdb");      for (;;) {    r = cdb_find_next(&cdb, key, strlen(key));    if (r == -1)      strerr_die2sys(111, FATAL, "unable to read input: ");    if (!r)      _exit(100);          if (!skip)      break;    skip--;  }    /* If there's a record in the cdb file, then the cdb structs dlen property   * will be set to a non-zero value and it's position will be set to the   * offset in the file containing the data.  Read the data in chunks and send   * it to stdout. */  len = cdb.dlen;  pos = cdb.dpos;  while (len > 0) {    r = sizeof(buf);    if (r > len)      r = len;    if (cdb_read(buf, r, &cdb, pos) == -1)      strerr_die2sys(111, FATAL, "unable to read input: ");    if (bio_put(bio_1, buf, r) == -1)      strerr_die2sys(111, FATAL, "unable to write output: ");    pos += r;    len -= r;  }  if (bio_flush(bio_1) == -1)    strerr_die2sys(111, FATAL, "unable to write output: ");      cdb_free(&cdb);    return 0;}
开发者ID:dpejesh,项目名称:svcdb,代码行数:60,


示例15: main

main(){  char *x;  int udp53;  x = env_get("IP");  if (!x)    strerr_die2x(111,fatal,"$IP not set");  if (!ip4_scan(x,ip))    strerr_die3x(111,fatal,"unable to parse IP address ",x);  udp53 = socket_udp();  if (udp53 == -1)    strerr_die2sys(111,fatal,"unable to create UDP socket: ");  if (socket_bind4_reuse(udp53,ip,53) == -1)    strerr_die2sys(111,fatal,"unable to bind UDP socket: ");  droproot(fatal);  initialize();    ndelay_off(udp53);  socket_tryreservein(udp53,65536);  for (;;) {    len = socket_recv4(udp53,buf,sizeof buf,ip,&port);    if (len < 0) continue;    if (!doit()) continue;    if (response_len > 512) response_tc();    socket_send4(udp53,response,response_len,ip,port);    /* may block for buffer space; if it fails, too bad */  }}
开发者ID:kjseefried,项目名称:didentd,代码行数:33,


示例16: sub_sql_tagmsg

/* This routine inserts the cookie into table_cookie. We log arrival of * the message (done=0). */void sub_sql_tagmsg(struct subdbinfo *info,		    unsigned long msgnum,	/* number of this message */		    const char *hashout,	/* previously calculated hash */		    unsigned long bodysize,		    unsigned long chunk){  const char *ret;  char strnum[FMT_ULONG];  if (chunk >= 53L) chunk = 0L;	/* sanity */  /* INSERT INTO table_cookie (msgnum,tai,cookie,bodysize,chunk) VALUES (...) */  /* (we may have tried message before, but failed to complete, so */  /* ER_DUP_ENTRY is ok) */  stralloc_copys(&query,"INSERT INTO ");  stralloc_cats(&query,info->base_table);  stralloc_cats(&query,"_cookie (msgnum,tai,cookie,bodysize,chunk) VALUES ");  stralloc_cats(&query,sql_tagmsg_values_defn);  stralloc_copyb(&params[0],strnum,fmt_ulong(strnum,msgnum));  stralloc_copyb(&params[1],hashout,COOKIE);  stralloc_copyb(&params[2],strnum,fmt_ulong(strnum,bodysize));  stralloc_copyb(&params[3],strnum,fmt_ulong(strnum,chunk));  sql_exec(info,&query,4,params); /* ignore dups */  if (! (ret = logmsg(msgnum,0L,0L,1)))    return;			/* log done=1*/  if (*ret) strerr_die2x(111,FATAL,ret);}
开发者ID:bruceg,项目名称:ezmlm-idx,代码行数:31,


示例17: doheaders

void doheaders(void){  int flaggoodfield,match;  if (act == AC_DIGEST)    copy(&qq,"headeradd",'H');  hdr_add2s("Mailing-List: ",MSG(TXT_MAILING_LIST));  if (listid.len > 0)    hdr_add2("List-ID: ",listid.s,listid.len);  hdr_datemsgid(when);  hdr_from("-help");  if (!stralloc_copys(&mydtline,"Delivered-To: responder for ")) die_nomem();  if (!stralloc_catb(&mydtline,outlocal.s,outlocal.len)) die_nomem();  if (!stralloc_cats(&mydtline,"@")) die_nomem();  if (!stralloc_catb(&mydtline,outhost.s,outhost.len)) die_nomem();  if (!stralloc_cats(&mydtline,"/n")) die_nomem();  qmail_put(&qq,mydtline.s,mydtline.len);  flaggoodfield = 0;  if (act != AC_DIGEST)    for (;;) {    if (getln(&ssin,&line,&match,'/n') == -1)      strerr_die2sys(111,FATAL,MSG(ERR_READ_INPUT));    if (!match) break;    if (line.len == 1) break;    if ((line.s[0] != ' ') && (line.s[0] != '/t')) {      flaggoodfield = 0;      if (case_startb(line.s,line.len,"mailing-list:")) {        if (flageditor)			/* we may be running from a sublist */          flaggoodfield = 0;        else          strerr_die2x(100,FATAL,MSG(ERR_MAILING_LIST));      }      if (line.len == mydtline.len)	if (byte_equal(line.s,line.len,mydtline.s))          strerr_die2x(100,FATAL,MSG(ERR_LOOPING));      if (case_startb(line.s,line.len,"delivered-to:"))        flaggoodfield = 1;      if (case_startb(line.s,line.len,"received:"))        flaggoodfield = 1;    }    if (flaggoodfield)      qmail_put(&qq,line.s,line.len);  }}
开发者ID:abh,项目名称:ezmlm-idx,代码行数:47,


示例18: _tagmsg

/* This routine inserts the cookie into table_cookie. We log arrival of * the message (done=0). */static void _tagmsg(struct subdbinfo *info,                    unsigned long msgnum,	/* number of this message */                    const char *hashout,	/* previously calculated hash */                    unsigned long bodysize,                    unsigned long chunk){    sqlite3_stmt *stmt;    const char *ret;    int res;    if (chunk >= 53L) chunk = 0L;	/* sanity */    /* INSERT INTO table_cookie (msgnum,cookie) VALUES (num,cookie) */    /* (we may have tried message before, but failed to complete, so */    /* ER_DUP_ENTRY is ok) */    if (!stralloc_copys(&line,"INSERT INTO ")) die_nomem();    if (!stralloc_cats(&line,info->base_table)) die_nomem();    if (!stralloc_cats(&line,"_cookie (msgnum,tai,cookie,bodysize,chunk) VALUES ("))        die_nomem();    if (!stralloc_catb(&line,strnum,fmt_ulong(strnum,msgnum))) die_nomem();    if (!stralloc_cats(&line,",")) die_nomem();    if (!stralloc_catb(&line,strnum,fmt_ulong(strnum,now()))) die_nomem();    if (!stralloc_cats(&line,",'")) die_nomem();    if (!stralloc_catb(&line,hashout,COOKIE)) die_nomem();    if (!stralloc_cats(&line,"',")) die_nomem();    if (!stralloc_catb(&line,strnum,fmt_ulong(strnum,bodysize)))        die_nomem();    if (!stralloc_cats(&line,",")) die_nomem();    if (!stralloc_catb(&line,strnum,fmt_ulong(strnum,chunk))) die_nomem();    if (!stralloc_cats(&line,")")) die_nomem();    if (!stralloc_0(&line)) die_nomem();    if ((stmt = _sqlquery(info, &line)) == NULL)        strerr_die2x(111,FATAL,sqlite3_errmsg((sqlite3*)info->conn));    res = sqlite3_step(stmt);    sqlite3_finalize(stmt);    if (res != SQLITE_DONE)    {        if (res != SQLITE_CONSTRAINT)		/* ignore dups */            strerr_die2x(111,FATAL,sqlite3_errmsg((sqlite3*)info->conn));	/* cookie query */    }    if (! (ret = logmsg(msgnum,0L,0L,1))) return;	/* log done=1*/    if (*ret) strerr_die2x(111,FATAL,ret);}
开发者ID:abh,项目名称:ezmlm-idx,代码行数:49,


示例19: do_get

static void do_get(const char *action){  unsigned long u;  struct stat st;  char ch;  int r;  unsigned int pos;  int fd;  if (!flagget)    strerr_die2x(100,FATAL,MSG(ERR_NOT_AVAILABLE));  hdr_subject(MSG(SUB_GET_MSG));  hdr_ctboundary();  copy(&qq,"text/top",flagcd);  pos = str_len(ACTION_GET);  if (!case_starts(action,ACTION_GET))    pos = str_len(ALT_GET);  if (action[pos] == '.' || action [pos] == '_') pos++;  scan_ulong(action + pos,&u);  stralloc_copys(&line,"archive/");  stralloc_catb(&line,strnum,fmt_ulong(strnum,u / 100));  stralloc_cats(&line,"/");  stralloc_catb(&line,strnum,fmt_uint0(strnum,(unsigned int) (u % 100),2));  stralloc_0(&line);  fd = open_read(line.s);  if (fd == -1)    if (errno != error_noent)      strerr_die2sys(111,FATAL,MSG1(ERR_OPEN,line.s));    else      copy_act("text/get-bad");  else {    if (fstat(fd,&st) == -1)      copy_act("text/get-bad");    else if (!(st.st_mode & 0100))      copy_act("text/get-bad");    else {      showsend("get");      substdio_fdbuf(&sstext,read,fd,textbuf,sizeof(textbuf));      qmail_puts(&qq,"> ");      for (;;) {	r = substdio_get(&sstext,&ch,1);	if (r == -1) strerr_die2sys(111,FATAL,MSG1(ERR_READ,line.s));	if (r == 0) break;	qmail_put(&qq,&ch,1);	if (ch == '/n') qmail_puts(&qq,"> ");      }      qmail_puts(&qq,"/n");    }    close(fd);  }  copybottom(0);  qmail_to(&qq,target.s);}
开发者ID:chayapan-computing,项目名称:ezmlm-idx,代码行数:57,


示例20: startup

void startup(const char *dir){  if (dir == 0)    die_usage();  if (dir[0] != '/')    strerr_die2x(100,FATAL,ERR_SLASH);  wrap_chdir(dir);}
开发者ID:kunishi,项目名称:qmail-hg,代码行数:10,


示例21: rijndaelDecrypt_cbc

int rijndaelDecrypt_cbc(char *c, unsigned int l, stralloc *p){  unsigned int n;  /* if ciphertext is not a multiple of 128 Bits we have a problem */  if(l % 16 != 0) // XXX: fixme    strerr_die2x(111, FATAL, "input data is not 128 Bit aligned");      if(l < 32)      // XXX: fixme    strerr_die2x(111, FATAL, "input data is < 32 bytes");        for(n = 16; n < l; n += 16)    {      stralloc_catb(p, &c[n], 16);       rijndaelDecrypt(&p->s[p->len-16]);      byte_Ixor(&p->s[p->len-16], &c[n-16], 16);    }  return p->len;} 
开发者ID:kjseefried,项目名称:dmailb5,代码行数:19,


示例22: mailprog

int mailprog(const char *s){    int r;    if ((child = wrap_fork()) == 0)      wrap_execsh(s);    /* parent */    switch((r = wrap_waitpid(child))) {      /* 100 perm error, 111 temp, 99 dom ok */      /* 0 rec ok, others bounce */      case 0: case 99: case 100: break;      case 111:					/* temp error */        strerr_die2x(111,FATAL,MSG(ERR_CHILD_TEMP));      default:        strerr_die2x(100,FATAL,MSG(ERR_REJECT));	/* other errors => bounce */    }    if (seek_begin(0) == -1)			/* rewind */      strerr_die2sys(111,FATAL,MSG(ERR_SEEK_INPUT));    return r;}
开发者ID:gurubert,项目名称:ezmlm-idx,代码行数:20,


示例23: _putsubs

/* Outputs all addresses in the table through subwrite. subwrite must be * a function returning >=0 on success, -1 on error, and taking * arguments (char* string, unsigned int length). It will be called once * per address and should take care of newline or whatever needed for * the output form. */static unsigned long _putsubs(struct subdbinfo *info,                              const char *table,                              unsigned long hash_lo,                              unsigned long hash_hi,                              int subwrite())		/* write function. */{    unsigned long no = 0L;    sqlite3_stmt *stmt;    int res;    int length;    const char *row;    /* main query */    if (!stralloc_copys(&line,"SELECT address FROM "))        die_nomem();    if (!stralloc_cat_table(&line,info,table)) die_nomem();    if (!stralloc_cats(&line," WHERE hash BETWEEN ")) die_nomem();    if (!stralloc_catb(&line,strnum,fmt_ulong(strnum,hash_lo)))        die_nomem();    if (!stralloc_cats(&line," AND ")) die_nomem();    if (!stralloc_catb(&line,strnum,fmt_ulong(strnum,hash_hi)))        die_nomem();    if (!stralloc_0(&line)) die_nomem();    if ((stmt = _sqlquery(info, &line)) == NULL)        strerr_die2x(111,FATAL,sqlite3_errmsg((sqlite3*)info->conn));    no = 0;    while ((res = sqlite3_step(stmt)) != SQLITE_DONE) {        if (res != SQLITE_ROW)            strerr_die2x(111,FATAL,sqlite3_errmsg((sqlite3*)info->conn));        /* this is safe even if someone messes with the address field def */        length = sqlite3_column_bytes(stmt, 0);        row = (const char*)sqlite3_column_text(stmt, 0);        if (subwrite(row,length) == -1) die_write();        no++;					/* count for list-list fxn */    }    sqlite3_finalize(stmt);    return no;}
开发者ID:abh,项目名称:ezmlm-idx,代码行数:46,


示例24: main

void main(int argc,char **argv){  char *def;  int dash;    optind = getconfopt(argc,argv,options,0,0);  if (argv[optind] == 0)    die_usage();  if (!stralloc_copys(&basedir,argv[optind++])) die_nomem();  sender = get_sender();  if (!sender)    strerr_die2x(100,FATAL,MSG(ERR_NOSENDER));  def = env_get("DEFAULT");  if (argv[optind] != 0) {    dispatch(argv[optind],def);    strerr_die3x(100,FATAL,"Not a directory: ",path.s);  }  else if (!def || !*def)    strerr_die2x(100,FATAL,MSG(ERR_NODEFAULT));  else {    if (def[str_chr(def,'/')] != 0)      strerr_die2x(100,FATAL,"Recipient address may not contain '/'");    dispatch(def,0);    dash = str_len(def);    for (;;) {      while (--dash > 0)	if (def[dash] == '-')	  break;      if (dash <= 0)	break;      def[dash] = 0;      dispatch(def,def+dash+1);      def[dash] = '-';    }    strerr_die3x(100,FATAL,"Could not match recipient name to any list: ",def);  }}
开发者ID:debdungeon,项目名称:qint,代码行数:41,


示例25: get

void get(char *buf,unsigned int len){  int r;  while (len > 0) {	 r = buffer_get(buffer_0,buf,len);	 if (r == -1) die_read();	 if (r == 0)		strerr_die2x(111,FATAL,"unable to read input: truncated file");	 pos += r;	 buf += r;	 len -= r;  }}
开发者ID:alepharchives,项目名称:ULib,代码行数:13,


示例26: main

int main(int argc,char *argv[]){  const char* dir;  int fd;  int match;  unsigned long msgsize = 0L;  int opt;    while ((opt = getopt(argc,argv,"vV")) != opteof) {    switch(opt) {    case 'v':    case 'V':      strerr_die2x(0, "ezmlm-import version: ",auto_version);    default:      die_usage();    }  }  if (argc - optind != 2)    die_usage();  if ((fd = open_read(argv[optind+1])) == -1)    strerr_die4sys(111,FATAL,ERR_OPEN,argv[optind+1],": ");  substdio_fdbuf(&ssin,read,fd,inputbuf,sizeof inputbuf);  startup(dir = argv[optind]);  lockfile("lock");  getconf_ulong2(&msgnum,&cumsize,"num",0,dir);    fd = 0;  while (getln(&ssin,&line,&match,'/n') == 0 && match) {    if (line.len > 5	&& byte_diff(line.s,5,"From ") == 0) {      if (fd > 0) {	if (substdio_flush(&ssarchive) == -1	    || fchmod(fd,MODE_ARCHIVE|0700) == -1	    || close(fd) == -1)	  strerr_die4sys(111,FATAL,ERR_WRITE,fnaf.s,": ");	fd = 0;      }      ++msgnum;      cumsize += (msgsize + 128L) >> 8;      msgsize = 0L;      fd = openone(msgnum);    }    else if (fd > 0) {      substdio_put(&ssarchive,line.s,line.len);      msgsize += line.len;    }  }
开发者ID:kunishi,项目名称:qmail-hg,代码行数:51,


示例27: zapnonsub

void zapnonsub(const char *szerr)/* fatal error if flagsubonly is set and sender is not a subscriber *//* expects the current dir to be the list dir. Error is szerr *//* added check for undefined sender as a precaution */{  if (sender && *sender) {	/* "no sender" is not a subscriber */    if (!flagsubonly)      return;    if (issub(0,sender,0))      return;		/* subscriber */    if (issub("digest",sender,0))      return;		/* digest subscriber */    if (issub("allow",sender,0))      return;		/* allow addresses */  }  strerr_die2x(100,FATAL,MSG1(ERR_SUBSCRIBER_CAN,szerr));}
开发者ID:abh,项目名称:ezmlm-idx,代码行数:17,


示例28: c_init

void c_init(char **script){  int i;  struct cyclog *d;  char *processor;  unsigned long num;  unsigned long size;  cnum = 0;  for (i = 0;script[i];++i)    if ((script[i][0] == '.') || (script[i][0] == '/'))      ++cnum;  c = (struct cyclog *) alloc(cnum * sizeof(*c));  if (!c) strerr_die2x(111,FATAL,"out of memory");  d = c;  processor = 0;  num = 10;  size = 99999;  for (i = 0;script[i];++i)    if (script[i][0] == 's') {      scan_ulong(script[i] + 1,&size);      if (size < 4096) size = 4096;      if (size > 16777215) size = 16777215;    }    else if (script[i][0] == 'n') {      scan_ulong(script[i] + 1,&num);      if (num < 2) num = 2;    }    else if (script[i][0] == '!') {      processor = script[i] + 1;    }    else if ((script[i][0] == '.') || (script[i][0] == '/')) {      d->num = num;      d->size = size;      d->processor = processor;      d->dir = script[i];      buffer_init(&d->ss,c_write,d - c,d->buf,sizeof d->buf);      restart(d);      ++d;    }}
开发者ID:schmurfy,项目名称:daemontools,代码行数:44,


示例29: main

int main(int argc,const char * const *argv,const char * const *envp){  char ch;  int wstat;  int pi[2];  int i;  int ignored;  if (!argv[1])    strerr_die1x(100,"fghack: usage: fghack child");  if (pipe(pi) == -1)    strerr_die2sys(111,FATAL,"unable to create pipe: ");  switch(pid = fork()) {    case -1:      strerr_die2sys(111,FATAL,"unable to fork: ");    case 0:      close(pi[0]);      for (i = 0;i < 30;++i)        ignored = dup(pi[1]);      pathexec_run(argv[1],argv + 1,envp);      strerr_die4sys(111,FATAL,"unable to run ",argv[1],": ");  }  close(pi[1]);  for (;;) {    i = buffer_unixread(pi[0],&ch,1);    if ((i == -1) && (errno == error_intr)) continue;    if (i == 1) continue;    break;  }  if (wait_pid(&wstat,pid) == -1)    strerr_die2sys(111,FATAL,"wait failed: ");  if (wait_crashed(wstat))    strerr_die2x(111,FATAL,"child crashed");  _exit(wait_exitcode(wstat));}
开发者ID:AyKo,项目名称:daemontools-encore,代码行数:40,


示例30: axfrcheck

void axfrcheck(char *q){  int i;  int j;  if (!axfr) return;  i = j = 0;  for (;;) {    if (!axfr[i] || (axfr[i] == '/')) {      if (i > j) {        if (!dns_domain_fromdot(&axfrok,axfr + j,i - j)) nomem();        if (dns_domain_equal(q,axfrok)) return;      }      j = i + 1;    }    if (!axfr[i]) break;    ++i;  }  strerr_die2x(111,FATAL,"disallowed zone transfer request");}
开发者ID:carriercomm,项目名称:tinydnssec,代码行数:22,



注:本文中的strerr_die2x函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ strerror_from_system函数代码示例
C++ strerr_die2sys函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。