VirtualBox

Changeset 21864 in vbox


Ignore:
Timestamp:
Jul 29, 2009 2:09:25 PM (16 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
50503
Message:

NAT: globals

Location:
trunk/src/VBox/Devices/Network/slirp
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Network/slirp/libalias/alias_ftp.c

    r20958 r21864  
    150150mod_handler(module_t mod, int type, void *data)
    151151#else
    152 static int ftp_alias_handler(int type);
     152static int ftp_alias_handler(PNATState pData, int type);
    153153
    154154int
    155 ftp_alias_load(void)
    156 {
    157     return ftp_alias_handler(MOD_LOAD);
     155ftp_alias_load(PNATState pData)
     156{
     157    return ftp_alias_handler(pData, MOD_LOAD);
    158158}
    159159
    160160int
    161 ftp_alias_unload(void)
    162 {
    163     return ftp_alias_handler(MOD_UNLOAD);
     161ftp_alias_unload(PNATState pData)
     162{
     163    return ftp_alias_handler(pData, MOD_UNLOAD);
    164164}
    165165static int
    166 ftp_alias_handler(int type)
     166ftp_alias_handler(PNATState pData, int type)
    167167#endif
    168168{
     
    180180    case MOD_LOAD:
    181181        error = 0;
     182#ifdef VBOX
     183        LibAliasAttachHandlers(pData, handlers);
     184#else
    182185        LibAliasAttachHandlers(handlers);
     186#endif
    183187        break;
    184188    case MOD_UNLOAD:
    185189        error = 0;
     190#ifdef VBOX
     191        LibAliasDetachHandlers(pData, handlers);
     192#else
    186193        LibAliasDetachHandlers(handlers);
     194#endif
    187195        break;
    188196    default:
  • trunk/src/VBox/Devices/Network/slirp/libalias/alias_mod.c

    r20958 r21864  
    5252#include "alias_mod.h"
    5353#endif
     54
     55/* Protocol and userland module handlers chains. */
     56LIST_HEAD(handler_chain, proto_handler) handler_chain = LIST_HEAD_INITIALIZER(foo);
    5457#else /* !VBOX */
    5558# include <slirp.h>
     
    5760# include "alias_mod.h"
    5861#endif /* VBOX */
    59 
    60 /* Protocol and userland module handlers chains. */
    61 LIST_HEAD(handler_chain, proto_handler) handler_chain = LIST_HEAD_INITIALIZER(foo);
    6262#ifdef _KERNEL
    6363struct rwlock   handler_rw;
     
    138138
    139139static int
     140#ifdef VBOX
     141_attach_handler(PNATState pData, struct proto_handler *p)
     142#else
    140143_attach_handler(struct proto_handler *p)
     144#endif
    141145{
    142146    struct proto_handler *b = NULL;
     
    162166
    163167static int
     168#ifdef VBOX
     169_detach_handler(PNATState pData, struct proto_handler *p)
     170#else
    164171_detach_handler(struct proto_handler *p)
     172#endif
    165173{
    166174    struct proto_handler *b, *b_tmp;;
     
    177185
    178186int
     187#ifdef VBOX
     188LibAliasAttachHandlers(PNATState pData, struct proto_handler *_p)
     189#else
    179190LibAliasAttachHandlers(struct proto_handler *_p)
     191#endif
    180192{
    181193    int i, error = -1;
     
    185197        if (*((int *)&_p[i]) == EOH)
    186198            break;
     199#ifdef VBOX
     200        error = _attach_handler(pData, &_p[i]);
     201#else
    187202        error = _attach_handler(&_p[i]);
     203#endif
    188204        if (error != 0)
    189205            break;
     
    194210
    195211int
     212#ifdef VBOX
     213LibAliasDetachHandlers(PNATState pData, struct proto_handler *_p)
     214#else
    196215LibAliasDetachHandlers(struct proto_handler *_p)
     216#endif
    197217{
    198218    int i, error = -1;
     
    202222        if (*((int *)&_p[i]) == EOH)
    203223            break;
     224#ifdef VBOX
     225        error = _detach_handler(pData, &_p[i]);
     226#else
    204227        error = _detach_handler(&_p[i]);
     228#endif
    205229        if (error != 0)
    206230            break;
     
    211235
    212236int
     237#ifdef VBOX
     238detach_handler(PNATState pData, struct proto_handler *_p)
     239#else
    213240detach_handler(struct proto_handler *_p)
     241#endif
    214242{
    215243    int error = -1;
    216244
    217245    LIBALIAS_WLOCK();
     246#ifdef VBOX
     247    error = _detach_handler(pData, _p);
     248#else
    218249    error = _detach_handler(_p);
     250#endif
    219251    LIBALIAS_WUNLOCK();
    220252    return (error);
     
    225257         struct alias_data *ad)
    226258{
     259#ifdef VBOX
     260    PNATState pData = la->pData;
     261#endif
    227262    struct proto_handler *p;
    228263    int error = ENOENT;
     
    242277
    243278struct proto_handler *
     279#ifdef VBOX
     280first_handler(PNATState pData)
     281#else
    244282first_handler(void)
     283#endif
    245284{
    246285   
  • trunk/src/VBox/Devices/Network/slirp/libalias/alias_mod.h

    r20958 r21864  
    116116void            handler_chain_init(void);
    117117void            handler_chain_destroy(void);
     118#ifdef VBOX
     119int             LibAliasAttachHandlers(PNATState pData, struct proto_handler *);
     120int             LibAliasDetachHandlers(PNATState pData, struct proto_handler *);
     121int             detach_handler(PNATState pData, struct proto_handler *);
     122struct proto_handler *first_handler(PNATState pData);
     123#else
    118124int             LibAliasAttachHandlers(struct proto_handler *);
    119125int             LibAliasDetachHandlers(struct proto_handler *);
    120126int             detach_handler(struct proto_handler *);
     127struct proto_handler *first_handler(void);
     128#endif
    121129int             find_handler(int8_t, int8_t, struct libalias *,
    122                struct ip *, struct alias_data *);
    123 struct proto_handler *first_handler(void);
     130                             struct ip *, struct alias_data *);
    124131
    125132/* Functions used with dll module. */
  • trunk/src/VBox/Devices/Network/slirp/libalias/alias_nbt.c

    r20958 r21864  
    169169mod_handler(module_t mod, int type, void *data)
    170170#else /*!VBOX*/
    171 static int nbt_alias_handler(int type);
     171static int nbt_alias_handler(PNATState pData, int type);
    172172
    173173int
    174 nbt_alias_load()
    175 {
    176     return nbt_alias_handler(MOD_LOAD);
     174nbt_alias_load(PNATState pData)
     175{
     176    return nbt_alias_handler(pData, MOD_LOAD);
    177177}
    178178
    179179int
    180 nbt_alias_unload()
    181 {
    182     return nbt_alias_handler(MOD_UNLOAD);
     180nbt_alias_unload(PNATState pData)
     181{
     182    return nbt_alias_handler(pData, MOD_UNLOAD);
    183183}
    184184static int
    185 nbt_alias_handler(int type)
     185nbt_alias_handler(PNATState pData, int type)
    186186#endif /*VBOX*/
    187187{
     
    215215    case MOD_LOAD:
    216216        error = 0;
     217#ifdef VBOX
     218        LibAliasAttachHandlers(pData, handlers);
     219#else
    217220        LibAliasAttachHandlers(handlers);
     221#endif
    218222        break;
    219223    case MOD_UNLOAD:
    220224        error = 0;
     225#ifdef VBOX
     226        LibAliasDetachHandlers(pData, handlers);
     227#else
    221228        LibAliasDetachHandlers(handlers);
     229#endif
    222230        break;
    223231    default:
  • trunk/src/VBox/Devices/Network/slirp/slirp.c

    r21698 r21864  
    557557        proxy_addr.s_addr = htonl(ntohl(special_addr.s_addr) | CTL_ALIAS);
    558558        LibAliasSetAddress(pData->proxy_alias, proxy_addr);
    559         ftp_alias_load();
    560         nbt_alias_load();
     559        ftp_alias_load(pData);
     560        nbt_alias_load(pData);
    561561
    562562    }
     
    657657    slirp_link_down(pData);
    658658    slirp_release_dns_list(pData);
    659     ftp_alias_unload();
    660     nbt_alias_unload();
     659    ftp_alias_unload(pData);
     660    nbt_alias_unload(pData);
    661661#ifdef VBOX_WITH_SLIRP_ALIAS
    662662    while(!LIST_EMPTY(&instancehead)) {
  • trunk/src/VBox/Devices/Network/slirp/slirp.h

    r20959 r21864  
    407407
    408408#ifdef VBOX_WITH_SLIRP_ALIAS
    409 int ftp_alias_load(void);
    410 int ftp_alias_unload(void);
    411 int nbt_alias_load(void);
    412 int nbt_alias_unload(void);
     409int ftp_alias_load(PNATState);
     410int ftp_alias_unload(PNATState);
     411int nbt_alias_load(PNATState);
     412int nbt_alias_unload(PNATState);
    413413#endif /*VBOX_WITH_SLIRP_ALIAS*/
    414414
  • trunk/src/VBox/Devices/Network/slirp/slirp_state.h

    r21101 r21864  
    229229    LIST_HEAD(RT_NOTHING, libalias) instancehead;
    230230    struct libalias *proxy_alias;
     231    LIST_HEAD(handler_chain, proto_handler) handler_chain;
    231232#endif
    232233
     
    315316#ifndef VBOX_SLIRP_ALIAS
    316317# define alias_addr pData->alias_addr
     318#else
     319# define handler_chain pData->handler_chain
    317320#endif
    318321#define special_addr pData->special_addr
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