@Override public String getPeerDescription() { return uri.toString(); }
@Override public Statistic getStatistic(String name) { for (Peer p : peerTable.values()) { if (p.getUri().getFQDN().equals(name)) { return ((IPeer) p).getStatistic(); } } return null; }
result = (scheme != null ? scheme.hashCode() : 0); result = 31 * result + (host != null ? host.hashCode() : 0); result = 31 * result + getPort(); result = 31 * result + (path != null ? path.hashCode() : 0); return result;
/** * Constructor with string parameter * @param uri String representation of URI * @throws URISyntaxException which signals that URI has syntax error * @throws UnknownServiceException which signals that URI has incorrect scheme */ public URI(String uri) throws URISyntaxException, UnknownServiceException { parse(uri); if (getFQDN() == null || getFQDN().trim().length() == 0) { throw new URISyntaxException(uri, "Host not found"); } if (!getScheme().equals("aaa") && !getScheme().equals("aaas")) { throw new UnknownServiceException(new StringBuilder().append("Unsupported service: ").append(getScheme()).toString()); } }
@Override protected Peer createPeer(int rating, String uri, String ip, String portRange, MetaData metaData, Configuration globalConfig, Configuration peerConfig, org.jdiameter.client.api.fsm.IFsmFactory fsmFactory, org.jdiameter.client.api.io.ITransportLayerFactory transportFactory, IStatisticManager statisticFactory, IConcurrentFactory concurrentFactory, IMessageParser parser) throws InternalException, TransportException, URISyntaxException, UnknownServiceException { logger.debug("Creating Peer for URI [{}]", uri); if (predefinedPeerTable == null) { logger.debug("Creating new empty predefined peer table"); predefinedPeerTable = new CopyOnWriteArraySet<String>(); } logger.debug("Adding URI [{}] to predefinedPeerTable", uri); predefinedPeerTable.add(new URI(uri).getFQDN()); if (peerConfig.getBooleanValue(PeerAttemptConnection.ordinal(), false)) { logger.debug("Peer at URI [{}] is configured to attempt a connection (acting as a client) and a new peer instance will be created and returned", uri); return newPeerInstance(rating, new URI(uri), ip, portRange, true, null, metaData, globalConfig, peerConfig, (IFsmFactory) fsmFactory, (ITransportLayerFactory) transportFactory, parser, statisticFactory, concurrentFactory); } else { logger.debug("Peer at URI [{}] is configured to NOT attempt a connection (i.e. acting as a server) and null will be returned", uri); return null; } }
if (peerURI.getFQDN().equals(c.getStringValue(PeerName.ordinal(), ""))) { peerConfig = c; break; peerConfig = new EmptyConfiguration(false).add(PeerAttemptConnection, connecting); IPeer peer = (IPeer) createPeer(0, peerURI.toString(), null, null, metaData, config, peerConfig, fsmFactory, transportFactory, statisticFactory, concurrentFactory, parser); if (peer == null) { for (Realm r : realms) { if (r.getName().equals(realm)) { ((IRealm) r).addPeerName(peerURI.toString()); found = true; break;
protected Peer createPeer(int rating, String uri, String ip, String portRange, MetaData metaData, Configuration config, Configuration peerConfig, IFsmFactory fsmFactory, ITransportLayerFactory transportFactory, IStatisticManager statisticFactory, IConcurrentFactory concurrentFactory, IMessageParser parser) throws InternalException, TransportException, URISyntaxException, UnknownServiceException { return new PeerImpl(this, rating, new URI(uri), ip, portRange, metaData.unwrap(IMetaData.class), config, peerConfig, fsmFactory, transportFactory, statisticFactory, concurrentFactory, parser, this.sessionDatasource); }
if (message.getPeer() != null && destHost != null && destHost.equals(message.getPeer().getUri().getFQDN()) && message.getPeer().hasValidConnection()) { if (logger.isDebugEnabled()) { logger.debug("Select previous message usage peer [{}]", message.getPeer()); if (localPeer.hasValidConnection()) { if (logger.isDebugEnabled()) { logger.debug("Found available peer to add to available peer list with uri [{}] with a valid connection", localPeer.getUri().toString());
String ips = ""; for (InetAddress ip : p.getIPAddresses()) { ips += " " + ip.getHostAddress() + ":" + p.getUri().getPort(); logger.error("Unable to create server socket for LocalPeer '{}' at{} ({}).", new Object[]{p.getUri().getFQDN(), ips, t.getMessage()}); logger.debug("Unable to create server socket", e);
public Peer addPeer(String name, String realm, boolean connecting) { if (manager != null) { try { return manager.addPeer(new URI(name), realm, connecting); } catch (Exception e) { logger.error("Failed to add peer with name[" + name + "] and realm[" + realm + "] (connecting=" + connecting + ")", e); return null; } } else { logger.debug("Failed to add peer with name[{}] and realm[{}] (connecting={}) as peer manager is null.", new Object[]{name, realm, connecting}); return null; } }
@Override public Avp insertAvp(int index, int avpCode, URI value, boolean mFlag, boolean pFlag) { int flags = ((mFlag ? 0x40 : 0) | (pFlag ? 0x20 : 0)); try { Avp res = new AvpImpl(avpCode, flags, 0, parser.octetStringToBytes(value.toString())); this.avps.add(index, res); return res; } catch (Exception e) { throw new IllegalArgumentException(e); } }
@Override public String getSessionId(String custom) { long id = uid.nextLong(); long high32 = (id & 0xffffffff00000000L) >> 32; long low32 = (id & 0xffffffffL); StringBuilder sb = new StringBuilder(); sb.append(stack.getMetaData().getLocalPeer().getUri().getFQDN()). append(";").append(high32).append(";").append(low32); if (custom != null) { //FIXME: add checks for not allowed chars? sb.append(";").append(custom); } return sb.toString(); }
@Override public void sendCerMessage() throws TransportException, OverloadException { logger.debug("Send CER message"); IMessage message = parser.createEmptyMessage(CAPABILITIES_EXCHANGE_REQUEST, 0); message.setRequest(true); message.setHopByHopIdentifier(getHopByHopIdentifier()); if (useUriAsFQDN) { message.getAvps().addAvp(ORIGIN_HOST, metaData.getLocalPeer().getUri().toString(), true, false, true); } else { message.getAvps().addAvp(ORIGIN_HOST, metaData.getLocalPeer().getUri().getFQDN(), true, false, true); } message.getAvps().addAvp(ORIGIN_REALM, metaData.getLocalPeer().getRealmName(), true, false, true); for (InetAddress ia : metaData.getLocalPeer().getIPAddresses()) { message.getAvps().addAvp(HOST_IP_ADDRESS, ia, true, false); } message.getAvps().addAvp(VENDOR_ID, metaData.getLocalPeer().getVendorId(), true, false, true); message.getAvps().addAvp(PRODUCT_NAME, metaData.getLocalPeer().getProductName(), false); for (ApplicationId appId : metaData.getLocalPeer().getCommonApplications()) { addAppId(appId, message); } message.getAvps().addAvp(FIRMWARE_REVISION, metaData.getLocalPeer().getFirmware(), true); message.getAvps().addAvp(ORIGIN_STATE_ID, metaData.getLocalHostStateId(), true, false, true); sendMessage(message); }
@Override public URI getUri() { try { return new URI(stack.getConfiguration().getStringValue(OwnDiameterURI.ordinal(), (String) OwnDiameterURI.defValue())); } catch (URISyntaxException e) { throw new IllegalArgumentException(e); } catch (UnknownServiceException e) { throw new IllegalArgumentException(e); } }
@Override public Avp insertAvp(int index, int avpCode, URI value) { try { Avp res = new AvpImpl(avpCode, 0, 0, parser.octetStringToBytes(value.toString())); this.avps.add(index, res); return res; } catch (Exception e) { throw new IllegalArgumentException(e); } }
private InetAddress getDefaultIpAddress() { try { return InetAddress.getByName(getLocalPeer().getUri().getFQDN()); } catch (Exception e1) { logger.debug("Unable to retrieve IP by URI [{}]", getLocalPeer().getUri().getFQDN(), e1); try { return InetAddress.getLocalHost(); } catch (Exception e2) { logger.debug("Unable to retrieve IP for localhost", e2); } } return null; }
private INetworkGuard createNetworkGuard(final ITransportLayerFactory transportFactory) throws TransportException { return transportFactory.createNetworkGuard( metaData.getLocalPeer().getIPAddresses(), metaData.getLocalPeer().getUri().getPort(), new INetworkConnectionListener() { @Override