X-Git-Url: https://git.pterodactylus.net/?a=blobdiff_plain;f=src%2Ffreenet%2Ffcpv2.cpp;h=81d706c23b77bbe7126265f85cbf5aa4bb67ee80;hb=b9c3763a932cebaa015a27fe111017f6f34dfbaa;hp=42995f4c898603be68ebca71c9a863ce2f7fb155;hpb=d8f51eac91f86a1e00a05a5058a8fa9eb8732464;p=fms.git diff --git a/src/freenet/fcpv2.cpp b/src/freenet/fcpv2.cpp index 42995f4..81d706c 100644 --- a/src/freenet/fcpv2.cpp +++ b/src/freenet/fcpv2.cpp @@ -66,7 +66,7 @@ const bool FCPv2::Connect(const char *host, const int port) struct sockaddr_storage m_serveraddr; std::ostringstream portstring; - addrinfo hint,*result; + addrinfo hint,*result,*current; result=NULL; portstring << port; @@ -80,16 +80,19 @@ const bool FCPv2::Connect(const char *host, const int port) if(result) { - memset(&m_serveraddr,0,sizeof(struct sockaddr_storage)); + for(current=result; current!=NULL && m_serversocket==-1; current=current->ai_next) + { + memset(&m_serveraddr,0,sizeof(struct sockaddr_storage)); - m_serversocket=socket(result->ai_family,result->ai_socktype,result->ai_protocol); + m_serversocket=socket(current->ai_family,current->ai_socktype,current->ai_protocol); - if(m_serversocket!=-1) - { - rval=connect(m_serversocket,result->ai_addr,result->ai_addrlen); - if(rval==-1) + if(m_serversocket!=-1) { - Disconnect(); + rval=connect(m_serversocket,current->ai_addr,current->ai_addrlen); + if(rval==-1) + { + Disconnect(); + } } } @@ -124,7 +127,7 @@ const bool FCPv2::Disconnect() int FCPv2::FindOnReceiveBuffer(const char *text) { bool found; - int i,j; + std::vector::size_type i,j; size_t tlen=strlen(text); if(m_receivebuffer.size()>=tlen) @@ -289,9 +292,9 @@ const int FCPv2::SendMessage(const char *messagename, const int fieldcount, ...) va_list args; const char *field; const char *val; - int bytecount=0; + std::vector::size_type bytecount=0; int i; - int startlen; + std::vector::size_type startlen; startlen=m_sendbuffer.size(); @@ -322,8 +325,8 @@ const int FCPv2::SendMessage(const char *messagename, const int fieldcount, ...) const int FCPv2::SendMessage(FCPMessage &message) { - int bytecount=0; - int startlen; + std::vector::size_type bytecount=0; + std::vector::size_type startlen; FCPMessage::iterator i; startlen=m_sendbuffer.size();