1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
<title>KLone: utils.h Source File</title>
<link href="kl.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.3.9.1 -->
<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a></div>
<div class="nav">
<a class="el" href="dir_000002.html">klone</a></div>
<h1>utils.h</h1><a href="utils_8h.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment">00001 <span class="comment">/*</span>
00002 <span class="comment"> * Copyright (c) 2005, 2006 by KoanLogic s.r.l. <http://www.koanlogic.com></span>
00003 <span class="comment"> * All rights reserved.</span>
00004 <span class="comment"> *</span>
00005 <span class="comment"> * This file is part of KLone, and as such it is subject to the license stated</span>
00006 <span class="comment"> * in the LICENSE file which you have received as part of this distribution.</span>
00007 <span class="comment"> *</span>
00008 <span class="comment"> * $Id: utils.h,v 1.26 2006/04/22 13:14:46 tat Exp $</span>
00009 <span class="comment"> */</span>
00010
00011 <span class="preprocessor">#ifndef _KLONE_UTILS_H_</span>
00012 <span class="preprocessor"></span><span class="preprocessor">#define _KLONE_UTILS_H_</span>
00013 <span class="preprocessor"></span>
00014 <span class="preprocessor">#include "klone_conf.h"</span>
00015 <span class="preprocessor">#ifdef HAVE_STDINT</span>
00016 <span class="preprocessor"></span><span class="preprocessor">#include <stdint.h></span>
00017 <span class="preprocessor">#endif </span><span class="comment">/* HAVE_STDINT */</span>
00018 <span class="preprocessor">#include <stdarg.h></span>
00019 <span class="preprocessor">#include <stdio.h></span>
00020 <span class="preprocessor">#include <limits.h></span>
00021 <span class="preprocessor">#include <time.h></span>
00022 <span class="preprocessor">#include <signal.h></span>
00023 <span class="preprocessor">#include <u/libu.h></span>
00024 <span class="preprocessor">#include <<a class="code" href="io_8h.html">klone/io.h</a>></span>
00025 <span class="preprocessor">#include <<a class="code" href="md5_8h.html">klone/md5.h</a>></span>
00026 <span class="preprocessor">#include <<a class="code" href="os_8h.html">klone/os.h</a>></span>
00027 <span class="preprocessor">#include <<a class="code" href="mime__map_8h.html">klone/mime_map.h</a>></span>
00028
00029 <span class="preprocessor">#ifdef __cplusplus</span>
00030 <span class="preprocessor"></span><span class="keyword">extern</span> <span class="stringliteral">"C"</span> {
00031 <span class="preprocessor">#endif</span>
00032 <span class="preprocessor"></span>
00033 <span class="preprocessor">#ifndef MIN</span>
<a name="l00034"></a><a class="code" href="utils_8h.html#a0">00034</a> <span class="preprocessor"></span><span class="preprocessor">#define MIN(a,b) (a < b ? a : b)</span>
00035 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00036 <span class="preprocessor"></span>
00037 <span class="preprocessor">#ifndef MAX</span>
<a name="l00038"></a><a class="code" href="utils_8h.html#a1">00038</a> <span class="preprocessor"></span><span class="preprocessor">#define MAX(a,b) (a > b ? a : b)</span>
00039 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
00040 <span class="preprocessor"></span>
<a name="l00041"></a><a class="code" href="utils_8h.html#a2">00041</a> <span class="preprocessor">#define KLONE_FREE(p) do {if (p) { free(p); p = NULL; }} while (0)</span>
00042 <span class="preprocessor"></span>
<a name="l00043"></a><a class="code" href="utils_8h.html#a3">00043</a> <span class="preprocessor">#define klone_die(...) do { con(__VA_ARGS__); exit(EXIT_FAILURE); } while(0)</span>
<a name="l00044"></a><a class="code" href="utils_8h.html#a4">00044</a> <span class="preprocessor"></span><span class="preprocessor">#define klone_die_if(cond, ...) \</span>
00045 <span class="preprocessor"> do { dbg_ifb(cond) klone_die(__VA_ARGS__); } while(0)</span>
00046 <span class="preprocessor"></span>
00047 <span class="keywordtype">int</span> <a class="code" href="group__u__t.html#ga36">u_file_exists</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>*);
00048 <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#a19">u_write_debug_message</a>(<span class="keyword">const</span> <span class="keywordtype">char</span>*, <span class="keyword">const</span> <span class="keywordtype">char</span>*, <span class="keywordtype">int</span>, <span class="keyword">const</span> <span class="keywordtype">char</span>*,
00049 <span class="keyword">const</span> <span class="keywordtype">char</span>*, ...);
00050
00051 <span class="keyword">struct </span>dirent;
00052 <span class="keywordtype">int</span> <a class="code" href="group__u__t.html#ga11">u_foreach_dir_item</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span>,
00053 <span class="keywordtype">int</span> (*)(<span class="keyword">struct</span> dirent*, <span class="keyword">const</span> <span class="keywordtype">char</span> *, <span class="keywordtype">void</span>*),
00054 <span class="keywordtype">void</span>*);
00055
00056 <span class="keywordtype">char</span>* <a class="code" href="group__u__t.html#ga30">u_strnrchr</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *s, <span class="keywordtype">char</span> c, size_t len);
00057 <span class="keywordtype">char</span> *<a class="code" href="group__u__t.html#ga29">u_stristr</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *string, <span class="keyword">const</span> <span class="keywordtype">char</span> *sub);
00058 <span class="keywordtype">char</span> *<a class="code" href="group__u__t.html#ga10">u_strnstr</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *string, <span class="keyword">const</span> <span class="keywordtype">char</span> *sub, size_t stringlen);
00059
00060 <span class="keyword">enum</span> { URLCPY_VERBATIM, URLCPY_ENCODE, <a class="code" href="utils_8h.html#a50a8">URLCPY_DECODE</a> };
00061 ssize_t <a class="code" href="group__u__t.html#ga19">u_urlncpy</a>(<span class="keywordtype">char</span> *dst, <span class="keyword">const</span> <span class="keywordtype">char</span> *src, size_t slen, <span class="keywordtype">int</span> flags);
00062
00063 <span class="keyword">enum</span> { HEXCPY_VERBATIM, HEXCPY_ENCODE, <a class="code" href="utils_8h.html#a51a11">HEXCPY_DECODE</a> };
00064 ssize_t <a class="code" href="group__u__t.html#ga25">u_hexncpy</a>(<span class="keywordtype">char</span> *dst, <span class="keyword">const</span> <span class="keywordtype">char</span> *src, size_t slen, <span class="keywordtype">int</span> flags);
00065
00066 <span class="keyword">enum</span> { HTMLCPY_VERBATIM, HTMLCPY_ENCODE, <a class="code" href="utils_8h.html#a52a14">HTMLCPY_DECODE</a> };
00067 ssize_t <a class="code" href="group__u__t.html#ga28">u_htmlncpy</a>(<span class="keywordtype">char</span> *dst, <span class="keyword">const</span> <span class="keywordtype">char</span> *src, size_t slen, <span class="keywordtype">int</span> flags);
00068
00069 <span class="keyword">enum</span> { SQLCPY_VERBATIM, SQLCPY_ENCODE, <a class="code" href="utils_8h.html#a53a17">SQLCPY_DECODE</a> };
00070 ssize_t <a class="code" href="group__u__t.html#ga16">u_sqlncpy</a>(<span class="keywordtype">char</span> *dst, <span class="keyword">const</span> <span class="keywordtype">char</span> *src, size_t slen, <span class="keywordtype">int</span> flags);
00071
00072
00073 <span class="keywordtype">int</span> <a class="code" href="group__u__t.html#ga35">u_printf_ccstr</a>(<a class="code" href="structio__s.html">io_t</a> *o, <span class="keyword">const</span> <span class="keywordtype">char</span> *buf, size_t sz);
00074
00075 <span class="keywordtype">int</span> <a class="code" href="group__u__t.html#ga32">u_file_open</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *file, <span class="keywordtype">int</span> flags, <a class="code" href="structio__s.html">io_t</a> **pio);
00076 <span class="keywordtype">int</span> <a class="code" href="group__u__t.html#ga31">u_tmpfile_open</a>(<a class="code" href="structio__s.html">io_t</a> **pio);
00077 <span class="keywordtype">int</span> <a class="code" href="group__u__t.html#ga33">u_getline</a>(<a class="code" href="structio__s.html">io_t</a> *io, u_string_t *ln);
00078 <span class="keywordtype">int</span> <a class="code" href="group__u__t.html#ga34">u_fgetline</a>(FILE *in, u_string_t *ln);
00079
00080 <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#a33">u_io_unzip_copy</a>(<a class="code" href="structio__s.html">io_t</a> *out, <span class="keyword">const</span> <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *data, size_t size);
00081
00082 <span class="keywordtype">void</span> <a class="code" href="group__u__t.html#ga37">u_tohex</a>(<span class="keywordtype">char</span> *hex, <span class="keyword">const</span> <span class="keywordtype">char</span> *src, size_t sz);
00083 <span class="keywordtype">char</span> <a class="code" href="group__u__t.html#ga20">u_tochex</a>(<span class="keywordtype">int</span> n);
00084
00085 <span class="keywordtype">int</span> <a class="code" href="group__u__t.html#ga38">u_md5</a>(<span class="keywordtype">char</span> *buf, size_t sz, <span class="keywordtype">char</span> out[MD5_DIGEST_BUFSZ]);
00086 <span class="keywordtype">int</span> <a class="code" href="group__u__t.html#ga39">u_md5io</a>(<a class="code" href="structio__s.html">io_t</a> *io, <span class="keywordtype">char</span> out[MD5_DIGEST_BUFSZ]);
00087
<a name="l00088"></a><a class="code" href="utils_8h.html#a5">00088</a> <span class="keyword">typedef</span> void (*u_sig_t)(int);
00089 <span class="keywordtype">int</span> <a class="code" href="group__u__t.html#ga40">u_signal</a>(<span class="keywordtype">int</span> sig, u_sig_t handler);
00090 <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#a39">u_sig_block</a>(<span class="keywordtype">int</span> sig);
00091 <span class="keywordtype">int</span> <a class="code" href="utils_8h.html#a40">u_sig_unblock</a>(<span class="keywordtype">int</span> sig);
00092
00093 <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="group__u__t.html#ga42">u_guess_mime_type</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *file_name);
00094 <span class="keyword">const</span> <a class="code" href="structmime__map__s.html">mime_map_t</a>* <a class="code" href="group__u__t.html#ga41">u_get_mime_map</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *file_name);
00095 <span class="keywordtype">int</span> <a class="code" href="group__u__t.html#ga12">u_match_ext</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *filename, <span class="keyword">const</span> <span class="keywordtype">char</span> *extension);
00096
00097 <span class="comment">/* date time conversion funcs */</span>
00098 <span class="keywordtype">int</span> <a class="code" href="group__u__t.html#ga9">u_tt_to_rfc822</a>(<span class="keywordtype">char</span> dst[], time_t ts);
00099 <span class="keywordtype">int</span> <a class="code" href="group__u__t.html#ga8">u_httpdate_to_tt</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *str, time_t *tp);
00100 <span class="keywordtype">int</span> <a class="code" href="group__u__t.html#ga7">u_rfc822_to_tt</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *str, time_t *tp);
00101 <span class="keywordtype">int</span> <a class="code" href="group__u__t.html#ga6">u_rfc850_to_tt</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *str, time_t *tp);
00102 <span class="keywordtype">int</span> <a class="code" href="group__u__t.html#ga5">u_asctime_to_tt</a>(<span class="keyword">const</span> <span class="keywordtype">char</span> *str, time_t *tp);
00103
00104 <span class="keywordtype">void</span> <a class="code" href="group__u__t.html#ga22">u_print_version_and_exit</a>(<span class="keywordtype">void</span>);
00105
00106 <span class="preprocessor">#ifdef HAVE_LIBOPENSSL</span>
00107 <span class="preprocessor"></span><span class="keywordtype">int</span> u_cipher_encrypt(<span class="keyword">const</span> EVP_CIPHER *cipher, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key,
00108 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *iv, <span class="keywordtype">char</span> *dst, size_t *dcount, <span class="keyword">const</span> <span class="keywordtype">char</span> *src, size_t ssz);
00109 <span class="keywordtype">int</span> u_cipher_decrypt(<span class="keyword">const</span> EVP_CIPHER *cipher, <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *key,
00110 <span class="keywordtype">unsigned</span> <span class="keywordtype">char</span> *iv, <span class="keywordtype">char</span> *dst, size_t *dcount, <span class="keyword">const</span> <span class="keywordtype">char</span> *src, size_t ssz);
00111 <span class="preprocessor">#endif</span>
00112 <span class="preprocessor"></span>
00113 <span class="preprocessor">#ifdef __cplusplus</span>
00114 <span class="preprocessor"></span>}
00115 <span class="preprocessor">#endif </span>
00116 <span class="preprocessor"></span>
00117 <span class="preprocessor">#endif</span>
</pre></div><hr>
<div>
<div style="text-align:left">
<a href="http://www.koanlogic.com/kl/cont/gb/html/products.html">←Products</a>
</div>
<div style="text-align:center;">
© 2005-2006 - <a href="http://www.koanlogic.com">KoanLogic S.r.l.</a> - All rights reserved
</div>
</div>
</body>
</html>
|