/**
* Broadcast/Multicast receiver
*/
-static bool receive_casts(private_forecast_forwarder_t *this)
+CALLBACK(receive_casts, bool,
+ private_forecast_forwarder_t *this, int fd, watcher_event_t event)
{
struct __attribute__((packed)) {
struct iphdr hdr;
socklen_t alen = sizeof(addr);
bool reinject;
- len = recvfrom(this->kernel.pkt, &buf, sizeof(buf), MSG_DONTWAIT,
+ len = recvfrom(fd, &buf, sizeof(buf), MSG_DONTWAIT,
(struct sockaddr*)&addr, &alen);
if (len < 0)
{
&this->kernel.listener);
lib->watcher->add(lib->watcher, this->kernel.pkt, WATCHER_READ,
- (watcher_cb_t)receive_casts, this);
+ receive_casts, this);
return &this->public;
}