Frameworks/libpurple.framework/Versions/2.10.12r8d2874a79747/Headers/nat-pmp.h
branchadium-1.5.11
changeset 6014 fcb71cb71a3d
parent 5941 307f53385811
parent 6013 f8d0dc659e3f
child 6016 325e2ab3406f
equal deleted inserted replaced
5941:307f53385811 6014:fcb71cb71a3d
     1 /**
       
     2  * @file nat-pmp.h NAT-PMP Implementation
       
     3  * @ingroup core
       
     4  */
       
     5 
       
     6 /* purple
       
     7  *
       
     8  * Purple is the legal property of its developers, whose names are too numerous
       
     9  * to list here.  Please refer to the COPYRIGHT file distributed with this
       
    10  * source distribution.
       
    11  *
       
    12  * Most code in nat-pmp.h copyright (C) 2007, R. Tyler Ballance, bleep, LLC.
       
    13  * This file is distributed under the 3-clause (modified) BSD license:
       
    14  * Redistribution and use in source and binary forms, with or without modification, are permitted
       
    15  * provided that the following conditions are met:
       
    16  *
       
    17  * Redistributions of source code must retain the above copyright notice, this list of conditions and
       
    18  * the following disclaimer.
       
    19  * Neither the name of the bleep. LLC nor the names of its contributors may be used to endorse or promote
       
    20  * products derived from this software without specific prior written permission.
       
    21  *
       
    22  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
       
    23  * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
       
    24  * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
       
    25  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
       
    26  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
       
    27  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
       
    28  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
       
    29  * OF SUCH DAMAGE.
       
    30  */
       
    31 
       
    32 #ifndef _PURPLE_NAT_PMP_H
       
    33 #define _PURPLE_NAT_PMP_H
       
    34 
       
    35 #include <glib.h>
       
    36 
       
    37 #define PURPLE_PMP_LIFETIME	3600	/* 3600 seconds */
       
    38 
       
    39 typedef enum {
       
    40 	PURPLE_PMP_TYPE_UDP,
       
    41 	PURPLE_PMP_TYPE_TCP
       
    42 } PurplePmpType;
       
    43 
       
    44 /**
       
    45  * Initialize nat-pmp
       
    46  */
       
    47 void purple_pmp_init(void);
       
    48 
       
    49 /**
       
    50  *
       
    51  */
       
    52 char *purple_pmp_get_public_ip(void);
       
    53 
       
    54 /**
       
    55  * Remove the NAT-PMP mapping for a specified type on a specified port
       
    56  *
       
    57  * @param type The PurplePmpType
       
    58  * @param privateport The private port on which we are listening locally
       
    59  * @param publicport The public port on which we are expecting a response
       
    60  * @param lifetime The lifetime of the mapping. It is recommended that this be PURPLE_PMP_LIFETIME.
       
    61  *
       
    62  * @returns TRUE if succesful; FALSE if unsuccessful
       
    63  */
       
    64 gboolean purple_pmp_create_map(PurplePmpType type, unsigned short privateport, unsigned short publicport, int lifetime);
       
    65 
       
    66 /**
       
    67  * Remove the NAT-PMP mapping for a specified type on a specified port
       
    68  *
       
    69  * @param type The PurplePmpType
       
    70  * @param privateport The private port on which the mapping was previously made
       
    71  *
       
    72  * @returns TRUE if succesful; FALSE if unsuccessful
       
    73  */
       
    74 gboolean purple_pmp_destroy_map(PurplePmpType type, unsigned short privateport);
       
    75 
       
    76 #endif
       
    77