comparison libpurple/nat-pmp.h @ 15856:9b875f0ecb86

nat-pmp is now functional with a compatible router. I'm not enabling this code yet because it hasn't been tested with a router which doesn't support nat-pmp.
author Evan Schoenberg <evan.s@dreskin.net>
date Thu, 22 Mar 2007 12:51:33 +0000
parents 32c366eeeb99
children 9cfe41743c65
comparison
equal deleted inserted replaced
15855:5ec2374087de 15856:9b875f0ecb86
39 #include <sys/sysctl.h> 39 #include <sys/sysctl.h>
40 #include <sys/types.h> 40 #include <sys/types.h>
41 #include <net/if.h> 41 #include <net/if.h>
42 #include <net/route.h> 42 #include <net/route.h>
43 43
44 #define PMP_VERSION 0 44 #define PURPLE_PMP_LIFETIME 3600 // 3600 seconds
45 #define PMP_PORT 5351
46 #define PMP_TIMEOUT 250000 // 250000 useconds
47 #define PMP_LIFETIME 3600 // 3600 seconds
48
49 #define PMP_MAP_UDP 1
50 #define PMP_MAP_TCP 2
51 45
52 /* 46 /*
53 * uint8_t: version, opcodes 47 * uint8_t: version, opcodes
54 * uint16_t: resultcode 48 * uint16_t: resultcode
55 * unint32_t: epoch (seconds since mappings reset) 49 * unint32_t: epoch (seconds since mappings reset)
56 */ 50 */
51
52 typedef enum {
53 PURPLE_PMP_TYPE_UDP,
54 PURPLE_PMP_TYPE_TCP
55 } PurplePmpType;
57 56
58 typedef struct { 57 typedef struct {
59 uint8_t version; 58 uint8_t version;
60 uint8_t opcode; 59 uint8_t opcode;
61 } pmp_ip_request_t; 60 } pmp_ip_request_t;
86 uint16_t publicport; 85 uint16_t publicport;
87 uint32_t lifetime; 86 uint32_t lifetime;
88 } pmp_map_response_t; 87 } pmp_map_response_t;
89 88
90 char *purple_pmp_get_public_ip(); 89 char *purple_pmp_get_public_ip();
91 pmp_map_response_t *purple_pmp_create_map(uint8_t type, uint16_t privateport, uint16_t publicport, uint32_t lifetime); 90 pmp_map_response_t *purple_pmp_create_map(PurplePmpType type, uint16_t privateport, uint16_t publicport, uint32_t lifetime);
92 pmp_map_response_t *purple_pmp_destroy_map(uint8_t type, uint16_t privateport); 91 pmp_map_response_t *purple_pmp_destroy_map(PurplePmpType type, uint16_t privateport);
93 92
94 #endif 93 #endif