⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 conv_l~1.cpp

📁 一百个病毒的源代码 包括熊猫烧香等 极其具有研究价值
💻 CPP
字号:
/*	conv_ldif.cpp*/#define _GNU_SOURCE#include <stdio.h>#include <stdlib.h>#include <string.h>#include <syslog.h>#include <errno.h>#include "addr.h"#include "custom_string.h"int get_ldif_entry(FILE*, char**, char**);//////////////////////////////////////////////////////////////int convert_from_ldif(FILE* file, addr_t** addr){   int x=0;   int done=0;   addr_t* new_addr=NULL;   if(file == NULL || addr == NULL)      return(-1);   rewind(file);   do   {      if(inc_addr(&new_addr) != 0)         return(-1);      for(x=0; new_addr[x].name || new_addr[x].email; x++);      done=get_ldif_entry(file, &(new_addr[x].name), &(new_addr[x].email));   }   while(done == 0);   *addr=new_addr;   return(0);}//////////////////////////////////////////////////////////////int get_ldif_entry(FILE* file, char** name, char** email){   char* file_buff=NULL;   size_t file_buff_size=0;   ssize_t b_read=0;   int done=1;   int person=0;   char* tmp_ptr=NULL;   char* end_ptr=NULL;   do   {      b_read=getline(&file_buff, &file_buff_size, file);      if(b_read < 0 || file_buff == NULL)         done=-1;      else if(*file_buff == 0x0a || *file_buff == 0x0d)         done=0;      else if(strncasecmp(file_buff,"cn:",sizeof("cn:")-1) == 0)      {         if( (tmp_ptr=strchr(file_buff,':')) != NULL)         {            if( (end_ptr=strrpcbrk(tmp_ptr," \t\"'\n\x0d")) != NULL)               *(end_ptr+1)='\0';            if( (tmp_ptr=strpcbrk(tmp_ptr+1," \t\"'")) != NULL)            {               *name=strdup(tmp_ptr);               if(*name == NULL)               {                  syslog(LOG_MAIL | LOG_ERR,"Out of memory (%s)",				strerror(errno));                  done=-1;               }            }         }      }      else if(strncasecmp(file_buff,"mail:",sizeof("mail:")-1) == 0)      {         if( (tmp_ptr=strchr(file_buff,':')) != NULL)         {            if( (end_ptr=strrpcbrk(tmp_ptr," \t\"'\n\x0d")) != NULL)               *(end_ptr+1)='\0';            if( (tmp_ptr=strpcbrk(tmp_ptr+1," \t\"'")) != NULL)            {               *email=strdup(tmp_ptr);               if(*email == NULL)               {                  syslog(LOG_MAIL | LOG_ERR,"Out of memory (%s)",				strerror(errno));                  done=-1;               }            }         }      }      else if(strncasecmp(file_buff,"objectclass:",			sizeof("objectclass:")-1) == 0)      {         if( (tmp_ptr=strchr(file_buff,':')) != NULL)         {            tmp_ptr=strpcbrk(tmp_ptr+1," \t\"'");            if(tmp_ptr != NULL)               if(strncasecmp(tmp_ptr,"person",sizeof("person")-1) == 0)                  person=1;         }      }   }   while(done == 1);   if(file_buff != NULL)      free(file_buff);   if(person == 0)   {      if(*name != NULL)      {         free(*name);         *name=NULL;      }      if(*email != NULL)      {         free(*email);         *email=NULL;      }   }   if(*email == NULL && *name != NULL)   {      free(*name);      *name=NULL;   }   return(done);}//////////////////////////////////////////////////////////////

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -