Skip to content

Commit

Permalink
various fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
roberto@dj2 committed Mar 28, 2011
1 parent a0c2c90 commit fbaa30c
Show file tree
Hide file tree
Showing 6 changed files with 26 additions and 16 deletions.
2 changes: 2 additions & 0 deletions emperor.c
Expand Up @@ -197,6 +197,8 @@ void emperor_loop() {
int i;
struct dirent *de;

signal(SIGPIPE, SIG_IGN);

memset(&ui_base, 0, sizeof(struct uwsgi_instance));

uwsgi_log("*** starting uWSGI Emperor ***\n");
Expand Down
32 changes: 19 additions & 13 deletions lib/netlink.c
Expand Up @@ -91,7 +91,7 @@ struct nlmsghdr *uwsgi_netlink_rt_alloc() {
return nlmsg;
}

int uwsgi_netlink_rt(char *iface, char *src, int src_prefix, char *dst, int dst_prefix, char *gw) {
int uwsgi_netlink_rt(char *src, char *dst, int dst_prefix, char *gw) {

struct nlmsghdr *nlmsg = uwsgi_netlink_rt_alloc();
struct rtattr *rta;
Expand All @@ -100,9 +100,6 @@ int uwsgi_netlink_rt(char *iface, char *src, int src_prefix, char *dst, int dst_
struct in_addr ga;
struct uwsgi_nl_rtreq *unr = (struct uwsgi_nl_rtreq *)nlmsg;

int index = if_nametoindex(iface);
if (!index) return -1;

if (inet_pton(AF_INET, src, &ia) <= 0) {
uwsgi_error("inet_pton()");
free(nlmsg);
Expand All @@ -121,11 +118,8 @@ int uwsgi_netlink_rt(char *iface, char *src, int src_prefix, char *dst, int dst_
return -1;
}

unr->rtmsg.rtm_src_len = src_prefix;
unr->rtmsg.rtm_dst_len = dst_prefix;

rta = NLMSG_TAIL(nlmsg);
rta->rta_type = RTA_SRC;
rta->rta_type = RTA_PREFSRC;
rta->rta_len = RTA_LENGTH(4);
memcpy(RTA_DATA(rta), &ia.s_addr, 4);
nlmsg->nlmsg_len = NLMSG_ALIGN(nlmsg->nlmsg_len) + RTA_ALIGN(rta->rta_len);
Expand All @@ -142,11 +136,8 @@ int uwsgi_netlink_rt(char *iface, char *src, int src_prefix, char *dst, int dst_
memcpy(RTA_DATA(rta), &ga.s_addr, 4);
nlmsg->nlmsg_len = NLMSG_ALIGN(nlmsg->nlmsg_len) + RTA_ALIGN(rta->rta_len);

rta = NLMSG_TAIL(nlmsg);
rta->rta_type = RTA_OIF;
rta->rta_len = RTA_LENGTH(sizeof(int));
memcpy(RTA_DATA(rta), &index, sizeof(int));
nlmsg->nlmsg_len = NLMSG_ALIGN(nlmsg->nlmsg_len) + RTA_ALIGN(rta->rta_len);
unr->rtmsg.rtm_src_len = 0;
unr->rtmsg.rtm_dst_len = dst_prefix;

return uwsgi_nl_send(nlmsg);
}
Expand Down Expand Up @@ -260,6 +251,21 @@ int uwsgi_netlink_ifup(char *iface) {

}

int uwsgi_netlink_del(char *iface) {

struct nlmsghdr *nlmsg = uwsgi_netlink_alloc();
struct uwsgi_nl_req *unr = (struct uwsgi_nl_req *)nlmsg;

int index = if_nametoindex(iface);
if (!index) return -1;

nlmsg->nlmsg_type = RTM_DELLINK;
unr->ifinfomsg.ifi_index = index;
return uwsgi_nl_send(nlmsg);

}



int uwsgi_netlink_veth(char *veth0, char *veth1) {

Expand Down
2 changes: 1 addition & 1 deletion master.c
Expand Up @@ -951,7 +951,7 @@ void master_loop(char **argv, char **environ) {
}

// resubscribe every 10 cycles
if (uwsgi.subscriptions_cnt > 0 && (master_cycles % 10) == 0) {
if (uwsgi.subscriptions_cnt > 0 && ((master_cycles % 10) == 0 || master_cycles == 1)) {
for(i=0;i<uwsgi.subscriptions_cnt;i++) {
uwsgi_subscribe(uwsgi.subscriptions[i]);
}
Expand Down
2 changes: 1 addition & 1 deletion plugins/fastrouter/fastrouter.c
Expand Up @@ -240,7 +240,7 @@ void fastrouter_loop() {
if (ufr.subscription_server) {
ufr_subserver = bind_to_udp(ufr.subscription_server, 0, 0);
event_queue_add_fd_read(fr_queue, ufr_subserver);
ufr.subscription_dict = uwsgi_dict_create(100, 0);
ufr.subscription_dict = uwsgi_dict_create(30, 0);
}

if (ufr.pattern) {
Expand Down
1 change: 1 addition & 0 deletions uwsgi.c
Expand Up @@ -784,6 +784,7 @@ int main(int argc, char *argv[], char *envp[])
#endif
magic_key = NULL;
has_percent = 0;
j = 0;
}
else {
has_percent++;
Expand Down
3 changes: 2 additions & 1 deletion uwsgi.h
Expand Up @@ -1700,6 +1700,7 @@ int uwsgi_netlink_veth_attach(char *, pid_t);
int uwsgi_netlink_ifup(char *);
int uwsgi_netlink_ip(char *, char *, int);
int uwsgi_netlink_gw(char *, char *);
int uwsgi_netlink_rt(char *, char *, int, char *, int, char *);
int uwsgi_netlink_rt(char *, char *, int, char *);
int uwsgi_netlink_del(char *);
#endif

0 comments on commit fbaa30c

Please sign in to comment.