79 lines
3.9 KiB
Plaintext
79 lines
3.9 KiB
Plaintext
модуль сраб
|
||
|
||
импорт "стд::вывод"
|
||
импорт "стд::комстрока"
|
||
импорт "исх/спринтф"
|
||
импорт "исх/струя"
|
||
импорт "исх/сеть/тцп"
|
||
импорт "исх/сеть/хттп"
|
||
импорт "исх/маршруты"
|
||
импорт "исх/сборщик-мусора"
|
||
импорт "исх/миграции"
|
||
импорт "исх/картотека"
|
||
импорт "исх/вперед-назад"
|
||
импорт "исх/стд-вперед-назад"
|
||
импорт "исх/отдых"
|
||
|
||
пусть маршрутизатор = маршруты.получить маршрутизатор()
|
||
|
||
фн обработать тцп подключение(соединение полиморф: *) {
|
||
пусть соединение = соединение полиморф(:тцп.ТцпСоединение)
|
||
пусть обращение = хттп.разобрать хттп обращение(соединение)
|
||
пусть ответ = маршрутизатор.обработать обращение(обращение)
|
||
|
||
// вывод.ф("$стр $стр -> $цел\n", обращение.метод, обращение.путь, ответ.код)
|
||
|
||
хттп.отправить хттп ответ(соединение, ответ)
|
||
соединение.закрыть()
|
||
}
|
||
|
||
фн обработать стдвнутрь подключение() {
|
||
пусть обращение = хттп.разобрать хттп обращение(стд-вперед-назад.СтдВнутрь{})
|
||
|
||
// вывод.ф("$стр $стр\n", обращение.метод, обращение.путь)
|
||
|
||
пусть ответ = маршрутизатор.обработать обращение(обращение)
|
||
пусть данные = хттп.сериализовать хттп ответ(ответ)
|
||
|
||
стд-вперед-назад.ошибка(данные)
|
||
}
|
||
|
||
вход {
|
||
комстрока.логическая настройка("подшефный", ложь, "")
|
||
комстрока.логическая настройка("роанапур", ложь, "")
|
||
комстрока.разобрать()
|
||
|
||
пусть подшефный = комстрока.логическое значение("подшефный")
|
||
пусть роанапур = комстрока.логическое значение("роанапур")
|
||
|
||
если подшефный {
|
||
обработать стдвнутрь подключение()
|
||
} иначе если роанапур {
|
||
миграции.мигрировать(картотека.зайти())
|
||
} иначе {
|
||
миграции.мигрировать(картотека.зайти())
|
||
|
||
пусть номер причала = 1337
|
||
|
||
вывод.ф("Готовим сервер у причала $цел\n", номер причала)
|
||
|
||
пусть сервер = тцп.создать сервер(номер причала)
|
||
пусть обработано запросов := 0
|
||
|
||
пока истина {
|
||
пусть подключение = сервер.принять чертово соединение()
|
||
пусть новая струя = струя.новая струя(обработать тцп подключение, подключение)
|
||
струя.отсоединить струю(новая струя)
|
||
|
||
обработано запросов++
|
||
|
||
если обработано запросов > 100000 {
|
||
вывод.ф("Вы используете пробную версию программы. Пожалуйста, приобретите полную версию для продолжения использования.\n")
|
||
прервать
|
||
}
|
||
}
|
||
|
||
вывод.ф("Котенок умер\n")
|
||
}
|
||
}
|