--- wccp2-orig.c Mon Nov 5 18:06:51 2001 +++ wccp2.c Wed Dec 12 14:30:34 2001 @@ -557,6 +557,7 @@ fprintf(stderr, "Can't create wccp socket: %s\n", strerror(errno)); return(MOD_CODE_ERR); } + fcntl(wccp2_socket, F_SETFL, fcntl(wccp2_socket, F_GETFL, 0)|O_NONBLOCK); /* bind to port */ bzero(&wccp2_bind_sa, sizeof(wccp2_bind_sa)); @@ -918,9 +919,11 @@ HIA[2].iov_len = sizeof(send_service_info_component); send_message_header.Length += HIA[2].iov_len; } else { + my_xlog(OOPS_LOG_DBG, "wccp2.c:send_Here_I_Am(): group_id: %u\n", g->group_id); send_service_info_component.Service_Type = WCCP2_SERVICE_DYNAMIC; - send_service_info_component.Service_ID = htons(g->group_id); + send_service_info_component.Service_ID = g->group_id; send_service_info_component.Service_Flags |= htons(PortsDefined); + send_service_info_component.Protocol = 6; /* TCP */ send_service_info_component.Port[0] = htons(g->port[0]); send_service_info_component.Port[1] = htons(g->port[1]); send_service_info_component.Port[2] = htons(g->port[2]); @@ -1074,6 +1077,7 @@ send_service_info_component.Service_Type = WCCP2_SERVICE_DYNAMIC; send_service_info_component.Service_ID = g->group_id; send_service_info_component.Service_Flags |= htons(PortsDefined); + send_service_info_component.Protocol = 6; /* TCP */ send_service_info_component.Port[0] = htons(g->port[0]); send_service_info_component.Port[1] = htons(g->port[1]); send_service_info_component.Port[2] = htons(g->port[2]);