1. Perl / Говнокод #1519

    −55.2

    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
    #!/etc/Tivoli/bin/perl
    ##############################################################
    #  Name: Default.cgi
    #
    #  Description: Generates translated Default HTML page
    #               according to browser's language
    #  TMF 4.1
    #  Licensed Materials- Property of IBM
    #  (C) Copyright IBM Corp. 2000. All Rights Reserved
    #
    #  US Government Users Restricted Rights- Use, duplication,
    #  or disclosure restricted by GSA ADP Schedule Contract with
    #  IBM Corp.
    ##############################################################
    
    # wupddefhtml will bind all messages contained in default page
    # accordingly ( LANG is set to the browser's locale )
    
    $defaultPage=`wupddefhtml -out`;
    
    # all links in the default page are absolute or relative to root
    # so we need to fix them because we have changed location
    
    $defaultPage =~ s|href=|href=../|g;
    $defaultPage =~ s|//|/|g;
    
    print("HTTP/1.0 200 OK
    Contents-Type: text/html
    
    ");
    
    print "$defaultPage";

    строка print("HTTP/1.0 200 OK
    явно говорит о глубоких знаниях протокола :))
    (C) Copyright IBM Corp. - ИТ лидер - что еще сказать

    Запостил: pdp_dp, 11 Августа 2009

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

    • это так же говорит о полной уверенности что все зашибись и как мало для счастья нужно
      Ответить
      • правда content-type очень подозрителен, не каждый браузер разберет
        Ответить
    • а меня префикс перла убил
      #!/etc/Tivoli/bin/perl
      Ответить
    • Явная подпорка, коих в любом долгоживущем проекте миллион. Из явных ляпов только "Contents-type:" (должно быть "Content-type:").

      И что такого смешного в строке "HTTP/1.0 200 OK"? Авторы не захотели использовать HTTP/1.1? Имеют полное право.
      Что теперь, каждый раз, когда используется не самая распоследняя версия протокола, надо падать под стол и биться в конвульсиях, истерически хохоча?
      Ответить
      • Ты явно не понял. HTTP/1.0 Это ответ сервера а не скрипта.
        Ответить
        • и это не дела скрипта отвечать на эти запросы.
          Ответить
          • На эти - это на какие?
            Если у пацанов был древний сервер без поддержки content negotiation, то отдать страницу в зависимости от языка, установленного в браузере, ты сможешь только скриптом и ничем другим. Реализация, конечно, стрёмненькая, но повода рыдать под столом я не вижу.
            Ответить
        • А это уже зависит от сервера. В апаче, например, nph-скрипт должен формировать все хедеры сам. Да и для обычных скриптов правила довольно простые: если скрипт выдал какие-то хедеры кроме Content-Type, сервер обязан их выдать в поток as-is. Если у авторов все работало (а у них явно все работало), значит, HTTP/1.0 200 Ok - не ошибка, а максимум недосмотр, не мешающий работе.
          Ответить
          • То-есть клиент делая запрос получает 2 ответа. Один от сервера второй от скрипта.
            И они разные первый 1.1 второй 1.0
            Ответить
            • Мде? Ты в этом уверен или это твои логические рассуждения?
              Торчащие в самом начале страницы две строчки как бы весьма заметны. Даже в больших корпорациях такия явные ляпы стараются не пропускать в продакшен - на то там есть штат тестеров. :)
              Ответить

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