1. C++ / Говнокод #9623

    +997

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    char* CFastSmtp::_formatHeader()
    {
    // check for at least one recipient
        if(Recipients.size() <= 0 )    {
            printf("Please add a message recipient!\r\n");
            return NULL;
        }
        int s=0;
        char *msgHeader = new char[16385];
        //char to[1024];
        for (unsigned int i=s=0;i<Recipients.size();i++) {        
            s+=strlen(Recipients.at(i)->GetEmail())+1;
        } if (s==0) s=1; char *to = new char[s];
        //char cc[1024];
        for (i=s=0;i<CCRecipients.size();i++) {        
            s+=strlen(CCRecipients.at(i)->GetEmail())+1;
        } if (s==0) s=1; char *cc = new char[s];
        //char bcc[1024];
        for (i=s=0;i<BCCRecipients.size();i++) {        
            s+=strlen(BCCRecipients.at(i)->GetEmail())+1;
        } if (s==0) s=1; char *bcc = new char[s];
    
        TCHAR szDate[500];
        TCHAR sztTime[500];
    
    // create the recipient string, cc string, and bcc string
        to[0] = '\0';        
        for (i=0;i<Recipients.size();i++) {        
            i > 0 ? strcat(to,","):strcat(to,"");
            strcat(to,Recipients.at(i)->GetEmail());
        }
    
        cc[0] = '\0';    
        for (i=0;i<CCRecipients.size();i++) {
            i > 0 ? strcat(cc,","):strcat(cc,"");
            strcat(cc,CCRecipients.at(i)->GetEmail());
        }
    
        bcc[0] = '\0';    
        for (i=0;i<BCCRecipients.size();i++) {
            i > 0 ? strcat(bcc,","):strcat(bcc,"");
            strcat(bcc,BCCRecipients.at(i)->GetEmail());
        }
    // get the current date and time
        SYSTEMTIME st={0};
        ::GetSystemTime(&st);
        ::GetDateFormat(LOCALE_SYSTEM_DEFAULT,0,&st,"ddd',
                        ' dd MMM yyyy",szDate,sizeof(szDate));
        ::GetTimeFormat(LOCALE_SYSTEM_DEFAULT,TIME_FORCE24HOURFORMAT,&st,
                        "HH':'mm':'ss tt",sztTime,sizeof(sztTime));
    // here it is...the main data of the message
        wsprintf(msgHeader,"DATE: %s %s\r\n", szDate, sztTime);    
        if (m_pcFromName != NULL) {
            strcat(msgHeader,"FROM: ");
            strcat(msgHeader, m_pcFromName);
            strcat(msgHeader, "\r\n");
        }
        strcat(msgHeader,"To: ");
        strcat(msgHeader, to);
        strcat(msgHeader, "\r\n");
        strcat(msgHeader,"Cc: ");
        strcat(msgHeader, cc);
        strcat(msgHeader, "\r\n");
        if (m_pcSubject != NULL) {
            strcat(msgHeader, "Subject: ");
            strcat(msgHeader, m_pcSubject);
            strcat(msgHeader, "\r\n");
        }
        if (m_pcXMailer != NULL) {
            strcat(msgHeader,"X-Mailer: ");
            strcat(msgHeader, m_pcXMailer);
            strcat(msgHeader, "\r\n");
        }
    // start optional fields
        if (m_pcReplyTo != NULL) {
            strcat(msgHeader, "Reply-To: ");
            strcat(msgHeader, m_pcReplyTo);
            strcat(msgHeader, "\r\n");
        }
    // start MIME versions
        strcat(msgHeader, 
               "MIME-Version: 1.0\r\nContent-type: text/plain; charset=US-ASCII\r\n");
    // send header finish command
        strcat(msgHeader, "\r\n");    
    // clean up
        delete to;
        delete cc;
        delete bcc;
    // done    
        return msgHeader;    
    }

    аццкий говнокодер
    http://www.codeproject.com/Articles/623/CFastSmtp-Fast-and-easy-SMTP-class

    Запостил: 63F45EF45RB65R6VR, 07 Марта 2012

    Комментарии (19) RSS

    • вот что бывает, когда кто то задумывается "а не добавить ли мне к моему си классы, это так модно"
      а то, что на С++ вот это всё выйдет в 10 строк - да не важно
      Ответить
      • да дело же не в этом может чувак точил ништяк размером в несколько килобайт а не жирное говно которое потянет за собой цпп рантайм вопрос в том как он пользуется тем что имеет а вовсе не в том что он заюзал для решения можно
        было и этими средствами сделать красиво а не то что мы видим сейчас из этого всего можно сделать вывод что чувак даже на Си программировать не умеет
        Ответить
    • strcat(msgHeader,"To: ");
      strcat(msgHeader, to);
      strcat(msgHeader, "\r\n");
      strcat(msgHeader,"Cc: ");
      strcat(msgHeader, cc);
      strcat(msgHeader, "\r\n");

      убило... snprintf юзать религия не позволила?
      Ответить
      • Уже вот это
        strcat(msgHeader, "\r\n");
        strcat(msgHeader,"Cc: ");

        должно насторожить.
        Ответить
      • Да это же КЛАССИКА алгоритма Шлемиэля. Об этом случае ещё пидор, написавший ексель, говорил.
        Ответить
        • показать все, что скрытотакими словами просто так не бросаются сказал пидор обоснуй а то как пиздабол это как минимум а как максимум отвечать когда нибудь придется хотя тебя уже не будут просить обосновать если ты так же за глаза кого то пидором назовеш без объяснения а просто поймают и накажут и главное будут правы за свои слова
          надо отвечать
          Ответить
          • да ты смотри типа интернет гугл ключевое слово сказал обосновываю берешь ищешь там информация публикация автор кто чем знаменит пример алгоритма короче там и находишь кто он и какой он реально ориентации и про какие проги он рассказывает и в чём участвовал короче его спольски зовут так что короче, отъебись со своим наездом, школьник, и научись нормально ставить запятые.
            Ответить
            • ну вот так бы сразу и вопросов бы к тебе не возникло и доебываться вовсе не хотел скорее наоборот научить что если называеш кого то пидором аргументируй сразу
              Ответить
            • ОП тоже явный пидарас.
              А Спольский - польский евrей.
              Ответить
              • Каждый польский еврей может стать американским пидорасом.
                Ответить
                • Честно говоря я не вижу особой разницы.
                  Ответить
                  • Та ви шо? Эти пендосские поцы таки в подметки не годятся.
                    Ответить
                    • У вас таки сильно хохлятский идиш получился ;-)
                      Ответить
                      • Промахнулся страной немного.
                        Ответить
                        • Will you come off it, Walter? You're not even fucking Jewish. You're fucking Polish Catholic...
                          Ответить
      • >snprintf
        std::ostringstream же!
        Ответить

    Добавить комментарий