Changeset 1323:ad8d25a78446 in roaraudio for include/libroar/vio_dstr.h


Ignore:
Timestamp:
03/22/09 20:11:03 (15 years ago)
Author:
phi
Branch:
default
Phase:
public
Message:

added dstr types, added some meta funcs, wrote basic dstr parser

File:
1 edited

Legend:

Unmodified
Added
Removed
  • include/libroar/vio_dstr.h

    r1321 r1323  
    3838#include "libroar.h" 
    3939 
     40#define ROAR_VIO_DEF_TYPE_EOL            -1  
     41#define ROAR_VIO_DEF_TYPE_NONE            0 
     42#define ROAR_VIO_DEF_TYPE_FILE            1 
     43#define ROAR_VIO_DEF_TYPE_SOCKET          2 
     44#define ROAR_VIO_DEF_TYPE_FH              3 
     45#define ROAR_VIO_DEF_TYPE_SOCKETFH        4 
     46 
     47#define ROAR_VIO_DSTR_OBJGT_INTERNAL      0x0000 
     48#define ROAR_VIO_DSTR_OBJGT_GEN           0x0100 
     49#define ROAR_VIO_DSTR_OBJGT_SOCKET        0x0200 
     50#define ROAR_VIO_DSTR_OBJGT_PROXY         0x0300 
     51#define ROAR_VIO_DSTR_OBJGT_COMP          0x0400 /* compression */ 
     52#define ROAR_VIO_DSTR_OBJGT_CRYPT         0x0500 
     53#define ROAR_VIO_DSTR_OBJGT_PROTO         0x0600 /* protocolls like HTTP and Gopher */ 
     54#define ROAR_VIO_DSTR_OBJGT_SPECAL        0xff00 
     55 
     56#define ROAR_VIO_DSTR_OBJT_EOL           -1 
     57#define ROAR_VIO_DSTR_OBJT_NONE           0 
     58#define ROAR_VIO_DSTR_OBJT_INTERNAL       1 
     59 
     60#define ROAR_VIO_DSTR_OBJT_FILE           (0x01|ROAR_VIO_DSTR_OBJGT_GEN) 
     61#define ROAR_VIO_DSTR_OBJT_FH             (0x02|ROAR_VIO_DSTR_OBJGT_GEN) 
     62#define ROAR_VIO_DSTR_OBJT_SOCKETFH       (0x03|ROAR_VIO_DSTR_OBJGT_GEN) 
     63/* some space to add memory FHs and the like */ 
     64#define ROAR_VIO_DSTR_OBJT_PASS           (0x10|ROAR_VIO_DSTR_OBJGT_GEN) 
     65#define ROAR_VIO_DSTR_OBJT_RE             (0x11|ROAR_VIO_DSTR_OBJGT_GEN) 
     66#define ROAR_VIO_DSTR_OBJT_EXEC           (0x20|ROAR_VIO_DSTR_OBJGT_GEN) 
     67 
     68#define ROAR_VIO_DSTR_OBJT_SOCKET         (0x01|ROAR_VIO_DSTR_OBJGT_SOCKET) 
     69#define ROAR_VIO_DSTR_OBJT_UNIX           (0x02|ROAR_VIO_DSTR_OBJGT_SOCKET) 
     70#define ROAR_VIO_DSTR_OBJT_DECNET         (0x10|ROAR_VIO_DSTR_OBJGT_SOCKET) 
     71#define ROAR_VIO_DSTR_OBJT_TCP            (0x21|ROAR_VIO_DSTR_OBJGT_SOCKET) 
     72#define ROAR_VIO_DSTR_OBJT_UDP            (0x22|ROAR_VIO_DSTR_OBJGT_SOCKET) 
     73#define ROAR_VIO_DSTR_OBJT_TCP6           (0x31|ROAR_VIO_DSTR_OBJGT_SOCKET) 
     74#define ROAR_VIO_DSTR_OBJT_UDP6           (0x32|ROAR_VIO_DSTR_OBJGT_SOCKET) 
     75 
     76#define ROAR_VIO_DSTR_OBJT_SOCKS          (0x10|ROAR_VIO_DSTR_OBJGT_PROXY) 
     77#define ROAR_VIO_DSTR_OBJT_SOCKS4         (0x14|ROAR_VIO_DSTR_OBJGT_PROXY) 
     78#define ROAR_VIO_DSTR_OBJT_SOCKS4A        (0x1a|ROAR_VIO_DSTR_OBJGT_PROXY) 
     79#define ROAR_VIO_DSTR_OBJT_SOCKS4D        (0x1d|ROAR_VIO_DSTR_OBJGT_PROXY) 
     80#define ROAR_VIO_DSTR_OBJT_SOCKS5         (0x15|ROAR_VIO_DSTR_OBJGT_PROXY) 
     81#define ROAR_VIO_DSTR_OBJT_SSH            (0x21|ROAR_VIO_DSTR_OBJGT_PROXY) 
     82//#define ROAR_VIO_DSTR_OBJT_HTTP           (0x31|ROAR_VIO_DSTR_OBJGT_PROXY) 
     83 
     84//#define ROAR_VIO_DSTR_OBJT_HTTP           (0x10|ROAR_VIO_DSTR_OBJGT_PROTO) 
     85#define ROAR_VIO_DSTR_OBJT_HTTP09         (0x11|ROAR_VIO_DSTR_OBJGT_PROTO) 
     86#define ROAR_VIO_DSTR_OBJT_HTTP10         (0x12|ROAR_VIO_DSTR_OBJGT_PROTO) 
     87#define ROAR_VIO_DSTR_OBJT_HTTP11         (0x13|ROAR_VIO_DSTR_OBJGT_PROTO) 
     88#define ROAR_VIO_DSTR_OBJT_HTTP           ROAR_VIO_DSTR_OBJT_HTTP11 
     89#define ROAR_VIO_DSTR_OBJT_GOPHER         (0x21|ROAR_VIO_DSTR_OBJGT_PROTO) 
     90 
     91/* 
     92#define ROAR_VIO_DSTR_OBJGT_CRYPT         0x0500 
     93*/ 
     94 
     95#define ROAR_VIO_DSTR_OBJT_GZIP           (0x10|ROAR_VIO_DSTR_OBJGT_COMP) 
     96#define ROAR_VIO_DSTR_OBJT_BZIP2          (0x22|ROAR_VIO_DSTR_OBJGT_COMP) 
     97 
     98#define ROAR_VIO_DSTR_OBJT_PGP            (0x10|ROAR_VIO_DSTR_OBJGT_CRYPT) 
     99#define ROAR_VIO_DSTR_OBJT_PGP_ENC        (0x11|ROAR_VIO_DSTR_OBJGT_CRYPT) 
     100#define ROAR_VIO_DSTR_OBJT_PGP_STORE      (0x11|ROAR_VIO_DSTR_OBJGT_CRYPT) 
     101#define ROAR_VIO_DSTR_OBJT_SSL1           (0x21|ROAR_VIO_DSTR_OBJGT_CRYPT) 
     102#define ROAR_VIO_DSTR_OBJT_SSL2           (0x22|ROAR_VIO_DSTR_OBJGT_CRYPT) 
     103#define ROAR_VIO_DSTR_OBJT_SSL3           (0x23|ROAR_VIO_DSTR_OBJGT_CRYPT) 
     104#define ROAR_VIO_DSTR_OBJT_TLS            (0x2a|ROAR_VIO_DSTR_OBJGT_CRYPT) 
     105#define ROAR_VIO_DSTR_OBJT_SSLTLS         ROAR_VIO_DSTR_OBJT_TLS 
     106 
     107#define ROAR_VIO_DSTR_OBJT_MAGIC          (0x01|ROAR_VIO_DSTR_OBJGT_SPECAL) 
     108 
     109 
     110struct roar_vio_defaults { 
     111 int type; 
     112 
     113 mode_t o_mode; 
     114 int    o_flags; 
     115 
     116 union { 
     117  char *   file; 
     118  int      fh; 
     119  struct { 
     120          int               domain; 
     121          int               type; 
     122          char            * host; 
     123          struct sockaddr * sa; 
     124          socklen_t         len; 
     125         } socket; 
     126 } d; 
     127}; 
     128 
     129struct roar_vio_dstr_chain { 
     130 int    type; 
     131 char * opts; 
     132 char * dst; 
     133 int    need_vio; 
     134 struct roar_vio_defaults * def; 
     135 struct roar_vio_calls    * vio; 
     136}; 
     137 
     138int     roar_vio_dstr_get_type(char * str); 
     139char *  roar_vio_dstr_get_name(int type); 
     140 
     141int     roar_vio_dstr_init_defaults (struct roar_vio_defaults * def, int type, int o_flags, mode_t o_mode); 
     142 
     143int     roar_vio_open_dstr    (struct roar_vio_calls * calls, char * dstr, struct roar_vio_defaults * def, int dnum); 
     144int     roar_vio_open_dstr_vio(struct roar_vio_calls * calls, char * dstr, struct roar_vio_defaults * def, int dnum, struct roar_vio_calls * vio); 
     145 
     146int     roar_vio_dstr_parse_opts(struct roar_vio_dstr_chain * chain); 
     147int     roar_vio_dstr_set_defaults(struct roar_vio_dstr_chain * chain); 
     148int     roar_vio_dstr_build_chain(struct roar_vio_dstr_chain * chain, struct roar_vio_calls * calls, struct roar_vio_calls * vio); 
     149 
    40150#endif 
    41151 
Note: See TracChangeset for help on using the changeset viewer.