Buda ufak bir calışma işine yarayan derlesin
Kod: Kodu kopyalamak için üzerine çift tıklayın!
/*
* m_salesreklam.c
* UnrealIRCd 3.2.x modülü
*
* Her 60 dakika 12 saniyede bir #sales-yönetim kanalına ".reklam" mesajı gönderir.
*
* Derleme:
* 1. Bu dosyayı UnrealIRCd source klasöründe 'src/modules/m_salesreklam.c' olarak kaydet.
* 2. make custommodule
* 3. modül dosyası (m_salesreklam.so) 'modules/' klasörüne düşer.
* 4. unrealircd.conf içine ekle:
* loadmodule "src/modules/m_salesreklam.so";
*/
#include "unrealircd.h"
/* Modul bilgisi */
ModuleHeader MOD_HEADER(m_salesreklam)
= {
"m_salesreklam", /* modül adı */
"1.0", /* sürüm */
"Her 60 dakika 12 saniyede bir .reklam mesajı yollar", /* açıklama */
"kaanyavuz", /* yazar */
"unrealircd-3.2" /* hedef sürüm */
};
/* Zamanlayıcı için tanım */
#define SALES_INTERVAL 3612 /* saniye: 60dk + 12sn */
#define SALES_CHANNEL "#sales-yönetim"
#define SALES_MESSAGE ".reklam"
static int SalesReklamTimer(void *v);
static void StartSalesTimer(void);
/* Modül başlatıldığında çağrılır */
MOD_INIT(m_salesreklam)
{
StartSalesTimer();
return MOD_SUCCESS;
}
/* Modül kaldırıldığında */
MOD_UNLOAD(m_salesreklam)
{
return MOD_SUCCESS;
}
/* Zamanlayıcıyı başlat */
static void StartSalesTimer(void)
{
/* ilk başlatma */
addTimer(NULL, SalesReklamTimer, NULL, TStime() + SALES_INTERVAL, 0);
}
/* Asıl işlem: mesaj gönder */
static int SalesReklamTimer(void *v)
{
aChannel *ch;
/* Kanalı bul */
ch = find_channel(SALES_CHANNEL, NULL);
if (ch)
{
sendto_channel_butserv(ch, &me, ":%s PRIVMSG %s :%s",
me.name, SALES_CHANNEL, SALES_MESSAGE);
}
/* Tekrarlansın */
addTimer(NULL, SalesReklamTimer, NULL, TStime() + SALES_INTERVAL, 0);
return 0;
}