VirtualBox

Changeset 20053 in vbox for trunk/src/VBox/Devices/Network


Ignore:
Timestamp:
May 27, 2009 1:52:00 AM (16 years ago)
Author:
vboxsync
Message:

NAT: LibAlias enabling + tcp_emu replaced with ftp_module

Location:
trunk/src/VBox/Devices/Network
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Network/DrvNAT.cpp

    r19074 r20053  
    385385            /* only check for slow/fast timers */
    386386            slirp_select_poll(pThis->pNATState, /* fTimeout=*/true, /*fIcmp=*/false);
    387             Log2(("%s: timeout\n", __FUNCTION__));
    388387            continue;
    389388        }
  • trunk/src/VBox/Devices/Network/slirp/ip_input.c

    r19977 r20053  
    8383
    8484    ipstat.ips_total++;
     85#ifdef VBOX_WITH_SLIRP_ALIAS
     86    {
     87        int rc;
     88        rc = LibAliasIn(LIST_FIRST(&instancehead), mtod(m, char *), m->m_len);
     89        Log2(("NAT: LibAlias return %d\n", rc));
     90    }
     91#endif
    8592
    8693    if (m->m_len < sizeof(struct ip))
     
    174181     * Switch out to protocol's input routine.
    175182     */
    176 #ifdef VBOX_WITH_SLIRP_ALIAS
    177     {
    178         int rc;
    179         rc = LibAliasIn(LIST_FIRST(&instancehead), mtod(m, char *), ip->ip_len);
    180         Log2(("NAT: LibAlias return %d\n", rc));
    181     }
    182 #endif
    183183    ipstat.ips_delivered++;
    184184    switch (ip->ip_p)
  • trunk/src/VBox/Devices/Network/slirp/ip_output.c

    r19981 r20053  
    4444
    4545#include <slirp.h>
     46#ifdef VBOX_WITH_SLIRP_ALIAS
     47# include "alias.h"
     48#endif
    4649
    4750#ifdef VBOX_WITHOUT_SLIRP_CLIENT_ETHER
     
    147150        }
    148151#endif
     152#ifdef VBOX_WITH_SLIRP_ALIAS
     153        {
     154            int rc;
     155            rc = LibAliasOut(LIST_FIRST(&instancehead), mtod(m, char *), m->m_len);
     156            Log2(("NAT: LibAlias return %d\n", rc));
     157        }
     158#endif
    149159
    150160        if_output(pData, so, m);
     
    241251        ip->ip_sum = 0;
    242252        ip->ip_sum = cksum(m, hlen);
     253#ifdef VBOX_WITH_SLIRP_ALIAS
     254        {
     255            int rc;
     256            rc = LibAliasOut(LIST_FIRST(&instancehead), mtod(m, char *), m->m_len);
     257            Log2(("NAT: LibAlias return %d\n", rc));
     258        }
     259#endif
    243260
    244261sendorfree:
     
    248265            m->m_nextpkt = 0;
    249266            if (error == 0)
     267            {
     268#ifdef VBOX_WITH_SLIRP_ALIAS
     269            {
     270                int rc;
     271                rc = LibAliasOut(LIST_FIRST(&instancehead), mtod(m, char *), m->m_len);
     272                Log2(("NAT: LibAlias return %d\n", rc));
     273            }
     274#endif
    250275                if_output(pData, so, m);
    251             else
     276            }
     277            else
     278            {
    252279                m_freem(pData, m);
     280            }
    253281        }
    254282
  • trunk/src/VBox/Devices/Network/slirp/slirp.c

    r20016 r20053  
    687687    {
    688688        struct libalias *lib = NULL;
     689        int flags = 0;
    689690        lib = LibAliasInit(pData, NULL);
    690691        if (lib == NULL)
     
    693694            AssertMsgFailed(("NAT: LibAlias default rule wasn't initialized\n"));
    694695        }
     696        flags = LibAliasSetMode(lib, 0, 0);
     697        flags |= PKT_ALIAS_LOG; /* set logging */
     698        flags = LibAliasSetMode(lib, flags, ~0);
    695699        LibAliasSetAddress(lib, special_addr);
     700        ftp_alias_load();
    696701       
    697702    }
  • trunk/src/VBox/Devices/Network/slirp/slirp.h

    r19977 r20053  
    391391#  define __unused
    392392# endif
    393 #endif
    394 #endif
     393
     394# define strncasecmp RTStrNICmp
     395
     396# define LIBALIAS_DEBUG
     397# ifdef fprintf
     398#   undef fprintf
     399#   define fprintf vbox_slirp_fprintf
     400# endif /*fprintf*/
     401static inline void vbox_slirp_fprintf(void *ignored, char *msg, ...)
     402{
     403/*  define LogIt(pvInst, fFlags, iGroup, fmtargs) */
     404    va_list args;
     405    register PRTLOGGER LogIt_pLogger;
     406    char buffer[2048];
     407    memset(buffer, 0, 2048);
     408    memcpy(buffer, "NAT: ALIAS:", 11);
     409    va_start(args, msg);
     410    RTStrPrintfV(&buffer[11], 2048 - 11, msg, args);
     411
     412    LogIt_pLogger = (PRTLOGGER)(LOG_INSTANCE) ?
     413        (PRTLOGGER)(LOG_INSTANCE) : RTLogDefaultInstance();
     414    if (LogIt_pLogger)
     415    {
     416        RTLogPrintfEx(LogIt_pLogger,
     417                ((RTLOGGRPFLAGS_LEVEL_2) | RTLOGGRPFLAGS_ENABLED), LOG_GROUP,
     418                msg, buffer);
     419    }
     420    va_end(args);
     421}
     422#endif /*VBOX_WITH_SLIRP_ALIAS && VBOX_SLIRP_ALIAS*/
     423
     424#ifdef VBOX_WITH_SLIRP_ALIAS
     425int ftp_alias_load();
     426int ftp_alias_unload();
     427#endif /*VBOX_WITH_SLIRP_ALIAS*/
     428
     429#endif
  • trunk/src/VBox/Devices/Network/slirp/tcp_subr.c

    r19313 r20053  
    659659tcp_emu(PNATState pData, struct socket *so, struct mbuf *m)
    660660{
     661#ifndef VBOX_WITH_SLIRP_ALIAS
    661662    u_int n1, n2, n3, n4, n5, n6;
    662663    char buff[256];
     
    10071008            return 1;
    10081009    }
    1009 }
     1010#else /* !VBOX_WITH_SLIRP_ALIAS */
     1011    /*XXX: libalias should care about it */
     1012    so->so_emu = 0;
     1013    return 1;
     1014#endif
     1015}
Note: See TracChangeset for help on using the changeset viewer.

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