亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? vpgsql.c

?? 相當優秀的 UNIX 進程管理工具
?? C
?? 第 1 頁 / 共 3 頁
字號:
  memset(IUser, 0, sizeof(IUser));  memset(IPass, 0, sizeof(IPass));  memset(IGecos, 0, sizeof(IGecos));  memset(IDir, 0, sizeof(IDir));  memset(IShell, 0, sizeof(IShell));  memset(IClearPass, 0, sizeof(IClearPass));    vpw.pw_name   = IUser;  vpw.pw_passwd = IPass;  vpw.pw_gecos  = IGecos;  vpw.pw_dir    = IDir;  vpw.pw_shell  = IShell;  vpw.pw_clear_passwd  = IClearPass;      strncpy(vpw.pw_name, PQgetvalue( pgres, ctuple, 0 ),SMALL_BUFF );  strncpy(vpw.pw_passwd, PQgetvalue( pgres, ctuple, 1 ),SMALL_BUFF );  vpw.pw_uid    = atoi(PQgetvalue( pgres, ctuple, 2 ));  vpw.pw_gid    = atoi(PQgetvalue( pgres, ctuple, 3 ));  strncpy(vpw.pw_gecos, PQgetvalue( pgres, ctuple, 4 ),SMALL_BUFF);  strncpy(vpw.pw_dir, PQgetvalue( pgres, ctuple, 5 ),SMALL_BUFF);  strncpy(vpw.pw_shell, PQgetvalue( pgres, ctuple, 6 ),SMALL_BUFF);#ifdef CLEAR_PASS    if (PQgetvalue( pgres, ctuple, 7)!= 0 ) {      strncpy(vpw.pw_clear_passwd, PQgetvalue( pgres, ctuple, 7 ),SMALL_BUFF);    }#endif    ctuple++;    return(&vpw);}void vauth_end_getall(){  /* not applicable in pgsql? */}char *vauth_munch_domain( char *domain ){  int i;  static char tmpbuf[50];  if ( domain == NULL || domain[0] == 0 ) return(domain);  for(i=0;domain[i]!=0;++i){    tmpbuf[i] = domain[i];    if ( domain[i] == '.' || domain[i] == '-' ) {      tmpbuf[i] = SQL_DOT_CHAR;    }  }  tmpbuf[i] = 0;   return(tmpbuf);}int vauth_setpw( struct vqpasswd *inpw, char *domain ){  PGresult *pgres;  char *tmpstr;  uid_t myuid;  uid_t uid;  gid_t gid;  int err;  err = vcheck_vqpw(inpw, domain);  if ( err != 0 ) return(err);  vget_assign(domain,NULL,0,&uid,&gid);  myuid = geteuid();  if ( myuid != 0 && myuid != uid ) {    return(VA_BAD_UID);  }  if ( (err=vauth_open()) != 0 ) return(err);  vset_default_domain( domain );#ifndef MANY_DOMAINS  tmpstr = vauth_munch_domain( domain );#else  tmpstr = PGSQL_DEFAULT_TABLE; #endif  qnprintf( SqlBufUpdate,SQL_BUF_SIZE,SETPW,            tmpstr,             inpw->pw_passwd,            inpw->pw_uid,            inpw->pw_gid,             inpw->pw_gecos,            inpw->pw_dir,             inpw->pw_shell, #ifdef CLEAR_PASS            inpw->pw_clear_passwd,#endif            inpw->pw_name#ifdef MANY_DOMAINS            ,domain#endif            );  pgres=PQexec(pgc, SqlBufUpdate);  if ( !pgres || PQresultStatus(pgres)!= PGRES_COMMAND_OK ) {    fprintf(stderr, "vauth_setpw: pgsql query[6]: %s\n", 	    PQerrorMessage(pgc));    if( pgres )  PQclear(pgres);    return(-1);  }   if( pgres ) PQclear(pgres);#ifdef SQWEBMAIL_PASS    vsqwebmail_pass( inpw->pw_dir, inpw->pw_passwd, uid, gid);#endif    return(0);}#ifdef POP_AUTH_OPEN_RELAYint vopen_smtp_relay(){  PGresult *pgres;  char *ipaddr;  time_t mytime;  int err;  mytime = time(NULL);  ipaddr = get_remote_ip();  if ( ipaddr == NULL ) {    return 0;  }  if ( (err=vauth_open()) != 0 ) return 0;  qnprintf(SqlBufUpdate, SQL_BUF_SIZE,     "UPDATE relay SET ip_addr='%s', timestamp=%d WHERE ip_addr='%s'",    ipaddr, (int)mytime, ipaddr);  pgres=PQexec(pgc, SqlBufUpdate);  if (PQresultStatus(pgres) == PGRES_COMMAND_OK && atoi(PQcmdTuples(pgres)) == 0) {    if( pgres ) PQclear(pgres);    qnprintf( SqlBufUpdate, SQL_BUF_SIZE,      "INSERT INTO relay (ip_addr, timestamp) VALUES ('%s', %lu)",      ipaddr, time(NULL));     pgres=PQexec(pgc, SqlBufUpdate);    }/* UPDATE returned 0 rows and/or INSERT failed.  Try creating the table */  if(!pgres || PQresultStatus(pgres) != PGRES_COMMAND_OK) {    if( pgres ) PQclear(pgres);    vcreate_relay_table();/* and try INSERTing now... */    qnprintf( SqlBufUpdate, SQL_BUF_SIZE,      "INSERT INTO relay (ip_addr, timestamp) VALUES ('%s', %lu)",      ipaddr, time(NULL));     pgres=PQexec(pgc, SqlBufUpdate);    }  if(pgres && PQresultStatus(pgres) == PGRES_COMMAND_OK ) {    /* need to return non-zero value if value inserted */    if( pgres ) PQclear(pgres);    return 1;  }  if( pgres ) PQclear(pgres);  return 0;}void vupdate_rules(int fdm){  PGresult *pgres;  const char re[]=":allow,RELAYCLIENT=\"\",RBLSMTPD=\"\"\n";  register unsigned i=0, n, len=strlen(re)+1;  char *buf=NULL;  if (vauth_open() != 0) return;  snprintf(SqlBufRead, SQL_BUF_SIZE, "SELECT ip_addr FROM relay");  if ( !(pgres=PQexec(pgc, SqlBufRead)) || PQresultStatus(pgres)!=PGRES_TUPLES_OK) {    vcreate_relay_table();    if(pgres) PQclear(pgres);    if ( !(pgres=PQexec(pgc, SqlBufRead)) || PQresultStatus(pgres)!=PGRES_TUPLES_OK ) {      fprintf(stderr, "vupdate_rules: query : %s\n", PQerrorMessage(pgc));      if (pgres) PQclear (pgres);      return;    }  }    n=PQntuples(pgres);  for( ; i < n ; i++ ) {    buf=realloc(buf, len+PQgetlength(pgres, i, 0) );    if( buf==NULL || errno==ENOMEM ) {      PQclear(pgres);      free(buf);      fprintf(stderr, "vupdate_rules: no mem\n");      return;    }    sprintf( buf, "%s%s", PQgetvalue(pgres, i, 0), re );    if( write( fdm, buf, strlen(buf) ) != strlen(buf) ) {      fprintf(stderr, "vupdate_rules: short write: %s",	      strerror(errno));      break;    }  }  if(pgres) PQclear(pgres);  free(buf);  return;}void vclear_open_smtp(time_t clear_minutes, time_t mytime){  PGresult *pgres;  time_t delete_time;  int err;      if ( (err=vauth_open()) != 0 ) return;  delete_time = mytime - clear_minutes;  snprintf( SqlBufUpdate, SQL_BUF_SIZE, 	    "DELETE FROM relay WHERE timestamp <= %d", 	    (int)delete_time);  pgres=PQexec(pgc, SqlBufUpdate);  if( !pgres || PQresultStatus(pgres) != PGRES_COMMAND_OK) {    vcreate_relay_table();  }  return;}void vcreate_relay_table(){  vauth_create_table ("relay", RELAY_TABLE_LAYOUT, 1);  return;}#endifint vmkpasswd( char *domain ){    return(0);}void vclose(){  /* disconnection from the database */  if ( is_open == 1 ) {    is_open = 0;    PQfinish(pgc);  }}#ifdef IP_ALIAS_DOMAINSvoid vcreate_ip_map_table(){  vauth_create_table ("ip_alias_map", IP_ALIAS_TABLE_LAYOUT, 1);  return;}int vget_ip_map( char *ip, char *domain, int domain_size){  PGresult *pgres;  char *ptr;  unsigned ntuples;  int ret = -1;  if ( ip == NULL || strlen(ip) <= 0 ) return(-1);  if ( domain == NULL ) return(-2);  if ( vauth_open() != 0 ) return(-3);  qnprintf(SqlBufRead, SQL_BUF_SIZE,	   "select domain from ip_alias_map where ip_addr = '%s'",	   ip);  pgres=PQexec(pgc, SqlBufRead);  if( !pgres || PQresultStatus(pgres) != PGRES_TUPLES_OK ) {    fprintf( stderr, "vget_ip_map: pgsql query: %s\n", PQerrorMessage(pgc));      if( pgres ) PQclear(pgres);      return -1;    }  ntuples = PQntuples(pgres);  if(!ntuples)    *domain='\0';  else {    ret = 0;    ptr = PQgetvalue(pgres, ntuples-1, 0);    strncpy(domain, ptr, strlen(ptr) );  }  PQclear(pgres);  return (ret);}int vadd_ip_map( char *ip, char *domain) {  PGresult *pgres;  int err = 0;    if ( ip == NULL || strlen(ip) <= 0 ) return(-1);  if ( domain == NULL || strlen(domain) <= 0 ) return(-1);  if ( (err=vauth_open()) != 0 ) return(err);  if( ( err=pg_begin() )!= 0 ) {     /* begin transaction */    return(err);  }  qnprintf(SqlBufUpdate,SQL_BUF_SIZE,  	   "delete from ip_alias_map where ip_addr='%s' and domain='%s'",	   ip, domain);  /* step 1: delete previous entry */  pgres=PQexec(pgc, SqlBufUpdate);  if( pgres ) PQclear(pgres); /* don't check pgres status 				 table may not exist */  /* step 2: insert new data */  qnprintf(SqlBufUpdate,SQL_BUF_SIZE,  	   "insert into ip_alias_map (ip_addr,domain) values ('%s','%s')",	   ip, domain);  pgres=PQexec(pgc, SqlBufUpdate);  if ( !pgres || PQresultStatus(pgres) != PGRES_COMMAND_OK ) {    if( pgres ) PQclear(pgres);    vcreate_ip_map_table();    qnprintf(SqlBufUpdate,SQL_BUF_SIZE,  	   "insert into ip_alias_map (ip_addr,domain) values ('%s','%s')",	     ip, domain);    pgres=PQexec( pgc, SqlBufUpdate);    if ( !pgres || PQresultStatus(pgres) != PGRES_COMMAND_OK ) {      fprintf( stderr, "vadd_ip_map: insert: %s\n", PQerrorMessage(pgc));      if( pgres ) PQclear(pgres);      return -1;    }  }  if( pgres ) PQclear(pgres);  return ( pg_end() ); /* end transaction */}int vdel_ip_map( char *ip, char *domain) {  PGresult *pgres;  int err=0;  if ( ip == NULL || strlen(ip) <= 0 ) return(-1);  if ( domain == NULL || strlen(domain) <= 0 ) return(-1);  if ( (err=vauth_open()) != 0 ) return(err);  qnprintf( SqlBufUpdate,SQL_BUF_SIZE,  	    "delete from ip_alias_map where ip_addr='%s' and domain='%s'",            ip, domain);  pgres=PQexec(pgc, SqlBufUpdate);  if( !pgres || PQresultStatus(pgres)!=PGRES_COMMAND_OK ) {    fprintf(stderr, "vdel_ip_map: delete failed: %s\n", 	    PQerrorMessage(pgc));    if(pgres) PQclear(pgres);    /* #warning why are we returning 0 when we couldn't delete?*/    return(0);  }  if(pgres) PQclear(pgres);  return(0);}	int vshow_ip_map( int first, char *ip, char *domain ){  static PGresult *pgres=NULL;  static unsigned ntuples=0, ctuple=0;  int err= 0;  if ( ip == NULL ) return(-1);  if ( domain == NULL ) return(-1);  if ( ( err=vauth_open() ) != 0 ) return(err);  if ( first == 1 ) {    snprintf(SqlBufRead,SQL_BUF_SIZE, 	     "select ip_addr, domain from ip_alias_map");     if (pgres) {       PQclear(pgres);      ntuples=ctuple=0;    }	    if ( ! (pgres=PQexec(pgc, SqlBufRead))         || PQresultStatus(pgres) != PGRES_TUPLES_OK ) {      if(pgres) PQclear(pgres);      snprintf(SqlBufRead,SQL_BUF_SIZE, 	       "select ip_addr, domain from ip_alias_map");       vcreate_ip_map_table();      if ( ! (pgres=PQexec(pgc, SqlBufRead))	   || PQresultStatus(pgres) != PGRES_TUPLES_OK ) {	return(0);      }    }    ntuples=PQntuples(pgres);  }   if ( ctuple == ntuples ) {    PQclear(pgres);    ntuples=ctuple=0;    return (0);  }  strncpy( ip, PQgetvalue( pgres, ctuple, 0), 18);  strncpy( domain, PQgetvalue( pgres, ctuple, 1), 156);  strncpy( ip, PQgetvalue( pgres, ctuple, 0), 18);  strncpy( domain, PQgetvalue( pgres, ctuple, 1), 156);  ctuple++;  return 1;}#endifint vread_dir_control(vdir_type *vdir, char *domain, uid_t uid, gid_t gid){  PGresult *pgres;  int found = 0;  if ( vauth_open() != 0 ) return(-1);  qnprintf(SqlBufUpdate, SQL_BUF_SIZE, 	   "select %s from dir_control where domain = '%s'", 	   DIR_CONTROL_SELECT, domain );  if (!(pgres=PQexec(pgc, SqlBufUpdate)) ||       PQresultStatus(pgres)!=PGRES_TUPLES_OK ) {      if( pgres ) PQclear(pgres);      vcreate_dir_control(domain);      qnprintf(SqlBufUpdate, SQL_BUF_SIZE, 	       "select %s from dir_control where domain = '%s'", 	       DIR_CONTROL_SELECT, domain );      if (! (pgres=PQexec(pgc, SqlBufUpdate)) || 	  PQresultStatus(pgres)!=PGRES_TUPLES_OK ) {	fprintf(stderr, "vread_dir_control: q: %s\npgsql: %s", 		SqlBufUpdate, PQerrorMessage(pgc));	  if (pgres) PQclear (pgres);	  return (-1);      }  }  if ( PQntuples(pgres) > 0 ) {    found = 1;    vdir->cur_users = atol( PQgetvalue( pgres, 0, 0 ) );    vdir->level_cur = atoi( PQgetvalue( pgres, 0, 1 ) );    vdir->level_max = atoi( PQgetvalue( pgres, 0, 2 ) );    vdir->level_start[0] = atoi( PQgetvalue( pgres, 0, 3 ) );    vdir->level_start[1] = atoi( PQgetvalue( pgres, 0, 4 ) );    vdir->level_start[2] = atoi( PQgetvalue( pgres, 0, 5 ) );    vdir->level_end[0] = atoi( PQgetvalue( pgres, 0, 6 ) );    vdir->level_end[1] = atoi( PQgetvalue( pgres, 0, 7 ) );    vdir->level_end[2] = atoi( PQgetvalue( pgres, 0, 8 ) );    vdir->level_mod[0] = atoi( PQgetvalue( pgres, 0, 9 ) );    vdir->level_mod[1] = atoi( PQgetvalue( pgres, 0, 10 ) );    vdir->level_mod[2] = atoi( PQgetvalue( pgres, 0, 11 ) );    vdir->level_index[0] = atoi( PQgetvalue( pgres, 0, 12 ) );    vdir->level_index[1] = atoi( PQgetvalue( pgres, 0, 13 ) );    vdir->level_index[2] = atoi( PQgetvalue( pgres, 0, 14 ) );    strncpy(vdir->the_dir, PQgetvalue( pgres, 0, 15 ) , MAX_DIR_NAME);  }  PQclear(pgres);  if ( found == 0 ) {    int i;    vdir->cur_users = 0;    for(i=0;i<MAX_DIR_LEVELS;++i) {      vdir->level_start[i] = 0;      vdir->level_end[i] = MAX_DIR_LIST-1;      vdir->level_index[i] = 0;    }    vdir->level_mod[0] = 0;    vdir->level_mod[1] = 2;    vdir->level_mod[2] = 4;    vdir->level_cur = 0;    vdir->level_max = MAX_DIR_LEVELS;    vdir->the_dir[0] = 0;  }  return(0);}int vwrite_dir_control(vdir_type *vdir, char *domain, uid_t uid, gid_t gid){  PGresult *pgres;  if ( vauth_open() != 0 ) return(-1);  qnprintf(SqlBufUpdate, SQL_BUF_SIZE, 	   "delete from dir_control where domain='%s'", domain );  if( pg_begin() ) { /* begin transaction */      return -1;  }  pgres=PQexec(pgc, SqlBufUpdate);  if( !pgres || PQresultStatus(pgres)!=PGRES_COMMAND_OK ) {    fprintf(stderr, "vwrite_dir_control: delete failed: %s", 	    PQerrorMessage(pgc));	if (pgres) PQclear (pgres);    return -1;  }  qnprintf(SqlBufUpdate, SQL_BUF_SIZE,	   "insert into dir_control ( \domain, cur_users, \

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99视频一区二区| 欧美日韩国产乱码电影| 粉嫩一区二区三区性色av| 国产又粗又猛又爽又黄91精品| 日韩精品影音先锋| 国产精品一区在线| 2欧美一区二区三区在线观看视频| 亚洲视频在线一区二区| 国产精品五月天| 亚洲国产中文字幕| 国产精品一区二区黑丝| 国产拍欧美日韩视频二区| 一本色道久久加勒比精品| 日韩欧美不卡在线观看视频| 91理论电影在线观看| 2017欧美狠狠色| 国产麻豆欧美日韩一区| av在线不卡电影| 亚洲精品在线观看视频| 日韩一区欧美一区| 欧美日韩三级一区| 亚洲欧美激情插| 天天色综合天天| 欧美日韩亚洲国产综合| 亚洲国产成人91porn| 91.麻豆视频| 狠狠色狠狠色综合系列| 久久久噜噜噜久久中文字幕色伊伊| 久久精品亚洲精品国产欧美kt∨ | 91精品免费在线| 亚洲电影在线播放| 日韩免费看的电影| 色综合色综合色综合| 亚洲精选免费视频| 91精品国产色综合久久ai换脸 | 成人黄色国产精品网站大全在线免费观看 | 韩国中文字幕2020精品| 国产成人在线免费观看| 日韩一区在线播放| 欧美tickling挠脚心丨vk| 精品午夜久久福利影院| 久久久精品日韩欧美| 国产成人精品免费看| 在线观看免费成人| 亚洲激情av在线| 91福利社在线观看| 成人激情免费视频| 欧美美女喷水视频| 亚洲你懂的在线视频| 91麻豆自制传媒国产之光| 久久影院电视剧免费观看| www.欧美.com| 国产v综合v亚洲欧| 国产成人免费在线视频| 在线免费不卡视频| 91影院在线免费观看| 不卡视频在线观看| www.亚洲国产| 91论坛在线播放| 蜜臀av国产精品久久久久| 亚洲欧美综合在线精品| 91在线视频免费观看| 亚洲精品久久7777| 欧美大片在线观看| 福利电影一区二区| 亚洲成人av电影在线| 欧美精品一区二区三区高清aⅴ| 欧美精品一区二区在线播放 | 日韩av一级片| 久久综合国产精品| 亚洲不卡在线观看| 国产又黄又大久久| 日韩欧美区一区二| 色婷婷综合在线| 国产成人三级在线观看| 日本伊人色综合网| 欧美午夜片在线观看| 国产精品欧美精品| 久久综合国产精品| 这里只有精品电影| 欧美三级欧美一级| 色猫猫国产区一区二在线视频| 久久亚洲精品国产精品紫薇| 欧美日韩国产精品成人| 久久精品日产第一区二区三区高清版 | 午夜精品123| 亚洲电影第三页| 日韩中文欧美在线| 午夜精品久久久久影视| 亚洲bt欧美bt精品777| 国产精品一区二区视频| 欧美一区日本一区韩国一区| 欧美日韩中文一区| 91麻豆精品91久久久久同性| 日韩一区二区三区电影在线观看| 亚洲色图制服丝袜| 欧美激情在线免费观看| 中文欧美字幕免费| 亚洲国产一区二区三区青草影视| 91福利国产成人精品照片| 亚洲成人你懂的| 日韩av网站在线观看| 精品成人一区二区三区| 亚洲欧洲99久久| 男男成人高潮片免费网站| 国产成人免费av在线| 色综合视频在线观看| 日韩精品中文字幕一区二区三区| 成人av电影在线播放| 91麻豆精品国产91久久久久久 | 91蜜桃免费观看视频| 3atv在线一区二区三区| 国产精品夫妻自拍| 国产激情91久久精品导航| 亚洲自拍欧美精品| 亚洲黄色尤物视频| 欧美一级日韩一级| 午夜久久久久久电影| 色妹子一区二区| 一区二区三区免费网站| 成人av午夜影院| 国产精品入口麻豆九色| 国产成人精品免费视频网站| 中文字幕av一区二区三区| 国产欧美视频在线观看| 成人视屏免费看| 亚洲日本在线视频观看| 欧美午夜电影在线播放| 成人欧美一区二区三区| 久久99精品久久久久久国产越南| 美女mm1313爽爽久久久蜜臀| 欧美xxxxx裸体时装秀| 水蜜桃久久夜色精品一区的特点| 精品日韩99亚洲| 日韩电影在线一区二区| 久久久久久久久99精品| 国产一区二区精品久久99| 国产毛片精品国产一区二区三区| 成人av网站免费| 亚洲一区二区在线播放相泽| 国内精品免费在线观看| 成人av免费在线| 亚洲一区二区在线视频| 91麻豆精品91久久久久久清纯| 久久久久久久久99精品| 色综合久久88色综合天天免费| 日韩一区二区三区四区| 精品一区二区三区欧美| 色综合天天视频在线观看 | 91黄色免费版| 国产91在线观看| 日韩高清一区二区| 中文字幕在线不卡| 欧美成人综合网站| 欧美日韩不卡一区二区| 丁香婷婷综合网| 捆绑调教一区二区三区| 国产精品动漫网站| 国产精品美日韩| 精品国产乱码久久久久久免费| 一区二区三区免费| 久久精品一区八戒影视| 日韩限制级电影在线观看| 欧美精品丝袜中出| 欧美亚男人的天堂| 99re6这里只有精品视频在线观看| 在线视频欧美精品| 在线看一区二区| 91视频在线看| 91国偷自产一区二区三区观看 | 国内成人精品2018免费看| 精品国产精品网麻豆系列| 69成人精品免费视频| 欧美日韩国产一级二级| 欧美军同video69gay| 欧美日韩国产另类不卡| 日韩免费高清av| 国产91精品在线观看| 国产99久久久久| 国产精品久久777777| 欧美激情一区二区三区蜜桃视频| 久久亚洲免费视频| 国产精品一区免费在线观看| 亚洲日本在线视频观看| 国产精品丝袜一区| 日韩免费成人网| 亚洲一区二区三区视频在线| 久久99国内精品| 日韩一区二区在线观看视频播放| 99视频精品免费视频| 欧美r级电影在线观看| 丝袜亚洲另类欧美综合| 成人激情综合网站| 精品久久久久久久久久久久包黑料 | 欧美卡1卡2卡| 精品日韩成人av| 亚洲一区在线观看免费观看电影高清| 国产欧美一区二区精品性色| 午夜精品一区二区三区电影天堂| 免费三级欧美电影|