ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/gvpe/src/util.C
(Generate patch)

Comparing gvpe/src/util.C (file contents):
Revision 1.6 by pcg, Wed Apr 2 05:15:00 2003 UTC vs.
Revision 1.8 by pcg, Tue Oct 14 15:48:15 2003 UTC

27#include <signal.h> 27#include <signal.h>
28#include <sys/types.h> 28#include <sys/types.h>
29#include <sys/wait.h> 29#include <sys/wait.h>
30#include <unistd.h> 30#include <unistd.h>
31#include <time.h> 31#include <time.h>
32#include <sys/socket.h>
33#include <netinet/in.h>
34#include <arpa/inet.h>
35
36 32
37#include <sys/mman.h> 33#include <sys/mman.h>
34
35#include "netcompat.h"
38 36
39#include "gettext.h" 37#include "gettext.h"
40#include "pidfile.h" 38#include "pidfile.h"
41#include "dropin.h" 39#include "dropin.h"
42 40
157 waitpid (pid, 0, 0); 155 waitpid (pid, 0, 0);
158 /* TODO: check status */ 156 /* TODO: check status */
159 } 157 }
160 } 158 }
161} 159}
160
161#if ENABLE_HTTP_PROXY
162// works like strdup
163u8 *
164base64_encode (const u8 *data, unsigned int len)
165{
166 const static char base64[65] = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
167
168 unsigned int t, i;
169 const u8 *end = data + len;
170 u8 *res = new u8 [4 * ((len + 2) / 3) + 1];
171 u8 *out = res;
172
173 while (data <= end - 3)
174 {
175 t = (((data[0] << 8) | data[1]) << 8) | data[2];
176 data += 3;
177
178 *out++ = base64[(t >> 18) & 0x3f];
179 *out++ = base64[(t >> 12) & 0x3f];
180 *out++ = base64[(t >> 6) & 0x3f];
181 *out++ = base64[(t ) & 0x3f];
182 }
183
184 for (t = 0, i = 0; data < end; i++)
185 t = (t << 8) | *data++;
186
187 switch (i)
188 {
189 case 2:
190 *out++ = base64[(t >> 10) & 0x3f];
191 *out++ = base64[(t >> 4) & 0x3f];
192 *out++ = base64[(t << 2) & 0x3f];
193 *out++ = '=';
194 break;
195 case 1:
196 *out++ = base64[(t >> 2) & 0x3f];
197 *out++ = base64[(t << 4) & 0x3f];
198 *out++ = '=';
199 *out++ = '=';
200 break;
201 }
202
203 *out++ = 0;
204
205 return res;
206}
207#endif
208

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines