-
Notifications
You must be signed in to change notification settings - Fork 44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Fix telegram plugin build without mongo #128
base: master
Are you sure you want to change the base?
Conversation
@@ -16,6 +16,16 @@ | |||
|
|||
#include "mongo_conn.h" | |||
|
|||
#if HAVE_LIBMONGOC - 0 > 0 || HAVE_LIBMONGO_CLIENT - 0 == 1 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Без mongo достаточно определить функцию mongo_conn_create
, остальное не нужно
@@ -170,7 +190,7 @@ mongo_conn_free(struct mongo_conn *conn) | |||
} | |||
return NULL; | |||
#else | |||
return NULL; | |||
#error mongo packages are missing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Из-за #if
а в начале файла этот #else
никогда не выполнится. Поставил #error
, чтобы при возможном рефакторинге в будущем случайно не включить компиляцию ненужных функций.
telegram_pbs_fetch(struct mongo_conn *conn, const unsigned char *bot_id); | ||
int | ||
telegram_pbs_save(struct mongo_conn *conn, const struct telegram_pbs *pbs); | ||
#define TELEGRAM_BOTS_TABLE_NAME "telegram_bots" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Дальше перенесённый код из telegram_*.c
@@ -342,6 +344,10 @@ prepare_func( | |||
err("telegram: invalid storage '%s'", storage); | |||
return -1; | |||
} | |||
if (!conn) { | |||
err("telegram: storage '%s' is not supported", storage); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Для <storage>mongo</storage>
, если ejudge скомпилирован без mongo
Проверил сборку на ubuntu 22.04 с установленным пакетом Запустил с таким конфигом: ...
<plugins>
<plugin type="common" name="mongo" load="yes">
<config>
</config>
</plugin>
...
<plugin type="sn" name="telegram" load="yes">
<config>
<bots>
<bot>...</bot>
</bots>
</config>
</plugin>
</plugins>
... В сборке без mongo ej-jobs выдаёт ошибку при загрузке плагина:
В сборке с mongo такой конфиг работает. Получилось подписать пользователя на уведомления о ревью и отправить сообщение с реджектом посылки. |
Огромный MR с кучей удаляемого кода. |
Исправления отдельно, удаления отдельно. |
Перенёс исправления в #129 |
0462261
to
a5e4726
Compare
a5e4726
to
69ddc50
Compare
@blackav что нужно сделать, чтобы это помержить? |
Вроде как фикс компиляции без монги переехал в #129 и давно вмержен. А этот патч удаляет очень много кода и трогает много файлов просто чтобы выпилить код монги. |
В #129 я перенёс фиксы недостающих зависимостей и логических багов (не помню, почему я изначально хотел добавить всё в одном PR). Наверное, можно было просто добавить дополнительных макросов во все |
|
No description provided.