1*cd6bf844Sho /* $OpenBSD: virtual.h,v 1.1 2004/06/20 15:24:05 ho Exp $ */ 2*cd6bf844Sho 3*cd6bf844Sho /* 4*cd6bf844Sho * Copyright (c) 2004 H�kan Olsson. All rights reserved. 5*cd6bf844Sho * 6*cd6bf844Sho * Redistribution and use in source and binary forms, with or without 7*cd6bf844Sho * modification, are permitted provided that the following conditions 8*cd6bf844Sho * are met: 9*cd6bf844Sho * 1. Redistributions of source code must retain the above copyright 10*cd6bf844Sho * notice, this list of conditions and the following disclaimer. 11*cd6bf844Sho * 2. Redistributions in binary form must reproduce the above copyright 12*cd6bf844Sho * notice, this list of conditions and the following disclaimer in the 13*cd6bf844Sho * documentation and/or other materials provided with the distribution. 14*cd6bf844Sho * 15*cd6bf844Sho * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR 16*cd6bf844Sho * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES 17*cd6bf844Sho * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. 18*cd6bf844Sho * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 19*cd6bf844Sho * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 20*cd6bf844Sho * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 21*cd6bf844Sho * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 22*cd6bf844Sho * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 23*cd6bf844Sho * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 24*cd6bf844Sho * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 25*cd6bf844Sho */ 26*cd6bf844Sho 27*cd6bf844Sho #ifndef _TRP_VIRTUAL_H_ 28*cd6bf844Sho #define _TRP_VIRTUAL_H_ 29*cd6bf844Sho 30*cd6bf844Sho struct virtual_transport { 31*cd6bf844Sho struct transport transport; 32*cd6bf844Sho struct transport *main; /* Normally this transport is used. */ 33*cd6bf844Sho struct transport *encap; /* Or this, depending on 'encap_is_active'. */ 34*cd6bf844Sho int encap_is_active; 35*cd6bf844Sho LIST_ENTRY (virtual_transport) link; 36*cd6bf844Sho }; 37*cd6bf844Sho 38*cd6bf844Sho void virtual_init(void); 39*cd6bf844Sho struct virtual_transport *virtual_get_default(sa_family_t); 40*cd6bf844Sho struct virtual_transport *virtual_listen_lookup(struct sockaddr *); 41*cd6bf844Sho 42*cd6bf844Sho #endif /* _TRP_VIRTUAL_H_ */ 43