bool proxy_instance::init(int addr_family, int version, int upstream_index, int upstream_vif, int downstream_index, int downstram_vif, bool single_instance){ HC_LOG_TRACE(""); m_is_single_instance = single_instance; m_addr_family = addr_family; m_version = version; m_upstream = upstream_index; m_table_number = upstream_index; m_vif_map.insert(vif_pair(upstream_index,upstream_vif)); m_state_table.insert(state_tabel_pair(downstream_index, g_state_map())); m_vif_map.insert(vif_pair(downstream_index, downstram_vif)); if(!init_mrt_socket()) return false; m_check_source.init(m_addr_family, &m_mrt_sock); if(!init_receiver()) return false; if(!init_sender()) return false; m_routing.init(m_addr_family,m_version, &m_mrt_sock, m_is_single_instance, m_table_number); m_timing = timing::getInstance(); return true; }
void RCE_Sender::cb(rce::ClientPtr client) { init_producer(); init_encoder(); init_sender(); mainloop(); }
int main() { init_sender(); init_processor(); start_collector(); return EXIT_SUCCESS; }
// find an idle sender to use int find_sender(){ int i=0; for(; i<BT_MAX_UPLOAD; ++i){ if(senders[i].is_idle){ init_sender(&senders[i], ++ conn_cnt); return i; } } return -1; }
int main(int argc, const char * argv[]) { FILE *file; long file_size = -1; char *file_path, *file_name; struct stat file_stat; unsigned char required_acks = FSCP_DEFAULT_NUMBER_OF_ACKS; uchar_t *packet; uint16_t recvfrom_addr; struct layer2 *l2; struct layer3 *l3; struct layer4_udp *l4; int i; char *dup, *token; uint8_t port; struct interface output_interface; size_t bandwidth = ~0; if (argc <= 1) { print_usage(); exit(1); } // Increase the priority of the process (max priority is -20, min is 19) if (setpriority(PRIO_PROCESS, 0, -15) < 0) { fprintf(stderr, "** It is recommend to run as a superuser! **\n"); } // Initializing packet and its header packet = (uchar_t *) malloc(MTU); memset(packet, 0, MTU); l2 = (struct layer2 *) packet; l3 = (struct layer3 *) (packet + sizeof(struct layer2)); l4 = (struct layer4_udp *) (packet + sizeof(struct layer2) + sizeof(struct layer3)); l3->type = TYPE_UDP; if (strcmp("-r", argv[1]) == 0) { //Begin receiving the file if (argc >= 11) { if (strcmp("-src", argv[2]) == 0) { l2->original_source_addr = htons((uint16_t) atoi(argv[3])); } else { print_usage(); exit(1); } if (strcmp("-from", argv[4]) == 0) { recvfrom_addr = (uint16_t) atoi(argv[5]); } else { print_usage(); exit(1); } if (strcmp("-path", argv[6]) == 0) { i = 0; dup = strdup(argv[7]); while ((token = strtok(dup, ",")) != NULL) { l3->source_routing[i] = atoi(token); i++; dup = NULL; if (i > MAX_HOPS-1) break; } free(dup); } else { print_usage(); exit(1); } if (strcmp("-port", argv[8]) == 0) { port = (uint8_t) atoi(argv[9]); l4->sport = port; l4->dport = port; l4->len = htons(FSCP_UDP_ID_BYTES); } else { print_usage(); exit(1); } if (strcmp("-dev", argv[10]) == 0) { strcpy(output_interface.interface_name, argv[11]); fill_interface_info(&output_interface); } else { print_usage(); exit(1); } if ((argc >= 13) && (strcmp("-f", argv[12]) == 0)) { if (argc >= 14) { file_name = (char *) malloc(sizeof(char) * (strlen(argv[13]) + 1)); strcpy(file_name, argv[13]); } else { print_usage(); exit(1); } } else { file_name = strdup(""); } init_receiver(packet, recvfrom_addr, port, &output_interface, file_name); } else { print_usage(); exit(1); } } else if (strcmp("-s", argv[1]) == 0) { if (argc >= 14) { if (strcmp("-src", argv[2]) == 0) { l2->original_source_addr = htons((uint16_t) atoi(argv[3])); } else { print_usage(); exit(1); } if (strcmp("-dest", argv[4]) == 0) { recvfrom_addr = (uint16_t) atoi(argv[5]); } else { print_usage(); exit(1); } if (strcmp("-path", argv[6]) == 0) { i = 0; dup = strdup(argv[7]); while ((token = strtok(dup, ",")) != NULL) { l3->source_routing[i] = atoi(token); i++; dup = NULL; if (i > MAX_HOPS-1) break; } free(dup); } else { print_usage(); exit(1); } if (strcmp("-port", argv[8]) == 0) { port = (uint8_t) atoi(argv[9]); l4->sport = port; l4->dport = port; } else { print_usage(); exit(1); } if (strcmp("-dev", argv[10]) == 0) { strcpy(output_interface.interface_name, argv[11]); fill_interface_info(&output_interface); } else { print_usage(); exit(1); } if (strcmp("-f", argv[12]) == 0) { file = fopen(argv[13], "r"); if(!file) { fprintf(stderr, "Error: cannot read the file %s\n", argv[13]); exit(1); } stat(argv[13], &file_stat); file_size = file_stat.st_size; file_path = strdup(argv[13]); file_name = strdup(basename(file_path)); } else { print_usage(); exit(1); } if (argc >= 15) { if ((strcmp("-ack", argv[14]) == 0) && (argc >= 16)) { required_acks = atoi(argv[15]); if (required_acks == 0) { required_acks = FSCP_DEFAULT_NUMBER_OF_ACKS; } } #ifdef _THROTTLING_ENABLED else if ((strcmp("-bw", argv[14]) == 0) && (argc >= 16)) { bandwidth = atoi(argv[15]); bandwidth *= 125 * 1000; } #endif else { print_usage(); exit(1); } } #ifdef _THROTTLING_ENABLED if (argc >= 17) { if ((strcmp("-bw", argv[16]) == 0) && (argc >= 18)) { bandwidth = atoi(argv[17]); bandwidth *= 125 * 1000; } else { print_usage(); exit(1); } } #endif init_sender(packet, recvfrom_addr, port, port, &output_interface, file, file_size, file_name, required_acks, bandwidth); } else { print_usage(); exit(1); } } else { print_usage(); exit(1); } return 0; }
int main(int argc, char *argv[]) { int ret; int id; int op; struct sender_t *sender; char cfg[PATH_MAX]; const char * const config_path[2] = { CONFIG_CUSTOMIZE, CONFIG_INSTALL }; const struct option opts[] = { { "config", required_argument, NULL, 'c' }, { "help", no_argument, NULL, 'h' }, { "version", no_argument, NULL, 'V' }, { NULL, 0, NULL, 0 } }; cfg[0] = 0; while ((op = getopt_long(argc, argv, "c:hV", opts, NULL)) != -1) { switch (op) { case 'c': strncpy(cfg, optarg, PATH_MAX); break; case 'h': usage(); return 0; case 'V': printf("version is %d.%d-%s, build by %s@%s\n", AP_MAJOR_VERSION, AP_MINOR_VERSION, AP_BUILD_VERSION, AP_BUILD_USER, AP_BUILD_TIME); return 0; case '?': usage(); return -1; } } if (!cfg[0]) { if (file_exists(config_path[0])) strncpy(cfg, config_path[0], PATH_MAX); else strncpy(cfg, config_path[1], PATH_MAX); } cfg[PATH_MAX - 1] = 0; ret = load_conf(cfg); if (ret) return -1; init_crash_reclassify(); ret = init_sender(); if (ret) return -1; init_event_queue(); ret = init_event_handler(); if (ret) return -1; ret = init_channels(); if (ret) return -1; while (1) { for_each_sender(id, sender, conf) { if (!sender) continue; uptime(sender); } } return 0; }