proto.h
上传用户:seven77cht
上传日期:2007-01-04
资源大小:486k
文件大小:3k
源码类别:

浏览器

开发平台:

Unix_Linux

  1. /***************************************
  2.   $Header: /home/amb/wwwoffle/RCS/proto.h 1.11 1999/09/11 14:00:03 amb Exp $
  3.   WWWOFFLE - World Wide Web Offline Explorer - Version 2.5.
  4.   Information about the protocols that wwwoffle supports.
  5.   ******************/ /******************
  6.   Written by Andrew M. Bishop
  7.   This file Copyright 1997,98,99 Andrew M. Bishop
  8.   It may be distributed under the GNU Public License, version 2, or
  9.   any higher version.  See section COPYING of the GNU Public license
  10.   for conditions under which this file may be redistributed.
  11.   ***************************************/
  12. #ifndef PROTO_H
  13. #define PROTO_H    /*+ To stop multiple inclusions. +*/
  14. #include "misc.h"
  15. /*+ A type to contain the information that is required for a particular protocol. +*/
  16. typedef struct _Protocol
  17. {
  18.  int number;                    /*+ The protocol number. +*/
  19.  char *name;                    /*+ The protocol name. +*/
  20.  int defport;                   /*+ The default port number. +*/
  21.  int proxyable;                 /*+ Set to true if any known proxies can understand this. +*/
  22.  int postable;                  /*+ Set to true if the POST method works. +*/
  23.  int putable;                   /*+ Set to true if the PUT method works. +*/
  24.  char*(*open)(URL*);            /*+ A function to open a connection to a remote server. +*/
  25.  char*(*request)(URL*,Header*,Body*); /*+ A function to make a request to the remote server. +*/
  26.  char*(*readhead)(char*);       /*+ A function to read a line of data from the reply header. +*/
  27.  int(*readbody)(char*,int);     /*+ A function to read the data from the reply body. +*/
  28.  int(*close)(void);             /*+ A function to close the connection to the remote server. +*/
  29. }
  30. Protocol;
  31. #define Protocol_HTTP    0      /*+ The http protocol. +*/
  32. #define Protocol_FTP     1      /*+ The ftp protocol. +*/
  33. #define Protocol_Finger  2      /*+ The finger protocol. +*/
  34. /* In proto.c */
  35. /*+ The list of protocols. +*/
  36. extern Protocol Protocols[];
  37. /*+ The number of protocols. +*/
  38. extern int NProtocols;
  39. /* In http.c */
  40. char *HTTP_Open(URL *Url);
  41. char *HTTP_Request(URL *Url,Header *request_head,Body *request_body);
  42. char *HTTP_ReadHead(char *line);
  43. int   HTTP_ReadBody(char *s,int n);
  44. int   HTTP_Close(void);
  45. /* In ftp.c */
  46. char *FTP_Open(URL *Url);
  47. char *FTP_Request(URL *Url,Header *request_head,Body *request_body);
  48. char *FTP_ReadHead(char *line);
  49. int   FTP_ReadBody(char *s,int n);
  50. int   FTP_Close(void);
  51. /* In finger.c */
  52. char *Finger_Open(URL *Url);
  53. char *Finger_Request(URL *Url,Header *request_head,Body *request_body);
  54. char *Finger_ReadHead(char *line);
  55. int   Finger_ReadBody(char *s,int n);
  56. int   Finger_Close(void);
  57. /* In ssl.c */
  58. char *SSL_Open(URL *Url);
  59. char *SSL_Request(int client,URL *Url,Header *request_head);
  60. void SSL_Transfer(int client);
  61. int SSL_Close(void);
  62. #endif /* PROTO_H */