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

浏览器

开发平台:

Unix_Linux

  1. /***************************************
  2.   $Header: /home/amb/wwwoffle/RCS/misc.h 2.21 1999/12/18 16:07:01 amb Exp $
  3.   WWWOFFLE - World Wide Web Offline Explorer - Version 2.5c.
  4.   Miscellaneous HTTP / HTML functions.
  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 MISC_H
  13. #define MISC_H    /*+ To stop multiple inclusions. +*/
  14. #include <stdio.h>
  15. /*+ A forward definition of the protocol type. +*/
  16. typedef struct _Protocol *ProtocolP;
  17. /*+ A URL data type. +*/
  18. typedef struct _URL
  19. {
  20.  char *name;                    /*+ The canonical URL for the object. +*/
  21.  char *link;                    /*+ A URL that will work for browsers (may point to name). +*/
  22.  char *file;                    /*+ The URL that is used for generating the filename (may point to name). +*/
  23.  char *hostp;                   /*+ A pointer to the host in the url. +*/
  24.  char *pathp;                   /*+ A pointer to the path in the url. +*/
  25.  char *proto;                   /*+ The protocol. +*/
  26.  char *host;                    /*+ The host. +*/
  27.  char *path;                    /*+ The path. +*/
  28.  char *args;                    /*+ The arguments. +*/
  29.  ProtocolP Protocol;            /*+ The protocol. +*/
  30.  char *user;                    /*+ The username if supplied. +*/
  31.  char *pass;                    /*+ The password if supplied. +*/
  32.  char *dir;                     /*+ The directory name for the host to avoid using ':' on Win32 (may point to host). +*/
  33.  char local;                    /*+ Set to true if the host is the localhost. +*/
  34. }
  35. URL;
  36. /*+ A request or reply header type. +*/
  37. typedef struct _Header
  38. {
  39.  int type;                      /*+ The type of header, request=1 or reply=0. +*/
  40.  char *method;                  /*+ The request method used. +*/
  41.  char *url;                     /*+ The requested URL. +*/
  42.  int status;                    /*+ The reply status. +*/
  43.  char *note;                    /*+ The reply string. +*/
  44.  char *version;                 /*+ The HTTP version. +*/
  45.  int n;                         /*+ The number of header entries. +*/
  46.  char **key;                    /*+ The name of the header line. +*/
  47.  char **val;                    /*+ The value of the header line. +*/
  48.  int size;                      /*+ The size of the header as read from the file/socket. +*/
  49. }
  50. Header;
  51. /*+ A request or reply body type. +*/
  52. typedef struct _Body
  53. {
  54.  int length;                    /*+ The length of the content. +*/
  55.  char *content;                 /*+ The content itself. +*/
  56. }
  57. Body;
  58. /* in misc.c */
  59. URL *SplitURL(char *url);
  60. void AddURLPassword(URL *Url,char *user,char *pass);
  61. void FreeURL(URL *Url);
  62. char *LinkURL(URL *Url,char *link);
  63. char *CanonicaliseName(char *name);
  64. char *MakeHash(const char *args);
  65. char *RFC822Date(long t,int utc);
  66. long DateToTimeT(const char *date);
  67. char *URLDecode(const char *str, int isform);
  68. char *URLDecodeArgs(const char *str);
  69. char *URLEncode(const char *str);
  70. char *URLEncodePassword(const char *str);
  71. char *Base64Decode(const char *str,int *l);
  72. char *Base64Encode(const char *str,int l);
  73. char* HTMLString(const char* c);
  74. /* In io.c */
  75. char *fgets_realloc(char *buffer,FILE *file);
  76. void init_buffer(int fd);
  77. int empty_buffer(int fd);
  78. int read_data(int fd,char *buffer,int n);
  79. int read_data_or_timeout(int fd,char *buffer,int n,int timeout);
  80. char *read_line(int fd,char *line);
  81. char *read_line_or_timeout(int fd,char *line,int timeout);
  82. int write_data(int fd,const char *data,int n);
  83. int write_string(int fd,const char *str);
  84. #ifdef __GNUC__
  85. int write_formatted(int fd,const char *fmt,...) __attribute__ ((format (printf,2,3)));
  86. #else
  87. int write_formatted(int fd,const char *fmt,...);
  88. #endif
  89. #endif /* MISC_H */