diff -p -up partimage-0.6.7/src/client/imagefile.cpp.nologin partimage-0.6.7/src/client/imagefile.cpp --- partimage-0.6.7/src/client/imagefile.cpp.nologin 2008-02-03 22:58:00.000000000 +0100 +++ partimage-0.6.7/src/client/imagefile.cpp 2008-06-10 18:24:59.000000000 +0200 @@ -61,31 +61,38 @@ CImage::CImage(COptions * options) else { #ifdef MUST_LOGIN - if (strlen(options -> szUserName) && strlen(options -> szPassWord)) + if (options->bMustLogin) { - strncpy(login, options->szUserName, 2048); - strncpy(passwd, options->szPassWord, 2048); - *(login+2047) = '\0'; - *(passwd+2047) = '\0'; - } - else - { -// we get login/pass from user - int nRes; - nRes = g_interface -> askLogin(login, passwd, 2048); - if (nRes) + if (strlen(options -> szUserName) && strlen(options -> szPassWord)) { - free(login); - free(passwd); - THROW( ERR_CANCELED); + strncpy(login, options->szUserName, 2048); + strncpy(passwd, options->szPassWord, 2048); + *(login+2047) = '\0'; + *(passwd+2047) = '\0'; } - } -#else + else + { + // we get login/pass from user + int nRes; + nRes = g_interface -> askLogin(login, passwd, 2048); + if (nRes) + { + free(login); + free(passwd); + THROW( ERR_CANCELED); + } + } + } + else + { +#endif // fake login/passwd strcpy(login, "nologin"); strcpy(passwd, "nopass"); +#ifdef MUST_LOGIN + } #endif - + m_cid = new CImageNet(options, options->bUseSSL); try { m_cid -> Connect(options, login, passwd, options->szServerName, options->dwServerPort); } diff -p -up partimage-0.6.7/src/client/image_net.cpp.nologin partimage-0.6.7/src/client/image_net.cpp --- partimage-0.6.7/src/client/image_net.cpp.nologin 2008-02-03 22:58:00.000000000 +0100 +++ partimage-0.6.7/src/client/image_net.cpp 2008-06-10 18:11:36.000000000 +0200 @@ -28,7 +28,7 @@ CImageNet::CImageNet(COptions * options, bool bUseSSL):CImageBase() { mess = new CMessages; - netcl = new CNetClient(bUseSSL); + netcl = new CNetClient(options->bMustLogin, bUseSSL); // multi-thread pthread_mutex_init(&m_mutexNetwork, &m_mutexNetworkAttr); diff -p -up partimage-0.6.7/src/client/main.cpp.nologin partimage-0.6.7/src/client/main.cpp --- partimage-0.6.7/src/client/main.cpp.nologin 2008-06-10 17:54:40.000000000 +0200 +++ partimage-0.6.7/src/client/main.cpp 2008-06-10 17:59:02.000000000 +0200 @@ -90,6 +90,7 @@ static struct option const long_options[ {"compilinfo", no_argument, NULL, 'i'}, {"nombr", no_argument, NULL, 'M'}, {"allowmnt", no_argument, NULL, 'm'}, + {"nologin", no_argument, NULL, 'L'}, {"nossl", no_argument, NULL, 'n'}, {"overwrite", no_argument, NULL, 'o'}, {"password", required_argument, NULL, 'P'}, @@ -109,7 +110,7 @@ static struct option const long_options[ static char finish_last_countfile_lock[]="/tmp/partimageXXXXXX.lock"; static char finish_last_countfile[]="/tmp/partimageXXXXXX"; -static char optstring[]="z:oV:ecmdhf:s:p:bwg:vynSMa:iU:P:XB:"; +static char optstring[]="z:oV:ecmdhf:s:p:bwg:vyLnSMa:iU:P:XB:"; FILE * g_fDebug; // debug file FILE * g_fLocalDebug; // debug file CInterface * g_interface; @@ -171,6 +172,7 @@ int main(int argc, char *argv[]) // initialize options with defaults values memset(&options, 0, sizeof(COptions)); options.bUseSSL = OPTIONS_DEFAULT_SSL; + options.bMustLogin = OPTIONS_DEFAULT_LOGIN; options.bBackupMBR = OPTIONS_DEFAULT_BACKUP_MBR; options.bSimulateMode = OPTIONS_DEFAULT_SIMULATE_MODE; options.bOverwrite = OPTIONS_DEFAULT_OVERWRITE; @@ -329,9 +331,14 @@ int main(int argc, char *argv[]) return EXIT_SUCCESS; break; + case 'L': // no login + options.bMustLogin = false; + break; + case 'n': // no ssl options.bUseSSL = false; break; + case 'S': // simulate options.bSimulateMode = true; break; @@ -972,6 +979,7 @@ void usage() "* -sX, --server=X give partimaged server's ip address\n" "* -pX, --port=X give partimaged server's listening port\n" "* -g, --debug=X set the debug level to X (default: 1):\n" + "* -L, --nologin disable login in network mode\n" "* -n, --nossl disable SSL in network mode\n" "* -S, --simulate simulation of restoration mode\n" "* -aX, --automnt=X automatic mount with X options. Read the doc for more details\n" diff -p -up partimage-0.6.7/src/client/misc.cpp.nologin partimage-0.6.7/src/client/misc.cpp --- partimage-0.6.7/src/client/misc.cpp.nologin 2008-02-03 22:58:00.000000000 +0100 +++ partimage-0.6.7/src/client/misc.cpp 2008-06-10 18:01:13.000000000 +0200 @@ -1233,6 +1233,7 @@ void showDebugOptions(COptions *options) "options.bBatchMode = %d\n" "options.bSplitWait = %d\n" "options.bSync = %d\n" + "options.bMustLogin = %d\n" "options.bUseSSL = %d\n" "options.dwDebugLevel = %lu\n" "options.bBackupMBR = %d\n" @@ -1247,7 +1248,7 @@ void showDebugOptions(COptions *options) (int)options->bFailIfMounted, (int) options->bAskDesc, options->dwFinish, options->szServerName, options->dwServerPort, (int) options->bBatchMode, (int)options->bSplitWait, - (int)options->bSync, (int)options->bUseSSL, options->dwDebugLevel, + (int)options->bSync, (int)options->bMustLogin, (int)options->bUseSSL, options->dwDebugLevel, (int)options->bBackupMBR, (int)options->bSimulateMode, options->szAutoMount, options->szFullyBatchMode); } diff -p -up partimage-0.6.7/src/client/netclient.cpp.nologin partimage-0.6.7/src/client/netclient.cpp --- partimage-0.6.7/src/client/netclient.cpp.nologin 2008-02-03 22:58:00.000000000 +0100 +++ partimage-0.6.7/src/client/netclient.cpp 2008-06-10 18:20:05.000000000 +0200 @@ -25,7 +25,7 @@ // ================================================ -CNetClient::CNetClient(bool bUseSSL):CNet() +CNetClient::CNetClient(bool bMustLogin, bool bUseSSL):CNet() { showDebug(9, "begin\n"); int sock; @@ -56,6 +56,12 @@ CNetClient::CNetClient(bool bUseSSL):CNe m_bUseSSL = false; #endif +#ifdef MUST_LOGIN + m_bMustLogin = bMustLogin; +#else + m_bMustLogin = false; +#endif + showDebug(9, "end constructor ok\n"); } @@ -93,11 +99,7 @@ void CNetClient::Connect(char * adr, uns Recv(szServerBanner, BANNER_SIZE+1); // +1 -> preserve endding \0 showDebug(2, "Banner received: %s\n", szServerBanner); -#ifdef MUST_LOGIN - szBanner = Banner(m_bUseSSL, true); -#else - szBanner = Banner(m_bUseSSL, false); -#endif + szBanner = Banner(m_bUseSSL, m_bMustLogin); Send(szBanner, BANNER_SIZE+1); showDebug(2, "Banner sent: %s\n", szBanner); diff -p -up partimage-0.6.7/src/client/netclient.h.nologin partimage-0.6.7/src/client/netclient.h --- partimage-0.6.7/src/client/netclient.h.nologin 2008-02-03 22:58:00.000000000 +0100 +++ partimage-0.6.7/src/client/netclient.h 2008-06-10 18:07:37.000000000 +0200 @@ -38,9 +38,10 @@ private: SSL_METHOD * meth; #endif bool m_bUseSSL; + bool m_bMustLogin; public: - CNetClient(bool bUseSSL); + CNetClient(bool bMustLogin, bool bUseSSL); void Connect(char * adr, unsigned short int port); unsigned int SendPass(char * login, char * pass); diff -p -up partimage-0.6.7/src/client/partimage.h.nologin partimage-0.6.7/src/client/partimage.h --- partimage-0.6.7/src/client/partimage.h.nologin 2008-02-03 22:58:00.000000000 +0100 +++ partimage-0.6.7/src/client/partimage.h 2008-06-10 17:58:40.000000000 +0200 @@ -190,6 +190,7 @@ extern bool g_bSigKill; #define OPTIONS_DEFAULT_SPLIT_WAIT false #define OPTIONS_DEFAULT_RUN_SHELL false #define OPTIONS_DEFAULT_SYNC true +#define OPTIONS_DEFAULT_LOGIN true #define OPTIONS_DEFAULT_SSL true #define OPTIONS_DEFAULT_BACKUP_MBR true #define OPTIONS_DEFAULT_SIMULATE_MODE false diff -p -up partimage-0.6.7/src/shared/common.h.nologin partimage-0.6.7/src/shared/common.h --- partimage-0.6.7/src/shared/common.h.nologin 2008-02-03 22:57:55.000000000 +0100 +++ partimage-0.6.7/src/shared/common.h 2008-06-10 18:09:38.000000000 +0200 @@ -129,6 +129,7 @@ struct COptions bool bAskDesc; bool bBatchMode; bool bSync; + bool bMustLogin; bool bUseSSL; bool bBackupMBR; bool bSimulateMode;