backup.server
Class BackupServer

java.lang.Object
  extended by java.lang.Thread
      extended by backup.server.BackupServer
All Implemented Interfaces:
java.lang.Runnable

public class BackupServer
extends java.lang.Thread

Main server engine.

Author:
Tore Mauset

Nested Class Summary
 
Nested classes/interfaces inherited from class java.lang.Thread
java.lang.Thread.State, java.lang.Thread.UncaughtExceptionHandler
 
Field Summary
 
Fields inherited from class java.lang.Thread
MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY
 
Constructor Summary
BackupServer(java.lang.String[] args)
          Constructs a new BackupServer.
 
Method Summary
 void checkBackup(java.lang.String user)
          Checks for incomplete backups in the specified user's home directory on the server.
 java.lang.Boolean checkResponse(java.lang.String response, java.lang.String user)
          Check a response against the issued challenge.
 void exit()
          Shut down server.
 java.lang.Boolean finishLogin(java.lang.String user, java.lang.String response)
          Conclude login procedure for a user.
 java.lang.String getChallenge(java.lang.String user)
          Generates a new password challenge.
 java.util.Hashtable<java.lang.String,java.lang.String> getFiles(java.lang.String user, java.lang.String search)
          Returns a list of a user's files matching the specified search term, or all files if search term is blank.
 java.util.ArrayList getUsers()
          Get users currently logged in
 void logout(java.lang.String user)
          Log out out a user from the server.
static void main(java.lang.String[] args)
          Main.
 void run()
          Start a separate thread for keeping track of tasks performed at regular intervals.
 java.lang.String startLogin(java.lang.String user)
          Start login procedure for a user.
 void updateDB(java.lang.String user)
          Reads file statistics from rdiff-backup logs and inserts records for new and updated files into the database.
 
Methods inherited from class java.lang.Thread
activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

BackupServer

public BackupServer(java.lang.String[] args)
Constructs a new BackupServer.

Parameters:
args - command line arguments
Method Detail

main

public static void main(java.lang.String[] args)
Main.

Parameters:
args - command line arguments

run

public void run()
Start a separate thread for keeping track of tasks performed at regular intervals.

Specified by:
run in interface java.lang.Runnable
Overrides:
run in class java.lang.Thread

exit

public void exit()
Shut down server.


getChallenge

public java.lang.String getChallenge(java.lang.String user)
Generates a new password challenge.

Parameters:
user - user requesting challenge
Returns:
challenge

checkResponse

public java.lang.Boolean checkResponse(java.lang.String response,
                                       java.lang.String user)
Check a response against the issued challenge.

Parameters:
response - response from the client
user - user sending the response
Returns:
true or false for success

startLogin

public java.lang.String startLogin(java.lang.String user)
Start login procedure for a user.

Parameters:
user - username trying to log in
Returns:
challenge for client

finishLogin

public java.lang.Boolean finishLogin(java.lang.String user,
                                     java.lang.String response)
Conclude login procedure for a user.

Parameters:
user - username trying to log in
response - response to challenge
Returns:
success

logout

public void logout(java.lang.String user)
Log out out a user from the server.

Parameters:
user - username

getUsers

public java.util.ArrayList getUsers()
Get users currently logged in

Returns:
users currently logged in

checkBackup

public void checkBackup(java.lang.String user)
Checks for incomplete backups in the specified user's home directory on the server. Fixes problems according to http://www.nongnu.org/rdiff-backup/FAQ.html#regress_failure

Parameters:
user - username

updateDB

public void updateDB(java.lang.String user)
Reads file statistics from rdiff-backup logs and inserts records for new and updated files into the database.

Parameters:
user - username

getFiles

public java.util.Hashtable<java.lang.String,java.lang.String> getFiles(java.lang.String user,
                                                                       java.lang.String search)
Returns a list of a user's files matching the specified search term, or all files if search term is blank.

Parameters:
user - username
search - search term
Returns:
list of files with timestamps