Annotation of embedaddon/miniupnpd/upnphttp.h, revision 1.1.1.1

1.1       misho       1: /* $Id: upnphttp.h,v 1.20 2009/09/04 16:35:13 nanard Exp $ */ 
                      2: /* MiniUPnP project
                      3:  * http://miniupnp.free.fr/ or http://miniupnp.tuxfamily.org/
                      4:  * (c) 2006-2011 Thomas Bernard 
                      5:  * This software is subject to the conditions detailed
                      6:  * in the LICENCE file provided within the distribution */
                      7: 
                      8: #ifndef __UPNPHTTP_H__
                      9: #define __UPNPHTTP_H__
                     10: 
                     11: #include <netinet/in.h>
                     12: #include <sys/queue.h>
                     13: 
                     14: #include "config.h"
                     15: 
                     16: /* server: HTTP header returned in all HTTP responses : */
                     17: #define MINIUPNPD_SERVER_STRING        OS_VERSION " UPnP/1.0 MiniUPnPd/1.5"
                     18: 
                     19: /*
                     20:  states :
                     21:   0 - waiting for data to read
                     22:   1 - waiting for HTTP Post Content.
                     23:   ...
                     24:   >= 100 - to be deleted
                     25: */
                     26: enum httpCommands {
                     27:        EUnknown = 0,
                     28:        EGet,
                     29:        EPost,
                     30:        ESubscribe,
                     31:        EUnSubscribe
                     32: };
                     33: 
                     34: struct upnphttp {
                     35:        int socket;
                     36:        struct in_addr clientaddr;      /* client address */
                     37:        int state;
                     38:        char HttpVer[16];
                     39:        /* request */
                     40:        char * req_buf;
                     41:        int req_buflen;
                     42:        int req_contentlen;
                     43:        int req_contentoff;     /* header length */
                     44:        enum httpCommands req_command;
                     45:        const char * req_soapAction;
                     46:        int req_soapActionLen;
                     47: #ifdef ENABLE_EVENTS
                     48:        const char * req_Callback;      /* For SUBSCRIBE */
                     49:        int req_CallbackLen;
                     50:        int req_Timeout;
                     51:        const char * req_SID;           /* For UNSUBSCRIBE */
                     52:        int req_SIDLen;
                     53: #endif
                     54:        int respflags;
                     55:        /* response */
                     56:        char * res_buf;
                     57:        int res_buflen;
                     58:        int res_buf_alloclen;
                     59:        /*int res_contentlen;*/
                     60:        /*int res_contentoff;*/         /* header length */
                     61:        LIST_ENTRY(upnphttp) entries;
                     62: };
                     63: 
                     64: #define FLAG_TIMEOUT   0x01
                     65: #define FLAG_SID               0x02
                     66: 
                     67: #define FLAG_HTML              0x80
                     68: 
                     69: /* New_upnphttp() */
                     70: struct upnphttp *
                     71: New_upnphttp(int);
                     72: 
                     73: /* CloseSocket_upnphttp() */
                     74: void
                     75: CloseSocket_upnphttp(struct upnphttp *);
                     76: 
                     77: /* Delete_upnphttp() */
                     78: void
                     79: Delete_upnphttp(struct upnphttp *);
                     80: 
                     81: /* Process_upnphttp() */
                     82: void
                     83: Process_upnphttp(struct upnphttp *);
                     84: 
                     85: /* BuildHeader_upnphttp()
                     86:  * build the header for the HTTP Response
                     87:  * also allocate the buffer for body data */
                     88: void
                     89: BuildHeader_upnphttp(struct upnphttp * h, int respcode,
                     90:                      const char * respmsg,
                     91:                      int bodylen);
                     92: 
                     93: /* BuildResp_upnphttp() 
                     94:  * fill the res_buf buffer with the complete
                     95:  * HTTP 200 OK response from the body passed as argument */
                     96: void
                     97: BuildResp_upnphttp(struct upnphttp *, const char *, int);
                     98: 
                     99: /* BuildResp2_upnphttp()
                    100:  * same but with given response code/message */
                    101: void
                    102: BuildResp2_upnphttp(struct upnphttp * h, int respcode,
                    103:                     const char * respmsg,
                    104:                     const char * body, int bodylen);
                    105: 
                    106: /* SendResp_upnphttp() */
                    107: void
                    108: SendResp_upnphttp(struct upnphttp *);
                    109: 
                    110: #endif
                    111: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>