VirtualBox

Changeset 82699 in vbox for trunk/src/VBox/Runtime/generic


Ignore:
Timestamp:
Jan 9, 2020 2:43:25 PM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
135618
Message:

IPRT/FTP: Renaming. bugref:9437

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/generic/ftp-server.cpp

    r82698 r82699  
    189189 * Function prototypes for command handlers.
    190190 */
    191 static FNRTFTPSERVERCMD rtFTPServerHandleABOR;
    192 static FNRTFTPSERVERCMD rtFTPServerHandleCDUP;
    193 static FNRTFTPSERVERCMD rtFTPServerHandleCWD;
    194 static FNRTFTPSERVERCMD rtFTPServerHandleLIST;
    195 static FNRTFTPSERVERCMD rtFTPServerHandleMODE;
    196 static FNRTFTPSERVERCMD rtFTPServerHandleNOOP;
    197 static FNRTFTPSERVERCMD rtFTPServerHandlePORT;
    198 static FNRTFTPSERVERCMD rtFTPServerHandlePWD;
    199 static FNRTFTPSERVERCMD rtFTPServerHandleQUIT;
    200 static FNRTFTPSERVERCMD rtFTPServerHandleRETR;
    201 static FNRTFTPSERVERCMD rtFTPServerHandleRGET;
    202 static FNRTFTPSERVERCMD rtFTPServerHandleSTAT;
    203 static FNRTFTPSERVERCMD rtFTPServerHandleSYST;
    204 static FNRTFTPSERVERCMD rtFTPServerHandleTYPE;
     191static FNRTFTPSERVERCMD rtFtpServerHandleABOR;
     192static FNRTFTPSERVERCMD rtFtpServerHandleCDUP;
     193static FNRTFTPSERVERCMD rtFtpServerHandleCWD;
     194static FNRTFTPSERVERCMD rtFtpServerHandleLIST;
     195static FNRTFTPSERVERCMD rtFtpServerHandleMODE;
     196static FNRTFTPSERVERCMD rtFtpServerHandleNOOP;
     197static FNRTFTPSERVERCMD rtFtpServerHandlePORT;
     198static FNRTFTPSERVERCMD rtFtpServerHandlePWD;
     199static FNRTFTPSERVERCMD rtFtpServerHandleQUIT;
     200static FNRTFTPSERVERCMD rtFtpServerHandleRETR;
     201static FNRTFTPSERVERCMD rtFtpServerHandleRGET;
     202static FNRTFTPSERVERCMD rtFtpServerHandleSTAT;
     203static FNRTFTPSERVERCMD rtFtpServerHandleSYST;
     204static FNRTFTPSERVERCMD rtFtpServerHandleTYPE;
    205205
    206206/**
     
    222222const RTFTPSERVER_CMD_ENTRY g_aCmdMap[] =
    223223{
    224     { RTFTPSERVER_CMD_ABOR,     "ABOR",         rtFTPServerHandleABOR },
    225     { RTFTPSERVER_CMD_CDUP,     "CDUP",         rtFTPServerHandleCDUP },
    226     { RTFTPSERVER_CMD_CWD,      "CWD",          rtFTPServerHandleCWD  },
    227     { RTFTPSERVER_CMD_LIST,     "LIST",         rtFTPServerHandleLIST },
    228     { RTFTPSERVER_CMD_MODE,     "MODE",         rtFTPServerHandleMODE },
    229     { RTFTPSERVER_CMD_NOOP,     "NOOP",         rtFTPServerHandleNOOP },
    230     { RTFTPSERVER_CMD_PORT,     "PORT",         rtFTPServerHandlePORT },
    231     { RTFTPSERVER_CMD_PWD,      "PWD",          rtFTPServerHandlePWD  },
    232     { RTFTPSERVER_CMD_QUIT,     "QUIT",         rtFTPServerHandleQUIT },
    233     { RTFTPSERVER_CMD_RETR,     "RETR",         rtFTPServerHandleRETR },
    234     { RTFTPSERVER_CMD_RGET,     "RGET",         rtFTPServerHandleRGET },
    235     { RTFTPSERVER_CMD_STAT,     "STAT",         rtFTPServerHandleSTAT },
    236     { RTFTPSERVER_CMD_SYST,     "SYST",         rtFTPServerHandleSYST },
    237     { RTFTPSERVER_CMD_TYPE,     "TYPE",         rtFTPServerHandleTYPE },
     224    { RTFTPSERVER_CMD_ABOR,     "ABOR",         rtFtpServerHandleABOR },
     225    { RTFTPSERVER_CMD_CDUP,     "CDUP",         rtFtpServerHandleCDUP },
     226    { RTFTPSERVER_CMD_CWD,      "CWD",          rtFtpServerHandleCWD  },
     227    { RTFTPSERVER_CMD_LIST,     "LIST",         rtFtpServerHandleLIST },
     228    { RTFTPSERVER_CMD_MODE,     "MODE",         rtFtpServerHandleMODE },
     229    { RTFTPSERVER_CMD_NOOP,     "NOOP",         rtFtpServerHandleNOOP },
     230    { RTFTPSERVER_CMD_PORT,     "PORT",         rtFtpServerHandlePORT },
     231    { RTFTPSERVER_CMD_PWD,      "PWD",          rtFtpServerHandlePWD  },
     232    { RTFTPSERVER_CMD_QUIT,     "QUIT",         rtFtpServerHandleQUIT },
     233    { RTFTPSERVER_CMD_RETR,     "RETR",         rtFtpServerHandleRETR },
     234    { RTFTPSERVER_CMD_RGET,     "RGET",         rtFtpServerHandleRGET },
     235    { RTFTPSERVER_CMD_STAT,     "STAT",         rtFtpServerHandleSTAT },
     236    { RTFTPSERVER_CMD_SYST,     "SYST",         rtFtpServerHandleSYST },
     237    { RTFTPSERVER_CMD_TYPE,     "TYPE",         rtFtpServerHandleTYPE },
    238238    { RTFTPSERVER_CMD_LAST,     "",             NULL }
    239239};
     
    251251 * @param   enmReply            Reply code to send.
    252252 */
    253 static int rtFTPServerSendReplyRc(PRTFTPSERVERCLIENT pClient, RTFTPSERVER_REPLY enmReply)
     253static int rtFtpServerSendReplyRc(PRTFTPSERVERCLIENT pClient, RTFTPSERVER_REPLY enmReply)
    254254{
    255255    char szReply[32];
     
    266266 * @param   pcszStr             String to reply.
    267267 */
    268 static int rtFTPServerSendReplyStr(PRTFTPSERVERCLIENT pClient, const char *pcszStr)
     268static int rtFtpServerSendReplyStr(PRTFTPSERVERCLIENT pClient, const char *pcszStr)
    269269{
    270270    char *pszReply;
     
    287287 * @param   pcszUser            User name to look up.
    288288 */
    289 static int rtFTPServerLookupUser(PRTFTPSERVERCLIENT pClient, const char *pcszUser)
     289static int rtFtpServerLookupUser(PRTFTPSERVERCLIENT pClient, const char *pcszUser)
    290290{
    291291    RTFTPSERVER_HANDLE_CALLBACK_VA_RET(pfnOnUserConnect, pcszUser);
     
    302302 * @param   pcszPassword        Password to authenticate with.
    303303 */
    304 static int rtFTPServerAuthenticate(PRTFTPSERVERCLIENT pClient, const char *pcszUser, const char *pcszPassword)
     304static int rtFtpServerAuthenticate(PRTFTPSERVERCLIENT pClient, const char *pcszUser, const char *pcszPassword)
    305305{
    306306    RTFTPSERVER_HANDLE_CALLBACK_VA_RET(pfnOnUserAuthenticate, pcszUser, pcszPassword);
     
    314314*********************************************************************************************************************************/
    315315
    316 static int rtFTPServerHandleABOR(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
    317 {
    318     RT_NOREF(pClient, cArgs, apcszArgs);
    319 
    320     /** @todo Anything to do here? */
    321     return VINF_SUCCESS;
    322 }
    323 
    324 static int rtFTPServerHandleCDUP(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
    325 {
    326     RT_NOREF(pClient, cArgs, apcszArgs);
    327 
    328     /** @todo Anything to do here? */
    329     return VINF_SUCCESS;
    330 }
    331 
    332 static int rtFTPServerHandleCWD(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
     316static int rtFtpServerHandleABOR(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
     317{
     318    RT_NOREF(pClient, cArgs, apcszArgs);
     319
     320    /** @todo Anything to do here? */
     321    return VINF_SUCCESS;
     322}
     323
     324static int rtFtpServerHandleCDUP(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
     325{
     326    RT_NOREF(pClient, cArgs, apcszArgs);
     327
     328    /** @todo Anything to do here? */
     329    return VINF_SUCCESS;
     330}
     331
     332static int rtFtpServerHandleCWD(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
    333333{
    334334    AssertPtrReturn(apcszArgs, VERR_INVALID_POINTER);
     
    342342}
    343343
    344 static int rtFTPServerHandleLIST(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
     344static int rtFtpServerHandleLIST(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
    345345{
    346346    RT_NOREF(cArgs, apcszArgs);
     
    354354}
    355355
    356 static int rtFTPServerHandleMODE(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
    357 {
    358     RT_NOREF(pClient, cArgs, apcszArgs);
    359 
    360     /** @todo Anything to do here? */
    361     return VINF_SUCCESS;
    362 }
    363 
    364 static int rtFTPServerHandleNOOP(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
     356static int rtFtpServerHandleMODE(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
     357{
     358    RT_NOREF(pClient, cArgs, apcszArgs);
     359
     360    /** @todo Anything to do here? */
     361    return VINF_SUCCESS;
     362}
     363
     364static int rtFtpServerHandleNOOP(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
    365365{
    366366    RT_NOREF(pClient, cArgs, apcszArgs);
     
    370370}
    371371
    372 static int rtFTPServerHandlePORT(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
    373 {
    374     RT_NOREF(pClient, cArgs, apcszArgs);
    375 
    376     /** @todo Anything to do here? */
    377     return VINF_SUCCESS;
    378 }
    379 
    380 static int rtFTPServerHandlePWD(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
     372static int rtFtpServerHandlePORT(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
     373{
     374    RT_NOREF(pClient, cArgs, apcszArgs);
     375
     376    /** @todo Anything to do here? */
     377    return VINF_SUCCESS;
     378}
     379
     380static int rtFtpServerHandlePWD(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
    381381{
    382382    RT_NOREF(cArgs, apcszArgs);
     
    399399}
    400400
    401 static int rtFTPServerHandleQUIT(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
    402 {
    403     RT_NOREF(pClient, cArgs, apcszArgs);
    404 
    405     /** @todo Anything to do here? */
    406     return VINF_SUCCESS;
    407 }
    408 
    409 static int rtFTPServerHandleRETR(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
    410 {
    411     RT_NOREF(pClient, cArgs, apcszArgs);
    412 
    413     /** @todo Anything to do here? */
    414     return VINF_SUCCESS;
    415 }
    416 
    417 static int rtFTPServerHandleRGET(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
    418 {
    419     RT_NOREF(pClient, cArgs, apcszArgs);
    420 
    421     /** @todo Anything to do here? */
    422     return VINF_SUCCESS;
    423 }
    424 
    425 static int rtFTPServerHandleSTAT(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
    426 {
    427     RT_NOREF(pClient, cArgs, apcszArgs);
    428 
    429     /** @todo Anything to do here? */
    430     return VINF_SUCCESS;
    431 }
    432 
    433 static int rtFTPServerHandleSYST(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
     401static int rtFtpServerHandleQUIT(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
     402{
     403    RT_NOREF(pClient, cArgs, apcszArgs);
     404
     405    /** @todo Anything to do here? */
     406    return VINF_SUCCESS;
     407}
     408
     409static int rtFtpServerHandleRETR(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
     410{
     411    RT_NOREF(pClient, cArgs, apcszArgs);
     412
     413    /** @todo Anything to do here? */
     414    return VINF_SUCCESS;
     415}
     416
     417static int rtFtpServerHandleRGET(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
     418{
     419    RT_NOREF(pClient, cArgs, apcszArgs);
     420
     421    /** @todo Anything to do here? */
     422    return VINF_SUCCESS;
     423}
     424
     425static int rtFtpServerHandleSTAT(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
     426{
     427    RT_NOREF(pClient, cArgs, apcszArgs);
     428
     429    /** @todo Anything to do here? */
     430    return VINF_SUCCESS;
     431}
     432
     433static int rtFtpServerHandleSYST(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
    434434{
    435435    RT_NOREF(cArgs, apcszArgs);
     
    438438    int rc = RTSystemQueryOSInfo(RTSYSOSINFO_PRODUCT, szOSInfo, sizeof(szOSInfo));
    439439    if (RT_SUCCESS(rc))
    440         rc = rtFTPServerSendReplyStr(pClient, szOSInfo);
     440        rc = rtFtpServerSendReplyStr(pClient, szOSInfo);
    441441
    442442    return rc;
    443443}
    444444
    445 static int rtFTPServerHandleTYPE(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
     445static int rtFtpServerHandleTYPE(PRTFTPSERVERCLIENT pClient, uint8_t cArgs, const char * const *apcszArgs)
    446446{
    447447    RT_NOREF(pClient, cArgs, apcszArgs);
     
    462462 * @param   pClient             Client to handle login procedure for.
    463463 */
    464 static int rtFTPServerDoLogin(PRTFTPSERVERCLIENT pClient)
     464static int rtFtpServerDoLogin(PRTFTPSERVERCLIENT pClient)
    465465{
    466466    LogFlowFuncEnter();
    467467
    468468    /* Send welcome message. */
    469     int rc = rtFTPServerSendReplyRc(pClient, RTFTPSERVER_REPLY_READY_FOR_NEW_USER);
     469    int rc = rtFtpServerSendReplyRc(pClient, RTFTPSERVER_REPLY_READY_FOR_NEW_USER);
    470470    if (RT_SUCCESS(rc))
    471471    {
     
    476476        if (RT_SUCCESS(rc))
    477477        {
    478             rc = rtFTPServerLookupUser(pClient, szUser);
     478            rc = rtFtpServerLookupUser(pClient, szUser);
    479479            if (RT_SUCCESS(rc))
    480480            {
    481                 rc = rtFTPServerSendReplyRc(pClient, RTFTPSERVER_REPLY_USERNAME_OKAY_NEED_PASSWORD);
     481                rc = rtFtpServerSendReplyRc(pClient, RTFTPSERVER_REPLY_USERNAME_OKAY_NEED_PASSWORD);
    482482                if (RT_SUCCESS(rc))
    483483                {
     
    487487                        if (RT_SUCCESS(rc))
    488488                        {
    489                             rc = rtFTPServerAuthenticate(pClient, szUser, szPass);
     489                            rc = rtFtpServerAuthenticate(pClient, szUser, szPass);
    490490                            if (RT_SUCCESS(rc))
    491491                            {
    492                                 rc = rtFTPServerSendReplyRc(pClient, RTFTPSERVER_REPLY_LOGGED_IN_PROCEED);
     492                                rc = rtFtpServerSendReplyRc(pClient, RTFTPSERVER_REPLY_LOGGED_IN_PROCEED);
    493493                            }
    494494                        }
     
    501501    if (RT_FAILURE(rc))
    502502    {
    503         int rc2 = rtFTPServerSendReplyRc(pClient, RTFTPSERVER_REPLY_NOT_LOGGED_IN);
     503        int rc2 = rtFtpServerSendReplyRc(pClient, RTFTPSERVER_REPLY_NOT_LOGGED_IN);
    504504        if (RT_SUCCESS(rc))
    505505            rc = rc2;
     
    515515 * @param   pcszCmdParms        Pointer to command arguments, if any. Can be NULL if no arguments are given.
    516516 * @param   pcArgs              Returns the number of parsed arguments, separated by a space (hex 0x20).
    517  * @param   ppapcszArgs         Returns the string array of parsed arguments. Needs to be free'd with rtFTPServerCmdArgsFree().
    518  */
    519 static int rtFTPServerCmdArgsParse(const char *pcszCmdParms, uint8_t *pcArgs, char ***ppapcszArgs)
     517 * @param   ppapcszArgs         Returns the string array of parsed arguments. Needs to be free'd with rtFtpServerCmdArgsFree().
     518 */
     519static int rtFtpServerCmdArgsParse(const char *pcszCmdParms, uint8_t *pcArgs, char ***ppapcszArgs)
    520520{
    521521    *pcArgs      = 0;
     
    544544
    545545/**
    546  * Frees a formerly argument string array parsed by rtFTPServerCmdArgsParse().
     546 * Frees a formerly argument string array parsed by rtFtpServerCmdArgsParse().
    547547 *
    548548 * @param   ppapcszArgs         Argument string array to free.
    549549 */
    550 static void rtFTPServerCmdArgsFree(char **ppapcszArgs)
     550static void rtFtpServerCmdArgsFree(char **ppapcszArgs)
    551551{
    552552    RTGetOptArgvFree(ppapcszArgs);
     
    559559 * @param   pClient             Client to process commands for.
    560560 */
    561 static int rtFTPServerProcessCommands(PRTFTPSERVERCLIENT pClient)
     561static int rtFtpServerProcessCommands(PRTFTPSERVERCLIENT pClient)
    562562{
    563563    int rc;
     
    589589            uint8_t cArgs     = 0;
    590590            char  **papszArgs = NULL;
    591             rc = rtFTPServerCmdArgsParse(pszCmdParms, &cArgs, &papszArgs);
     591            rc = rtFtpServerCmdArgsParse(pszCmdParms, &cArgs, &papszArgs);
    592592            if (RT_SUCCESS(rc))
    593593            {
     
    605605                }
    606606
    607                 rtFTPServerCmdArgsFree(papszArgs);
     607                rtFtpServerCmdArgsFree(papszArgs);
    608608
    609609                if (i == RT_ELEMENTS(g_aCmdMap))
    610610                {
    611                     int rc2 = rtFTPServerSendReplyRc(pClient, RTFTPSERVER_REPLY_ERROR_CMD_NOT_IMPL);
     611                    int rc2 = rtFtpServerSendReplyRc(pClient, RTFTPSERVER_REPLY_ERROR_CMD_NOT_IMPL);
    612612                    if (RT_SUCCESS(rc))
    613613                        rc = rc2;
     
    622622            else
    623623            {
    624                 int rc2 = rtFTPServerSendReplyRc(pClient, RTFTPSERVER_REPLY_ERROR_INVALID_PARAMETERS);
     624                int rc2 = rtFtpServerSendReplyRc(pClient, RTFTPSERVER_REPLY_ERROR_INVALID_PARAMETERS);
    625625                if (RT_SUCCESS(rc))
    626626                    rc = rc2;
     
    629629        else
    630630        {
    631             int rc2 = rtFTPServerSendReplyRc(pClient, RTFTPSERVER_REPLY_ERROR_CMD_NOT_RECOGNIZED);
     631            int rc2 = rtFtpServerSendReplyRc(pClient, RTFTPSERVER_REPLY_ERROR_CMD_NOT_RECOGNIZED);
    632632            if (RT_SUCCESS(rc))
    633633                rc = rc2;
     
    643643 * @param   pState              Client state to reset.
    644644 */
    645 static void rtFTPServerClientStateReset(PRTFTPSERVERCLIENTSTATE pState)
     645static void rtFtpServerClientStateReset(PRTFTPSERVERCLIENTSTATE pState)
    646646{
    647647    pState->tsLastCmdMs = RTTimeMilliTS();
     
    655655 * @param   pvUser              User-provided arguments. Of type PRTFTPSERVERINTERNAL.
    656656 */
    657 static DECLCALLBACK(int) rtFTPServerClientThread(RTSOCKET hSocket, void *pvUser)
     657static DECLCALLBACK(int) rtFtpServerClientThread(RTSOCKET hSocket, void *pvUser)
    658658{
    659659    PRTFTPSERVERINTERNAL pThis = (PRTFTPSERVERINTERNAL)pvUser;
     
    666666    Client.hSocket     = hSocket;
    667667
    668     rtFTPServerClientStateReset(&Client.State);
    669 
    670     int rc = rtFTPServerDoLogin(&Client);
     668    rtFtpServerClientStateReset(&Client.State);
     669
     670    int rc = rtFtpServerDoLogin(&Client);
    671671    if (RT_SUCCESS(rc))
    672672    {
    673673        ASMAtomicIncU32(&pThis->cClients);
    674674
    675         rc = rtFTPServerProcessCommands(&Client);
     675        rc = rtFtpServerProcessCommands(&Client);
    676676
    677677        ASMAtomicDecU32(&pThis->cClients);
     
    681681}
    682682
    683 RTR3DECL(int) RTFTPServerCreate(PRTFTPSERVER phFTPServer, const char *pcszAddress, uint16_t uPort,
     683RTR3DECL(int) RTFtpServerCreate(PRTFTPSERVER phFTPServer, const char *pcszAddress, uint16_t uPort,
    684684                                PRTFTPSERVERCALLBACKS pCallbacks)
    685685{
     
    698698
    699699        rc = RTTcpServerCreate(pcszAddress, uPort, RTTHREADTYPE_DEFAULT, "ftpsrv",
    700                                rtFTPServerClientThread, pThis /* pvUser */, &pThis->pTCPServer);
     700                               rtFtpServerClientThread, pThis /* pvUser */, &pThis->pTCPServer);
    701701    }
    702702    else
     
    706706}
    707707
    708 RTR3DECL(int) RTFTPServerDestroy(RTFTPSERVER hFTPServer)
     708RTR3DECL(int) RTFtpServerDestroy(RTFTPSERVER hFTPServer)
    709709{
    710710    if (hFTPServer == NIL_RTFTPSERVER)
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette