00001
00002
00003 #include "../include/repository.h"
00004 #include "../include/command.h"
00005 #include "../include/utility.h"
00006 #include "../include/DFR.h"
00007 #include "../include/DFR_FS.h"
00008 #include "../include/DFR_CL.h"
00009 #include "../include/cond_comp.h"
00010 #include <cstdlib>
00011 #include <arpa/inet.h>
00012
00014
00015 repository_class repository;
00016
00017
00018
00019 int main(int argc, char* argv[]) {
00020 pthread_t FS_s, CL_s;
00021 string ip_FS_s, ip_CL_s;
00022 int port_FS_s, port_CL_s;
00023 int FS_sd, CL_sd, ret;
00024 if(argc != 5) {
00025 LOG(printf("DFR -> usage: DFR <IP for FSs> <IP for CSs> "));
00026 LOG(printf("<port for FSs> <port for CLs>\n"));
00027 exit(1);
00028 }
00029 ip_FS_s = argv[1];
00030 ip_CL_s = argv[2];
00031 port_FS_s = atoi(argv[3]);
00032 if(port_FS_s <= 0 || port_FS_s > 65535) {
00033 LOG(printf("DFR -> port for FSs not valid\n"));
00034 exit(1);
00035 }
00036 port_CL_s = atoi(argv[4]);
00037 if(port_CL_s <= 0 || port_CL_s > 65535) {
00038 LOG(printf("DFR -> port for CLs not valid\n"));
00039 exit(1);
00040 }
00041
00042 FS_sd = init_sd_serv(port_FS_s, ip_FS_s);
00043 if(FS_sd == -1) {
00044 LOG(printf("DFR -> FS socket initialization failed\n"));
00045 exit(1);
00046 }
00047 CL_sd = init_sd_serv(port_CL_s, ip_CL_s);
00048 if(CL_sd == -1) {
00049 LOG(printf("DFR -> CL socket initialization failed\n"));
00050 close(FS_sd);
00051 exit(1);
00052 }
00053
00054 ret = pthread_create(&FS_s, 0, FS_s_body, (void*)FS_sd);
00055 if(ret != 0) {
00056 LOG(printf("DFR -> could not create FS_s thread\n"));
00057 close(FS_sd);
00058 close(CL_sd);
00059 exit(1);
00060 }
00061 ret = pthread_create(&CL_s, 0, CL_s_body, (void*)CL_sd);
00062 if(ret != 0) {
00063 LOG(printf("DFR -> could not create CL_s thread\n"));
00064 close(FS_sd);
00065 close(CL_sd);
00066 exit(1);
00067 }
00068 pthread_join(FS_s, 0);
00069 pthread_join(CL_s, 0);
00070 close(FS_sd);
00071 close(CL_sd);
00072 return 0;
00073 }