コード例 #1
0
ファイル: proxy_instance.cpp プロジェクト: 798221028/mcproxy
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;
}
コード例 #2
0
void RCE_Sender::cb(rce::ClientPtr client)
{
    init_producer();
    init_encoder();
    init_sender();

    mainloop();
}
コード例 #3
0
ファイル: csismp_main.cpp プロジェクト: FangChai/PMSISC
int main()
{
    init_sender();
    init_processor();
    start_collector();

    return EXIT_SUCCESS;
}
コード例 #4
0
ファイル: responser.c プロジェクト: lazyplus/641proj3
// 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;
}
コード例 #5
0
ファイル: main.cpp プロジェクト: rajashek/tresla-lab9
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;
}
コード例 #6
0
ファイル: main.c プロジェクト: rossburton/acrn-hypervisor
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;
}