#include <config.h>
#endif
-#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <sys/socket.h>
if (family == AF_INET) {
struct in_addr addr;
addr = *((struct in_addr *) RTA_DATA(attr));
- printf(" attr %s (len %d) %s\n",
+ DBG(" attr %s (len %jd) %s\n",
name, RTA_PAYLOAD(attr), inet_ntoa(addr));
} else
- printf(" attr %s (len %d)\n", name, RTA_PAYLOAD(attr));
+ DBG(" attr %s (len %jd)\n", name, RTA_PAYLOAD(attr));
}
static inline void print_char(struct rtattr *attr, const char *name)
{
- printf(" attr %s (len %d) %s\n", name, RTA_PAYLOAD(attr),
+ DBG(" attr %s (len %jd) %s\n", name, RTA_PAYLOAD(attr),
(char *) RTA_DATA(attr));
}
static inline void print_byte(struct rtattr *attr, const char *name)
{
- printf(" attr %s (len %d) 0x%02x\n", name, RTA_PAYLOAD(attr),
+ DBG(" attr %s (len %jd) 0x%02x\n", name, RTA_PAYLOAD(attr),
*((unsigned char *) RTA_DATA(attr)));
}
static inline void print_attr(struct rtattr *attr, const char *name)
{
if (name)
- printf(" attr %s (len %d)\n", name, RTA_PAYLOAD(attr));
+ DBG(" attr %s (len %jd)\n", name, RTA_PAYLOAD(attr));
else
- printf(" attr %d (len %d)\n",
+ DBG(" attr %d (len %jd)\n",
attr->rta_type, RTA_PAYLOAD(attr));
}
return;
if ((data->ifi_flags & IFF_RUNNING) != (msg->ifi_flags & IFF_RUNNING)) {
- if (msg->ifi_flags & IFF_RUNNING)
- connman_iface_indicate_carrier_on(iface);
- else
- connman_iface_indicate_carrier_off(iface);
+ if (!(iface->flags & CONNMAN_IFACE_FLAG_NOCARRIER)) {
+ if (msg->ifi_flags & IFF_RUNNING)
+ connman_iface_indicate_carrier_on(iface);
+ else
+ connman_iface_indicate_carrier_off(iface);
+ }
}
if ((data->ifi_flags & IFF_UP) != (msg->ifi_flags & IFF_UP)) {
if (msg->ifi_flags & IFF_UP)
- connman_iface_indicate_enabled(iface);
+ connman_iface_indicate_ifup(iface);
else
- connman_iface_indicate_disabled(iface);
+ connman_iface_indicate_ifdown(iface);
}
data->ifi_flags = msg->ifi_flags;
+ return;
+
for (attr = IFLA_RTA(msg); RTA_OK(attr, bytes);
attr = RTA_NEXT(attr, bytes)) {
switch (attr->rta_type) {
static void rtnl_message(void *buf, size_t len)
{
- DBG("buf %p len %d", buf, len);
+ DBG("buf %p len %zd", buf, len);
while (len > 0) {
struct nlmsghdr *hdr = buf;
struct sockaddr_nl addr;
int sk;
- DBG("buf %p len %d", buf, len);
+ DBG("buf %p len %zd", buf, len);
sk = g_io_channel_unix_get_fd(channel);
memset(&addr, 0, sizeof(addr));
addr.nl_family = AF_NETLINK;
- addr.nl_groups = RTMGRP_LINK | RTMGRP_IPV4_IFADDR;
+ addr.nl_groups = RTMGRP_LINK;
+ //addr.nl_groups = RTMGRP_LINK | RTMGRP_IPV4_IFADDR;
//addr.nl_groups = RTMGRP_LINK | RTMGRP_IPV4_IFADDR | RTMGRP_IPV4_ROUTE;
if (bind(sk, (struct sockaddr *) &addr, sizeof(addr)) < 0) {