std::string NetworkSocket::debugString() const { if(!isOpen()) return "Closed"; std::string ret = TypeStr(m_type) + "/" + StateStr(m_state); { std::string localStr = "INVALIDLOCAL"; NetworkAddr addr; if(nlGetLocalAddr(m_socket->sock, getNLaddr(addr)) != NL_FALSE) NetAddrToString(addr, localStr); else { localStr = "ERRORLOCALADDR(" + GetLastErrorStr() + ")"; ResetSocketError(); } ret += " " + localStr; } if(m_state == NSS_CONNECTED) { ret += " connected to "; std::string remoteStr = "INVALIDREMOTE"; NetworkAddr addr; if(nlGetRemoteAddr(m_socket->sock, getNLaddr(addr)) != NL_FALSE) NetAddrToString(remoteAddress(), remoteStr); else { remoteStr = "ERRORREMOTEADDR(" + GetLastErrorStr() + ")"; ResetSocketError(); } ret += remoteStr; } return ret; }
bool NetworkSocket::setRemoteAddress(const NetworkAddr& addr) { if(!isOpen()) { errors << "NetworkSocket::setRemoteAddress: socket is closed" << endl; return false; } if(getNLaddr(addr) == NULL) { errors << "NetworkSocket::setRemoteAddress " << debugString() << ": given address is invalid" << endl; return false; } if( GetNetAddrPort(addr) == 0 ) { errors << "NetworkSocket::setRemoteAddress " << debugString() << ": port is set to 0" << endl; } if(nlSetRemoteAddr(m_socket->sock, getNLaddr(addr)) == NL_FALSE) { std::string addrStr = "INVALIDADDR"; NetAddrToString(addr, addrStr); errors << "NetworkSocket::setRemoteAddress " << debugString() << ": failed to set destination " << addrStr << ": " << GetLastErrorStr() << endl; ResetSocketError(); return false; } return true; }
NS_IMETHODIMP HttpBaseChannel::GetRemoteAddress(nsACString& addr) { if (mPeerAddr.raw.family == PR_AF_UNSPEC) return NS_ERROR_NOT_AVAILABLE; addr.SetCapacity(kIPv6CStrBufSize); NetAddrToString(&mPeerAddr, addr.BeginWriting(), kIPv6CStrBufSize); addr.SetLength(strlen(addr.BeginReading())); return NS_OK; }
static bool PACResolveToString(const nsCString &aHostName, nsCString &aDottedDecimal, unsigned int aTimeout) { NetAddr netAddr; if (!PACResolve(aHostName, &netAddr, aTimeout)) return false; char dottedDecimal[128]; if (!NetAddrToString(&netAddr, dottedDecimal, sizeof(dottedDecimal))) return false; aDottedDecimal.Assign(dottedDecimal); return true; }
static int CopyUserData(USERDATAOPT *pUserData, SysAddress *Akas, CONFIG *pConfig) { int i=0, j=0; while (i < MAX_AKAS && j < MAX_ADDRESSES) { if (Akas[i].main.zone || Akas[i].main.net || Akas[i].main.node || Akas[i].main.point) { NetAddrToString(pUserData->address[j], (PFTNADDRESS) &Akas[i].main); j++; } i++; } strncpy(pUserData->defaultorigin, pConfig->OriginLine[0], LEN_ORIGIN); return 0; }
/////////////////////// // Connecting process, returns true if finished bool IRCClient::processConnecting() { // If connected, just quit if (m_authorizedState != AUTH_NONE) return true; // Check for DNS resolution if (!IsNetAddrValid(m_chatServerAddr)) return false; // Convert the address to string std::string addrStr; NetAddrToString(m_chatServerAddr, addrStr); // Add IRC port SetNetAddrPort(m_chatServerAddr, IRC_PORT ); // Connect if (!m_socketConnected) { if (!m_chatSocket.Connect(m_chatServerAddr)) { errors("IRC error: could not connect to the server " + addrStr); disconnect(); return true; } // Connected m_socketConnected = true; m_socketIsReady = false; m_netBuffer.clear(); m_authorizedState = AUTH_NONE; } // Check for socket readiness if (!m_chatSocket.isReady()) return false; else m_socketIsReady = true; return true; }
static int ReadAreas(FILE *pfConfig, PAREALIST pRetList) { int i; Area FEArea; AREADEFOPT AreaDef; SysAddress *pAddr; /* Netmail-Area gesondert behandeln */ AddNMArea(Config.NetMPath, pRetList, Config.sysops[0].name, (PFTNADDRESS) &Akas[0].main); /* Extensions ueberspringen */ fseek(pfConfig, sizeof(Config)+Config.offset, SEEK_SET); /* Nodes ueberspringen */ if (Config.NodeCnt) fseek(pfConfig, Config.NodeCnt*sizeof(Node), SEEK_CUR); /* Areas einlesen */ for (i=0; i<Config.AreaCnt; i++) { if (1==fread(&FEArea, sizeof(FEArea), 1, pfConfig)) { #ifdef DEBUG printf("INF: Area %s\n", FEArea.name); printf(" Type "); #endif switch(FEArea.type) { case AREA_ECHOMAIL: #ifdef DEBUG printf("Echo\n"); #endif break; case AREA_NETMAIL: #ifdef DEBUG printf("Net\n"); #endif break; case AREA_LOCAL: #ifdef DEBUG printf("Local\n"); #endif break; case AREA_BADMAILBOARD: #ifdef DEBUG printf("Bad\n"); #endif break; case AREA_DUPEBOARD: #ifdef DEBUG printf("Dupe\n"); #endif break; default: #ifdef DEBUG printf("Unknown\n"); #endif continue; } #ifdef DEBUG printf(" Format "); #endif switch(FEArea.flags.type) { case QBBS: #ifdef DEBUG printf("Hudson\n"); #endif continue; case FIDO: #ifdef DEBUG printf("*.MSG\n"); #endif break; case SQUISH: #ifdef DEBUG printf("Squish\n"); #endif break; case JAM: #ifdef DEBUG printf("JAM\n"); #endif break; case PT_BOARD: #ifdef DEBUG printf("PT\n"); #endif continue; default: #ifdef DEBUG printf("Unknown\n"); #endif continue; } #ifdef DEBUG printf(" Aka #%d\n", FEArea.flags.aka); printf(" Path %s\n", FEArea.path); printf(" Desc %s\n", FEArea.desc); #endif } else { #ifdef DEBUG printf("ERROR: Read error Area (%d)\n", errno); #endif return CFGFILE_READ; } /* Hier kommen wir nur hin, wenn wir eine gueltige Area gefunden haben */ memset(&AreaDef, 0, sizeof(AreaDef)); strncpy(AreaDef.areatag, FEArea.name, LEN_AREATAG); if (FEArea.desc[0]) strncpy(AreaDef.areadesc, FEArea.desc, LEN_AREADESC); else strncpy(AreaDef.areadesc, FEArea.name, LEN_AREADESC); CopyAreaPath(AreaDef.pathfile, FEArea.path); strcpy(AreaDef.username, Config.sysops[0].name); pAddr = &Akas[FEArea.flags.aka]; NetAddrToString(AreaDef.address, (PFTNADDRESS) &pAddr->main); switch(FEArea.flags.type) { case FIDO: AreaDef.areaformat = AREAFORMAT_FTS; break; case SQUISH: AreaDef.areaformat = AREAFORMAT_SQUISH; break; case JAM: AreaDef.areaformat = AREAFORMAT_JAM; break; default: /* oben schon abgefangen */ break; } switch(FEArea.type) { case AREA_ECHOMAIL: AreaDef.areatype = AREATYPE_ECHO; break; case AREA_NETMAIL: case AREA_DUPEBOARD: case AREA_BADMAILBOARD: AreaDef.areatype = AREATYPE_NET; AreaDef.ulDefAttrib = ATTRIB_PRIVATE; break; case AREA_LOCAL: AreaDef.areatype = AREATYPE_LOCAL; break; default: /* oben schon abgefangen */ break; } AreaDef.ulAreaOpt = AREAOPT_FROMCFG; /* Area eintragen */ AM_AddArea(pRetList, &AreaDef, ADDAREA_TAIL | ADDAREA_UNIQUE); } return CFGFILE_OK; }
std::string NetAddrToString(const NetworkAddr& addr) { std::string ret; NetAddrToString(addr, ret); return ret; };