int client_socket (char * host, char * port) { int status; int lsock = tcpsocket(); if (lsock<0) { logging(LOG_ERROR, "can't create socket !!!"); return -1; } if (tcpnonblock(lsock)<0) { logging(LOG_ERROR, "set nonblock, error: %m"); tcpclose(lsock); return -1; } status = tcpstrconnect(lsock, host, port); if (status<0) { logging(LOG_WARN, "connect failed, error: %m"); tcpclose(lsock); return -1; } if (status==0) { // connected immediately logging(LOG_INFO,"connected immediately"); tcpnodelay(lsock); } else { logging(LOG_INFO,"connecting to %s:%s...", host, port); } return lsock; }
void* ppfs_fsinit( struct fuse_conn_info* conn ) { //connect to MDS fprintf(stderr, "ppfs_fsinit\n"); if((fd = tcpsocket())<0) { fprintf(stderr, "can't create socket\n"); exit(1); } else { fprintf(stderr, "fd:%d\n", fd); } tcpnodelay(fd); if(tcpstrconnect(fd, ip, MDS_PORT_STR)<0) { fprintf(stderr, "can't connect to MDS (%s:%s)\n", ip, port); fd = -1; exit(1); } fprintf(stderr, "ppfs_init create socket: %u\n", fd); local_mds.sockfd = fd; tcpgetpeer(fd,&(local_mds.peerip),NULL); remote_mds.sockfd = -1; remote_mds.peerip = -1; }