GithubHelp home page GithubHelp logo

rpcbind's People

Contributors

kburaya avatar ksburaya avatar dendvz avatar

Watchers

 avatar Anton avatar  avatar  avatar

Forkers

dendvz linbing

rpcbind's Issues

Замечания по rpcbind/RPC_serv_clnt_source

На stackoverflow обнаружена подсказка, как можно устроить подобие code review без pull request:

"Unfortunately it is not possible to comment on a line in Github without a commit. But you can create links to lines in your file (click on line and copy link on browser bar). For example you can use this links in your issues to discuss about code line"

Попробуем устроить разбор полётов по RPC_serv_clnt_source

  • Потрудиться написать README
  • Правильно ли я понял, что в репозиторий свалены и исходники для rpcgen (msg.x), и сгенерированные msg.h, msg_clnt.c, msg_svc.c? Если так, то все сгенерированное нужно удалить, а вызов rpcgen закатать в Makefile. Если же есть препятствия к этому, подробно расписать их в README.

Кстати, обнаружилось, что сгенерированные файлы слегка подправлены. Тогда тем более эти правки должны быть diff'ом собраны в .patch файл, и наложены отдельной целью в Makefile.

  • Полный разнобой в комментариях (одна и та же сущность называется по-разному в разных файлах), оформлении лога, стиле кодирования. Пожелание использовать indent авторами проигнорировано.

По оформлению лога:

  1. вместо явного вызова printf() написать макрос, а лучше два - ERROR() и TRACE(), первый будет выводить в stderr, второй - в stdout.
  2. Убрать звёздочки справа от сообщения. Унаследовано от М.В.Толстого, выглядит прикольно, но катастрофически контрпродуктивно - мешает при чтении логов.

Это некрасиво, лучше "рецепт" написать на новой строке, а не колхозить в одну строку через точку с запятой. Да и вообще есть очучение, что данный рецепт уже встроен в make, поэтому правильнее было бы вместо этого написать:
CC = gcc
LD = gcc

и в строках 15 и 18 вызывать $(LD).

Обычно такую цель называют all, команда 'make clean all' у программистов прошита в подкорку.

Включение msg.h в эту цель неверно, т.к. его изменение вызовет только перелинковку, а не перекомпиляцию всех *.o

-- ДД

namespace creation + rpcbind startup into standalone script

Было бы полезно написать отдельный скрипт для создания / запуска / удаления всех сущностей, которые будут помещаться в namespace. Голый bash - наиболее портабелен, но можно взять и python. В современных дистрибутивах Linux он наверняка включен по умолчанию, т.к. на python написано немало системных утилит.
Для начала достаточно всего двух функций: start и stop
nsconfig.sh start <ns_name>
nsconfig.sh stop <ns_name>

Действия по команде start:

  • проверить, существует ли network namespace <ns_name>?
  • если не существует, создать
  • если создать невозможно, вывалиться с внятным объяснением (предположить отсутствие соответствующих прав). Ещё более продвинутый вариант - перезапустить себя же с префиксом sudo.
  • в случае успеха в указанном namespace создать необходимые элементы сетевой конфигурации (т.е. пока взять по одной из всех парных строк network-config.sh). Подумать о параметризации имён создаваемых veth'ов. Далее все равно появится чтение / разбор некоего конфигурационного файла, отсюда и рекомендация переползания на python.
  • там же запустить rpcbind и сервер.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.