package org.araqne.log.api; import java.io.IOException; import java.nio.ByteBuffer; import java.util.Date; import org.araqne.log.api.WtmpEntry.Type; public class WtmpEntryParserLinux extends WtmpEntryParser { @Override public int getBlockSize() { return 384; } @Override public WtmpEntry parseEntry(ByteBuffer bb) throws IOException { int type = Short.reverseBytes(bb.getShort()); bb.getShort(); int pid = Integer.reverseBytes(bb.getInt()); byte[] line = new byte[32]; bb.get(line); byte[] id = new byte[4]; bb.get(id); byte[] user = new byte[32]; bb.get(user); byte[] host = new byte[256]; bb.get(host); bb.getInt(); int session = Integer.reverseBytes(bb.getInt()); int seconds = Integer.reverseBytes(bb.getInt()); bb.getInt(); bb.get(new byte[36]); return new WtmpEntry(Type.values()[type], new Date(seconds * 1000L), pid, readString(user), readString(host), session ,readString(line), readString(id)); } }