本文整理了Java中org.apache.sshd.common.util.buffer.Buffer.putBuffer()
方法的一些代码示例,展示了Buffer.putBuffer()
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Buffer.putBuffer()
方法的具体详情如下:
包路径:org.apache.sshd.common.util.buffer.Buffer
类名称:Buffer
方法名:putBuffer
暂无
代码示例来源:origin: org.apache.sshd/sshd-osgi
public abstract void putBuffer(ByteBuffer buffer);
代码示例来源:origin: org.apache.sshd/sshd-common
public abstract void putBuffer(ByteBuffer buffer);
代码示例来源:origin: org.apache.sshd/sshd-core
public void write(Readable src) throws IOException {
synchronized (buffer) {
buffer.putBuffer(src);
}
doRead(true);
}
代码示例来源:origin: org.apache.sshd/sshd-common
public void putChars(char[] chars, int offset, int len, Charset charset) {
if (len <= 0) {
putBytes(GenericUtils.EMPTY_BYTE_ARRAY);
} else {
putBuffer(charset.encode(CharBuffer.wrap(chars, offset, len)));
}
}
代码示例来源:origin: org.apache.sshd/sshd-osgi
public void write(Readable src) throws IOException {
synchronized (buffer) {
buffer.putBuffer(src);
}
doRead(true);
}
代码示例来源:origin: org.apache.sshd/sshd-osgi
public void putChars(char[] chars, int offset, int len, Charset charset) {
if (len <= 0) {
putBytes(GenericUtils.EMPTY_BYTE_ARRAY);
} else {
CharBuffer charBuf = CharBuffer.wrap(chars, offset, len);
ByteBuffer byteBuf = charset.encode(charBuf);
putBuffer(byteBuf);
}
}
代码示例来源:origin: org.apache.sshd/sshd-core
@Override
@SuppressWarnings("synthetic-access")
public void messageReceived(IoSession session, Readable message) throws Exception {
if (isClosing()) {
if (debugEnabled) {
log.debug("doInit({}) Ignoring write to channel in CLOSING state", TcpipServerChannel.this);
}
} else {
Buffer buffer = new ByteArrayBuffer(message.available() + Long.SIZE, false);
buffer.putBuffer(message);
out.write(buffer.array(), buffer.rpos(), buffer.available());
out.flush();
}
}
代码示例来源:origin: org.apache.sshd/sshd-core
@Override
public void messageReceived(IoSession session, Readable message) throws Exception {
ChannelForwardedX11 channel = (ChannelForwardedX11) session.getAttribute(ChannelForwardedX11.class);
Buffer buffer = new ByteArrayBuffer(message.available() + Long.SIZE, false);
buffer.putBuffer(message);
if (log.isTraceEnabled()) {
log.trace("messageReceived({}) channel={}, len={}", session, channel, buffer.available());
}
OutputStream outputStream = channel.getInvertedIn();
outputStream.write(buffer.array(), buffer.rpos(), buffer.available());
outputStream.flush();
}
代码示例来源:origin: org.apache.sshd/sshd-osgi
@Override
@SuppressWarnings("synthetic-access")
public void messageReceived(IoSession session, Readable message) throws Exception {
if (isClosing()) {
if (debugEnabled) {
log.debug("doInit({}) Ignoring write to channel in CLOSING state", TcpipServerChannel.this);
}
} else {
Buffer buffer = new ByteArrayBuffer(message.available() + Long.SIZE, false);
buffer.putBuffer(message);
out.write(buffer.array(), buffer.rpos(), buffer.available());
out.flush();
}
}
代码示例来源:origin: org.apache.sshd/sshd-osgi
@Override
public void messageReceived(IoSession session, Readable message) throws Exception {
ChannelForwardedX11 channel = (ChannelForwardedX11) session.getAttribute(ChannelForwardedX11.class);
Buffer buffer = new ByteArrayBuffer(message.available() + Long.SIZE, false);
buffer.putBuffer(message);
if (log.isTraceEnabled()) {
log.trace("messageReceived({}) channel={}, len={}", session, channel, buffer.available());
}
OutputStream outputStream = channel.getInvertedIn();
outputStream.write(buffer.array(), buffer.rpos(), buffer.available());
outputStream.flush();
}
代码示例来源:origin: org.apache.sshd/sshd-core
@Override
public void messageReceived(final IoSession session, org.apache.sshd.common.util.Readable message) throws Exception {
Buffer buffer = new ByteArrayBuffer(message.available() + Long.SIZE, false);
buffer.putBuffer(message);
Proxy proxy = proxies.get(session);
if (proxy == null) {
int version = buffer.getUByte();
if (version == 0x04) {
proxy = new Socks4(session);
} else if (version == 0x05) {
proxy = new Socks5(session);
} else {
throw new IllegalStateException("Unsupported version: " + version);
}
proxy.onMessage(buffer);
proxies.put(session, proxy);
} else {
proxy.onMessage(buffer);
}
}
代码示例来源:origin: org.apache.sshd/sshd-osgi
@Override
public void messageReceived(final IoSession session, org.apache.sshd.common.util.Readable message) throws Exception {
Buffer buffer = new ByteArrayBuffer(message.available() + Long.SIZE, false);
buffer.putBuffer(message);
Proxy proxy = proxies.get(session);
if (proxy == null) {
int version = buffer.getUByte();
if (version == 0x04) {
proxy = new Socks4(session);
} else if (version == 0x05) {
proxy = new Socks5(session);
} else {
throw new IllegalStateException("Unsupported version: " + version);
}
proxy.onMessage(buffer);
proxies.put(session, proxy);
} else {
proxy.onMessage(buffer);
}
}
代码示例来源:origin: org.apache.sshd/sshd-sftp
/**
* Process an SFTP packet
*
* @param incoming The received {@link Buffer}
* @throws IOException if failed to process the buffer
*/
protected void process(Buffer incoming) throws IOException {
// create a copy of the buffer in case it is being re-used
Buffer buffer = new ByteArrayBuffer(incoming.available() + Long.SIZE, false);
buffer.putBuffer(incoming);
int rpos = buffer.rpos();
int length = buffer.getInt();
int type = buffer.getUByte();
Integer id = buffer.getInt();
buffer.rpos(rpos);
if (log.isTraceEnabled()) {
log.trace("process({}) id={}, type={}, len={}",
getClientChannel(), id, SftpConstants.getCommandMessageName(type), length);
}
synchronized (messages) {
messages.put(id, buffer);
messages.notifyAll();
}
}
代码示例来源:origin: org.apache.sshd/sshd-osgi
protected void messageReceived(Buffer buffer) throws Exception {
Buffer message = null;
synchronized (receiveBuffer) {
receiveBuffer.putBuffer(buffer);
if (receiveBuffer.available() >= 4) {
int rpos = receiveBuffer.rpos();
int len = receiveBuffer.getInt();
// Protect against malicious or corrupted packets
if (len < 0) {
throw new StreamCorruptedException("Illogical message length: " + len);
}
receiveBuffer.rpos(rpos);
if (receiveBuffer.available() >= (4 + len)) {
message = new ByteArrayBuffer(receiveBuffer.getBytes());
receiveBuffer.compact();
}
}
}
if (message != null) {
synchronized (messages) {
messages.offer(message);
messages.notifyAll();
}
}
}
代码示例来源:origin: org.apache.sshd/sshd-core
protected void messageReceived(Buffer buffer) throws Exception {
Buffer message = null;
synchronized (receiveBuffer) {
receiveBuffer.putBuffer(buffer);
if (receiveBuffer.available() >= 4) {
int rpos = receiveBuffer.rpos();
int len = receiveBuffer.getInt();
receiveBuffer.rpos(rpos);
if (receiveBuffer.available() >= 4 + len) {
message = new ByteArrayBuffer(receiveBuffer.getBytes());
receiveBuffer.compact();
}
}
}
if (message != null) {
synchronized (messages) {
messages.offer(message);
messages.notifyAll();
}
}
}
代码示例来源:origin: org.apache.sshd/sshd-core
@Override
protected void doWriteData(byte[] data, int off, long len) throws IOException {
ValidateUtils.checkTrue(len <= Integer.MAX_VALUE, "Data length exceeds int boundaries: %d", len);
Buffer message = null;
synchronized (receiveBuffer) {
receiveBuffer.putBuffer(new ByteArrayBuffer(data, off, (int) len));
if (receiveBuffer.available() >= 4) {
off = receiveBuffer.rpos();
len = receiveBuffer.getInt();
receiveBuffer.rpos(off);
if (receiveBuffer.available() >= (4 + len)) {
message = new ByteArrayBuffer(receiveBuffer.getBytes());
receiveBuffer.compact();
}
}
}
if (message != null) {
synchronized (messages) {
messages.offer(message);
messages.notifyAll();
}
}
}
}
代码示例来源:origin: org.apache.sshd/sshd-core
protected boolean verifySignature(
ServerSession session, String username, String alg, PublicKey key, Buffer buffer, Signature verifier, byte[] sig)
throws Exception {
byte[] id = session.getSessionId();
String service = getService();
String name = getName();
Buffer buf = new ByteArrayBuffer(id.length + username.length() + service.length() + name.length()
+ alg.length() + ByteArrayBuffer.DEFAULT_SIZE + Long.SIZE, false);
buf.putBytes(id);
buf.putByte(SshConstants.SSH_MSG_USERAUTH_REQUEST);
buf.putString(username);
buf.putString(service);
buf.putString(name);
buf.putBoolean(true);
buf.putString(alg);
buf.putBuffer(buffer);
if (log.isTraceEnabled()) {
log.trace("verifySignature({}@{})[{}][{}] key type={}, fingerprint={} - verification data={}",
username, session, service, name, alg, KeyUtils.getFingerPrint(key), buf.toHex());
log.trace("verifySignature({}@{})[{}][{}] key type={}, fingerprint={} - expected signature={}",
username, session, service, name, alg, KeyUtils.getFingerPrint(key), BufferUtils.toHex(sig));
}
verifier.update(buf.array(), buf.rpos(), buf.available());
return verifier.verify(sig);
}
代码示例来源:origin: org.apache.sshd/sshd-osgi
protected boolean verifySignature(
ServerSession session, String username, String alg, PublicKey key, Buffer buffer, Signature verifier, byte[] sig)
throws Exception {
byte[] id = session.getSessionId();
String service = getService();
String name = getName();
Buffer buf = new ByteArrayBuffer(id.length + username.length() + service.length() + name.length()
+ alg.length() + ByteArrayBuffer.DEFAULT_SIZE + Long.SIZE, false);
buf.putBytes(id);
buf.putByte(SshConstants.SSH_MSG_USERAUTH_REQUEST);
buf.putString(username);
buf.putString(service);
buf.putString(name);
buf.putBoolean(true);
buf.putString(alg);
buf.putBuffer(buffer);
if (log.isTraceEnabled()) {
log.trace("verifySignature({}@{})[{}][{}] key type={}, fingerprint={} - verification data={}",
username, session, service, name, alg, KeyUtils.getFingerPrint(key), buf.toHex());
log.trace("verifySignature({}@{})[{}][{}] key type={}, fingerprint={} - expected signature={}",
username, session, service, name, alg, KeyUtils.getFingerPrint(key), BufferUtils.toHex(sig));
}
verifier.update(buf.array(), buf.rpos(), buf.available());
return verifier.verify(sig);
}
代码示例来源:origin: org.apache.sshd/sshd-core
protected Buffer insertCharacter(Buffer org, int c) {
int remaining = org.capacity();
int readPos = org.rpos();
// see if can accommodate the character in the original buffer
if ((remaining > 0) && (readPos > 0)) {
int writePos = org.wpos();
org.wpos(readPos - 1);
org.putByte((byte) c);
org.wpos(writePos);
org.rpos(readPos - 1);
return org;
} else {
Buffer buf = new ByteArrayBuffer(org.available() + Byte.SIZE, false);
buf.putByte((byte) c);
buf.putBuffer(org);
return buf;
}
}
代码示例来源:origin: org.apache.sshd/sshd-osgi
protected Buffer insertCharacter(Buffer org, int c) {
int remaining = org.capacity();
int readPos = org.rpos();
// see if can accommodate the character in the original buffer
if ((remaining > 0) && (readPos > 0)) {
int writePos = org.wpos();
org.wpos(readPos - 1);
org.putByte((byte) c);
org.wpos(writePos);
org.rpos(readPos - 1);
return org;
} else {
Buffer buf = new ByteArrayBuffer(org.available() + Byte.SIZE, false);
buf.putByte((byte) c);
buf.putBuffer(org);
return buf;
}
}
内容来源于网络,如有侵权,请联系作者删除!