git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@6559 6c8d7289-2bf4-0310-a012-ef5d649a1542pull/1/head
parent
a3b8b7b5c5
commit
d1973bae2a
@ -1,105 +0,0 @@
|
||||
//plasmaCrawlLoaderMessage.java
|
||||
//------------------------
|
||||
//part of YaCy
|
||||
//(C) by Michael Peter Christen; mc@yacy.net
|
||||
//first published on http://www.anomic.de
|
||||
//Frankfurt, Germany, 2004
|
||||
//last major change: 21.04.2005 by Martin Thelian
|
||||
//
|
||||
//This program is free software; you can redistribute it and/or modify
|
||||
//it under the terms of the GNU General Public License as published by
|
||||
//the Free Software Foundation; either version 2 of the License, or
|
||||
//(at your option) any later version.
|
||||
//
|
||||
//This program is distributed in the hope that it will be useful,
|
||||
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
//GNU General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU General Public License
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
|
||||
package de.anomic.crawler;
|
||||
|
||||
import java.util.concurrent.Semaphore;
|
||||
|
||||
import net.yacy.kelondro.data.meta.DigestURI;
|
||||
import de.anomic.crawler.retrieval.Response;
|
||||
|
||||
public final class LoaderMessage {
|
||||
public final int crawlingPriority;
|
||||
|
||||
public final DigestURI url;
|
||||
public final String name;
|
||||
public final String referer;
|
||||
public final String initiator;
|
||||
public final int depth;
|
||||
public final CrawlProfile.entry profile;
|
||||
public final boolean acceptAllContent;
|
||||
public final int timeout;
|
||||
public final boolean keepInMemory;
|
||||
|
||||
private Semaphore resultSync = null;
|
||||
private Response result;
|
||||
private String errorMessage;
|
||||
|
||||
// loadParallel(URL url, String referer, String initiator, int depth, plasmaCrawlProfile.entry profile) {
|
||||
public LoaderMessage(
|
||||
final DigestURI url,
|
||||
final String name, // the name of the url, from anchor tag <a>name</a>
|
||||
final String referer,
|
||||
final String initiator,
|
||||
final int depth,
|
||||
final CrawlProfile.entry profile,
|
||||
final int crawlingPriority,
|
||||
final boolean acceptAllContent,
|
||||
final int timeout,
|
||||
final boolean keepInMemory
|
||||
) {
|
||||
this.url = url;
|
||||
this.name = name;
|
||||
this.referer = referer;
|
||||
this.initiator = initiator;
|
||||
this.depth = depth;
|
||||
this.profile = profile;
|
||||
this.crawlingPriority = crawlingPriority;
|
||||
this.acceptAllContent = acceptAllContent;
|
||||
this.timeout = timeout;
|
||||
this.keepInMemory = keepInMemory;
|
||||
|
||||
this.resultSync = new Semaphore(0);
|
||||
this.result = null;
|
||||
}
|
||||
|
||||
public void setError(final String errorMessage) {
|
||||
this.errorMessage = errorMessage;
|
||||
}
|
||||
|
||||
public String getError() {
|
||||
return this.errorMessage;
|
||||
}
|
||||
|
||||
public void setResult(final Response theResult) {
|
||||
// store the result
|
||||
this.result = theResult;
|
||||
|
||||
// notify blocking result readers
|
||||
this.resultSync.release();
|
||||
}
|
||||
|
||||
public Response waitForResult() throws InterruptedException {
|
||||
Response theResult = null;
|
||||
|
||||
this.resultSync.acquire();
|
||||
/* =====> CRITICAL SECTION <======== */
|
||||
|
||||
theResult = this.result;
|
||||
|
||||
/* =====> CRITICAL SECTION <======== */
|
||||
this.resultSync.release();
|
||||
|
||||
return theResult;
|
||||
}
|
||||
}
|
@ -1,229 +0,0 @@
|
||||
//httpChunkedInputStream.java
|
||||
//-----------------------
|
||||
//(C) by Michael Peter Christen; mc@yacy.net
|
||||
//first published on http://www.anomic.de
|
||||
//Frankfurt, Germany, 2004
|
||||
//
|
||||
// This file is contributed by Martin Thelian
|
||||
// last major change: $LastChangedDate$ by $LastChangedBy$
|
||||
// Revision: $LastChangedRevision$
|
||||
//
|
||||
//This program is free software; you can redistribute it and/or modify
|
||||
//it under the terms of the GNU General Public License as published by
|
||||
//the Free Software Foundation; either version 2 of the License, or
|
||||
//(at your option) any later version.
|
||||
//
|
||||
//This program is distributed in the hope that it will be useful,
|
||||
//but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
//MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
//GNU General Public License for more details.
|
||||
//
|
||||
//You should have received a copy of the GNU General Public License
|
||||
//along with this program; if not, write to the Free Software
|
||||
//Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
package de.anomic.http.server;
|
||||
|
||||
import java.io.BufferedReader;
|
||||
import java.io.ByteArrayInputStream;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStream;
|
||||
import java.io.InputStreamReader;
|
||||
|
||||
import net.yacy.kelondro.util.ByteBuffer;
|
||||
|
||||
|
||||
/**
|
||||
* Some parts of this class code was copied from <a href="http://www.devdaily.com/java/jwarehouse/commons-httpclient-2.0/src/java/org/apache/commons/httpclient/ChunkedInputStream.shtml">Apache httpclient Project.</a>
|
||||
* @author theli
|
||||
*/
|
||||
public final class ChunkedInputStream extends InputStream {
|
||||
|
||||
private static final int READ_CHUNK_STATE_NORMAL = 0;
|
||||
private static final int READ_CHUNK_STATE_CR_READ = 1;
|
||||
private static final int READ_CHUNK_STATE_IN_EXT_CHUNK = 2;
|
||||
private static final int READ_CHUNK_STATE_FINISHED = -1;
|
||||
|
||||
private static final char CR = '\r';
|
||||
private static final char LF = '\n';
|
||||
|
||||
private final InputStream inputStream;
|
||||
private int currPos;
|
||||
private int currChunkSize;
|
||||
private RequestHeader httpTrailer;
|
||||
|
||||
private boolean beginningOfStream = true;
|
||||
private boolean isEOF = false;
|
||||
private boolean isClosed = false;
|
||||
|
||||
|
||||
public ChunkedInputStream(final InputStream in) {
|
||||
|
||||
if (in == null)throw new IllegalArgumentException("InputStream must not be null");
|
||||
|
||||
this.inputStream = in;
|
||||
this.currPos = 0;
|
||||
}
|
||||
|
||||
public int read() throws IOException {
|
||||
|
||||
if (this.isClosed) throw new IOException("Inputstream already closed.");
|
||||
if (this.isEOF) return -1;
|
||||
|
||||
if (this.currPos >= this.currChunkSize) {
|
||||
readNextChunk();
|
||||
if (this.isEOF) return -1;
|
||||
}
|
||||
this.currPos++;
|
||||
return this.inputStream.read();
|
||||
}
|
||||
|
||||
|
||||
public int read (final byte[] b, final int off, int len) throws IOException {
|
||||
if (this.isClosed) throw new IOException("Inputstream already closed.");
|
||||
if (this.isEOF) return -1;
|
||||
|
||||
if (this.currPos >= this.currChunkSize) {
|
||||
readNextChunk();
|
||||
if (this.isEOF) return -1;
|
||||
}
|
||||
len = Math.min(len, this.currChunkSize - this.currPos);
|
||||
final int count = this.inputStream.read(b, off, len);
|
||||
this.currPos += count;
|
||||
return count;
|
||||
}
|
||||
|
||||
public int read (final byte[] b) throws IOException {
|
||||
return read(b, 0, b.length);
|
||||
}
|
||||
|
||||
/**
|
||||
* Read the CRLF terminator.
|
||||
* @throws IOException If an IO error occurs.
|
||||
*/
|
||||
private void readCRLF() throws IOException {
|
||||
final int cr = this.inputStream.read();
|
||||
final int lf = this.inputStream.read();
|
||||
if ((cr != CR) || (lf != LF)) {
|
||||
throw new IOException("Malformed chunk. CRLF expected but '" + cr + lf + "' found");
|
||||
}
|
||||
}
|
||||
|
||||
private void readNextChunk() throws IOException {
|
||||
if (!this.beginningOfStream) readCRLF();
|
||||
|
||||
this.currChunkSize = readChunkFromStream(this.inputStream);
|
||||
this.beginningOfStream = false;
|
||||
this.currPos = 0;
|
||||
if (this.currChunkSize == 0) {
|
||||
this.isEOF = true;
|
||||
readTrailer();
|
||||
}
|
||||
}
|
||||
|
||||
private void readTrailer() throws IOException {
|
||||
BufferedReader reader = null;
|
||||
ByteBuffer bout = null;
|
||||
try {
|
||||
bout = new ByteBuffer();
|
||||
do {
|
||||
int ch;
|
||||
while ((ch = this.inputStream.read()) >= 0) {
|
||||
bout.write(ch);
|
||||
if (ch == LF) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (bout.length() <= 2) break;
|
||||
} while(true);
|
||||
|
||||
final ByteArrayInputStream bin = new ByteArrayInputStream(bout.getBytes());
|
||||
reader = new BufferedReader(new InputStreamReader(bin));
|
||||
this.httpTrailer = new RequestHeader();
|
||||
this.httpTrailer.readHttpHeader(reader);
|
||||
} finally {
|
||||
if (reader != null) try {reader.close();}catch(final Exception e){}
|
||||
if (bout != null) try {bout.close();}catch(final Exception e){}
|
||||
}
|
||||
}
|
||||
|
||||
private static int readChunkFromStream(final InputStream in) throws IOException {
|
||||
|
||||
final ByteBuffer baos = new ByteBuffer();
|
||||
int state = READ_CHUNK_STATE_NORMAL;
|
||||
while (state != READ_CHUNK_STATE_FINISHED) {
|
||||
final int b = in.read();
|
||||
if (b == -1) throw new IOException("Malformed chunk. Unexpected end");
|
||||
|
||||
switch (state) {
|
||||
case READ_CHUNK_STATE_NORMAL: // 0
|
||||
switch (b) {
|
||||
case CR:
|
||||
state = READ_CHUNK_STATE_CR_READ;
|
||||
break;
|
||||
case '\"':
|
||||
case ';':
|
||||
case ' ':
|
||||
state = READ_CHUNK_STATE_IN_EXT_CHUNK;
|
||||
break;
|
||||
default:
|
||||
baos.write(b);
|
||||
}
|
||||
break;
|
||||
|
||||
case READ_CHUNK_STATE_CR_READ: // 1
|
||||
if (b == LF) {
|
||||
state = READ_CHUNK_STATE_FINISHED;
|
||||
} else {
|
||||
// this was not CRLF
|
||||
throw new IOException("Malformed chunk. Unexpected enf of chunk. MIssing CR character.");
|
||||
}
|
||||
break;
|
||||
|
||||
case READ_CHUNK_STATE_IN_EXT_CHUNK: // 2
|
||||
switch (b) {
|
||||
case CR:
|
||||
state = READ_CHUNK_STATE_CR_READ;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
break;
|
||||
default: throw new RuntimeException("Malformed chunk. Illegal state.");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
int result;
|
||||
try {
|
||||
result = Integer.parseInt(baos.toString().trim(), 16);
|
||||
} catch (final NumberFormatException e) {
|
||||
throw new IOException ("Malformed chunk. Bad chunk size: " + baos.toString());
|
||||
} finally {
|
||||
baos.close();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
public void close() throws IOException {
|
||||
if (!this.isClosed) {
|
||||
try {
|
||||
if (!this.isEOF) {
|
||||
exhaustInputStream(this);
|
||||
}
|
||||
} finally {
|
||||
this.isEOF = true;
|
||||
this.isClosed = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
static void exhaustInputStream(final InputStream inStream) throws IOException {
|
||||
final byte buffer[] = new byte[1024];
|
||||
while (inStream.read(buffer) >= 0) {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,57 +0,0 @@
|
||||
package net.yacy;
|
||||
import java.io.BufferedReader;
|
||||
import java.io.IOException;
|
||||
import java.io.InputStreamReader;
|
||||
|
||||
import net.yacy.kelondro.order.Base64Order;
|
||||
import net.yacy.kelondro.order.Digest;
|
||||
|
||||
|
||||
// migration.java
|
||||
// -----------------------
|
||||
// (C) by Alexander Schier
|
||||
//
|
||||
// last change: $LastChangedDate: $ by $LastChangedBy: $
|
||||
//
|
||||
// This program is free software; you can redistribute it and/or modify
|
||||
// it under the terms of the GNU General Public License as published by
|
||||
// the Free Software Foundation; either version 2 of the License, or
|
||||
// (at your option) any later version.
|
||||
//
|
||||
// This program is distributed in the hope that it will be useful,
|
||||
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
// GNU General Public License for more details.
|
||||
//
|
||||
// You should have received a copy of the GNU General Public License
|
||||
// along with this program; if not, write to the Free Software
|
||||
// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
|
||||
public class genpw {
|
||||
public static void main(final String[] args){
|
||||
String username="";
|
||||
String password="";
|
||||
if(args.length==2){
|
||||
username=args[0];
|
||||
password=args[1];
|
||||
}else if(args.length<2){
|
||||
if(args.length==1){
|
||||
username=args[0];
|
||||
}else{
|
||||
username="admin";
|
||||
}
|
||||
if(args.length<1){
|
||||
final BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
|
||||
username="admin";
|
||||
try {
|
||||
password=br.readLine();
|
||||
} catch (final IOException e) {
|
||||
System.err.println("IOException while reading from stdin");
|
||||
System.exit(1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
System.out.println(Digest.encodeMD5Hex(Base64Order.standardCoder.encodeString(username+":"+password)));
|
||||
}
|
||||
}
|
Loading…
Reference in new issue